@bd7pil/ocrc 0.22.1 → 0.22.3

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.
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CtMqSQTR.js","../chunks/BjY4dxcB.js"])))=>i.map(i=>d[i]);
2
+ import{_ as ta}from"../chunks/C1FmrZbK.js";import"../chunks/CWj6FrbW.js";import{r as wt,f as be,p as Wt,l as Vt,i as ba,G as ga,y as wa,k as la,a as aa,b as sa,c as na,j as ka,z as zt,e as xa,C as ya,w as $a}from"../chunks/CtMqSQTR.js";import{aE as kt,M as jt,a4 as je,w as h,aB as xt,V as ye,b4 as l,J as o,aK as s,a$ as T,a8 as e,aR as q,a3 as $,aU as r,a6 as _,az as Xt,ap as w,aO as t,aq as St,$ as mt,au as n,b2 as ca,aw as Mt,av as Et,ay as Kt,b1 as Ft,aI as Ia,b5 as Lt,b0 as Sa,a7 as Ca,Z as oa}from"../chunks/BjY4dxcB.js";import{i as j,s as At,a as Ee}from"../chunks/Chcp5gAM.js";import{i as De,B as Ht,I as Ye,z as oe,A as et,l as Dt,c as Ea,f as Jt,g as va,t as Ma,h as qa,v as Ta,K as ra,a as ja,F as Da,E as Ba,q as Oa,m as Yt,r as Aa,s as Ra,y as Pa,C as La,o as ia,j as za}from"../chunks/DokImqMI.js";import{p as gt,b as Je}from"../chunks/vlg9iH2u.js";import{g as Nt}from"../chunks/BfGctnTm.js";var Fa=_('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),Ha=_('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function Na($e,re){kt(re,!1);let A=gt(re,"suggestions",24,()=>[]),I=gt(re,"onPick",8,()=>{}),J=gt(re,"onDismiss",8,()=>{});wt();var Y=jt(),D=je(Y);{var x=E=>{var M=Ha(),L=o(M);De(L,3,A,c=>c,(c,k,S)=>{var B=Fa(),de=o(B,!0);s(B),T(b=>{Ht(B,b),q(de,e(k))},[()=>(ye(e(S)),l(()=>`animation-delay: ${Math.min(e(S),5)*45}ms`))]),$("click",B,()=>I()(e(k))),h(c,B)});var ge=r(L,2),R=o(ge);Ye(R,{name:"close",size:12}),s(ge),s(M),$("click",ge,function(...c){var k;(k=J())==null||k.apply(this,c)}),h(E,M)};j(D,E=>{ye(A()),l(()=>A().length>0)&&E(x)})}h($e,Y),xt()}var Wa=_('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Ka=_('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Ga=_('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ua=_('<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 Va($e,re){kt(re,!1);const A=n();let I=n(!1),J=n(),Y=n([]),D=n({agent:null,model:null});async function x(){try{await(async f=>{var C=ca(f,2);t(Y,C[0]),t(D,C[1])})(await Promise.all([be.agents(),be.getOverrides()]))}catch{}}Xt(x);async function E(f){await be.setOverrides({agent:f.name}),await x(),t(I,!1)}async function M(){await be.setOverrides({agent:null}),await x(),t(I,!1)}function L(f){f.key==="Escape"&&e(I)&&t(I,!1)}function ge(f){e(I)&&e(J)&&!e(J).contains(f.target)&&t(I,!1)}w(()=>e(D),()=>{t(A,e(D).agent??"default")}),St(),wt();var R=Ua();$("keydown",mt,L),$("click",mt,ge);var c=o(R),k=o(c);Ye(k,{name:"cpu",size:11});var S=r(k,2),B=o(S,!0);s(S);var de=r(S,2);Ye(de,{name:"caret-down",size:9}),s(c);var b=r(c,2),K=o(b);Ye(K,{name:"cpu",size:14}),s(b);var Z=r(b,2);{var d=f=>{var C=Ga(),z=o(C);{var ie=V=>{var p=Wa();h(V,p)};j(z,V=>{e(Y),l(()=>e(Y).length===0)&&V(ie)})}var he=r(z,2);De(he,1,()=>e(Y),V=>V.name,(V,p)=>{var U=Ka();let we;var xe=o(U),ee=o(xe,!0);s(xe);var ae=r(xe,2),F=o(ae,!0);s(ae),s(U),T(se=>{we=et(U,1,"opt svelte-1f5vmb3",null,we,{sel:e(p).name===e(D).agent}),oe(U,"aria-selected",(e(p),e(D),l(()=>e(p).name===e(D).agent))),q(ee,(e(p),l(()=>e(p).name))),q(F,se)},[()=>(e(p),l(()=>e(p).model.split("/").pop()))]),$("click",U,()=>E(e(p))),h(V,U)});var G=r(he,2),P=o(G);Ye(P,{name:"close",size:11}),Mt(),s(G),s(C),T(()=>oe(G,"aria-selected",(e(D),l(()=>e(D).agent==null)))),$("click",G,M),h(f,C)};j(Z,f=>{e(I)&&f(d)})}s(R),Je(R,f=>t(J,f),()=>e(J)),T(()=>{oe(c,"aria-expanded",e(I)),q(B,e(A)),oe(b,"aria-label",`Agent:${e(A)}`),oe(b,"aria-expanded",e(I))}),$("click",c,()=>{t(I,!e(I)),e(I)&&x()}),$("click",b,()=>{t(I,!e(I)),e(I)&&x()}),h($e,R),xt()}var Ja=_('<div class="none label svelte-1005b73">暂无模型</div>'),Ya=_('<button role="option"><span> </span></button>'),Xa=_('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Za=_('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Qa=_('<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($e,re){kt(re,!1);const A=n();let I=n(!1),J=n(),Y=n([]),D=n({agent:null,model:null});async function x(){try{await(async f=>{var C=ca(f,2);t(Y,C[0]),t(D,C[1])})(await Promise.all([be.models(),be.getOverrides()]))}catch{}}Xt(x);async function E(f,C){await be.setOverrides({model:{providerID:f,modelID:C}}),await x(),t(I,!1)}async function M(){await be.setOverrides({model:null}),await x(),t(I,!1)}function L(f){f.key==="Escape"&&e(I)&&t(I,!1)}function ge(f){e(I)&&e(J)&&!e(J).contains(f.target)&&t(I,!1)}w(()=>e(D),()=>{var f;t(A,((f=e(D).model)==null?void 0:f.modelID)??"model")}),St(),wt();var R=Qa();$("keydown",mt,L),$("click",mt,ge);var c=o(R),k=o(c);Ye(k,{name:"bolt",size:11});var S=r(k,2),B=o(S,!0);s(S);var de=r(S,2);Ye(de,{name:"caret-down",size:9}),s(c);var b=r(c,2),K=o(b);Ye(K,{name:"bolt",size:14}),s(b);var Z=r(b,2);{var d=f=>{var C=Za(),z=o(C);{var ie=V=>{var p=Ja();h(V,p)};j(z,V=>{e(Y),l(()=>e(Y).length===0)&&V(ie)})}var he=r(z,2);De(he,1,()=>e(Y),V=>V.id,(V,p)=>{var U=Xa(),we=je(U),xe=o(we,!0);s(we);var ee=r(we,2);De(ee,1,()=>(e(p),l(()=>e(p).models)),ae=>ae.id,(ae,F)=>{var se=Ya();let ue;var m=o(se),X=o(m,!0);s(m),s(se),T(()=>{var le,fe;ue=et(se,1,"opt svelte-1005b73",null,ue,{sel:((le=e(D).model)==null?void 0:le.providerID)===e(p).id&&((fe=e(D).model)==null?void 0:fe.modelID)===e(F).id}),oe(se,"aria-selected",(e(D),e(p),e(F),l(()=>{var Me,Xe;return((Me=e(D).model)==null?void 0:Me.providerID)===e(p).id&&((Xe=e(D).model)==null?void 0:Xe.modelID)===e(F).id}))),q(X,(e(F),l(()=>e(F).name||e(F).id)))}),$("click",se,()=>E(e(p).id,e(F).id)),h(ae,se)}),T(()=>q(xe,(e(p),l(()=>e(p).id)))),h(V,U)});var G=r(he,2),P=o(G);Ye(P,{name:"close",size:11}),Mt(),s(G),s(C),T(()=>oe(G,"aria-selected",(e(D),l(()=>e(D).model==null)))),$("click",G,M),h(f,C)};j(Z,f=>{e(I)&&f(d)})}s(R),Je(R,f=>t(J,f),()=>e(J)),T(()=>{oe(c,"aria-expanded",e(I)),q(B,e(A)),oe(b,"aria-label",`模型:${e(A)}`),oe(b,"aria-expanded",e(I))}),$("click",c,()=>{t(I,!e(I)),e(I)&&x()}),$("click",b,()=>{t(I,!e(I)),e(I)&&x()}),h($e,R),xt()}var ts=_('<button role="option"> </button>'),as=_('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ss=_('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),ns=_('<button role="option"> </button>'),os=_('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),rs=_('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),is=_('<div class="controls svelte-dkbq22"><!> <!></div>');function ls($e,re){kt(re,!1);const A=n(),I=n(),J=n(),Y=n();let D=gt(re,"sessionId",8),x=n({}),E=n(null);async function M(){const d=D();try{const f=await be.controls(d);if(d!==D())return;t(x,f)}catch{d===D()&&t(x,{})}}async function L(d){e(x).mode&&Et(x,e(x).mode={...e(x).mode,current:d}),t(E,null);try{await be.setMode(D(),d)}catch{}await M()}async function ge(d){e(x).model&&Et(x,e(x).model={...e(x).model,current:d}),t(E,null);try{await be.setModel(D(),d)}catch{}await M()}function R(d){t(E,e(E)===d?null:d)}let c=n();function k(d){d.key==="Escape"&&e(E)&&t(E,null)}function S(d){e(E)&&e(c)&&!e(c).contains(d.target)&&t(E,null)}w(()=>ye(D()),()=>{D()&&M()}),w(()=>e(x),()=>{var d;t(A,((d=e(x).mode)==null?void 0:d.options)??[])}),w(()=>e(x),()=>{var d;t(I,((d=e(x).model)==null?void 0:d.options)??[])}),w(()=>e(x),()=>{var d,f,C;t(J,((f=(d=e(x).mode)==null?void 0:d.options.find(z=>{var ie;return z.id===((ie=e(x).mode)==null?void 0:ie.current)}))==null?void 0:f.name)??((C=e(x).mode)==null?void 0:C.current)??"mode")}),w(()=>e(x),()=>{var d,f,C;t(Y,((f=(d=e(x).model)==null?void 0:d.options.find(z=>{var ie;return z.id===((ie=e(x).model)==null?void 0:ie.current)}))==null?void 0:f.name)??((C=e(x).model)==null?void 0:C.current)??"model")}),St(),wt();var B=is();$("keydown",mt,k),$("click",mt,S);var de=o(B);{var b=d=>{var f=ss(),C=o(f),z=o(C);Ye(z,{name:"bolt",size:11});var ie=r(z,2),he=o(ie,!0);s(ie);var G=r(ie,2);Ye(G,{name:"caret-down",size:9}),s(C);var P=r(C,2);{var V=p=>{var U=as(),we=r(o(U),2);De(we,1,()=>e(A),Dt,(xe,ee)=>{var ae=ts();let F;var se=o(ae,!0);s(ae),T(()=>{var ue;F=et(ae,1,"opt svelte-dkbq22",null,F,{sel:e(ee).id===((ue=e(x).mode)==null?void 0:ue.current)}),oe(ae,"aria-selected",(e(ee),e(x),l(()=>{var m;return e(ee).id===((m=e(x).mode)==null?void 0:m.current)}))),q(se,(e(ee),l(()=>e(ee).name)))}),$("click",ae,()=>L(e(ee).id)),h(xe,ae)}),s(U),h(p,U)};j(P,p=>{e(E)==="mode"&&p(V)})}s(f),T(()=>{oe(C,"aria-expanded",e(E)==="mode"),q(he,e(J))}),$("click",C,()=>R("mode")),h(d,f)};j(de,d=>{e(A),l(()=>e(A).length>0)&&d(b)})}var K=r(de,2);{var Z=d=>{var f=rs(),C=o(f),z=o(C);Ye(z,{name:"cpu",size:11});var ie=r(z,2),he=o(ie,!0);s(ie);var G=r(ie,2);Ye(G,{name:"caret-down",size:9}),s(C);var P=r(C,2);{var V=p=>{var U=os(),we=r(o(U),2);De(we,1,()=>e(I),Dt,(xe,ee)=>{var ae=ns();let F;var se=o(ae,!0);s(ae),T(()=>{var ue;F=et(ae,1,"opt svelte-dkbq22",null,F,{sel:e(ee).id===((ue=e(x).model)==null?void 0:ue.current)}),oe(ae,"aria-selected",(e(ee),e(x),l(()=>{var m;return e(ee).id===((m=e(x).model)==null?void 0:m.current)}))),q(se,(e(ee),l(()=>e(ee).name)))}),$("click",ae,()=>ge(e(ee).id)),h(xe,ae)}),s(U),h(p,U)};j(P,p=>{e(E)==="model"&&p(V)})}s(f),T(()=>{oe(C,"aria-expanded",e(E)==="model"),q(he,e(Y))}),$("click",C,()=>R("model")),h(d,f)};j(K,d=>{e(I),l(()=>e(I).length>0)&&d(Z)})}s(B),Je(B,d=>t(c,d),()=>e(c)),h($e,B),xt()}const Pt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Ut($e){if(!$e)return 0;let re=0;for(const I of $e)(I.codePointAt(0)??0)>=11904&&re++;const A=$e.length-re;return Math.round(re*.6+A*.25)}function cs($e,re){let A=0,I=0,J=0;for(const E of $e)if(E.kind==="user")A+=Ut(String(E.text??""));else if(E.kind==="assistant")for(const M of E.blocks??[])M.type==="text"?I+=Ut(String(M.text??"")):M.type==="tool"&&(J+=Ut(String(M.args??"")));const Y=A+I+J,D=Math.max(0,re-Y),x=[{key:"用户",tokens:A,color:Pt.user},{key:"助手",tokens:I,color:Pt.assistant},{key:"工具调用",tokens:J,color:Pt.tool}];return D>0&&x.push({key:"其他",tokens:D,color:Pt.other}),{segments:x.filter(E=>E.tokens>0),accounted:Y,used:re}}var vs=_('<span class="seg svelte-4bdpxt"></span>'),ds=_('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=_('<div class="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div>',1),fs=_('<div class="bar svelte-4bdpxt" aria-hidden="true"></div>'),ps=_('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=_('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=_('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=_('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),bs=_('<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=_('<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($e,re){kt(re,!1);const A=()=>Ee(Wt,"$feeds",I),[I,J]=At(),Y=n(),D=n(),x=n(),E=n(),M=n(),L=n(),ge=n(),R=n(),c=n(),k=n(),S=n(),B=n(),de=n(),b=n(),K=n(),Z=n();let d=gt(re,"sessionId",8),f=n({}),C=n(!1),z=n(),ie,he=n(),G=n(-1),P=n();async function V(u){try{t(f,await be.context(u))}catch{}}Kt(()=>{clearTimeout(e(P)),clearTimeout(ie)});const p=10,U=2*Math.PI*p;function we(u){return u>=1e6?(u/1e6).toFixed(1)+"M":u>=1e3?(u/1e3).toFixed(1)+"k":String(u)}function xe(u){return u==null?"—":`$${u.toFixed(3)}`}function ee(){clearTimeout(ie),t(C,!0)}function ae(){clearTimeout(ie),ie=setTimeout(()=>t(C,!1),180)}function F(u){u.key==="Escape"&&t(C,!1)}function se(u){e(C)&&e(z)&&!e(z).contains(u.target)&&t(C,!1)}w(()=>(ye(d()),e(he)),()=>{d()!==e(he)&&(t(he,d()),V(d()))}),w(()=>(A(),ye(d())),()=>{var u;t(Y,((u=A()[d()])==null?void 0:u.lastSeq)??0)}),w(()=>(e(Y),e(G),e(P),ye(d())),()=>{e(Y)!==e(G)&&(t(G,e(Y)),clearTimeout(e(P)),t(P,setTimeout(()=>void V(d()),1e3)))}),w(()=>e(f),()=>{var u,H;t(D,typeof((H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.input)=="number"?e(f).tokens.input:0)}),w(()=>e(f),()=>{var u,H;t(x,typeof((H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.output)=="number"?e(f).tokens.output:0)}),w(()=>(e(f),e(D),e(x)),()=>{var u,H;t(E,typeof((H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.used)=="number"?e(f).tokens.used:e(D)+e(x))}),w(()=>e(f),()=>{var u,H;t(M,typeof((H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.max)=="number"?e(f).tokens.max:void 0)}),w(()=>(e(E),e(M)),()=>{t(L,e(E)>0&&e(M)?Math.min(100,e(E)/e(M)*100):0)}),w(()=>e(L),()=>{t(ge,e(L)>=90?"var(--err)":e(L)>=70?"var(--warn)":"var(--ok)")}),w(()=>e(f),()=>{var u;t(R,(u=e(f))!=null&&u.model?String(e(f).model).split("/").pop():void 0)}),w(()=>e(f),()=>{var u;t(c,typeof((u=e(f))==null?void 0:u.cost)=="number"?e(f).cost:void 0)}),w(()=>e(f),()=>{var u,H,pe;t(k,typeof((pe=(H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.cache)==null?void 0:pe.read)=="number"?e(f).tokens.cache.read:0)}),w(()=>e(f),()=>{var u,H,pe;t(S,typeof((pe=(H=(u=e(f))==null?void 0:u.tokens)==null?void 0:H.cache)==null?void 0:pe.write)=="number"?e(f).tokens.cache.write:0)}),w(()=>(e(D),e(k)),()=>{t(B,e(D)+e(k)>0?Math.round(e(k)/(e(D)+e(k))*100):void 0)}),w(()=>(A(),ye(d())),()=>{t(de,A()[d()])}),w(()=>e(de),()=>{t(b,Vt(e(de)).filter(u=>u.kind==="user"||u.kind==="assistant").length)}),w(()=>e(de),()=>{t(K,Vt(e(de)))}),w(()=>(e(K),e(E)),()=>{t(Z,cs(e(K),e(E)))}),St(),wt();var ue=gs();$("keydown",mt,F),$("click",mt,se);var m=o(ue),X=o(m),le=o(X);oe(le,"r",p);var fe=r(le);oe(fe,"r",p),s(X);var Me=r(X,2),Xe=o(Me,!0);Mt(),s(Me),s(m);var Be=r(m,2);{var ce=u=>{var H=bs(),pe=o(H),Se=r(o(pe),2),Pe=o(Se);s(Se),s(pe);var We=r(pe,2);{var rt=a=>{var g=us(),O=je(g);De(O,5,()=>(e(Z),l(()=>e(Z).segments)),Dt,(N,ve)=>{var Ae=vs();T(()=>Ht(Ae,(e(ve),e(Z),l(()=>`width:${e(ve).tokens/(e(Z).used||1)*100}%; background:${e(ve).color}`)))),h(N,Ae)}),s(O);var Q=r(O,2);De(Q,5,()=>(e(Z),l(()=>e(Z).segments)),Dt,(N,ve)=>{var Ae=ds(),qt=o(Ae),Re=r(qt);s(Ae),T(_e=>{Ht(qt,(e(ve),l(()=>`background:${e(ve).color}`))),q(Re,`${e(ve),l(()=>e(ve).key)??""} ${_e??""}%`)},[()=>(e(E),e(ve),l(()=>e(E)>0?(e(ve).tokens/e(E)*100).toFixed(1):"0"))]),h(N,Ae)}),s(Q),h(a,g)},ht=a=>{var g=fs();h(a,g)};j(We,a=>{e(Z),l(()=>e(Z).segments.length>0)?a(rt):a(ht,-1)})}var Ke=r(We,2),Oe=o(Ke);{var Le=a=>{var g=ps(),O=r(o(g)),Q=o(O);s(O),s(g),T(()=>q(Q,`${e(B)??""}%`)),h(a,g)};j(Oe,a=>{e(B)!=null&&a(Le)})}var qe=r(Oe,2);{var tt=a=>{var g=ms(),O=r(o(g)),Q=o(O,!0);s(O),s(g),T(()=>q(Q,e(b))),h(a,g)};j(qe,a=>{e(b)>0&&a(tt)})}var it=r(qe,2);{var _t=a=>{var g=hs(),O=r(o(g)),Q=o(O,!0);s(O),s(g),T(()=>q(Q,e(R))),h(a,g)};j(it,a=>{e(R)&&a(_t)})}var yt=r(it,2);{var v=a=>{var g=_s(),O=r(o(g)),Q=o(O,!0);s(O),s(g),T(N=>q(Q,N),[()=>(e(c),l(()=>xe(e(c))))]),h(a,g)};j(yt,a=>{e(c)!=null&&a(v)})}s(Ke),s(H),T((a,g)=>q(Pe,`${a??""} / ${g??""}`),[()=>(e(E),l(()=>we(e(E)))),()=>(e(M),l(()=>we(e(M))))]),h(u,H)};j(Be,u=>{e(C)&&e(M)&&u(ce)})}s(ue),Je(ue,u=>t(z,u),()=>e(z)),T((u,H,pe)=>{oe(m,"aria-label",u),oe(m,"aria-expanded",e(C)),oe(fe,"stroke",e(ge)),oe(fe,"stroke-dasharray",H),q(Xe,pe)},[()=>(e(L),l(()=>`上下文占用 ${e(L).toFixed(0)}%`)),()=>(e(L),l(()=>`${Math.max(U*e(L)/100,e(L)>0?1.5:0)} ${U}`)),()=>(e(L),l(()=>e(L).toFixed(0)))]),$("click",m,()=>t(C,!e(C))),$("mouseenter",ue,ee),$("mouseleave",ue,ae),h($e,ue),xt(),J()}var ks=_('<div class="error svelte-60fagq" role="alert"> </div>'),xs=_('<button role="option"> </button>'),ys=_('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),$s=_('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),Is=_('<div class="thumbnails svelte-60fagq"></div>'),Ss=_('<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=_("<!> <!>",1),Es=_('<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=_('<button class="send svelte-60fagq" aria-label="发送"><!></button>'),Ts=_('<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($e,re){kt(re,!1);const A=()=>Ee(Jt,"$composerDraft",x),I=()=>Ee(Wt,"$feeds",x),J=()=>Ee(la,"$can",x),Y=()=>Ee(qa,"$connection",x),D=()=>Ee(ba,"$backendName",x),[x,E]=At(),M=n(),L=n(),ge=n();let R=gt(re,"sessionId",8),c=n(""),k=n(),S=n(!1),B=n(""),de=n(!1),b=n(),K=n([]),Z=n([]),d=n(0),f=0,C,z=!1;async function ie(){if(!z){z=!0;try{await be.abort(R())}catch{}finally{z=!1}}}function he(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function G(v){const a=new FileReader;a.onload=()=>{var Ae;const g=a.result,O=g.indexOf(","),Q=g.slice(0,O),N=g.slice(O+1),ve=((Ae=Q.match(/data:(.*?);/))==null?void 0:Ae[1])??v.type;t(K,[...e(K),{data:N,mimeType:ve,preview:g}])},a.readAsDataURL(v)}function P(v){const a=v.target;if(a.files){for(const g of a.files)G(g);a.value=""}}function V(v){if(!J()("imageInput")||!v.clipboardData)return;const a=[...v.clipboardData.items].filter(g=>g.type.startsWith("image/"));if(a.length){v.preventDefault();for(const g of a){const O=g.getAsFile();O&&G(O)}}}function p(v){t(K,e(K).filter((a,g)=>g!==v))}function U(){if(!e(k))return null;const v=e(k).selectionStart,g=e(c).slice(0,v).match(/(^|[\s])@([^\s]*)$/);return g?{token:g[2],start:v-g[2].length-1}:null}function we(){const v=U();if(!v){t(Z,[]),clearTimeout(C);return}f=v.start,t(d,0),clearTimeout(C);const a=v.token;C=setTimeout(async()=>{try{t(Z,await be.files(R(),a))}catch{t(Z,[])}},150)}function xe(v){const a=e(k).selectionStart,g=e(c).slice(0,f),O=e(c).slice(a),Q=`@${v} `;t(c,g+Q+O),t(Z,[]),Ft().then(()=>{const N=g.length+Q.length;Et(k,e(k).selectionStart=Et(k,e(k).selectionEnd=N)),e(k).focus(),F()})}async function ee(){var Q;const v=e(c).trim();if(!v&&e(K).length===0||e(S))return;if(Y()!=="connected"){t(B,"Disconnected — reconnecting…");return}const a=he(),g=e(K).map(({data:N,mimeType:ve})=>({data:N,mimeType:ve}));t(S,!0),t(B,""),ga({kind:"user",sessionId:R(),text:v,ts:Date.now(),id:`user:${a}`}),t(c,"");const O=[...e(K)];t(K,[]),F();try{await be.sendMessage({sessionId:R(),text:v,clientId:a,...g.length?{images:g}:{}})}catch(N){t(B,`Send failed: ${N.message}`),wa(`user:${a}`),t(c,v),t(K,O)}finally{t(S,!1),(Q=e(k))==null||Q.focus()}}function ae(v){if(e(Z).length>0){if(v.key==="ArrowDown"){v.preventDefault(),t(d,Math.min(e(d)+1,e(Z).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(),xe(e(Z)[e(d)]);return}if(v.key==="Escape"){v.preventDefault(),t(Z,[]);return}}v.key!=="Enter"||v.shiftKey||v.isComposing||v.keyCode===229||(v.preventDefault(),ee())}function F(){e(k)&&(Et(k,e(k).style.height="auto"),Et(k,e(k).style.height=Math.min(e(k).scrollHeight,140)+"px"))}Kt(()=>clearTimeout(C)),w(()=>(A(),e(k)),()=>{const v=A();v&&(t(c,v.text),Jt.set(void 0),Ft().then(()=>{var a;return(a=e(k))==null?void 0:a.focus()}),F())}),w(()=>e(c),()=>{va.set(!e(c).trim())}),w(()=>e(c),()=>{t(M,e(c).trim().length>0)}),w(()=>(I(),ye(R())),()=>{t(L,(()=>{const v=I()[R()];if(!v||v.order.length===0)return!1;const a=v.byId[v.order[v.order.length-1]];return(a==null?void 0:a.kind)==="thinking"||(a==null?void 0:a.kind)==="streaming"||(a==null?void 0:a.kind)==="think-stream"})())}),w(()=>(e(L),e(M),e(S)),()=>{t(ge,e(L)&&!e(M)&&!e(S))}),St(),wt();var se=Ts(),ue=o(se),m=o(ue);{var X=v=>{var a=ks(),g=o(a,!0);s(a),T(()=>q(g,e(B))),h(v,a)};j(m,v=>{e(B)&&v(X)})}var le=r(m,2);let fe;var Me=o(le);{var Xe=v=>{var a=ys();De(a,5,()=>e(Z),Dt,(g,O,Q)=>{var N=xs();let ve;var Ae=o(N,!0);s(N),T(()=>{ve=et(N,1,"mention-row svelte-60fagq",null,ve,{active:Q===e(d)}),oe(N,"aria-selected",Q===e(d)),q(Ae,e(O))}),$("mousedown",N,Ta(()=>xe(e(O)))),h(g,N)}),s(a),h(v,a)};j(Me,v=>{e(Z),l(()=>e(Z).length>0)&&v(Xe)})}var Be=r(Me,2);{var ce=v=>{var a=Is();De(a,5,()=>e(K),Dt,(g,O,Q)=>{var N=$s(),ve=o(N),Ae=r(ve,2);s(N),T(()=>oe(ve,"src",(e(O),l(()=>e(O).preview)))),$("click",Ae,()=>p(Q)),h(g,N)}),s(a),h(v,a)};j(Be,v=>{e(K),l(()=>e(K).length>0)&&v(ce)})}var u=r(Be,2);Ia(u),oe(u,"rows",1),Je(u,v=>t(k,v),()=>e(k));var H=r(u,2),pe=o(H);{var Se=v=>{var a=Ss(),g=je(a),O=r(g,2);Je(O,Q=>t(b,Q),()=>e(b)),$("click",g,()=>e(b).click()),$("change",O,P),h(v,a)},Pe=Lt(()=>(J(),l(()=>J()("imageInput"))));j(pe,v=>{e(Pe)&&v(Se)})}var We=r(pe,2);{var rt=v=>{var a=Cs(),g=je(a);Va(g,{});var O=r(g,2);es(O,{}),h(v,a)},ht=Lt(()=>(J(),l(()=>J()("catalog"))));j(We,v=>{e(ht)&&v(rt)})}var Ke=r(We,2);{var Oe=v=>{ls(v,{get sessionId(){return R()}})},Le=Lt(()=>(J(),l(()=>J()("sessionControls"))));j(Ke,v=>{e(Le)&&v(Oe)})}var qe=r(Ke,2);ws(qe,{get sessionId(){return R()}});var tt=r(qe,2),it=r(tt,6);{var _t=v=>{var a=Es();$("click",a,ie),h(v,a)},yt=v=>{var a=qs(),g=o(a);{var O=N=>{var ve=Sa("…");h(N,ve)},Q=N=>{var ve=Ms();h(N,ve)};j(g,N=>{e(S)?N(O):N(Q,-1)})}s(a),T(N=>a.disabled=N,[()=>(e(S),e(c),e(K),Y(),l(()=>e(S)||!e(c).trim()&&e(K).length===0||Y()!=="connected"))]),$("click",a,ee),h(v,a)};j(it,v=>{e(ge)?v(_t):v(yt,-1)})}s(H),s(le),s(ue),s(se),T(()=>{fe=et(le,1,"box svelte-60fagq",null,fe,{focused:e(de),"has-text":e(M)}),oe(u,"placeholder",Y()==="connected"?`给 ${D()} 留言…`:"连接断开…")}),Ea(u,()=>e(c),v=>t(c,v)),$("keydown",u,ae),$("input",u,()=>{F(),we()}),$("paste",u,V),$("focus",u,()=>t(de,!0)),$("blur",u,()=>t(de,!1)),$("click",u,we),$("click",tt,()=>Ma.set(!0)),h($e,se),xt(),E()}var Ds=_('<span class="check svelte-rgafhj">✓</span>'),Bs=_('<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=_('<div class="empty svelte-rgafhj"> </div>'),As=_('<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=_('<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($e,re){kt(re,!1);const A=()=>Ee(ka,"$backends",D),I=()=>Ee(zt,"$sessionList",D),J=()=>Ee(ja,"$activeWorkspace",D),Y=()=>Ee(ra,"$workspaces",D),[D,x]=At(),E=n(),M=n(),L=n(),ge=n(),R=n(),c=n();let k=gt(re,"activeId",8,void 0),S=n(!1),B=n(!1);function de(m){const X=m.split(/[\s\-_:./]+/).filter(Boolean);return X.length>=2?(X[0][0]+X[1][0]).toUpperCase():m.slice(0,2).toUpperCase()}function b(m){return de((m==null?void 0:m.name)||(m==null?void 0:m.id)||"OC")}function K(m){return m==="online"||m==="connected"?"online":m==="connecting"||m==="reconnecting"?"connecting":m==="offline"?"offline":"online"}function Z(){t(S,!e(S))}function d(m){t(S,!1),Nt(`/${m}/`)}async function f(){var X;if(e(B))return;const m=J()||((X=Y()[0])==null?void 0:X.directory)||"";t(B,!0);try{await ya(e(E));const le=await be.createSession({directory:m});zt.set(await be.sessions()),ra.set(await be.workspaces()),t(S,!1),Nt(`/${le.id}/`)}catch(le){alert(`Create session failed: ${le.message}`)}finally{t(B,!1)}}function C(m){m.key==="Escape"&&t(S,!1)}function z(m){const X=Date.now()-m,le=Math.floor(X/6e4);if(le<1)return"now";if(le<60)return`${le}m`;const fe=Math.floor(le/60);return fe<24?`${fe}h`:`${Math.floor(fe/24)}d`}function ie(m){return(m.includes("_")?m.slice(m.indexOf("_")+1):m).slice(-8)}w(()=>A(),()=>{var m,X,le;t(E,((m=A())==null?void 0:m.activeId)??((le=(X=A())==null?void 0:X.backends[0])==null?void 0:le.id)??"opencode")}),w(()=>(A(),e(E)),()=>{var m;t(M,(m=A())==null?void 0:m.backends.find(X=>X.id===e(E)))}),w(()=>e(E),()=>{t(L,xa(e(E)))}),w(()=>(I(),e(E)),()=>{t(ge,I().filter(m=>m.backendId===e(E)||!m.backendId&&e(E)==="opencode").sort((m,X)=>X.lastActiveAt-m.lastActiveAt))}),w(()=>(I(),ye(k())),()=>{t(R,I().find(m=>m.id===k()))}),w(()=>e(R),()=>{var m;t(c,((m=e(R))==null?void 0:m.title)||"Untitled session")}),St(),wt();var he=Rs();$("keydown",mt,C);var G=o(he),P=o(G),V=o(P,!0);s(P);var p=r(P,2),U=o(p),we=o(U,!0);s(U),s(p);var xe=r(p,2),ee=o(xe,!0);s(xe);var ae=r(xe,2),F=o(ae);Ye(F,{name:"caret-down",size:11}),s(ae),s(G);var se=r(G,2);{var ue=m=>{var X=As(),le=o(X);De(le,5,()=>e(ge),Be=>Be.id,(Be,ce)=>{var u=Bs();let H;var pe=o(u),Se=r(pe,2),Pe=o(Se),We=o(Pe,!0);s(Pe);var rt=r(Pe,2),ht=o(rt);s(rt),s(Se);var Ke=r(Se,2);{var Oe=Le=>{var qe=Ds();h(Le,qe)};j(Ke,Le=>{e(ce),ye(k()),l(()=>e(ce).id===k())&&Le(Oe)})}s(u),T((Le,qe)=>{H=et(u,1,"row svelte-rgafhj",null,H,{active:e(ce).id===k()}),et(pe,1,`dot ${e(ce),ye(k()),l(()=>e(ce).id===k()?"active":"")??""}`,"svelte-rgafhj"),q(We,(e(ce),l(()=>e(ce).title||"Untitled session"))),q(ht,`${Le??""} · ${qe??""}`)},[()=>(e(ce),l(()=>ie(e(ce).id))),()=>(e(ce),l(()=>z(e(ce).lastActiveAt)))]),$("click",u,()=>d(e(ce).id)),h(Be,u)},Be=>{var ce=Os(),u=o(ce);s(ce),T(()=>q(u,`No sessions on ${e(M),l(()=>{var H,pe;return((H=e(M))==null?void 0:H.name)??((pe=e(M))==null?void 0:pe.id)??"this agent"})??""}.`)),h(Be,ce)}),s(le);var fe=r(le,2),Me=o(fe),Xe=o(Me);s(Me),s(fe),s(X),T(()=>{Me.disabled=e(B),q(Xe,`+ New session on ${e(M),l(()=>{var Be,ce;return((Be=e(M))==null?void 0:Be.name)??((ce=e(M))==null?void 0:ce.id)??"agent"})??""}`)}),$("click",Me,f),h(m,X)};j(se,m=>{e(S)&&m(ue)})}s(he),T((m,X,le)=>{oe(G,"aria-expanded",e(S)),Ht(P,`background:${ye(aa),e(L),l(()=>aa[e(L)])??""}; color:${ye(sa),e(L),l(()=>sa[e(L)])??""}; border-color:${ye(na),e(L),l(()=>na[e(L)])??""}`),q(V,m),et(p,1,`status-dot ${X??""}`,"svelte-rgafhj"),q(we,le),q(ee,e(c))},[()=>(e(M),l(()=>b(e(M)))),()=>(e(M),l(()=>{var m;return K((m=e(M))==null?void 0:m.status)})),()=>(e(M),l(()=>{var m;return K((m=e(M))==null?void 0:m.status)}))]),$("click",G,Z),h($e,he),xt(),x()}var Ls=_('<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=_('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Fs=_('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Hs=_('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),Ns=_('<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=_('<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=_('<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),Gs=_('<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=_('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Vs=_('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=_('<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=_('<span class="sub-count mono svelte-w3h0m4"> </span>'),Xs=_('<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=_('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Qs=_('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),en=_('<span class="sub-count mono svelte-w3h0m4"> </span>'),tn=_('<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=_('<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=_('<!> <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=_('<span class="badge mono svelte-w3h0m4"> </span>'),on=_('<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=_('<span class="badge mono svelte-w3h0m4"> </span>'),ln=_('<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=_("<!> <!>",1);function vn($e,re){kt(re,!1);const A=()=>Ee(Wt,"$feeds",Y),I=()=>Ee(zt,"$sessionList",Y),J=()=>Ee(la,"$can",Y),[Y,D]=At(),x=n(),E=n(),M=n(),L=n(),ge=n(),R=n(),c=n(),k=n(),S=n(),B=n(),de=n();let b=gt(re,"sessionId",8),K=gt(re,"onJump",8,()=>{});const Z="ocrc.planHud.v3",d=5,f=16,C=2*Math.PI*f;let z=n(!1);try{t(z,window.matchMedia("(min-width: 821px)").matches)}catch{}const ie=e(z)?"ocrc.planHud.dt3":Z;function he(){if(typeof localStorage>"u")return{};try{const a=JSON.parse(localStorage.getItem(ie)??"{}")??{};return{dismissed:a.dismissed,expanded:a.expanded}}catch{return{}}}let G=n(he()),P=n(e(G).expanded??e(z));function V(a){if(t(G,{...e(G),...a}),!(typeof localStorage>"u"))try{localStorage.setItem(ie,JSON.stringify(e(G)))}catch{}}let p=n({total:0,done:0,items:[]}),U=n();async function we(a){try{const g=await be.todo(a);if(a!==b())return;t(U,a),t(p,Da(g))}catch{}}let xe=n(),ee=n(0),ae=n(-1),F=n();Kt(()=>clearTimeout(e(F)));let se=n([]),ue=n(),m=!1;async function X(a){if(!m){m=!0;try{const g=await be.subagents(a);if(a!==b())return;t(se,[...g.subagents??[]].sort((O,Q)=>Number(Q.busy??!1)-Number(O.busy??!1))),t(ue,a)}catch{t(se,[])}finally{m=!1}}}const le=a=>`ocrc.subparent.${a}`;let fe=n();function Me(a){try{t(fe,sessionStorage.getItem(le(a))??void 0)}catch{t(fe,void 0)}}Me(b());function Xe(a){try{sessionStorage.setItem(le(a.id),b())}catch{}t(Se,!1),Aa({id:`sub:${a.id}`,kind:"subagent",title:a.title||"…"+a.id.slice(-6),childId:a.id}),Yt.set(!0)}function Be(){const a=e(fe);t(fe,void 0),a&&K()(a)}let ce=n(),u=n(!1),H=n(!1),pe=n(!1),Se=n(!1);function Pe(){t(P,!e(P)),V({expanded:e(P)})}function We(){V({dismissed:[...e(G).dismissed??[],b()].slice(-20)}),t(Se,!1)}function rt(){V({dismissed:(e(G).dismissed??[]).filter(a=>a!==b())}),t(P,!0),V({expanded:e(P)})}function ht(){t(Se,!1),Oa("tasks"),Yt.set(!0)}let Ke=n(),Oe=n(),Le=n(),qe=n();function tt(a){var O,Q,N,ve;const g=a.target;if(e(Se)){if((O=e(Oe))!=null&&O.contains(g)||(Q=e(Ke))!=null&&Q.contains(g))return;t(Se,!1)}e(P)&&((N=e(Le))!=null&&N.contains(g)||(ve=e(qe))!=null&&ve.contains(g)||(t(P,!1),V({expanded:!1})))}w(()=>(ye(b()),e(xe)),()=>{b()!==e(xe)&&(t(xe,b()),we(b()))}),w(()=>(A(),ye(b())),()=>{var a;t(x,((a=A()[b()])==null?void 0:a.lastSeq)??0)}),w(()=>(e(x),e(ae),e(F),e(ee)),()=>{e(x)!==e(ae)&&(t(ae,e(x)),clearTimeout(e(F)),t(F,setTimeout(()=>t(ee,e(ee)+1),1e3)))}),w(()=>(e(ee),ye(b())),()=>{e(ee)&&(we(b()),X(b()))}),w(()=>(I(),ye(b())),()=>{t(E,I().find(a=>a.id===b()))}),w(()=>e(E),()=>{var a;t(M,((a=e(E))==null?void 0:a.title)??"")}),w(()=>e(p),()=>{t(L,e(p).items.filter(a=>a.status==="done"))}),w(()=>e(p),()=>{t(ge,e(p).items.filter(a=>a.status==="running"))}),w(()=>e(p),()=>{t(R,e(p).items.filter(a=>a.status==="pending"))}),w(()=>e(R),()=>{t(c,Math.max(0,e(R).length-d))}),w(()=>e(p),()=>{t(k,e(p).total?e(p).done/e(p).total:0)}),w(()=>(e(G),ye(b())),()=>{var a;t(S,((a=e(G).dismissed)==null?void 0:a.includes(b()))??!1)}),w(()=>e(se),()=>{t(B,e(se).filter(a=>a.busy))}),w(()=>e(se),()=>{t(de,e(se).filter(a=>!a.busy))}),w(()=>(e(P),ye(b()),e(ue)),()=>{e(P)&&b()&&e(ue)!==b()&&X(b())}),w(()=>ye(b()),()=>{b()&&Me(b())}),w(()=>(ye(b()),e(ce)),()=>{b()!==e(ce)&&(t(ce,b()),t(u,!1),t(H,!1),t(pe,!1),t(Se,!1))}),St(),wt();var it=jt();$("pointerdown",mt,tt);var _t=je(it);{var yt=a=>{var g=cn(),O=je(g);{var Q=Re=>{var _e=Ls(),ze=r(o(_e),2),Ze=o(ze,!0),at=r(Ze,2,!0);s(ze),s(_e),T(()=>{q(Ze,(e(p),l(()=>e(p).done))),q(at,(e(p),l(()=>e(p).total)))}),$("click",_e,rt),h(Re,_e)},N=Re=>{var _e=sn(),ze=je(_e);{var Ze=W=>{var me=zs();h(W,me)};j(ze,W=>{e(z)||W(Ze)})}var at=r(ze,2),st=o(at),lt=r(o(st),2),ct=o(lt,!0);s(lt);var vt=r(lt,2);Je(vt,W=>t(Ke,W),()=>e(Ke));var $t=r(vt,2);s(st);var nt=r(st,2);{var dt=W=>{var me=Hs(),te=o(me),Ie=r(te,2);{var Te=Fe=>{var ot=Fs();$("click",ot,We),h(Fe,ot)};j(Ie,Fe=>{e(z)||Fe(Te)})}s(me),Je(me,Fe=>t(Oe,Fe),()=>e(Oe)),$("click",te,ht),h(W,me)};j(nt,W=>{e(Se)&&W(dt)})}var Ct=r(nt,2),Rt=o(Ct);{var Gt=W=>{var me=Ns(),te=r(o(me),2),Ie=o(te);s(te),s(me),T(Te=>q(Ie,`返回父会话 …${Te??""}`),[()=>(e(fe),l(()=>e(fe).slice(-8)))]),$("click",me,Be),h(W,me)};j(Rt,W=>{e(fe)&&W(Gt)})}var i=r(Rt,2),y=o(i);s(i);var ne=r(i,2);{var Ge=W=>{var me=Ks(),te=je(me),Ie=o(te);let Te;var Fe=r(Ie,2),ot=o(Fe);s(Fe),s(te);var He=r(te,2);{var ut=Ve=>{var ft=jt(),It=je(ft);De(It,1,()=>e(L),Qe=>Qe.text,(Qe,ke)=>{var Ne=Ws(),pt=r(o(Ne)),Bt=o(pt,!0);s(pt),s(Ne),T(()=>q(Bt,(e(ke),l(()=>e(ke).text)))),h(Qe,Ne)}),h(Ve,ft)};j(He,Ve=>{e(u)&&Ve(ut)})}T(()=>{oe(te,"aria-expanded",e(u)),Te=et(Ie,0,"caret svelte-w3h0m4",null,Te,{open:e(u)}),q(ot,`已完成 ${e(L),l(()=>e(L).length)??""}`)}),$("click",te,()=>t(u,!e(u))),h(W,me)};j(ne,W=>{e(L),l(()=>e(L).length)&&W(Ge)})}var Ce=r(ne,2);De(Ce,1,()=>e(ge),W=>W.text,(W,me)=>{var te=Gs(),Ie=r(o(te)),Te=o(Ie,!0);s(Ie),s(te),T(()=>q(Te,(e(me),l(()=>e(me).text)))),h(W,te)});var Ue=r(Ce,2);De(Ue,1,()=>(e(R),l(()=>e(R).slice(0,d))),W=>W.text,(W,me)=>{var te=Us(),Ie=r(o(te)),Te=o(Ie,!0);s(Ie),s(te),T(()=>q(Te,(e(me),l(()=>e(me).text)))),h(W,te)});var Tt=r(Ue,2);{var da=W=>{var me=Js(),te=je(me),Ie=o(te);let Te;var Fe=r(Ie,2),ot=o(Fe);s(Fe),s(te);var He=r(te,2);{var ut=Ve=>{var ft=jt(),It=je(ft);De(It,1,()=>(e(R),l(()=>e(R).slice(d))),Qe=>Qe.text,(Qe,ke)=>{var Ne=Vs(),pt=r(o(Ne)),Bt=o(pt,!0);s(pt),s(Ne),T(()=>q(Bt,(e(ke),l(()=>e(ke).text)))),h(Qe,Ne)}),h(Ve,ft)};j(He,Ve=>{e(H)&&Ve(ut)})}T(()=>{oe(te,"aria-expanded",e(H)),Te=et(Ie,0,"caret svelte-w3h0m4",null,Te,{open:e(H)}),q(ot,`待处理 ${e(c)??""}`)}),$("click",te,()=>t(H,!e(H))),h(W,me)};j(Tt,W=>{e(c)>0&&W(da)})}var Zt=r(Tt,2);{var ua=W=>{var me=Zs(),te=je(me),Ie=o(te),Te=o(Ie);s(Ie),s(te);var Fe=r(te,2);De(Fe,1,()=>e(B),ot=>ot.id,(ot,He)=>{var ut=Xs(),Ve=r(o(ut),2);{var ft=ke=>{var Ne=Ys(),pt=o(Ne);s(Ne),T(()=>q(pt,`${e(He),l(()=>e(He).done)??""}/${e(He),l(()=>e(He).total)??""}`)),h(ke,Ne)};j(Ve,ke=>{e(He),l(()=>e(He).total>0)&&ke(ft)})}var It=r(Ve,2),Qe=o(It,!0);s(It),Mt(2),s(ut),T(ke=>q(Qe,ke),[()=>(e(He),l(()=>e(He).title||"…"+e(He).id.slice(-6)))]),$("click",ut,()=>Xe(e(He))),h(ot,ut)}),T(()=>q(Te,`子代理 · 运行中 ${e(B),l(()=>e(B).length)??""}`)),h(W,me)};j(Zt,W=>{e(B),l(()=>e(B).length)&&W(ua)})}var fa=r(Zt,2);{var pa=W=>{var me=an(),te=je(me),Ie=o(te);let Te;var Fe=r(Ie,2),ot=o(Fe);s(Fe),s(te);var He=r(te,2);{var ut=Ve=>{var ft=jt(),It=je(ft);De(It,1,()=>e(de),Qe=>Qe.id,(Qe,ke)=>{var Ne=tn(),pt=o(Ne);{var Bt=bt=>{var Ot=Qs();h(bt,Ot)};j(pt,bt=>{e(ke),l(()=>e(ke).total>0&&e(ke).done>=e(ke).total)&&bt(Bt)})}var Qt=r(pt,2);{var ma=bt=>{var Ot=en(),_a=o(Ot);s(Ot),T(()=>q(_a,`${e(ke),l(()=>e(ke).done)??""}/${e(ke),l(()=>e(ke).total)??""}`)),h(bt,Ot)};j(Qt,bt=>{e(ke),l(()=>e(ke).total>0)&&bt(ma)})}var ea=r(Qt,2),ha=o(ea,!0);s(ea),Mt(2),s(Ne),T(bt=>q(ha,bt),[()=>(e(ke),l(()=>e(ke).title||"…"+e(ke).id.slice(-6)))]),$("click",Ne,()=>Xe(e(ke))),h(Qe,Ne)}),h(Ve,ft)};j(He,Ve=>{e(pe)&&Ve(ut)})}T(()=>{oe(te,"aria-expanded",e(pe)),Te=et(Ie,0,"caret svelte-w3h0m4",null,Te,{open:e(pe)}),q(ot,`子代理 · 已结束 ${e(de),l(()=>e(de).length)??""}`)}),$("click",te,()=>t(pe,!e(pe))),h(W,me)};j(fa,W=>{e(de),l(()=>e(de).length)&&W(pa)})}s(Ct),s(at),Je(at,W=>t(Le,W),()=>e(Le)),T(W=>{q(ct,W),q(y,`任务 ${e(p),l(()=>e(p).done)??""}/${e(p),l(()=>e(p).total)??""}`)},[()=>(e(M),ye(b()),l(()=>e(M)||"…"+b().slice(-8)))]),$("click",vt,Ba(()=>t(Se,!e(Se)))),$("click",$t,Pe),h(Re,_e)};j(O,Re=>{e(S)&&!e(z)?Re(Q):e(P)&&Re(N,1)})}var ve=r(O,2);{var Ae=Re=>{var _e=on(),ze=r(o(_e),2),Ze=o(ze,!0),at=r(Ze,2,!0);s(ze);var st=r(ze,2);{var lt=ct=>{var vt=nn(),$t=o(vt,!0);s(vt),T(()=>q($t,(e(B),l(()=>e(B).length)))),h(ct,vt)};j(st,ct=>{e(B),l(()=>e(B).length>0)&&ct(lt)})}Mt(2),s(_e),Je(_e,ct=>t(qe,ct),()=>e(qe)),T(()=>{oe(_e,"aria-label",(e(p),l(()=>`展开计划 ${e(p).done}/${e(p).total}`))),q(Ze,(e(p),l(()=>e(p).done))),q(at,(e(p),l(()=>e(p).total)))}),$("click",_e,Pe),h(Re,_e)},qt=Re=>{var _e=ln(),ze=o(_e),Ze=o(ze);oe(Ze,"r",f);var at=r(Ze);oe(at,"r",f),s(ze);var st=r(ze,2),lt=o(st,!0),ct=r(lt,2,!0);s(st);var vt=r(st,2);{var $t=nt=>{var dt=rn(),Ct=o(dt,!0);s(dt),T(()=>q(Ct,(e(B),l(()=>e(B).length)))),h(nt,dt)};j(vt,nt=>{e(B),l(()=>e(B).length>0)&&nt($t)})}s(_e),Je(_e,nt=>t(qe,nt),()=>e(qe)),T(nt=>{oe(_e,"aria-label",(e(p),e(P),l(()=>`计划 ${e(p).done}/${e(p).total} — ${e(P)?"收起":"展开"}`))),oe(_e,"aria-expanded",e(P)),oe(at,"stroke-dasharray",nt),q(lt,(e(p),l(()=>e(p).done))),q(ct,(e(p),l(()=>e(p).total)))},[()=>(e(k),l(()=>`${Math.max(C*e(k),C*.02)} ${C}`))]),$("click",_e,Pe),h(Re,_e)};j(ve,Re=>{e(z)&&!e(P)?Re(Ae):!e(S)&&!(e(z)&&!e(P))&&Re(qt,1)})}h(a,g)},v=Lt(()=>(e(U),ye(b()),e(p),e(se),e(fe),J(),l(()=>e(U)===b()&&(e(p).total>0||e(se).length>0||e(fe))&&J()("todos"))));j(_t,a=>{e(v)&&a(yt)})}h($e,it),xt(),D()}var dn=_('<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=_('<span class="branch mono svelte-eho102"> </span>'),fn=_('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span>'),pn=_('<button class="restore mono svelte-eho102" title="恢复被撤销的轮次">恢复上一轮</button>'),mn=_('<!> <span class="idle mono svelte-eho102">空闲</span>',1),hn=_('<button class="load-earlier mono svelte-eho102"> </button>'),_n=_('<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=_('<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=_('<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=_('<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></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($e,re){kt(re,!1);const A=()=>Ee(Ra,"$page",M),I=()=>Ee(Wt,"$feeds",M),J=()=>Ee(zt,"$sessionList",M),Y=()=>Ee(va,"$composerEmpty",M),D=()=>Ee(Pa,"$sessionBooting",M),x=()=>Ee(ia,"$leftPanelOpen",M),E=()=>Ee(za,"$feedResyncing",M),[M,L]=At(),ge=n(),R=n(),c=n(),k=n(),S=n(),B=n(),de=n(),b=n(),K=n(),Z=n();let d=n(),f=n(),C=n(),z,ie=n(""),he,G,P=n(0),V=n(0),p=n(),U=n(!0);function we(){e(d)&&Et(d,e(d).scrollTop=e(d).scrollHeight)}function xe(){e(d)&&t(U,e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<80)}const ee=80,ae=50;let F=n(ee),se=n(0),ue=n(!0),m=n(!1),X=n("");async function le(){if(e(m)||!e(c))return;if(e(S).length>e(F)){t(F,e(F)+ee);return}if(!e(ue))return;t(m,!0);const i=e(d),y=i?{h:i.scrollHeight,top:i.scrollTop}:null;try{const ne=await be.history(e(c),{limit:ae,offset:e(se)});(ne.cards??[]).length===0?t(ue,!1):($a(e(c),ne.cards),t(se,e(se)+ae),t(F,e(F)+ee),ne.hasMore===!1&&t(ue,!1),y&&i&&(await Ft(),i.scrollTop=i.scrollHeight-y.h+y.top))}catch(ne){console.warn("[page] loadEarlier failed",ne)}finally{t(m,!1)}}let fe=n("");function Me(i){if(i<60)return`${i}s`;const y=Math.floor(i/60),ne=i%60;return ne===0?`${y}m`:`${y}m ${ne}s`}function Xe(){Le()}async function Be(i){if(!(!e(c)||!i))try{await be.revertSession(e(c),i);const{cards:y,lastSeq:ne}=await be.history(e(c)),{setHistory:Ge}=await ta(async()=>{const{setHistory:Ce}=await import("../chunks/CtMqSQTR.js").then(Ue=>Ue.B);return{setHistory:Ce}},__vite__mapDeps([0,1]),import.meta.url);Ge(e(c),y,ne),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(c),sinceSeq:ne}}))}catch{}}let ce=n(!1),u=n();async function H(i){try{const y=await be.revertState(i);t(ce,y.reverted),t(u,y.messageID)}catch{t(ce,!1),t(u,void 0)}}async function pe(){if(e(c))try{await be.unrevertSession(e(c)),t(ce,!1);const{cards:i,lastSeq:y}=await be.history(e(c)),{setHistory:ne}=await ta(async()=>{const{setHistory:Ge}=await import("../chunks/CtMqSQTR.js").then(Ce=>Ce.B);return{setHistory:Ge}},__vite__mapDeps([0,1]),import.meta.url);ne(e(c),i,y),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(c),sinceSeq:y}}))}catch{}}const Se=["总结这个项目","最近有什么改动?","运行检查"];let Pe=n(!1),We=n([]),rt;async function ht(i,y){if(rt!==y){rt=y;try{const ne=await be.suggestions(i);t(We,ne.suggestions??[])}catch{t(We,[])}}}let Ke=n(),Oe=n([]);function Le(){if(!e(c))return;const i=[...e(S)].reverse().find(ne=>ne.kind==="user"),y=i==null?void 0:i.text;y&&be.sendMessage({sessionId:e(c),text:y,clientId:`web_${Date.now()}`})}Xt(()=>{he=new ResizeObserver(()=>{e(f)&&(document.documentElement.style.setProperty("--composer-h",`${e(f).offsetHeight}px`),e(U)&&we()),e(d)&&document.documentElement.style.setProperty("--sbw",`${e(d).offsetWidth-e(d).clientWidth}px`)}),e(f)&&he.observe(e(f)),e(d)&&he.observe(e(d)),z=new IntersectionObserver(ne=>{if(!e(U)||!ne.some(Ce=>!Ce.isIntersecting))return;e(d).scrollHeight-e(d).scrollTop-e(d).clientHeight<=24?requestAnimationFrame(we):t(U,!1)},{root:e(d),threshold:0}),e(C)&&z.observe(e(C));const i=window.visualViewport,y=()=>{e(U)&&requestAnimationFrame(we)};i==null||i.addEventListener("resize",y),G=()=>i==null?void 0:i.removeEventListener("resize",y)}),Kt(()=>{he==null||he.disconnect(),z==null||z.disconnect(),G==null||G(),e(p)&&clearInterval(e(p))}),w(()=>A(),()=>{t(c,A().params.sessionId??"")}),w(()=>(e(c),e(X)),()=>{e(c)&&e(c)!==e(X)&&(t(X,e(c)),t(F,ee),t(se,0),t(ue,!0),t(m,!1))}),w(()=>(I(),e(c)),()=>{t(k,I()[e(c)])}),w(()=>e(k),()=>{t(b,(()=>{if(!e(k)||e(k).order.length===0)return!1;const i=e(k).byId[e(k).order[e(k).order.length-1]];return(i==null?void 0:i.kind)==="thinking"||(i==null?void 0:i.kind)==="streaming"||(i==null?void 0:i.kind)==="think-stream"})())}),w(()=>(e(b),e(u)),()=>{e(b)&&e(u)&&t(u,void 0)}),w(()=>e(k),()=>{t(S,Vt(e(k)))}),w(()=>(e(u),e(S)),()=>{t(ge,e(u)?(()=>{let i=-1;for(let y=e(S).length-1;y>=0;y--)if(e(S)[y].messageId===e(u)){i=y;break}return i===-1?e(S):e(S).slice(0,i)})():e(S))}),w(()=>(e(F),e(ge)),()=>{t(R,e(F)>=e(ge).length?e(ge):e(ge).slice(-e(F)))}),w(()=>(J(),e(c)),()=>{t(B,J().find(i=>i.id===e(c)))}),w(()=>e(B),()=>{var i;t(de,(i=e(B))!=null&&i.directory&&e(B).directory.replace(/\/+$/,"").split("/").pop()||"")}),w(()=>(e(b),e(fe),e(c),e(P),e(p)),()=>{e(b)?(e(fe)!==e(c)&&(t(fe,e(c)),t(P,0)),!e(P)&&typeof window<"u"&&(t(P,Date.now()),t(V,0),e(p)&&clearInterval(e(p)),t(p,setInterval(()=>{t(V,Math.floor((Date.now()-e(P))/1e3))},1e3)))):(t(P,0),t(V,0),t(fe,""),e(p)&&(clearInterval(e(p)),t(p,void 0)))}),w(()=>e(S),()=>{t(K,e(S).length?e(S)[e(S).length-1]:null)}),w(()=>e(c),()=>{e(c)&&(e(c),H(e(c)))}),w(()=>(e(b),e(K),e(c)),()=>{var i;!e(b)&&((i=e(K))==null?void 0:i.kind)==="assistant"&&e(c)&&e(K).id&&ht(e(c),e(K).id)}),w(()=>(e(c),e(Ke)),()=>{e(c)!==e(Ke)&&(t(Ke,e(c)),t(Pe,!1))}),w(()=>(e(b),e(Pe),Y(),e(k),D(),e(We),e(S)),()=>{e(b)||e(Pe)||!Y()||!e(k)||D()?t(Oe,[]):e(We).length>0?t(Oe,e(We)):e(S).length===0?t(Oe,Se):t(Oe,[])}),w(()=>(e(c),e(k),e(S)),()=>{var i;t(Z,`${e(c)}:${((i=e(k))==null?void 0:i.lastSeq)??0}:${e(S).length}`)}),w(()=>(e(Z),e(ie),e(U)),()=>{e(Z)!==e(ie)&&(t(ie,e(Z)),Ft().then(()=>{e(U)&&we()}))}),St(),wt();var qe=wn(),tt=je(qe),it=o(tt),_t=o(it),yt=o(_t),v=r(yt,2);{var a=i=>{var y=dn();$("click",y,()=>ia.set(!0)),h(i,y)};j(v,i=>{x()||i(a)})}var g=r(v,2);Ps(g,{get activeId(){return e(c)}});var O=r(g,2);{var Q=i=>{var y=un(),ne=o(y,!0);s(y),T(()=>q(ne,e(de))),h(i,y)};j(O,i=>{e(de)&&i(Q)})}s(_t);var N=r(_t,2),ve=o(N);{var Ae=i=>{var y=fn(),ne=r(o(y));s(y),T(Ge=>q(ne,` 运行中 ${Ge??""}`),[()=>(e(V),l(()=>Me(e(V))))]),h(i,y)},qt=i=>{var y=mn(),ne=je(y);{var Ge=Ce=>{var Ue=pn();$("click",Ue,pe),h(Ce,Ue)};j(ne,Ce=>{e(ce)&&Ce(Ge)})}Mt(2),h(i,y)};j(ve,i=>{e(b)?i(Ae):i(qt,-1)})}var Re=r(ve,2);s(N),s(it);var _e=r(it,2);let ze;var Ze=o(_e);{var at=i=>{var y=hn(),ne=o(y,!0);s(y),T(()=>{y.disabled=e(m),q(ne,e(m)?"加载中…":"加载更早消息")}),$("click",y,le),h(i,y)};j(Ze,i=>{e(S),e(F),e(ue),l(()=>e(S).length>0&&(e(S).length>e(F)||e(ue)))&&i(at)})}var st=r(Ze,2);De(st,1,()=>e(R),i=>i.id,(i,y)=>{{let ne=oa(()=>(e(y),e(K),e(b),l(()=>{var Ce;return e(y).id===((Ce=e(K))==null?void 0:Ce.id)&&e(y).kind==="assistant"&&!e(b)?Xe:void 0}))),Ge=oa(()=>(e(y),e(K),e(b),l(()=>{var Ce;return e(y).id===((Ce=e(K))==null?void 0:Ce.id)&&e(y).kind==="assistant"&&!e(b)?()=>Be(e(K).messageId):void 0})));La(i,{get card(){return e(y)},onRetry:Le,get onRegenerate(){return e(ne)},get onRevert(){return e(Ge)}})}});var lt=r(st,2);Je(lt,i=>t(C,i),()=>e(C));var ct=r(lt,2);{var vt=i=>{var y=jt(),ne=je(y);{var Ge=Ue=>{var Tt=_n();h(Ue,Tt)},Ce=Ue=>{var Tt=bn();h(Ue,Tt)};j(ne,Ue=>{e(k)?Ue(Ce,-1):Ue(Ge)})}h(i,y)};j(ct,i=>{e(S),l(()=>e(S).length===0)&&i(vt)})}s(_e),s(tt),Je(tt,i=>t(d,i),()=>e(d));var $t=r(tt,2);{var nt=i=>{var y=gn();$("click",y,we),h(i,y)};j($t,i=>{e(U),e(S),l(()=>!e(U)&&e(S).length>0)&&i(nt)})}var dt=r($t,2),Ct=o(dt);Na(Ct,{get suggestions(){return e(Oe)},onPick:i=>Jt.set({text:i,nonce:Date.now()}),onDismiss:()=>{t(Pe,!0),t(Oe,[])}});var Rt=r(Ct,2);js(Rt,{get sessionId(){return e(c)}}),s(dt),Je(dt,i=>t(f,i),()=>e(f));var Gt=r(dt,2);vn(Gt,{get sessionId(){return e(c)},onJump:i=>Nt("/"+i)}),T(()=>ze=et(_e,1,"stream conversation-emerald svelte-eho102",null,ze,{suppressed:E()})),$("click",yt,()=>Nt("/")),$("click",Re,()=>Yt.update(i=>!i)),$("scroll",tt,xe),h($e,qe),xt(),L()}export{Mn as component};
@@ -1 +1 @@
1
- {"version":"1790965219756"}
1
+ {"version":"1790966236310"}
@@ -26,17 +26,17 @@
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.DsnVdUit.js" rel="modulepreload">
30
- <link href="/_app/immutable/chunks/DjHqq4wz.js" rel="modulepreload">
29
+ <link href="/_app/immutable/entry/start.CmZcSdrS.js" rel="modulepreload">
30
+ <link href="/_app/immutable/chunks/BfGctnTm.js" rel="modulepreload">
31
31
  <link href="/_app/immutable/chunks/BjY4dxcB.js" rel="modulepreload">
32
- <link href="/_app/immutable/entry/app.Jw_oD82R.js" rel="modulepreload">
32
+ <link href="/_app/immutable/entry/app.BnTBMpEY.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.BpE23c-a.js" rel="modulepreload">
37
+ <link href="/_app/immutable/nodes/0.ALuX6LMb.js" rel="modulepreload">
38
38
  <link href="/_app/immutable/chunks/CtMqSQTR.js" rel="modulepreload">
39
- <link href="/_app/immutable/chunks/CwM1DevG.js" rel="modulepreload">
39
+ <link href="/_app/immutable/chunks/DokImqMI.js" rel="modulepreload">
40
40
 
41
41
  <link href="/_app/immutable/assets/Card.BnVisgSs.css" rel="stylesheet">
42
42
  <link href="/_app/immutable/assets/0.CYAOXS1n.css" rel="stylesheet">
@@ -45,15 +45,15 @@
45
45
  <div style="display: contents">
46
46
  <script>
47
47
  {
48
- __sveltekit_1s1id4u = {
48
+ __sveltekit_1g7s7iu = {
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.DsnVdUit.js"),
56
- import("/_app/immutable/entry/app.Jw_oD82R.js")
55
+ import("/_app/immutable/entry/start.CmZcSdrS.js"),
56
+ import("/_app/immutable/entry/app.BnTBMpEY.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.Jw_oD82R.js",a+"/_app/immutable/nodes/0.BpE23c-a.js",a+"/_app/immutable/assets/0.CYAOXS1n.css",a+"/_app/immutable/nodes/1.DivFzgMM.js",a+"/_app/immutable/nodes/2.Cv47TVoL.js",a+"/_app/immutable/assets/2.BNuGfmZP.css",a+"/_app/immutable/nodes/3.CS7I801I.js",a+"/_app/immutable/assets/3.BoovcwoG.css",a+"/_app/immutable/assets/Card.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/CtMqSQTR.js",a+"/_app/immutable/chunks/CwM1DevG.js",a+"/_app/immutable/chunks/DjHqq4wz.js",a+"/_app/immutable/chunks/vlg9iH2u.js",a+"/_app/immutable/entry/start.DsnVdUit.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"],l="1790965219756",n=self,i=`ocrc-cache-${l}`,p=[...m,...o];n.addEventListener("install",t=>{t.waitUntil(caches.open(i).then(s=>s.addAll(p.map(e=>new Request(e,{cache:"reload"})))).then(()=>n.skipWaiting()))});n.addEventListener("activate",t=>{t.waitUntil((async()=>{for(const s of await caches.keys())s!==i&&await caches.delete(s);await n.clients.claim()})())});n.addEventListener("fetch",t=>{const{request:s}=t;if(s.method!=="GET")return;const e=new URL(s.url);if(e.origin===location.origin&&!(e.pathname.startsWith("/api/")||e.pathname==="/ws")){if(p.includes(e.pathname)){t.respondWith(caches.match(s).then(c=>c??fetch(s)));return}t.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.BnTBMpEY.js",a+"/_app/immutable/nodes/0.ALuX6LMb.js",a+"/_app/immutable/assets/0.CYAOXS1n.css",a+"/_app/immutable/nodes/1.BL2UUrlA.js",a+"/_app/immutable/nodes/2.Dy-aS2XW.js",a+"/_app/immutable/assets/2.BNuGfmZP.css",a+"/_app/immutable/nodes/3.1bO6Acw5.js",a+"/_app/immutable/assets/3.BoovcwoG.css",a+"/_app/immutable/assets/Card.BnVisgSs.css",a+"/_app/immutable/chunks/BfGctnTm.js",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/CtMqSQTR.js",a+"/_app/immutable/chunks/DokImqMI.js",a+"/_app/immutable/chunks/vlg9iH2u.js",a+"/_app/immutable/entry/start.CmZcSdrS.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"],l="1790966236310",n=self,i=`ocrc-cache-${l}`,p=[...m,...o];n.addEventListener("install",t=>{t.waitUntil(caches.open(i).then(s=>s.addAll(p.map(e=>new Request(e,{cache:"reload"})))).then(()=>n.skipWaiting()))});n.addEventListener("activate",t=>{t.waitUntil((async()=>{for(const s of await caches.keys())s!==i&&await caches.delete(s);await n.clients.claim()})())});n.addEventListener("fetch",t=>{const{request:s}=t;if(s.method!=="GET")return;const e=new URL(s.url);if(e.origin===location.origin&&!(e.pathname.startsWith("/api/")||e.pathname==="/ws")){if(p.includes(e.pathname)){t.respondWith(caches.match(s).then(c=>c??fetch(s)));return}t.respondWith((async()=>{try{return await fetch(s)}catch{return await caches.match(s)??await caches.match("/")??Response.error()}})())}});
@@ -1 +0,0 @@
1
- import{l as o,s as r}from"../chunks/DjHqq4wz.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CtMqSQTR.js","../chunks/BjY4dxcB.js"])))=>i.map(i=>d[i]);
2
- import{_ as ta}from"../chunks/C1FmrZbK.js";import"../chunks/CWj6FrbW.js";import{r as gt,f as he,p as Nt,l as Gt,i as ba,G as ga,y as wa,k as la,a as aa,b as sa,c as na,j as ka,z as Lt,e as xa,C as ya,w as $a}from"../chunks/CtMqSQTR.js";import{aE as wt,M as jt,a4 as Oe,w as u,aB as kt,V as ye,b4 as l,J as n,aK as s,a$ as j,a8 as e,aR as q,a3 as $,aU as r,a6 as h,az as Jt,ap as k,aO as t,aq as It,$ as ht,au as o,b2 as ca,aw as Mt,av as Et,ay as Wt,b1 as zt,aI as Ia,b5 as Pt,b0 as Sa,a7 as Ca,Z as oa}from"../chunks/BjY4dxcB.js";import{i as D,s as At,a as Me}from"../chunks/Chcp5gAM.js";import{i as Ae,B as Ft,I as Ve,z as ie,A as at,l as Dt,c as Ea,f as Ut,g as va,t as Ma,h as qa,v as Ta,K as ra,a as ja,F as Da,E as Ba,q as Oa,m as Vt,r as Aa,s as Ra,y as Pa,C as La,o as ia,j as za}from"../chunks/CwM1DevG.js";import{p as bt,b as Ue}from"../chunks/vlg9iH2u.js";import{g as Ht}from"../chunks/DjHqq4wz.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($e,le){wt(le,!1);let P=bt(le,"suggestions",24,()=>[]),I=bt(le,"onPick",8,()=>{}),J=bt(le,"onDismiss",8,()=>{});gt();var Y=jt(),B=Oe(Y);{var y=C=>{var M=Ha(),F=n(M);Ae(F,3,P,x=>x,(x,b,K)=>{var A=Fa(),G=n(A,!0);s(A),j(w=>{Ft(A,w),q(G,e(b))},[()=>(ye(e(K)),l(()=>`animation-delay: ${Math.min(e(K),5)*45}ms`))]),$("click",A,()=>I()(e(b))),u(x,A)});var ke=r(F,2),f=n(ke);Ve(f,{name:"close",size:12}),s(ke),s(M),$("click",ke,function(...x){var b;(b=J())==null||b.apply(this,x)}),u(C,M)};D(B,C=>{ye(P()),l(()=>P().length>0)&&C(y)})}u($e,Y),kt()}var Wa=h('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Ka=h('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Ga=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 Va($e,le){wt(le,!1);const P=o();let I=o(!1),J=o(),Y=o([]),B=o({agent:null,model:null});async function y(){try{await(async v=>{var S=ca(v,2);t(Y,S[0]),t(B,S[1])})(await Promise.all([he.agents(),he.getOverrides()]))}catch{}}Jt(y);async function C(v){await he.setOverrides({agent:v.name}),await y(),t(I,!1)}async function M(){await he.setOverrides({agent:null}),await y(),t(I,!1)}function F(v){v.key==="Escape"&&e(I)&&t(I,!1)}function ke(v){e(I)&&e(J)&&!e(J).contains(v.target)&&t(I,!1)}k(()=>e(B),()=>{t(P,e(B).agent??"default")}),It(),gt();var f=Ua();$("keydown",ht,F),$("click",ht,ke);var x=n(f),b=n(x);Ve(b,{name:"cpu",size:11});var K=r(b,2),A=n(K,!0);s(K);var G=r(K,2);Ve(G,{name:"caret-down",size:9}),s(x);var w=r(x,2),oe=n(w);Ve(oe,{name:"cpu",size:14}),s(w);var T=r(w,2);{var _=v=>{var S=Ga(),V=n(S);{var Z=z=>{var d=Wa();u(z,d)};D(V,z=>{e(Y),l(()=>e(Y).length===0)&&z(Z)})}var ge=r(V,2);Ae(ge,1,()=>e(Y),z=>z.name,(z,d)=>{var ee=Ka();let Ie;var _e=n(ee),ce=n(_e,!0);s(_e);var R=r(_e,2),re=n(R,!0);s(R),s(ee),j(Q=>{Ie=at(ee,1,"opt svelte-1f5vmb3",null,Ie,{sel:e(d).name===e(B).agent}),ie(ee,"aria-selected",(e(d),e(B),l(()=>e(d).name===e(B).agent))),q(ce,(e(d),l(()=>e(d).name))),q(re,Q)},[()=>(e(d),l(()=>e(d).model.split("/").pop()))]),$("click",ee,()=>C(e(d))),u(z,ee)});var L=r(ge,2),H=n(L);Ve(H,{name:"close",size:11}),Mt(),s(L),s(S),j(()=>ie(L,"aria-selected",(e(B),l(()=>e(B).agent==null)))),$("click",L,M),u(v,S)};D(T,v=>{e(I)&&v(_)})}s(f),Ue(f,v=>t(J,v),()=>e(J)),j(()=>{ie(x,"aria-expanded",e(I)),q(A,e(P)),ie(w,"aria-label",`Agent:${e(P)}`),ie(w,"aria-expanded",e(I))}),$("click",x,()=>{t(I,!e(I)),e(I)&&y()}),$("click",w,()=>{t(I,!e(I)),e(I)&&y()}),u($e,f),kt()}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($e,le){wt(le,!1);const P=o();let I=o(!1),J=o(),Y=o([]),B=o({agent:null,model:null});async function y(){try{await(async v=>{var S=ca(v,2);t(Y,S[0]),t(B,S[1])})(await Promise.all([he.models(),he.getOverrides()]))}catch{}}Jt(y);async function C(v,S){await he.setOverrides({model:{providerID:v,modelID:S}}),await y(),t(I,!1)}async function M(){await he.setOverrides({model:null}),await y(),t(I,!1)}function F(v){v.key==="Escape"&&e(I)&&t(I,!1)}function ke(v){e(I)&&e(J)&&!e(J).contains(v.target)&&t(I,!1)}k(()=>e(B),()=>{var v;t(P,((v=e(B).model)==null?void 0:v.modelID)??"model")}),It(),gt();var f=Qa();$("keydown",ht,F),$("click",ht,ke);var x=n(f),b=n(x);Ve(b,{name:"bolt",size:11});var K=r(b,2),A=n(K,!0);s(K);var G=r(K,2);Ve(G,{name:"caret-down",size:9}),s(x);var w=r(x,2),oe=n(w);Ve(oe,{name:"bolt",size:14}),s(w);var T=r(w,2);{var _=v=>{var S=Za(),V=n(S);{var Z=z=>{var d=Ja();u(z,d)};D(V,z=>{e(Y),l(()=>e(Y).length===0)&&z(Z)})}var ge=r(V,2);Ae(ge,1,()=>e(Y),z=>z.id,(z,d)=>{var ee=Xa(),Ie=Oe(ee),_e=n(Ie,!0);s(Ie);var ce=r(Ie,2);Ae(ce,1,()=>(e(d),l(()=>e(d).models)),R=>R.id,(R,re)=>{var Q=Ya();let de;var p=n(Q),te=n(p,!0);s(p),s(Q),j(()=>{var ae,me;de=at(Q,1,"opt svelte-1005b73",null,de,{sel:((ae=e(B).model)==null?void 0:ae.providerID)===e(d).id&&((me=e(B).model)==null?void 0:me.modelID)===e(re).id}),ie(Q,"aria-selected",(e(B),e(d),e(re),l(()=>{var je,Je;return((je=e(B).model)==null?void 0:je.providerID)===e(d).id&&((Je=e(B).model)==null?void 0:Je.modelID)===e(re).id}))),q(te,(e(re),l(()=>e(re).name||e(re).id)))}),$("click",Q,()=>C(e(d).id,e(re).id)),u(R,Q)}),j(()=>q(_e,(e(d),l(()=>e(d).id)))),u(z,ee)});var L=r(ge,2),H=n(L);Ve(H,{name:"close",size:11}),Mt(),s(L),s(S),j(()=>ie(L,"aria-selected",(e(B),l(()=>e(B).model==null)))),$("click",L,M),u(v,S)};D(T,v=>{e(I)&&v(_)})}s(f),Ue(f,v=>t(J,v),()=>e(J)),j(()=>{ie(x,"aria-expanded",e(I)),q(A,e(P)),ie(w,"aria-label",`模型:${e(P)}`),ie(w,"aria-expanded",e(I))}),$("click",x,()=>{t(I,!e(I)),e(I)&&y()}),$("click",w,()=>{t(I,!e(I)),e(I)&&y()}),u($e,f),kt()}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($e,le){wt(le,!1);const P=o(),I=o(),J=o(),Y=o();let B=bt(le,"sessionId",8),y=o({}),C=o(null);async function M(){const _=B();try{const v=await he.controls(_);if(_!==B())return;t(y,v)}catch{_===B()&&t(y,{})}}async function F(_){e(y).mode&&Et(y,e(y).mode={...e(y).mode,current:_}),t(C,null);try{await he.setMode(B(),_)}catch{}await M()}async function ke(_){e(y).model&&Et(y,e(y).model={...e(y).model,current:_}),t(C,null);try{await he.setModel(B(),_)}catch{}await M()}function f(_){t(C,e(C)===_?null:_)}let x=o();function b(_){_.key==="Escape"&&e(C)&&t(C,null)}function K(_){e(C)&&e(x)&&!e(x).contains(_.target)&&t(C,null)}k(()=>ye(B()),()=>{B()&&M()}),k(()=>e(y),()=>{var _;t(P,((_=e(y).mode)==null?void 0:_.options)??[])}),k(()=>e(y),()=>{var _;t(I,((_=e(y).model)==null?void 0:_.options)??[])}),k(()=>e(y),()=>{var _,v,S;t(J,((v=(_=e(y).mode)==null?void 0:_.options.find(V=>{var Z;return V.id===((Z=e(y).mode)==null?void 0:Z.current)}))==null?void 0:v.name)??((S=e(y).mode)==null?void 0:S.current)??"mode")}),k(()=>e(y),()=>{var _,v,S;t(Y,((v=(_=e(y).model)==null?void 0:_.options.find(V=>{var Z;return V.id===((Z=e(y).model)==null?void 0:Z.current)}))==null?void 0:v.name)??((S=e(y).model)==null?void 0:S.current)??"model")}),It(),gt();var A=is();$("keydown",ht,b),$("click",ht,K);var G=n(A);{var w=_=>{var v=ss(),S=n(v),V=n(S);Ve(V,{name:"bolt",size:11});var Z=r(V,2),ge=n(Z,!0);s(Z);var L=r(Z,2);Ve(L,{name:"caret-down",size:9}),s(S);var H=r(S,2);{var z=d=>{var ee=as(),Ie=r(n(ee),2);Ae(Ie,1,()=>e(P),Dt,(_e,ce)=>{var R=ts();let re;var Q=n(R,!0);s(R),j(()=>{var de;re=at(R,1,"opt svelte-dkbq22",null,re,{sel:e(ce).id===((de=e(y).mode)==null?void 0:de.current)}),ie(R,"aria-selected",(e(ce),e(y),l(()=>{var p;return e(ce).id===((p=e(y).mode)==null?void 0:p.current)}))),q(Q,(e(ce),l(()=>e(ce).name)))}),$("click",R,()=>F(e(ce).id)),u(_e,R)}),s(ee),u(d,ee)};D(H,d=>{e(C)==="mode"&&d(z)})}s(v),j(()=>{ie(S,"aria-expanded",e(C)==="mode"),q(ge,e(J))}),$("click",S,()=>f("mode")),u(_,v)};D(G,_=>{e(P),l(()=>e(P).length>0)&&_(w)})}var oe=r(G,2);{var T=_=>{var v=rs(),S=n(v),V=n(S);Ve(V,{name:"cpu",size:11});var Z=r(V,2),ge=n(Z,!0);s(Z);var L=r(Z,2);Ve(L,{name:"caret-down",size:9}),s(S);var H=r(S,2);{var z=d=>{var ee=os(),Ie=r(n(ee),2);Ae(Ie,1,()=>e(I),Dt,(_e,ce)=>{var R=ns();let re;var Q=n(R,!0);s(R),j(()=>{var de;re=at(R,1,"opt svelte-dkbq22",null,re,{sel:e(ce).id===((de=e(y).model)==null?void 0:de.current)}),ie(R,"aria-selected",(e(ce),e(y),l(()=>{var p;return e(ce).id===((p=e(y).model)==null?void 0:p.current)}))),q(Q,(e(ce),l(()=>e(ce).name)))}),$("click",R,()=>ke(e(ce).id)),u(_e,R)}),s(ee),u(d,ee)};D(H,d=>{e(C)==="model"&&d(z)})}s(v),j(()=>{ie(S,"aria-expanded",e(C)==="model"),q(ge,e(Y))}),$("click",S,()=>f("model")),u(_,v)};D(oe,_=>{e(I),l(()=>e(I).length>0)&&_(T)})}s(A),Ue(A,_=>t(x,_),()=>e(x)),u($e,A),kt()}const Rt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Kt($e){if(!$e)return 0;let le=0;for(const I of $e)(I.codePointAt(0)??0)>=11904&&le++;const P=$e.length-le;return Math.round(le*.6+P*.25)}function cs($e,le){let P=0,I=0,J=0;for(const C of $e)if(C.kind==="user")P+=Kt(String(C.text??""));else if(C.kind==="assistant")for(const M of C.blocks??[])M.type==="text"?I+=Kt(String(M.text??"")):M.type==="tool"&&(J+=Kt(String(M.args??"")));const Y=P+I+J,B=Math.max(0,le-Y),y=[{key:"用户",tokens:P,color:Rt.user},{key:"助手",tokens:I,color:Rt.assistant},{key:"工具调用",tokens:J,color:Rt.tool}];return B>0&&y.push({key:"其他",tokens:B,color:Rt.other}),{segments:y.filter(C=>C.tokens>0),accounted:Y,used:le}}var vs=h('<span class="seg svelte-4bdpxt"></span>'),ds=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),ps=h('<div class="bar svelte-4bdpxt" aria-hidden="true"></div>'),fs=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($e,le){wt(le,!1);const P=()=>Me(Nt,"$feeds",I),[I,J]=At(),Y=o(),B=o(),y=o(),C=o(),M=o(),F=o(),ke=o(),f=o(),x=o(),b=o(),K=o(),A=o(),G=o(),w=o(),oe=o(),T=o();let _=bt(le,"sessionId",8),v=o({}),S=o(!1),V=o(),Z,ge=o(),L=o(-1),H=o();async function z(m){try{t(v,await he.context(m))}catch{}}Wt(()=>{clearTimeout(e(H)),clearTimeout(Z)});const d=10,ee=2*Math.PI*d;function Ie(m){return m>=1e6?(m/1e6).toFixed(1)+"M":m>=1e3?(m/1e3).toFixed(1)+"k":String(m)}function _e(m){return m==null?"—":`$${m.toFixed(3)}`}function ce(){clearTimeout(Z),t(S,!0)}function R(){clearTimeout(Z),Z=setTimeout(()=>t(S,!1),180)}function re(m){m.key==="Escape"&&t(S,!1)}function Q(m){e(S)&&e(V)&&!e(V).contains(m.target)&&t(S,!1)}k(()=>(ye(_()),e(ge)),()=>{_()!==e(ge)&&(t(ge,_()),z(_()))}),k(()=>(P(),ye(_())),()=>{var m;t(Y,((m=P()[_()])==null?void 0:m.lastSeq)??0)}),k(()=>(e(Y),e(L),e(H),ye(_())),()=>{e(Y)!==e(L)&&(t(L,e(Y)),clearTimeout(e(H)),t(H,setTimeout(()=>void z(_()),1e3)))}),k(()=>e(v),()=>{var m,N;t(B,typeof((N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.input)=="number"?e(v).tokens.input:0)}),k(()=>e(v),()=>{var m,N;t(y,typeof((N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.output)=="number"?e(v).tokens.output:0)}),k(()=>(e(v),e(B),e(y)),()=>{var m,N;t(C,typeof((N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.used)=="number"?e(v).tokens.used:e(B)+e(y))}),k(()=>e(v),()=>{var m,N;t(M,typeof((N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.max)=="number"?e(v).tokens.max:void 0)}),k(()=>(e(C),e(M)),()=>{t(F,e(C)>0&&e(M)?Math.min(100,e(C)/e(M)*100):0)}),k(()=>e(F),()=>{t(ke,e(F)>=90?"var(--err)":e(F)>=70?"var(--warn)":"var(--ok)")}),k(()=>e(v),()=>{var m;t(f,(m=e(v))!=null&&m.model?String(e(v).model).split("/").pop():void 0)}),k(()=>e(v),()=>{var m;t(x,typeof((m=e(v))==null?void 0:m.cost)=="number"?e(v).cost:void 0)}),k(()=>e(v),()=>{var m,N,ve;t(b,typeof((ve=(N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.cache)==null?void 0:ve.read)=="number"?e(v).tokens.cache.read:0)}),k(()=>e(v),()=>{var m,N,ve;t(K,typeof((ve=(N=(m=e(v))==null?void 0:m.tokens)==null?void 0:N.cache)==null?void 0:ve.write)=="number"?e(v).tokens.cache.write:0)}),k(()=>(e(B),e(b)),()=>{t(A,e(B)+e(b)>0?Math.round(e(b)/(e(B)+e(b))*100):void 0)}),k(()=>(P(),ye(_())),()=>{t(G,P()[_()])}),k(()=>e(G),()=>{t(w,Gt(e(G)).filter(m=>m.kind==="user"||m.kind==="assistant").length)}),k(()=>e(G),()=>{t(oe,Gt(e(G)))}),k(()=>(e(oe),e(C)),()=>{t(T,cs(e(oe),e(C)))}),It(),gt();var de=gs();$("keydown",ht,re),$("click",ht,Q);var p=n(de),te=n(p),ae=n(te);ie(ae,"r",d);var me=r(ae);ie(me,"r",d),s(te);var je=r(te,2),Je=n(je,!0);Mt(),s(je),s(p);var Ce=r(p,2);{var pe=m=>{var N=bs(),ve=n(N),xe=r(n(ve),2),He=n(xe);s(xe),s(ve);var rt=r(ve,2);{var st=a=>{var g=us(),O=Oe(g);Ae(O,5,()=>(e(T),l(()=>e(T).segments)),Dt,(U,ue)=>{var Re=vs();j(()=>Ft(Re,(e(ue),e(T),l(()=>`width:${e(ue).tokens/(e(T).used||1)*100}%; background:${e(ue).color}`)))),u(U,Re)}),s(O);var X=r(O,2);Ae(X,5,()=>(e(T),l(()=>e(T).segments)),Dt,(U,ue)=>{var Re=ds(),yt=n(Re),De=r(yt);s(Re),j(be=>{Ft(yt,(e(ue),l(()=>`background:${e(ue).color}`))),q(De,`${e(ue),l(()=>e(ue).key)??""} ${be??""}%`)},[()=>(e(C),e(ue),l(()=>e(C)>0?(e(ue).tokens/e(C)*100).toFixed(1):"0"))]),u(U,Re)}),s(X),u(a,g)},Ne=a=>{var g=ps();u(a,g)};D(rt,a=>{e(T),l(()=>e(T).segments.length>0)?a(st):a(Ne,-1)})}var We=r(rt,2),Ye=n(We);{var qe=a=>{var g=fs(),O=r(n(g)),X=n(O);s(O),s(g),j(()=>q(X,`${e(A)??""}%`)),u(a,g)};D(Ye,a=>{e(A)!=null&&a(qe)})}var Te=r(Ye,2);{var ct=a=>{var g=ms(),O=r(n(g)),X=n(O,!0);s(O),s(g),j(()=>q(X,e(w))),u(a,g)};D(Te,a=>{e(w)>0&&a(ct)})}var vt=r(Te,2);{var xt=a=>{var g=hs(),O=r(n(g)),X=n(O,!0);s(O),s(g),j(()=>q(X,e(f))),u(a,g)};D(vt,a=>{e(f)&&a(xt)})}var St=r(vt,2);{var c=a=>{var g=_s(),O=r(n(g)),X=n(O,!0);s(O),s(g),j(U=>q(X,U),[()=>(e(x),l(()=>_e(e(x))))]),u(a,g)};D(St,a=>{e(x)!=null&&a(c)})}s(We),s(N),j((a,g)=>q(He,`${a??""} / ${g??""}`),[()=>(e(C),l(()=>Ie(e(C)))),()=>(e(M),l(()=>Ie(e(M))))]),u(m,N)};D(Ce,m=>{e(S)&&e(M)&&m(pe)})}s(de),Ue(de,m=>t(V,m),()=>e(V)),j((m,N,ve)=>{ie(p,"aria-label",m),ie(p,"aria-expanded",e(S)),ie(me,"stroke",e(ke)),ie(me,"stroke-dasharray",N),q(Je,ve)},[()=>(e(F),l(()=>`上下文占用 ${e(F).toFixed(0)}%`)),()=>(e(F),l(()=>`${Math.max(ee*e(F)/100,e(F)>0?1.5:0)} ${ee}`)),()=>(e(F),l(()=>e(F).toFixed(0)))]),$("click",p,()=>t(S,!e(S))),$("mouseenter",de,ce),$("mouseleave",de,R),u($e,de),kt(),J()}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($e,le){wt(le,!1);const P=()=>Me(Ut,"$composerDraft",y),I=()=>Me(Nt,"$feeds",y),J=()=>Me(la,"$can",y),Y=()=>Me(qa,"$connection",y),B=()=>Me(ba,"$backendName",y),[y,C]=At(),M=o(),F=o(),ke=o();let f=bt(le,"sessionId",8),x=o(""),b=o(),K=o(!1),A=o(""),G=o(!1),w=o(),oe=o([]),T=o([]),_=o(0),v=0,S,V=!1;async function Z(){if(!V){V=!0;try{await he.abort(f())}catch{}finally{V=!1}}}function ge(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function L(c){const a=new FileReader;a.onload=()=>{var Re;const g=a.result,O=g.indexOf(","),X=g.slice(0,O),U=g.slice(O+1),ue=((Re=X.match(/data:(.*?);/))==null?void 0:Re[1])??c.type;t(oe,[...e(oe),{data:U,mimeType:ue,preview:g}])},a.readAsDataURL(c)}function H(c){const a=c.target;if(a.files){for(const g of a.files)L(g);a.value=""}}function z(c){if(!J()("imageInput")||!c.clipboardData)return;const a=[...c.clipboardData.items].filter(g=>g.type.startsWith("image/"));if(a.length){c.preventDefault();for(const g of a){const O=g.getAsFile();O&&L(O)}}}function d(c){t(oe,e(oe).filter((a,g)=>g!==c))}function ee(){if(!e(b))return null;const c=e(b).selectionStart,g=e(x).slice(0,c).match(/(^|[\s])@([^\s]*)$/);return g?{token:g[2],start:c-g[2].length-1}:null}function Ie(){const c=ee();if(!c){t(T,[]),clearTimeout(S);return}v=c.start,t(_,0),clearTimeout(S);const a=c.token;S=setTimeout(async()=>{try{t(T,await he.files(f(),a))}catch{t(T,[])}},150)}function _e(c){const a=e(b).selectionStart,g=e(x).slice(0,v),O=e(x).slice(a),X=`@${c} `;t(x,g+X+O),t(T,[]),zt().then(()=>{const U=g.length+X.length;Et(b,e(b).selectionStart=Et(b,e(b).selectionEnd=U)),e(b).focus(),re()})}async function ce(){var X;const c=e(x).trim();if(!c&&e(oe).length===0||e(K))return;if(Y()!=="connected"){t(A,"Disconnected — reconnecting…");return}const a=ge(),g=e(oe).map(({data:U,mimeType:ue})=>({data:U,mimeType:ue}));t(K,!0),t(A,""),ga({kind:"user",sessionId:f(),text:c,ts:Date.now(),id:`user:${a}`}),t(x,"");const O=[...e(oe)];t(oe,[]),re();try{await he.sendMessage({sessionId:f(),text:c,clientId:a,...g.length?{images:g}:{}})}catch(U){t(A,`Send failed: ${U.message}`),wa(`user:${a}`),t(x,c),t(oe,O)}finally{t(K,!1),(X=e(b))==null||X.focus()}}function R(c){if(e(T).length>0){if(c.key==="ArrowDown"){c.preventDefault(),t(_,Math.min(e(_)+1,e(T).length-1));return}if(c.key==="ArrowUp"){c.preventDefault(),t(_,Math.max(e(_)-1,0));return}if(c.key==="Enter"||c.key==="Tab"){c.preventDefault(),_e(e(T)[e(_)]);return}if(c.key==="Escape"){c.preventDefault(),t(T,[]);return}}c.key!=="Enter"||c.shiftKey||c.isComposing||c.keyCode===229||(c.preventDefault(),ce())}function re(){e(b)&&(Et(b,e(b).style.height="auto"),Et(b,e(b).style.height=Math.min(e(b).scrollHeight,140)+"px"))}Wt(()=>clearTimeout(S)),k(()=>(P(),e(b)),()=>{const c=P();c&&(t(x,c.text),Ut.set(void 0),zt().then(()=>{var a;return(a=e(b))==null?void 0:a.focus()}),re())}),k(()=>e(x),()=>{va.set(!e(x).trim())}),k(()=>e(x),()=>{t(M,e(x).trim().length>0)}),k(()=>(I(),ye(f())),()=>{t(F,(()=>{const c=I()[f()];if(!c||c.order.length===0)return!1;const a=c.byId[c.order[c.order.length-1]];return(a==null?void 0:a.kind)==="thinking"||(a==null?void 0:a.kind)==="streaming"||(a==null?void 0:a.kind)==="think-stream"})())}),k(()=>(e(F),e(M),e(K)),()=>{t(ke,e(F)&&!e(M)&&!e(K))}),It(),gt();var Q=Ts(),de=n(Q),p=n(de);{var te=c=>{var a=ks(),g=n(a,!0);s(a),j(()=>q(g,e(A))),u(c,a)};D(p,c=>{e(A)&&c(te)})}var ae=r(p,2);let me;var je=n(ae);{var Je=c=>{var a=ys();Ae(a,5,()=>e(T),Dt,(g,O,X)=>{var U=xs();let ue;var Re=n(U,!0);s(U),j(()=>{ue=at(U,1,"mention-row svelte-60fagq",null,ue,{active:X===e(_)}),ie(U,"aria-selected",X===e(_)),q(Re,e(O))}),$("mousedown",U,Ta(()=>_e(e(O)))),u(g,U)}),s(a),u(c,a)};D(je,c=>{e(T),l(()=>e(T).length>0)&&c(Je)})}var Ce=r(je,2);{var pe=c=>{var a=Is();Ae(a,5,()=>e(oe),Dt,(g,O,X)=>{var U=$s(),ue=n(U),Re=r(ue,2);s(U),j(()=>ie(ue,"src",(e(O),l(()=>e(O).preview)))),$("click",Re,()=>d(X)),u(g,U)}),s(a),u(c,a)};D(Ce,c=>{e(oe),l(()=>e(oe).length>0)&&c(pe)})}var m=r(Ce,2);Ia(m),ie(m,"rows",1),Ue(m,c=>t(b,c),()=>e(b));var N=r(m,2),ve=n(N);{var xe=c=>{var a=Ss(),g=Oe(a),O=r(g,2);Ue(O,X=>t(w,X),()=>e(w)),$("click",g,()=>e(w).click()),$("change",O,H),u(c,a)},He=Pt(()=>(J(),l(()=>J()("imageInput"))));D(ve,c=>{e(He)&&c(xe)})}var rt=r(ve,2);{var st=c=>{var a=Cs(),g=Oe(a);Va(g,{});var O=r(g,2);es(O,{}),u(c,a)},Ne=Pt(()=>(J(),l(()=>J()("catalog"))));D(rt,c=>{e(Ne)&&c(st)})}var We=r(rt,2);{var Ye=c=>{ls(c,{get sessionId(){return f()}})},qe=Pt(()=>(J(),l(()=>J()("sessionControls"))));D(We,c=>{e(qe)&&c(Ye)})}var Te=r(We,2);ws(Te,{get sessionId(){return f()}});var ct=r(Te,2),vt=r(ct,6);{var xt=c=>{var a=Es();$("click",a,Z),u(c,a)},St=c=>{var a=qs(),g=n(a);{var O=U=>{var ue=Sa("…");u(U,ue)},X=U=>{var ue=Ms();u(U,ue)};D(g,U=>{e(K)?U(O):U(X,-1)})}s(a),j(U=>a.disabled=U,[()=>(e(K),e(x),e(oe),Y(),l(()=>e(K)||!e(x).trim()&&e(oe).length===0||Y()!=="connected"))]),$("click",a,ce),u(c,a)};D(vt,c=>{e(ke)?c(xt):c(St,-1)})}s(N),s(ae),s(de),s(Q),j(()=>{me=at(ae,1,"box svelte-60fagq",null,me,{focused:e(G),"has-text":e(M)}),ie(m,"placeholder",Y()==="connected"?`给 ${B()} 留言…`:"连接断开…")}),Ea(m,()=>e(x),c=>t(x,c)),$("keydown",m,R),$("input",m,()=>{re(),Ie()}),$("paste",m,z),$("focus",m,()=>t(G,!0)),$("blur",m,()=>t(G,!1)),$("click",m,Ie),$("click",ct,()=>Ma.set(!0)),u($e,Q),kt(),C()}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($e,le){wt(le,!1);const P=()=>Me(ka,"$backends",B),I=()=>Me(Lt,"$sessionList",B),J=()=>Me(ja,"$activeWorkspace",B),Y=()=>Me(ra,"$workspaces",B),[B,y]=At(),C=o(),M=o(),F=o(),ke=o(),f=o(),x=o();let b=bt(le,"activeId",8,void 0),K=o(!1),A=o(!1);function G(p){const te=p.split(/[\s\-_:./]+/).filter(Boolean);return te.length>=2?(te[0][0]+te[1][0]).toUpperCase():p.slice(0,2).toUpperCase()}function w(p){return G((p==null?void 0:p.name)||(p==null?void 0:p.id)||"OC")}function oe(p){return p==="online"||p==="connected"?"online":p==="connecting"||p==="reconnecting"?"connecting":p==="offline"?"offline":"online"}function T(){t(K,!e(K))}function _(p){t(K,!1),Ht(`/${p}/`)}async function v(){var te;if(e(A))return;const p=J()||((te=Y()[0])==null?void 0:te.directory)||"";t(A,!0);try{await ya(e(C));const ae=await he.createSession({directory:p});Lt.set(await he.sessions()),ra.set(await he.workspaces()),t(K,!1),Ht(`/${ae.id}/`)}catch(ae){alert(`Create session failed: ${ae.message}`)}finally{t(A,!1)}}function S(p){p.key==="Escape"&&t(K,!1)}function V(p){const te=Date.now()-p,ae=Math.floor(te/6e4);if(ae<1)return"now";if(ae<60)return`${ae}m`;const me=Math.floor(ae/60);return me<24?`${me}h`:`${Math.floor(me/24)}d`}function Z(p){return(p.includes("_")?p.slice(p.indexOf("_")+1):p).slice(-8)}k(()=>P(),()=>{var p,te,ae;t(C,((p=P())==null?void 0:p.activeId)??((ae=(te=P())==null?void 0:te.backends[0])==null?void 0:ae.id)??"opencode")}),k(()=>(P(),e(C)),()=>{var p;t(M,(p=P())==null?void 0:p.backends.find(te=>te.id===e(C)))}),k(()=>e(C),()=>{t(F,xa(e(C)))}),k(()=>(I(),e(C)),()=>{t(ke,I().filter(p=>p.backendId===e(C)||!p.backendId&&e(C)==="opencode").sort((p,te)=>te.lastActiveAt-p.lastActiveAt))}),k(()=>(I(),ye(b())),()=>{t(f,I().find(p=>p.id===b()))}),k(()=>e(f),()=>{var p;t(x,((p=e(f))==null?void 0:p.title)||"Untitled session")}),It(),gt();var ge=Rs();$("keydown",ht,S);var L=n(ge),H=n(L),z=n(H,!0);s(H);var d=r(H,2),ee=n(d),Ie=n(ee,!0);s(ee),s(d);var _e=r(d,2),ce=n(_e,!0);s(_e);var R=r(_e,2),re=n(R);Ve(re,{name:"caret-down",size:11}),s(R),s(L);var Q=r(L,2);{var de=p=>{var te=As(),ae=n(te);Ae(ae,5,()=>e(ke),Ce=>Ce.id,(Ce,pe)=>{var m=Bs();let N;var ve=n(m),xe=r(ve,2),He=n(xe),rt=n(He,!0);s(He);var st=r(He,2),Ne=n(st);s(st),s(xe);var We=r(xe,2);{var Ye=qe=>{var Te=Ds();u(qe,Te)};D(We,qe=>{e(pe),ye(b()),l(()=>e(pe).id===b())&&qe(Ye)})}s(m),j((qe,Te)=>{N=at(m,1,"row svelte-rgafhj",null,N,{active:e(pe).id===b()}),at(ve,1,`dot ${e(pe),ye(b()),l(()=>e(pe).id===b()?"active":"")??""}`,"svelte-rgafhj"),q(rt,(e(pe),l(()=>e(pe).title||"Untitled session"))),q(Ne,`${qe??""} · ${Te??""}`)},[()=>(e(pe),l(()=>Z(e(pe).id))),()=>(e(pe),l(()=>V(e(pe).lastActiveAt)))]),$("click",m,()=>_(e(pe).id)),u(Ce,m)},Ce=>{var pe=Os(),m=n(pe);s(pe),j(()=>q(m,`No sessions on ${e(M),l(()=>{var N,ve;return((N=e(M))==null?void 0:N.name)??((ve=e(M))==null?void 0:ve.id)??"this agent"})??""}.`)),u(Ce,pe)}),s(ae);var me=r(ae,2),je=n(me),Je=n(je);s(je),s(me),s(te),j(()=>{je.disabled=e(A),q(Je,`+ New session on ${e(M),l(()=>{var Ce,pe;return((Ce=e(M))==null?void 0:Ce.name)??((pe=e(M))==null?void 0:pe.id)??"agent"})??""}`)}),$("click",je,v),u(p,te)};D(Q,p=>{e(K)&&p(de)})}s(ge),j((p,te,ae)=>{ie(L,"aria-expanded",e(K)),Ft(H,`background:${ye(aa),e(F),l(()=>aa[e(F)])??""}; color:${ye(sa),e(F),l(()=>sa[e(F)])??""}; border-color:${ye(na),e(F),l(()=>na[e(F)])??""}`),q(z,p),at(d,1,`status-dot ${te??""}`,"svelte-rgafhj"),q(Ie,ae),q(ce,e(x))},[()=>(e(M),l(()=>w(e(M)))),()=>(e(M),l(()=>{var p;return oe((p=e(M))==null?void 0:p.status)})),()=>(e(M),l(()=>{var p;return oe((p=e(M))==null?void 0:p.status)}))]),$("click",L,T),u($e,ge),kt(),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),Gs=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>'),Vs=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 vn($e,le){wt(le,!1);const P=()=>Me(Nt,"$feeds",Y),I=()=>Me(Lt,"$sessionList",Y),J=()=>Me(la,"$can",Y),[Y,B]=At(),y=o(),C=o(),M=o(),F=o(),ke=o(),f=o(),x=o(),b=o(),K=o(),A=o(),G=o();let w=bt(le,"sessionId",8),oe=bt(le,"onJump",8,()=>{});const T="ocrc.planHud.v3",_=5,v=16,S=2*Math.PI*v;let V=o(!1);try{t(V,window.matchMedia("(min-width: 821px)").matches)}catch{}const Z=e(V)?"ocrc.planHud.dt3":T;function ge(){if(typeof localStorage>"u")return{};try{const a=JSON.parse(localStorage.getItem(Z)??"{}")??{};return{dismissed:a.dismissed,expanded:a.expanded}}catch{return{}}}let L=o(ge()),H=o(e(L).expanded??e(V));function z(a){if(t(L,{...e(L),...a}),!(typeof localStorage>"u"))try{localStorage.setItem(Z,JSON.stringify(e(L)))}catch{}}let d=o({total:0,done:0,items:[]}),ee=o();async function Ie(a){try{const g=await he.todo(a);if(a!==w())return;t(ee,a),t(d,Da(g))}catch{}}let _e=o(),ce=o(0),R=o(-1),re=o();Wt(()=>clearTimeout(e(re)));let Q=o([]),de=o(),p=!1;async function te(a){if(!p){p=!0;try{const g=await he.subagents(a);if(a!==w())return;t(Q,[...g.subagents??[]].sort((O,X)=>Number(X.busy??!1)-Number(O.busy??!1))),t(de,a)}catch{t(Q,[])}finally{p=!1}}}const ae=a=>`ocrc.subparent.${a}`;let me=o();function je(a){try{t(me,sessionStorage.getItem(ae(a))??void 0)}catch{t(me,void 0)}}je(w());function Je(a){try{sessionStorage.setItem(ae(a.id),w())}catch{}t(xe,!1),Aa({id:`sub:${a.id}`,kind:"subagent",title:a.title||"…"+a.id.slice(-6),childId:a.id}),Vt.set(!0)}function Ce(){const a=e(me);t(me,void 0),a&&oe()(a)}let pe=o(),m=o(!1),N=o(!1),ve=o(!1),xe=o(!1);function He(){t(H,!e(H)),z({expanded:e(H)})}function rt(){z({dismissed:[...e(L).dismissed??[],w()].slice(-20)}),t(xe,!1)}function st(){z({dismissed:(e(L).dismissed??[]).filter(a=>a!==w())}),t(H,!0),z({expanded:e(H)})}function Ne(){t(xe,!1),Oa("tasks"),Vt.set(!0)}let We=o(),Ye=o(),qe=o(),Te=o();function ct(a){var O,X,U,ue;const g=a.target;if(e(xe)){if((O=e(Ye))!=null&&O.contains(g)||(X=e(We))!=null&&X.contains(g))return;t(xe,!1)}e(H)&&((U=e(qe))!=null&&U.contains(g)||(ue=e(Te))!=null&&ue.contains(g)||(t(H,!1),z({expanded:!1})))}k(()=>(ye(w()),e(_e)),()=>{w()!==e(_e)&&(t(_e,w()),Ie(w()))}),k(()=>(P(),ye(w())),()=>{var a;t(y,((a=P()[w()])==null?void 0:a.lastSeq)??0)}),k(()=>(e(y),e(R),e(re),e(ce)),()=>{e(y)!==e(R)&&(t(R,e(y)),clearTimeout(e(re)),t(re,setTimeout(()=>t(ce,e(ce)+1),1e3)))}),k(()=>(e(ce),ye(w())),()=>{e(ce)&&(Ie(w()),te(w()))}),k(()=>(I(),ye(w())),()=>{t(C,I().find(a=>a.id===w()))}),k(()=>e(C),()=>{var a;t(M,((a=e(C))==null?void 0:a.title)??"")}),k(()=>e(d),()=>{t(F,e(d).items.filter(a=>a.status==="done"))}),k(()=>e(d),()=>{t(ke,e(d).items.filter(a=>a.status==="running"))}),k(()=>e(d),()=>{t(f,e(d).items.filter(a=>a.status==="pending"))}),k(()=>e(f),()=>{t(x,Math.max(0,e(f).length-_))}),k(()=>e(d),()=>{t(b,e(d).total?e(d).done/e(d).total:0)}),k(()=>(e(L),ye(w())),()=>{var a;t(K,((a=e(L).dismissed)==null?void 0:a.includes(w()))??!1)}),k(()=>e(Q),()=>{t(A,e(Q).filter(a=>a.busy))}),k(()=>e(Q),()=>{t(G,e(Q).filter(a=>!a.busy))}),k(()=>(e(H),ye(w()),e(de)),()=>{e(H)&&w()&&e(de)!==w()&&te(w())}),k(()=>ye(w()),()=>{w()&&je(w())}),k(()=>(ye(w()),e(pe)),()=>{w()!==e(pe)&&(t(pe,w()),t(m,!1),t(N,!1),t(ve,!1),t(xe,!1))}),It(),gt();var vt=jt();$("pointerdown",ht,ct);var xt=Oe(vt);{var St=a=>{var g=cn(),O=Oe(g);{var X=De=>{var be=Ls(),Fe=r(n(be),2),Xe=n(Fe,!0),Ze=r(Xe,2,!0);s(Fe),s(be),j(()=>{q(Xe,(e(d),l(()=>e(d).done))),q(Ze,(e(d),l(()=>e(d).total)))}),$("click",be,st),u(De,be)},U=De=>{var be=sn(),Fe=Oe(be);{var Xe=W=>{var fe=zs();u(W,fe)};D(Fe,W=>{e(V)||W(Xe)})}var Ze=r(Fe,2),it=n(Ze),dt=r(n(it),2),nt=n(dt,!0);s(dt);var lt=r(dt,2);Ue(lt,W=>t(We,W),()=>e(We));var ut=r(lt,2);s(it);var Qe=r(it,2);{var Ct=W=>{var fe=Hs(),ne=n(fe),Se=r(ne,2);{var Be=Pe=>{var ot=Fs();$("click",ot,rt),u(Pe,ot)};D(Se,Pe=>{e(V)||Pe(Be)})}s(fe),Ue(fe,Pe=>t(Ye,Pe),()=>e(Ye)),$("click",ne,Ne),u(W,fe)};D(Qe,W=>{e(xe)&&W(Ct)})}var qt=r(Qe,2),i=n(qt);{var E=W=>{var fe=Ns(),ne=r(n(fe),2),Se=n(ne);s(ne),s(fe),j(Be=>q(Se,`返回父会话 …${Be??""}`),[()=>(e(me),l(()=>e(me).slice(-8)))]),$("click",fe,Ce),u(W,fe)};D(i,W=>{e(me)&&W(E)})}var se=r(i,2),Ke=n(se);s(se);var Ee=r(se,2);{var et=W=>{var fe=Ks(),ne=Oe(fe),Se=n(ne);let Be;var Pe=r(Se,2),ot=n(Pe);s(Pe),s(ne);var Le=r(ne,2);{var pt=Ge=>{var ft=jt(),$t=Oe(ft);Ae($t,1,()=>e(F),tt=>tt.text,(tt,we)=>{var ze=Ws(),mt=r(n(ze)),Bt=n(mt,!0);s(mt),s(ze),j(()=>q(Bt,(e(we),l(()=>e(we).text)))),u(tt,ze)}),u(Ge,ft)};D(Le,Ge=>{e(m)&&Ge(pt)})}j(()=>{ie(ne,"aria-expanded",e(m)),Be=at(Se,0,"caret svelte-w3h0m4",null,Be,{open:e(m)}),q(ot,`已完成 ${e(F),l(()=>e(F).length)??""}`)}),$("click",ne,()=>t(m,!e(m))),u(W,fe)};D(Ee,W=>{e(F),l(()=>e(F).length)&&W(et)})}var Tt=r(Ee,2);Ae(Tt,1,()=>e(ke),W=>W.text,(W,fe)=>{var ne=Gs(),Se=r(n(ne)),Be=n(Se,!0);s(Se),s(ne),j(()=>q(Be,(e(fe),l(()=>e(fe).text)))),u(W,ne)});var Yt=r(Tt,2);Ae(Yt,1,()=>(e(f),l(()=>e(f).slice(0,_))),W=>W.text,(W,fe)=>{var ne=Us(),Se=r(n(ne)),Be=n(Se,!0);s(Se),s(ne),j(()=>q(Be,(e(fe),l(()=>e(fe).text)))),u(W,ne)});var Xt=r(Yt,2);{var da=W=>{var fe=Js(),ne=Oe(fe),Se=n(ne);let Be;var Pe=r(Se,2),ot=n(Pe);s(Pe),s(ne);var Le=r(ne,2);{var pt=Ge=>{var ft=jt(),$t=Oe(ft);Ae($t,1,()=>(e(f),l(()=>e(f).slice(_))),tt=>tt.text,(tt,we)=>{var ze=Vs(),mt=r(n(ze)),Bt=n(mt,!0);s(mt),s(ze),j(()=>q(Bt,(e(we),l(()=>e(we).text)))),u(tt,ze)}),u(Ge,ft)};D(Le,Ge=>{e(N)&&Ge(pt)})}j(()=>{ie(ne,"aria-expanded",e(N)),Be=at(Se,0,"caret svelte-w3h0m4",null,Be,{open:e(N)}),q(ot,`待处理 ${e(x)??""}`)}),$("click",ne,()=>t(N,!e(N))),u(W,fe)};D(Xt,W=>{e(x)>0&&W(da)})}var Zt=r(Xt,2);{var ua=W=>{var fe=Zs(),ne=Oe(fe),Se=n(ne),Be=n(Se);s(Se),s(ne);var Pe=r(ne,2);Ae(Pe,1,()=>e(A),ot=>ot.id,(ot,Le)=>{var pt=Xs(),Ge=r(n(pt),2);{var ft=we=>{var ze=Ys(),mt=n(ze);s(ze),j(()=>q(mt,`${e(Le),l(()=>e(Le).done)??""}/${e(Le),l(()=>e(Le).total)??""}`)),u(we,ze)};D(Ge,we=>{e(Le),l(()=>e(Le).total>0)&&we(ft)})}var $t=r(Ge,2),tt=n($t,!0);s($t),Mt(2),s(pt),j(we=>q(tt,we),[()=>(e(Le),l(()=>e(Le).title||"…"+e(Le).id.slice(-6)))]),$("click",pt,()=>Je(e(Le))),u(ot,pt)}),j(()=>q(Be,`子代理 · 运行中 ${e(A),l(()=>e(A).length)??""}`)),u(W,fe)};D(Zt,W=>{e(A),l(()=>e(A).length)&&W(ua)})}var pa=r(Zt,2);{var fa=W=>{var fe=an(),ne=Oe(fe),Se=n(ne);let Be;var Pe=r(Se,2),ot=n(Pe);s(Pe),s(ne);var Le=r(ne,2);{var pt=Ge=>{var ft=jt(),$t=Oe(ft);Ae($t,1,()=>e(G),tt=>tt.id,(tt,we)=>{var ze=tn(),mt=n(ze);{var Bt=_t=>{var Ot=Qs();u(_t,Ot)};D(mt,_t=>{e(we),l(()=>e(we).total>0&&e(we).done>=e(we).total)&&_t(Bt)})}var Qt=r(mt,2);{var ma=_t=>{var Ot=en(),_a=n(Ot);s(Ot),j(()=>q(_a,`${e(we),l(()=>e(we).done)??""}/${e(we),l(()=>e(we).total)??""}`)),u(_t,Ot)};D(Qt,_t=>{e(we),l(()=>e(we).total>0)&&_t(ma)})}var ea=r(Qt,2),ha=n(ea,!0);s(ea),Mt(2),s(ze),j(_t=>q(ha,_t),[()=>(e(we),l(()=>e(we).title||"…"+e(we).id.slice(-6)))]),$("click",ze,()=>Je(e(we))),u(tt,ze)}),u(Ge,ft)};D(Le,Ge=>{e(ve)&&Ge(pt)})}j(()=>{ie(ne,"aria-expanded",e(ve)),Be=at(Se,0,"caret svelte-w3h0m4",null,Be,{open:e(ve)}),q(ot,`子代理 · 已结束 ${e(G),l(()=>e(G).length)??""}`)}),$("click",ne,()=>t(ve,!e(ve))),u(W,fe)};D(pa,W=>{e(G),l(()=>e(G).length)&&W(fa)})}s(qt),s(Ze),Ue(Ze,W=>t(qe,W),()=>e(qe)),j(W=>{q(nt,W),q(Ke,`任务 ${e(d),l(()=>e(d).done)??""}/${e(d),l(()=>e(d).total)??""}`)},[()=>(e(M),ye(w()),l(()=>e(M)||"…"+w().slice(-8)))]),$("click",lt,Ba(()=>t(xe,!e(xe)))),$("click",ut,He),u(De,be)};D(O,De=>{e(K)&&!e(V)?De(X):e(H)&&De(U,1)})}var ue=r(O,2);{var Re=De=>{var be=on(),Fe=r(n(be),2),Xe=n(Fe,!0),Ze=r(Xe,2,!0);s(Fe);var it=r(Fe,2);{var dt=nt=>{var lt=nn(),ut=n(lt,!0);s(lt),j(()=>q(ut,(e(A),l(()=>e(A).length)))),u(nt,lt)};D(it,nt=>{e(A),l(()=>e(A).length>0)&&nt(dt)})}Mt(2),s(be),Ue(be,nt=>t(Te,nt),()=>e(Te)),j(()=>{ie(be,"aria-label",(e(d),l(()=>`展开计划 ${e(d).done}/${e(d).total}`))),q(Xe,(e(d),l(()=>e(d).done))),q(Ze,(e(d),l(()=>e(d).total)))}),$("click",be,He),u(De,be)},yt=De=>{var be=ln(),Fe=n(be),Xe=n(Fe);ie(Xe,"r",v);var Ze=r(Xe);ie(Ze,"r",v),s(Fe);var it=r(Fe,2),dt=n(it,!0),nt=r(dt,2,!0);s(it);var lt=r(it,2);{var ut=Qe=>{var Ct=rn(),qt=n(Ct,!0);s(Ct),j(()=>q(qt,(e(A),l(()=>e(A).length)))),u(Qe,Ct)};D(lt,Qe=>{e(A),l(()=>e(A).length>0)&&Qe(ut)})}s(be),Ue(be,Qe=>t(Te,Qe),()=>e(Te)),j(Qe=>{ie(be,"aria-label",(e(d),e(H),l(()=>`计划 ${e(d).done}/${e(d).total} — ${e(H)?"收起":"展开"}`))),ie(be,"aria-expanded",e(H)),ie(Ze,"stroke-dasharray",Qe),q(dt,(e(d),l(()=>e(d).done))),q(nt,(e(d),l(()=>e(d).total)))},[()=>(e(b),l(()=>`${Math.max(S*e(b),S*.02)} ${S}`))]),$("click",be,He),u(De,be)};D(ue,De=>{e(V)&&!e(H)?De(Re):!e(K)&&!(e(V)&&!e(H))&&De(yt,1)})}u(a,g)},c=Pt(()=>(e(ee),ye(w()),e(d),e(Q),e(me),J(),l(()=>e(ee)===w()&&(e(d).total>0||e(Q).length>0||e(me))&&J()("todos"))));D(xt,a=>{e(c)&&a(St)})}u($e,vt),kt(),B()}var dn=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>'),pn=h('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span>'),fn=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></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($e,le){wt(le,!1);const P=()=>Me(Ra,"$page",M),I=()=>Me(Nt,"$feeds",M),J=()=>Me(Lt,"$sessionList",M),Y=()=>Me(va,"$composerEmpty",M),B=()=>Me(Pa,"$sessionBooting",M),y=()=>Me(ia,"$leftPanelOpen",M),C=()=>Me(za,"$feedResyncing",M),[M,F]=At(),ke=o(),f=o(),x=o(),b=o(),K=o(),A=o(),G=o(),w=o(),oe=o();let T=o(),_=o(),v=o(),S,V=o(""),Z,ge,L=o(0),H=o(0),z=o(),d=o(!0);function ee(){e(T)&&Et(T,e(T).scrollTop=e(T).scrollHeight)}function Ie(){e(T)&&t(d,e(T).scrollHeight-e(T).scrollTop-e(T).clientHeight<80)}const _e=80,ce=50;let R=o(_e),re=o(0),Q=o(!0),de=o(!1),p=o("");async function te(){if(e(de)||!e(f))return;if(e(b).length>e(R)){t(R,e(R)+_e);return}if(!e(Q))return;t(de,!0);const i=e(T),E=i?{h:i.scrollHeight,top:i.scrollTop}:null;try{const se=await he.history(e(f),{limit:ce,offset:e(re)});(se.cards??[]).length===0?t(Q,!1):($a(e(f),se.cards),t(re,e(re)+ce),t(R,e(R)+_e),se.hasMore===!1&&t(Q,!1),E&&i&&(await zt(),i.scrollTop=i.scrollHeight-E.h+E.top))}catch(se){console.warn("[page] loadEarlier failed",se)}finally{t(de,!1)}}let ae=o("");function me(i){if(i<60)return`${i}s`;const E=Math.floor(i/60),se=i%60;return se===0?`${E}m`:`${E}m ${se}s`}function je(){We()}async function Je(i){if(!(!e(f)||!i))try{await he.revertSession(e(f),i);const{cards:E,lastSeq:se}=await he.history(e(f)),{setHistory:Ke}=await ta(async()=>{const{setHistory:Ee}=await import("../chunks/CtMqSQTR.js").then(et=>et.B);return{setHistory:Ee}},__vite__mapDeps([0,1]),import.meta.url);Ke(e(f),E,se),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(f),sinceSeq:se}}))}catch{}}let Ce=o(!1);async function pe(i){try{t(Ce,(await he.revertState(i)).reverted)}catch{t(Ce,!1)}}async function m(){if(e(f))try{await he.unrevertSession(e(f)),t(Ce,!1);const{cards:i,lastSeq:E}=await he.history(e(f)),{setHistory:se}=await ta(async()=>{const{setHistory:Ke}=await import("../chunks/CtMqSQTR.js").then(Ee=>Ee.B);return{setHistory:Ke}},__vite__mapDeps([0,1]),import.meta.url);se(e(f),i,E),window.dispatchEvent(new CustomEvent("ocrc:resubscribe",{detail:{sessionId:e(f),sinceSeq:E}}))}catch{}}const N=["总结这个项目","最近有什么改动?","运行检查"];let ve=o(!1),xe=o([]),He;async function rt(i,E){if(He!==E){He=E;try{const se=await he.suggestions(i);t(xe,se.suggestions??[])}catch{t(xe,[])}}}let st=o(),Ne=o([]);function We(){if(!e(f))return;const i=[...e(b)].reverse().find(se=>se.kind==="user"),E=i==null?void 0:i.text;E&&he.sendMessage({sessionId:e(f),text:E,clientId:`web_${Date.now()}`})}Jt(()=>{Z=new ResizeObserver(()=>{e(_)&&(document.documentElement.style.setProperty("--composer-h",`${e(_).offsetHeight}px`),e(d)&&ee()),e(T)&&document.documentElement.style.setProperty("--sbw",`${e(T).offsetWidth-e(T).clientWidth}px`)}),e(_)&&Z.observe(e(_)),e(T)&&Z.observe(e(T)),S=new IntersectionObserver(se=>{if(!e(d)||!se.some(Ee=>!Ee.isIntersecting))return;e(T).scrollHeight-e(T).scrollTop-e(T).clientHeight<=24?requestAnimationFrame(ee):t(d,!1)},{root:e(T),threshold:0}),e(v)&&S.observe(e(v));const i=window.visualViewport,E=()=>{e(d)&&requestAnimationFrame(ee)};i==null||i.addEventListener("resize",E),ge=()=>i==null?void 0:i.removeEventListener("resize",E)}),Wt(()=>{Z==null||Z.disconnect(),S==null||S.disconnect(),ge==null||ge(),e(z)&&clearInterval(e(z))}),k(()=>P(),()=>{t(f,P().params.sessionId??"")}),k(()=>(e(f),e(p)),()=>{e(f)&&e(f)!==e(p)&&(t(p,e(f)),t(R,_e),t(re,0),t(Q,!0),t(de,!1))}),k(()=>(I(),e(f)),()=>{t(x,I()[e(f)])}),k(()=>e(x),()=>{t(b,Gt(e(x)))}),k(()=>(e(R),e(b)),()=>{t(ke,e(R)>=e(b).length?e(b):e(b).slice(-e(R)))}),k(()=>(J(),e(f)),()=>{t(K,J().find(i=>i.id===e(f)))}),k(()=>e(K),()=>{var i;t(A,(i=e(K))!=null&&i.directory&&e(K).directory.replace(/\/+$/,"").split("/").pop()||"")}),k(()=>e(x),()=>{t(G,(()=>{if(!e(x)||e(x).order.length===0)return!1;const i=e(x).byId[e(x).order[e(x).order.length-1]];return(i==null?void 0:i.kind)==="thinking"||(i==null?void 0:i.kind)==="streaming"||(i==null?void 0:i.kind)==="think-stream"})())}),k(()=>(e(G),e(ae),e(f),e(L),e(z)),()=>{e(G)?(e(ae)!==e(f)&&(t(ae,e(f)),t(L,0)),!e(L)&&typeof window<"u"&&(t(L,Date.now()),t(H,0),e(z)&&clearInterval(e(z)),t(z,setInterval(()=>{t(H,Math.floor((Date.now()-e(L))/1e3))},1e3)))):(t(L,0),t(H,0),t(ae,""),e(z)&&(clearInterval(e(z)),t(z,void 0)))}),k(()=>e(b),()=>{t(w,e(b).length?e(b)[e(b).length-1]:null)}),k(()=>e(f),()=>{e(f)&&(e(f),pe(e(f)))}),k(()=>(e(G),e(w),e(f)),()=>{var i;!e(G)&&((i=e(w))==null?void 0:i.kind)==="assistant"&&e(f)&&e(w).id&&rt(e(f),e(w).id)}),k(()=>(e(f),e(st)),()=>{e(f)!==e(st)&&(t(st,e(f)),t(ve,!1))}),k(()=>(e(G),e(ve),Y(),e(x),B(),e(xe),e(b)),()=>{e(G)||e(ve)||!Y()||!e(x)||B()?t(Ne,[]):e(xe).length>0?t(Ne,e(xe)):e(b).length===0?t(Ne,N):t(Ne,[])}),k(()=>(e(f),e(x),e(b)),()=>{var i;t(oe,`${e(f)}:${((i=e(x))==null?void 0:i.lastSeq)??0}:${e(b).length}`)}),k(()=>(e(oe),e(V),e(d)),()=>{e(oe)!==e(V)&&(t(V,e(oe)),zt().then(()=>{e(d)&&ee()}))}),It(),gt();var Ye=wn(),qe=Oe(Ye),Te=n(qe),ct=n(Te),vt=n(ct),xt=r(vt,2);{var St=i=>{var E=dn();$("click",E,()=>ia.set(!0)),u(i,E)};D(xt,i=>{y()||i(St)})}var c=r(xt,2);Ps(c,{get activeId(){return e(f)}});var a=r(c,2);{var g=i=>{var E=un(),se=n(E,!0);s(E),j(()=>q(se,e(A))),u(i,E)};D(a,i=>{e(A)&&i(g)})}s(ct);var O=r(ct,2),X=n(O);{var U=i=>{var E=pn(),se=r(n(E));s(E),j(Ke=>q(se,` 运行中 ${Ke??""}`),[()=>(e(H),l(()=>me(e(H))))]),u(i,E)},ue=i=>{var E=mn(),se=Oe(E);{var Ke=Ee=>{var et=fn();$("click",et,m),u(Ee,et)};D(se,Ee=>{e(Ce)&&Ee(Ke)})}Mt(2),u(i,E)};D(X,i=>{e(G)?i(U):i(ue,-1)})}var Re=r(X,2);s(O),s(Te);var yt=r(Te,2);let De;var be=n(yt);{var Fe=i=>{var E=hn(),se=n(E,!0);s(E),j(()=>{E.disabled=e(de),q(se,e(de)?"加载中…":"加载更早消息")}),$("click",E,te),u(i,E)};D(be,i=>{e(b),e(R),e(Q),l(()=>e(b).length>0&&(e(b).length>e(R)||e(Q)))&&i(Fe)})}var Xe=r(be,2);Ae(Xe,1,()=>e(ke),i=>i.id,(i,E)=>{{let se=oa(()=>(e(E),e(w),e(G),l(()=>{var Ee;return e(E).id===((Ee=e(w))==null?void 0:Ee.id)&&e(E).kind==="assistant"&&!e(G)?je:void 0}))),Ke=oa(()=>(e(E),e(w),e(G),l(()=>{var Ee;return e(E).id===((Ee=e(w))==null?void 0:Ee.id)&&e(E).kind==="assistant"&&!e(G)?()=>Je(e(w).messageId):void 0})));La(i,{get card(){return e(E)},onRetry:We,get onRegenerate(){return e(se)},get onRevert(){return e(Ke)}})}});var Ze=r(Xe,2);Ue(Ze,i=>t(v,i),()=>e(v));var it=r(Ze,2);{var dt=i=>{var E=jt(),se=Oe(E);{var Ke=et=>{var Tt=_n();u(et,Tt)},Ee=et=>{var Tt=bn();u(et,Tt)};D(se,et=>{e(x)?et(Ee,-1):et(Ke)})}u(i,E)};D(it,i=>{e(b),l(()=>e(b).length===0)&&i(dt)})}s(yt),s(qe),Ue(qe,i=>t(T,i),()=>e(T));var nt=r(qe,2);{var lt=i=>{var E=gn();$("click",E,ee),u(i,E)};D(nt,i=>{e(d),e(b),l(()=>!e(d)&&e(b).length>0)&&i(lt)})}var ut=r(nt,2),Qe=n(ut);Na(Qe,{get suggestions(){return e(Ne)},onPick:i=>Ut.set({text:i,nonce:Date.now()}),onDismiss:()=>{t(ve,!0),t(Ne,[])}});var Ct=r(Qe,2);js(Ct,{get sessionId(){return e(f)}}),s(ut),Ue(ut,i=>t(_,i),()=>e(_));var qt=r(ut,2);vn(qt,{get sessionId(){return e(f)},onJump:i=>Ht("/"+i)}),j(()=>De=at(yt,1,"stream conversation-emerald svelte-eho102",null,De,{suppressed:C()})),$("click",vt,()=>Ht("/")),$("click",Re,()=>Vt.update(i=>!i)),$("scroll",qe,Ie),u($e,Ye),kt(),F()}export{Mn as component};