@bd7pil/ocrc 0.24.4 → 0.25.1

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 (32) hide show
  1. package/dist/core/relay.js +47 -7
  2. package/dist/core/relay.js.map +1 -1
  3. package/dist/core/stream-accumulator.js +3 -3
  4. package/dist/core/stream-accumulator.js.map +1 -1
  5. package/dist/plugin/entry.js +5 -0
  6. package/dist/plugin/entry.js.map +1 -1
  7. package/dist/transport/web/index.js +2 -0
  8. package/dist/transport/web/index.js.map +1 -1
  9. package/dist/transport/web/ws-hub.js +12 -0
  10. package/dist/transport/web/ws-hub.js.map +1 -1
  11. package/package.json +1 -1
  12. package/web/dist/_app/immutable/assets/0.Bf4ukRCF.css +1 -0
  13. package/web/dist/_app/immutable/assets/3.sWLfsaJ-.css +1 -0
  14. package/web/dist/_app/immutable/chunks/{DMjJC_0e.js → D8mS_dO0.js} +1 -1
  15. package/web/dist/_app/immutable/chunks/DQw6xsKi.js +1 -0
  16. package/web/dist/_app/immutable/chunks/DyVtfOqD.js +1 -0
  17. package/web/dist/_app/immutable/entry/{app.YXQ5eHNB.js → app.DWp30aZ8.js} +2 -2
  18. package/web/dist/_app/immutable/entry/start.CDa_mH2Z.js +1 -0
  19. package/web/dist/_app/immutable/nodes/0.D5WDBqgD.js +3 -0
  20. package/web/dist/_app/immutable/nodes/{1.Dr0OkSnT.js → 1.CmYMiPX5.js} +1 -1
  21. package/web/dist/_app/immutable/nodes/2.jDRy4yr0.js +1 -0
  22. package/web/dist/_app/immutable/nodes/{3.BE3eISY8.js → 3.Cb_bxmLe.js} +2 -2
  23. package/web/dist/_app/version.json +1 -1
  24. package/web/dist/index.html +10 -10
  25. package/web/dist/service-worker.js +1 -1
  26. package/web/dist/_app/immutable/assets/0.DNcjEOa9.css +0 -1
  27. package/web/dist/_app/immutable/assets/3.BAwvOE6a.css +0 -1
  28. package/web/dist/_app/immutable/chunks/EuAaL0D3.js +0 -1
  29. package/web/dist/_app/immutable/chunks/t4ji6lDi.js +0 -1
  30. package/web/dist/_app/immutable/entry/start.CJHxoHVo.js +0 -1
  31. package/web/dist/_app/immutable/nodes/0.3-XI5Jkd.js +0 -3
  32. package/web/dist/_app/immutable/nodes/2.DYsIhOT_.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/t4ji6lDi.js","../chunks/BjY4dxcB.js"])))=>i.map(i=>d[i]);
2
- import{_ as sa}from"../chunks/C1FmrZbK.js";import"../chunks/CWj6FrbW.js";import{r as kt,f as he,p as Gt,l as Xt,i as ba,G as ga,y as wa,k as ca,a as na,b as oa,c as ra,j as ka,z as Ht,e as xa,C as ya,w as $a}from"../chunks/t4ji6lDi.js";import{aE as xt,M as Tt,a4 as Be,w as m,aB as yt,V as $e,b4 as i,J as n,aK as a,a$ as j,a8 as e,aR as T,a3 as $,aU as r,a6 as h,az as Qt,ap as g,aO as t,aq as St,$ as ht,au as s,b2 as da,aw as qt,av as Mt,ay as Ut,b1 as Nt,aI as Ia,b5 as Ft,b0 as Sa,a7 as Ca,Z as Lt}from"../chunks/BjY4dxcB.js";import{i as D,s as Pt,a as Me}from"../chunks/Chcp5gAM.js";import{i as Oe,B as Wt,I as Xe,z as re,A as st,l as jt,c as Ea,f as Zt,g as va,t as Ma,h as qa,v as Ta,K as ia,a as ja,F as Da,E as Ba,q as Oa,m as Kt,r as Aa,s as Ra,y as Pa,C as La,o as la,j as za}from"../chunks/DMjJC_0e.js";import{p as wt,b as Ye}from"../chunks/vlg9iH2u.js";import{g as Vt}from"../chunks/EuAaL0D3.js";var Fa=h('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),Ha=h('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function Na(Ie,ie){xt(ie,!1);let R=wt(ie,"suggestions",24,()=>[]),I=wt(ie,"onPick",8,()=>{}),Q=wt(ie,"onDismiss",8,()=>{});kt();var ee=Tt(),B=Be(ee);{var y=E=>{var M=Ha(),F=n(M);Oe(F,3,R,l=>l,(l,k,S)=>{var O=Fa(),ve=n(O,!0);a(O),j(b=>{Wt(O,b),T(ve,e(k))},[()=>($e(e(S)),i(()=>`animation-delay: ${Math.min(e(S),5)*45}ms`))]),$("click",O,()=>I()(e(k))),m(l,O)});var _e=r(F,2),P=n(_e);Xe(P,{name:"close",size:12}),a(_e),a(M),$("click",_e,function(...l){var k;(k=Q())==null||k.apply(this,l)}),m(E,M)};D(B,E=>{$e(R()),i(()=>R().length>0)&&E(y)})}m(Ie,ee),yt()}var Wa=h('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Ka=h('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Va=h('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ga=h('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <button class="chip icon mono svelte-1f5vmb3" aria-haspopup="listbox"><!></button> <!></div>');function Ua(Ie,ie){xt(ie,!1);const R=s();let I=s(!1),Q=s(),ee=s([]),B=s({agent:null,model:null});async function y(){try{await(async u=>{var C=da(u,2);t(ee,C[0]),t(B,C[1])})(await Promise.all([he.agents(),he.getOverrides()]))}catch{}}Qt(y);async function E(u){await he.setOverrides({agent:u.name}),await y(),t(I,!1)}async function M(){await he.setOverrides({agent:null}),await y(),t(I,!1)}function F(u){u.key==="Escape"&&e(I)&&t(I,!1)}function _e(u){e(I)&&e(Q)&&!e(Q).contains(u.target)&&t(I,!1)}g(()=>e(B),()=>{t(R,e(B).agent??"default")}),St(),kt();var P=Ga();$("keydown",ht,F),$("click",ht,_e);var l=n(P),k=n(l);Xe(k,{name:"cpu",size:11});var S=r(k,2),O=n(S,!0);a(S);var ve=r(S,2);Xe(ve,{name:"caret-down",size:9}),a(l);var b=r(l,2),V=n(b);Xe(V,{name:"cpu",size:14}),a(b);var te=r(b,2);{var d=u=>{var C=Va(),H=n(C);{var le=Y=>{var p=Wa();m(Y,p)};D(H,Y=>{e(ee),i(()=>e(ee).length===0)&&Y(le)})}var me=r(H,2);Oe(me,1,()=>e(ee),Y=>Y.name,(Y,p)=>{var U=Ka();let be;var ye=n(U),ae=n(ye,!0);a(ye);var ne=r(ye,2),z=n(ne,!0);a(ne),a(U),j(oe=>{be=st(U,1,"opt svelte-1f5vmb3",null,be,{sel:e(p).name===e(B).agent}),re(U,"aria-selected",(e(p),e(B),i(()=>e(p).name===e(B).agent))),T(ae,(e(p),i(()=>e(p).name))),T(z,oe)},[()=>(e(p),i(()=>e(p).model.split("/").pop()))]),$("click",U,()=>E(e(p))),m(Y,U)});var G=r(me,2),L=n(G);Xe(L,{name:"close",size:11}),qt(),a(G),a(C),j(()=>re(G,"aria-selected",(e(B),i(()=>e(B).agent==null)))),$("click",G,M),m(u,C)};D(te,u=>{e(I)&&u(d)})}a(P),Ye(P,u=>t(Q,u),()=>e(Q)),j(()=>{re(l,"aria-expanded",e(I)),T(O,e(R)),re(b,"aria-label",`Agent:${e(R)}`),re(b,"aria-expanded",e(I))}),$("click",l,()=>{t(I,!e(I)),e(I)&&y()}),$("click",b,()=>{t(I,!e(I)),e(I)&&y()}),m(Ie,P),yt()}var Ja=h('<div class="none label svelte-1005b73">暂无模型</div>'),Ya=h('<button role="option"><span> </span></button>'),Xa=h('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Za=h('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Qa=h('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <button class="chip icon mono svelte-1005b73" aria-haspopup="listbox"><!></button> <!></div>');function es(Ie,ie){xt(ie,!1);const R=s();let I=s(!1),Q=s(),ee=s([]),B=s({agent:null,model:null});async function y(){try{await(async u=>{var C=da(u,2);t(ee,C[0]),t(B,C[1])})(await Promise.all([he.models(),he.getOverrides()]))}catch{}}Qt(y);async function E(u,C){await he.setOverrides({model:{providerID:u,modelID:C}}),await y(),t(I,!1)}async function M(){await he.setOverrides({model:null}),await y(),t(I,!1)}function F(u){u.key==="Escape"&&e(I)&&t(I,!1)}function _e(u){e(I)&&e(Q)&&!e(Q).contains(u.target)&&t(I,!1)}g(()=>e(B),()=>{var u;t(R,((u=e(B).model)==null?void 0:u.modelID)??"model")}),St(),kt();var P=Qa();$("keydown",ht,F),$("click",ht,_e);var l=n(P),k=n(l);Xe(k,{name:"bolt",size:11});var S=r(k,2),O=n(S,!0);a(S);var ve=r(S,2);Xe(ve,{name:"caret-down",size:9}),a(l);var b=r(l,2),V=n(b);Xe(V,{name:"bolt",size:14}),a(b);var te=r(b,2);{var d=u=>{var C=Za(),H=n(C);{var le=Y=>{var p=Ja();m(Y,p)};D(H,Y=>{e(ee),i(()=>e(ee).length===0)&&Y(le)})}var me=r(H,2);Oe(me,1,()=>e(ee),Y=>Y.id,(Y,p)=>{var U=Xa(),be=Be(U),ye=n(be,!0);a(be);var ae=r(be,2);Oe(ae,1,()=>(e(p),i(()=>e(p).models)),ne=>ne.id,(ne,z)=>{var oe=Ya();let we;var f=n(oe),J=n(f,!0);a(f),a(oe),j(()=>{var ce,ue;we=st(oe,1,"opt svelte-1005b73",null,we,{sel:((ce=e(B).model)==null?void 0:ce.providerID)===e(p).id&&((ue=e(B).model)==null?void 0:ue.modelID)===e(z).id}),re(oe,"aria-selected",(e(B),e(p),e(z),i(()=>{var qe,Ve;return((qe=e(B).model)==null?void 0:qe.providerID)===e(p).id&&((Ve=e(B).model)==null?void 0:Ve.modelID)===e(z).id}))),T(J,(e(z),i(()=>e(z).name||e(z).id)))}),$("click",oe,()=>E(e(p).id,e(z).id)),m(ne,oe)}),j(()=>T(ye,(e(p),i(()=>e(p).id)))),m(Y,U)});var G=r(me,2),L=n(G);Xe(L,{name:"close",size:11}),qt(),a(G),a(C),j(()=>re(G,"aria-selected",(e(B),i(()=>e(B).model==null)))),$("click",G,M),m(u,C)};D(te,u=>{e(I)&&u(d)})}a(P),Ye(P,u=>t(Q,u),()=>e(Q)),j(()=>{re(l,"aria-expanded",e(I)),T(O,e(R)),re(b,"aria-label",`模型:${e(R)}`),re(b,"aria-expanded",e(I))}),$("click",l,()=>{t(I,!e(I)),e(I)&&y()}),$("click",b,()=>{t(I,!e(I)),e(I)&&y()}),m(Ie,P),yt()}var ts=h('<button role="option"> </button>'),as=h('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ss=h('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),ns=h('<button role="option"> </button>'),os=h('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),rs=h('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),is=h('<div class="controls svelte-dkbq22"><!> <!></div>');function ls(Ie,ie){xt(ie,!1);const R=s(),I=s(),Q=s(),ee=s();let B=wt(ie,"sessionId",8),y=s({}),E=s(null);async function M(){const d=B();try{const u=await he.controls(d);if(d!==B())return;t(y,u)}catch{d===B()&&t(y,{})}}async function F(d){e(y).mode&&Mt(y,e(y).mode={...e(y).mode,current:d}),t(E,null);try{await he.setMode(B(),d)}catch{}await M()}async function _e(d){e(y).model&&Mt(y,e(y).model={...e(y).model,current:d}),t(E,null);try{await he.setModel(B(),d)}catch{}await M()}function P(d){t(E,e(E)===d?null:d)}let l=s();function k(d){d.key==="Escape"&&e(E)&&t(E,null)}function S(d){e(E)&&e(l)&&!e(l).contains(d.target)&&t(E,null)}g(()=>$e(B()),()=>{B()&&M()}),g(()=>e(y),()=>{var d;t(R,((d=e(y).mode)==null?void 0:d.options)??[])}),g(()=>e(y),()=>{var d;t(I,((d=e(y).model)==null?void 0:d.options)??[])}),g(()=>e(y),()=>{var d,u,C;t(Q,((u=(d=e(y).mode)==null?void 0:d.options.find(H=>{var le;return H.id===((le=e(y).mode)==null?void 0:le.current)}))==null?void 0:u.name)??((C=e(y).mode)==null?void 0:C.current)??"mode")}),g(()=>e(y),()=>{var d,u,C;t(ee,((u=(d=e(y).model)==null?void 0:d.options.find(H=>{var le;return H.id===((le=e(y).model)==null?void 0:le.current)}))==null?void 0:u.name)??((C=e(y).model)==null?void 0:C.current)??"model")}),St(),kt();var O=is();$("keydown",ht,k),$("click",ht,S);var ve=n(O);{var b=d=>{var u=ss(),C=n(u),H=n(C);Xe(H,{name:"bolt",size:11});var le=r(H,2),me=n(le,!0);a(le);var G=r(le,2);Xe(G,{name:"caret-down",size:9}),a(C);var L=r(C,2);{var Y=p=>{var U=as(),be=r(n(U),2);Oe(be,1,()=>e(R),jt,(ye,ae)=>{var ne=ts();let z;var oe=n(ne,!0);a(ne),j(()=>{var we;z=st(ne,1,"opt svelte-dkbq22",null,z,{sel:e(ae).id===((we=e(y).mode)==null?void 0:we.current)}),re(ne,"aria-selected",(e(ae),e(y),i(()=>{var f;return e(ae).id===((f=e(y).mode)==null?void 0:f.current)}))),T(oe,(e(ae),i(()=>e(ae).name)))}),$("click",ne,()=>F(e(ae).id)),m(ye,ne)}),a(U),m(p,U)};D(L,p=>{e(E)==="mode"&&p(Y)})}a(u),j(()=>{re(C,"aria-expanded",e(E)==="mode"),T(me,e(Q))}),$("click",C,()=>P("mode")),m(d,u)};D(ve,d=>{e(R),i(()=>e(R).length>0)&&d(b)})}var V=r(ve,2);{var te=d=>{var u=rs(),C=n(u),H=n(C);Xe(H,{name:"cpu",size:11});var le=r(H,2),me=n(le,!0);a(le);var G=r(le,2);Xe(G,{name:"caret-down",size:9}),a(C);var L=r(C,2);{var Y=p=>{var U=os(),be=r(n(U),2);Oe(be,1,()=>e(I),jt,(ye,ae)=>{var ne=ns();let z;var oe=n(ne,!0);a(ne),j(()=>{var we;z=st(ne,1,"opt svelte-dkbq22",null,z,{sel:e(ae).id===((we=e(y).model)==null?void 0:we.current)}),re(ne,"aria-selected",(e(ae),e(y),i(()=>{var f;return e(ae).id===((f=e(y).model)==null?void 0:f.current)}))),T(oe,(e(ae),i(()=>e(ae).name)))}),$("click",ne,()=>_e(e(ae).id)),m(ye,ne)}),a(U),m(p,U)};D(L,p=>{e(E)==="model"&&p(Y)})}a(u),j(()=>{re(C,"aria-expanded",e(E)==="model"),T(me,e(ee))}),$("click",C,()=>P("model")),m(d,u)};D(V,d=>{e(I),i(()=>e(I).length>0)&&d(te)})}a(O),Ye(O,d=>t(l,d),()=>e(l)),m(Ie,O),yt()}const zt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Yt(Ie){if(!Ie)return 0;let ie=0;for(const I of Ie)(I.codePointAt(0)??0)>=11904&&ie++;const R=Ie.length-ie;return Math.round(ie*.6+R*.25)}function cs(Ie,ie){let R=0,I=0,Q=0;for(const E of Ie)if(E.kind==="user")R+=Yt(String(E.text??""));else if(E.kind==="assistant")for(const M of E.blocks??[])M.type==="text"?I+=Yt(String(M.text??"")):M.type==="tool"&&(Q+=Yt(String(M.args??"")));const ee=R+I+Q,B=Math.max(0,ie-ee),y=[{key:"用户",tokens:R,color:zt.user},{key:"助手",tokens:I,color:zt.assistant},{key:"工具调用",tokens:Q,color:zt.tool}];return B>0&&y.push({key:"其他",tokens:B,color:zt.other}),{segments:y.filter(E=>E.tokens>0),accounted:ee,used:ie}}var ds=h('<span class="seg svelte-4bdpxt"></span>'),vs=h('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=h('<div class="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div>',1),fs=h('<div class="bar svelte-4bdpxt" aria-hidden="true"></div>'),ps=h('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=h('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=h('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=h('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),bs=h('<div class="pop svelte-4bdpxt" role="dialog" aria-label="上下文用量"><div class="head svelte-4bdpxt"><span class="label svelte-4bdpxt">上下文</span> <span class="mono dim svelte-4bdpxt"> </span></div> <!> <div class="rows svelte-4bdpxt"><!> <!> <!> <!></div></div>'),gs=h('<div class="wrap svelte-4bdpxt"><button class="ring svelte-4bdpxt" title="上下文占用"><svg viewBox="0 0 24 24" aria-hidden="true" class="svelte-4bdpxt"><circle class="track svelte-4bdpxt" cx="12" cy="12"></circle><circle class="arc svelte-4bdpxt" cx="12" cy="12" transform="rotate(-90 12 12)"></circle></svg> <span class="pct mono svelte-4bdpxt"> <i class="svelte-4bdpxt">%</i></span></button> <!></div>');function ws(Ie,ie){xt(ie,!1);const R=()=>Me(Gt,"$feeds",I),[I,Q]=Pt(),ee=s(),B=s(),y=s(),E=s(),M=s(),F=s(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s(),b=s(),V=s(),te=s();let d=wt(ie,"sessionId",8),u=s({}),C=s(!1),H=s(),le,me=s(),G=s(-1),L=s();async function Y(w){try{t(u,await he.context(w))}catch{}}function p(){document.hidden||Y(d())}typeof document<"u"&&document.addEventListener("visibilitychange",p),Ut(()=>{clearTimeout(e(L)),clearTimeout(le),typeof document<"u"&&document.removeEventListener("visibilitychange",p)});const U=10,be=2*Math.PI*U;function ye(w){return w>=1e6?(w/1e6).toFixed(1)+"M":w>=1e3?(w/1e3).toFixed(1)+"k":String(w)}function ae(w){return w==null?"—":`$${w.toFixed(3)}`}function ne(){clearTimeout(le),t(C,!0)}function z(){clearTimeout(le),le=setTimeout(()=>t(C,!1),180)}function oe(w){w.key==="Escape"&&t(C,!1)}function we(w){e(C)&&e(H)&&!e(H).contains(w.target)&&t(C,!1)}g(()=>($e(d()),e(me)),()=>{d()!==e(me)&&(t(me,d()),Y(d()))}),g(()=>(R(),$e(d())),()=>{var w;t(ee,((w=R()[d()])==null?void 0:w.lastSeq)??0)}),g(()=>(e(ee),e(G),e(L),$e(d())),()=>{e(ee)!==e(G)&&(t(G,e(ee)),clearTimeout(e(L)),(typeof document>"u"||!document.hidden)&&t(L,setTimeout(()=>void Y(d()),1e3)))}),g(()=>e(u),()=>{var w,N;t(B,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.input)=="number"?e(u).tokens.input:0)}),g(()=>e(u),()=>{var w,N;t(y,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.output)=="number"?e(u).tokens.output:0)}),g(()=>(e(u),e(B),e(y)),()=>{var w,N;t(E,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.used)=="number"?e(u).tokens.used:e(B)+e(y))}),g(()=>e(u),()=>{var w,N;t(M,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.max)=="number"?e(u).tokens.max:void 0)}),g(()=>(e(E),e(M)),()=>{t(F,e(E)>0&&e(M)?Math.min(100,e(E)/e(M)*100):0)}),g(()=>e(F),()=>{t(_e,e(F)>=90?"var(--err)":e(F)>=70?"var(--warn)":"var(--ok)")}),g(()=>e(u),()=>{var w;t(P,(w=e(u))!=null&&w.model?String(e(u).model).split("/").pop():void 0)}),g(()=>e(u),()=>{var w;t(l,typeof((w=e(u))==null?void 0:w.cost)=="number"?e(u).cost:void 0)}),g(()=>e(u),()=>{var w,N,fe;t(k,typeof((fe=(N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.cache)==null?void 0:fe.read)=="number"?e(u).tokens.cache.read:0)}),g(()=>e(u),()=>{var w,N,fe;t(S,typeof((fe=(N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.cache)==null?void 0:fe.write)=="number"?e(u).tokens.cache.write:0)}),g(()=>(e(B),e(k)),()=>{t(O,e(B)+e(k)>0?Math.round(e(k)/(e(B)+e(k))*100):void 0)}),g(()=>(R(),$e(d())),()=>{t(ve,R()[d()])}),g(()=>e(ve),()=>{t(b,Xt(e(ve)).filter(w=>w.kind==="user"||w.kind==="assistant").length)}),g(()=>e(ve),()=>{t(V,Xt(e(ve)))}),g(()=>(e(V),e(E)),()=>{t(te,cs(e(V),e(E)))}),St(),kt();var f=gs();$("keydown",ht,oe),$("click",ht,we);var J=n(f),ce=n(J),ue=n(ce);re(ue,"r",U);var qe=r(ue);re(qe,"r",U),a(ce);var Ve=r(ce,2),Ae=n(Ve,!0);qt(),a(Ve),a(J);var de=r(J,2);{var Z=w=>{var N=bs(),fe=n(N),Re=r(n(fe),2),Ge=n(Re);a(Re),a(fe);var nt=r(fe,2);{var _t=_=>{var q=us(),W=Be(q);Oe(W,5,()=>(e(te),i(()=>e(te).segments)),jt,(ge,Ce)=>{var ut=ds();j(()=>Wt(ut,(e(Ce),e(te),i(()=>`width:${e(Ce).tokens/(e(te).used||1)*100}%; background:${e(Ce).color}`)))),m(ge,ut)}),a(W);var A=r(W,2);Oe(A,5,()=>(e(te),i(()=>e(te).segments)),jt,(ge,Ce)=>{var ut=vs(),Te=n(ut),ke=r(Te);a(ut),j(je=>{Wt(Te,(e(Ce),i(()=>`background:${e(Ce).color}`))),T(ke,`${e(Ce),i(()=>e(Ce).key)??""} ${je??""}%`)},[()=>(e(E),e(Ce),i(()=>e(E)>0?(e(Ce).tokens/e(E)*100).toFixed(1):"0"))]),m(ge,ut)}),a(A),m(_,q)},Ue=_=>{var q=fs();m(_,q)};D(nt,_=>{e(te),i(()=>e(te).segments.length>0)?_(_t):_(Ue,-1)})}var Pe=r(nt,2),Le=n(Pe);{var ze=_=>{var q=ps(),W=r(n(q)),A=n(W);a(W),a(q),j(()=>T(A,`${e(O)??""}%`)),m(_,q)};D(Le,_=>{e(O)!=null&&_(ze)})}var Ze=r(Le,2);{var dt=_=>{var q=ms(),W=r(n(q)),A=n(W,!0);a(W),a(q),j(()=>T(A,e(b))),m(_,q)};D(Ze,_=>{e(b)>0&&_(dt)})}var vt=r(Ze,2);{var $t=_=>{var q=hs(),W=r(n(q)),A=n(W,!0);a(W),a(q),j(()=>T(A,e(P))),m(_,q)};D(vt,_=>{e(P)&&_($t)})}var v=r(vt,2);{var o=_=>{var q=_s(),W=r(n(q)),A=n(W,!0);a(W),a(q),j(ge=>T(A,ge),[()=>(e(l),i(()=>ae(e(l))))]),m(_,q)};D(v,_=>{e(l)!=null&&_(o)})}a(Pe),a(N),j((_,q)=>T(Ge,`${_??""} / ${q??""}`),[()=>(e(E),i(()=>ye(e(E)))),()=>(e(M),i(()=>ye(e(M))))]),m(w,N)};D(de,w=>{e(C)&&e(M)&&w(Z)})}a(f),Ye(f,w=>t(H,w),()=>e(H)),j((w,N,fe)=>{re(J,"aria-label",w),re(J,"aria-expanded",e(C)),re(qe,"stroke",e(_e)),re(qe,"stroke-dasharray",N),T(Ae,fe)},[()=>(e(F),i(()=>`上下文占用 ${e(F).toFixed(0)}%`)),()=>(e(F),i(()=>`${Math.max(be*e(F)/100,e(F)>0?1.5:0)} ${be}`)),()=>(e(F),i(()=>e(F).toFixed(0)))]),$("click",J,()=>t(C,!e(C))),$("mouseenter",f,ne),$("mouseleave",f,z),m(Ie,f),yt(),Q()}var ks=h('<div class="error svelte-60fagq" role="alert"> </div>'),xs=h('<button role="option"> </button>'),ys=h('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),$s=h('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),Is=h('<div class="thumbnails svelte-60fagq"></div>'),Ss=h('<button class="attach svelte-60fagq" aria-label="附加图片"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></button> <input type="file" accept="image/*" multiple="" style="display:none"/>',1),Cs=h("<!> <!>",1),Es=h('<button class="send stop svelte-60fagq" aria-label="停止" title="停止生成"><svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2"></rect></svg></button>'),Ms=Ca('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"></path></svg>'),qs=h('<button class="send svelte-60fagq" aria-label="发送"><!></button>'),Ts=h('<div class="composer svelte-60fagq"><div class="dock svelte-60fagq"><!> <div><!> <!> <textarea aria-label="消息输入" class="svelte-60fagq"></textarea> <div class="footer svelte-60fagq"><!> <!> <!> <!> <button class="hint command svelte-60fagq">「/」命令</button> <span class="spacer svelte-60fagq"></span> <span class="hint send-hint svelte-60fagq">↵ 发送 · ⇧↵ 换行</span> <!></div></div></div></div>');function js(Ie,ie){xt(ie,!1);const R=()=>Me(Zt,"$composerDraft",y),I=()=>Me(Gt,"$feeds",y),Q=()=>Me(ca,"$can",y),ee=()=>Me(qa,"$connection",y),B=()=>Me(ba,"$backendName",y),[y,E]=Pt(),M=s(),F=s(),_e=s();let P=wt(ie,"sessionId",8),l=s(""),k=s(),S=s(!1),O=s(""),ve=s(!1),b=s(),V=s([]),te=s([]),d=s(0),u=0,C,H=!1;async function le(){if(!H){H=!0;try{await he.abort(P())}catch{}finally{H=!1}}}function me(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function G(v){const o=new FileReader;o.onload=()=>{var Ce;const _=o.result,q=_.indexOf(","),W=_.slice(0,q),A=_.slice(q+1),ge=((Ce=W.match(/data:(.*?);/))==null?void 0:Ce[1])??v.type;t(V,[...e(V),{data:A,mimeType:ge,preview:_}])},o.readAsDataURL(v)}function L(v){const o=v.target;if(o.files){for(const _ of o.files)G(_);o.value=""}}function Y(v){if(!Q()("imageInput")||!v.clipboardData)return;const o=[...v.clipboardData.items].filter(_=>_.type.startsWith("image/"));if(o.length){v.preventDefault();for(const _ of o){const q=_.getAsFile();q&&G(q)}}}function p(v){t(V,e(V).filter((o,_)=>_!==v))}function U(){if(!e(k))return null;const v=e(k).selectionStart,_=e(l).slice(0,v).match(/(^|[\s])@([^\s]*)$/);return _?{token:_[2],start:v-_[2].length-1}:null}function be(){const v=U();if(!v){t(te,[]),clearTimeout(C);return}u=v.start,t(d,0),clearTimeout(C);const o=v.token;C=setTimeout(async()=>{try{t(te,await he.files(P(),o))}catch{t(te,[])}},150)}function ye(v){const o=e(k).selectionStart,_=e(l).slice(0,u),q=e(l).slice(o),W=`@${v} `;t(l,_+W+q),t(te,[]),Nt().then(()=>{const A=_.length+W.length;Mt(k,e(k).selectionStart=Mt(k,e(k).selectionEnd=A)),e(k).focus(),z()})}async function ae(){var W;const v=e(l).trim();if(!v&&e(V).length===0||e(S))return;if(ee()!=="connected"){t(O,"Disconnected — reconnecting…");return}const o=me(),_=e(V).map(({data:A,mimeType:ge})=>({data:A,mimeType:ge}));t(S,!0),t(O,""),ga({kind:"user",sessionId:P(),text:v,ts:Date.now(),id:`user:${o}`}),t(l,"");const q=[...e(V)];t(V,[]),z();try{await he.sendMessage({sessionId:P(),text:v,clientId:o,..._.length?{images:_}:{}})}catch(A){t(O,`Send failed: ${A.message}`),wa(`user:${o}`),t(l,v),t(V,q)}finally{t(S,!1),(W=e(k))==null||W.focus()}}function ne(v){if(e(te).length>0){if(v.key==="ArrowDown"){v.preventDefault(),t(d,Math.min(e(d)+1,e(te).length-1));return}if(v.key==="ArrowUp"){v.preventDefault(),t(d,Math.max(e(d)-1,0));return}if(v.key==="Enter"||v.key==="Tab"){v.preventDefault(),ye(e(te)[e(d)]);return}if(v.key==="Escape"){v.preventDefault(),t(te,[]);return}}v.key!=="Enter"||v.shiftKey||v.isComposing||v.keyCode===229||(v.preventDefault(),ae())}function z(){e(k)&&(Mt(k,e(k).style.height="auto"),Mt(k,e(k).style.height=Math.min(e(k).scrollHeight,140)+"px"))}Ut(()=>clearTimeout(C)),g(()=>(R(),e(k)),()=>{const v=R();v&&(t(l,v.text),Zt.set(void 0),Nt().then(()=>{var o;return(o=e(k))==null?void 0:o.focus()}),z())}),g(()=>e(l),()=>{va.set(!e(l).trim())}),g(()=>e(l),()=>{t(M,e(l).trim().length>0)}),g(()=>(e(k),e(l)),()=>{e(k)&&e(l)!==void 0&&z()}),g(()=>(I(),$e(P())),()=>{t(F,(()=>{const v=I()[P()];if(!v||v.order.length===0)return!1;const o=v.byId[v.order[v.order.length-1]];return(o==null?void 0:o.kind)==="thinking"||(o==null?void 0:o.kind)==="streaming"||(o==null?void 0:o.kind)==="think-stream"})())}),g(()=>(e(F),e(M),e(S)),()=>{t(_e,e(F)&&!e(M)&&!e(S))}),St(),kt();var oe=Ts(),we=n(oe),f=n(we);{var J=v=>{var o=ks(),_=n(o,!0);a(o),j(()=>T(_,e(O))),m(v,o)};D(f,v=>{e(O)&&v(J)})}var ce=r(f,2);let ue;var qe=n(ce);{var Ve=v=>{var o=ys();Oe(o,5,()=>e(te),jt,(_,q,W)=>{var A=xs();let ge;var Ce=n(A,!0);a(A),j(()=>{ge=st(A,1,"mention-row svelte-60fagq",null,ge,{active:W===e(d)}),re(A,"aria-selected",W===e(d)),T(Ce,e(q))}),$("mousedown",A,Ta(()=>ye(e(q)))),m(_,A)}),a(o),m(v,o)};D(qe,v=>{e(te),i(()=>e(te).length>0)&&v(Ve)})}var Ae=r(qe,2);{var de=v=>{var o=Is();Oe(o,5,()=>e(V),jt,(_,q,W)=>{var A=$s(),ge=n(A),Ce=r(ge,2);a(A),j(()=>re(ge,"src",(e(q),i(()=>e(q).preview)))),$("click",Ce,()=>p(W)),m(_,A)}),a(o),m(v,o)};D(Ae,v=>{e(V),i(()=>e(V).length>0)&&v(de)})}var Z=r(Ae,2);Ia(Z),re(Z,"rows",1),Ye(Z,v=>t(k,v),()=>e(k));var w=r(Z,2),N=n(w);{var fe=v=>{var o=Ss(),_=Be(o),q=r(_,2);Ye(q,W=>t(b,W),()=>e(b)),$("click",_,()=>e(b).click()),$("change",q,L),m(v,o)},Re=Ft(()=>(Q(),i(()=>Q()("imageInput"))));D(N,v=>{e(Re)&&v(fe)})}var Ge=r(N,2);{var nt=v=>{var o=Cs(),_=Be(o);Ua(_,{});var q=r(_,2);es(q,{}),m(v,o)},_t=Ft(()=>(Q(),i(()=>Q()("catalog"))));D(Ge,v=>{e(_t)&&v(nt)})}var Ue=r(Ge,2);{var Pe=v=>{ls(v,{get sessionId(){return P()}})},Le=Ft(()=>(Q(),i(()=>Q()("sessionControls"))));D(Ue,v=>{e(Le)&&v(Pe)})}var ze=r(Ue,2);ws(ze,{get sessionId(){return P()}});var Ze=r(ze,2),dt=r(Ze,6);{var vt=v=>{var o=Es();$("click",o,le),m(v,o)},$t=v=>{var o=qs(),_=n(o);{var q=A=>{var ge=Sa("…");m(A,ge)},W=A=>{var ge=Ms();m(A,ge)};D(_,A=>{e(S)?A(q):A(W,-1)})}a(o),j(A=>o.disabled=A,[()=>(e(S),e(l),e(V),ee(),i(()=>e(S)||!e(l).trim()&&e(V).length===0||ee()!=="connected"))]),$("click",o,ae),m(v,o)};D(dt,v=>{e(_e)?v(vt):v($t,-1)})}a(w),a(ce),a(we),a(oe),j(()=>{ue=st(ce,1,"box svelte-60fagq",null,ue,{focused:e(ve),"has-text":e(M)}),re(Z,"placeholder",ee()==="connected"?`给 ${B()} 留言…`:"连接断开…")}),Ea(Z,()=>e(l),v=>t(l,v)),$("keydown",Z,ne),$("input",Z,()=>{z(),be()}),$("paste",Z,Y),$("focus",Z,()=>t(ve,!0)),$("blur",Z,()=>t(ve,!1)),$("click",Z,be),$("click",Ze,()=>Ma.set(!0)),m(Ie,oe),yt(),E()}var Ds=h('<span class="check svelte-rgafhj">✓</span>'),Bs=h('<button><span aria-hidden="true"></span> <span class="info svelte-rgafhj"><span class="row-title svelte-rgafhj"> </span> <span class="row-meta mono svelte-rgafhj"> </span></span> <!></button>'),Os=h('<div class="empty svelte-rgafhj"> </div>'),As=h('<div class="popover svelte-rgafhj" role="dialog" aria-label="会话切换"><div class="list svelte-rgafhj"></div> <div class="footer svelte-rgafhj"><button class="new-session mono svelte-rgafhj"> </button></div></div>'),Rs=h('<div class="switcher svelte-rgafhj"><button class="trigger svelte-rgafhj" aria-haspopup="true" title="Switch session"><span class="glyph-tile svelte-rgafhj"> </span> <span><span class="sr-only svelte-rgafhj"> </span></span> <span class="title svelte-rgafhj"> </span> <span class="caret svelte-rgafhj" aria-hidden="true"><!></span></button> <!></div>');function Ps(Ie,ie){xt(ie,!1);const R=()=>Me(ka,"$backends",B),I=()=>Me(Ht,"$sessionList",B),Q=()=>Me(ja,"$activeWorkspace",B),ee=()=>Me(ia,"$workspaces",B),[B,y]=Pt(),E=s(),M=s(),F=s(),_e=s(),P=s(),l=s();let k=wt(ie,"activeId",8,void 0),S=s(!1),O=s(!1);function ve(f){const J=f.split(/[\s\-_:./]+/).filter(Boolean);return J.length>=2?(J[0][0]+J[1][0]).toUpperCase():f.slice(0,2).toUpperCase()}function b(f){return ve((f==null?void 0:f.name)||(f==null?void 0:f.id)||"OC")}function V(f){return f==="online"||f==="connected"?"online":f==="connecting"||f==="reconnecting"?"connecting":f==="offline"?"offline":"online"}function te(){t(S,!e(S))}function d(f){t(S,!1),Vt(`/${f}/`)}async function u(){var J;if(e(O))return;const f=Q()||((J=ee()[0])==null?void 0:J.directory)||"";t(O,!0);try{await ya(e(E));const ce=await he.createSession({directory:f});Ht.set(await he.sessions()),ia.set(await he.workspaces()),t(S,!1),Vt(`/${ce.id}/`)}catch(ce){alert(`Create session failed: ${ce.message}`)}finally{t(O,!1)}}function C(f){f.key==="Escape"&&t(S,!1)}function H(f){const J=Date.now()-f,ce=Math.floor(J/6e4);if(ce<1)return"now";if(ce<60)return`${ce}m`;const ue=Math.floor(ce/60);return ue<24?`${ue}h`:`${Math.floor(ue/24)}d`}function le(f){return(f.includes("_")?f.slice(f.indexOf("_")+1):f).slice(-8)}g(()=>R(),()=>{var f,J,ce;t(E,((f=R())==null?void 0:f.activeId)??((ce=(J=R())==null?void 0:J.backends[0])==null?void 0:ce.id)??"opencode")}),g(()=>(R(),e(E)),()=>{var f;t(M,(f=R())==null?void 0:f.backends.find(J=>J.id===e(E)))}),g(()=>e(E),()=>{t(F,xa(e(E)))}),g(()=>(I(),e(E)),()=>{t(_e,I().filter(f=>f.backendId===e(E)||!f.backendId&&e(E)==="opencode").sort((f,J)=>J.lastActiveAt-f.lastActiveAt))}),g(()=>(I(),$e(k())),()=>{t(P,I().find(f=>f.id===k()))}),g(()=>e(P),()=>{var f;t(l,((f=e(P))==null?void 0:f.title)||"Untitled session")}),St(),kt();var me=Rs();$("keydown",ht,C);var G=n(me),L=n(G),Y=n(L,!0);a(L);var p=r(L,2),U=n(p),be=n(U,!0);a(U),a(p);var ye=r(p,2),ae=n(ye,!0);a(ye);var ne=r(ye,2),z=n(ne);Xe(z,{name:"caret-down",size:11}),a(ne),a(G);var oe=r(G,2);{var we=f=>{var J=As(),ce=n(J);Oe(ce,5,()=>e(_e),Ae=>Ae.id,(Ae,de)=>{var Z=Bs();let w;var N=n(Z),fe=r(N,2),Re=n(fe),Ge=n(Re,!0);a(Re);var nt=r(Re,2),_t=n(nt);a(nt),a(fe);var Ue=r(fe,2);{var Pe=Le=>{var ze=Ds();m(Le,ze)};D(Ue,Le=>{e(de),$e(k()),i(()=>e(de).id===k())&&Le(Pe)})}a(Z),j((Le,ze)=>{w=st(Z,1,"row svelte-rgafhj",null,w,{active:e(de).id===k()}),st(N,1,`dot ${e(de),$e(k()),i(()=>e(de).id===k()?"active":"")??""}`,"svelte-rgafhj"),T(Ge,(e(de),i(()=>e(de).title||"Untitled session"))),T(_t,`${Le??""} · ${ze??""}`)},[()=>(e(de),i(()=>le(e(de).id))),()=>(e(de),i(()=>H(e(de).lastActiveAt)))]),$("click",Z,()=>d(e(de).id)),m(Ae,Z)},Ae=>{var de=Os(),Z=n(de);a(de),j(()=>T(Z,`No sessions on ${e(M),i(()=>{var w,N;return((w=e(M))==null?void 0:w.name)??((N=e(M))==null?void 0:N.id)??"this agent"})??""}.`)),m(Ae,de)}),a(ce);var ue=r(ce,2),qe=n(ue),Ve=n(qe);a(qe),a(ue),a(J),j(()=>{qe.disabled=e(O),T(Ve,`+ New session on ${e(M),i(()=>{var Ae,de;return((Ae=e(M))==null?void 0:Ae.name)??((de=e(M))==null?void 0:de.id)??"agent"})??""}`)}),$("click",qe,u),m(f,J)};D(oe,f=>{e(S)&&f(we)})}a(me),j((f,J,ce)=>{re(G,"aria-expanded",e(S)),Wt(L,`background:${$e(na),e(F),i(()=>na[e(F)])??""}; color:${$e(oa),e(F),i(()=>oa[e(F)])??""}; border-color:${$e(ra),e(F),i(()=>ra[e(F)])??""}`),T(Y,f),st(p,1,`status-dot ${J??""}`,"svelte-rgafhj"),T(be,ce),T(ae,e(l))},[()=>(e(M),i(()=>b(e(M)))),()=>(e(M),i(()=>{var f;return V((f=e(M))==null?void 0:f.status)})),()=>(e(M),i(()=>{var f;return V((f=e(M))==null?void 0:f.status)}))]),$("click",G,te),m(Ie,me),yt(),y()}var Ls=h('<button class="ghost svelte-w3h0m4" title="重新显示计划窗"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span></button>'),zs=h('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Fs=h('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Hs=h('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),Ns=h('<button class="crumb svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M15 18l-6-6 6-6"></path></svg> <span> </span></button>'),Ws=h('<div class="row done svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="check svelte-w3h0m4">✓</span></span><span class="tx svelte-w3h0m4"> </span></div>'),Ks=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Vs=h('<div class="row running svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="dot svelte-w3h0m4"></span></span><span class="tx svelte-w3h0m4"> </span></div>'),Gs=h('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Us=h('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Ys=h('<span class="sub-count mono svelte-w3h0m4"> </span>'),Xs=h('<button class="row sub jump svelte-w3h0m4" title="打开子代理会话"><span class="sub-dot svelte-w3h0m4" aria-hidden="true"></span> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),Zs=h('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Qs=h('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),en=h('<span class="sub-count mono svelte-w3h0m4"> </span>'),tn=h('<button class="row sub jump idle svelte-w3h0m4" title="打开子代理会话"><!> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),an=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),sn=h('<!> <div class="plan-card svelte-w3h0m4"><div class="hd svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="title svelte-w3h0m4"> </span> <button class="dots svelte-w3h0m4" aria-label="Plan menu">⋯</button> <button class="close svelte-w3h0m4" aria-label="收起计划"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M18 15l-6-6-6 6"></path></svg></button></div> <!> <div class="body svelte-w3h0m4"><!> <div class="prog mono svelte-w3h0m4"> </div> <!> <!> <!> <!> <!> <!></div></div>',1),nn=h('<span class="badge mono svelte-w3h0m4"> </span>'),on=h('<button class="bar svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!> <svg class="caret svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 15l-6-6-6 6"></path></svg></button>'),rn=h('<span class="badge mono svelte-w3h0m4"> </span>'),ln=h('<button class="ball svelte-w3h0m4"><svg class="ring svelte-w3h0m4" viewBox="0 0 38 38" aria-hidden="true"><circle class="track svelte-w3h0m4" cx="19" cy="19"></circle><circle class="arc svelte-w3h0m4" cx="19" cy="19" transform="rotate(-90 19 19)"></circle></svg> <span class="ball-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!></button>'),cn=h("<!> <!>",1);function dn(Ie,ie){xt(ie,!1);const R=()=>Me(Gt,"$feeds",ee),I=()=>Me(Ht,"$sessionList",ee),Q=()=>Me(ca,"$can",ee),[ee,B]=Pt(),y=s(),E=s(),M=s(),F=s(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s();let b=wt(ie,"sessionId",8),V=wt(ie,"onJump",8,()=>{});const te="ocrc.planHud.v3",d=5,u=16,C=2*Math.PI*u;let H=s(!1);try{t(H,window.matchMedia("(min-width: 821px)").matches)}catch{}const le=e(H)?"ocrc.planHud.dt3":te;function me(){if(typeof localStorage>"u")return{};try{const o=JSON.parse(localStorage.getItem(le)??"{}")??{};return{dismissed:o.dismissed,expanded:o.expanded}}catch{return{}}}let G=s(me()),L=s(e(G).expanded??e(H));function Y(o){if(t(G,{...e(G),...o}),!(typeof localStorage>"u"))try{localStorage.setItem(le,JSON.stringify(e(G)))}catch{}}let p=s({total:0,done:0,items:[]}),U=s();async function be(o){try{const _=await he.todo(o);if(o!==b())return;t(U,o),t(p,Da(_))}catch{}}let ye=s(),ae=s(0),ne=s(-1),z=s();Ut(()=>clearTimeout(e(z)));let oe=s([]),we=s(),f=!1;async function J(o){if(!f){f=!0;try{const _=await he.subagents(o);if(o!==b())return;t(oe,[..._.subagents??[]].sort((q,W)=>Number(W.busy??!1)-Number(q.busy??!1))),t(we,o)}catch{t(oe,[])}finally{f=!1}}}const ce=o=>`ocrc.subparent.${o}`;let ue=s();function qe(o){try{t(ue,sessionStorage.getItem(ce(o))??void 0)}catch{t(ue,void 0)}}qe(b());function Ve(o){try{sessionStorage.setItem(ce(o.id),b())}catch{}t(fe,!1),Aa({id:`sub:${o.id}`,kind:"subagent",title:o.title||"…"+o.id.slice(-6),childId:o.id}),Kt.set(!0)}function Ae(){const o=e(ue);t(ue,void 0),o&&V()(o)}let de=s(),Z=s(!1),w=s(!1),N=s(!1),fe=s(!1);function Re(){t(L,!e(L)),Y({expanded:e(L)})}function Ge(){Y({dismissed:[...e(G).dismissed??[],b()].slice(-20)}),t(fe,!1)}function nt(){Y({dismissed:(e(G).dismissed??[]).filter(o=>o!==b())}),t(L,!0),Y({expanded:e(L)})}function _t(){t(fe,!1),Oa("tasks"),Kt.set(!0)}let Ue=s(),Pe=s(),Le=s(),ze=s();function Ze(o){var q,W,A,ge;const _=o.target;if(e(fe)){if((q=e(Pe))!=null&&q.contains(_)||(W=e(Ue))!=null&&W.contains(_))return;t(fe,!1)}e(L)&&((A=e(Le))!=null&&A.contains(_)||(ge=e(ze))!=null&&ge.contains(_)||(t(L,!1),Y({expanded:!1})))}g(()=>($e(b()),e(ye)),()=>{b()!==e(ye)&&(t(ye,b()),be(b()))}),g(()=>(R(),$e(b())),()=>{var o;t(y,((o=R()[b()])==null?void 0:o.lastSeq)??0)}),g(()=>(e(y),e(ne),e(z),e(ae)),()=>{e(y)!==e(ne)&&(t(ne,e(y)),clearTimeout(e(z)),t(z,setTimeout(()=>t(ae,e(ae)+1),1e3)))}),g(()=>(e(ae),$e(b())),()=>{e(ae)&&(typeof document>"u"||!document.hidden)&&(be(b()),J(b()))}),g(()=>(I(),$e(b())),()=>{t(E,I().find(o=>o.id===b()))}),g(()=>e(E),()=>{var o;t(M,((o=e(E))==null?void 0:o.title)??"")}),g(()=>e(p),()=>{t(F,e(p).items.filter(o=>o.status==="done"))}),g(()=>e(p),()=>{t(_e,e(p).items.filter(o=>o.status==="running"))}),g(()=>e(p),()=>{t(P,e(p).items.filter(o=>o.status==="pending"))}),g(()=>e(P),()=>{t(l,Math.max(0,e(P).length-d))}),g(()=>e(p),()=>{t(k,e(p).total?e(p).done/e(p).total:0)}),g(()=>(e(G),$e(b())),()=>{var o;t(S,((o=e(G).dismissed)==null?void 0:o.includes(b()))??!1)}),g(()=>e(oe),()=>{t(O,e(oe).filter(o=>o.busy))}),g(()=>e(oe),()=>{t(ve,e(oe).filter(o=>!o.busy))}),g(()=>(e(L),$e(b()),e(we)),()=>{e(L)&&b()&&e(we)!==b()&&J(b())}),g(()=>$e(b()),()=>{b()&&qe(b())}),g(()=>($e(b()),e(de)),()=>{b()!==e(de)&&(t(de,b()),t(Z,!1),t(w,!1),t(N,!1),t(fe,!1))}),St(),kt();var dt=Tt();$("pointerdown",ht,Ze);var vt=Be(dt);{var $t=o=>{var _=cn(),q=Be(_);{var W=Te=>{var ke=Ls(),je=r(n(ke),2),Qe=n(je,!0),et=r(Qe,2,!0);a(je),a(ke),j(()=>{T(Qe,(e(p),i(()=>e(p).done))),T(et,(e(p),i(()=>e(p).total)))}),$("click",ke,nt),m(Te,ke)},A=Te=>{var ke=sn(),je=Be(ke);{var Qe=K=>{var pe=zs();m(K,pe)};D(je,K=>{e(H)||K(Qe)})}var et=r(je,2),it=n(et),lt=r(n(it),2),ot=n(lt,!0);a(lt);var ct=r(lt,2);Ye(ct,K=>t(Ue,K),()=>e(Ue));var Ct=r(ct,2);a(it);var tt=r(it,2);{var Et=K=>{var pe=Hs(),se=n(pe),Ee=r(se,2);{var De=Ne=>{var rt=Fs();$("click",rt,Ge),m(Ne,rt)};D(Ee,Ne=>{e(H)||Ne(De)})}a(pe),Ye(pe,Ne=>t(Pe,Ne),()=>e(Pe)),$("click",se,_t),m(K,pe)};D(tt,K=>{e(fe)&&K(Et)})}var bt=r(tt,2),Dt=n(bt);{var Jt=K=>{var pe=Ns(),se=r(n(pe),2),Ee=n(se);a(se),a(pe),j(De=>T(Ee,`返回父会话 …${De??""}`),[()=>(e(ue),i(()=>e(ue).slice(-8)))]),$("click",pe,Ae),m(K,pe)};D(Dt,K=>{e(ue)&&K(Jt)})}var Bt=r(Dt,2),c=n(Bt);a(Bt);var x=r(Bt,2);{var X=K=>{var pe=Ks(),se=Be(pe),Ee=n(se);let De;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>e(F),at=>at.text,(at,xe)=>{var Ke=Ws(),mt=r(n(Ke)),At=n(mt,!0);a(mt),a(Ke),j(()=>T(At,(e(xe),i(()=>e(xe).text)))),m(at,Ke)}),m(Je,pt)};D(We,Je=>{e(Z)&&Je(ft)})}j(()=>{re(se,"aria-expanded",e(Z)),De=st(Ee,0,"caret svelte-w3h0m4",null,De,{open:e(Z)}),T(rt,`已完成 ${e(F),i(()=>e(F).length)??""}`)}),$("click",se,()=>t(Z,!e(Z))),m(K,pe)};D(x,K=>{e(F),i(()=>e(F).length)&&K(X)})}var Fe=r(x,2);Oe(Fe,1,()=>e(_e),K=>K.text,(K,pe)=>{var se=Vs(),Ee=r(n(se)),De=n(Ee,!0);a(Ee),a(se),j(()=>T(De,(e(pe),i(()=>e(pe).text)))),m(K,se)});var Se=r(Fe,2);Oe(Se,1,()=>(e(P),i(()=>e(P).slice(0,d))),K=>K.text,(K,pe)=>{var se=Gs(),Ee=r(n(se)),De=n(Ee,!0);a(Ee),a(se),j(()=>T(De,(e(pe),i(()=>e(pe).text)))),m(K,se)});var He=r(Se,2);{var Ot=K=>{var pe=Js(),se=Be(pe),Ee=n(se);let De;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>(e(P),i(()=>e(P).slice(d))),at=>at.text,(at,xe)=>{var Ke=Us(),mt=r(n(Ke)),At=n(mt,!0);a(mt),a(Ke),j(()=>T(At,(e(xe),i(()=>e(xe).text)))),m(at,Ke)}),m(Je,pt)};D(We,Je=>{e(w)&&Je(ft)})}j(()=>{re(se,"aria-expanded",e(w)),De=st(Ee,0,"caret svelte-w3h0m4",null,De,{open:e(w)}),T(rt,`待处理 ${e(l)??""}`)}),$("click",se,()=>t(w,!e(w))),m(K,pe)};D(He,K=>{e(l)>0&&K(Ot)})}var ea=r(He,2);{var ua=K=>{var pe=Zs(),se=Be(pe),Ee=n(se),De=n(Ee);a(Ee),a(se);var Ne=r(se,2);Oe(Ne,1,()=>e(O),rt=>rt.id,(rt,We)=>{var ft=Xs(),Je=r(n(ft),2);{var pt=xe=>{var Ke=Ys(),mt=n(Ke);a(Ke),j(()=>T(mt,`${e(We),i(()=>e(We).done)??""}/${e(We),i(()=>e(We).total)??""}`)),m(xe,Ke)};D(Je,xe=>{e(We),i(()=>e(We).total>0)&&xe(pt)})}var It=r(Je,2),at=n(It,!0);a(It),qt(2),a(ft),j(xe=>T(at,xe),[()=>(e(We),i(()=>e(We).title||"…"+e(We).id.slice(-6)))]),$("click",ft,()=>Ve(e(We))),m(rt,ft)}),j(()=>T(De,`子代理 · 运行中 ${e(O),i(()=>e(O).length)??""}`)),m(K,pe)};D(ea,K=>{e(O),i(()=>e(O).length)&&K(ua)})}var fa=r(ea,2);{var pa=K=>{var pe=an(),se=Be(pe),Ee=n(se);let De;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>e(ve),at=>at.id,(at,xe)=>{var Ke=tn(),mt=n(Ke);{var At=gt=>{var Rt=Qs();m(gt,Rt)};D(mt,gt=>{e(xe),i(()=>e(xe).total>0&&e(xe).done>=e(xe).total)&&gt(At)})}var ta=r(mt,2);{var ma=gt=>{var Rt=en(),_a=n(Rt);a(Rt),j(()=>T(_a,`${e(xe),i(()=>e(xe).done)??""}/${e(xe),i(()=>e(xe).total)??""}`)),m(gt,Rt)};D(ta,gt=>{e(xe),i(()=>e(xe).total>0)&&gt(ma)})}var aa=r(ta,2),ha=n(aa,!0);a(aa),qt(2),a(Ke),j(gt=>T(ha,gt),[()=>(e(xe),i(()=>e(xe).title||"…"+e(xe).id.slice(-6)))]),$("click",Ke,()=>Ve(e(xe))),m(at,Ke)}),m(Je,pt)};D(We,Je=>{e(N)&&Je(ft)})}j(()=>{re(se,"aria-expanded",e(N)),De=st(Ee,0,"caret svelte-w3h0m4",null,De,{open:e(N)}),T(rt,`子代理 · 已结束 ${e(ve),i(()=>e(ve).length)??""}`)}),$("click",se,()=>t(N,!e(N))),m(K,pe)};D(fa,K=>{e(ve),i(()=>e(ve).length)&&K(pa)})}a(bt),a(et),Ye(et,K=>t(Le,K),()=>e(Le)),j(K=>{T(ot,K),T(c,`任务 ${e(p),i(()=>e(p).done)??""}/${e(p),i(()=>e(p).total)??""}`)},[()=>(e(M),$e(b()),i(()=>e(M)||"…"+b().slice(-8)))]),$("click",ct,Ba(()=>t(fe,!e(fe)))),$("click",Ct,Re),m(Te,ke)};D(q,Te=>{e(S)&&!e(H)?Te(W):e(L)&&Te(A,1)})}var ge=r(q,2);{var Ce=Te=>{var ke=on(),je=r(n(ke),2),Qe=n(je,!0),et=r(Qe,2,!0);a(je);var it=r(je,2);{var lt=ot=>{var ct=nn(),Ct=n(ct,!0);a(ct),j(()=>T(Ct,(e(O),i(()=>e(O).length)))),m(ot,ct)};D(it,ot=>{e(O),i(()=>e(O).length>0)&&ot(lt)})}qt(2),a(ke),Ye(ke,ot=>t(ze,ot),()=>e(ze)),j(()=>{re(ke,"aria-label",(e(p),i(()=>`展开计划 ${e(p).done}/${e(p).total}`))),T(Qe,(e(p),i(()=>e(p).done))),T(et,(e(p),i(()=>e(p).total)))}),$("click",ke,Re),m(Te,ke)},ut=Te=>{var ke=ln(),je=n(ke),Qe=n(je);re(Qe,"r",u);var et=r(Qe);re(et,"r",u),a(je);var it=r(je,2),lt=n(it,!0),ot=r(lt,2,!0);a(it);var ct=r(it,2);{var Ct=tt=>{var Et=rn(),bt=n(Et,!0);a(Et),j(()=>T(bt,(e(O),i(()=>e(O).length)))),m(tt,Et)};D(ct,tt=>{e(O),i(()=>e(O).length>0)&&tt(Ct)})}a(ke),Ye(ke,tt=>t(ze,tt),()=>e(ze)),j(tt=>{re(ke,"aria-label",(e(p),e(L),i(()=>`计划 ${e(p).done}/${e(p).total} — ${e(L)?"收起":"展开"}`))),re(ke,"aria-expanded",e(L)),re(et,"stroke-dasharray",tt),T(lt,(e(p),i(()=>e(p).done))),T(ot,(e(p),i(()=>e(p).total)))},[()=>(e(k),i(()=>`${Math.max(C*e(k),C*.02)} ${C}`))]),$("click",ke,Re),m(Te,ke)};D(ge,Te=>{e(H)&&!e(L)?Te(Ce):!e(S)&&!(e(H)&&!e(L))&&Te(ut,1)})}m(o,_)},v=Ft(()=>(e(U),$e(b()),e(p),e(oe),e(ue),Q(),i(()=>e(U)===b()&&(e(p).total>0||e(oe).length>0||e(ue))&&Q()("todos"))));D(vt,o=>{e(v)&&o($t)})}m(Ie,dt),yt(),B()}var vn=h('<button class="expand svelte-eho102" title="Expand left panel" aria-label="展开左侧面板"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"></path></svg></button>'),un=h('<span class="branch mono svelte-eho102"> </span>'),fn=h('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span>'),pn=h('<button class="restore mono svelte-eho102" title="恢复被撤销的轮次">恢复上一轮</button>'),mn=h('<!> <span class="idle mono svelte-eho102">空闲</span>',1),hn=h('<button class="load-earlier mono svelte-eho102"> </button>'),_n=h('<div class="loading mono svelte-eho102" aria-label="Loading conversation"><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span></div>'),bn=h('<div class="empty svelte-eho102"><svg class="empty-mark svelte-eho102" viewBox="0 0 64 64" fill="none" stroke-width="8" stroke-linecap="round" aria-hidden="true"><path d="M46 15 A24 24 0 1 0 54 32" stroke="var(--text)" opacity=".85"></path><circle cx="49" cy="20" r="6" fill="var(--accent)" stroke="none"></circle></svg> <p class="empty-title svelte-eho102">要让 agent 做什么?</p> <p class="empty-hint svelte-eho102">在下方描述任务——它将在本项目目录中运行。需要时可附上图片。</p></div>'),gn=h('<button class="jump svelte-eho102" aria-label="跳到最新"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14"></path><path d="M19 12l-7 7-7-7"></path></svg> 最新</button>'),wn=h('<div class="chat svelte-eho102"><div class="sub-header svelte-eho102"><div class="left svelte-eho102"><button class="back svelte-eho102" aria-label="返回会话列表"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button> <!> <!> <!></div> <div class="right svelte-eho102"><!> <button class="inspect svelte-eho102" aria-label="Inspector"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="7" x2="20" y2="7"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="17" x2="14" y2="17"></line></svg></button> <button class="pane-toggle svelte-eho102" title="侧栏面板" aria-label="侧栏面板"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"></rect><path d="M15 4v16"></path><path d="M9 9l3 3-3 3"></path></svg></button></div></div> <div aria-live="polite"><!> <!> <div class="stream-end svelte-eho102" aria-hidden="true"></div> <!></div></div> <!> <div class="composer-float svelte-eho102"><!> <!></div> <!>',1);function Mn(Ie,ie){xt(ie,!1);const R=()=>Me(Ra,"$page",M),I=()=>Me(Gt,"$feeds",M),Q=()=>Me(Ht,"$sessionList",M),ee=()=>Me(va,"$composerEmpty",M),B=()=>Me(Pa,"$sessionBooting",M),y=()=>Me(la,"$leftPanelOpen",M),E=()=>Me(za,"$feedResyncing",M),[M,F]=Pt(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s(),b=s(),V=s(),te=s();let d=s(),u=s(),C=s(),H,le=s(""),me,G,L=s(0),Y=s(0),p=s(),U=s(!0);function be(){e(d)&&Mt(d,e(d).scrollTop=e(d).scrollHeight)}function ye(){e(d)&&t(U,e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<80)}const ae=80,ne=50;let z=s(ae),oe=s(0),we=s(!0),f=s(!1),J=s("");async function ce(){if(e(f)||!e(l))return;if(e(S).length>e(z)){t(z,e(z)+ae);return}if(!e(we))return;t(f,!0);const c=e(d),x=c?{h:c.scrollHeight,top:c.scrollTop}:null;try{const X=await he.history(e(l),{limit:ne,offset:e(oe)});(X.cards??[]).length===0?t(we,!1):($a(e(l),X.cards),t(oe,e(oe)+ne),t(z,e(z)+ae),X.hasMore===!1&&t(we,!1),x&&c&&(await Nt(),c.scrollTop=c.scrollHeight-x.h+x.top))}catch(X){console.warn("[page] loadEarlier failed",X)}finally{t(f,!1)}}let ue=s("");function qe(c){if(c<60)return`${c}s`;const x=Math.floor(c/60),X=c%60;return X===0?`${x}m`:`${x}m ${X}s`}function Ve(){Le()}async function Ae(c){if(!(!e(l)||!c))try{await he.revertSession(e(l),c);const{cards:x,lastSeq:X}=await he.history(e(l)),{setHistory:Fe}=await sa(async()=>{const{setHistory:Se}=await import("../chunks/t4ji6lDi.js").then(He=>He.B);return{setHistory:Se}},__vite__mapDeps([0,1]),import.meta.url);Fe(e(l),x,X),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(l),sinceSeq:X}}))}catch{}}let de=s(!1),Z=s();async function w(c){try{const x=await he.revertState(c);t(de,x.reverted),t(Z,x.messageID)}catch{t(de,!1),t(Z,void 0)}}async function N(){if(e(l))try{await he.unrevertSession(e(l)),t(de,!1);const{cards:c,lastSeq:x}=await he.history(e(l)),{setHistory:X}=await sa(async()=>{const{setHistory:Fe}=await import("../chunks/t4ji6lDi.js").then(Se=>Se.B);return{setHistory:Fe}},__vite__mapDeps([0,1]),import.meta.url);X(e(l),c,x),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(l),sinceSeq:x}}))}catch{}}const fe=["总结这个项目","最近有什么改动?","运行检查"];let Re=s(!1),Ge=s([]),nt;async function _t(c,x){if(nt!==x){nt=x;try{const X=await he.suggestions(c);t(Ge,X.suggestions??[])}catch{t(Ge,[])}}}let Ue=s(),Pe=s([]);function Le(){if(!e(l))return;const c=[...e(S)].reverse().find(X=>X.kind==="user"),x=c==null?void 0:c.text;x&&he.sendMessage({sessionId:e(l),text:x,clientId:`web_${Date.now()}`})}Qt(()=>{me=new ResizeObserver(()=>{e(u)&&(document.documentElement.style.setProperty("--composer-h",`${e(u).offsetHeight}px`),e(U)&&be()),e(d)&&document.documentElement.style.setProperty("--sbw",`${e(d).offsetWidth-e(d).clientWidth}px`)}),e(u)&&me.observe(e(u)),e(d)&&me.observe(e(d)),H=new IntersectionObserver(X=>{if(!e(U)||!X.some(Se=>!Se.isIntersecting))return;e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<=24?requestAnimationFrame(be):t(U,!1)},{root:e(d),threshold:0}),e(C)&&H.observe(e(C));const c=window.visualViewport,x=()=>{e(U)&&requestAnimationFrame(be)};c==null||c.addEventListener("resize",x),G=()=>c==null?void 0:c.removeEventListener("resize",x)}),Ut(()=>{me==null||me.disconnect(),H==null||H.disconnect(),G==null||G(),e(p)&&clearInterval(e(p))}),g(()=>R(),()=>{t(l,R().params.sessionId??"")}),g(()=>(e(l),e(J)),()=>{e(l)&&e(l)!==e(J)&&(t(J,e(l)),t(z,ae),t(oe,0),t(we,!0),t(f,!1))}),g(()=>(I(),e(l)),()=>{t(k,I()[e(l)])}),g(()=>e(k),()=>{t(b,!e(k)||e(k).order.length===0?!1:e(k).order.some(c=>{var X;const x=(X=e(k).byId[c])==null?void 0:X.kind;return x==="thinking"||x==="streaming"||x==="think-stream"}))}),g(()=>(e(b),e(Z)),()=>{e(b)&&e(Z)&&t(Z,void 0)}),g(()=>e(k),()=>{t(S,Xt(e(k)))}),g(()=>(e(Z),e(S)),()=>{t(_e,e(Z)?(()=>{let c=-1;for(let x=e(S).length-1;x>=0;x--)if(e(S)[x].messageId===e(Z)){c=x;break}return c===-1?e(S):e(S).slice(0,c)})():e(S))}),g(()=>(e(z),e(_e)),()=>{t(P,e(z)>=e(_e).length?e(_e):e(_e).slice(-e(z)))}),g(()=>(Q(),e(l)),()=>{t(O,Q().find(c=>c.id===e(l)))}),g(()=>e(O),()=>{var c;t(ve,(c=e(O))!=null&&c.directory&&e(O).directory.replace(/\/+$/,"").split("/").pop()||"")}),g(()=>(e(b),e(ue),e(l),e(L),e(p)),()=>{e(b)?(e(ue)!==e(l)&&(t(ue,e(l)),t(L,0)),!e(L)&&typeof window<"u"&&(t(L,Date.now()),t(Y,0),e(p)&&clearInterval(e(p)),t(p,setInterval(()=>{t(Y,Math.floor((Date.now()-e(L))/1e3))},1e3)))):(t(L,0),t(Y,0),t(ue,""),e(p)&&(clearInterval(e(p)),t(p,void 0)))}),g(()=>e(S),()=>{t(V,e(S).length?e(S)[e(S).length-1]:null)}),g(()=>e(l),()=>{e(l)&&(e(l),w(e(l)))}),g(()=>(e(b),e(V),e(l)),()=>{var c;!e(b)&&((c=e(V))==null?void 0:c.kind)==="assistant"&&e(l)&&e(V).id&&_t(e(l),e(V).id)}),g(()=>(e(l),e(Ue)),()=>{e(l)!==e(Ue)&&(t(Ue,e(l)),t(Re,!1))}),g(()=>(e(b),e(Re),ee(),e(k),B(),e(Ge),e(S)),()=>{e(b)||e(Re)||!ee()||!e(k)||B()?t(Pe,[]):e(Ge).length>0?t(Pe,e(Ge)):e(S).length===0?t(Pe,fe):t(Pe,[])}),g(()=>(e(l),e(k),e(S)),()=>{var c;t(te,`${e(l)}:${((c=e(k))==null?void 0:c.lastSeq)??0}:${e(S).length}`)}),g(()=>(e(te),e(le),e(U)),()=>{e(te)!==e(le)&&(t(le,e(te)),Nt().then(()=>{e(U)&&be()}))}),St(),kt();var ze=wn(),Ze=Be(ze),dt=n(Ze),vt=n(dt),$t=n(vt),v=r($t,2);{var o=c=>{var x=vn();$("click",x,()=>la.set(!0)),m(c,x)};D(v,c=>{y()||c(o)})}var _=r(v,2);Ps(_,{get activeId(){return e(l)}});var q=r(_,2);{var W=c=>{var x=un(),X=n(x,!0);a(x),j(()=>T(X,e(ve))),m(c,x)};D(q,c=>{e(ve)&&c(W)})}a(vt);var A=r(vt,2),ge=n(A);{var Ce=c=>{var x=fn(),X=r(n(x));a(x),j(Fe=>T(X,` 运行中 ${Fe??""}`),[()=>(e(Y),i(()=>qe(e(Y))))]),m(c,x)},ut=c=>{var x=mn(),X=Be(x);{var Fe=Se=>{var He=pn();$("click",He,N),m(Se,He)};D(X,Se=>{e(de)&&Se(Fe)})}qt(2),m(c,x)};D(ge,c=>{e(b)?c(Ce):c(ut,-1)})}var Te=r(ge,2),ke=r(Te,2);a(A),a(dt);var je=r(dt,2);let Qe;var et=n(je);{var it=c=>{var x=hn(),X=n(x,!0);a(x),j(()=>{x.disabled=e(f),T(X,e(f)?"加载中…":"加载更早消息")}),$("click",x,ce),m(c,x)};D(et,c=>{e(S),e(z),e(we),i(()=>e(S).length>0&&(e(S).length>e(z)||e(we)))&&c(it)})}var lt=r(et,2);Oe(lt,1,()=>e(P),c=>c.id,(c,x)=>{const X=Lt(()=>(e(x),e(V),e(b),i(()=>{var Se;return e(x).id===((Se=e(V))==null?void 0:Se.id)&&e(x).kind==="assistant"&&!e(b)}))),Fe=Lt(()=>($e(e(X)),e(V),i(()=>{var Se;return e(X)&&((Se=e(V))==null?void 0:Se.kind)==="assistant"?e(V).messageId:void 0})));{let Se=Lt(()=>e(X)?Ve:void 0),He=Lt(()=>e(X)&&e(Fe)?()=>Ae(e(Fe)):void 0);La(c,{get card(){return e(x)},onRetry:Le,get onRegenerate(){return e(Se)},get onRevert(){return e(He)}})}});var ot=r(lt,2);Ye(ot,c=>t(C,c),()=>e(C));var ct=r(ot,2);{var Ct=c=>{var x=Tt(),X=Be(x);{var Fe=He=>{var Ot=_n();m(He,Ot)},Se=He=>{var Ot=bn();m(He,Ot)};D(X,He=>{e(k)?He(Se,-1):He(Fe)})}m(c,x)};D(ct,c=>{e(S),i(()=>e(S).length===0)&&c(Ct)})}a(je),a(Ze),Ye(Ze,c=>t(d,c),()=>e(d));var tt=r(Ze,2);{var Et=c=>{var x=gn();$("click",x,be),m(c,x)};D(tt,c=>{e(U),e(S),i(()=>!e(U)&&e(S).length>0)&&c(Et)})}var bt=r(tt,2),Dt=n(bt);Na(Dt,{get suggestions(){return e(Pe)},onPick:c=>Zt.set({text:c,nonce:Date.now()}),onDismiss:()=>{t(Re,!0),t(Pe,[])}});var Jt=r(Dt,2);js(Jt,{get sessionId(){return e(l)}}),a(bt),Ye(bt,c=>t(u,c),()=>e(u));var Bt=r(bt,2);dn(Bt,{get sessionId(){return e(l)},onJump:c=>Vt("/"+c)}),j(()=>Qe=st(je,1,"stream conversation-emerald svelte-eho102",null,Qe,{suppressed:E()})),$("click",$t,()=>Vt("/")),$("click",Te,()=>Kt.update(c=>!c)),$("click",ke,()=>Kt.update(c=>!c)),$("scroll",Ze,ye),m(Ie,ze),yt(),F()}export{Mn as component};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/DyVtfOqD.js","../chunks/BjY4dxcB.js"])))=>i.map(i=>d[i]);
2
+ import{_ as sa}from"../chunks/C1FmrZbK.js";import"../chunks/CWj6FrbW.js";import{s as kt,f as he,q as Ut,m as Xt,j as ba,H as ga,z as wa,l as ca,a as na,b as oa,c as ra,k as ka,B as Ft,e as xa,D as ya,x as $a}from"../chunks/DyVtfOqD.js";import{aE as xt,M as Tt,a4 as Be,w as m,aB as yt,V as $e,b4 as i,J as n,aK as a,a$ as D,a8 as e,aR as T,a3 as $,aU as r,a6 as h,az as Qt,ap as g,aO as t,aq as St,$ as ht,au as s,b2 as da,aw as qt,av as Mt,ay as Gt,b1 as Nt,aI as Ia,b5 as Ht,b0 as Sa,a7 as Ca,Z as Lt}from"../chunks/BjY4dxcB.js";import{i as j,s as Pt,a as Me}from"../chunks/Chcp5gAM.js";import{i as Oe,B as Wt,I as Xe,z as re,A as st,l as Dt,c as Ea,f as Zt,g as va,t as Ma,h as qa,v as Ta,K as ia,a as Da,F as ja,E as Ba,q as Oa,m as Kt,r as Aa,s as Ra,y as Pa,C as La,o as la,j as za}from"../chunks/D8mS_dO0.js";import{p as wt,b as Ye}from"../chunks/vlg9iH2u.js";import{g as Vt}from"../chunks/DQw6xsKi.js";var Ha=h('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),Fa=h('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function Na(Ie,ie){xt(ie,!1);let R=wt(ie,"suggestions",24,()=>[]),I=wt(ie,"onPick",8,()=>{}),Q=wt(ie,"onDismiss",8,()=>{});kt();var ee=Tt(),B=Be(ee);{var y=E=>{var M=Fa(),H=n(M);Oe(H,3,R,l=>l,(l,k,S)=>{var O=Ha(),ve=n(O,!0);a(O),D(b=>{Wt(O,b),T(ve,e(k))},[()=>($e(e(S)),i(()=>`animation-delay: ${Math.min(e(S),5)*45}ms`))]),$("click",O,()=>I()(e(k))),m(l,O)});var _e=r(H,2),P=n(_e);Xe(P,{name:"close",size:12}),a(_e),a(M),$("click",_e,function(...l){var k;(k=Q())==null||k.apply(this,l)}),m(E,M)};j(B,E=>{$e(R()),i(()=>R().length>0)&&E(y)})}m(Ie,ee),yt()}var Wa=h('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Ka=h('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Va=h('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ua=h('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <button class="chip icon mono svelte-1f5vmb3" aria-haspopup="listbox"><!></button> <!></div>');function Ga(Ie,ie){xt(ie,!1);const R=s();let I=s(!1),Q=s(),ee=s([]),B=s({agent:null,model:null});async function y(){try{await(async u=>{var C=da(u,2);t(ee,C[0]),t(B,C[1])})(await Promise.all([he.agents(),he.getOverrides()]))}catch{}}Qt(y);async function E(u){await he.setOverrides({agent:u.name}),await y(),t(I,!1)}async function M(){await he.setOverrides({agent:null}),await y(),t(I,!1)}function H(u){u.key==="Escape"&&e(I)&&t(I,!1)}function _e(u){e(I)&&e(Q)&&!e(Q).contains(u.target)&&t(I,!1)}g(()=>e(B),()=>{t(R,e(B).agent??"default")}),St(),kt();var P=Ua();$("keydown",ht,H),$("click",ht,_e);var l=n(P),k=n(l);Xe(k,{name:"cpu",size:11});var S=r(k,2),O=n(S,!0);a(S);var ve=r(S,2);Xe(ve,{name:"caret-down",size:9}),a(l);var b=r(l,2),V=n(b);Xe(V,{name:"cpu",size:14}),a(b);var te=r(b,2);{var d=u=>{var C=Va(),F=n(C);{var le=Y=>{var p=Wa();m(Y,p)};j(F,Y=>{e(ee),i(()=>e(ee).length===0)&&Y(le)})}var me=r(F,2);Oe(me,1,()=>e(ee),Y=>Y.name,(Y,p)=>{var G=Ka();let be;var ye=n(G),ae=n(ye,!0);a(ye);var ne=r(ye,2),z=n(ne,!0);a(ne),a(G),D(oe=>{be=st(G,1,"opt svelte-1f5vmb3",null,be,{sel:e(p).name===e(B).agent}),re(G,"aria-selected",(e(p),e(B),i(()=>e(p).name===e(B).agent))),T(ae,(e(p),i(()=>e(p).name))),T(z,oe)},[()=>(e(p),i(()=>e(p).model.split("/").pop()))]),$("click",G,()=>E(e(p))),m(Y,G)});var U=r(me,2),L=n(U);Xe(L,{name:"close",size:11}),qt(),a(U),a(C),D(()=>re(U,"aria-selected",(e(B),i(()=>e(B).agent==null)))),$("click",U,M),m(u,C)};j(te,u=>{e(I)&&u(d)})}a(P),Ye(P,u=>t(Q,u),()=>e(Q)),D(()=>{re(l,"aria-expanded",e(I)),T(O,e(R)),re(b,"aria-label",`Agent:${e(R)}`),re(b,"aria-expanded",e(I))}),$("click",l,()=>{t(I,!e(I)),e(I)&&y()}),$("click",b,()=>{t(I,!e(I)),e(I)&&y()}),m(Ie,P),yt()}var Ja=h('<div class="none label svelte-1005b73">暂无模型</div>'),Ya=h('<button role="option"><span> </span></button>'),Xa=h('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Za=h('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Qa=h('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <button class="chip icon mono svelte-1005b73" aria-haspopup="listbox"><!></button> <!></div>');function es(Ie,ie){xt(ie,!1);const R=s();let I=s(!1),Q=s(),ee=s([]),B=s({agent:null,model:null});async function y(){try{await(async u=>{var C=da(u,2);t(ee,C[0]),t(B,C[1])})(await Promise.all([he.models(),he.getOverrides()]))}catch{}}Qt(y);async function E(u,C){await he.setOverrides({model:{providerID:u,modelID:C}}),await y(),t(I,!1)}async function M(){await he.setOverrides({model:null}),await y(),t(I,!1)}function H(u){u.key==="Escape"&&e(I)&&t(I,!1)}function _e(u){e(I)&&e(Q)&&!e(Q).contains(u.target)&&t(I,!1)}g(()=>e(B),()=>{var u;t(R,((u=e(B).model)==null?void 0:u.modelID)??"model")}),St(),kt();var P=Qa();$("keydown",ht,H),$("click",ht,_e);var l=n(P),k=n(l);Xe(k,{name:"bolt",size:11});var S=r(k,2),O=n(S,!0);a(S);var ve=r(S,2);Xe(ve,{name:"caret-down",size:9}),a(l);var b=r(l,2),V=n(b);Xe(V,{name:"bolt",size:14}),a(b);var te=r(b,2);{var d=u=>{var C=Za(),F=n(C);{var le=Y=>{var p=Ja();m(Y,p)};j(F,Y=>{e(ee),i(()=>e(ee).length===0)&&Y(le)})}var me=r(F,2);Oe(me,1,()=>e(ee),Y=>Y.id,(Y,p)=>{var G=Xa(),be=Be(G),ye=n(be,!0);a(be);var ae=r(be,2);Oe(ae,1,()=>(e(p),i(()=>e(p).models)),ne=>ne.id,(ne,z)=>{var oe=Ya();let we;var f=n(oe),J=n(f,!0);a(f),a(oe),D(()=>{var ce,ue;we=st(oe,1,"opt svelte-1005b73",null,we,{sel:((ce=e(B).model)==null?void 0:ce.providerID)===e(p).id&&((ue=e(B).model)==null?void 0:ue.modelID)===e(z).id}),re(oe,"aria-selected",(e(B),e(p),e(z),i(()=>{var qe,Ve;return((qe=e(B).model)==null?void 0:qe.providerID)===e(p).id&&((Ve=e(B).model)==null?void 0:Ve.modelID)===e(z).id}))),T(J,(e(z),i(()=>e(z).name||e(z).id)))}),$("click",oe,()=>E(e(p).id,e(z).id)),m(ne,oe)}),D(()=>T(ye,(e(p),i(()=>e(p).id)))),m(Y,G)});var U=r(me,2),L=n(U);Xe(L,{name:"close",size:11}),qt(),a(U),a(C),D(()=>re(U,"aria-selected",(e(B),i(()=>e(B).model==null)))),$("click",U,M),m(u,C)};j(te,u=>{e(I)&&u(d)})}a(P),Ye(P,u=>t(Q,u),()=>e(Q)),D(()=>{re(l,"aria-expanded",e(I)),T(O,e(R)),re(b,"aria-label",`模型:${e(R)}`),re(b,"aria-expanded",e(I))}),$("click",l,()=>{t(I,!e(I)),e(I)&&y()}),$("click",b,()=>{t(I,!e(I)),e(I)&&y()}),m(Ie,P),yt()}var ts=h('<button role="option"> </button>'),as=h('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ss=h('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),ns=h('<button role="option"> </button>'),os=h('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),rs=h('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),is=h('<div class="controls svelte-dkbq22"><!> <!></div>');function ls(Ie,ie){xt(ie,!1);const R=s(),I=s(),Q=s(),ee=s();let B=wt(ie,"sessionId",8),y=s({}),E=s(null);async function M(){const d=B();try{const u=await he.controls(d);if(d!==B())return;t(y,u)}catch{d===B()&&t(y,{})}}async function H(d){e(y).mode&&Mt(y,e(y).mode={...e(y).mode,current:d}),t(E,null);try{await he.setMode(B(),d)}catch{}await M()}async function _e(d){e(y).model&&Mt(y,e(y).model={...e(y).model,current:d}),t(E,null);try{await he.setModel(B(),d)}catch{}await M()}function P(d){t(E,e(E)===d?null:d)}let l=s();function k(d){d.key==="Escape"&&e(E)&&t(E,null)}function S(d){e(E)&&e(l)&&!e(l).contains(d.target)&&t(E,null)}g(()=>$e(B()),()=>{B()&&M()}),g(()=>e(y),()=>{var d;t(R,((d=e(y).mode)==null?void 0:d.options)??[])}),g(()=>e(y),()=>{var d;t(I,((d=e(y).model)==null?void 0:d.options)??[])}),g(()=>e(y),()=>{var d,u,C;t(Q,((u=(d=e(y).mode)==null?void 0:d.options.find(F=>{var le;return F.id===((le=e(y).mode)==null?void 0:le.current)}))==null?void 0:u.name)??((C=e(y).mode)==null?void 0:C.current)??"mode")}),g(()=>e(y),()=>{var d,u,C;t(ee,((u=(d=e(y).model)==null?void 0:d.options.find(F=>{var le;return F.id===((le=e(y).model)==null?void 0:le.current)}))==null?void 0:u.name)??((C=e(y).model)==null?void 0:C.current)??"model")}),St(),kt();var O=is();$("keydown",ht,k),$("click",ht,S);var ve=n(O);{var b=d=>{var u=ss(),C=n(u),F=n(C);Xe(F,{name:"bolt",size:11});var le=r(F,2),me=n(le,!0);a(le);var U=r(le,2);Xe(U,{name:"caret-down",size:9}),a(C);var L=r(C,2);{var Y=p=>{var G=as(),be=r(n(G),2);Oe(be,1,()=>e(R),Dt,(ye,ae)=>{var ne=ts();let z;var oe=n(ne,!0);a(ne),D(()=>{var we;z=st(ne,1,"opt svelte-dkbq22",null,z,{sel:e(ae).id===((we=e(y).mode)==null?void 0:we.current)}),re(ne,"aria-selected",(e(ae),e(y),i(()=>{var f;return e(ae).id===((f=e(y).mode)==null?void 0:f.current)}))),T(oe,(e(ae),i(()=>e(ae).name)))}),$("click",ne,()=>H(e(ae).id)),m(ye,ne)}),a(G),m(p,G)};j(L,p=>{e(E)==="mode"&&p(Y)})}a(u),D(()=>{re(C,"aria-expanded",e(E)==="mode"),T(me,e(Q))}),$("click",C,()=>P("mode")),m(d,u)};j(ve,d=>{e(R),i(()=>e(R).length>0)&&d(b)})}var V=r(ve,2);{var te=d=>{var u=rs(),C=n(u),F=n(C);Xe(F,{name:"cpu",size:11});var le=r(F,2),me=n(le,!0);a(le);var U=r(le,2);Xe(U,{name:"caret-down",size:9}),a(C);var L=r(C,2);{var Y=p=>{var G=os(),be=r(n(G),2);Oe(be,1,()=>e(I),Dt,(ye,ae)=>{var ne=ns();let z;var oe=n(ne,!0);a(ne),D(()=>{var we;z=st(ne,1,"opt svelte-dkbq22",null,z,{sel:e(ae).id===((we=e(y).model)==null?void 0:we.current)}),re(ne,"aria-selected",(e(ae),e(y),i(()=>{var f;return e(ae).id===((f=e(y).model)==null?void 0:f.current)}))),T(oe,(e(ae),i(()=>e(ae).name)))}),$("click",ne,()=>_e(e(ae).id)),m(ye,ne)}),a(G),m(p,G)};j(L,p=>{e(E)==="model"&&p(Y)})}a(u),D(()=>{re(C,"aria-expanded",e(E)==="model"),T(me,e(ee))}),$("click",C,()=>P("model")),m(d,u)};j(V,d=>{e(I),i(()=>e(I).length>0)&&d(te)})}a(O),Ye(O,d=>t(l,d),()=>e(l)),m(Ie,O),yt()}const zt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Yt(Ie){if(!Ie)return 0;let ie=0;for(const I of Ie)(I.codePointAt(0)??0)>=11904&&ie++;const R=Ie.length-ie;return Math.round(ie*.6+R*.25)}function cs(Ie,ie){let R=0,I=0,Q=0;for(const E of Ie)if(E.kind==="user")R+=Yt(String(E.text??""));else if(E.kind==="assistant")for(const M of E.blocks??[])M.type==="text"?I+=Yt(String(M.text??"")):M.type==="tool"&&(Q+=Yt(String(M.args??"")));const ee=R+I+Q,B=Math.max(0,ie-ee),y=[{key:"用户",tokens:R,color:zt.user},{key:"助手",tokens:I,color:zt.assistant},{key:"工具调用",tokens:Q,color:zt.tool}];return B>0&&y.push({key:"其他",tokens:B,color:zt.other}),{segments:y.filter(E=>E.tokens>0),accounted:ee,used:ie}}var ds=h('<span class="seg svelte-4bdpxt"></span>'),vs=h('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=h('<div class="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div>',1),fs=h('<div class="bar svelte-4bdpxt" aria-hidden="true"></div>'),ps=h('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=h('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=h('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=h('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),bs=h('<div class="pop svelte-4bdpxt" role="dialog" aria-label="上下文用量"><div class="head svelte-4bdpxt"><span class="label svelte-4bdpxt">上下文</span> <span class="mono dim svelte-4bdpxt"> </span></div> <!> <div class="rows svelte-4bdpxt"><!> <!> <!> <!></div></div>'),gs=h('<div class="wrap svelte-4bdpxt"><button class="ring svelte-4bdpxt" title="上下文占用"><svg viewBox="0 0 24 24" aria-hidden="true" class="svelte-4bdpxt"><circle class="track svelte-4bdpxt" cx="12" cy="12"></circle><circle class="arc svelte-4bdpxt" cx="12" cy="12" transform="rotate(-90 12 12)"></circle></svg> <span class="pct mono svelte-4bdpxt"> <i class="svelte-4bdpxt">%</i></span></button> <!></div>');function ws(Ie,ie){xt(ie,!1);const R=()=>Me(Ut,"$feeds",I),[I,Q]=Pt(),ee=s(),B=s(),y=s(),E=s(),M=s(),H=s(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s(),b=s(),V=s(),te=s();let d=wt(ie,"sessionId",8),u=s({}),C=s(!1),F=s(),le,me=s(),U=s(-1),L=s();async function Y(w){try{t(u,await he.context(w))}catch{}}function p(){document.hidden||Y(d())}typeof document<"u"&&document.addEventListener("visibilitychange",p),Gt(()=>{clearTimeout(e(L)),clearTimeout(le),typeof document<"u"&&document.removeEventListener("visibilitychange",p)});const G=10,be=2*Math.PI*G;function ye(w){return w>=1e6?(w/1e6).toFixed(1)+"M":w>=1e3?(w/1e3).toFixed(1)+"k":String(w)}function ae(w){return w==null?"—":`$${w.toFixed(3)}`}function ne(){clearTimeout(le),t(C,!0)}function z(){clearTimeout(le),le=setTimeout(()=>t(C,!1),180)}function oe(w){w.key==="Escape"&&t(C,!1)}function we(w){e(C)&&e(F)&&!e(F).contains(w.target)&&t(C,!1)}g(()=>($e(d()),e(me)),()=>{d()!==e(me)&&(t(me,d()),Y(d()))}),g(()=>(R(),$e(d())),()=>{var w;t(ee,((w=R()[d()])==null?void 0:w.lastSeq)??0)}),g(()=>(e(ee),e(U),e(L),$e(d())),()=>{e(ee)!==e(U)&&(t(U,e(ee)),clearTimeout(e(L)),(typeof document>"u"||!document.hidden)&&t(L,setTimeout(()=>void Y(d()),1e3)))}),g(()=>e(u),()=>{var w,N;t(B,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.input)=="number"?e(u).tokens.input:0)}),g(()=>e(u),()=>{var w,N;t(y,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.output)=="number"?e(u).tokens.output:0)}),g(()=>(e(u),e(B),e(y)),()=>{var w,N;t(E,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.used)=="number"?e(u).tokens.used:e(B)+e(y))}),g(()=>e(u),()=>{var w,N;t(M,typeof((N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.max)=="number"?e(u).tokens.max:void 0)}),g(()=>(e(E),e(M)),()=>{t(H,e(E)>0&&e(M)?Math.min(100,e(E)/e(M)*100):0)}),g(()=>e(H),()=>{t(_e,e(H)>=90?"var(--err)":e(H)>=70?"var(--warn)":"var(--ok)")}),g(()=>e(u),()=>{var w;t(P,(w=e(u))!=null&&w.model?String(e(u).model).split("/").pop():void 0)}),g(()=>e(u),()=>{var w;t(l,typeof((w=e(u))==null?void 0:w.cost)=="number"?e(u).cost:void 0)}),g(()=>e(u),()=>{var w,N,fe;t(k,typeof((fe=(N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.cache)==null?void 0:fe.read)=="number"?e(u).tokens.cache.read:0)}),g(()=>e(u),()=>{var w,N,fe;t(S,typeof((fe=(N=(w=e(u))==null?void 0:w.tokens)==null?void 0:N.cache)==null?void 0:fe.write)=="number"?e(u).tokens.cache.write:0)}),g(()=>(e(B),e(k)),()=>{t(O,e(B)+e(k)>0?Math.round(e(k)/(e(B)+e(k))*100):void 0)}),g(()=>(R(),$e(d())),()=>{t(ve,R()[d()])}),g(()=>e(ve),()=>{t(b,Xt(e(ve)).filter(w=>w.kind==="user"||w.kind==="assistant").length)}),g(()=>e(ve),()=>{t(V,Xt(e(ve)))}),g(()=>(e(V),e(E)),()=>{t(te,cs(e(V),e(E)))}),St(),kt();var f=gs();$("keydown",ht,oe),$("click",ht,we);var J=n(f),ce=n(J),ue=n(ce);re(ue,"r",G);var qe=r(ue);re(qe,"r",G),a(ce);var Ve=r(ce,2),Ae=n(Ve,!0);qt(),a(Ve),a(J);var de=r(J,2);{var Z=w=>{var N=bs(),fe=n(N),Re=r(n(fe),2),Ue=n(Re);a(Re),a(fe);var nt=r(fe,2);{var _t=_=>{var q=us(),W=Be(q);Oe(W,5,()=>(e(te),i(()=>e(te).segments)),Dt,(ge,Ce)=>{var ut=ds();D(()=>Wt(ut,(e(Ce),e(te),i(()=>`width:${e(Ce).tokens/(e(te).used||1)*100}%; background:${e(Ce).color}`)))),m(ge,ut)}),a(W);var A=r(W,2);Oe(A,5,()=>(e(te),i(()=>e(te).segments)),Dt,(ge,Ce)=>{var ut=vs(),Te=n(ut),ke=r(Te);a(ut),D(De=>{Wt(Te,(e(Ce),i(()=>`background:${e(Ce).color}`))),T(ke,`${e(Ce),i(()=>e(Ce).key)??""} ${De??""}%`)},[()=>(e(E),e(Ce),i(()=>e(E)>0?(e(Ce).tokens/e(E)*100).toFixed(1):"0"))]),m(ge,ut)}),a(A),m(_,q)},Ge=_=>{var q=fs();m(_,q)};j(nt,_=>{e(te),i(()=>e(te).segments.length>0)?_(_t):_(Ge,-1)})}var Pe=r(nt,2),Le=n(Pe);{var ze=_=>{var q=ps(),W=r(n(q)),A=n(W);a(W),a(q),D(()=>T(A,`${e(O)??""}%`)),m(_,q)};j(Le,_=>{e(O)!=null&&_(ze)})}var Ze=r(Le,2);{var dt=_=>{var q=ms(),W=r(n(q)),A=n(W,!0);a(W),a(q),D(()=>T(A,e(b))),m(_,q)};j(Ze,_=>{e(b)>0&&_(dt)})}var vt=r(Ze,2);{var $t=_=>{var q=hs(),W=r(n(q)),A=n(W,!0);a(W),a(q),D(()=>T(A,e(P))),m(_,q)};j(vt,_=>{e(P)&&_($t)})}var v=r(vt,2);{var o=_=>{var q=_s(),W=r(n(q)),A=n(W,!0);a(W),a(q),D(ge=>T(A,ge),[()=>(e(l),i(()=>ae(e(l))))]),m(_,q)};j(v,_=>{e(l)!=null&&_(o)})}a(Pe),a(N),D((_,q)=>T(Ue,`${_??""} / ${q??""}`),[()=>(e(E),i(()=>ye(e(E)))),()=>(e(M),i(()=>ye(e(M))))]),m(w,N)};j(de,w=>{e(C)&&e(M)&&w(Z)})}a(f),Ye(f,w=>t(F,w),()=>e(F)),D((w,N,fe)=>{re(J,"aria-label",w),re(J,"aria-expanded",e(C)),re(qe,"stroke",e(_e)),re(qe,"stroke-dasharray",N),T(Ae,fe)},[()=>(e(H),i(()=>`上下文占用 ${e(H).toFixed(0)}%`)),()=>(e(H),i(()=>`${Math.max(be*e(H)/100,e(H)>0?1.5:0)} ${be}`)),()=>(e(H),i(()=>e(H).toFixed(0)))]),$("click",J,()=>t(C,!e(C))),$("mouseenter",f,ne),$("mouseleave",f,z),m(Ie,f),yt(),Q()}var ks=h('<div class="error svelte-60fagq" role="alert"> </div>'),xs=h('<button role="option"> </button>'),ys=h('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),$s=h('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),Is=h('<div class="thumbnails svelte-60fagq"></div>'),Ss=h('<button class="attach svelte-60fagq" aria-label="附加图片"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></button> <input type="file" accept="image/*" multiple="" style="display:none"/>',1),Cs=h("<!> <!>",1),Es=h('<button class="send stop svelte-60fagq" aria-label="停止" title="停止生成"><svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2"></rect></svg></button>'),Ms=Ca('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"></path></svg>'),qs=h('<button class="send svelte-60fagq" aria-label="发送"><!></button>'),Ts=h('<div class="composer svelte-60fagq"><div class="dock svelte-60fagq"><!> <div><!> <!> <textarea aria-label="消息输入" class="svelte-60fagq"></textarea> <div class="footer svelte-60fagq"><!> <!> <!> <!> <button class="hint command svelte-60fagq">「/」命令</button> <span class="spacer svelte-60fagq"></span> <span class="hint send-hint svelte-60fagq">↵ 发送 · ⇧↵ 换行</span> <!></div></div></div></div>');function Ds(Ie,ie){xt(ie,!1);const R=()=>Me(Zt,"$composerDraft",y),I=()=>Me(Ut,"$feeds",y),Q=()=>Me(ca,"$can",y),ee=()=>Me(qa,"$connection",y),B=()=>Me(ba,"$backendName",y),[y,E]=Pt(),M=s(),H=s(),_e=s();let P=wt(ie,"sessionId",8),l=s(""),k=s(),S=s(!1),O=s(""),ve=s(!1),b=s(),V=s([]),te=s([]),d=s(0),u=0,C,F=!1;async function le(){if(!F){F=!0;try{await he.abort(P())}catch{}finally{F=!1}}}function me(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function U(v){const o=new FileReader;o.onload=()=>{var Ce;const _=o.result,q=_.indexOf(","),W=_.slice(0,q),A=_.slice(q+1),ge=((Ce=W.match(/data:(.*?);/))==null?void 0:Ce[1])??v.type;t(V,[...e(V),{data:A,mimeType:ge,preview:_}])},o.readAsDataURL(v)}function L(v){const o=v.target;if(o.files){for(const _ of o.files)U(_);o.value=""}}function Y(v){if(!Q()("imageInput")||!v.clipboardData)return;const o=[...v.clipboardData.items].filter(_=>_.type.startsWith("image/"));if(o.length){v.preventDefault();for(const _ of o){const q=_.getAsFile();q&&U(q)}}}function p(v){t(V,e(V).filter((o,_)=>_!==v))}function G(){if(!e(k))return null;const v=e(k).selectionStart,_=e(l).slice(0,v).match(/(^|[\s])@([^\s]*)$/);return _?{token:_[2],start:v-_[2].length-1}:null}function be(){const v=G();if(!v){t(te,[]),clearTimeout(C);return}u=v.start,t(d,0),clearTimeout(C);const o=v.token;C=setTimeout(async()=>{try{t(te,await he.files(P(),o))}catch{t(te,[])}},150)}function ye(v){const o=e(k).selectionStart,_=e(l).slice(0,u),q=e(l).slice(o),W=`@${v} `;t(l,_+W+q),t(te,[]),Nt().then(()=>{const A=_.length+W.length;Mt(k,e(k).selectionStart=Mt(k,e(k).selectionEnd=A)),e(k).focus(),z()})}async function ae(){var W;const v=e(l).trim();if(!v&&e(V).length===0||e(S))return;if(ee()!=="connected"){t(O,"Disconnected — reconnecting…");return}const o=me(),_=e(V).map(({data:A,mimeType:ge})=>({data:A,mimeType:ge}));t(S,!0),t(O,""),ga({kind:"user",sessionId:P(),text:v,ts:Date.now(),id:`user:${o}`}),t(l,"");const q=[...e(V)];t(V,[]),z();try{await he.sendMessage({sessionId:P(),text:v,clientId:o,..._.length?{images:_}:{}})}catch(A){t(O,`Send failed: ${A.message}`),wa(`user:${o}`),t(l,v),t(V,q)}finally{t(S,!1),(W=e(k))==null||W.focus()}}function ne(v){if(e(te).length>0){if(v.key==="ArrowDown"){v.preventDefault(),t(d,Math.min(e(d)+1,e(te).length-1));return}if(v.key==="ArrowUp"){v.preventDefault(),t(d,Math.max(e(d)-1,0));return}if(v.key==="Enter"||v.key==="Tab"){v.preventDefault(),ye(e(te)[e(d)]);return}if(v.key==="Escape"){v.preventDefault(),t(te,[]);return}}v.key!=="Enter"||v.shiftKey||v.isComposing||v.keyCode===229||(v.preventDefault(),ae())}function z(){e(k)&&(Mt(k,e(k).style.height="auto"),Mt(k,e(k).style.height=Math.min(e(k).scrollHeight,140)+"px"))}Gt(()=>clearTimeout(C)),g(()=>(R(),e(k)),()=>{const v=R();v&&(t(l,v.text),Zt.set(void 0),Nt().then(()=>{var o;return(o=e(k))==null?void 0:o.focus()}),z())}),g(()=>e(l),()=>{va.set(!e(l).trim())}),g(()=>e(l),()=>{t(M,e(l).trim().length>0)}),g(()=>(e(k),e(l)),()=>{e(k)&&e(l)!==void 0&&z()}),g(()=>(I(),$e(P())),()=>{t(H,(()=>{const v=I()[P()];if(!v||v.order.length===0)return!1;const o=v.byId[v.order[v.order.length-1]];return(o==null?void 0:o.kind)==="thinking"||(o==null?void 0:o.kind)==="streaming"||(o==null?void 0:o.kind)==="think-stream"})())}),g(()=>(e(H),e(M),e(S)),()=>{t(_e,e(H)&&!e(M)&&!e(S))}),St(),kt();var oe=Ts(),we=n(oe),f=n(we);{var J=v=>{var o=ks(),_=n(o,!0);a(o),D(()=>T(_,e(O))),m(v,o)};j(f,v=>{e(O)&&v(J)})}var ce=r(f,2);let ue;var qe=n(ce);{var Ve=v=>{var o=ys();Oe(o,5,()=>e(te),Dt,(_,q,W)=>{var A=xs();let ge;var Ce=n(A,!0);a(A),D(()=>{ge=st(A,1,"mention-row svelte-60fagq",null,ge,{active:W===e(d)}),re(A,"aria-selected",W===e(d)),T(Ce,e(q))}),$("mousedown",A,Ta(()=>ye(e(q)))),m(_,A)}),a(o),m(v,o)};j(qe,v=>{e(te),i(()=>e(te).length>0)&&v(Ve)})}var Ae=r(qe,2);{var de=v=>{var o=Is();Oe(o,5,()=>e(V),Dt,(_,q,W)=>{var A=$s(),ge=n(A),Ce=r(ge,2);a(A),D(()=>re(ge,"src",(e(q),i(()=>e(q).preview)))),$("click",Ce,()=>p(W)),m(_,A)}),a(o),m(v,o)};j(Ae,v=>{e(V),i(()=>e(V).length>0)&&v(de)})}var Z=r(Ae,2);Ia(Z),re(Z,"rows",1),Ye(Z,v=>t(k,v),()=>e(k));var w=r(Z,2),N=n(w);{var fe=v=>{var o=Ss(),_=Be(o),q=r(_,2);Ye(q,W=>t(b,W),()=>e(b)),$("click",_,()=>e(b).click()),$("change",q,L),m(v,o)},Re=Ht(()=>(Q(),i(()=>Q()("imageInput"))));j(N,v=>{e(Re)&&v(fe)})}var Ue=r(N,2);{var nt=v=>{var o=Cs(),_=Be(o);Ga(_,{});var q=r(_,2);es(q,{}),m(v,o)},_t=Ht(()=>(Q(),i(()=>Q()("catalog"))));j(Ue,v=>{e(_t)&&v(nt)})}var Ge=r(Ue,2);{var Pe=v=>{ls(v,{get sessionId(){return P()}})},Le=Ht(()=>(Q(),i(()=>Q()("sessionControls"))));j(Ge,v=>{e(Le)&&v(Pe)})}var ze=r(Ge,2);ws(ze,{get sessionId(){return P()}});var Ze=r(ze,2),dt=r(Ze,6);{var vt=v=>{var o=Es();$("click",o,le),m(v,o)},$t=v=>{var o=qs(),_=n(o);{var q=A=>{var ge=Sa("…");m(A,ge)},W=A=>{var ge=Ms();m(A,ge)};j(_,A=>{e(S)?A(q):A(W,-1)})}a(o),D(A=>o.disabled=A,[()=>(e(S),e(l),e(V),ee(),i(()=>e(S)||!e(l).trim()&&e(V).length===0||ee()!=="connected"))]),$("click",o,ae),m(v,o)};j(dt,v=>{e(_e)?v(vt):v($t,-1)})}a(w),a(ce),a(we),a(oe),D(()=>{ue=st(ce,1,"box svelte-60fagq",null,ue,{focused:e(ve),"has-text":e(M)}),re(Z,"placeholder",ee()==="connected"?`给 ${B()} 留言…`:"连接断开…")}),Ea(Z,()=>e(l),v=>t(l,v)),$("keydown",Z,ne),$("input",Z,()=>{z(),be()}),$("paste",Z,Y),$("focus",Z,()=>t(ve,!0)),$("blur",Z,()=>t(ve,!1)),$("click",Z,be),$("click",Ze,()=>Ma.set(!0)),m(Ie,oe),yt(),E()}var js=h('<span class="check svelte-rgafhj">✓</span>'),Bs=h('<button><span aria-hidden="true"></span> <span class="info svelte-rgafhj"><span class="row-title svelte-rgafhj"> </span> <span class="row-meta mono svelte-rgafhj"> </span></span> <!></button>'),Os=h('<div class="empty svelte-rgafhj"> </div>'),As=h('<div class="popover svelte-rgafhj" role="dialog" aria-label="会话切换"><div class="list svelte-rgafhj"></div> <div class="footer svelte-rgafhj"><button class="new-session mono svelte-rgafhj"> </button></div></div>'),Rs=h('<div class="switcher svelte-rgafhj"><button class="trigger svelte-rgafhj" aria-haspopup="true" title="Switch session"><span class="glyph-tile svelte-rgafhj"> </span> <span><span class="sr-only svelte-rgafhj"> </span></span> <span class="title svelte-rgafhj"> </span> <span class="caret svelte-rgafhj" aria-hidden="true"><!></span></button> <!></div>');function Ps(Ie,ie){xt(ie,!1);const R=()=>Me(ka,"$backends",B),I=()=>Me(Ft,"$sessionList",B),Q=()=>Me(Da,"$activeWorkspace",B),ee=()=>Me(ia,"$workspaces",B),[B,y]=Pt(),E=s(),M=s(),H=s(),_e=s(),P=s(),l=s();let k=wt(ie,"activeId",8,void 0),S=s(!1),O=s(!1);function ve(f){const J=f.split(/[\s\-_:./]+/).filter(Boolean);return J.length>=2?(J[0][0]+J[1][0]).toUpperCase():f.slice(0,2).toUpperCase()}function b(f){return ve((f==null?void 0:f.name)||(f==null?void 0:f.id)||"OC")}function V(f){return f==="online"||f==="connected"?"online":f==="connecting"||f==="reconnecting"?"connecting":f==="offline"?"offline":"online"}function te(){t(S,!e(S))}function d(f){t(S,!1),Vt(`/${f}/`)}async function u(){var J;if(e(O))return;const f=Q()||((J=ee()[0])==null?void 0:J.directory)||"";t(O,!0);try{await ya(e(E));const ce=await he.createSession({directory:f});Ft.set(await he.sessions()),ia.set(await he.workspaces()),t(S,!1),Vt(`/${ce.id}/`)}catch(ce){alert(`Create session failed: ${ce.message}`)}finally{t(O,!1)}}function C(f){f.key==="Escape"&&t(S,!1)}function F(f){const J=Date.now()-f,ce=Math.floor(J/6e4);if(ce<1)return"now";if(ce<60)return`${ce}m`;const ue=Math.floor(ce/60);return ue<24?`${ue}h`:`${Math.floor(ue/24)}d`}function le(f){return(f.includes("_")?f.slice(f.indexOf("_")+1):f).slice(-8)}g(()=>R(),()=>{var f,J,ce;t(E,((f=R())==null?void 0:f.activeId)??((ce=(J=R())==null?void 0:J.backends[0])==null?void 0:ce.id)??"opencode")}),g(()=>(R(),e(E)),()=>{var f;t(M,(f=R())==null?void 0:f.backends.find(J=>J.id===e(E)))}),g(()=>e(E),()=>{t(H,xa(e(E)))}),g(()=>(I(),e(E)),()=>{t(_e,I().filter(f=>f.backendId===e(E)||!f.backendId&&e(E)==="opencode").sort((f,J)=>J.lastActiveAt-f.lastActiveAt))}),g(()=>(I(),$e(k())),()=>{t(P,I().find(f=>f.id===k()))}),g(()=>e(P),()=>{var f;t(l,((f=e(P))==null?void 0:f.title)||"Untitled session")}),St(),kt();var me=Rs();$("keydown",ht,C);var U=n(me),L=n(U),Y=n(L,!0);a(L);var p=r(L,2),G=n(p),be=n(G,!0);a(G),a(p);var ye=r(p,2),ae=n(ye,!0);a(ye);var ne=r(ye,2),z=n(ne);Xe(z,{name:"caret-down",size:11}),a(ne),a(U);var oe=r(U,2);{var we=f=>{var J=As(),ce=n(J);Oe(ce,5,()=>e(_e),Ae=>Ae.id,(Ae,de)=>{var Z=Bs();let w;var N=n(Z),fe=r(N,2),Re=n(fe),Ue=n(Re,!0);a(Re);var nt=r(Re,2),_t=n(nt);a(nt),a(fe);var Ge=r(fe,2);{var Pe=Le=>{var ze=js();m(Le,ze)};j(Ge,Le=>{e(de),$e(k()),i(()=>e(de).id===k())&&Le(Pe)})}a(Z),D((Le,ze)=>{w=st(Z,1,"row svelte-rgafhj",null,w,{active:e(de).id===k()}),st(N,1,`dot ${e(de),$e(k()),i(()=>e(de).id===k()?"active":"")??""}`,"svelte-rgafhj"),T(Ue,(e(de),i(()=>e(de).title||"Untitled session"))),T(_t,`${Le??""} · ${ze??""}`)},[()=>(e(de),i(()=>le(e(de).id))),()=>(e(de),i(()=>F(e(de).lastActiveAt)))]),$("click",Z,()=>d(e(de).id)),m(Ae,Z)},Ae=>{var de=Os(),Z=n(de);a(de),D(()=>T(Z,`No sessions on ${e(M),i(()=>{var w,N;return((w=e(M))==null?void 0:w.name)??((N=e(M))==null?void 0:N.id)??"this agent"})??""}.`)),m(Ae,de)}),a(ce);var ue=r(ce,2),qe=n(ue),Ve=n(qe);a(qe),a(ue),a(J),D(()=>{qe.disabled=e(O),T(Ve,`+ New session on ${e(M),i(()=>{var Ae,de;return((Ae=e(M))==null?void 0:Ae.name)??((de=e(M))==null?void 0:de.id)??"agent"})??""}`)}),$("click",qe,u),m(f,J)};j(oe,f=>{e(S)&&f(we)})}a(me),D((f,J,ce)=>{re(U,"aria-expanded",e(S)),Wt(L,`background:${$e(na),e(H),i(()=>na[e(H)])??""}; color:${$e(oa),e(H),i(()=>oa[e(H)])??""}; border-color:${$e(ra),e(H),i(()=>ra[e(H)])??""}`),T(Y,f),st(p,1,`status-dot ${J??""}`,"svelte-rgafhj"),T(be,ce),T(ae,e(l))},[()=>(e(M),i(()=>b(e(M)))),()=>(e(M),i(()=>{var f;return V((f=e(M))==null?void 0:f.status)})),()=>(e(M),i(()=>{var f;return V((f=e(M))==null?void 0:f.status)}))]),$("click",U,te),m(Ie,me),yt(),y()}var Ls=h('<button class="ghost svelte-w3h0m4" title="重新显示计划窗"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span></button>'),zs=h('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Hs=h('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Fs=h('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),Ns=h('<button class="crumb svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M15 18l-6-6 6-6"></path></svg> <span> </span></button>'),Ws=h('<div class="row done svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="check svelte-w3h0m4">✓</span></span><span class="tx svelte-w3h0m4"> </span></div>'),Ks=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Vs=h('<div class="row running svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="dot svelte-w3h0m4"></span></span><span class="tx svelte-w3h0m4"> </span></div>'),Us=h('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Gs=h('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Ys=h('<span class="sub-count mono svelte-w3h0m4"> </span>'),Xs=h('<button class="row sub jump svelte-w3h0m4" title="打开子代理会话"><span class="sub-dot svelte-w3h0m4" aria-hidden="true"></span> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),Zs=h('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Qs=h('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),en=h('<span class="sub-count mono svelte-w3h0m4"> </span>'),tn=h('<button class="row sub jump idle svelte-w3h0m4" title="打开子代理会话"><!> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),an=h('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),sn=h('<!> <div class="plan-card svelte-w3h0m4"><div class="hd svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="title svelte-w3h0m4"> </span> <button class="dots svelte-w3h0m4" aria-label="Plan menu">⋯</button> <button class="close svelte-w3h0m4" aria-label="收起计划"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M18 15l-6-6-6 6"></path></svg></button></div> <!> <div class="body svelte-w3h0m4"><!> <div class="prog mono svelte-w3h0m4"> </div> <!> <!> <!> <!> <!> <!></div></div>',1),nn=h('<span class="badge mono svelte-w3h0m4"> </span>'),on=h('<button class="bar svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!> <svg class="caret svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 15l-6-6-6 6"></path></svg></button>'),rn=h('<span class="badge mono svelte-w3h0m4"> </span>'),ln=h('<button class="ball svelte-w3h0m4"><svg class="ring svelte-w3h0m4" viewBox="0 0 38 38" aria-hidden="true"><circle class="track svelte-w3h0m4" cx="19" cy="19"></circle><circle class="arc svelte-w3h0m4" cx="19" cy="19" transform="rotate(-90 19 19)"></circle></svg> <span class="ball-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!></button>'),cn=h("<!> <!>",1);function dn(Ie,ie){xt(ie,!1);const R=()=>Me(Ut,"$feeds",ee),I=()=>Me(Ft,"$sessionList",ee),Q=()=>Me(ca,"$can",ee),[ee,B]=Pt(),y=s(),E=s(),M=s(),H=s(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s();let b=wt(ie,"sessionId",8),V=wt(ie,"onJump",8,()=>{});const te="ocrc.planHud.v3",d=5,u=16,C=2*Math.PI*u;let F=s(!1);try{t(F,window.matchMedia("(min-width: 821px)").matches)}catch{}const le=e(F)?"ocrc.planHud.dt3":te;function me(){if(typeof localStorage>"u")return{};try{const o=JSON.parse(localStorage.getItem(le)??"{}")??{};return{dismissed:o.dismissed,expanded:o.expanded}}catch{return{}}}let U=s(me()),L=s(e(U).expanded??e(F));function Y(o){if(t(U,{...e(U),...o}),!(typeof localStorage>"u"))try{localStorage.setItem(le,JSON.stringify(e(U)))}catch{}}let p=s({total:0,done:0,items:[]}),G=s();async function be(o){try{const _=await he.todo(o);if(o!==b())return;t(G,o),t(p,ja(_))}catch{}}let ye=s(),ae=s(0),ne=s(-1),z=s();Gt(()=>clearTimeout(e(z)));let oe=s([]),we=s(),f=!1;async function J(o){if(!f){f=!0;try{const _=await he.subagents(o);if(o!==b())return;t(oe,[..._.subagents??[]].sort((q,W)=>Number(W.busy??!1)-Number(q.busy??!1))),t(we,o)}catch{t(oe,[])}finally{f=!1}}}const ce=o=>`ocrc.subparent.${o}`;let ue=s();function qe(o){try{t(ue,sessionStorage.getItem(ce(o))??void 0)}catch{t(ue,void 0)}}qe(b());function Ve(o){try{sessionStorage.setItem(ce(o.id),b())}catch{}t(fe,!1),Aa({id:`sub:${o.id}`,kind:"subagent",title:o.title||"…"+o.id.slice(-6),childId:o.id}),Kt.set(!0)}function Ae(){const o=e(ue);t(ue,void 0),o&&V()(o)}let de=s(),Z=s(!1),w=s(!1),N=s(!1),fe=s(!1);function Re(){t(L,!e(L)),Y({expanded:e(L)})}function Ue(){Y({dismissed:[...e(U).dismissed??[],b()].slice(-20)}),t(fe,!1)}function nt(){Y({dismissed:(e(U).dismissed??[]).filter(o=>o!==b())}),t(L,!0),Y({expanded:e(L)})}function _t(){t(fe,!1),Oa("tasks"),Kt.set(!0)}let Ge=s(),Pe=s(),Le=s(),ze=s();function Ze(o){var q,W,A,ge;const _=o.target;if(e(fe)){if((q=e(Pe))!=null&&q.contains(_)||(W=e(Ge))!=null&&W.contains(_))return;t(fe,!1)}e(L)&&((A=e(Le))!=null&&A.contains(_)||(ge=e(ze))!=null&&ge.contains(_)||(t(L,!1),Y({expanded:!1})))}g(()=>($e(b()),e(ye)),()=>{b()!==e(ye)&&(t(ye,b()),be(b()))}),g(()=>(R(),$e(b())),()=>{var o;t(y,((o=R()[b()])==null?void 0:o.lastSeq)??0)}),g(()=>(e(y),e(ne),e(z),e(ae)),()=>{e(y)!==e(ne)&&(t(ne,e(y)),clearTimeout(e(z)),t(z,setTimeout(()=>t(ae,e(ae)+1),1e3)))}),g(()=>(e(ae),$e(b())),()=>{e(ae)&&(typeof document>"u"||!document.hidden)&&(be(b()),J(b()))}),g(()=>(I(),$e(b())),()=>{t(E,I().find(o=>o.id===b()))}),g(()=>e(E),()=>{var o;t(M,((o=e(E))==null?void 0:o.title)??"")}),g(()=>e(p),()=>{t(H,e(p).items.filter(o=>o.status==="done"))}),g(()=>e(p),()=>{t(_e,e(p).items.filter(o=>o.status==="running"))}),g(()=>e(p),()=>{t(P,e(p).items.filter(o=>o.status==="pending"))}),g(()=>e(P),()=>{t(l,Math.max(0,e(P).length-d))}),g(()=>e(p),()=>{t(k,e(p).total?e(p).done/e(p).total:0)}),g(()=>(e(U),$e(b())),()=>{var o;t(S,((o=e(U).dismissed)==null?void 0:o.includes(b()))??!1)}),g(()=>e(oe),()=>{t(O,e(oe).filter(o=>o.busy))}),g(()=>e(oe),()=>{t(ve,e(oe).filter(o=>!o.busy))}),g(()=>(e(L),$e(b()),e(we)),()=>{e(L)&&b()&&e(we)!==b()&&J(b())}),g(()=>$e(b()),()=>{b()&&qe(b())}),g(()=>($e(b()),e(de)),()=>{b()!==e(de)&&(t(de,b()),t(Z,!1),t(w,!1),t(N,!1),t(fe,!1))}),St(),kt();var dt=Tt();$("pointerdown",ht,Ze);var vt=Be(dt);{var $t=o=>{var _=cn(),q=Be(_);{var W=Te=>{var ke=Ls(),De=r(n(ke),2),Qe=n(De,!0),et=r(Qe,2,!0);a(De),a(ke),D(()=>{T(Qe,(e(p),i(()=>e(p).done))),T(et,(e(p),i(()=>e(p).total)))}),$("click",ke,nt),m(Te,ke)},A=Te=>{var ke=sn(),De=Be(ke);{var Qe=K=>{var pe=zs();m(K,pe)};j(De,K=>{e(F)||K(Qe)})}var et=r(De,2),it=n(et),lt=r(n(it),2),ot=n(lt,!0);a(lt);var ct=r(lt,2);Ye(ct,K=>t(Ge,K),()=>e(Ge));var Ct=r(ct,2);a(it);var tt=r(it,2);{var Et=K=>{var pe=Fs(),se=n(pe),Ee=r(se,2);{var je=Ne=>{var rt=Hs();$("click",rt,Ue),m(Ne,rt)};j(Ee,Ne=>{e(F)||Ne(je)})}a(pe),Ye(pe,Ne=>t(Pe,Ne),()=>e(Pe)),$("click",se,_t),m(K,pe)};j(tt,K=>{e(fe)&&K(Et)})}var bt=r(tt,2),jt=n(bt);{var Jt=K=>{var pe=Ns(),se=r(n(pe),2),Ee=n(se);a(se),a(pe),D(je=>T(Ee,`返回父会话 …${je??""}`),[()=>(e(ue),i(()=>e(ue).slice(-8)))]),$("click",pe,Ae),m(K,pe)};j(jt,K=>{e(ue)&&K(Jt)})}var Bt=r(jt,2),c=n(Bt);a(Bt);var x=r(Bt,2);{var X=K=>{var pe=Ks(),se=Be(pe),Ee=n(se);let je;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>e(H),at=>at.text,(at,xe)=>{var Ke=Ws(),mt=r(n(Ke)),At=n(mt,!0);a(mt),a(Ke),D(()=>T(At,(e(xe),i(()=>e(xe).text)))),m(at,Ke)}),m(Je,pt)};j(We,Je=>{e(Z)&&Je(ft)})}D(()=>{re(se,"aria-expanded",e(Z)),je=st(Ee,0,"caret svelte-w3h0m4",null,je,{open:e(Z)}),T(rt,`已完成 ${e(H),i(()=>e(H).length)??""}`)}),$("click",se,()=>t(Z,!e(Z))),m(K,pe)};j(x,K=>{e(H),i(()=>e(H).length)&&K(X)})}var He=r(x,2);Oe(He,1,()=>e(_e),K=>K.text,(K,pe)=>{var se=Vs(),Ee=r(n(se)),je=n(Ee,!0);a(Ee),a(se),D(()=>T(je,(e(pe),i(()=>e(pe).text)))),m(K,se)});var Se=r(He,2);Oe(Se,1,()=>(e(P),i(()=>e(P).slice(0,d))),K=>K.text,(K,pe)=>{var se=Us(),Ee=r(n(se)),je=n(Ee,!0);a(Ee),a(se),D(()=>T(je,(e(pe),i(()=>e(pe).text)))),m(K,se)});var Fe=r(Se,2);{var Ot=K=>{var pe=Js(),se=Be(pe),Ee=n(se);let je;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>(e(P),i(()=>e(P).slice(d))),at=>at.text,(at,xe)=>{var Ke=Gs(),mt=r(n(Ke)),At=n(mt,!0);a(mt),a(Ke),D(()=>T(At,(e(xe),i(()=>e(xe).text)))),m(at,Ke)}),m(Je,pt)};j(We,Je=>{e(w)&&Je(ft)})}D(()=>{re(se,"aria-expanded",e(w)),je=st(Ee,0,"caret svelte-w3h0m4",null,je,{open:e(w)}),T(rt,`待处理 ${e(l)??""}`)}),$("click",se,()=>t(w,!e(w))),m(K,pe)};j(Fe,K=>{e(l)>0&&K(Ot)})}var ea=r(Fe,2);{var ua=K=>{var pe=Zs(),se=Be(pe),Ee=n(se),je=n(Ee);a(Ee),a(se);var Ne=r(se,2);Oe(Ne,1,()=>e(O),rt=>rt.id,(rt,We)=>{var ft=Xs(),Je=r(n(ft),2);{var pt=xe=>{var Ke=Ys(),mt=n(Ke);a(Ke),D(()=>T(mt,`${e(We),i(()=>e(We).done)??""}/${e(We),i(()=>e(We).total)??""}`)),m(xe,Ke)};j(Je,xe=>{e(We),i(()=>e(We).total>0)&&xe(pt)})}var It=r(Je,2),at=n(It,!0);a(It),qt(2),a(ft),D(xe=>T(at,xe),[()=>(e(We),i(()=>e(We).title||"…"+e(We).id.slice(-6)))]),$("click",ft,()=>Ve(e(We))),m(rt,ft)}),D(()=>T(je,`子代理 · 运行中 ${e(O),i(()=>e(O).length)??""}`)),m(K,pe)};j(ea,K=>{e(O),i(()=>e(O).length)&&K(ua)})}var fa=r(ea,2);{var pa=K=>{var pe=an(),se=Be(pe),Ee=n(se);let je;var Ne=r(Ee,2),rt=n(Ne);a(Ne),a(se);var We=r(se,2);{var ft=Je=>{var pt=Tt(),It=Be(pt);Oe(It,1,()=>e(ve),at=>at.id,(at,xe)=>{var Ke=tn(),mt=n(Ke);{var At=gt=>{var Rt=Qs();m(gt,Rt)};j(mt,gt=>{e(xe),i(()=>e(xe).total>0&&e(xe).done>=e(xe).total)&&gt(At)})}var ta=r(mt,2);{var ma=gt=>{var Rt=en(),_a=n(Rt);a(Rt),D(()=>T(_a,`${e(xe),i(()=>e(xe).done)??""}/${e(xe),i(()=>e(xe).total)??""}`)),m(gt,Rt)};j(ta,gt=>{e(xe),i(()=>e(xe).total>0)&&gt(ma)})}var aa=r(ta,2),ha=n(aa,!0);a(aa),qt(2),a(Ke),D(gt=>T(ha,gt),[()=>(e(xe),i(()=>e(xe).title||"…"+e(xe).id.slice(-6)))]),$("click",Ke,()=>Ve(e(xe))),m(at,Ke)}),m(Je,pt)};j(We,Je=>{e(N)&&Je(ft)})}D(()=>{re(se,"aria-expanded",e(N)),je=st(Ee,0,"caret svelte-w3h0m4",null,je,{open:e(N)}),T(rt,`子代理 · 已结束 ${e(ve),i(()=>e(ve).length)??""}`)}),$("click",se,()=>t(N,!e(N))),m(K,pe)};j(fa,K=>{e(ve),i(()=>e(ve).length)&&K(pa)})}a(bt),a(et),Ye(et,K=>t(Le,K),()=>e(Le)),D(K=>{T(ot,K),T(c,`任务 ${e(p),i(()=>e(p).done)??""}/${e(p),i(()=>e(p).total)??""}`)},[()=>(e(M),$e(b()),i(()=>e(M)||"…"+b().slice(-8)))]),$("click",ct,Ba(()=>t(fe,!e(fe)))),$("click",Ct,Re),m(Te,ke)};j(q,Te=>{e(S)&&!e(F)?Te(W):e(L)&&Te(A,1)})}var ge=r(q,2);{var Ce=Te=>{var ke=on(),De=r(n(ke),2),Qe=n(De,!0),et=r(Qe,2,!0);a(De);var it=r(De,2);{var lt=ot=>{var ct=nn(),Ct=n(ct,!0);a(ct),D(()=>T(Ct,(e(O),i(()=>e(O).length)))),m(ot,ct)};j(it,ot=>{e(O),i(()=>e(O).length>0)&&ot(lt)})}qt(2),a(ke),Ye(ke,ot=>t(ze,ot),()=>e(ze)),D(()=>{re(ke,"aria-label",(e(p),i(()=>`展开计划 ${e(p).done}/${e(p).total}`))),T(Qe,(e(p),i(()=>e(p).done))),T(et,(e(p),i(()=>e(p).total)))}),$("click",ke,Re),m(Te,ke)},ut=Te=>{var ke=ln(),De=n(ke),Qe=n(De);re(Qe,"r",u);var et=r(Qe);re(et,"r",u),a(De);var it=r(De,2),lt=n(it,!0),ot=r(lt,2,!0);a(it);var ct=r(it,2);{var Ct=tt=>{var Et=rn(),bt=n(Et,!0);a(Et),D(()=>T(bt,(e(O),i(()=>e(O).length)))),m(tt,Et)};j(ct,tt=>{e(O),i(()=>e(O).length>0)&&tt(Ct)})}a(ke),Ye(ke,tt=>t(ze,tt),()=>e(ze)),D(tt=>{re(ke,"aria-label",(e(p),e(L),i(()=>`计划 ${e(p).done}/${e(p).total} — ${e(L)?"收起":"展开"}`))),re(ke,"aria-expanded",e(L)),re(et,"stroke-dasharray",tt),T(lt,(e(p),i(()=>e(p).done))),T(ot,(e(p),i(()=>e(p).total)))},[()=>(e(k),i(()=>`${Math.max(C*e(k),C*.02)} ${C}`))]),$("click",ke,Re),m(Te,ke)};j(ge,Te=>{e(F)&&!e(L)?Te(Ce):!e(S)&&!(e(F)&&!e(L))&&Te(ut,1)})}m(o,_)},v=Ht(()=>(e(G),$e(b()),e(p),e(oe),e(ue),Q(),i(()=>e(G)===b()&&(e(p).total>0||e(oe).length>0||e(ue))&&Q()("todos"))));j(vt,o=>{e(v)&&o($t)})}m(Ie,dt),yt(),B()}var vn=h('<button class="expand svelte-eho102" title="Expand left panel" aria-label="展开左侧面板"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"></path></svg></button>'),un=h('<span class="branch mono svelte-eho102"> </span>'),fn=h('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span>'),pn=h('<button class="restore mono svelte-eho102" title="恢复被撤销的轮次">恢复上一轮</button>'),mn=h('<!> <span class="idle mono svelte-eho102">空闲</span>',1),hn=h('<button class="load-earlier mono svelte-eho102"> </button>'),_n=h('<div class="loading mono svelte-eho102" aria-label="Loading conversation"><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span></div>'),bn=h('<div class="empty svelte-eho102"><svg class="empty-mark svelte-eho102" viewBox="0 0 64 64" fill="none" stroke-width="8" stroke-linecap="round" aria-hidden="true"><path d="M46 15 A24 24 0 1 0 54 32" stroke="var(--text)" opacity=".85"></path><circle cx="49" cy="20" r="6" fill="var(--accent)" stroke="none"></circle></svg> <p class="empty-title svelte-eho102">要让 agent 做什么?</p> <p class="empty-hint svelte-eho102">在下方描述任务——它将在本项目目录中运行。需要时可附上图片。</p></div>'),gn=h('<button class="jump svelte-eho102" aria-label="跳到最新"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14"></path><path d="M19 12l-7 7-7-7"></path></svg> 最新</button>'),wn=h('<div class="chat svelte-eho102"><div class="sub-header svelte-eho102"><div class="left svelte-eho102"><button class="back svelte-eho102" aria-label="返回会话列表"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button> <!> <!> <!></div> <div class="right svelte-eho102"><!> <button class="inspect svelte-eho102" aria-label="Inspector"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="7" x2="20" y2="7"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="17" x2="14" y2="17"></line></svg></button> <button class="pane-toggle svelte-eho102" title="侧栏面板" aria-label="侧栏面板"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"></rect><path d="M15 4v16"></path><path d="M9 9l3 3-3 3"></path></svg></button></div></div> <div aria-live="polite"><!> <!> <div class="stream-end svelte-eho102" aria-hidden="true"></div> <!></div></div> <!> <div class="composer-float svelte-eho102"><!> <!></div> <!>',1);function Mn(Ie,ie){xt(ie,!1);const R=()=>Me(Ra,"$page",M),I=()=>Me(Ut,"$feeds",M),Q=()=>Me(Ft,"$sessionList",M),ee=()=>Me(va,"$composerEmpty",M),B=()=>Me(Pa,"$sessionBooting",M),y=()=>Me(la,"$leftPanelOpen",M),E=()=>Me(za,"$feedResyncing",M),[M,H]=Pt(),_e=s(),P=s(),l=s(),k=s(),S=s(),O=s(),ve=s(),b=s(),V=s(),te=s();let d=s(),u=s(),C=s(),F,le=s(""),me,U,L=s(0),Y=s(0),p=s(),G=s(!0);function be(){e(d)&&Mt(d,e(d).scrollTop=e(d).scrollHeight)}function ye(){e(d)&&t(G,e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<80)}const ae=80,ne=50;let z=s(ae),oe=s(0),we=s(!0),f=s(!1),J=s("");async function ce(){if(e(f)||!e(l))return;if(e(S).length>e(z)){t(z,e(z)+ae);return}if(!e(we))return;t(f,!0);const c=e(d),x=c?{h:c.scrollHeight,top:c.scrollTop}:null;try{const X=await he.history(e(l),{limit:ne,offset:e(oe)});(X.cards??[]).length===0?t(we,!1):($a(e(l),X.cards),t(oe,e(oe)+ne),t(z,e(z)+ae),X.hasMore===!1&&t(we,!1),x&&c&&(await Nt(),c.scrollTop=c.scrollHeight-x.h+x.top))}catch(X){console.warn("[page] loadEarlier failed",X)}finally{t(f,!1)}}let ue=s("");function qe(c){if(c<60)return`${c}s`;const x=Math.floor(c/60),X=c%60;return X===0?`${x}m`:`${x}m ${X}s`}function Ve(){Le()}async function Ae(c){if(!(!e(l)||!c))try{await he.revertSession(e(l),c);const{cards:x,lastSeq:X}=await he.history(e(l)),{setHistory:He}=await sa(async()=>{const{setHistory:Se}=await import("../chunks/DyVtfOqD.js").then(Fe=>Fe.C);return{setHistory:Se}},__vite__mapDeps([0,1]),import.meta.url);He(e(l),x,X),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(l),sinceSeq:X}}))}catch{}}let de=s(!1),Z=s();async function w(c){try{const x=await he.revertState(c);t(de,x.reverted),t(Z,x.messageID)}catch{t(de,!1),t(Z,void 0)}}async function N(){if(e(l))try{await he.unrevertSession(e(l)),t(de,!1);const{cards:c,lastSeq:x}=await he.history(e(l)),{setHistory:X}=await sa(async()=>{const{setHistory:He}=await import("../chunks/DyVtfOqD.js").then(Se=>Se.C);return{setHistory:He}},__vite__mapDeps([0,1]),import.meta.url);X(e(l),c,x),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(l),sinceSeq:x}}))}catch{}}const fe=["总结这个项目","最近有什么改动?","运行检查"];let Re=s(!1),Ue=s([]),nt;async function _t(c,x){if(nt!==x){nt=x;try{const X=await he.suggestions(c);t(Ue,X.suggestions??[])}catch{t(Ue,[])}}}let Ge=s(),Pe=s([]);function Le(){if(!e(l))return;const c=[...e(S)].reverse().find(X=>X.kind==="user"),x=c==null?void 0:c.text;x&&he.sendMessage({sessionId:e(l),text:x,clientId:`web_${Date.now()}`})}Qt(()=>{me=new ResizeObserver(()=>{e(u)&&(document.documentElement.style.setProperty("--composer-h",`${e(u).offsetHeight}px`),e(G)&&be()),e(d)&&document.documentElement.style.setProperty("--sbw",`${e(d).offsetWidth-e(d).clientWidth}px`)}),e(u)&&me.observe(e(u)),e(d)&&me.observe(e(d)),F=new IntersectionObserver(X=>{if(!e(G)||!X.some(Se=>!Se.isIntersecting))return;e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<=24?requestAnimationFrame(be):t(G,!1)},{root:e(d),threshold:0}),e(C)&&F.observe(e(C));const c=window.visualViewport,x=()=>{e(G)&&requestAnimationFrame(be)};c==null||c.addEventListener("resize",x),U=()=>c==null?void 0:c.removeEventListener("resize",x)}),Gt(()=>{me==null||me.disconnect(),F==null||F.disconnect(),U==null||U(),e(p)&&clearInterval(e(p))}),g(()=>R(),()=>{t(l,R().params.sessionId??"")}),g(()=>(e(l),e(J)),()=>{e(l)&&e(l)!==e(J)&&(t(J,e(l)),t(z,ae),t(oe,0),t(we,!0),t(f,!1))}),g(()=>(I(),e(l)),()=>{t(k,I()[e(l)])}),g(()=>e(k),()=>{t(b,!e(k)||e(k).order.length===0?!1:e(k).order.some(c=>{var X;const x=(X=e(k).byId[c])==null?void 0:X.kind;return x==="thinking"||x==="streaming"||x==="think-stream"}))}),g(()=>(e(b),e(Z)),()=>{e(b)&&e(Z)&&t(Z,void 0)}),g(()=>e(k),()=>{t(S,Xt(e(k)))}),g(()=>(e(Z),e(S)),()=>{t(_e,e(Z)?(()=>{let c=-1;for(let x=e(S).length-1;x>=0;x--)if(e(S)[x].messageId===e(Z)){c=x;break}return c===-1?e(S):e(S).slice(0,c)})():e(S))}),g(()=>(e(z),e(_e)),()=>{t(P,e(z)>=e(_e).length?e(_e):e(_e).slice(-e(z)))}),g(()=>(Q(),e(l)),()=>{t(O,Q().find(c=>c.id===e(l)))}),g(()=>e(O),()=>{var c;t(ve,(c=e(O))!=null&&c.directory&&e(O).directory.replace(/\/+$/,"").split("/").pop()||"")}),g(()=>(e(b),e(ue),e(l),e(L),e(p)),()=>{e(b)?(e(ue)!==e(l)&&(t(ue,e(l)),t(L,0)),!e(L)&&typeof window<"u"&&(t(L,Date.now()),t(Y,0),e(p)&&clearInterval(e(p)),t(p,setInterval(()=>{t(Y,Math.floor((Date.now()-e(L))/1e3))},1e3)))):(t(L,0),t(Y,0),t(ue,""),e(p)&&(clearInterval(e(p)),t(p,void 0)))}),g(()=>e(S),()=>{t(V,e(S).length?e(S)[e(S).length-1]:null)}),g(()=>e(l),()=>{e(l)&&(e(l),w(e(l)))}),g(()=>(e(b),e(V),e(l)),()=>{var c;!e(b)&&((c=e(V))==null?void 0:c.kind)==="assistant"&&e(l)&&e(V).id&&_t(e(l),e(V).id)}),g(()=>(e(l),e(Ge)),()=>{e(l)!==e(Ge)&&(t(Ge,e(l)),t(Re,!1))}),g(()=>(e(b),e(Re),ee(),e(k),B(),e(Ue),e(S)),()=>{e(b)||e(Re)||!ee()||!e(k)||B()?t(Pe,[]):e(Ue).length>0?t(Pe,e(Ue)):e(S).length===0?t(Pe,fe):t(Pe,[])}),g(()=>(e(l),e(k),e(S)),()=>{var c;t(te,`${e(l)}:${((c=e(k))==null?void 0:c.lastSeq)??0}:${e(S).length}`)}),g(()=>(e(te),e(le),e(G)),()=>{e(te)!==e(le)&&(t(le,e(te)),Nt().then(()=>{e(G)&&be()}))}),St(),kt();var ze=wn(),Ze=Be(ze),dt=n(Ze),vt=n(dt),$t=n(vt),v=r($t,2);{var o=c=>{var x=vn();$("click",x,()=>la.set(!0)),m(c,x)};j(v,c=>{y()||c(o)})}var _=r(v,2);Ps(_,{get activeId(){return e(l)}});var q=r(_,2);{var W=c=>{var x=un(),X=n(x,!0);a(x),D(()=>T(X,e(ve))),m(c,x)};j(q,c=>{e(ve)&&c(W)})}a(vt);var A=r(vt,2),ge=n(A);{var Ce=c=>{var x=fn(),X=r(n(x));a(x),D(He=>T(X,` 运行中 ${He??""}`),[()=>(e(Y),i(()=>qe(e(Y))))]),m(c,x)},ut=c=>{var x=mn(),X=Be(x);{var He=Se=>{var Fe=pn();$("click",Fe,N),m(Se,Fe)};j(X,Se=>{e(de)&&Se(He)})}qt(2),m(c,x)};j(ge,c=>{e(b)?c(Ce):c(ut,-1)})}var Te=r(ge,2),ke=r(Te,2);a(A),a(dt);var De=r(dt,2);let Qe;var et=n(De);{var it=c=>{var x=hn(),X=n(x,!0);a(x),D(()=>{x.disabled=e(f),T(X,e(f)?"加载中…":"加载更早消息")}),$("click",x,ce),m(c,x)};j(et,c=>{e(S),e(z),e(we),i(()=>e(S).length>0&&(e(S).length>e(z)||e(we)))&&c(it)})}var lt=r(et,2);Oe(lt,1,()=>e(P),c=>c.id,(c,x)=>{const X=Lt(()=>(e(x),e(V),e(b),i(()=>{var Se;return e(x).id===((Se=e(V))==null?void 0:Se.id)&&e(x).kind==="assistant"&&!e(b)}))),He=Lt(()=>($e(e(X)),e(V),i(()=>{var Se;return e(X)&&((Se=e(V))==null?void 0:Se.kind)==="assistant"?e(V).messageId:void 0})));{let Se=Lt(()=>e(X)?Ve:void 0),Fe=Lt(()=>e(X)&&e(He)?()=>Ae(e(He)):void 0);La(c,{get card(){return e(x)},onRetry:Le,get onRegenerate(){return e(Se)},get onRevert(){return e(Fe)}})}});var ot=r(lt,2);Ye(ot,c=>t(C,c),()=>e(C));var ct=r(ot,2);{var Ct=c=>{var x=Tt(),X=Be(x);{var He=Fe=>{var Ot=_n();m(Fe,Ot)},Se=Fe=>{var Ot=bn();m(Fe,Ot)};j(X,Fe=>{e(k)?Fe(Se,-1):Fe(He)})}m(c,x)};j(ct,c=>{e(S),i(()=>e(S).length===0)&&c(Ct)})}a(De),a(Ze),Ye(Ze,c=>t(d,c),()=>e(d));var tt=r(Ze,2);{var Et=c=>{var x=gn();$("click",x,be),m(c,x)};j(tt,c=>{e(G),e(S),i(()=>!e(G)&&e(S).length>0)&&c(Et)})}var bt=r(tt,2),jt=n(bt);Na(jt,{get suggestions(){return e(Pe)},onPick:c=>Zt.set({text:c,nonce:Date.now()}),onDismiss:()=>{t(Re,!0),t(Pe,[])}});var Jt=r(jt,2);Ds(Jt,{get sessionId(){return e(l)}}),a(bt),Ye(bt,c=>t(u,c),()=>e(u));var Bt=r(bt,2);dn(Bt,{get sessionId(){return e(l)},onJump:c=>Vt("/"+c)}),D(()=>Qe=st(De,1,"stream conversation-emerald svelte-eho102",null,Qe,{suppressed:E()})),$("click",$t,()=>Vt("/")),$("click",Te,()=>Kt.update(c=>!c)),$("click",ke,()=>Kt.update(c=>!c)),$("scroll",Ze,ye),m(Ie,ze),yt(),H()}export{Mn as component};
@@ -1 +1 @@
1
- {"version":"1791012393552"}
1
+ {"version":"1791016751156"}
@@ -26,34 +26,34 @@
26
26
  <!-- iOS standalone PWA: fullscreen + translucent status bar (content padded via safe-area insets) -->
27
27
  <meta name="apple-mobile-web-app-capable" content="yes" />
28
28
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
29
- <link href="/_app/immutable/entry/start.CJHxoHVo.js" rel="modulepreload">
30
- <link href="/_app/immutable/chunks/EuAaL0D3.js" rel="modulepreload">
29
+ <link href="/_app/immutable/entry/start.CDa_mH2Z.js" rel="modulepreload">
30
+ <link href="/_app/immutable/chunks/DQw6xsKi.js" rel="modulepreload">
31
31
  <link href="/_app/immutable/chunks/BjY4dxcB.js" rel="modulepreload">
32
- <link href="/_app/immutable/entry/app.YXQ5eHNB.js" rel="modulepreload">
32
+ <link href="/_app/immutable/entry/app.DWp30aZ8.js" rel="modulepreload">
33
33
  <link href="/_app/immutable/chunks/C1FmrZbK.js" rel="modulepreload">
34
34
  <link href="/_app/immutable/chunks/CWj6FrbW.js" rel="modulepreload">
35
35
  <link href="/_app/immutable/chunks/Chcp5gAM.js" rel="modulepreload">
36
36
  <link href="/_app/immutable/chunks/vlg9iH2u.js" rel="modulepreload">
37
- <link href="/_app/immutable/nodes/0.3-XI5Jkd.js" rel="modulepreload">
38
- <link href="/_app/immutable/chunks/t4ji6lDi.js" rel="modulepreload">
39
- <link href="/_app/immutable/chunks/DMjJC_0e.js" rel="modulepreload">
37
+ <link href="/_app/immutable/nodes/0.D5WDBqgD.js" rel="modulepreload">
38
+ <link href="/_app/immutable/chunks/DyVtfOqD.js" rel="modulepreload">
39
+ <link href="/_app/immutable/chunks/D8mS_dO0.js" rel="modulepreload">
40
40
 
41
41
  <link href="/_app/immutable/assets/summarizeTodos.BnVisgSs.css" rel="stylesheet">
42
- <link href="/_app/immutable/assets/0.DNcjEOa9.css" rel="stylesheet">
42
+ <link href="/_app/immutable/assets/0.Bf4ukRCF.css" rel="stylesheet">
43
43
  </head>
44
44
  <body data-sveltekit-preload-data="hover">
45
45
  <div style="display: contents">
46
46
  <script>
47
47
  {
48
- __sveltekit_16xmvkj = {
48
+ __sveltekit_r3hzj1 = {
49
49
  base: ""
50
50
  };
51
51
 
52
52
  const element = document.currentScript.parentElement;
53
53
 
54
54
  Promise.all([
55
- import("/_app/immutable/entry/start.CJHxoHVo.js"),
56
- import("/_app/immutable/entry/app.YXQ5eHNB.js")
55
+ import("/_app/immutable/entry/start.CDa_mH2Z.js"),
56
+ import("/_app/immutable/entry/app.DWp30aZ8.js")
57
57
  ]).then(([kit, app]) => {
58
58
  kit.start(app, element);
59
59
  });
@@ -1 +1 @@
1
- const a=location.pathname.split("/").slice(0,-1).join("/"),m=[a+"/_app/immutable/entry/app.YXQ5eHNB.js",a+"/_app/immutable/nodes/0.3-XI5Jkd.js",a+"/_app/immutable/assets/0.DNcjEOa9.css",a+"/_app/immutable/nodes/1.Dr0OkSnT.js",a+"/_app/immutable/nodes/2.DYsIhOT_.js",a+"/_app/immutable/assets/2.BNuGfmZP.css",a+"/_app/immutable/nodes/3.BE3eISY8.js",a+"/_app/immutable/assets/3.BAwvOE6a.css",a+"/_app/immutable/assets/summarizeTodos.BnVisgSs.css",a+"/_app/immutable/chunks/BjY4dxcB.js",a+"/_app/immutable/chunks/C1FmrZbK.js",a+"/_app/immutable/chunks/CWj6FrbW.js",a+"/_app/immutable/chunks/Chcp5gAM.js",a+"/_app/immutable/chunks/DMjJC_0e.js",a+"/_app/immutable/chunks/EuAaL0D3.js",a+"/_app/immutable/chunks/t4ji6lDi.js",a+"/_app/immutable/chunks/vlg9iH2u.js",a+"/_app/immutable/entry/start.CJHxoHVo.js"],o=[a+"/apple-touch-icon.png",a+"/favicon.png",a+"/favicon.svg",a+"/icon-192.png",a+"/icon-512-maskable.png",a+"/icon-512.png",a+"/manifest.webmanifest"],u="1791012393552",n=self,c=`ocrc-cache-${u}`,p=[...m,...o];n.addEventListener("install",e=>{e.waitUntil(caches.open(c).then(s=>s.addAll(p.map(t=>new Request(t,{cache:"reload"})))).then(()=>n.skipWaiting()))});n.addEventListener("activate",e=>{e.waitUntil((async()=>{for(const s of await caches.keys())s!==c&&await caches.delete(s);await n.clients.claim()})())});n.addEventListener("fetch",e=>{const{request:s}=e;if(s.method!=="GET")return;const t=new URL(s.url);if(t.origin===location.origin&&!(t.pathname.startsWith("/api/")||t.pathname==="/ws")){if(p.includes(t.pathname)){e.respondWith(caches.match(s).then(i=>i??fetch(s)));return}e.respondWith((async()=>{try{return await fetch(s)}catch{return await caches.match(s)??await caches.match("/")??Response.error()}})())}});
1
+ const a=location.pathname.split("/").slice(0,-1).join("/"),m=[a+"/_app/immutable/entry/app.DWp30aZ8.js",a+"/_app/immutable/nodes/0.D5WDBqgD.js",a+"/_app/immutable/assets/0.Bf4ukRCF.css",a+"/_app/immutable/nodes/1.CmYMiPX5.js",a+"/_app/immutable/nodes/2.jDRy4yr0.js",a+"/_app/immutable/assets/2.BNuGfmZP.css",a+"/_app/immutable/nodes/3.Cb_bxmLe.js",a+"/_app/immutable/assets/3.sWLfsaJ-.css",a+"/_app/immutable/assets/summarizeTodos.BnVisgSs.css",a+"/_app/immutable/chunks/BjY4dxcB.js",a+"/_app/immutable/chunks/C1FmrZbK.js",a+"/_app/immutable/chunks/CWj6FrbW.js",a+"/_app/immutable/chunks/Chcp5gAM.js",a+"/_app/immutable/chunks/D8mS_dO0.js",a+"/_app/immutable/chunks/DQw6xsKi.js",a+"/_app/immutable/chunks/DyVtfOqD.js",a+"/_app/immutable/chunks/vlg9iH2u.js",a+"/_app/immutable/entry/start.CDa_mH2Z.js"],u=[a+"/apple-touch-icon.png",a+"/favicon.png",a+"/favicon.svg",a+"/icon-192.png",a+"/icon-512-maskable.png",a+"/icon-512.png",a+"/manifest.webmanifest"],o="1791016751156",n=self,c=`ocrc-cache-${o}`,p=[...m,...u];n.addEventListener("install",e=>{e.waitUntil(caches.open(c).then(s=>s.addAll(p.map(t=>new Request(t,{cache:"reload"})))).then(()=>n.skipWaiting()))});n.addEventListener("activate",e=>{e.waitUntil((async()=>{for(const s of await caches.keys())s!==c&&await caches.delete(s);await n.clients.claim()})())});n.addEventListener("fetch",e=>{const{request:s}=e;if(s.method!=="GET")return;const t=new URL(s.url);if(t.origin===location.origin&&!(t.pathname.startsWith("/api/")||t.pathname==="/ws")){if(p.includes(t.pathname)){e.respondWith(caches.match(s).then(i=>i??fetch(s)));return}e.respondWith((async()=>{try{return await fetch(s)}catch{return await caches.match(s)??await caches.match("/")??Response.error()}})())}});
@@ -1 +0,0 @@
1
- :root{color-scheme:dark;--bg: #0d0d0d;--bg-panel: #121212;--bg-elev: #171717;--bg-elev2: #1f1f1f;--bg-input: #101010;--border: #262626;--border-2: #1f1f1f;--text: #f5f4f0;--text-2: #c9c7c1;--text-3: #8c877d;--text-4: #7a766e;--accent: #fb8b3c;--accent-2: #2a1c10;--accent-ink:#211307;--accent-line:#7a4416;--user-bubble: #2b2a27;--user-ink: #f0efe9;--bubbleline:#3a3833;--cv: var(--accent);--cv-2: var(--accent-2);--cv-ink: var(--accent-ink);--cv-line: var(--accent-line);--cv-bubble: var(--user-bubble);--ok: #6ee7a0;--warn: #ffd479;--err: #f97066;--info: #8ab4ff;--hl-purple: #b48cf0;--hl-green: #6cc08b;--hl-cyan: #4ec9b0;--hl-orange: #dca87a;--hl-yellow: #ffd479;--hl-gray: #8c877d;--role-gold: #f5b301;--role-blue: #6f9ffa;--role-green: #58c08c;--role-silver: #cdd6e6;--bg-code: #0f0f0f;--toolcmd: #e8e6e0;--toolout: #a3a09a;--scrim: rgba(0, 0, 0, .5);--ease: cubic-bezier(.2, 0, 0, 1);--radius: 14px;--radius-sm: 9px;--radius-xs: 6px;--radius-tail: 4px;--radius-bar: 2px;--radius-pill: 999px;--shadow-card: 0 1px 4px rgba(0, 0, 0, .35);--shadow-composer: 0 6px 24px rgba(0, 0, 0, .4);--shadow-palette: 0 24px 70px rgba(0, 0, 0, .6);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Noto Serif CJK SC", "Source Han Serif SC", "DejaVu Serif", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--z-sticky: 5;--z-hud: 8;--z-dropdown: 10;--z-backdrop: 25;--z-drawer: 30;--z-sheet: 35;--z-fab: 42;--z-popover: 50;--z-overlay: 200;--z-modal: 300;--z-gate: 500}:root[data-theme=light]{color-scheme:light;--bg: #f2efe8;--bg-panel: #efede5;--bg-canvas: #fbfbfa;--bg-elev: #ffffff;--bg-elev2: #f2f1ed;--bg-input: #f6f5f2;--border: #e4e3df;--border-2: #edece9;--text: #1d1c1a;--text-2: #43413d;--text-3: #8a8884;--text-4: #6e6d69;--accent: #e4580f;--accent-2: #fdeee3;--accent-ink:#1c1b18;--accent-line:#f0c9ac;--user-bubble: #efeeea;--user-ink: #1d1c1a;--bubbleline:#e2e1dc;--ok: #1f7a3d;--warn: #9a6b00;--err: #c2372c;--info: #2456a6;--hl-purple: #8250df;--hl-green: #116329;--hl-cyan: #0e7a8d;--hl-orange: #b65708;--hl-yellow: #9a6700;--hl-gray: #6e7781;--role-gold: #d99e00;--role-blue: #3a6fd8;--role-green: #2f9d68;--role-silver: #8a877e;--bg-code: #f4f2ec;--toolcmd: #1c1b18;--toolout: #57534e;--scrim: rgba(28, 27, 24, .32);--shadow-card: 0 1px 3px rgba(28, 27, 24, .06);--shadow-composer: 0 4px 18px rgba(28, 27, 24, .08);--shadow-palette: 0 24px 70px rgba(28, 27, 24, .18)}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){color-scheme:light;--bg: #f2efe8;--bg-panel: #efede5;--bg-canvas: #fbfbfa;--bg-elev: #ffffff;--bg-elev2: #f2f1ed;--bg-input: #f6f5f2;--border: #e4e3df;--border-2: #edece9;--text: #1d1c1a;--text-2: #43413d;--text-3: #8a8884;--text-4: #6e6d69;--accent: #e4580f;--accent-2: #fdeee3;--accent-ink:#1c1b18;--accent-line:#f0c9ac;--user-bubble: #efeeea;--user-ink: #1d1c1a;--bubbleline:#e2e1dc;--ok: #1f7a3d;--warn: #9a6b00;--err: #c2372c;--info: #2456a6;--hl-purple: #8250df;--hl-green: #116329;--hl-cyan: #0e7a8d;--hl-orange: #b65708;--hl-yellow: #9a6700;--hl-gray: #6e7781;--role-gold: #d99e00;--role-blue: #3a6fd8;--role-green: #2f9d68;--role-silver: #8a877e;--bg-code: #f4f2ec;--toolcmd: #1c1b18;--toolout: #57534e;--scrim: rgba(28, 27, 24, .32);--shadow-card: 0 1px 3px rgba(28, 27, 24, .06);--shadow-composer: 0 4px 18px rgba(28, 27, 24, .08);--shadow-palette: 0 24px 70px rgba(28, 27, 24, .18)}}@media (min-width: 821px){:root[data-theme=light]{--bg: #f7f7f8;--bg-panel: #f4f4f5;--bg-canvas: #ffffff;--bg-elev: #ffffff;--bg-elev2: #f4f4f5;--bg-input: #ffffff;--border: #e4e4e7;--border-2: #ececee;--user-bubble: #f4f4f5;--bubbleline:#e4e4e7;--bg-code: #f6f6f7}}@media (prefers-color-scheme: light) and (min-width: 821px){:root:not([data-theme=dark]){--bg: #f7f7f8;--bg-panel: #f4f4f5;--bg-canvas: #ffffff;--bg-elev: #ffffff;--bg-elev2: #f4f4f5;--bg-input: #ffffff;--border: #e4e4e7;--border-2: #ececee;--user-bubble: #f4f4f5;--bubbleline:#e4e4e7;--bg-code: #f6f6f7}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:focus{outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:inherit}a:focus{outline:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:inherit}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-enter: .2s}@keyframes ocrc-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ocrc-rise-sm{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes ocrc-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes ocrc-fade{0%{opacity:0}to{opacity:1}}:root[data-accent=azure]{--accent: #6f9ffa;--accent-2: #16202f;--accent-ink: #071120;--accent-line: #31527e}:root[data-accent=amber]{--accent: #ffc34d;--accent-2: #2a2110;--accent-ink: #1f1503;--accent-line: #8a6a26}:root[data-accent=violet]{--accent: #b48cf0;--accent-2: #1d1733;--accent-ink: #0f0820;--accent-line: #5a4790}:root[data-theme=light][data-accent=azure]{--accent: #2f6bcc;--accent-2: #e8f0fc;--accent-ink: #ffffff;--accent-line: #b9d0f2}:root[data-theme=light][data-accent=amber]{--accent: #b57f00;--accent-2: #faf0d8;--accent-ink: #ffffff;--accent-line: #ecd9a8}:root[data-theme=light][data-accent=violet]{--accent: #7a4fd0;--accent-2: #f0eafc;--accent-ink: #ffffff;--accent-line: #d4c5f2}@media (prefers-color-scheme: light){:root:not([data-theme=dark])[data-accent=azure]{--accent: #2f6bcc;--accent-2: #e8f0fc;--accent-ink: #ffffff;--accent-line: #b9d0f2}:root:not([data-theme=dark])[data-accent=amber]{--accent: #b57f00;--accent-2: #faf0d8;--accent-ink: #ffffff;--accent-line: #ecd9a8}:root:not([data-theme=dark])[data-accent=violet]{--accent: #7a4fd0;--accent-2: #f0eafc;--accent-ink: #ffffff;--accent-line: #d4c5f2}}html{background:var(--bg)}html,body{height:100vh}button{transition:opacity .12s var(--ease, ease),transform .12s var(--ease, ease)}button:active:not(:disabled){opacity:.78}body{margin:0;overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:10px}.mono{font-family:var(--font-mono)}.conversation-emerald{--accent: var(--cv);--accent-2: var(--cv-2);--accent-ink: var(--cv-ink);--accent-line: var(--cv-line);--user-bubble: var(--cv-bubble)}.md .hljs-string,.md .hljs-regexp,.md .hljs-addition{color:var(--hl-green)}.md .hljs-keyword,.md .hljs-selector-tag,.md .hljs-type{color:var(--hl-purple)}.md .hljs-title.function_,.md .hljs-title.class_.invoke__,.md .hljs-function>.hljs-title{color:var(--hl-yellow)}.md .hljs-title.class_,.md .hljs-built_in{color:var(--hl-cyan)}.md .hljs-number,.md .hljs-literal,.md .hljs-variable.constant_{color:var(--hl-orange)}.md .hljs-comment,.md .hljs-deletion,.md .hljs-meta{color:var(--hl-gray)}.md .hljs-attr,.md .hljs-attribute,.md .hljs-selector-attr,.md .hljs-selector-class{color:var(--hl-green)}.md .hljs-punctuation,.md .hljs-params,.md .hljs-property,.md .hljs-symbol{color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-4);background-clip:content-box}@keyframes ocrc-pulse{0%,to{opacity:1}50%{opacity:.28}}@keyframes ocrc-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes ocrc-ring{0%{transform:scale(.6);opacity:.7}to{transform:scale(2.2);opacity:0}}@keyframes ocrc-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.titlebar.svelte-hhath1{display:flex;align-items:center;gap:12px;height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 16px 0;box-sizing:border-box;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0;font-size:13px}.brand.svelte-hhath1{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-mark.svelte-hhath1{width:27px;height:27px;flex-shrink:0}.wordmark.svelte-hhath1{font-family:var(--font-serif);font-size:15.5px;letter-spacing:.01em;display:inline-flex;align-items:baseline;gap:5px}.wordmark.svelte-hhath1 b:where(.svelte-hhath1){font-weight:700;color:var(--text)}.new-session.svelte-hhath1{display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--radius-pill);padding:5px 11px;font-size:12px;font-weight:650;cursor:pointer;flex-shrink:0;transition:opacity .12s ease,transform .12s ease}.new-session.svelte-hhath1:hover:not(:disabled){opacity:.9}.new-session.svelte-hhath1:disabled{opacity:.5;cursor:default}.new-icon.svelte-hhath1{font-size:14px;line-height:1}.new-label.svelte-hhath1{white-space:nowrap}.new-caret.svelte-hhath1{font-size:9px;line-height:1;margin-left:2px;opacity:.85}.palette-trigger.svelte-hhath1{display:flex;align-items:center;gap:8px;min-width:230px;max-width:min(340px,calc(100vw - 32px));background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-3);padding:5px 10px;font-size:12.5px;cursor:text;transition:border-color .15s ease,color .15s ease}.palette-trigger.svelte-hhath1:hover{border-color:var(--text-3);color:var(--text-2)}.palette-icon.svelte-hhath1{font-size:14px;opacity:.85}.palette-label.svelte-hhath1{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-keycap.svelte-hhath1{font-size:10px;color:var(--text-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-xs);padding:2px 5px}.spacer.svelte-hhath1{flex:1}.themebtn.svelte-hhath1{display:inline-grid;place-items:center;width:28px;height:28px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:14px;line-height:1;cursor:pointer;flex-shrink:0;transition:color .12s ease,border-color .12s ease}.themebtn.svelte-hhath1:hover{color:var(--text);border-color:var(--text-4)}.connection-pill.svelte-hhath1{display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-pill);background:var(--bg-elev);border:1px solid var(--border);padding:4px 10px;flex-shrink:0}.dot-wrap.svelte-hhath1{position:relative;width:10px;height:10px;display:grid;place-items:center}.dot.svelte-hhath1{width:7px;height:7px;border-radius:50%;background:var(--text-4);flex-shrink:0}.dot-ring.svelte-hhath1{position:absolute;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ok);opacity:0;animation:ocrc-ring 1.6s ease-out infinite;pointer-events:none}.connection-pill.connected.svelte-hhath1 .dot:where(.svelte-hhath1){background:var(--ok);box-shadow:0 0 7px var(--ok)}.connection-pill.reconnecting.svelte-hhath1 .dot:where(.svelte-hhath1){background:var(--warn);animation:ocrc-pulse 1.2s ease-in-out infinite}.connection-pill.offline.svelte-hhath1 .dot:where(.svelte-hhath1){background:transparent;border:1.5px solid var(--text-4)}.connection-state.svelte-hhath1{font-weight:600;color:var(--text-3)}.connection-pill.connected.svelte-hhath1 .connection-state:where(.svelte-hhath1){color:var(--ok)}.connection-pill.reconnecting.svelte-hhath1 .connection-state:where(.svelte-hhath1){color:var(--warn)}.connection-pill.offline.svelte-hhath1 .connection-state:where(.svelte-hhath1){color:var(--err)}.connection-latency.svelte-hhath1{color:var(--text-3);font-size:10.5px}.install.svelte-hhath1{background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--radius-pill);padding:4px 12px;font-size:.8em;font-weight:600;cursor:pointer;flex-shrink:0}.user.svelte-hhath1{display:flex;align-items:center;gap:10px;flex-shrink:0}.user-email.svelte-hhath1{color:var(--text-3);font-size:12px}.avatar.svelte-hhath1{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent-2);color:var(--accent);border:1px solid var(--accent-line);font-size:11px;font-weight:700}.iconbtn.svelte-hhath1{display:none;background:transparent;border:none;color:var(--text-2);font-size:18px;line-height:1;padding:4px 6px;cursor:pointer;border-radius:var(--radius-pill)}.iconbtn.svelte-hhath1:hover{color:var(--text);background:var(--bg-elev)}.iconbtn.active.svelte-hhath1{color:var(--accent);background:var(--accent-2)}@media (pointer: coarse){.themebtn.svelte-hhath1{width:36px;height:36px}}@media (max-width: 820px){.palette-trigger.svelte-hhath1,.user-email.svelte-hhath1,.new-session.svelte-hhath1,.new-label.svelte-hhath1,.iconbtn.svelte-hhath1,.user.svelte-hhath1{display:none}}@media (min-width: 821px){.channels-btn.svelte-hhath1,.theme-btn.svelte-hhath1,.user.svelte-hhath1{display:none}}.banner.svelte-l46k7l{text-align:center;font-size:.8em;padding:4px 8px;background:color-mix(in srgb,var(--warn) 14%,var(--bg));color:var(--warn);border-bottom:1px solid color-mix(in srgb,var(--warn) 32%,transparent);animation:svelte-l46k7l-banner-drop .18s var(--ease-out, ease-out)}@keyframes svelte-l46k7l-banner-drop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.banner.offline.svelte-l46k7l{background:color-mix(in srgb,var(--err) 14%,var(--bg));color:var(--err);border-bottom-color:color-mix(in srgb,var(--err) 32%,transparent)}.sidebar.svelte-1h8243g{width:100%;box-sizing:border-box;background:var(--bg-panel);overflow-y:auto;display:flex;flex-direction:column;padding:4px 8px 8px;gap:2px}.group-header.svelte-1h8243g{display:flex;align-items:center;gap:8px;padding:10px 8px 6px;color:var(--text-4);font-size:10px;text-transform:uppercase;letter-spacing:.16em}.gh-label.svelte-1h8243g{flex-shrink:0}.gh-line.svelte-1h8243g{flex:1;height:1px;background:var(--border-2);opacity:.7}.gh-count.svelte-1h8243g{flex-shrink:0;font-variant-numeric:tabular-nums}.session.svelte-1h8243g{position:relative;display:block;text-decoration:none;padding:9px 12px 9px 16px;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:background .12s ease}.session.svelte-1h8243g:hover{background:var(--bg-elev)}.session.active.svelte-1h8243g{background:var(--bg-elev2)}.session.active.svelte-1h8243g:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2.5px;border-radius:var(--radius-bar);background:var(--accent)}.line1.svelte-1h8243g{display:flex;align-items:center;gap:7px}.sr-only.svelte-1h8243g{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dot.svelte-1h8243g{width:7px;height:7px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;box-sizing:border-box}.dot.busy.svelte-1h8243g{background:var(--accent);border-color:var(--accent);animation:ocrc-pulse 1.2s ease-in-out infinite}.dot.wait.svelte-1h8243g{background:var(--warn);border-color:var(--warn)}.dot.idle.svelte-1h8243g{background:var(--ok);border-color:var(--ok)}.dot.offline.svelte-1h8243g{background:transparent;border:1.5px solid var(--text-4)}.title.svelte-1h8243g{flex:1;font-size:13px;font-weight:600;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session.active.svelte-1h8243g .title:where(.svelte-1h8243g){color:var(--text)}.pin-dot.svelte-1h8243g{flex-shrink:0;font-size:7px;color:var(--accent);line-height:1}.rename-input.svelte-1h8243g{flex:1;min-width:0;font-size:16px;font-weight:600;color:var(--text);background:var(--bg-panel);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:1px 6px;outline:none;font-family:inherit}.rename-input.svelte-1h8243g:disabled{opacity:.6}.actions.svelte-1h8243g{display:inline-flex;gap:1px;flex-shrink:0}.act.svelte-1h8243g{display:inline-flex;background:transparent;border:none;color:var(--text-3);cursor:pointer;padding:2px;opacity:0;transition:opacity .12s ease,color .12s ease}.session.svelte-1h8243g:hover .act:where(.svelte-1h8243g){opacity:.65}.session.svelte-1h8243g:focus-within .act:where(.svelte-1h8243g){opacity:.65}.act.svelte-1h8243g:hover{opacity:1}.act.pin.svelte-1h8243g:hover{color:var(--text)}.act.rename.svelte-1h8243g:hover{color:var(--accent)}.act.pin.on.svelte-1h8243g{opacity:1;color:var(--accent)}.act.trash.svelte-1h8243g:hover{color:var(--err)}.act.svelte-1h8243g:disabled{opacity:.4;cursor:default}.act.mmore.svelte-1h8243g,.rowmenu.svelte-1h8243g{display:none}@media (hover: none),(max-width: 820px){.act.svelte-1h8243g{opacity:.6;padding:8px;min-width:40px;min-height:40px;align-items:center;justify-content:center}.act.rename.svelte-1h8243g,.act.pin.svelte-1h8243g,.act.trash.svelte-1h8243g{display:none}.act.mmore.svelte-1h8243g{display:inline-flex;opacity:.7}.act.mmore.on.svelte-1h8243g{opacity:1;color:var(--text)}.actions.svelte-1h8243g{gap:2px;position:relative}.rowmenu.svelte-1h8243g{position:absolute;right:0;top:calc(100% + 2px);min-width:140px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 14px 36px #0000004d;padding:4px;z-index:var(--z-popover);display:flex;flex-direction:column;animation:ocrc-pop .14s var(--ease-out, ease-out)}.rowmenu.svelte-1h8243g button:where(.svelte-1h8243g){display:block;width:100%;padding:9px 12px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}.rowmenu.svelte-1h8243g button:where(.svelte-1h8243g):hover{background:var(--bg-input);color:var(--text)}.rowmenu.svelte-1h8243g button.danger:where(.svelte-1h8243g){color:var(--err)}}.meta.svelte-1h8243g{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:10.5px;color:var(--text-3);margin:4px 0 0 16px}.sep.svelte-1h8243g{color:var(--border)}.id.svelte-1h8243g,.repo.svelte-1h8243g{color:var(--text-2)}.add.svelte-1h8243g{color:var(--ok)}.del.svelte-1h8243g{color:var(--err)}.empty.svelte-1h8243g{padding:16px 12px;color:var(--text-3);font-size:11px}.progress.svelte-1h8243g{height:3px;margin-top:8px;background:var(--border-2);border-radius:var(--radius-bar);overflow:hidden}.progress-fill.svelte-1h8243g{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,var(--accent) 50%,transparent 100%);background-size:200% 100%;animation:ocrc-shimmer 1.4s linear infinite}.rail-foot.svelte-aqr1j0{display:flex;align-items:center;gap:7px;padding:8px 10px;border-top:1px solid var(--border-2);min-width:0}.avatar.svelte-aqr1j0{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--bg-elev);border:1px solid var(--border-2);color:var(--text-2);font-size:10px;font-weight:700}.who.svelte-aqr1j0{flex:1;min-width:0;font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp.svelte-aqr1j0{flex:0 0 auto}.fbtn.svelte-aqr1j0{flex-shrink:0;display:inline-grid;place-items:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-3);cursor:pointer;transition:color .12s ease}.fbtn.svelte-aqr1j0:hover{color:var(--text);background:var(--bg-input)}.fbtn.svelte-aqr1j0 svg:where(.svelte-aqr1j0){width:14px;height:14px}.agent-panel.svelte-wmno67{display:flex;height:100%;background:var(--bg-panel);border-right:1px solid var(--border-2);flex-shrink:0}.agent-panel.drawer.svelte-wmno67{width:100%;border-right:none}.panel.svelte-wmno67{display:flex;flex-direction:column;width:100%;min-width:0}.header.svelte-wmno67{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 10px;border-bottom:1px solid var(--border-2);flex-shrink:0}.agent-pill.svelte-wmno67{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:5px 9px 5px 5px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.agent-pill.svelte-wmno67:hover{border-color:var(--accent);background:var(--bg-elev2)}.glyph-tile.svelte-wmno67{width:24px;height:24px;display:inline-grid;place-items:center;border-radius:50%;border:1px solid transparent;font-family:var(--font-mono);font-size:10px;font-weight:700;flex-shrink:0}.status-dot.svelte-wmno67{width:7px;height:7px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;box-sizing:border-box}.sr-only.svelte-wmno67{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status-dot.online.svelte-wmno67{background:var(--dot, var(--ok));border-color:var(--dot, var(--ok))}.status-dot.connecting.svelte-wmno67{background:var(--warn);border-color:var(--warn);animation:ocrc-pulse 1.2s ease-in-out infinite}.status-dot.offline.svelte-wmno67{background:transparent;border:1.5px solid var(--text-4)}.name.svelte-wmno67{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.host.svelte-wmno67{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caret.svelte-wmno67{font-size:9px;color:var(--text-3);flex-shrink:0}.collapse.svelte-wmno67{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease;flex-shrink:0}.collapse.svelte-wmno67:hover{color:var(--text);background:var(--bg-elev);border-color:var(--border)}.picker.svelte-wmno67{position:absolute;top:calc(100% + 6px);left:12px;right:12px;width:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 50px #0000008c;z-index:var(--z-popover);overflow:hidden;animation:svelte-wmno67-ocrc-pop .14s ease}@keyframes svelte-wmno67-ocrc-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.picker-list.svelte-wmno67{max-height:320px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.agent-row.svelte-wmno67{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;text-align:left;transition:background .12s ease}.agent-row.svelte-wmno67:hover,.agent-row.selected.svelte-wmno67{background:var(--accent-2)}.row-tile.svelte-wmno67{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:var(--radius-xs);border:1px solid transparent;font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.row-info.svelte-wmno67{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.row-name.svelte-wmno67{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-host.svelte-wmno67{font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.check.svelte-wmno67{font-size:13px;color:var(--accent);flex-shrink:0}.picker-footer.svelte-wmno67{border-top:1px solid var(--border);padding:10px}.theme-row.svelte-wmno67{display:flex;flex-direction:column;gap:8px}.theme-label.svelte-wmno67{font-size:10.5px;color:var(--text-3)}.swatches.svelte-wmno67{display:flex;align-items:center;gap:8px}.swatch.svelte-wmno67{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.swatch.svelte-wmno67:hover{transform:scale(1.1)}.swatch.active.svelte-wmno67{border-color:var(--text)}.auto.svelte-wmno67{margin-left:auto;padding:3px 9px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.auto.svelte-wmno67:hover,.auto.active.svelte-wmno67{color:var(--text);border-color:var(--accent);background:var(--accent-2)}.agents-label.svelte-wmno67{padding:12px 14px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--text-3)}.mobile-search.svelte-wmno67{display:flex;align-items:center;gap:8px;margin:6px 12px 8px;padding:10px 12px;width:calc(100% - 24px);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer;font-size:13px;font-family:var(--font-sans);text-align:left}.mobile-search.svelte-wmno67:hover{border-color:var(--text-4)}.switcher-row.svelte-wmno67{display:flex;gap:7px;padding:10px 12px;overflow-x:auto;border-bottom:1px solid var(--border-2);flex-shrink:0;scrollbar-width:none}.switcher-row.svelte-wmno67::-webkit-scrollbar{display:none}.switch-pill.svelte-wmno67{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 10px 5px 5px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.switch-pill.active.svelte-wmno67{background:var(--accent-2);border-color:var(--accent)}.switch-tile.svelte-wmno67{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:var(--radius-xs);border:1px solid transparent;font-family:var(--font-mono);font-size:9.5px;font-weight:700;flex-shrink:0}.switch-name.svelte-wmno67{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}.switch-count.svelte-wmno67{font-size:10px;color:var(--text-3);background:var(--bg);border-radius:var(--radius-xs);padding:1px 6px}.list.svelte-wmno67{flex:1;overflow-y:auto;min-height:0}.footer.svelte-wmno67{display:flex;align-items:center;gap:7px;padding:10px max(20px,env(safe-area-inset-right,0px)) max(18px,calc(env(safe-area-inset-bottom,0px) + var(--kb, 0px))) max(20px,env(safe-area-inset-left,0px));font-size:10px;color:var(--text-4);border-top:1px solid var(--border-2);flex-shrink:0}.sep.svelte-wmno67{color:var(--border)}.sc.svelte-1ki800i{display:flex;flex-direction:column;height:100%;min-height:0;font-size:12px}.sc-hd.svelte-1ki800i{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;flex-shrink:0}.hint.svelte-1ki800i{font-size:10px;color:var(--text-3)}.open.svelte-1ki800i{background:transparent;border:none;padding:0;color:var(--accent);font-size:11px;cursor:pointer}.sc-body.svelte-1ki800i{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.sc-body.svelte-1ki800i .card{margin:4px 0 10px}.sc-body.svelte-1ki800i .card .text{font-size:12px}.empty.svelte-1ki800i{padding:14px 0;color:var(--text-3);font-size:11.5px}.sc-input.svelte-1ki800i{flex-shrink:0;display:flex;align-items:flex-end;gap:6px;margin-top:8px;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm)}.sc-input.svelte-1ki800i:focus-within{border-color:var(--accent-line)}textarea.svelte-1ki800i{flex:1;min-width:0;background:transparent;border:none;outline:none;resize:none;color:var(--text);font-family:var(--font-sans);font-size:12px;line-height:1.5;max-height:96px}.send.svelte-1ki800i{flex-shrink:0;display:inline-grid;place-items:center;width:28px;height:28px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:50%;cursor:pointer}.send.svelte-1ki800i:disabled{background:var(--border);color:var(--text-3);cursor:not-allowed}.task.svelte-1h1y2gb{flex:1;overflow:auto;padding:14px 16px}.hd.svelte-1h1y2gb{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-label.svelte-1h1y2gb{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.meta.svelte-1h1y2gb{font-family:var(--font-mono);color:var(--text-2);font-size:11px}.bar.svelte-1h1y2gb{height:4px;background:var(--bg-input);border-radius:var(--radius-bar);overflow:hidden;margin-bottom:10px}.fill.svelte-1h1y2gb{height:100%;width:100%;background:var(--accent);transform-origin:left;transition:transform .3s ease}.items.svelte-1h1y2gb{display:flex;flex-direction:column;gap:6px}.row.svelte-1h1y2gb{display:flex;align-items:flex-start;gap:9px;padding:3px 0;margin:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.row.svelte-1h1y2gb:hover .tx:where(.svelte-1h1y2gb){color:var(--text)}.row.svelte-1h1y2gb:focus-visible{outline:1px solid var(--accent);outline-offset:1px;border-radius:var(--radius-xs)}.box.svelte-1h1y2gb{flex-shrink:0;width:15px;height:15px;margin-top:1px;border-radius:var(--radius-xs);display:grid;place-items:center;position:relative}.dot.svelte-1h1y2gb{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:ocrc-pulse 1.2s ease-in-out infinite;display:none}.check.svelte-1h1y2gb{font-size:11px;line-height:1;display:none}.tx.svelte-1h1y2gb{font-size:12px;line-height:1.45;color:var(--text-2)}.row.done.svelte-1h1y2gb .box:where(.svelte-1h1y2gb){background:transparent;border-color:var(--accent-line)}.row.done.svelte-1h1y2gb .check:where(.svelte-1h1y2gb){display:block;color:var(--accent)}.row.done.svelte-1h1y2gb .tx:where(.svelte-1h1y2gb){color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--border)}.row.running.svelte-1h1y2gb .box:where(.svelte-1h1y2gb){border:1.5px solid var(--accent)}.row.running.svelte-1h1y2gb .dot:where(.svelte-1h1y2gb){display:block}.row.running.svelte-1h1y2gb .tx:where(.svelte-1h1y2gb){color:var(--text);font-weight:500}.row.pending.svelte-1h1y2gb .box:where(.svelte-1h1y2gb){border:1.5px solid var(--border)}.mcp.svelte-ehf8ic{font-size:11.5px}.list.svelte-ehf8ic{display:flex;flex-direction:column;gap:4px;color:var(--text-2);margin-top:6px}.row.svelte-ehf8ic{display:flex;align-items:center;gap:7px}.dot.svelte-ehf8ic{width:6px;height:6px;border-radius:50%;background:var(--ok);flex-shrink:0}.row.off.svelte-ehf8ic{color:var(--text-3)}.row.off.svelte-ehf8ic .dot:where(.svelte-ehf8ic){background:var(--text-3)}.sr-only.svelte-ehf8ic{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.schedules.svelte-pijcyq{font-size:11.5px}.hd.svelte-pijcyq{display:flex;align-items:center;justify-content:space-between}.label.svelte-pijcyq{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.add.svelte-pijcyq{width:20px;height:20px;display:grid;place-items:center;padding:0;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text-3);font-size:13px;line-height:1;cursor:pointer}.add.svelte-pijcyq:hover{color:var(--text);border-color:var(--accent)}.list.svelte-pijcyq{display:flex;flex-direction:column;gap:7px;margin-top:8px}.row.svelte-pijcyq{display:flex;align-items:flex-start;gap:8px}.switch.svelte-pijcyq{flex-shrink:0;width:22px;height:14px;margin-top:2px;padding:0;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-input);display:grid;align-items:center;cursor:pointer}.switch.svelte-pijcyq .dot:where(.svelte-pijcyq){width:8px;height:8px;margin:0 2px;border-radius:50%;background:var(--text-3);transition:transform .16s ease,background .16s ease}.switch.on.svelte-pijcyq{border-color:var(--accent)}.switch.on.svelte-pijcyq .dot:where(.svelte-pijcyq){background:var(--accent);transform:translate(8px)}.txt.svelte-pijcyq{flex:1;min-width:0}.prompt.svelte-pijcyq{font-size:11.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row.off.svelte-pijcyq .prompt:where(.svelte-pijcyq){color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--border)}.spec.svelte-pijcyq{font-size:10px;color:var(--text-3);margin-top:1px}.del.svelte-pijcyq{flex-shrink:0;margin-top:1px;padding:0 5px;min-width:18px;height:18px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-3);font-size:11px;cursor:pointer}.del.svelte-pijcyq:hover{color:var(--err)}.del.arm.svelte-pijcyq{color:var(--err);border:1px solid var(--err)}.form.svelte-pijcyq{margin-top:10px;padding:9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);display:flex;flex-direction:column;gap:7px}.prompt-in.svelte-pijcyq{width:100%;resize:vertical;padding:6px 8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;box-sizing:border-box}.prompt-in.svelte-pijcyq:focus{outline:1px solid var(--accent)}.kind.svelte-pijcyq{display:flex;align-items:center;gap:10px;color:var(--text-2)}.kind.svelte-pijcyq label:where(.svelte-pijcyq){display:inline-flex;align-items:center;gap:4px;cursor:pointer}.kind.svelte-pijcyq input[type=radio]:where(.svelte-pijcyq){accent-color:var(--accent);margin:0}.num.svelte-pijcyq,.time.svelte-pijcyq{width:62px;padding:2px 5px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);font:inherit;font-size:11px}.num.svelte-pijcyq:disabled,.time.svelte-pijcyq:disabled{opacity:.4}.err.svelte-pijcyq{color:var(--err);font-size:10.5px}.go.svelte-pijcyq{align-self:flex-end;padding:4px 12px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.go.svelte-pijcyq:disabled{opacity:.45;cursor:default}.skills.svelte-taxat6{font-size:11.5px}.label.svelte-taxat6{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.chips.svelte-taxat6{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;animation:ocrc-fade .15s var(--ease-out, ease-out)}.chips.clipped.svelte-taxat6{max-height:132px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent);mask-image:linear-gradient(to bottom,#000 70%,transparent)}.chip.svelte-taxat6{padding:2px 7px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.more.svelte-taxat6{margin-top:5px;padding:0;background:transparent;border:none;color:var(--text-3);font:inherit;font-size:10.5px;cursor:pointer;text-align:left}.more.svelte-taxat6:hover{color:var(--accent)}.files.svelte-tp0rgj{font-size:11.5px}.label.svelte-tp0rgj{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.crumb.svelte-tp0rgj{margin-top:6px;color:var(--text-3);font-size:10.5px}.up.svelte-tp0rgj{background:transparent;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer}.list.svelte-tp0rgj{display:flex;flex-direction:column;gap:2px;margin-top:4px}.row.svelte-tp0rgj{display:flex;align-items:center;gap:7px;padding:3px 4px;margin:0;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font:inherit;text-align:left;cursor:pointer}.row.svelte-tp0rgj:hover{background:var(--bg-input);color:var(--text)}.ico.svelte-tp0rgj{flex-shrink:0;width:14px;text-align:center}.name.svelte-tp0rgj{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wt.svelte-148ev8e{font-size:11.5px}.hd.svelte-148ev8e{display:flex;align-items:center;justify-content:space-between}.label.svelte-148ev8e{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.add.svelte-148ev8e{width:20px;height:20px;display:grid;place-items:center;padding:0;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text-3);font-size:13px;line-height:1;cursor:pointer}.add.svelte-148ev8e:hover{color:var(--text);border-color:var(--accent)}.list.svelte-148ev8e{display:flex;flex-direction:column;gap:4px;margin-top:6px}.rows.svelte-148ev8e{display:flex;flex-direction:column;gap:4px;animation:ocrc-fade .15s var(--ease-out, ease-out)}.row.svelte-148ev8e{display:flex;align-items:center;gap:6px}.ico.svelte-148ev8e{flex-shrink:0}.name.svelte-148ev8e{flex:1;min-width:0;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.del.svelte-148ev8e{flex-shrink:0;padding:0 5px;min-width:18px;height:18px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-3);font-size:11px;cursor:pointer}.del.svelte-148ev8e:hover,.del.arm.svelte-148ev8e{color:var(--err)}.del.arm.svelte-148ev8e{border:1px solid var(--err)}.form.svelte-148ev8e{margin-top:8px;display:flex;gap:6px;align-items:center}.name-in.svelte-148ev8e{flex:1;min-width:0;padding:5px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:11px;box-sizing:border-box}.name-in.svelte-148ev8e:focus{outline:1px solid var(--accent)}.err.svelte-148ev8e{color:var(--err);font-size:10.5px}.go.svelte-148ev8e{padding:4px 10px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.go.svelte-148ev8e:disabled{opacity:.45;cursor:default}.subs.svelte-1s66f6s{font-size:11.5px}.row.svelte-1s66f6s{display:flex;align-items:center;gap:8px;width:100%;padding:5px 4px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font:inherit;text-align:left;cursor:pointer}.row.svelte-1s66f6s:hover{background:var(--bg-input);color:var(--text)}.dot.svelte-1s66f6s{flex-shrink:0;width:7px;height:7px;border-radius:50%;box-sizing:border-box;background:transparent;border:1.5px solid var(--text-4)}.dot.live.svelte-1s66f6s{background:var(--accent);border-color:var(--accent);animation:ocrc-pulse 1.2s ease-in-out infinite}.dot.done.svelte-1s66f6s{background:var(--ok);border-color:var(--ok)}.meta.svelte-1s66f6s{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.title.svelte-1s66f6s{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count.svelte-1s66f6s,.live-label.svelte-1s66f6s{flex-shrink:0;font-size:10px;color:var(--text-3)}.empty.svelte-1s66f6s{padding:10px 0;color:var(--text-3);font-size:11px}.t-wrap.svelte-6fqea2{font-size:12px;display:flex;flex-direction:column;height:100%;min-height:0}.t-hd.svelte-6fqea2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-shrink:0}.t-hint.svelte-6fqea2{font-size:10px;color:var(--text-3)}.open.svelte-6fqea2{background:transparent;border:none;padding:0;color:var(--accent);font:inherit;font-size:11px;cursor:pointer;flex-shrink:0}.t-body.svelte-6fqea2{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.t-body.svelte-6fqea2 .card{margin:4px 0 10px}.empty.svelte-6fqea2{padding:14px 0;color:var(--text-3);font-size:11.5px}.fv.svelte-va1nfd{font-size:11.5px}.label.svelte-va1nfd{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.trunc.svelte-va1nfd{padding:4px 0;color:var(--warn);text-transform:none;letter-spacing:0;font-size:10.5px}.body.svelte-va1nfd{overflow:visible}.hint.svelte-va1nfd{padding:10px 0}.out.svelte-1bw07gw{font-size:11.5px}.hd.svelte-1bw07gw{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tool.svelte-1bw07gw{font-size:12px;font-weight:600;color:var(--text-2)}.st.svelte-1bw07gw{font-size:10px;color:var(--text-3)}.st.running.svelte-1bw07gw,.st.pending.svelte-1bw07gw{color:var(--warn)}.st.error.svelte-1bw07gw{color:var(--err)}.st.completed.svelte-1bw07gw,.st.done.svelte-1bw07gw{color:var(--ok)}.cmd.svelte-1bw07gw{padding:6px 8px;background:var(--bg-input);border-radius:var(--radius-xs);color:var(--toolcmd);font-size:11px;white-space:pre-wrap;word-break:break-word;margin-bottom:6px}.body.svelte-1bw07gw{margin:0;padding:8px 10px;background:var(--bg-code);border-radius:var(--radius-xs);color:var(--toolout);font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto}.body.err.svelte-1bw07gw{color:var(--err)}.hint.svelte-1bw07gw{padding:8px 0;color:var(--text-3);font-size:11px}.git.svelte-1x813in{font-size:11.5px}.hd.svelte-1x813in{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.branch.svelte-1x813in{font-size:12px;font-weight:600;color:var(--text-2)}.count.svelte-1x813in{font-size:10px;color:var(--text-3)}.file.svelte-1x813in{margin-bottom:2px}.row.svelte-1x813in{display:flex;align-items:center;gap:7px;width:100%;padding:4px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font:inherit;text-align:left;cursor:pointer}.row.svelte-1x813in:hover{background:var(--bg-input);color:var(--text)}.badge.svelte-1x813in{flex-shrink:0;font-size:9.5px;padding:1px 6px;border-radius:var(--radius-pill);border:1px solid var(--border-2);color:var(--text-3)}.badge.added.svelte-1x813in{color:var(--ok);border-color:var(--ok)}.badge.deleted.svelte-1x813in{color:var(--err);border-color:var(--err)}.badge.modified.svelte-1x813in{color:var(--warn);border-color:var(--warn)}.path.svelte-1x813in{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.delta.svelte-1x813in{flex-shrink:0;display:flex;gap:5px;font-size:10px}.delta.svelte-1x813in .add:where(.svelte-1x813in){color:var(--ok)}.delta.svelte-1x813in .del:where(.svelte-1x813in){color:var(--err)}.patch.svelte-1x813in{margin:2px 0 6px;padding:8px 10px;background:var(--bg-code);border-radius:var(--radius-xs);color:var(--toolout);font-size:10.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto}.hint.svelte-1x813in{padding:6px 4px;color:var(--text-3);font-size:11px}.inspector.svelte-gu3dqx{width:var(--insp-w, 380px);flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-elev);border-left:1px solid var(--border-2)}.head.svelte-gu3dqx{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 12px 16px;border-bottom:1px solid var(--border-2)}.head-main.svelte-gu3dqx{flex:1;min-width:0}.collapse-btn.svelte-gu3dqx{flex-shrink:0;display:inline-grid;place-items:center;width:26px;height:26px;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius-xs);color:var(--text-3);cursor:pointer}.collapse-btn.svelte-gu3dqx:hover{color:var(--text);border-color:var(--border)}.collapse-btn.svelte-gu3dqx svg:where(.svelte-gu3dqx){width:14px;height:14px}.launcher.svelte-gu3dqx{display:flex;flex-direction:column;align-items:center;padding:8vh 20px 0;text-align:center}.l-title.svelte-gu3dqx{margin:0 0 4px;font-family:var(--font-serif);font-size:15px;color:var(--text)}.l-desc.svelte-gu3dqx{margin:0 0 18px;font-size:11.5px;color:var(--text-3)}.l-list.svelte-gu3dqx{display:flex;flex-direction:column;gap:8px;width:100%;max-width:260px}.l-card.svelte-gu3dqx{display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;background:var(--bg-input);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;transition:border-color .12s ease,color .12s ease;animation:ocrc-rise .2s var(--ease-out, ease-out) backwards}.l-card.svelte-gu3dqx:nth-child(1){animation-delay:30ms}.l-card.svelte-gu3dqx:nth-child(2){animation-delay:75ms}.l-card.svelte-gu3dqx:nth-child(3){animation-delay:.12s}.l-card.svelte-gu3dqx:nth-child(4){animation-delay:165ms}.l-card.svelte-gu3dqx:nth-child(5){animation-delay:.21s}.l-card.svelte-gu3dqx:nth-child(n+6){animation-delay:255ms}.l-card.svelte-gu3dqx:hover{border-color:var(--accent-line);color:var(--text)}.l-ico.svelte-gu3dqx{display:inline-flex;flex-shrink:0;color:var(--text-3)}.l-card.svelte-gu3dqx:hover .l-ico:where(.svelte-gu3dqx){color:var(--accent)}.l-ico.svelte-gu3dqx svg:where(.svelte-gu3dqx){width:16px;height:16px}.l-text.svelte-gu3dqx{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.l-sep.svelte-gu3dqx{height:1px;background:var(--border-2);margin:4px 0}.section-label.svelte-gu3dqx{text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-size:10px}.name.svelte-gu3dqx{margin-top:4px;display:flex;align-items:center;gap:6px;min-width:0;font-weight:600;font-size:13px;color:var(--text)}.title-text.svelte-gu3dqx{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabs.svelte-gu3dqx{display:flex;align-items:center;gap:2px;padding:0 6px 0 10px;border-bottom:1px solid var(--border-2);overflow-x:auto;scrollbar-width:none}.tabs.svelte-gu3dqx::-webkit-scrollbar{display:none}.tab.svelte-gu3dqx{position:relative;display:inline-flex;align-items:center;gap:4px;padding:9px 6px 8px;background:transparent;border:none;color:var(--text-3);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;flex-shrink:0}.tab.svelte-gu3dqx:hover{color:var(--text-2)}.tab.active.svelte-gu3dqx{color:var(--text);font-weight:600}.tab.active.svelte-gu3dqx:after{content:"";position:absolute;left:6px;right:6px;bottom:-1px;height:2px;background:var(--accent);border-radius:var(--radius-pill)}.dlabel.svelte-gu3dqx{max-width:96px;overflow:hidden;text-overflow:ellipsis}.tbadge.svelte-gu3dqx{font-size:9.5px;color:var(--text-3)}.tab.active.svelte-gu3dqx .tbadge:where(.svelte-gu3dqx){color:var(--text-2)}.closer.svelte-gu3dqx{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:var(--radius-xs);color:var(--text-4);font-size:10px;line-height:1}.closer.svelte-gu3dqx:hover{color:var(--text);background:var(--bg-input)}.tab.active.svelte-gu3dqx .closer:where(.svelte-gu3dqx){color:var(--text-3)}.tabs-more.svelte-gu3dqx{flex-shrink:0;display:inline-grid;place-items:center;width:20px;height:20px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-3);font-size:12px;cursor:pointer}.tabs-more.svelte-gu3dqx:hover{color:var(--text);background:var(--bg-input)}.tabs-menu.svelte-gu3dqx{position:absolute;top:calc(100% + 4px);right:6px;min-width:110px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 14px 36px #00000040;padding:4px;z-index:var(--z-popover);animation:ocrc-pop .14s var(--ease-out, ease-out)}.plus.svelte-gu3dqx{position:relative;margin-left:auto;flex-shrink:0}.plus-btn.svelte-gu3dqx{display:inline-grid;place-items:center;width:20px;height:20px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-3);font-size:14px;line-height:1;cursor:pointer}.plus-btn.svelte-gu3dqx:hover{color:var(--text);background:var(--bg-input)}.plus-menu.svelte-gu3dqx{position:absolute;top:calc(100% + 6px);right:0;min-width:130px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 14px 36px #00000040;padding:4px;z-index:var(--z-popover);animation:ocrc-pop .14s var(--ease-out, ease-out)}.plus-menu.svelte-gu3dqx button:where(.svelte-gu3dqx){display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:6px 9px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font:inherit;font-size:12px;text-align:left;cursor:pointer}.plus-menu.svelte-gu3dqx button:where(.svelte-gu3dqx):hover{background:var(--bg-input);color:var(--text)}.menu-sep.svelte-gu3dqx{height:1px;background:var(--border-2);margin:4px 2px}.pane.svelte-gu3dqx{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 14px 18px}.gap.svelte-gu3dqx{height:14px}@media (max-width: 820px){.inspector.svelte-gu3dqx{width:100%;height:100%;display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}.pane.svelte-gu3dqx{overflow:visible}}.overlay.svelte-wh9uu8{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding-top:84px;z-index:var(--z-overlay)}.backdrop.svelte-wh9uu8{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);border:none;padding:0;margin:0;cursor:default;animation:ocrc-fade .16s ease backwards}.palette.svelte-wh9uu8{position:relative;z-index:1;width:min(560px,92vw);max-height:calc(100vh - 120px);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-palette);display:flex;flex-direction:column;animation:ocrc-pop .16s var(--ease-out, ease-out) backwards}.header.svelte-wh9uu8{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.search-icon.svelte-wh9uu8{font-size:18px;color:var(--text-3);line-height:1;flex-shrink:0}.q.svelte-wh9uu8{flex:1;min-width:0;background:transparent;border:none;color:var(--text);font-family:var(--font-sans);font-size:16px;outline:none;padding:0}.q.svelte-wh9uu8::placeholder{color:var(--text-4)}.keycap.svelte-wh9uu8{flex-shrink:0;font-size:10px;color:var(--text-3);text-transform:uppercase;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-xs);padding:3px 6px}.results.svelte-wh9uu8{overflow-y:auto;padding:8px}.group.svelte-wh9uu8{display:flex;align-items:center;gap:8px;padding:8px 10px 4px}.group-icon.svelte-wh9uu8{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);background:var(--accent-2);color:var(--accent);font-family:var(--font-mono);font-size:12px;font-weight:600}.group-label.svelte-wh9uu8{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-3)}.row.svelte-wh9uu8{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;color:var(--text);padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .12s ease}.row.active.svelte-wh9uu8,.row.svelte-wh9uu8:hover:not(.disabled){background:var(--accent-2)}.row.disabled.svelte-wh9uu8{opacity:.5;cursor:default}.row.svelte-wh9uu8:disabled{opacity:.5;cursor:default}.tile.svelte-wh9uu8{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-xs);background:var(--bg-panel);border:1px solid var(--border-2);color:var(--text-2);font-family:var(--font-mono);font-size:11px;font-weight:600}.label.svelte-wh9uu8{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;color:var(--text);text-transform:none;letter-spacing:normal}.hint.svelte-wh9uu8{flex-shrink:0;max-width:45%;font-size:11px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.empty.svelte-wh9uu8{padding:24px;text-align:center;color:var(--text-3);font-size:13.5px}.error.svelte-wh9uu8{padding:10px;color:var(--err);font-size:12px}.about.svelte-wh9uu8{padding:8px 14px 10px;border-top:1px solid var(--border-2);color:var(--text-4);font-size:10.5px}.overlay.svelte-cfrpez{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding-top:84px;z-index:var(--z-modal)}.backdrop.svelte-cfrpez{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);border:none;padding:0;margin:0;cursor:default;animation:ocrc-fade .16s ease backwards}.modal.svelte-cfrpez{position:relative;z-index:1;width:min(460px,92vw);max-height:calc(100vh - 120px);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 70px #0009;display:flex;flex-direction:column;overflow:hidden;animation:svelte-cfrpez-ocrc-pop .14s ease}@keyframes svelte-cfrpez-ocrc-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.header.svelte-cfrpez{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.title.svelte-cfrpez{font-size:15px;font-weight:600;color:var(--text)}.close.svelte-cfrpez{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer;font-size:14px;transition:color .12s ease,background .12s ease,border-color .12s ease}.close.svelte-cfrpez:hover{color:var(--text);background:var(--bg-elev2);border-color:var(--border)}.body.svelte-cfrpez{padding:16px;display:flex;flex-direction:column;gap:18px;overflow-y:auto}.field.svelte-cfrpez{display:flex;flex-direction:column;gap:8px}.label.svelte-cfrpez{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-3)}.optional.svelte-cfrpez{font-weight:400;color:var(--text-4);text-transform:none;letter-spacing:normal}.agent-chips.svelte-cfrpez{display:flex;flex-wrap:wrap;gap:8px}.agent-chip.svelte-cfrpez{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.agent-chip.svelte-cfrpez:hover{border-color:var(--accent);background:var(--bg-elev2)}.agent-chip.selected.svelte-cfrpez{background:var(--accent-2);border-color:var(--accent-line);color:var(--text)}.chip-tile.svelte-cfrpez{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:var(--radius-xs);border:1px solid transparent;font-family:var(--font-mono);font-size:9.5px;font-weight:700;flex-shrink:0}.chip-name.svelte-cfrpez{font-size:12px;font-weight:600}.chip-status.svelte-cfrpez{width:6px;height:6px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;box-sizing:border-box}.sr-only.svelte-cfrpez{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chip-status.online.svelte-cfrpez{background:var(--dot, var(--ok));border-color:var(--dot, var(--ok))}.chip-status.connecting.svelte-cfrpez{background:var(--warn);border-color:var(--warn);animation:ocrc-pulse 1.2s ease-in-out infinite}.chip-status.offline.svelte-cfrpez{background:transparent;border:1.5px solid var(--text-4)}.dir-input.svelte-cfrpez{display:flex;align-items:center;gap:0;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s ease}.dir-input.svelte-cfrpez:focus-within{border-color:var(--accent)}.host-prefix.svelte-cfrpez{padding:8px 0 8px 10px;font-size:12.5px;color:var(--text-3);flex-shrink:0}.path.svelte-cfrpez{flex:1;min-width:0;background:transparent;border:none;color:var(--text);font-size:16px;padding:8px 10px;outline:none}.path.svelte-cfrpez::placeholder{color:var(--text-4)}.browse.svelte-cfrpez{border:none;border-left:1px solid var(--border);background:var(--bg-panel);color:var(--text-3);font-size:11px;font-weight:600;padding:0 12px;cursor:pointer;transition:color .12s ease,background .12s ease;flex-shrink:0}.browse.svelte-cfrpez:hover{color:var(--text);background:var(--bg-elev2)}.recents.svelte-cfrpez{display:none;flex-direction:column;gap:6px}.recents.open.svelte-cfrpez{display:flex}.recents-label.svelte-cfrpez{font-size:10px;color:var(--text-4);text-transform:uppercase;letter-spacing:.1em}.recents-list.svelte-cfrpez{display:flex;flex-direction:column;gap:2px;max-height:160px;overflow-y:auto;padding:4px;background:var(--bg-panel);border:1px solid var(--border-2);border-radius:var(--radius-sm)}.recent.svelte-cfrpez{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;text-align:left;transition:background .12s ease}.recent.svelte-cfrpez:hover{background:var(--bg-elev)}.recent-name.svelte-cfrpez{font-size:12px;font-weight:600;color:var(--text-2)}.recent-dir.svelte-cfrpez{font-size:10.5px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.branch.svelte-cfrpez{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:16px;padding:8px 10px;outline:none;transition:border-color .15s ease}.branch.svelte-cfrpez:focus{border-color:var(--accent)}.branch.svelte-cfrpez::placeholder{color:var(--text-4)}.error.svelte-cfrpez{padding:10px 12px;background:color-mix(in srgb,var(--err) 12%,transparent);border:1px solid color-mix(in srgb,var(--err) 35%,transparent);border-radius:var(--radius-sm);color:var(--err);font-size:12px}.footer.svelte-cfrpez{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid var(--border);flex-shrink:0}.btn.svelte-cfrpez{padding:7px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:650;cursor:pointer;transition:opacity .12s ease,transform .12s ease;border:none}.btn.svelte-cfrpez:disabled{opacity:.5;cursor:default}.secondary.svelte-cfrpez{background:transparent;border:1px solid var(--border);color:var(--text-2)}.secondary.svelte-cfrpez:hover:not(:disabled){background:var(--bg-elev2);color:var(--text)}.primary.svelte-cfrpez{background:var(--accent);color:var(--accent-ink)}.primary.svelte-cfrpez:hover:not(:disabled){opacity:.9}.empty.svelte-cfrpez{padding:24px;text-align:center;color:var(--text-3);font-size:13.5px}@media (max-width: 820px){.overlay.svelte-cfrpez{align-items:flex-end;padding:0 0 calc(env(safe-area-inset-bottom,0px) + var(--kb, 0px));transition:padding-bottom .2s ease-out}.modal.svelte-cfrpez{width:100%;max-height:calc(86vh - var(--kb, 0px));border-bottom-left-radius:0;border-bottom-right-radius:0;animation:svelte-cfrpez-sheetin .22s ease}@keyframes svelte-cfrpez-sheetin{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}}.overlay.svelte-b8emeh{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:24px}.backdrop.svelte-b8emeh{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);border:none;padding:0;margin:0;cursor:default;animation:ocrc-fade .16s ease backwards}.modal.svelte-b8emeh{position:relative;width:min(880px,94vw);max-height:86vh;overflow:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-palette);animation:ocrc-pop .16s var(--ease-out, ease-out) backwards}.header.svelte-b8emeh{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-2)}.title.svelte-b8emeh{font-family:var(--font-serif);font-size:16px;font-weight:600;color:var(--text)}.close.svelte-b8emeh{background:transparent;border:none;color:var(--text-3);font-size:14px;cursor:pointer}.cols.svelte-b8emeh{display:flex;gap:14px;padding:14px 18px}.list.svelte-b8emeh{width:170px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.ch.svelte-b8emeh{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer}.ch-logo.svelte-b8emeh{display:grid;place-items:center}.ch.sel.svelte-b8emeh{border-color:var(--accent);background:var(--accent-2)}.ch-state.svelte-b8emeh{font-size:10px;color:var(--text-3)}.ch-state.on.svelte-b8emeh{color:var(--ok, var(--accent))}.detail.svelte-b8emeh{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.d-hd.svelte-b8emeh{display:flex;align-items:center;justify-content:space-between}.d-name.svelte-b8emeh{font-family:var(--font-serif);font-size:15px;font-weight:600;color:var(--text)}.switch.svelte-b8emeh{width:40px;height:22px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-input);display:grid;align-items:center;padding:0 2px;cursor:pointer}.switch.svelte-b8emeh .knob:where(.svelte-b8emeh){width:14px;height:14px;border-radius:50%;background:var(--text-3);transition:transform .16s ease,background .16s ease}.switch.on.svelte-b8emeh{border-color:var(--accent)}.switch.on.svelte-b8emeh .knob:where(.svelte-b8emeh){background:var(--accent);transform:translate(18px)}.note.svelte-b8emeh{margin:0;font-size:11.5px;color:var(--text-3)}.sec.svelte-b8emeh{border-top:1px solid var(--border-2);padding-top:10px}.danger.svelte-b8emeh{border-top-color:var(--err)}.sec-label.svelte-b8emeh{font-size:11px;color:var(--text-3);margin-bottom:6px}.cred.svelte-b8emeh{width:100%;box-sizing:border-box;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:11px}.cred.svelte-b8emeh:focus{outline:1px solid var(--accent)}.sec-acts.svelte-b8emeh{display:flex;align-items:center;gap:8px;margin-top:6px}.save.svelte-b8emeh{padding:4px 12px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--accent-ink);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}.opts.svelte-b8emeh{display:flex;flex-direction:column;gap:4px}.opt.svelte-b8emeh{padding:7px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:12px;text-align:left;cursor:pointer}.opt.sel.svelte-b8emeh{border-color:var(--accent);color:var(--text);background:var(--accent-2)}.hint.svelte-b8emeh{font-size:10.5px;color:var(--text-3);margin:4px 0 0}.reset.svelte-b8emeh{padding:5px 12px;background:transparent;border:1px solid var(--err);border-radius:var(--radius-sm);color:var(--err);font:inherit;font-size:11.5px;cursor:pointer}.pair.svelte-b8emeh{border-top:1px solid var(--border-2);padding:12px 18px 16px}.pair-head.svelte-b8emeh{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}.pair-title.svelte-b8emeh{font-size:12.5px;font-weight:650;color:var(--text)}.cd.svelte-b8emeh{font-weight:500;color:var(--text-3);font-size:11.5px;margin-left:4px}.cd.expired.svelte-b8emeh{color:var(--warn)}.stop.svelte-b8emeh{flex-shrink:0;padding:4px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:11.5px;cursor:pointer}.stop.svelte-b8emeh:hover{color:var(--err);border-color:var(--err)}.qr-big.svelte-b8emeh{position:relative;width:min(200px,70%);margin:14px auto 12px;background:#fff;padding:10px;border-radius:var(--radius);animation:ocrc-fade .18s var(--ease-out, ease-out)}.qr-big.svelte-b8emeh svg{width:100%;height:auto;display:block}.qr-big.dim.svelte-b8emeh svg{opacity:.18;filter:blur(1px)}.qr-expired.svelte-b8emeh{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text);font-size:12px;font-weight:600}.pair-acts.svelte-b8emeh{display:flex;align-items:center;gap:8px}.spacer.svelte-b8emeh{flex:1}.pair-stopped.svelte-b8emeh{display:flex;align-items:center;gap:10px;padding:10px 0 2px;color:var(--text-2);font-size:12px}.copy.svelte-b8emeh{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:11.5px;cursor:pointer}.copy.svelte-b8emeh:hover{border-color:var(--accent);color:var(--text)}.overlay.svelte-1r7zhoh{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);pointer-events:none}.backdrop.svelte-1r7zhoh{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;border:none;padding:0;margin:0;cursor:default;pointer-events:auto}.menu.svelte-1r7zhoh{position:absolute;z-index:1;min-width:180px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 50px #0000008c;padding:6px;display:flex;flex-direction:column;gap:2px;pointer-events:auto;animation:svelte-1r7zhoh-ocrc-pop .14s ease}@keyframes svelte-1r7zhoh-ocrc-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.item.svelte-1r7zhoh{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;text-align:left;transition:background .12s ease}.item.svelte-1r7zhoh:hover{background:var(--accent-2)}.icon.svelte-1r7zhoh{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);background:var(--bg-panel);border:1px solid var(--border-2);color:var(--text-2);font-size:12px;flex-shrink:0}.label.svelte-1r7zhoh{flex:1;font-size:13px;font-weight:500}.keycap.svelte-1r7zhoh{flex-shrink:0;font-size:10px;color:var(--text-3);text-transform:uppercase;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-xs);padding:2px 5px}@media (max-width: 820px){.overlay.svelte-1r7zhoh{display:flex;align-items:flex-end;justify-content:center;padding:0 0 env(safe-area-inset-bottom,0);pointer-events:auto;background:var(--scrim)}.menu.svelte-1r7zhoh{position:relative;top:auto!important;left:auto!important;width:100%;max-width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;animation:svelte-1r7zhoh-sheetin .18s ease}@keyframes svelte-1r7zhoh-sheetin{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}}.fab-root.svelte-9zfapn{display:none}@media (max-width: 820px){.fab-root.svelte-9zfapn{display:block}}.scrim.svelte-9zfapn{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-fab);background:var(--scrim);border:none;padding:0;cursor:default;animation:svelte-9zfapn-fade .16s ease}@keyframes svelte-9zfapn-fade{0%{opacity:0}to{opacity:1}}.fab.svelte-9zfapn{position:fixed;z-index:var(--z-fab);right:18px;bottom:calc(76px + env(safe-area-inset-bottom,0px) + var(--kb, 0px));width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);border:none;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 8px 24px #0006;transition:transform .2s ease}.fab.rot.svelte-9zfapn{transform:rotate(45deg)}.fab.svelte-9zfapn:active{transform:scale(.94)}.fab.rot.svelte-9zfapn:active{transform:rotate(45deg) scale(.94)}.dial.svelte-9zfapn{position:fixed;z-index:var(--z-fab);right:20px;bottom:calc(146px + env(safe-area-inset-bottom,0px) + var(--kb, 0px));display:flex;flex-direction:column;align-items:flex-end;gap:12px}.dial-item.svelte-9zfapn{display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:0;cursor:pointer;animation:svelte-9zfapn-rise .16s ease both}@keyframes svelte-9zfapn-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dial-label.svelte-9zfapn{font-size:12px;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);padding:6px 10px;border-radius:var(--radius-xs);white-space:nowrap;box-shadow:0 4px 14px #0000004d}.dial-icon.svelte-9zfapn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:var(--bg-elev2);color:var(--text);border:1px solid var(--border)}.gate.svelte-9s687p{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-gate);display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto}.panel.svelte-9s687p{width:min(1060px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:22px 26px;display:flex;flex-direction:column;gap:14px;animation:ocrc-pop var(--dur-enter, .2s) var(--ease-out, ease-out) backwards}.head.svelte-9s687p{display:flex;gap:14px;align-items:center}.hicon.svelte-9s687p{width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid var(--border-2);border-radius:var(--radius)}.hicon.svelte-9s687p svg:where(.svelte-9s687p){width:34px;height:34px;display:block}h1.svelte-9s687p{margin:0;font-size:17px;color:var(--text);font-weight:700}.sub.svelte-9s687p{margin:2px 0 0;font-size:12.5px;color:var(--text-2)}.cols.svelte-9s687p{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}@media (max-width: 860px){.cols.svelte-9s687p{grid-template-columns:1fr}}.scan.svelte-9s687p,.channels.svelte-9s687p{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.sec-head.svelte-9s687p{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}.sec-title.svelte-9s687p{font-size:13px;font-weight:650;color:var(--text)}.chip.svelte-9s687p{font-size:10.5px;color:var(--text-2);background:var(--bg-elev);border:1px solid var(--border);padding:2px 8px;border-radius:var(--radius-pill)}.wait-row.svelte-9s687p{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wait.done.svelte-9s687p{color:var(--ok, #2e9e6b)}.btn.enter.svelte-9s687p{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.wait.svelte-9s687p{font-size:12px;color:var(--text);font-weight:600}.cd.svelte-9s687p{font-weight:500;color:var(--text-3)}.cd.expired.svelte-9s687p{color:var(--warn)}.qr-wrap.svelte-9s687p{position:relative;width:min(230px,80%);margin:4px auto;background:#fff;padding:12px;border-radius:var(--radius);border:1px dashed var(--border-2)}.qr-wrap.svelte-9s687p svg{width:100%;height:auto;display:block}.qr-re.svelte-9s687p{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text);font-size:12.5px;font-weight:600}.acts.svelte-9s687p{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spacer.svelte-9s687p{flex:1}.btn.svelte-9s687p{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:12px;cursor:pointer}.btn.svelte-9s687p:hover{border-color:var(--accent);color:var(--text)}.ch.svelte-9s687p{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:default}.lock.svelte-9s687p{margin-left:auto;font-size:12px;opacity:.65;flex-shrink:0}.ch-icon.svelte-9s687p{display:grid;place-items:center;flex-shrink:0}.ch-name.svelte-9s687p{font-size:12.5px;font-weight:650;color:var(--text);display:flex;gap:8px;align-items:baseline}.ok.svelte-9s687p{font-size:10.5px;color:var(--ok, #2e9e6b);font-weight:600}.off.svelte-9s687p{font-size:10.5px;color:var(--text-3);font-weight:500}.ch-note.svelte-9s687p{font-size:11.5px;color:var(--text-3);margin-top:2px}.hint.svelte-9s687p{font-size:11.5px;color:var(--text-3);margin:0;line-height:1.5}.dim.svelte-9s687p{color:var(--text-3)}.rejected.svelte-9s687p{margin:0;font-size:12.5px;color:var(--err)}.paste.svelte-9s687p{border-top:1px solid var(--border-2);padding-top:10px}.paste.svelte-9s687p summary:where(.svelte-9s687p){cursor:pointer;font-size:12px;color:var(--text-2)}.paste-body.svelte-9s687p{display:flex;flex-direction:column;gap:8px;padding-top:10px}.field.svelte-9s687p{padding:9px 11px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text);font-size:12.5px}.field.svelte-9s687p:focus{outline:none;border-color:var(--accent-line)}.err.svelte-9s687p{font-size:12px;color:var(--err)}.connect.svelte-9s687p{align-self:flex-start;padding:8px 18px;background:var(--accent);border:1px solid var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.connect.svelte-9s687p:disabled{opacity:.45;cursor:default}.foot.svelte-9s687p{border-top:1px solid var(--border-2);padding-top:10px}.app.svelte-12qhfyh{position:fixed;top:0;left:0;right:0;display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg)}.body.svelte-12qhfyh{display:flex;flex:1;overflow:hidden;position:relative}main.svelte-12qhfyh{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0;background:var(--bg-canvas, var(--bg));border-radius:var(--radius) var(--radius) 0 0}.rail-wrap.svelte-12qhfyh{display:block;width:var(--rail-w, 250px);flex-shrink:0;overflow:hidden;border-right:1px solid var(--border-2);position:relative;z-index:1;transition:transform .22s ease}.rail-wrap.collapsed.svelte-12qhfyh{transform:translate(-100%);margin-right:calc(-1 * var(--rail-w, 250px));pointer-events:none}.inspector-wrap.svelte-12qhfyh{width:var(--insp-w, 380px);flex-shrink:0;padding-left:10px;background:var(--bg);overflow:hidden;position:relative;z-index:1;transition:transform .24s var(--ease-out, ease-out)}.inspector-wrap.svelte-12qhfyh .inspector{width:100%;border:1px solid var(--border-2);border-radius:var(--radius)}.inspector-wrap.svelte-12qhfyh:not(:has(.inspector)){background:transparent}.inspector-wrap.collapsed-insp.svelte-12qhfyh{transform:translate(calc(100% + 10px));margin-right:calc(-1 * (var(--insp-w, 380px) + 10px));pointer-events:none}.rail-strip.svelte-12qhfyh{display:flex;flex-direction:column;align-items:center;gap:12px;width:44px;flex-shrink:0;padding:14px 0 10px;background:var(--bg-panel);border:none;border-right:1px solid var(--border-2);color:var(--text-3);cursor:pointer;transition:color .12s ease,background .12s ease}.rail-strip.svelte-12qhfyh:hover{color:var(--text);background:var(--bg-elev2)}.rail-strip.svelte-12qhfyh .strip-mark:where(.svelte-12qhfyh){width:22px;height:22px;flex-shrink:0}.rail-strip.svelte-12qhfyh .strip-caret:where(.svelte-12qhfyh){width:14px;height:14px}.divider.svelte-12qhfyh{width:6px;flex-shrink:0;margin:0 -3px;z-index:5;cursor:col-resize;background:transparent;transition:background .15s ease}.divider.svelte-12qhfyh:hover,.divider.resizing.svelte-12qhfyh{background:color-mix(in srgb,var(--accent) 35%,transparent)}.backdrop.svelte-12qhfyh{display:none}@media (max-width: 820px){.rail-wrap.svelte-12qhfyh{display:block;position:absolute;top:0;bottom:0;left:0;z-index:var(--z-drawer);width:100%;overflow:hidden;margin-right:0;transition:transform .24s var(--ease, ease);transform:translate(-100%)}.rail-wrap.open.svelte-12qhfyh{transform:translate(0)}.inspector-wrap.svelte-12qhfyh{display:block;position:absolute;left:0;right:0;bottom:var(--kb, 0px);top:auto;z-index:var(--z-sheet);width:100%;height:min(82vh,580px);padding-left:0;background:transparent;overflow:hidden;transition:transform .24s ease;transform:translateY(calc(100% + var(--kb, 0px)));border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -10px 44px #0000008c}.inspector-wrap.collapsed-insp.svelte-12qhfyh{transform:translateY(calc(100% + var(--kb, 0px)));margin-right:0}.inspector-wrap.svelte-12qhfyh .inspector{border:none;border-radius:0}.inspector-wrap.open.svelte-12qhfyh{transform:translateY(0)}.rail-wrap.svelte-12qhfyh .agent-panel,.rail-wrap.svelte-12qhfyh .panel{width:100%}.rail-strip.svelte-12qhfyh{display:none}.inspector-wrap.svelte-12qhfyh .inspector{width:100%;height:100%}.backdrop.svelte-12qhfyh{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-backdrop);background:var(--scrim);border:none;padding:0;cursor:default;animation:svelte-12qhfyh-fade .18s ease}@keyframes svelte-12qhfyh-fade{0%{opacity:0}to{opacity:1}}}