@bd7pil/ocrc 0.20.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/web/dist/_app/immutable/assets/3.BQqpaRs-.css +1 -0
- package/web/dist/_app/immutable/chunks/{C-RCY5RW.js → Bs0uKk8J.js} +1 -1
- package/web/dist/_app/immutable/chunks/{CI4bheCt.js → CAbq0Oyb.js} +1 -1
- package/web/dist/_app/immutable/entry/{app.hP585qGE.js → app.CiW3rfcJ.js} +2 -2
- package/web/dist/_app/immutable/entry/start.ZtTs7gQk.js +1 -0
- package/web/dist/_app/immutable/nodes/{0.ByhyoKya.js → 0.DLMpdhCv.js} +1 -1
- package/web/dist/_app/immutable/nodes/{1.CLHAzgsG.js → 1.LoQi2ZnL.js} +1 -1
- package/web/dist/_app/immutable/nodes/{2.EFpLxYxf.js → 2.BMC5DjNn.js} +1 -1
- package/web/dist/_app/immutable/nodes/{3.g7Mb0j5_.js → 3.BcsqdVnN.js} +1 -1
- package/web/dist/_app/version.json +1 -1
- package/web/dist/index.html +8 -8
- package/web/dist/service-worker.js +1 -1
- package/web/dist/_app/immutable/assets/3.B1MCuL3y.css +0 -1
- package/web/dist/_app/immutable/entry/start.AkXYSd_v.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{r as gt,f as Se,p as Kt,l as Nt,i as ha,F as _a,y as ba,k as oa,j as ga,z as Pt,e as ka,a as ea,b as ta,c as aa,B as wa,w as xa}from"../chunks/DUrEVoyD.js";import{aE as kt,M as Mt,a4 as Fe,w as c,aB as wt,V as Ie,b4 as l,J as s,aK as a,a$ as T,a8 as e,aR as E,a3 as $,aU as o,a6 as p,az as Jt,ap as _,aO as t,aq as $t,$ as ht,au as n,b2 as ra,aw as qt,av as St,ay as zt,b1 as Rt,aI as ya,b5 as At,b0 as $a,a7 as Ia,Z as Sa}from"../chunks/BjY4dxcB.js";import{i as A,s as Ot,a as ze}from"../chunks/DIEDQ_hk.js";import{i as je,A as Et,I as lt,y as ue,z as at,l as yt,c as Ca,f as Wt,h as Ma,g as la,t as Ea,v as qa,J as sa,a as Ta,E as ja,D as Da,q as Oa,m as Ht,r as Ba,s as Aa,C as Pa,o as na,j as Ra}from"../chunks/CI4bheCt.js";import{p as bt,b as Ze}from"../chunks/C2FuqD3s.js";import{g as Ft}from"../chunks/C-RCY5RW.js";var Fa=p('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),za=p('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function La($e,le){kt(le,!1);let G=bt(le,"suggestions",24,()=>[]),S=bt(le,"onPick",8,()=>{}),se=bt(le,"onDismiss",8,()=>{});gt();var ne=Mt(),C=Fe(ne);{var y=g=>{var D=za(),M=s(D);je(M,3,G,k=>k,(k,H,te)=>{var b=Fa(),W=s(b,!0);a(b),T(w=>{Et(b,w),E(W,e(H))},[()=>(Ie(e(te)),l(()=>`animation-delay: ${Math.min(e(te),5)*45}ms`))]),$("click",b,()=>S()(e(H))),c(k,b)});var h=o(M,2),O=s(h);lt(O,{name:"close",size:12}),a(h),a(D),$("click",h,function(...k){var H;(H=se())==null||H.apply(this,k)}),c(g,D)};A(C,g=>{Ie(G()),l(()=>G().length>0)&&g(y)})}c($e,ne),wt()}var Na=p('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Wa=p('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Ha=p('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ka=p('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <!></div>');function Ja($e,le){kt(le,!1);const G=n();let S=n(!1),se=n(),ne=n([]),C=n({agent:null,model:null});async function y(){try{await(async j=>{var f=ra(j,2);t(ne,f[0]),t(C,f[1])})(await Promise.all([Se.agents(),Se.getOverrides()]))}catch{}}Jt(y);async function g(j){await Se.setOverrides({agent:j.name}),await y(),t(S,!1)}async function D(){await Se.setOverrides({agent:null}),await y(),t(S,!1)}function M(j){j.key==="Escape"&&e(S)&&t(S,!1)}function h(j){e(S)&&e(se)&&!e(se).contains(j.target)&&t(S,!1)}_(()=>e(C),()=>{t(G,e(C).agent??"default")}),$t(),gt();var O=Ka();$("keydown",ht,M),$("click",ht,h);var k=s(O),H=s(k);lt(H,{name:"cpu",size:11});var te=o(H,2),b=s(te,!0);a(te);var W=o(te,2);lt(W,{name:"caret-down",size:9}),a(k);var w=o(k,2);{var Q=j=>{var f=Ha(),F=s(f);{var N=P=>{var I=Na();c(P,I)};A(F,P=>{e(ne),l(()=>e(ne).length===0)&&P(N)})}var x=o(F,2);je(x,1,()=>e(ne),P=>P.name,(P,I)=>{var X=Wa();let m;var oe=s(X),Ce=s(oe,!0);a(oe);var pe=o(oe,2),K=s(pe,!0);a(pe),a(X),T(L=>{m=at(X,1,"opt svelte-1f5vmb3",null,m,{sel:e(I).name===e(C).agent}),ue(X,"aria-selected",(e(I),e(C),l(()=>e(I).name===e(C).agent))),E(Ce,(e(I),l(()=>e(I).name))),E(K,L)},[()=>(e(I),l(()=>e(I).model.split("/").pop()))]),$("click",X,()=>g(e(I))),c(P,X)});var z=o(x,2),ke=s(z);lt(ke,{name:"close",size:11}),qt(),a(z),a(f),T(()=>ue(z,"aria-selected",(e(C),l(()=>e(C).agent==null)))),$("click",z,D),c(j,f)};A(w,j=>{e(S)&&j(Q)})}a(O),Ze(O,j=>t(se,j),()=>e(se)),T(()=>{ue(k,"aria-expanded",e(S)),E(b,e(G))}),$("click",k,()=>{t(S,!e(S)),e(S)&&y()}),c($e,O),wt()}var Ua=p('<div class="none label svelte-1005b73">暂无模型</div>'),Ga=p('<button role="option"><span> </span></button>'),Va=p('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Ya=p('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Xa=p('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <!></div>');function Za($e,le){kt(le,!1);const G=n();let S=n(!1),se=n(),ne=n([]),C=n({agent:null,model:null});async function y(){try{await(async j=>{var f=ra(j,2);t(ne,f[0]),t(C,f[1])})(await Promise.all([Se.models(),Se.getOverrides()]))}catch{}}Jt(y);async function g(j,f){await Se.setOverrides({model:{providerID:j,modelID:f}}),await y(),t(S,!1)}async function D(){await Se.setOverrides({model:null}),await y(),t(S,!1)}function M(j){j.key==="Escape"&&e(S)&&t(S,!1)}function h(j){e(S)&&e(se)&&!e(se).contains(j.target)&&t(S,!1)}_(()=>e(C),()=>{var j;t(G,((j=e(C).model)==null?void 0:j.modelID)??"model")}),$t(),gt();var O=Xa();$("keydown",ht,M),$("click",ht,h);var k=s(O),H=s(k);lt(H,{name:"bolt",size:11});var te=o(H,2),b=s(te,!0);a(te);var W=o(te,2);lt(W,{name:"caret-down",size:9}),a(k);var w=o(k,2);{var Q=j=>{var f=Ya(),F=s(f);{var N=P=>{var I=Ua();c(P,I)};A(F,P=>{e(ne),l(()=>e(ne).length===0)&&P(N)})}var x=o(F,2);je(x,1,()=>e(ne),P=>P.id,(P,I)=>{var X=Va(),m=Fe(X),oe=s(m,!0);a(m);var Ce=o(m,2);je(Ce,1,()=>(e(I),l(()=>e(I).models)),pe=>pe.id,(pe,K)=>{var L=Ga();let _e;var fe=s(L),we=s(fe,!0);a(fe),a(L),T(()=>{var d,V;_e=at(L,1,"opt svelte-1005b73",null,_e,{sel:((d=e(C).model)==null?void 0:d.providerID)===e(I).id&&((V=e(C).model)==null?void 0:V.modelID)===e(K).id}),ue(L,"aria-selected",(e(C),e(I),e(K),l(()=>{var ee,Z;return((ee=e(C).model)==null?void 0:ee.providerID)===e(I).id&&((Z=e(C).model)==null?void 0:Z.modelID)===e(K).id}))),E(we,(e(K),l(()=>e(K).name||e(K).id)))}),$("click",L,()=>g(e(I).id,e(K).id)),c(pe,L)}),T(()=>E(oe,(e(I),l(()=>e(I).id)))),c(P,X)});var z=o(x,2),ke=s(z);lt(ke,{name:"close",size:11}),qt(),a(z),a(f),T(()=>ue(z,"aria-selected",(e(C),l(()=>e(C).model==null)))),$("click",z,D),c(j,f)};A(w,j=>{e(S)&&j(Q)})}a(O),Ze(O,j=>t(se,j),()=>e(se)),T(()=>{ue(k,"aria-expanded",e(S)),E(b,e(G))}),$("click",k,()=>{t(S,!e(S)),e(S)&&y()}),c($e,O),wt()}var Qa=p('<button role="option"> </button>'),es=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ts=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),as=p('<button role="option"> </button>'),ss=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),ns=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),os=p('<div class="controls svelte-dkbq22"><!> <!></div>');function rs($e,le){kt(le,!1);const G=n(),S=n(),se=n(),ne=n();let C=bt(le,"sessionId",8),y=n({}),g=n(null);async function D(){const f=C();try{const F=await Se.controls(f);if(f!==C())return;t(y,F)}catch{f===C()&&t(y,{})}}async function M(f){e(y).mode&&St(y,e(y).mode={...e(y).mode,current:f}),t(g,null);try{await Se.setMode(C(),f)}catch{}await D()}async function h(f){e(y).model&&St(y,e(y).model={...e(y).model,current:f}),t(g,null);try{await Se.setModel(C(),f)}catch{}await D()}function O(f){t(g,e(g)===f?null:f)}let k=n();function H(f){f.key==="Escape"&&e(g)&&t(g,null)}function te(f){e(g)&&e(k)&&!e(k).contains(f.target)&&t(g,null)}_(()=>Ie(C()),()=>{C()&&D()}),_(()=>e(y),()=>{var f;t(G,((f=e(y).mode)==null?void 0:f.options)??[])}),_(()=>e(y),()=>{var f;t(S,((f=e(y).model)==null?void 0:f.options)??[])}),_(()=>e(y),()=>{var f,F,N;t(se,((F=(f=e(y).mode)==null?void 0:f.options.find(x=>{var z;return x.id===((z=e(y).mode)==null?void 0:z.current)}))==null?void 0:F.name)??((N=e(y).mode)==null?void 0:N.current)??"mode")}),_(()=>e(y),()=>{var f,F,N;t(ne,((F=(f=e(y).model)==null?void 0:f.options.find(x=>{var z;return x.id===((z=e(y).model)==null?void 0:z.current)}))==null?void 0:F.name)??((N=e(y).model)==null?void 0:N.current)??"model")}),$t(),gt();var b=os();$("keydown",ht,H),$("click",ht,te);var W=s(b);{var w=f=>{var F=ts(),N=s(F),x=s(N);lt(x,{name:"bolt",size:11});var z=o(x,2),ke=s(z,!0);a(z);var P=o(z,2);lt(P,{name:"caret-down",size:9}),a(N);var I=o(N,2);{var X=m=>{var oe=es(),Ce=o(s(oe),2);je(Ce,1,()=>e(G),yt,(pe,K)=>{var L=Qa();let _e;var fe=s(L,!0);a(L),T(()=>{var we;_e=at(L,1,"opt svelte-dkbq22",null,_e,{sel:e(K).id===((we=e(y).mode)==null?void 0:we.current)}),ue(L,"aria-selected",(e(K),e(y),l(()=>{var d;return e(K).id===((d=e(y).mode)==null?void 0:d.current)}))),E(fe,(e(K),l(()=>e(K).name)))}),$("click",L,()=>M(e(K).id)),c(pe,L)}),a(oe),c(m,oe)};A(I,m=>{e(g)==="mode"&&m(X)})}a(F),T(()=>{ue(N,"aria-expanded",e(g)==="mode"),E(ke,e(se))}),$("click",N,()=>O("mode")),c(f,F)};A(W,f=>{e(G),l(()=>e(G).length>0)&&f(w)})}var Q=o(W,2);{var j=f=>{var F=ns(),N=s(F),x=s(N);lt(x,{name:"cpu",size:11});var z=o(x,2),ke=s(z,!0);a(z);var P=o(z,2);lt(P,{name:"caret-down",size:9}),a(N);var I=o(N,2);{var X=m=>{var oe=ss(),Ce=o(s(oe),2);je(Ce,1,()=>e(S),yt,(pe,K)=>{var L=as();let _e;var fe=s(L,!0);a(L),T(()=>{var we;_e=at(L,1,"opt svelte-dkbq22",null,_e,{sel:e(K).id===((we=e(y).model)==null?void 0:we.current)}),ue(L,"aria-selected",(e(K),e(y),l(()=>{var d;return e(K).id===((d=e(y).model)==null?void 0:d.current)}))),E(fe,(e(K),l(()=>e(K).name)))}),$("click",L,()=>h(e(K).id)),c(pe,L)}),a(oe),c(m,oe)};A(I,m=>{e(g)==="model"&&m(X)})}a(F),T(()=>{ue(N,"aria-expanded",e(g)==="model"),E(ke,e(ne))}),$("click",N,()=>O("model")),c(f,F)};A(Q,f=>{e(S),l(()=>e(S).length>0)&&f(j)})}a(b),Ze(b,f=>t(k,f),()=>e(k)),c($e,b),wt()}const Bt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Lt($e){if(!$e)return 0;let le=0;for(const S of $e)(S.codePointAt(0)??0)>=11904&&le++;const G=$e.length-le;return Math.round(le*.6+G*.25)}function ls($e,le){let G=0,S=0,se=0;for(const g of $e)if(g.kind==="user")G+=Lt(String(g.text??""));else if(g.kind==="assistant")for(const D of g.blocks??[])D.type==="text"?S+=Lt(String(D.text??"")):D.type==="tool"&&(se+=Lt(String(D.args??"")));const ne=G+S+se,C=Math.max(0,le-ne),y=[{key:"用户",tokens:G,color:Bt.user},{key:"助手",tokens:S,color:Bt.assistant},{key:"工具调用",tokens:se,color:Bt.tool}];return C>0&&y.push({key:"其他",tokens:C,color:Bt.other}),{segments:y.filter(g=>g.tokens>0),accounted:ne,used:le}}var is=p('<span class="seg svelte-4bdpxt"></span>'),cs=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),vs=p('<span class="seg svelte-4bdpxt"></span>'),ds=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=p('<div class="bd-label svelte-4bdpxt">细分 <span class="est svelte-4bdpxt">估算</span></div> <div class="bar bd svelte-4bdpxt"></div> <div class="legend svelte-4bdpxt"></div>',1),ps=p('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),fs=p('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=p('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=p('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=p('<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="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div> <!> <div class="rows svelte-4bdpxt"><!> <!> <!> <!></div></div>'),bs=p('<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 gs($e,le){kt(le,!1);const G=()=>ze(Kt,"$feeds",S),[S,se]=Ot(),ne=n(),C=n(),y=n(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n(),w=n(),Q=n(),j=n(),f=n(),F=n();let N=bt(le,"sessionId",8),x=n({}),z=n(!1),ke=n(),P,I=n(),X=n(-1),m=n();async function oe(u){try{t(x,await Se.context(u))}catch{}}zt(()=>{clearTimeout(e(m)),clearTimeout(P)});const Ce=10,pe=2*Math.PI*Ce;function K(u){return u>=1e6?(u/1e6).toFixed(1)+"M":u>=1e3?(u/1e3).toFixed(1)+"k":String(u)}function L(u){return u==null?"—":`$${u.toFixed(3)}`}function _e(){clearTimeout(P),t(z,!0)}function fe(){clearTimeout(P),P=setTimeout(()=>t(z,!1),180)}function we(u){u.key==="Escape"&&t(z,!1)}function d(u){e(z)&&e(ke)&&!e(ke).contains(u.target)&&t(z,!1)}_(()=>(Ie(N()),e(I)),()=>{N()!==e(I)&&(t(I,N()),oe(N()))}),_(()=>(G(),Ie(N())),()=>{var u;t(ne,((u=G()[N()])==null?void 0:u.lastSeq)??0)}),_(()=>(e(ne),e(X),e(m),Ie(N())),()=>{e(ne)!==e(X)&&(t(X,e(ne)),clearTimeout(e(m)),t(m,setTimeout(()=>void oe(N()),1e3)))}),_(()=>e(x),()=>{var u,R;t(C,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.input)=="number"?e(x).tokens.input:0)}),_(()=>e(x),()=>{var u,R;t(y,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.output)=="number"?e(x).tokens.output:0)}),_(()=>(e(x),e(C),e(y)),()=>{var u,R;t(g,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.used)=="number"?e(x).tokens.used:e(C)+e(y))}),_(()=>e(x),()=>{var u,R;t(D,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.max)=="number"?e(x).tokens.max:void 0)}),_(()=>(e(g),e(D)),()=>{t(M,e(g)>0&&e(D)?Math.min(100,e(g)/e(D)*100):0)}),_(()=>e(M),()=>{t(h,e(M)>=90?"var(--err)":e(M)>=70?"var(--warn)":"var(--ok)")}),_(()=>e(x),()=>{var u;t(O,(u=e(x))!=null&&u.model?String(e(x).model).split("/").pop():void 0)}),_(()=>e(x),()=>{var u;t(k,typeof((u=e(x))==null?void 0:u.cost)=="number"?e(x).cost:void 0)}),_(()=>e(x),()=>{var u,R,ye;t(H,typeof((ye=(R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.cache)==null?void 0:ye.read)=="number"?e(x).tokens.cache.read:0)}),_(()=>e(x),()=>{var u,R,ye;t(te,typeof((ye=(R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.cache)==null?void 0:ye.write)=="number"?e(x).tokens.cache.write:0)}),_(()=>(e(C),e(H)),()=>{t(b,e(C)+e(H)>0?Math.round(e(H)/(e(C)+e(H))*100):void 0)}),_(()=>(G(),Ie(N())),()=>{t(W,G()[N()])}),_(()=>e(W),()=>{t(w,Nt(e(W)).filter(u=>u.kind==="user"||u.kind==="assistant").length)}),_(()=>(e(H),e(te),e(C),e(y)),()=>{t(Q,[{key:"缓存读",v:e(H),c:"var(--ok)"},{key:"缓存写",v:e(te),c:"var(--info)"},{key:"输入",v:e(C),c:"var(--text-3)"},{key:"输出",v:e(y),c:"var(--hl-purple)"}].filter(u=>u.v>0))}),_(()=>e(Q),()=>{t(j,e(Q).reduce((u,R)=>u+R.v,0))}),_(()=>e(W),()=>{t(f,Nt(e(W)))}),_(()=>(e(f),e(g)),()=>{t(F,ls(e(f),e(g)))}),$t(),gt();var V=bs();$("keydown",ht,we),$("click",ht,d);var ee=s(V),Z=s(ee),Ue=s(Z);ue(Ue,"r",Ce);var Qe=o(Ue);ue(Qe,"r",Ce),a(Z);var Te=o(Z,2),ie=s(Te,!0);qt(),a(Te),a(ee);var Me=o(ee,2);{var De=u=>{var R=_s(),ye=s(R),ut=o(s(ye),2),st=s(ut);a(ut),a(ye);var Ne=o(ye,2);je(Ne,5,()=>e(Q),yt,(re,Y)=>{var de=is();T(()=>Et(de,(e(Y),e(j),l(()=>`width:${e(Y).v/(e(j)||1)*100}%; background:${e(Y).c}`)))),c(re,de)}),a(Ne);var Oe=o(Ne,2);je(Oe,5,()=>e(Q),yt,(re,Y)=>{var de=cs(),Ae=s(de),it=o(Ae);a(de),T(me=>{Et(Ae,(e(Y),l(()=>`background:${e(Y).c}`))),E(it,`${e(Y),l(()=>e(Y).key)??""} ${me??""}`)},[()=>(e(Y),l(()=>K(e(Y).v)))]),c(re,de)}),a(Oe);var Ve=o(Oe,2);{var We=re=>{var Y=us(),de=o(Fe(Y),2);je(de,5,()=>(e(F),l(()=>e(F).segments)),yt,(it,me)=>{var ce=vs();T(()=>Et(ce,(e(me),e(F),l(()=>`width:${e(me).tokens/(e(F).used||1)*100}%; background:${e(me).color}`)))),c(it,ce)}),a(de);var Ae=o(de,2);je(Ae,5,()=>(e(F),l(()=>e(F).segments)),yt,(it,me)=>{var ce=ds(),Pe=s(ce),Ye=o(Pe);a(ce),T(Ge=>{Et(Pe,(e(me),l(()=>`background:${e(me).color}`))),E(Ye,`${e(me),l(()=>e(me).key)??""} ${Ge??""}%`)},[()=>(e(g),e(me),l(()=>e(g)>0?(e(me).tokens/e(g)*100).toFixed(1):"0"))]),c(it,ce)}),a(Ae),c(re,Y)};A(Ve,re=>{e(F),l(()=>e(F).segments.length>0)&&re(We)})}var Le=o(Ve,2),i=s(Le);{var q=re=>{var Y=ps(),de=o(s(Y)),Ae=s(de);a(de),a(Y),T(()=>E(Ae,`${e(b)??""}%`)),c(re,Y)};A(i,re=>{e(b)!=null&&re(q)})}var J=o(i,2);{var be=re=>{var Y=fs(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(()=>E(Ae,e(w))),c(re,Y)};A(J,re=>{e(w)>0&&re(be)})}var Ee=o(J,2);{var v=re=>{var Y=ms(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(()=>E(Ae,e(O))),c(re,Y)};A(Ee,re=>{e(O)&&re(v)})}var xe=o(Ee,2);{var Be=re=>{var Y=hs(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(it=>E(Ae,it),[()=>(e(k),l(()=>L(e(k))))]),c(re,Y)};A(xe,re=>{e(k)!=null&&re(Be)})}a(Le),a(R),T((re,Y)=>E(st,`${re??""} / ${Y??""}`),[()=>(e(g),l(()=>K(e(g)))),()=>(e(D),l(()=>K(e(D))))]),c(u,R)};A(Me,u=>{e(z)&&e(D)&&u(De)})}a(V),Ze(V,u=>t(ke,u),()=>e(ke)),T((u,R,ye)=>{ue(ee,"aria-label",u),ue(ee,"aria-expanded",e(z)),ue(Qe,"stroke",e(h)),ue(Qe,"stroke-dasharray",R),E(ie,ye)},[()=>(e(M),l(()=>`上下文占用 ${e(M).toFixed(0)}%`)),()=>(e(M),l(()=>`${Math.max(pe*e(M)/100,e(M)>0?1.5:0)} ${pe}`)),()=>(e(M),l(()=>e(M).toFixed(0)))]),$("click",ee,()=>t(z,!e(z))),$("mouseenter",V,_e),$("mouseleave",V,fe),c($e,V),wt(),se()}var ks=p('<div class="error svelte-60fagq" role="alert"> </div>'),ws=p('<button role="option"> </button>'),xs=p('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),ys=p('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),$s=p('<div class="thumbnails svelte-60fagq"></div>'),Is=p('<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),Ss=p("<!> <!>",1),Cs=Ia('<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>'),Ms=p('<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> <button class="send svelte-60fagq" aria-label="发送"><!></button></div></div></div></div>');function Es($e,le){kt(le,!1);const G=()=>ze(Wt,"$composerDraft",C),S=()=>ze(oa,"$can",C),se=()=>ze(Ma,"$connection",C),ne=()=>ze(ha,"$backendName",C),[C,y]=Ot(),g=n();let D=bt(le,"sessionId",8),M=n(""),h=n(),O=n(!1),k=n(""),H=n(!1),te=n(),b=n([]),W=n([]),w=n(0),Q=0,j;function f(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function F(i){const q=new FileReader;q.onload=()=>{var Be;const J=q.result,be=J.indexOf(","),Ee=J.slice(0,be),v=J.slice(be+1),xe=((Be=Ee.match(/data:(.*?);/))==null?void 0:Be[1])??i.type;t(b,[...e(b),{data:v,mimeType:xe,preview:J}])},q.readAsDataURL(i)}function N(i){const q=i.target;if(q.files){for(const J of q.files)F(J);q.value=""}}function x(i){if(!S()("imageInput")||!i.clipboardData)return;const q=[...i.clipboardData.items].filter(J=>J.type.startsWith("image/"));if(q.length){i.preventDefault();for(const J of q){const be=J.getAsFile();be&&F(be)}}}function z(i){t(b,e(b).filter((q,J)=>J!==i))}function ke(){if(!e(h))return null;const i=e(h).selectionStart,J=e(M).slice(0,i).match(/(^|[\s])@([^\s]*)$/);return J?{token:J[2],start:i-J[2].length-1}:null}function P(){const i=ke();if(!i){t(W,[]),clearTimeout(j);return}Q=i.start,t(w,0),clearTimeout(j);const q=i.token;j=setTimeout(async()=>{try{t(W,await Se.files(D(),q))}catch{t(W,[])}},150)}function I(i){const q=e(h).selectionStart,J=e(M).slice(0,Q),be=e(M).slice(q),Ee=`@${i} `;t(M,J+Ee+be),t(W,[]),Rt().then(()=>{const v=J.length+Ee.length;St(h,e(h).selectionStart=St(h,e(h).selectionEnd=v)),e(h).focus(),oe()})}async function X(){var Ee;const i=e(M).trim();if(!i&&e(b).length===0||e(O))return;if(se()!=="connected"){t(k,"Disconnected — reconnecting…");return}const q=f(),J=e(b).map(({data:v,mimeType:xe})=>({data:v,mimeType:xe}));t(O,!0),t(k,""),_a({kind:"user",sessionId:D(),text:i,ts:Date.now(),id:`user:${q}`}),t(M,"");const be=[...e(b)];t(b,[]),oe();try{await Se.sendMessage({sessionId:D(),text:i,clientId:q,...J.length?{images:J}:{}})}catch(v){t(k,`Send failed: ${v.message}`),ba(`user:${q}`),t(M,i),t(b,be)}finally{t(O,!1),(Ee=e(h))==null||Ee.focus()}}function m(i){if(e(W).length>0){if(i.key==="ArrowDown"){i.preventDefault(),t(w,Math.min(e(w)+1,e(W).length-1));return}if(i.key==="ArrowUp"){i.preventDefault(),t(w,Math.max(e(w)-1,0));return}if(i.key==="Enter"||i.key==="Tab"){i.preventDefault(),I(e(W)[e(w)]);return}if(i.key==="Escape"){i.preventDefault(),t(W,[]);return}}i.key!=="Enter"||i.shiftKey||i.isComposing||i.keyCode===229||(i.preventDefault(),X())}function oe(){e(h)&&(St(h,e(h).style.height="auto"),St(h,e(h).style.height=Math.min(e(h).scrollHeight,140)+"px"))}zt(()=>clearTimeout(j)),_(()=>(G(),e(h)),()=>{const i=G();i&&(t(M,i.text),Wt.set(void 0),Rt().then(()=>{var q;return(q=e(h))==null?void 0:q.focus()}),oe())}),_(()=>e(M),()=>{la.set(!e(M).trim())}),_(()=>e(M),()=>{t(g,e(M).trim().length>0)}),$t(),gt();var Ce=Ms(),pe=s(Ce),K=s(pe);{var L=i=>{var q=ks(),J=s(q,!0);a(q),T(()=>E(J,e(k))),c(i,q)};A(K,i=>{e(k)&&i(L)})}var _e=o(K,2);let fe;var we=s(_e);{var d=i=>{var q=xs();je(q,5,()=>e(W),yt,(J,be,Ee)=>{var v=ws();let xe;var Be=s(v,!0);a(v),T(()=>{xe=at(v,1,"mention-row svelte-60fagq",null,xe,{active:Ee===e(w)}),ue(v,"aria-selected",Ee===e(w)),E(Be,e(be))}),$("mousedown",v,qa(()=>I(e(be)))),c(J,v)}),a(q),c(i,q)};A(we,i=>{e(W),l(()=>e(W).length>0)&&i(d)})}var V=o(we,2);{var ee=i=>{var q=$s();je(q,5,()=>e(b),yt,(J,be,Ee)=>{var v=ys(),xe=s(v),Be=o(xe,2);a(v),T(()=>ue(xe,"src",(e(be),l(()=>e(be).preview)))),$("click",Be,()=>z(Ee)),c(J,v)}),a(q),c(i,q)};A(V,i=>{e(b),l(()=>e(b).length>0)&&i(ee)})}var Z=o(V,2);ya(Z),ue(Z,"rows",1),Ze(Z,i=>t(h,i),()=>e(h));var Ue=o(Z,2),Qe=s(Ue);{var Te=i=>{var q=Is(),J=Fe(q),be=o(J,2);Ze(be,Ee=>t(te,Ee),()=>e(te)),$("click",J,()=>e(te).click()),$("change",be,N),c(i,q)},ie=At(()=>(S(),l(()=>S()("imageInput"))));A(Qe,i=>{e(ie)&&i(Te)})}var Me=o(Qe,2);{var De=i=>{var q=Ss(),J=Fe(q);Ja(J,{});var be=o(J,2);Za(be,{}),c(i,q)},u=At(()=>(S(),l(()=>S()("catalog"))));A(Me,i=>{e(u)&&i(De)})}var R=o(Me,2);{var ye=i=>{rs(i,{get sessionId(){return D()}})},ut=At(()=>(S(),l(()=>S()("sessionControls"))));A(R,i=>{e(ut)&&i(ye)})}var st=o(R,2);gs(st,{get sessionId(){return D()}});var Ne=o(st,2),Oe=o(Ne,6),Ve=s(Oe);{var We=i=>{var q=$a("…");c(i,q)},Le=i=>{var q=Cs();c(i,q)};A(Ve,i=>{e(O)?i(We):i(Le,-1)})}a(Oe),a(Ue),a(_e),a(pe),a(Ce),T(i=>{fe=at(_e,1,"box svelte-60fagq",null,fe,{focused:e(H),"has-text":e(g)}),ue(Z,"placeholder",se()==="connected"?`给 ${ne()} 留言…`:"连接断开…"),Oe.disabled=i},[()=>(e(O),e(M),e(b),se(),l(()=>e(O)||!e(M).trim()&&e(b).length===0||se()!=="connected"))]),Ca(Z,()=>e(M),i=>t(M,i)),$("keydown",Z,m),$("input",Z,()=>{oe(),P()}),$("paste",Z,x),$("focus",Z,()=>t(H,!0)),$("blur",Z,()=>t(H,!1)),$("click",Z,P),$("click",Ne,()=>Ea.set(!0)),$("click",Oe,X),c($e,Ce),wt(),y()}var qs=p('<span class="check svelte-rgafhj">✓</span>'),Ts=p('<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>'),js=p('<div class="empty svelte-rgafhj"> </div>'),Ds=p('<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>'),Os=p('<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 Bs($e,le){kt(le,!1);const G=()=>ze(ga,"$backends",C),S=()=>ze(Pt,"$sessionList",C),se=()=>ze(Ta,"$activeWorkspace",C),ne=()=>ze(sa,"$workspaces",C),[C,y]=Ot(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n();let H=bt(le,"activeId",8,void 0),te=n(!1),b=n(!1);function W(d){const V=d.split(/[\s\-_:./]+/).filter(Boolean);return V.length>=2?(V[0][0]+V[1][0]).toUpperCase():d.slice(0,2).toUpperCase()}function w(d){return W((d==null?void 0:d.name)||(d==null?void 0:d.id)||"OC")}function Q(d){return d==="online"||d==="connected"?"online":d==="connecting"||d==="reconnecting"?"connecting":d==="offline"?"offline":"online"}function j(){t(te,!e(te))}function f(d){t(te,!1),Ft(`/${d}/`)}async function F(){var V;if(e(b))return;const d=se()||((V=ne()[0])==null?void 0:V.directory)||"";t(b,!0);try{await wa(e(g));const ee=await Se.createSession({directory:d});Pt.set(await Se.sessions()),sa.set(await Se.workspaces()),t(te,!1),Ft(`/${ee.id}/`)}catch(ee){alert(`Create session failed: ${ee.message}`)}finally{t(b,!1)}}function N(d){d.key==="Escape"&&t(te,!1)}function x(d){const V=Date.now()-d,ee=Math.floor(V/6e4);if(ee<1)return"now";if(ee<60)return`${ee}m`;const Z=Math.floor(ee/60);return Z<24?`${Z}h`:`${Math.floor(Z/24)}d`}function z(d){return(d.includes("_")?d.slice(d.indexOf("_")+1):d).slice(-8)}_(()=>G(),()=>{var d,V,ee;t(g,((d=G())==null?void 0:d.activeId)??((ee=(V=G())==null?void 0:V.backends[0])==null?void 0:ee.id)??"opencode")}),_(()=>(G(),e(g)),()=>{var d;t(D,(d=G())==null?void 0:d.backends.find(V=>V.id===e(g)))}),_(()=>e(g),()=>{t(M,ka(e(g)))}),_(()=>(S(),e(g)),()=>{t(h,S().filter(d=>d.backendId===e(g)||!d.backendId&&e(g)==="opencode").sort((d,V)=>V.lastActiveAt-d.lastActiveAt))}),_(()=>(S(),Ie(H())),()=>{t(O,S().find(d=>d.id===H()))}),_(()=>e(O),()=>{var d;t(k,((d=e(O))==null?void 0:d.title)||"Untitled session")}),$t(),gt();var ke=Os();$("keydown",ht,N);var P=s(ke),I=s(P),X=s(I,!0);a(I);var m=o(I,2),oe=s(m),Ce=s(oe,!0);a(oe),a(m);var pe=o(m,2),K=s(pe,!0);a(pe);var L=o(pe,2),_e=s(L);lt(_e,{name:"caret-down",size:11}),a(L),a(P);var fe=o(P,2);{var we=d=>{var V=Ds(),ee=s(V);je(ee,5,()=>e(h),Te=>Te.id,(Te,ie)=>{var Me=Ts();let De;var u=s(Me),R=o(u,2),ye=s(R),ut=s(ye,!0);a(ye);var st=o(ye,2),Ne=s(st);a(st),a(R);var Oe=o(R,2);{var Ve=We=>{var Le=qs();c(We,Le)};A(Oe,We=>{e(ie),Ie(H()),l(()=>e(ie).id===H())&&We(Ve)})}a(Me),T((We,Le)=>{De=at(Me,1,"row svelte-rgafhj",null,De,{active:e(ie).id===H()}),at(u,1,`dot ${e(ie),Ie(H()),l(()=>e(ie).id===H()?"active":"")??""}`,"svelte-rgafhj"),E(ut,(e(ie),l(()=>e(ie).title||"Untitled session"))),E(Ne,`${We??""} · ${Le??""}`)},[()=>(e(ie),l(()=>z(e(ie).id))),()=>(e(ie),l(()=>x(e(ie).lastActiveAt)))]),$("click",Me,()=>f(e(ie).id)),c(Te,Me)},Te=>{var ie=js(),Me=s(ie);a(ie),T(()=>E(Me,`No sessions on ${e(D),l(()=>{var De,u;return((De=e(D))==null?void 0:De.name)??((u=e(D))==null?void 0:u.id)??"this agent"})??""}.`)),c(Te,ie)}),a(ee);var Z=o(ee,2),Ue=s(Z),Qe=s(Ue);a(Ue),a(Z),a(V),T(()=>{Ue.disabled=e(b),E(Qe,`+ New session on ${e(D),l(()=>{var Te,ie;return((Te=e(D))==null?void 0:Te.name)??((ie=e(D))==null?void 0:ie.id)??"agent"})??""}`)}),$("click",Ue,F),c(d,V)};A(fe,d=>{e(te)&&d(we)})}a(ke),T((d,V,ee)=>{ue(P,"aria-expanded",e(te)),Et(I,`background:${Ie(ea),e(M),l(()=>ea[e(M)])??""}; color:${Ie(ta),e(M),l(()=>ta[e(M)])??""}; border-color:${Ie(aa),e(M),l(()=>aa[e(M)])??""}`),E(X,d),at(m,1,`status-dot ${V??""}`,"svelte-rgafhj"),E(Ce,ee),E(K,e(k))},[()=>(e(D),l(()=>w(e(D)))),()=>(e(D),l(()=>{var d;return Q((d=e(D))==null?void 0:d.status)})),()=>(e(D),l(()=>{var d;return Q((d=e(D))==null?void 0:d.status)}))]),$("click",P,j),c($e,ke),wt(),y()}var As=p('<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>'),Ps=p('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Rs=p('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Fs=p('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),zs=p('<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>'),Ls=p('<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>'),Ns=p('<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),Ws=p('<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>'),Hs=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Ks=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=p('<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),Us=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),Gs=p('<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>'),Vs=p('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Ys=p('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),Xs=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),Zs=p('<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>'),Qs=p('<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),en=p('<!> <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),tn=p('<span class="badge mono svelte-w3h0m4"> </span>'),an=p('<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>'),sn=p('<span class="badge mono svelte-w3h0m4"> </span>'),nn=p('<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>'),on=p("<!> <!>",1);function rn($e,le){kt(le,!1);const G=()=>ze(Kt,"$feeds",ne),S=()=>ze(Pt,"$sessionList",ne),se=()=>ze(oa,"$can",ne),[ne,C]=Ot(),y=n(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n();let w=bt(le,"sessionId",8),Q=bt(le,"onJump",8,()=>{});const j="ocrc.planHud.v3",f=5,F=16,N=2*Math.PI*F;let x=n(!1);try{t(x,window.matchMedia("(min-width: 821px)").matches)}catch{}const z=e(x)?"ocrc.planHud.dt3":j;function ke(){if(typeof localStorage>"u")return{};try{const v=JSON.parse(localStorage.getItem(z)??"{}")??{};return{dismissed:v.dismissed,expanded:v.expanded}}catch{return{}}}let P=n(ke()),I=n(e(P).expanded??e(x));function X(v){if(t(P,{...e(P),...v}),!(typeof localStorage>"u"))try{localStorage.setItem(z,JSON.stringify(e(P)))}catch{}}let m=n({total:0,done:0,items:[]}),oe=n();async function Ce(v){try{const xe=await Se.todo(v);if(v!==w())return;t(oe,v),t(m,ja(xe))}catch{}}let pe=n(),K=n(0),L=n(-1),_e=n();zt(()=>clearTimeout(e(_e)));let fe=n([]),we=n(),d=!1;async function V(v){if(!d){d=!0;try{const xe=await Se.subagents(v);if(v!==w())return;t(fe,[...xe.subagents??[]].sort((Be,re)=>Number(re.busy??!1)-Number(Be.busy??!1))),t(we,v)}catch{t(fe,[])}finally{d=!1}}}const ee=v=>`ocrc.subparent.${v}`;let Z=n();function Ue(v){try{t(Z,sessionStorage.getItem(ee(v))??void 0)}catch{t(Z,void 0)}}Ue(w());function Qe(v){try{sessionStorage.setItem(ee(v.id),w())}catch{}t(R,!1),Ba({id:`sub:${v.id}`,kind:"subagent",title:v.title||"…"+v.id.slice(-6),childId:v.id}),Ht.set(!0)}function Te(){const v=e(Z);t(Z,void 0),v&&Q()(v)}let ie=n(),Me=n(!1),De=n(!1),u=n(!1),R=n(!1);function ye(){t(I,!e(I)),X({expanded:e(I)})}function ut(){X({dismissed:[...e(P).dismissed??[],w()].slice(-20)}),t(R,!1)}function st(){X({dismissed:(e(P).dismissed??[]).filter(v=>v!==w())}),t(I,!0),X({expanded:e(I)})}function Ne(){t(R,!1),Oa("tasks"),Ht.set(!0)}let Oe=n(),Ve=n(),We=n(),Le=n();function i(v){var Be,re,Y,de;const xe=v.target;if(e(R)){if((Be=e(Ve))!=null&&Be.contains(xe)||(re=e(Oe))!=null&&re.contains(xe))return;t(R,!1)}e(I)&&((Y=e(We))!=null&&Y.contains(xe)||(de=e(Le))!=null&&de.contains(xe)||(t(I,!1),X({expanded:!1})))}_(()=>(Ie(w()),e(pe)),()=>{w()!==e(pe)&&(t(pe,w()),Ce(w()))}),_(()=>(G(),Ie(w())),()=>{var v;t(y,((v=G()[w()])==null?void 0:v.lastSeq)??0)}),_(()=>(e(y),e(L),e(_e),e(K)),()=>{e(y)!==e(L)&&(t(L,e(y)),clearTimeout(e(_e)),t(_e,setTimeout(()=>t(K,e(K)+1),1e3)))}),_(()=>(e(K),Ie(w())),()=>{e(K)&&(Ce(w()),V(w()))}),_(()=>(S(),Ie(w())),()=>{t(g,S().find(v=>v.id===w()))}),_(()=>e(g),()=>{var v;t(D,((v=e(g))==null?void 0:v.title)??"")}),_(()=>e(m),()=>{t(M,e(m).items.filter(v=>v.status==="done"))}),_(()=>e(m),()=>{t(h,e(m).items.filter(v=>v.status==="running"))}),_(()=>e(m),()=>{t(O,e(m).items.filter(v=>v.status==="pending"))}),_(()=>e(O),()=>{t(k,Math.max(0,e(O).length-f))}),_(()=>e(m),()=>{t(H,e(m).total?e(m).done/e(m).total:0)}),_(()=>(e(P),Ie(w())),()=>{var v;t(te,((v=e(P).dismissed)==null?void 0:v.includes(w()))??!1)}),_(()=>e(fe),()=>{t(b,e(fe).filter(v=>v.busy))}),_(()=>e(fe),()=>{t(W,e(fe).filter(v=>!v.busy))}),_(()=>(e(I),Ie(w()),e(we)),()=>{e(I)&&w()&&e(we)!==w()&&V(w())}),_(()=>Ie(w()),()=>{w()&&Ue(w())}),_(()=>(Ie(w()),e(ie)),()=>{w()!==e(ie)&&(t(ie,w()),t(Me,!1),t(De,!1),t(u,!1),t(R,!1))}),$t(),gt();var q=Mt();$("pointerdown",ht,i);var J=Fe(q);{var be=v=>{var xe=on(),Be=Fe(xe);{var re=me=>{var ce=As(),Pe=o(s(ce),2),Ye=s(Pe,!0),Ge=o(Ye,2,!0);a(Pe),a(ce),T(()=>{E(Ye,(e(m),l(()=>e(m).done))),E(Ge,(e(m),l(()=>e(m).total)))}),$("click",ce,st),c(me,ce)},Y=me=>{var ce=en(),Pe=Fe(ce);{var Ye=U=>{var he=Ps();c(U,he)};A(Pe,U=>{e(x)||U(Ye)})}var Ge=o(Pe,2),ct=s(Ge),et=o(s(ct),2),nt=s(et,!0);a(et);var vt=o(et,2);Ze(vt,U=>t(Oe,U),()=>e(Oe));var It=o(vt,2);a(ct);var r=o(ct,2);{var B=U=>{var he=Fs(),ae=s(he),qe=o(ae,2);{var Re=He=>{var rt=Rs();$("click",rt,ut),c(He,rt)};A(qe,He=>{e(x)||He(Re)})}a(he),Ze(he,He=>t(Ve,He),()=>e(Ve)),$("click",ae,Ne),c(U,he)};A(r,U=>{e(R)&&U(B)})}var ve=o(r,2),dt=s(ve);{var Ct=U=>{var he=zs(),ae=o(s(he),2),qe=s(ae);a(ae),a(he),T(Re=>E(qe,`返回父会话 …${Re??""}`),[()=>(e(Z),l(()=>e(Z).slice(-8)))]),$("click",he,Te),c(U,he)};A(dt,U=>{e(Z)&&U(Ct)})}var ot=o(dt,2),Tt=s(ot);a(ot);var Ut=o(ot,2);{var ia=U=>{var he=Ns(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Mt(),xt=Fe(ft);je(xt,1,()=>e(M),tt=>tt.text,(tt,ge)=>{var Je=Ls(),mt=o(s(Je)),jt=s(mt,!0);a(mt),a(Je),T(()=>E(jt,(e(ge),l(()=>e(ge).text)))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(Me)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(Me)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(Me)}),E(rt,`已完成 ${e(M),l(()=>e(M).length)??""}`)}),$("click",ae,()=>t(Me,!e(Me))),c(U,he)};A(Ut,U=>{e(M),l(()=>e(M).length)&&U(ia)})}var Gt=o(Ut,2);je(Gt,1,()=>e(h),U=>U.text,(U,he)=>{var ae=Ws(),qe=o(s(ae)),Re=s(qe,!0);a(qe),a(ae),T(()=>E(Re,(e(he),l(()=>e(he).text)))),c(U,ae)});var Vt=o(Gt,2);je(Vt,1,()=>(e(O),l(()=>e(O).slice(0,f))),U=>U.text,(U,he)=>{var ae=Hs(),qe=o(s(ae)),Re=s(qe,!0);a(qe),a(ae),T(()=>E(Re,(e(he),l(()=>e(he).text)))),c(U,ae)});var Yt=o(Vt,2);{var ca=U=>{var he=Js(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Mt(),xt=Fe(ft);je(xt,1,()=>(e(O),l(()=>e(O).slice(f))),tt=>tt.text,(tt,ge)=>{var Je=Ks(),mt=o(s(Je)),jt=s(mt,!0);a(mt),a(Je),T(()=>E(jt,(e(ge),l(()=>e(ge).text)))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(De)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(De)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(De)}),E(rt,`待处理 ${e(k)??""}`)}),$("click",ae,()=>t(De,!e(De))),c(U,he)};A(Yt,U=>{e(k)>0&&U(ca)})}var Xt=o(Yt,2);{var va=U=>{var he=Vs(),ae=Fe(he),qe=s(ae),Re=s(qe);a(qe),a(ae);var He=o(ae,2);je(He,1,()=>e(b),rt=>rt.id,(rt,Ke)=>{var pt=Gs(),Xe=o(s(pt),2);{var ft=ge=>{var Je=Us(),mt=s(Je);a(Je),T(()=>E(mt,`${e(Ke),l(()=>e(Ke).done)??""}/${e(Ke),l(()=>e(Ke).total)??""}`)),c(ge,Je)};A(Xe,ge=>{e(Ke),l(()=>e(Ke).total>0)&&ge(ft)})}var xt=o(Xe,2),tt=s(xt,!0);a(xt),qt(2),a(pt),T(ge=>E(tt,ge),[()=>(e(Ke),l(()=>e(Ke).title||"…"+e(Ke).id.slice(-6)))]),$("click",pt,()=>Qe(e(Ke))),c(rt,pt)}),T(()=>E(Re,`子代理 · 运行中 ${e(b),l(()=>e(b).length)??""}`)),c(U,he)};A(Xt,U=>{e(b),l(()=>e(b).length)&&U(va)})}var da=o(Xt,2);{var ua=U=>{var he=Qs(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Mt(),xt=Fe(ft);je(xt,1,()=>e(W),tt=>tt.id,(tt,ge)=>{var Je=Zs(),mt=s(Je);{var jt=_t=>{var Dt=Ys();c(_t,Dt)};A(mt,_t=>{e(ge),l(()=>e(ge).total>0&&e(ge).done>=e(ge).total)&&_t(jt)})}var Zt=o(mt,2);{var pa=_t=>{var Dt=Xs(),ma=s(Dt);a(Dt),T(()=>E(ma,`${e(ge),l(()=>e(ge).done)??""}/${e(ge),l(()=>e(ge).total)??""}`)),c(_t,Dt)};A(Zt,_t=>{e(ge),l(()=>e(ge).total>0)&&_t(pa)})}var Qt=o(Zt,2),fa=s(Qt,!0);a(Qt),qt(2),a(Je),T(_t=>E(fa,_t),[()=>(e(ge),l(()=>e(ge).title||"…"+e(ge).id.slice(-6)))]),$("click",Je,()=>Qe(e(ge))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(u)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(u)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(u)}),E(rt,`已结束 ${e(W),l(()=>e(W).length)??""}`)}),$("click",ae,()=>t(u,!e(u))),c(U,he)};A(da,U=>{e(W),l(()=>e(W).length)&&U(ua)})}a(ve),a(Ge),Ze(Ge,U=>t(We,U),()=>e(We)),T(U=>{E(nt,U),E(Tt,`任务 ${e(m),l(()=>e(m).done)??""}/${e(m),l(()=>e(m).total)??""}`)},[()=>(e(D),Ie(w()),l(()=>e(D)||"…"+w().slice(-8)))]),$("click",vt,Da(()=>t(R,!e(R)))),$("click",It,ye),c(me,ce)};A(Be,me=>{e(te)&&!e(x)?me(re):e(I)&&me(Y,1)})}var de=o(Be,2);{var Ae=me=>{var ce=an(),Pe=o(s(ce),2),Ye=s(Pe,!0),Ge=o(Ye,2,!0);a(Pe);var ct=o(Pe,2);{var et=nt=>{var vt=tn(),It=s(vt,!0);a(vt),T(()=>E(It,(e(b),l(()=>e(b).length)))),c(nt,vt)};A(ct,nt=>{e(b),l(()=>e(b).length>0)&&nt(et)})}qt(2),a(ce),Ze(ce,nt=>t(Le,nt),()=>e(Le)),T(()=>{ue(ce,"aria-label",(e(m),l(()=>`展开计划 ${e(m).done}/${e(m).total}`))),E(Ye,(e(m),l(()=>e(m).done))),E(Ge,(e(m),l(()=>e(m).total)))}),$("click",ce,ye),c(me,ce)},it=me=>{var ce=nn(),Pe=s(ce),Ye=s(Pe);ue(Ye,"r",F);var Ge=o(Ye);ue(Ge,"r",F),a(Pe);var ct=o(Pe,2),et=s(ct,!0),nt=o(et,2,!0);a(ct);var vt=o(ct,2);{var It=r=>{var B=sn(),ve=s(B,!0);a(B),T(()=>E(ve,(e(b),l(()=>e(b).length)))),c(r,B)};A(vt,r=>{e(b),l(()=>e(b).length>0)&&r(It)})}a(ce),Ze(ce,r=>t(Le,r),()=>e(Le)),T(r=>{ue(ce,"aria-label",(e(m),e(I),l(()=>`计划 ${e(m).done}/${e(m).total} — ${e(I)?"收起":"展开"}`))),ue(ce,"aria-expanded",e(I)),ue(Ge,"stroke-dasharray",r),E(et,(e(m),l(()=>e(m).done))),E(nt,(e(m),l(()=>e(m).total)))},[()=>(e(H),l(()=>`${Math.max(N*e(H),N*.02)} ${N}`))]),$("click",ce,ye),c(me,ce)};A(de,me=>{e(x)&&!e(I)?me(Ae):!e(te)&&!(e(x)&&!e(I))&&me(it,1)})}c(v,xe)},Ee=At(()=>(e(oe),Ie(w()),e(m),e(fe),e(Z),se(),l(()=>e(oe)===w()&&(e(m).total>0||e(fe).length>0||e(Z))&&se()("todos"))));A(J,v=>{e(Ee)&&v(be)})}c($e,q),wt(),C()}var ln=p('<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>'),cn=p('<span class="branch mono svelte-eho102"> </span>'),vn=p('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span> <button class="abort svelte-eho102">停止</button>',1),dn=p('<span class="idle mono svelte-eho102">空闲</span>'),un=p('<button class="load-earlier mono svelte-eho102"> </button>'),pn=p('<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>'),fn=p('<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>'),mn=p('<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>'),hn=p('<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 $n($e,le){kt(le,!1);const G=()=>ze(Aa,"$page",g),S=()=>ze(Kt,"$feeds",g),se=()=>ze(Pt,"$sessionList",g),ne=()=>ze(la,"$composerEmpty",g),C=()=>ze(na,"$leftPanelOpen",g),y=()=>ze(Ra,"$feedResyncing",g),[g,D]=Ot(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n(),w=n();let Q=n(),j=n(),f=n(),F,N=n(""),x,z,ke=n(!1),P=n(0),I=n(0),X=n(),m=n(!0);function oe(){e(Q)&&St(Q,e(Q).scrollTop=e(Q).scrollHeight)}function Ce(){e(Q)&&t(m,e(Q).scrollHeight-e(Q).scrollTop-e(Q).clientHeight<80)}const pe=80,K=50;let L=n(pe),_e=n(0),fe=n(!0),we=n(!1),d=n("");async function V(){if(e(we)||!e(h))return;if(e(k).length>e(L)){t(L,e(L)+pe);return}if(!e(fe))return;t(we,!0);const r=e(Q),B=r?{h:r.scrollHeight,top:r.scrollTop}:null;try{const ve=await Se.history(e(h),{limit:K,offset:e(_e)});(ve.cards??[]).length===0?t(fe,!1):(xa(e(h),ve.cards),t(_e,e(_e)+K),t(L,e(L)+pe),ve.hasMore===!1&&t(fe,!1),B&&r&&(await Rt(),r.scrollTop=r.scrollHeight-B.h+B.top))}catch(ve){console.warn("[page] loadEarlier failed",ve)}finally{t(we,!1)}}let ee=n("");function Z(r){if(r<60)return`${r}s`;const B=Math.floor(r/60),ve=r%60;return ve===0?`${B}m`:`${B}m ${ve}s`}function Ue(){ye()}const Qe=["总结这个项目","最近有什么改动?","运行检查"];let Te=n(!1),ie=n([]),Me;async function De(r,B){if(Me!==B){Me=B;try{const ve=await Se.suggestions(r);t(ie,ve.suggestions??[])}catch{t(ie,[])}}}let u=n(),R=n([]);function ye(){if(!e(h))return;const r=[...e(k)].reverse().find(ve=>ve.kind==="user"),B=r==null?void 0:r.text;B&&Se.sendMessage({sessionId:e(h),text:B,clientId:`web_${Date.now()}`})}async function ut(){if(!(!e(h)||e(ke))){t(ke,!0);try{await Se.abort(e(h))}catch{}finally{t(ke,!1)}}}Jt(()=>{x=new ResizeObserver(()=>{e(j)&&(document.documentElement.style.setProperty("--composer-h",`${e(j).offsetHeight}px`),e(m)&&oe()),e(Q)&&document.documentElement.style.setProperty("--sbw",`${e(Q).offsetWidth-e(Q).clientWidth}px`)}),e(j)&&x.observe(e(j)),e(Q)&&x.observe(e(Q)),F=new IntersectionObserver(ve=>{e(m)&&ve.some(dt=>!dt.isIntersecting)&&requestAnimationFrame(oe)},{root:e(Q),threshold:0}),e(f)&&F.observe(e(f));const r=window.visualViewport,B=()=>{e(m)&&requestAnimationFrame(oe)};r==null||r.addEventListener("resize",B),z=()=>r==null?void 0:r.removeEventListener("resize",B)}),zt(()=>{x==null||x.disconnect(),F==null||F.disconnect(),z==null||z(),e(X)&&clearInterval(e(X))}),_(()=>G(),()=>{t(h,G().params.sessionId??"")}),_(()=>(e(h),e(d)),()=>{e(h)&&e(h)!==e(d)&&(t(d,e(h)),t(L,pe),t(_e,0),t(fe,!0),t(we,!1))}),_(()=>(S(),e(h)),()=>{t(O,S()[e(h)])}),_(()=>e(O),()=>{t(k,Nt(e(O)))}),_(()=>(e(L),e(k)),()=>{t(M,e(L)>=e(k).length?e(k):e(k).slice(-e(L)))}),_(()=>(se(),e(h)),()=>{t(H,se().find(r=>r.id===e(h)))}),_(()=>e(H),()=>{var r;t(te,(r=e(H))!=null&&r.directory&&e(H).directory.replace(/\/+$/,"").split("/").pop()||"")}),_(()=>e(O),()=>{t(b,(()=>{if(!e(O)||e(O).order.length===0)return!1;const r=e(O).byId[e(O).order[e(O).order.length-1]];return(r==null?void 0:r.kind)==="thinking"||(r==null?void 0:r.kind)==="streaming"||(r==null?void 0:r.kind)==="think-stream"})())}),_(()=>(e(b),e(ee),e(h),e(P),e(X)),()=>{e(b)?(e(ee)!==e(h)&&(t(ee,e(h)),t(P,0)),!e(P)&&typeof window<"u"&&(t(P,Date.now()),t(I,0),e(X)&&clearInterval(e(X)),t(X,setInterval(()=>{t(I,Math.floor((Date.now()-e(P))/1e3))},1e3)))):(t(P,0),t(I,0),t(ee,""),e(X)&&(clearInterval(e(X)),t(X,void 0)))}),_(()=>e(k),()=>{t(W,e(k).length?e(k)[e(k).length-1]:null)}),_(()=>(e(b),e(W),e(h)),()=>{var r;!e(b)&&((r=e(W))==null?void 0:r.kind)==="assistant"&&e(h)&&e(W).id&&De(e(h),e(W).id)}),_(()=>(e(h),e(u)),()=>{e(h)!==e(u)&&(t(u,e(h)),t(Te,!1))}),_(()=>(e(b),e(Te),ne(),e(ie),e(k)),()=>{e(b)||e(Te)||!ne()?t(R,[]):e(ie).length>0?t(R,e(ie)):e(k).length===0?t(R,Qe):t(R,[])}),_(()=>(e(h),e(O),e(k)),()=>{var r;t(w,`${e(h)}:${((r=e(O))==null?void 0:r.lastSeq)??0}:${e(k).length}`)}),_(()=>(e(w),e(N),e(m)),()=>{e(w)!==e(N)&&(t(N,e(w)),Rt().then(()=>{e(m)&&oe()}))}),$t(),gt();var st=hn(),Ne=Fe(st),Oe=s(Ne),Ve=s(Oe),We=s(Ve),Le=o(We,2);{var i=r=>{var B=ln();$("click",B,()=>na.set(!0)),c(r,B)};A(Le,r=>{C()||r(i)})}var q=o(Le,2);Bs(q,{get activeId(){return e(h)}});var J=o(q,2);{var be=r=>{var B=cn(),ve=s(B,!0);a(B),T(()=>E(ve,e(te))),c(r,B)};A(J,r=>{e(te)&&r(be)})}a(Ve);var Ee=o(Ve,2),v=s(Ee);{var xe=r=>{var B=vn(),ve=Fe(B),dt=o(s(ve));a(ve);var Ct=o(ve,2);T(ot=>{E(dt,` 运行中 ${ot??""}`),Ct.disabled=e(ke)},[()=>(e(I),l(()=>Z(e(I))))]),$("click",Ct,ut),c(r,B)},Be=r=>{var B=dn();c(r,B)};A(v,r=>{e(b)?r(xe):r(Be,-1)})}var re=o(v,2);a(Ee),a(Oe);var Y=o(Oe,2);let de;var Ae=s(Y);{var it=r=>{var B=un(),ve=s(B,!0);a(B),T(()=>{B.disabled=e(we),E(ve,e(we)?"加载中…":"加载更早消息")}),$("click",B,V),c(r,B)};A(Ae,r=>{e(k),e(L),e(fe),l(()=>e(k).length>0&&(e(k).length>e(L)||e(fe)))&&r(it)})}var me=o(Ae,2);je(me,1,()=>e(M),r=>r.id,(r,B)=>{{let ve=Sa(()=>(e(B),e(W),e(b),l(()=>{var dt;return e(B).id===((dt=e(W))==null?void 0:dt.id)&&e(B).kind==="assistant"&&!e(b)?Ue:void 0})));Pa(r,{get card(){return e(B)},onRetry:ye,get onRegenerate(){return e(ve)}})}});var ce=o(me,2);Ze(ce,r=>t(f,r),()=>e(f));var Pe=o(ce,2);{var Ye=r=>{var B=Mt(),ve=Fe(B);{var dt=ot=>{var Tt=pn();c(ot,Tt)},Ct=ot=>{var Tt=fn();c(ot,Tt)};A(ve,ot=>{e(O)?ot(Ct,-1):ot(dt)})}c(r,B)};A(Pe,r=>{e(k),l(()=>e(k).length===0)&&r(Ye)})}a(Y),a(Ne),Ze(Ne,r=>t(Q,r),()=>e(Q));var Ge=o(Ne,2);{var ct=r=>{var B=mn();$("click",B,oe),c(r,B)};A(Ge,r=>{e(m),e(k),l(()=>!e(m)&&e(k).length>0)&&r(ct)})}var et=o(Ge,2),nt=s(et);La(nt,{get suggestions(){return e(R)},onPick:r=>Wt.set({text:r,nonce:Date.now()}),onDismiss:()=>{t(Te,!0),t(R,[])}});var vt=o(nt,2);Es(vt,{get sessionId(){return e(h)}}),a(et),Ze(et,r=>t(j,r),()=>e(j));var It=o(et,2);rn(It,{get sessionId(){return e(h)},onJump:r=>Ft("/"+r)}),T(()=>de=at(Y,1,"stream conversation-emerald svelte-eho102",null,de,{suppressed:y()})),$("click",We,()=>Ft("/")),$("click",re,()=>Ht.update(r=>!r)),$("scroll",Ne,Ce),c($e,st),wt(),D()}export{$n as component};
|
|
1
|
+
import"../chunks/CWj6FrbW.js";import{r as gt,f as Se,p as Kt,l as Nt,i as ha,F as _a,y as ba,k as oa,j as ga,z as Pt,e as ka,a as ea,b as ta,c as aa,B as wa,w as xa}from"../chunks/DUrEVoyD.js";import{aE as kt,M as Et,a4 as Fe,w as c,aB as wt,V as Ie,b4 as l,J as s,aK as a,a$ as T,a8 as e,aR as E,a3 as y,aU as o,a6 as p,az as Jt,ap as _,aO as t,aq as $t,$ as ht,au as n,b2 as ra,aw as Ct,av as St,ay as zt,b1 as Rt,aI as ya,b5 as At,b0 as $a,a7 as Ia,Z as Sa}from"../chunks/BjY4dxcB.js";import{i as A,s as Ot,a as ze}from"../chunks/DIEDQ_hk.js";import{i as je,A as qt,I as lt,y as ue,z as at,l as yt,c as Ca,f as Wt,h as Ma,g as la,t as Ea,v as qa,J as sa,a as Ta,E as ja,D as Da,q as Oa,m as Ht,r as Ba,s as Aa,C as Pa,o as na,j as Ra}from"../chunks/CAbq0Oyb.js";import{p as bt,b as Ze}from"../chunks/C2FuqD3s.js";import{g as Ft}from"../chunks/Bs0uKk8J.js";var Fa=p('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),za=p('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function La($e,le){kt(le,!1);let G=bt(le,"suggestions",24,()=>[]),S=bt(le,"onPick",8,()=>{}),se=bt(le,"onDismiss",8,()=>{});gt();var ne=Et(),C=Fe(ne);{var $=g=>{var D=za(),M=s(D);je(M,3,G,k=>k,(k,H,te)=>{var b=Fa(),W=s(b,!0);a(b),T(w=>{qt(b,w),E(W,e(H))},[()=>(Ie(e(te)),l(()=>`animation-delay: ${Math.min(e(te),5)*45}ms`))]),y("click",b,()=>S()(e(H))),c(k,b)});var h=o(M,2),O=s(h);lt(O,{name:"close",size:12}),a(h),a(D),y("click",h,function(...k){var H;(H=se())==null||H.apply(this,k)}),c(g,D)};A(C,g=>{Ie(G()),l(()=>G().length>0)&&g($)})}c($e,ne),wt()}var Na=p('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Wa=p('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Ha=p('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ka=p('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <!></div>');function Ja($e,le){kt(le,!1);const G=n();let S=n(!1),se=n(),ne=n([]),C=n({agent:null,model:null});async function $(){try{await(async j=>{var f=ra(j,2);t(ne,f[0]),t(C,f[1])})(await Promise.all([Se.agents(),Se.getOverrides()]))}catch{}}Jt($);async function g(j){await Se.setOverrides({agent:j.name}),await $(),t(S,!1)}async function D(){await Se.setOverrides({agent:null}),await $(),t(S,!1)}function M(j){j.key==="Escape"&&e(S)&&t(S,!1)}function h(j){e(S)&&e(se)&&!e(se).contains(j.target)&&t(S,!1)}_(()=>e(C),()=>{t(G,e(C).agent??"default")}),$t(),gt();var O=Ka();y("keydown",ht,M),y("click",ht,h);var k=s(O),H=s(k);lt(H,{name:"cpu",size:11});var te=o(H,2),b=s(te,!0);a(te);var W=o(te,2);lt(W,{name:"caret-down",size:9}),a(k);var w=o(k,2);{var Q=j=>{var f=Ha(),F=s(f);{var N=P=>{var I=Na();c(P,I)};A(F,P=>{e(ne),l(()=>e(ne).length===0)&&P(N)})}var x=o(F,2);je(x,1,()=>e(ne),P=>P.name,(P,I)=>{var X=Wa();let m;var oe=s(X),Ce=s(oe,!0);a(oe);var pe=o(oe,2),K=s(pe,!0);a(pe),a(X),T(L=>{m=at(X,1,"opt svelte-1f5vmb3",null,m,{sel:e(I).name===e(C).agent}),ue(X,"aria-selected",(e(I),e(C),l(()=>e(I).name===e(C).agent))),E(Ce,(e(I),l(()=>e(I).name))),E(K,L)},[()=>(e(I),l(()=>e(I).model.split("/").pop()))]),y("click",X,()=>g(e(I))),c(P,X)});var z=o(x,2),_e=s(z);lt(_e,{name:"close",size:11}),Ct(),a(z),a(f),T(()=>ue(z,"aria-selected",(e(C),l(()=>e(C).agent==null)))),y("click",z,D),c(j,f)};A(w,j=>{e(S)&&j(Q)})}a(O),Ze(O,j=>t(se,j),()=>e(se)),T(()=>{ue(k,"aria-expanded",e(S)),E(b,e(G))}),y("click",k,()=>{t(S,!e(S)),e(S)&&$()}),c($e,O),wt()}var Ua=p('<div class="none label svelte-1005b73">暂无模型</div>'),Ga=p('<button role="option"><span> </span></button>'),Va=p('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Ya=p('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Xa=p('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <!></div>');function Za($e,le){kt(le,!1);const G=n();let S=n(!1),se=n(),ne=n([]),C=n({agent:null,model:null});async function $(){try{await(async j=>{var f=ra(j,2);t(ne,f[0]),t(C,f[1])})(await Promise.all([Se.models(),Se.getOverrides()]))}catch{}}Jt($);async function g(j,f){await Se.setOverrides({model:{providerID:j,modelID:f}}),await $(),t(S,!1)}async function D(){await Se.setOverrides({model:null}),await $(),t(S,!1)}function M(j){j.key==="Escape"&&e(S)&&t(S,!1)}function h(j){e(S)&&e(se)&&!e(se).contains(j.target)&&t(S,!1)}_(()=>e(C),()=>{var j;t(G,((j=e(C).model)==null?void 0:j.modelID)??"model")}),$t(),gt();var O=Xa();y("keydown",ht,M),y("click",ht,h);var k=s(O),H=s(k);lt(H,{name:"bolt",size:11});var te=o(H,2),b=s(te,!0);a(te);var W=o(te,2);lt(W,{name:"caret-down",size:9}),a(k);var w=o(k,2);{var Q=j=>{var f=Ya(),F=s(f);{var N=P=>{var I=Ua();c(P,I)};A(F,P=>{e(ne),l(()=>e(ne).length===0)&&P(N)})}var x=o(F,2);je(x,1,()=>e(ne),P=>P.id,(P,I)=>{var X=Va(),m=Fe(X),oe=s(m,!0);a(m);var Ce=o(m,2);je(Ce,1,()=>(e(I),l(()=>e(I).models)),pe=>pe.id,(pe,K)=>{var L=Ga();let be;var fe=s(L),we=s(fe,!0);a(fe),a(L),T(()=>{var d,V;be=at(L,1,"opt svelte-1005b73",null,be,{sel:((d=e(C).model)==null?void 0:d.providerID)===e(I).id&&((V=e(C).model)==null?void 0:V.modelID)===e(K).id}),ue(L,"aria-selected",(e(C),e(I),e(K),l(()=>{var ee,Z;return((ee=e(C).model)==null?void 0:ee.providerID)===e(I).id&&((Z=e(C).model)==null?void 0:Z.modelID)===e(K).id}))),E(we,(e(K),l(()=>e(K).name||e(K).id)))}),y("click",L,()=>g(e(I).id,e(K).id)),c(pe,L)}),T(()=>E(oe,(e(I),l(()=>e(I).id)))),c(P,X)});var z=o(x,2),_e=s(z);lt(_e,{name:"close",size:11}),Ct(),a(z),a(f),T(()=>ue(z,"aria-selected",(e(C),l(()=>e(C).model==null)))),y("click",z,D),c(j,f)};A(w,j=>{e(S)&&j(Q)})}a(O),Ze(O,j=>t(se,j),()=>e(se)),T(()=>{ue(k,"aria-expanded",e(S)),E(b,e(G))}),y("click",k,()=>{t(S,!e(S)),e(S)&&$()}),c($e,O),wt()}var Qa=p('<button role="option"> </button>'),es=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ts=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),as=p('<button role="option"> </button>'),ss=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),ns=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),os=p('<div class="controls svelte-dkbq22"><!> <!></div>');function rs($e,le){kt(le,!1);const G=n(),S=n(),se=n(),ne=n();let C=bt(le,"sessionId",8),$=n({}),g=n(null);async function D(){const f=C();try{const F=await Se.controls(f);if(f!==C())return;t($,F)}catch{f===C()&&t($,{})}}async function M(f){e($).mode&&St($,e($).mode={...e($).mode,current:f}),t(g,null);try{await Se.setMode(C(),f)}catch{}await D()}async function h(f){e($).model&&St($,e($).model={...e($).model,current:f}),t(g,null);try{await Se.setModel(C(),f)}catch{}await D()}function O(f){t(g,e(g)===f?null:f)}let k=n();function H(f){f.key==="Escape"&&e(g)&&t(g,null)}function te(f){e(g)&&e(k)&&!e(k).contains(f.target)&&t(g,null)}_(()=>Ie(C()),()=>{C()&&D()}),_(()=>e($),()=>{var f;t(G,((f=e($).mode)==null?void 0:f.options)??[])}),_(()=>e($),()=>{var f;t(S,((f=e($).model)==null?void 0:f.options)??[])}),_(()=>e($),()=>{var f,F,N;t(se,((F=(f=e($).mode)==null?void 0:f.options.find(x=>{var z;return x.id===((z=e($).mode)==null?void 0:z.current)}))==null?void 0:F.name)??((N=e($).mode)==null?void 0:N.current)??"mode")}),_(()=>e($),()=>{var f,F,N;t(ne,((F=(f=e($).model)==null?void 0:f.options.find(x=>{var z;return x.id===((z=e($).model)==null?void 0:z.current)}))==null?void 0:F.name)??((N=e($).model)==null?void 0:N.current)??"model")}),$t(),gt();var b=os();y("keydown",ht,H),y("click",ht,te);var W=s(b);{var w=f=>{var F=ts(),N=s(F),x=s(N);lt(x,{name:"bolt",size:11});var z=o(x,2),_e=s(z,!0);a(z);var P=o(z,2);lt(P,{name:"caret-down",size:9}),a(N);var I=o(N,2);{var X=m=>{var oe=es(),Ce=o(s(oe),2);je(Ce,1,()=>e(G),yt,(pe,K)=>{var L=Qa();let be;var fe=s(L,!0);a(L),T(()=>{var we;be=at(L,1,"opt svelte-dkbq22",null,be,{sel:e(K).id===((we=e($).mode)==null?void 0:we.current)}),ue(L,"aria-selected",(e(K),e($),l(()=>{var d;return e(K).id===((d=e($).mode)==null?void 0:d.current)}))),E(fe,(e(K),l(()=>e(K).name)))}),y("click",L,()=>M(e(K).id)),c(pe,L)}),a(oe),c(m,oe)};A(I,m=>{e(g)==="mode"&&m(X)})}a(F),T(()=>{ue(N,"aria-expanded",e(g)==="mode"),E(_e,e(se))}),y("click",N,()=>O("mode")),c(f,F)};A(W,f=>{e(G),l(()=>e(G).length>0)&&f(w)})}var Q=o(W,2);{var j=f=>{var F=ns(),N=s(F),x=s(N);lt(x,{name:"cpu",size:11});var z=o(x,2),_e=s(z,!0);a(z);var P=o(z,2);lt(P,{name:"caret-down",size:9}),a(N);var I=o(N,2);{var X=m=>{var oe=ss(),Ce=o(s(oe),2);je(Ce,1,()=>e(S),yt,(pe,K)=>{var L=as();let be;var fe=s(L,!0);a(L),T(()=>{var we;be=at(L,1,"opt svelte-dkbq22",null,be,{sel:e(K).id===((we=e($).model)==null?void 0:we.current)}),ue(L,"aria-selected",(e(K),e($),l(()=>{var d;return e(K).id===((d=e($).model)==null?void 0:d.current)}))),E(fe,(e(K),l(()=>e(K).name)))}),y("click",L,()=>h(e(K).id)),c(pe,L)}),a(oe),c(m,oe)};A(I,m=>{e(g)==="model"&&m(X)})}a(F),T(()=>{ue(N,"aria-expanded",e(g)==="model"),E(_e,e(ne))}),y("click",N,()=>O("model")),c(f,F)};A(Q,f=>{e(S),l(()=>e(S).length>0)&&f(j)})}a(b),Ze(b,f=>t(k,f),()=>e(k)),c($e,b),wt()}const Bt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Lt($e){if(!$e)return 0;let le=0;for(const S of $e)(S.codePointAt(0)??0)>=11904&&le++;const G=$e.length-le;return Math.round(le*.6+G*.25)}function ls($e,le){let G=0,S=0,se=0;for(const g of $e)if(g.kind==="user")G+=Lt(String(g.text??""));else if(g.kind==="assistant")for(const D of g.blocks??[])D.type==="text"?S+=Lt(String(D.text??"")):D.type==="tool"&&(se+=Lt(String(D.args??"")));const ne=G+S+se,C=Math.max(0,le-ne),$=[{key:"用户",tokens:G,color:Bt.user},{key:"助手",tokens:S,color:Bt.assistant},{key:"工具调用",tokens:se,color:Bt.tool}];return C>0&&$.push({key:"其他",tokens:C,color:Bt.other}),{segments:$.filter(g=>g.tokens>0),accounted:ne,used:le}}var is=p('<span class="seg svelte-4bdpxt"></span>'),cs=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),vs=p('<span class="seg svelte-4bdpxt"></span>'),ds=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=p('<div class="bd-label svelte-4bdpxt">细分 <span class="est svelte-4bdpxt">估算</span></div> <div class="bar bd svelte-4bdpxt"></div> <div class="legend svelte-4bdpxt"></div>',1),ps=p('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),fs=p('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=p('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=p('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=p('<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="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div> <!> <div class="rows svelte-4bdpxt"><!> <!> <!> <!></div></div>'),bs=p('<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 gs($e,le){kt(le,!1);const G=()=>ze(Kt,"$feeds",S),[S,se]=Ot(),ne=n(),C=n(),$=n(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n(),w=n(),Q=n(),j=n(),f=n(),F=n();let N=bt(le,"sessionId",8),x=n({}),z=n(!1),_e=n(),P,I=n(),X=n(-1),m=n();async function oe(u){try{t(x,await Se.context(u))}catch{}}zt(()=>{clearTimeout(e(m)),clearTimeout(P)});const Ce=10,pe=2*Math.PI*Ce;function K(u){return u>=1e6?(u/1e6).toFixed(1)+"M":u>=1e3?(u/1e3).toFixed(1)+"k":String(u)}function L(u){return u==null?"—":`$${u.toFixed(3)}`}function be(){clearTimeout(P),t(z,!0)}function fe(){clearTimeout(P),P=setTimeout(()=>t(z,!1),180)}function we(u){u.key==="Escape"&&t(z,!1)}function d(u){e(z)&&e(_e)&&!e(_e).contains(u.target)&&t(z,!1)}_(()=>(Ie(N()),e(I)),()=>{N()!==e(I)&&(t(I,N()),oe(N()))}),_(()=>(G(),Ie(N())),()=>{var u;t(ne,((u=G()[N()])==null?void 0:u.lastSeq)??0)}),_(()=>(e(ne),e(X),e(m),Ie(N())),()=>{e(ne)!==e(X)&&(t(X,e(ne)),clearTimeout(e(m)),t(m,setTimeout(()=>void oe(N()),1e3)))}),_(()=>e(x),()=>{var u,R;t(C,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.input)=="number"?e(x).tokens.input:0)}),_(()=>e(x),()=>{var u,R;t($,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.output)=="number"?e(x).tokens.output:0)}),_(()=>(e(x),e(C),e($)),()=>{var u,R;t(g,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.used)=="number"?e(x).tokens.used:e(C)+e($))}),_(()=>e(x),()=>{var u,R;t(D,typeof((R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.max)=="number"?e(x).tokens.max:void 0)}),_(()=>(e(g),e(D)),()=>{t(M,e(g)>0&&e(D)?Math.min(100,e(g)/e(D)*100):0)}),_(()=>e(M),()=>{t(h,e(M)>=90?"var(--err)":e(M)>=70?"var(--warn)":"var(--ok)")}),_(()=>e(x),()=>{var u;t(O,(u=e(x))!=null&&u.model?String(e(x).model).split("/").pop():void 0)}),_(()=>e(x),()=>{var u;t(k,typeof((u=e(x))==null?void 0:u.cost)=="number"?e(x).cost:void 0)}),_(()=>e(x),()=>{var u,R,ye;t(H,typeof((ye=(R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.cache)==null?void 0:ye.read)=="number"?e(x).tokens.cache.read:0)}),_(()=>e(x),()=>{var u,R,ye;t(te,typeof((ye=(R=(u=e(x))==null?void 0:u.tokens)==null?void 0:R.cache)==null?void 0:ye.write)=="number"?e(x).tokens.cache.write:0)}),_(()=>(e(C),e(H)),()=>{t(b,e(C)+e(H)>0?Math.round(e(H)/(e(C)+e(H))*100):void 0)}),_(()=>(G(),Ie(N())),()=>{t(W,G()[N()])}),_(()=>e(W),()=>{t(w,Nt(e(W)).filter(u=>u.kind==="user"||u.kind==="assistant").length)}),_(()=>(e(H),e(te),e(C),e($)),()=>{t(Q,[{key:"缓存读",v:e(H),c:"var(--ok)"},{key:"缓存写",v:e(te),c:"var(--info)"},{key:"输入",v:e(C),c:"var(--text-3)"},{key:"输出",v:e($),c:"var(--hl-purple)"}].filter(u=>u.v>0))}),_(()=>e(Q),()=>{t(j,e(Q).reduce((u,R)=>u+R.v,0))}),_(()=>e(W),()=>{t(f,Nt(e(W)))}),_(()=>(e(f),e(g)),()=>{t(F,ls(e(f),e(g)))}),$t(),gt();var V=bs();y("keydown",ht,we),y("click",ht,d);var ee=s(V),Z=s(ee),Ue=s(Z);ue(Ue,"r",Ce);var Qe=o(Ue);ue(Qe,"r",Ce),a(Z);var Te=o(Z,2),ie=s(Te,!0);Ct(),a(Te),a(ee);var Me=o(ee,2);{var De=u=>{var R=_s(),ye=s(R),it=o(s(ye),2),st=s(it);a(it),a(ye);var Ne=o(ye,2);je(Ne,5,()=>e(Q),yt,(re,Y)=>{var de=is();T(()=>qt(de,(e(Y),e(j),l(()=>`width:${e(Y).v/(e(j)||1)*100}%; background:${e(Y).c}`)))),c(re,de)}),a(Ne);var Oe=o(Ne,2);je(Oe,5,()=>e(Q),yt,(re,Y)=>{var de=cs(),Ae=s(de),ct=o(Ae);a(de),T(me=>{qt(Ae,(e(Y),l(()=>`background:${e(Y).c}`))),E(ct,`${e(Y),l(()=>e(Y).key)??""} ${me??""}`)},[()=>(e(Y),l(()=>K(e(Y).v)))]),c(re,de)}),a(Oe);var Ve=o(Oe,2);{var We=re=>{var Y=us(),de=o(Fe(Y),2);je(de,5,()=>(e(F),l(()=>e(F).segments)),yt,(ct,me)=>{var ve=vs();T(()=>qt(ve,(e(me),e(F),l(()=>`width:${e(me).tokens/(e(F).used||1)*100}%; background:${e(me).color}`)))),c(ct,ve)}),a(de);var Ae=o(de,2);je(Ae,5,()=>(e(F),l(()=>e(F).segments)),yt,(ct,me)=>{var ve=ds(),Pe=s(ve),Ye=o(Pe);a(ve),T(Ge=>{qt(Pe,(e(me),l(()=>`background:${e(me).color}`))),E(Ye,`${e(me),l(()=>e(me).key)??""} ${Ge??""}%`)},[()=>(e(g),e(me),l(()=>e(g)>0?(e(me).tokens/e(g)*100).toFixed(1):"0"))]),c(ct,ve)}),a(Ae),c(re,Y)};A(Ve,re=>{e(F),l(()=>e(F).segments.length>0)&&re(We)})}var Le=o(Ve,2),i=s(Le);{var q=re=>{var Y=ps(),de=o(s(Y)),Ae=s(de);a(de),a(Y),T(()=>E(Ae,`${e(b)??""}%`)),c(re,Y)};A(i,re=>{e(b)!=null&&re(q)})}var J=o(i,2);{var ge=re=>{var Y=fs(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(()=>E(Ae,e(w))),c(re,Y)};A(J,re=>{e(w)>0&&re(ge)})}var Ee=o(J,2);{var v=re=>{var Y=ms(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(()=>E(Ae,e(O))),c(re,Y)};A(Ee,re=>{e(O)&&re(v)})}var xe=o(Ee,2);{var Be=re=>{var Y=hs(),de=o(s(Y)),Ae=s(de,!0);a(de),a(Y),T(ct=>E(Ae,ct),[()=>(e(k),l(()=>L(e(k))))]),c(re,Y)};A(xe,re=>{e(k)!=null&&re(Be)})}a(Le),a(R),T((re,Y)=>E(st,`${re??""} / ${Y??""}`),[()=>(e(g),l(()=>K(e(g)))),()=>(e(D),l(()=>K(e(D))))]),c(u,R)};A(Me,u=>{e(z)&&e(D)&&u(De)})}a(V),Ze(V,u=>t(_e,u),()=>e(_e)),T((u,R,ye)=>{ue(ee,"aria-label",u),ue(ee,"aria-expanded",e(z)),ue(Qe,"stroke",e(h)),ue(Qe,"stroke-dasharray",R),E(ie,ye)},[()=>(e(M),l(()=>`上下文占用 ${e(M).toFixed(0)}%`)),()=>(e(M),l(()=>`${Math.max(pe*e(M)/100,e(M)>0?1.5:0)} ${pe}`)),()=>(e(M),l(()=>e(M).toFixed(0)))]),y("click",ee,()=>t(z,!e(z))),y("mouseenter",V,be),y("mouseleave",V,fe),c($e,V),wt(),se()}var ks=p('<div class="error svelte-60fagq" role="alert"> </div>'),ws=p('<button role="option"> </button>'),xs=p('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),ys=p('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),$s=p('<div class="thumbnails svelte-60fagq"></div>'),Is=p('<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),Ss=p("<!> <!>",1),Cs=Ia('<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>'),Ms=p('<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> <button class="send svelte-60fagq" aria-label="发送"><!></button></div></div></div></div>');function Es($e,le){kt(le,!1);const G=()=>ze(Wt,"$composerDraft",C),S=()=>ze(oa,"$can",C),se=()=>ze(Ma,"$connection",C),ne=()=>ze(ha,"$backendName",C),[C,$]=Ot(),g=n();let D=bt(le,"sessionId",8),M=n(""),h=n(),O=n(!1),k=n(""),H=n(!1),te=n(),b=n([]),W=n([]),w=n(0),Q=0,j;function f(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function F(i){const q=new FileReader;q.onload=()=>{var Be;const J=q.result,ge=J.indexOf(","),Ee=J.slice(0,ge),v=J.slice(ge+1),xe=((Be=Ee.match(/data:(.*?);/))==null?void 0:Be[1])??i.type;t(b,[...e(b),{data:v,mimeType:xe,preview:J}])},q.readAsDataURL(i)}function N(i){const q=i.target;if(q.files){for(const J of q.files)F(J);q.value=""}}function x(i){if(!S()("imageInput")||!i.clipboardData)return;const q=[...i.clipboardData.items].filter(J=>J.type.startsWith("image/"));if(q.length){i.preventDefault();for(const J of q){const ge=J.getAsFile();ge&&F(ge)}}}function z(i){t(b,e(b).filter((q,J)=>J!==i))}function _e(){if(!e(h))return null;const i=e(h).selectionStart,J=e(M).slice(0,i).match(/(^|[\s])@([^\s]*)$/);return J?{token:J[2],start:i-J[2].length-1}:null}function P(){const i=_e();if(!i){t(W,[]),clearTimeout(j);return}Q=i.start,t(w,0),clearTimeout(j);const q=i.token;j=setTimeout(async()=>{try{t(W,await Se.files(D(),q))}catch{t(W,[])}},150)}function I(i){const q=e(h).selectionStart,J=e(M).slice(0,Q),ge=e(M).slice(q),Ee=`@${i} `;t(M,J+Ee+ge),t(W,[]),Rt().then(()=>{const v=J.length+Ee.length;St(h,e(h).selectionStart=St(h,e(h).selectionEnd=v)),e(h).focus(),oe()})}async function X(){var Ee;const i=e(M).trim();if(!i&&e(b).length===0||e(O))return;if(se()!=="connected"){t(k,"Disconnected — reconnecting…");return}const q=f(),J=e(b).map(({data:v,mimeType:xe})=>({data:v,mimeType:xe}));t(O,!0),t(k,""),_a({kind:"user",sessionId:D(),text:i,ts:Date.now(),id:`user:${q}`}),t(M,"");const ge=[...e(b)];t(b,[]),oe();try{await Se.sendMessage({sessionId:D(),text:i,clientId:q,...J.length?{images:J}:{}})}catch(v){t(k,`Send failed: ${v.message}`),ba(`user:${q}`),t(M,i),t(b,ge)}finally{t(O,!1),(Ee=e(h))==null||Ee.focus()}}function m(i){if(e(W).length>0){if(i.key==="ArrowDown"){i.preventDefault(),t(w,Math.min(e(w)+1,e(W).length-1));return}if(i.key==="ArrowUp"){i.preventDefault(),t(w,Math.max(e(w)-1,0));return}if(i.key==="Enter"||i.key==="Tab"){i.preventDefault(),I(e(W)[e(w)]);return}if(i.key==="Escape"){i.preventDefault(),t(W,[]);return}}i.key!=="Enter"||i.shiftKey||i.isComposing||i.keyCode===229||(i.preventDefault(),X())}function oe(){e(h)&&(St(h,e(h).style.height="auto"),St(h,e(h).style.height=Math.min(e(h).scrollHeight,140)+"px"))}zt(()=>clearTimeout(j)),_(()=>(G(),e(h)),()=>{const i=G();i&&(t(M,i.text),Wt.set(void 0),Rt().then(()=>{var q;return(q=e(h))==null?void 0:q.focus()}),oe())}),_(()=>e(M),()=>{la.set(!e(M).trim())}),_(()=>e(M),()=>{t(g,e(M).trim().length>0)}),$t(),gt();var Ce=Ms(),pe=s(Ce),K=s(pe);{var L=i=>{var q=ks(),J=s(q,!0);a(q),T(()=>E(J,e(k))),c(i,q)};A(K,i=>{e(k)&&i(L)})}var be=o(K,2);let fe;var we=s(be);{var d=i=>{var q=xs();je(q,5,()=>e(W),yt,(J,ge,Ee)=>{var v=ws();let xe;var Be=s(v,!0);a(v),T(()=>{xe=at(v,1,"mention-row svelte-60fagq",null,xe,{active:Ee===e(w)}),ue(v,"aria-selected",Ee===e(w)),E(Be,e(ge))}),y("mousedown",v,qa(()=>I(e(ge)))),c(J,v)}),a(q),c(i,q)};A(we,i=>{e(W),l(()=>e(W).length>0)&&i(d)})}var V=o(we,2);{var ee=i=>{var q=$s();je(q,5,()=>e(b),yt,(J,ge,Ee)=>{var v=ys(),xe=s(v),Be=o(xe,2);a(v),T(()=>ue(xe,"src",(e(ge),l(()=>e(ge).preview)))),y("click",Be,()=>z(Ee)),c(J,v)}),a(q),c(i,q)};A(V,i=>{e(b),l(()=>e(b).length>0)&&i(ee)})}var Z=o(V,2);ya(Z),ue(Z,"rows",1),Ze(Z,i=>t(h,i),()=>e(h));var Ue=o(Z,2),Qe=s(Ue);{var Te=i=>{var q=Is(),J=Fe(q),ge=o(J,2);Ze(ge,Ee=>t(te,Ee),()=>e(te)),y("click",J,()=>e(te).click()),y("change",ge,N),c(i,q)},ie=At(()=>(S(),l(()=>S()("imageInput"))));A(Qe,i=>{e(ie)&&i(Te)})}var Me=o(Qe,2);{var De=i=>{var q=Ss(),J=Fe(q);Ja(J,{});var ge=o(J,2);Za(ge,{}),c(i,q)},u=At(()=>(S(),l(()=>S()("catalog"))));A(Me,i=>{e(u)&&i(De)})}var R=o(Me,2);{var ye=i=>{rs(i,{get sessionId(){return D()}})},it=At(()=>(S(),l(()=>S()("sessionControls"))));A(R,i=>{e(it)&&i(ye)})}var st=o(R,2);gs(st,{get sessionId(){return D()}});var Ne=o(st,2),Oe=o(Ne,6),Ve=s(Oe);{var We=i=>{var q=$a("…");c(i,q)},Le=i=>{var q=Cs();c(i,q)};A(Ve,i=>{e(O)?i(We):i(Le,-1)})}a(Oe),a(Ue),a(be),a(pe),a(Ce),T(i=>{fe=at(be,1,"box svelte-60fagq",null,fe,{focused:e(H),"has-text":e(g)}),ue(Z,"placeholder",se()==="connected"?`给 ${ne()} 留言…`:"连接断开…"),Oe.disabled=i},[()=>(e(O),e(M),e(b),se(),l(()=>e(O)||!e(M).trim()&&e(b).length===0||se()!=="connected"))]),Ca(Z,()=>e(M),i=>t(M,i)),y("keydown",Z,m),y("input",Z,()=>{oe(),P()}),y("paste",Z,x),y("focus",Z,()=>t(H,!0)),y("blur",Z,()=>t(H,!1)),y("click",Z,P),y("click",Ne,()=>Ea.set(!0)),y("click",Oe,X),c($e,Ce),wt(),$()}var qs=p('<span class="check svelte-rgafhj">✓</span>'),Ts=p('<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>'),js=p('<div class="empty svelte-rgafhj"> </div>'),Ds=p('<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>'),Os=p('<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 Bs($e,le){kt(le,!1);const G=()=>ze(ga,"$backends",C),S=()=>ze(Pt,"$sessionList",C),se=()=>ze(Ta,"$activeWorkspace",C),ne=()=>ze(sa,"$workspaces",C),[C,$]=Ot(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n();let H=bt(le,"activeId",8,void 0),te=n(!1),b=n(!1);function W(d){const V=d.split(/[\s\-_:./]+/).filter(Boolean);return V.length>=2?(V[0][0]+V[1][0]).toUpperCase():d.slice(0,2).toUpperCase()}function w(d){return W((d==null?void 0:d.name)||(d==null?void 0:d.id)||"OC")}function Q(d){return d==="online"||d==="connected"?"online":d==="connecting"||d==="reconnecting"?"connecting":d==="offline"?"offline":"online"}function j(){t(te,!e(te))}function f(d){t(te,!1),Ft(`/${d}/`)}async function F(){var V;if(e(b))return;const d=se()||((V=ne()[0])==null?void 0:V.directory)||"";t(b,!0);try{await wa(e(g));const ee=await Se.createSession({directory:d});Pt.set(await Se.sessions()),sa.set(await Se.workspaces()),t(te,!1),Ft(`/${ee.id}/`)}catch(ee){alert(`Create session failed: ${ee.message}`)}finally{t(b,!1)}}function N(d){d.key==="Escape"&&t(te,!1)}function x(d){const V=Date.now()-d,ee=Math.floor(V/6e4);if(ee<1)return"now";if(ee<60)return`${ee}m`;const Z=Math.floor(ee/60);return Z<24?`${Z}h`:`${Math.floor(Z/24)}d`}function z(d){return(d.includes("_")?d.slice(d.indexOf("_")+1):d).slice(-8)}_(()=>G(),()=>{var d,V,ee;t(g,((d=G())==null?void 0:d.activeId)??((ee=(V=G())==null?void 0:V.backends[0])==null?void 0:ee.id)??"opencode")}),_(()=>(G(),e(g)),()=>{var d;t(D,(d=G())==null?void 0:d.backends.find(V=>V.id===e(g)))}),_(()=>e(g),()=>{t(M,ka(e(g)))}),_(()=>(S(),e(g)),()=>{t(h,S().filter(d=>d.backendId===e(g)||!d.backendId&&e(g)==="opencode").sort((d,V)=>V.lastActiveAt-d.lastActiveAt))}),_(()=>(S(),Ie(H())),()=>{t(O,S().find(d=>d.id===H()))}),_(()=>e(O),()=>{var d;t(k,((d=e(O))==null?void 0:d.title)||"Untitled session")}),$t(),gt();var _e=Os();y("keydown",ht,N);var P=s(_e),I=s(P),X=s(I,!0);a(I);var m=o(I,2),oe=s(m),Ce=s(oe,!0);a(oe),a(m);var pe=o(m,2),K=s(pe,!0);a(pe);var L=o(pe,2),be=s(L);lt(be,{name:"caret-down",size:11}),a(L),a(P);var fe=o(P,2);{var we=d=>{var V=Ds(),ee=s(V);je(ee,5,()=>e(h),Te=>Te.id,(Te,ie)=>{var Me=Ts();let De;var u=s(Me),R=o(u,2),ye=s(R),it=s(ye,!0);a(ye);var st=o(ye,2),Ne=s(st);a(st),a(R);var Oe=o(R,2);{var Ve=We=>{var Le=qs();c(We,Le)};A(Oe,We=>{e(ie),Ie(H()),l(()=>e(ie).id===H())&&We(Ve)})}a(Me),T((We,Le)=>{De=at(Me,1,"row svelte-rgafhj",null,De,{active:e(ie).id===H()}),at(u,1,`dot ${e(ie),Ie(H()),l(()=>e(ie).id===H()?"active":"")??""}`,"svelte-rgafhj"),E(it,(e(ie),l(()=>e(ie).title||"Untitled session"))),E(Ne,`${We??""} · ${Le??""}`)},[()=>(e(ie),l(()=>z(e(ie).id))),()=>(e(ie),l(()=>x(e(ie).lastActiveAt)))]),y("click",Me,()=>f(e(ie).id)),c(Te,Me)},Te=>{var ie=js(),Me=s(ie);a(ie),T(()=>E(Me,`No sessions on ${e(D),l(()=>{var De,u;return((De=e(D))==null?void 0:De.name)??((u=e(D))==null?void 0:u.id)??"this agent"})??""}.`)),c(Te,ie)}),a(ee);var Z=o(ee,2),Ue=s(Z),Qe=s(Ue);a(Ue),a(Z),a(V),T(()=>{Ue.disabled=e(b),E(Qe,`+ New session on ${e(D),l(()=>{var Te,ie;return((Te=e(D))==null?void 0:Te.name)??((ie=e(D))==null?void 0:ie.id)??"agent"})??""}`)}),y("click",Ue,F),c(d,V)};A(fe,d=>{e(te)&&d(we)})}a(_e),T((d,V,ee)=>{ue(P,"aria-expanded",e(te)),qt(I,`background:${Ie(ea),e(M),l(()=>ea[e(M)])??""}; color:${Ie(ta),e(M),l(()=>ta[e(M)])??""}; border-color:${Ie(aa),e(M),l(()=>aa[e(M)])??""}`),E(X,d),at(m,1,`status-dot ${V??""}`,"svelte-rgafhj"),E(Ce,ee),E(K,e(k))},[()=>(e(D),l(()=>w(e(D)))),()=>(e(D),l(()=>{var d;return Q((d=e(D))==null?void 0:d.status)})),()=>(e(D),l(()=>{var d;return Q((d=e(D))==null?void 0:d.status)}))]),y("click",P,j),c($e,_e),wt(),$()}var As=p('<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>'),Ps=p('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Rs=p('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Fs=p('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),zs=p('<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>'),Ls=p('<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>'),Ns=p('<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),Ws=p('<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>'),Hs=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Ks=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=p('<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),Us=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),Gs=p('<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>'),Vs=p('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Ys=p('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),Xs=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),Zs=p('<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>'),Qs=p('<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),en=p('<!> <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),tn=p('<span class="badge mono svelte-w3h0m4"> </span>'),an=p('<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>'),sn=p('<span class="badge mono svelte-w3h0m4"> </span>'),nn=p('<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>'),on=p("<!> <!>",1);function rn($e,le){kt(le,!1);const G=()=>ze(Kt,"$feeds",ne),S=()=>ze(Pt,"$sessionList",ne),se=()=>ze(oa,"$can",ne),[ne,C]=Ot(),$=n(),g=n(),D=n(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n();let w=bt(le,"sessionId",8),Q=bt(le,"onJump",8,()=>{});const j="ocrc.planHud.v3",f=5,F=16,N=2*Math.PI*F;let x=n(!1);try{t(x,window.matchMedia("(min-width: 821px)").matches)}catch{}const z=e(x)?"ocrc.planHud.dt3":j;function _e(){if(typeof localStorage>"u")return{};try{const v=JSON.parse(localStorage.getItem(z)??"{}")??{};return{dismissed:v.dismissed,expanded:v.expanded}}catch{return{}}}let P=n(_e()),I=n(e(P).expanded??e(x));function X(v){if(t(P,{...e(P),...v}),!(typeof localStorage>"u"))try{localStorage.setItem(z,JSON.stringify(e(P)))}catch{}}let m=n({total:0,done:0,items:[]}),oe=n();async function Ce(v){try{const xe=await Se.todo(v);if(v!==w())return;t(oe,v),t(m,ja(xe))}catch{}}let pe=n(),K=n(0),L=n(-1),be=n();zt(()=>clearTimeout(e(be)));let fe=n([]),we=n(),d=!1;async function V(v){if(!d){d=!0;try{const xe=await Se.subagents(v);if(v!==w())return;t(fe,[...xe.subagents??[]].sort((Be,re)=>Number(re.busy??!1)-Number(Be.busy??!1))),t(we,v)}catch{t(fe,[])}finally{d=!1}}}const ee=v=>`ocrc.subparent.${v}`;let Z=n();function Ue(v){try{t(Z,sessionStorage.getItem(ee(v))??void 0)}catch{t(Z,void 0)}}Ue(w());function Qe(v){try{sessionStorage.setItem(ee(v.id),w())}catch{}t(R,!1),Ba({id:`sub:${v.id}`,kind:"subagent",title:v.title||"…"+v.id.slice(-6),childId:v.id}),Ht.set(!0)}function Te(){const v=e(Z);t(Z,void 0),v&&Q()(v)}let ie=n(),Me=n(!1),De=n(!1),u=n(!1),R=n(!1);function ye(){t(I,!e(I)),X({expanded:e(I)})}function it(){X({dismissed:[...e(P).dismissed??[],w()].slice(-20)}),t(R,!1)}function st(){X({dismissed:(e(P).dismissed??[]).filter(v=>v!==w())}),t(I,!0),X({expanded:e(I)})}function Ne(){t(R,!1),Oa("tasks"),Ht.set(!0)}let Oe=n(),Ve=n(),We=n(),Le=n();function i(v){var Be,re,Y,de;const xe=v.target;if(e(R)){if((Be=e(Ve))!=null&&Be.contains(xe)||(re=e(Oe))!=null&&re.contains(xe))return;t(R,!1)}e(I)&&((Y=e(We))!=null&&Y.contains(xe)||(de=e(Le))!=null&&de.contains(xe)||(t(I,!1),X({expanded:!1})))}_(()=>(Ie(w()),e(pe)),()=>{w()!==e(pe)&&(t(pe,w()),Ce(w()))}),_(()=>(G(),Ie(w())),()=>{var v;t($,((v=G()[w()])==null?void 0:v.lastSeq)??0)}),_(()=>(e($),e(L),e(be),e(K)),()=>{e($)!==e(L)&&(t(L,e($)),clearTimeout(e(be)),t(be,setTimeout(()=>t(K,e(K)+1),1e3)))}),_(()=>(e(K),Ie(w())),()=>{e(K)&&(Ce(w()),V(w()))}),_(()=>(S(),Ie(w())),()=>{t(g,S().find(v=>v.id===w()))}),_(()=>e(g),()=>{var v;t(D,((v=e(g))==null?void 0:v.title)??"")}),_(()=>e(m),()=>{t(M,e(m).items.filter(v=>v.status==="done"))}),_(()=>e(m),()=>{t(h,e(m).items.filter(v=>v.status==="running"))}),_(()=>e(m),()=>{t(O,e(m).items.filter(v=>v.status==="pending"))}),_(()=>e(O),()=>{t(k,Math.max(0,e(O).length-f))}),_(()=>e(m),()=>{t(H,e(m).total?e(m).done/e(m).total:0)}),_(()=>(e(P),Ie(w())),()=>{var v;t(te,((v=e(P).dismissed)==null?void 0:v.includes(w()))??!1)}),_(()=>e(fe),()=>{t(b,e(fe).filter(v=>v.busy))}),_(()=>e(fe),()=>{t(W,e(fe).filter(v=>!v.busy))}),_(()=>(e(I),Ie(w()),e(we)),()=>{e(I)&&w()&&e(we)!==w()&&V(w())}),_(()=>Ie(w()),()=>{w()&&Ue(w())}),_(()=>(Ie(w()),e(ie)),()=>{w()!==e(ie)&&(t(ie,w()),t(Me,!1),t(De,!1),t(u,!1),t(R,!1))}),$t(),gt();var q=Et();y("pointerdown",ht,i);var J=Fe(q);{var ge=v=>{var xe=on(),Be=Fe(xe);{var re=me=>{var ve=As(),Pe=o(s(ve),2),Ye=s(Pe,!0),Ge=o(Ye,2,!0);a(Pe),a(ve),T(()=>{E(Ye,(e(m),l(()=>e(m).done))),E(Ge,(e(m),l(()=>e(m).total)))}),y("click",ve,st),c(me,ve)},Y=me=>{var ve=en(),Pe=Fe(ve);{var Ye=U=>{var he=Ps();c(U,he)};A(Pe,U=>{e(x)||U(Ye)})}var Ge=o(Pe,2),vt=s(Ge),et=o(s(vt),2),nt=s(et,!0);a(et);var dt=o(et,2);Ze(dt,U=>t(Oe,U),()=>e(Oe));var It=o(dt,2);a(vt);var r=o(vt,2);{var B=U=>{var he=Fs(),ae=s(he),qe=o(ae,2);{var Re=He=>{var rt=Rs();y("click",rt,it),c(He,rt)};A(qe,He=>{e(x)||He(Re)})}a(he),Ze(he,He=>t(Ve,He),()=>e(Ve)),y("click",ae,Ne),c(U,he)};A(r,U=>{e(R)&&U(B)})}var ce=o(r,2),ut=s(ce);{var Mt=U=>{var he=zs(),ae=o(s(he),2),qe=s(ae);a(ae),a(he),T(Re=>E(qe,`返回父会话 …${Re??""}`),[()=>(e(Z),l(()=>e(Z).slice(-8)))]),y("click",he,Te),c(U,he)};A(ut,U=>{e(Z)&&U(Mt)})}var ot=o(ut,2),Tt=s(ot);a(ot);var Ut=o(ot,2);{var ia=U=>{var he=Ns(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Et(),xt=Fe(ft);je(xt,1,()=>e(M),tt=>tt.text,(tt,ke)=>{var Je=Ls(),mt=o(s(Je)),jt=s(mt,!0);a(mt),a(Je),T(()=>E(jt,(e(ke),l(()=>e(ke).text)))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(Me)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(Me)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(Me)}),E(rt,`已完成 ${e(M),l(()=>e(M).length)??""}`)}),y("click",ae,()=>t(Me,!e(Me))),c(U,he)};A(Ut,U=>{e(M),l(()=>e(M).length)&&U(ia)})}var Gt=o(Ut,2);je(Gt,1,()=>e(h),U=>U.text,(U,he)=>{var ae=Ws(),qe=o(s(ae)),Re=s(qe,!0);a(qe),a(ae),T(()=>E(Re,(e(he),l(()=>e(he).text)))),c(U,ae)});var Vt=o(Gt,2);je(Vt,1,()=>(e(O),l(()=>e(O).slice(0,f))),U=>U.text,(U,he)=>{var ae=Hs(),qe=o(s(ae)),Re=s(qe,!0);a(qe),a(ae),T(()=>E(Re,(e(he),l(()=>e(he).text)))),c(U,ae)});var Yt=o(Vt,2);{var ca=U=>{var he=Js(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Et(),xt=Fe(ft);je(xt,1,()=>(e(O),l(()=>e(O).slice(f))),tt=>tt.text,(tt,ke)=>{var Je=Ks(),mt=o(s(Je)),jt=s(mt,!0);a(mt),a(Je),T(()=>E(jt,(e(ke),l(()=>e(ke).text)))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(De)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(De)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(De)}),E(rt,`待处理 ${e(k)??""}`)}),y("click",ae,()=>t(De,!e(De))),c(U,he)};A(Yt,U=>{e(k)>0&&U(ca)})}var Xt=o(Yt,2);{var va=U=>{var he=Vs(),ae=Fe(he),qe=s(ae),Re=s(qe);a(qe),a(ae);var He=o(ae,2);je(He,1,()=>e(b),rt=>rt.id,(rt,Ke)=>{var pt=Gs(),Xe=o(s(pt),2);{var ft=ke=>{var Je=Us(),mt=s(Je);a(Je),T(()=>E(mt,`${e(Ke),l(()=>e(Ke).done)??""}/${e(Ke),l(()=>e(Ke).total)??""}`)),c(ke,Je)};A(Xe,ke=>{e(Ke),l(()=>e(Ke).total>0)&&ke(ft)})}var xt=o(Xe,2),tt=s(xt,!0);a(xt),Ct(2),a(pt),T(ke=>E(tt,ke),[()=>(e(Ke),l(()=>e(Ke).title||"…"+e(Ke).id.slice(-6)))]),y("click",pt,()=>Qe(e(Ke))),c(rt,pt)}),T(()=>E(Re,`子代理 · 运行中 ${e(b),l(()=>e(b).length)??""}`)),c(U,he)};A(Xt,U=>{e(b),l(()=>e(b).length)&&U(va)})}var da=o(Xt,2);{var ua=U=>{var he=Qs(),ae=Fe(he),qe=s(ae);let Re;var He=o(qe,2),rt=s(He);a(He),a(ae);var Ke=o(ae,2);{var pt=Xe=>{var ft=Et(),xt=Fe(ft);je(xt,1,()=>e(W),tt=>tt.id,(tt,ke)=>{var Je=Zs(),mt=s(Je);{var jt=_t=>{var Dt=Ys();c(_t,Dt)};A(mt,_t=>{e(ke),l(()=>e(ke).total>0&&e(ke).done>=e(ke).total)&&_t(jt)})}var Zt=o(mt,2);{var pa=_t=>{var Dt=Xs(),ma=s(Dt);a(Dt),T(()=>E(ma,`${e(ke),l(()=>e(ke).done)??""}/${e(ke),l(()=>e(ke).total)??""}`)),c(_t,Dt)};A(Zt,_t=>{e(ke),l(()=>e(ke).total>0)&&_t(pa)})}var Qt=o(Zt,2),fa=s(Qt,!0);a(Qt),Ct(2),a(Je),T(_t=>E(fa,_t),[()=>(e(ke),l(()=>e(ke).title||"…"+e(ke).id.slice(-6)))]),y("click",Je,()=>Qe(e(ke))),c(tt,Je)}),c(Xe,ft)};A(Ke,Xe=>{e(u)&&Xe(pt)})}T(()=>{ue(ae,"aria-expanded",e(u)),Re=at(qe,0,"caret svelte-w3h0m4",null,Re,{open:e(u)}),E(rt,`已结束 ${e(W),l(()=>e(W).length)??""}`)}),y("click",ae,()=>t(u,!e(u))),c(U,he)};A(da,U=>{e(W),l(()=>e(W).length)&&U(ua)})}a(ce),a(Ge),Ze(Ge,U=>t(We,U),()=>e(We)),T(U=>{E(nt,U),E(Tt,`任务 ${e(m),l(()=>e(m).done)??""}/${e(m),l(()=>e(m).total)??""}`)},[()=>(e(D),Ie(w()),l(()=>e(D)||"…"+w().slice(-8)))]),y("click",dt,Da(()=>t(R,!e(R)))),y("click",It,ye),c(me,ve)};A(Be,me=>{e(te)&&!e(x)?me(re):e(I)&&me(Y,1)})}var de=o(Be,2);{var Ae=me=>{var ve=an(),Pe=o(s(ve),2),Ye=s(Pe,!0),Ge=o(Ye,2,!0);a(Pe);var vt=o(Pe,2);{var et=nt=>{var dt=tn(),It=s(dt,!0);a(dt),T(()=>E(It,(e(b),l(()=>e(b).length)))),c(nt,dt)};A(vt,nt=>{e(b),l(()=>e(b).length>0)&&nt(et)})}Ct(2),a(ve),Ze(ve,nt=>t(Le,nt),()=>e(Le)),T(()=>{ue(ve,"aria-label",(e(m),l(()=>`展开计划 ${e(m).done}/${e(m).total}`))),E(Ye,(e(m),l(()=>e(m).done))),E(Ge,(e(m),l(()=>e(m).total)))}),y("click",ve,ye),c(me,ve)},ct=me=>{var ve=nn(),Pe=s(ve),Ye=s(Pe);ue(Ye,"r",F);var Ge=o(Ye);ue(Ge,"r",F),a(Pe);var vt=o(Pe,2),et=s(vt,!0),nt=o(et,2,!0);a(vt);var dt=o(vt,2);{var It=r=>{var B=sn(),ce=s(B,!0);a(B),T(()=>E(ce,(e(b),l(()=>e(b).length)))),c(r,B)};A(dt,r=>{e(b),l(()=>e(b).length>0)&&r(It)})}a(ve),Ze(ve,r=>t(Le,r),()=>e(Le)),T(r=>{ue(ve,"aria-label",(e(m),e(I),l(()=>`计划 ${e(m).done}/${e(m).total} — ${e(I)?"收起":"展开"}`))),ue(ve,"aria-expanded",e(I)),ue(Ge,"stroke-dasharray",r),E(et,(e(m),l(()=>e(m).done))),E(nt,(e(m),l(()=>e(m).total)))},[()=>(e(H),l(()=>`${Math.max(N*e(H),N*.02)} ${N}`))]),y("click",ve,ye),c(me,ve)};A(de,me=>{e(x)&&!e(I)?me(Ae):!e(te)&&!(e(x)&&!e(I))&&me(ct,1)})}c(v,xe)},Ee=At(()=>(e(oe),Ie(w()),e(m),e(fe),e(Z),se(),l(()=>e(oe)===w()&&(e(m).total>0||e(fe).length>0||e(Z))&&se()("todos"))));A(J,v=>{e(Ee)&&v(ge)})}c($e,q),wt(),C()}var ln=p('<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>'),cn=p('<span class="branch mono svelte-eho102"> </span>'),vn=p('<button class="pill running mono svelte-eho102" title="点击停止"><span class="dot svelte-eho102" aria-hidden="true"></span> <span class="stop-hint svelte-eho102">停止</span></button> <button class="abort svelte-eho102">停止</button>',1),dn=p('<span class="idle mono svelte-eho102">空闲</span>'),un=p('<button class="load-earlier mono svelte-eho102"> </button>'),pn=p('<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>'),fn=p('<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>'),mn=p('<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>'),hn=p('<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 $n($e,le){kt(le,!1);const G=()=>ze(Aa,"$page",g),S=()=>ze(Kt,"$feeds",g),se=()=>ze(Pt,"$sessionList",g),ne=()=>ze(la,"$composerEmpty",g),C=()=>ze(na,"$leftPanelOpen",g),$=()=>ze(Ra,"$feedResyncing",g),[g,D]=Ot(),M=n(),h=n(),O=n(),k=n(),H=n(),te=n(),b=n(),W=n(),w=n();let Q=n(),j=n(),f=n(),F,N=n(""),x,z,_e=n(!1),P=n(0),I=n(0),X=n(),m=n(!0);function oe(){e(Q)&&St(Q,e(Q).scrollTop=e(Q).scrollHeight)}function Ce(){e(Q)&&t(m,e(Q).scrollHeight-e(Q).scrollTop-e(Q).clientHeight<80)}const pe=80,K=50;let L=n(pe),be=n(0),fe=n(!0),we=n(!1),d=n("");async function V(){if(e(we)||!e(h))return;if(e(k).length>e(L)){t(L,e(L)+pe);return}if(!e(fe))return;t(we,!0);const r=e(Q),B=r?{h:r.scrollHeight,top:r.scrollTop}:null;try{const ce=await Se.history(e(h),{limit:K,offset:e(be)});(ce.cards??[]).length===0?t(fe,!1):(xa(e(h),ce.cards),t(be,e(be)+K),t(L,e(L)+pe),ce.hasMore===!1&&t(fe,!1),B&&r&&(await Rt(),r.scrollTop=r.scrollHeight-B.h+B.top))}catch(ce){console.warn("[page] loadEarlier failed",ce)}finally{t(we,!1)}}let ee=n("");function Z(r){if(r<60)return`${r}s`;const B=Math.floor(r/60),ce=r%60;return ce===0?`${B}m`:`${B}m ${ce}s`}function Ue(){ye()}const Qe=["总结这个项目","最近有什么改动?","运行检查"];let Te=n(!1),ie=n([]),Me;async function De(r,B){if(Me!==B){Me=B;try{const ce=await Se.suggestions(r);t(ie,ce.suggestions??[])}catch{t(ie,[])}}}let u=n(),R=n([]);function ye(){if(!e(h))return;const r=[...e(k)].reverse().find(ce=>ce.kind==="user"),B=r==null?void 0:r.text;B&&Se.sendMessage({sessionId:e(h),text:B,clientId:`web_${Date.now()}`})}async function it(){if(!(!e(h)||e(_e))){t(_e,!0);try{await Se.abort(e(h))}catch{}finally{t(_e,!1)}}}Jt(()=>{x=new ResizeObserver(()=>{e(j)&&(document.documentElement.style.setProperty("--composer-h",`${e(j).offsetHeight}px`),e(m)&&oe()),e(Q)&&document.documentElement.style.setProperty("--sbw",`${e(Q).offsetWidth-e(Q).clientWidth}px`)}),e(j)&&x.observe(e(j)),e(Q)&&x.observe(e(Q)),F=new IntersectionObserver(ce=>{e(m)&&ce.some(ut=>!ut.isIntersecting)&&requestAnimationFrame(oe)},{root:e(Q),threshold:0}),e(f)&&F.observe(e(f));const r=window.visualViewport,B=()=>{e(m)&&requestAnimationFrame(oe)};r==null||r.addEventListener("resize",B),z=()=>r==null?void 0:r.removeEventListener("resize",B)}),zt(()=>{x==null||x.disconnect(),F==null||F.disconnect(),z==null||z(),e(X)&&clearInterval(e(X))}),_(()=>G(),()=>{t(h,G().params.sessionId??"")}),_(()=>(e(h),e(d)),()=>{e(h)&&e(h)!==e(d)&&(t(d,e(h)),t(L,pe),t(be,0),t(fe,!0),t(we,!1))}),_(()=>(S(),e(h)),()=>{t(O,S()[e(h)])}),_(()=>e(O),()=>{t(k,Nt(e(O)))}),_(()=>(e(L),e(k)),()=>{t(M,e(L)>=e(k).length?e(k):e(k).slice(-e(L)))}),_(()=>(se(),e(h)),()=>{t(H,se().find(r=>r.id===e(h)))}),_(()=>e(H),()=>{var r;t(te,(r=e(H))!=null&&r.directory&&e(H).directory.replace(/\/+$/,"").split("/").pop()||"")}),_(()=>e(O),()=>{t(b,(()=>{if(!e(O)||e(O).order.length===0)return!1;const r=e(O).byId[e(O).order[e(O).order.length-1]];return(r==null?void 0:r.kind)==="thinking"||(r==null?void 0:r.kind)==="streaming"||(r==null?void 0:r.kind)==="think-stream"})())}),_(()=>(e(b),e(ee),e(h),e(P),e(X)),()=>{e(b)?(e(ee)!==e(h)&&(t(ee,e(h)),t(P,0)),!e(P)&&typeof window<"u"&&(t(P,Date.now()),t(I,0),e(X)&&clearInterval(e(X)),t(X,setInterval(()=>{t(I,Math.floor((Date.now()-e(P))/1e3))},1e3)))):(t(P,0),t(I,0),t(ee,""),e(X)&&(clearInterval(e(X)),t(X,void 0)))}),_(()=>e(k),()=>{t(W,e(k).length?e(k)[e(k).length-1]:null)}),_(()=>(e(b),e(W),e(h)),()=>{var r;!e(b)&&((r=e(W))==null?void 0:r.kind)==="assistant"&&e(h)&&e(W).id&&De(e(h),e(W).id)}),_(()=>(e(h),e(u)),()=>{e(h)!==e(u)&&(t(u,e(h)),t(Te,!1))}),_(()=>(e(b),e(Te),ne(),e(ie),e(k)),()=>{e(b)||e(Te)||!ne()?t(R,[]):e(ie).length>0?t(R,e(ie)):e(k).length===0?t(R,Qe):t(R,[])}),_(()=>(e(h),e(O),e(k)),()=>{var r;t(w,`${e(h)}:${((r=e(O))==null?void 0:r.lastSeq)??0}:${e(k).length}`)}),_(()=>(e(w),e(N),e(m)),()=>{e(w)!==e(N)&&(t(N,e(w)),Rt().then(()=>{e(m)&&oe()}))}),$t(),gt();var st=hn(),Ne=Fe(st),Oe=s(Ne),Ve=s(Oe),We=s(Ve),Le=o(We,2);{var i=r=>{var B=ln();y("click",B,()=>na.set(!0)),c(r,B)};A(Le,r=>{C()||r(i)})}var q=o(Le,2);Bs(q,{get activeId(){return e(h)}});var J=o(q,2);{var ge=r=>{var B=cn(),ce=s(B,!0);a(B),T(()=>E(ce,e(te))),c(r,B)};A(J,r=>{e(te)&&r(ge)})}a(Ve);var Ee=o(Ve,2),v=s(Ee);{var xe=r=>{var B=vn(),ce=Fe(B),ut=o(s(ce));Ct(),a(ce);var Mt=o(ce,2);T(ot=>{ce.disabled=e(_e),E(ut,` 运行中 ${ot??""} `),Mt.disabled=e(_e)},[()=>(e(I),l(()=>Z(e(I))))]),y("click",ce,it),y("click",Mt,it),c(r,B)},Be=r=>{var B=dn();c(r,B)};A(v,r=>{e(b)?r(xe):r(Be,-1)})}var re=o(v,2);a(Ee),a(Oe);var Y=o(Oe,2);let de;var Ae=s(Y);{var ct=r=>{var B=un(),ce=s(B,!0);a(B),T(()=>{B.disabled=e(we),E(ce,e(we)?"加载中…":"加载更早消息")}),y("click",B,V),c(r,B)};A(Ae,r=>{e(k),e(L),e(fe),l(()=>e(k).length>0&&(e(k).length>e(L)||e(fe)))&&r(ct)})}var me=o(Ae,2);je(me,1,()=>e(M),r=>r.id,(r,B)=>{{let ce=Sa(()=>(e(B),e(W),e(b),l(()=>{var ut;return e(B).id===((ut=e(W))==null?void 0:ut.id)&&e(B).kind==="assistant"&&!e(b)?Ue:void 0})));Pa(r,{get card(){return e(B)},onRetry:ye,get onRegenerate(){return e(ce)}})}});var ve=o(me,2);Ze(ve,r=>t(f,r),()=>e(f));var Pe=o(ve,2);{var Ye=r=>{var B=Et(),ce=Fe(B);{var ut=ot=>{var Tt=pn();c(ot,Tt)},Mt=ot=>{var Tt=fn();c(ot,Tt)};A(ce,ot=>{e(O)?ot(Mt,-1):ot(ut)})}c(r,B)};A(Pe,r=>{e(k),l(()=>e(k).length===0)&&r(Ye)})}a(Y),a(Ne),Ze(Ne,r=>t(Q,r),()=>e(Q));var Ge=o(Ne,2);{var vt=r=>{var B=mn();y("click",B,oe),c(r,B)};A(Ge,r=>{e(m),e(k),l(()=>!e(m)&&e(k).length>0)&&r(vt)})}var et=o(Ge,2),nt=s(et);La(nt,{get suggestions(){return e(R)},onPick:r=>Wt.set({text:r,nonce:Date.now()}),onDismiss:()=>{t(Te,!0),t(R,[])}});var dt=o(nt,2);Es(dt,{get sessionId(){return e(h)}}),a(et),Ze(et,r=>t(j,r),()=>e(j));var It=o(et,2);rn(It,{get sessionId(){return e(h)},onJump:r=>Ft("/"+r)}),T(()=>de=at(Y,1,"stream conversation-emerald svelte-eho102",null,de,{suppressed:$()})),y("click",We,()=>Ft("/")),y("click",re,()=>Ht.update(r=>!r)),y("scroll",Ne,Ce),c($e,st),wt(),D()}export{$n as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1790883155539"}
|
package/web/dist/index.html
CHANGED
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
<!-- iOS standalone PWA: fullscreen + translucent status bar (content padded via safe-area insets) -->
|
|
26
26
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
27
27
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
28
|
-
<link href="/_app/immutable/entry/start.
|
|
29
|
-
<link href="/_app/immutable/chunks/
|
|
28
|
+
<link href="/_app/immutable/entry/start.ZtTs7gQk.js" rel="modulepreload">
|
|
29
|
+
<link href="/_app/immutable/chunks/Bs0uKk8J.js" rel="modulepreload">
|
|
30
30
|
<link href="/_app/immutable/chunks/BjY4dxcB.js" rel="modulepreload">
|
|
31
|
-
<link href="/_app/immutable/entry/app.
|
|
31
|
+
<link href="/_app/immutable/entry/app.CiW3rfcJ.js" rel="modulepreload">
|
|
32
32
|
<link href="/_app/immutable/chunks/CWj6FrbW.js" rel="modulepreload">
|
|
33
33
|
<link href="/_app/immutable/chunks/DIEDQ_hk.js" rel="modulepreload">
|
|
34
34
|
<link href="/_app/immutable/chunks/C2FuqD3s.js" rel="modulepreload">
|
|
35
|
-
<link href="/_app/immutable/nodes/0.
|
|
35
|
+
<link href="/_app/immutable/nodes/0.DLMpdhCv.js" rel="modulepreload">
|
|
36
36
|
<link href="/_app/immutable/chunks/DUrEVoyD.js" rel="modulepreload">
|
|
37
|
-
<link href="/_app/immutable/chunks/
|
|
37
|
+
<link href="/_app/immutable/chunks/CAbq0Oyb.js" rel="modulepreload">
|
|
38
38
|
|
|
39
39
|
<link href="/_app/immutable/assets/Card.Cb4bHscp.css" rel="stylesheet">
|
|
40
40
|
<link href="/_app/immutable/assets/0.CAQ48mRR.css" rel="stylesheet">
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
<div style="display: contents">
|
|
44
44
|
<script>
|
|
45
45
|
{
|
|
46
|
-
|
|
46
|
+
__sveltekit_bccclz = {
|
|
47
47
|
base: ""
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
const element = document.currentScript.parentElement;
|
|
51
51
|
|
|
52
52
|
Promise.all([
|
|
53
|
-
import("/_app/immutable/entry/start.
|
|
54
|
-
import("/_app/immutable/entry/app.
|
|
53
|
+
import("/_app/immutable/entry/start.ZtTs7gQk.js"),
|
|
54
|
+
import("/_app/immutable/entry/app.CiW3rfcJ.js")
|
|
55
55
|
]).then(([kit, app]) => {
|
|
56
56
|
kit.start(app, element);
|
|
57
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=location.pathname.split("/").slice(0,-1).join("/"),m=[a+"/_app/immutable/entry/app.
|
|
1
|
+
const a=location.pathname.split("/").slice(0,-1).join("/"),m=[a+"/_app/immutable/entry/app.CiW3rfcJ.js",a+"/_app/immutable/nodes/0.DLMpdhCv.js",a+"/_app/immutable/assets/0.CAQ48mRR.css",a+"/_app/immutable/nodes/1.LoQi2ZnL.js",a+"/_app/immutable/nodes/2.BMC5DjNn.js",a+"/_app/immutable/assets/2.BNuGfmZP.css",a+"/_app/immutable/nodes/3.BcsqdVnN.js",a+"/_app/immutable/assets/3.BQqpaRs-.css",a+"/_app/immutable/assets/Card.Cb4bHscp.css",a+"/_app/immutable/chunks/BjY4dxcB.js",a+"/_app/immutable/chunks/Bs0uKk8J.js",a+"/_app/immutable/chunks/C2FuqD3s.js",a+"/_app/immutable/chunks/CAbq0Oyb.js",a+"/_app/immutable/chunks/CWj6FrbW.js",a+"/_app/immutable/chunks/DIEDQ_hk.js",a+"/_app/immutable/chunks/DUrEVoyD.js",a+"/_app/immutable/entry/start.ZtTs7gQk.js"],o=[a+"/apple-touch-icon.png",a+"/favicon.png",a+"/favicon.svg",a+"/icon-192.png",a+"/icon-512-maskable.png",a+"/icon-512.png",a+"/manifest.webmanifest"],u="1790883155539",n=self,i=`ocrc-cache-${u}`,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
|
-
.suggestions.svelte-1hbn5f9{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 14px 8px}.chip.svelte-1hbn5f9{min-height:36px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:12px;padding:6px 13px;cursor:pointer;animation:ocrc-rise .22s var(--ease-out, ease-out) backwards;transition:border-color .12s var(--ease, ease),color .12s var(--ease, ease)}.chip.svelte-1hbn5f9:hover{border-color:var(--accent);color:var(--text)}.dismiss.svelte-1hbn5f9{background:transparent;border:none;color:var(--text-4);font-size:12px;cursor:pointer;padding:6px 8px}.dismiss.svelte-1hbn5f9:hover{color:var(--text-2)}.wrap.svelte-1f5vmb3{position:relative;min-width:0}.chip.svelte-1f5vmb3{display:flex;align-items:center;gap:5px;min-height:24px;min-width:0;max-width:100%;box-sizing:border-box;background:transparent;border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-pill);padding:5px 11px;font-size:11.5px;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s}.chip.svelte-1f5vmb3 .icon,.chip.svelte-1f5vmb3 svg{flex-shrink:0}.txt.svelte-1f5vmb3{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.chip.svelte-1f5vmb3:hover{border-color:var(--accent);color:var(--text)}.pop.svelte-1f5vmb3{position:absolute;bottom:36px;left:0;width:220px;max-height:min(52vh,360px);overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:0 16px 40px #00000080;z-index:var(--z-popover)}.opt.svelte-1f5vmb3{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;color:var(--text);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;text-align:left}.opt.svelte-1f5vmb3:hover,.opt.sel.svelte-1f5vmb3{background:var(--accent-2)}.clear.svelte-1f5vmb3{color:var(--text-3);margin-top:4px}.none.svelte-1f5vmb3{padding:6px 8px}.wrap.svelte-1005b73{position:relative;min-width:0}.chip.svelte-1005b73{display:flex;align-items:center;gap:5px;min-height:24px;min-width:0;max-width:min(150px,100%);box-sizing:border-box;background:transparent;border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-pill);padding:5px 11px;font-size:11.5px;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s}.chip.svelte-1005b73:hover{border-color:var(--accent);color:var(--text)}.chip.svelte-1005b73 svg{flex-shrink:0}.txt.svelte-1005b73{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.pop.svelte-1005b73{position:absolute;bottom:36px;right:0;width:248px;max-height:min(56vh,400px);overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:0 16px 40px #00000080;z-index:var(--z-popover)}.prov.svelte-1005b73{padding:7px 8px 2px;color:var(--text-3)}.opt.svelte-1005b73{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;color:var(--text);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;text-align:left}.opt.svelte-1005b73:hover,.opt.sel.svelte-1005b73{background:var(--accent-2)}.clear.svelte-1005b73{color:var(--text-3);margin-top:4px}.none.svelte-1005b73{padding:6px 8px}.controls.svelte-dkbq22{display:contents}.wrap.svelte-dkbq22{position:relative;min-width:0}.chip.svelte-dkbq22{display:flex;align-items:center;gap:5px;min-height:24px;min-width:0;max-width:100%;box-sizing:border-box;background:transparent;border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-pill);padding:5px 11px;font-size:11.5px;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s}.chip.svelte-dkbq22:hover{border-color:var(--accent);color:var(--text)}.chip.svelte-dkbq22 svg{flex-shrink:0}.txt.svelte-dkbq22{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.pop.svelte-dkbq22{position:absolute;bottom:44px;left:0;width:220px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:0 16px 40px #00000080;z-index:var(--z-popover)}.opt.svelte-dkbq22{display:flex;align-items:center;width:100%;background:transparent;border:none;color:var(--text);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px}.opt.svelte-dkbq22:hover,.opt.sel.svelte-dkbq22{background:var(--accent-2)}.wrap.svelte-4bdpxt{position:relative;display:none}@media (min-width: 821px){.wrap.svelte-4bdpxt{display:block}}.ring.svelte-4bdpxt{position:relative;display:inline-flex;align-items:center;gap:5px;background:transparent;border:none;padding:2px;cursor:pointer;color:var(--text-3)}.ring.svelte-4bdpxt svg:where(.svelte-4bdpxt){width:20px;height:20px}.track.svelte-4bdpxt{fill:none;stroke:var(--border);stroke-width:3}.arc.svelte-4bdpxt{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .3s ease}.pct.svelte-4bdpxt{font-size:10.5px;color:var(--text-3)}.pct.svelte-4bdpxt i:where(.svelte-4bdpxt){font-style:normal;font-size:8.5px}.ring.svelte-4bdpxt:hover .pct:where(.svelte-4bdpxt){color:var(--text-2)}.pop.svelte-4bdpxt{position:absolute;bottom:calc(100% + 10px);left:0;width:300px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 16px 40px #00000047;padding:12px 14px;z-index:var(--z-popover);animation:ocrc-pop .14s var(--ease-out, ease-out);cursor:default}.head.svelte-4bdpxt{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.label.svelte-4bdpxt{font-size:11px;font-weight:600;color:var(--text-2)}.dim.svelte-4bdpxt{font-size:10.5px;color:var(--text-3)}.bar.svelte-4bdpxt{display:flex;height:6px;border-radius:var(--radius-bar);overflow:hidden;background:var(--border-2)}.seg.svelte-4bdpxt{height:100%}.legend.svelte-4bdpxt{display:flex;flex-wrap:wrap;gap:4px 10px;margin:6px 0 8px}.lg.svelte-4bdpxt{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--text-3)}.dot.svelte-4bdpxt{width:6px;height:6px;border-radius:50%;flex-shrink:0}.bd-label.svelte-4bdpxt{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-3);margin:8px 0 4px}.bd-label.svelte-4bdpxt .est:where(.svelte-4bdpxt){font-size:9px;padding:0 5px;border:1px solid var(--border-2);border-radius:var(--radius-pill);color:var(--text-4)}.bar.bd.svelte-4bdpxt{margin-bottom:6px}.rows.svelte-4bdpxt{display:flex;flex-direction:column}.row.svelte-4bdpxt{display:flex;justify-content:space-between;padding:3px 0;font-size:11.5px;color:var(--text-3);border-top:1px solid var(--border-2)}.row.svelte-4bdpxt:first-child{border-top:none}.row.svelte-4bdpxt .mono:where(.svelte-4bdpxt){color:var(--text-2);font-size:11px}.composer.svelte-60fagq{background:var(--bg);padding:6px 24px 18px}@media (min-width: 821px){.composer.svelte-60fagq{background:var(--bg-canvas, var(--bg));padding:6px 28px 18px}}@media (max-width: 820px){.composer.svelte-60fagq{padding:0 12px;padding-bottom:max(8px,calc(env(safe-area-inset-bottom,0px) + 10px - var(--kb, 0px)))}.box.svelte-60fagq{padding:7px 8px 7px 14px;border-radius:var(--radius-pill)}.footer.svelte-60fagq{margin-top:4px;gap:6px}.footer.svelte-60fagq .wrap{min-width:0;flex-shrink:1}.footer.svelte-60fagq .chip{max-width:min(36vw,100%)}.send.svelte-60fagq,.attach.svelte-60fagq{flex-shrink:0}.send.svelte-60fagq,.attach.svelte-60fagq{width:44px;height:44px}}.dock.svelte-60fagq{max-width:none;margin:0}.error.svelte-60fagq{color:var(--err);font-size:.8em;margin:0 0 8px;font-family:var(--font-mono)}.box.svelte-60fagq{position:relative;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px 8px;box-shadow:var(--shadow-composer);transition:border-color .15s ease}.box.focused.svelte-60fagq,.box.has-text.svelte-60fagq{border-color:var(--accent)}textarea.svelte-60fagq{display:block;width:100%;box-sizing:border-box;background:transparent;border:none;padding:2px 4px;color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.5;resize:none;min-height:24px;max-height:140px;overflow-y:auto}textarea.svelte-60fagq:focus{outline:none}textarea.svelte-60fagq::placeholder{color:var(--text-4)}.footer.svelte-60fagq{display:flex;align-items:center;gap:8px;margin-top:6px;min-width:0}.spacer.svelte-60fagq{flex:1;min-width:8px}@media (max-width: 720px){.send-hint.svelte-60fagq,.hint.command.svelte-60fagq{display:none}}.hint.svelte-60fagq{background:transparent;border:none;color:var(--text-4);font-family:var(--font-mono);font-size:11px;white-space:nowrap;padding:0;min-width:0;overflow:hidden;text-overflow:ellipsis}.hint.command.svelte-60fagq{cursor:pointer;transition:color .15s ease}.hint.command.svelte-60fagq:hover{color:var(--text-2)}.send.svelte-60fagq{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-ink);cursor:pointer;transition:opacity .15s ease,transform .1s ease;flex-shrink:0}.send.svelte-60fagq:not(:disabled):hover{transform:scale(1.06)}.send.svelte-60fagq:disabled{background:var(--border);color:var(--text-3);cursor:not-allowed}.thumbnails.svelte-60fagq{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.thumb.svelte-60fagq{position:relative;width:56px;height:56px;border-radius:var(--radius-xs);overflow:hidden;border:1px solid var(--border);flex-shrink:0}.thumb.svelte-60fagq img:where(.svelte-60fagq){width:100%;height:100%;object-fit:cover;display:block}.remove.svelte-60fagq{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:#0009;color:var(--text);font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.remove.svelte-60fagq:hover{background:#000c}.attach.svelte-60fagq{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-3);cursor:pointer;padding:0;flex-shrink:0}.attach.svelte-60fagq:hover{background:#ffffff0f;color:var(--text)}.mention-dropdown.svelte-60fagq{position:absolute;bottom:100%;left:0;right:0;max-height:180px;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:4px;box-shadow:0 -4px 16px #00000059;padding:4px;z-index:var(--z-dropdown)}.mention-row.svelte-60fagq{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);font-family:var(--font-mono);font-size:.85em;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-row.active.svelte-60fagq,.mention-row.svelte-60fagq:hover{background:var(--accent-2)}.switcher.svelte-rgafhj{position:relative;display:inline-flex;min-width:0}.trigger.svelte-rgafhj{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:5px 9px 5px 5px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.trigger.svelte-rgafhj:hover{border-color:var(--accent);background:var(--bg-elev2)}.glyph-tile.svelte-rgafhj{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%;border:1px solid transparent;font-family:var(--font-mono);font-size:10px;font-weight:700;flex-shrink:0}.status-dot.svelte-rgafhj{width:7px;height:7px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;box-sizing:border-box}.sr-only.svelte-rgafhj{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status-dot.online.svelte-rgafhj{background:var(--accent);border-color:var(--accent)}.status-dot.connecting.svelte-rgafhj{background:var(--warn);border-color:var(--warn);animation:ocrc-pulse 1.2s ease-in-out infinite}.status-dot.offline.svelte-rgafhj{background:transparent;border:1.5px solid var(--text-4)}.title.svelte-rgafhj{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caret.svelte-rgafhj{font-size:9px;color:var(--text-3);flex-shrink:0}.popover.svelte-rgafhj{position:absolute;top:calc(100% + 6px);left:0;width:min(280px,calc(100vw - 32px));background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 50px #0000008c;z-index:var(--z-popover);overflow:hidden;animation:svelte-rgafhj-ocrc-pop .14s ease}@keyframes svelte-rgafhj-ocrc-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.list.svelte-rgafhj{max-height:320px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.row.svelte-rgafhj{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;text-align:left;transition:background .12s ease}.row.svelte-rgafhj:hover,.row.active.svelte-rgafhj{background:var(--accent-2)}.dot.svelte-rgafhj{width:7px;height:7px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;box-sizing:border-box;background:transparent;border-color:var(--text-4)}.dot.active.svelte-rgafhj{background:var(--accent);border-color:var(--accent)}.info.svelte-rgafhj{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.row-title.svelte-rgafhj{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta.svelte-rgafhj{font-size:10.5px;color:var(--text-3)}.check.svelte-rgafhj{font-size:13px;color:var(--accent);flex-shrink:0}.empty.svelte-rgafhj{padding:14px 10px;color:var(--text-3);font-size:12px}.footer.svelte-rgafhj{border-top:1px solid var(--border);padding:6px}.new-session.svelte-rgafhj{display:flex;align-items:center;width:100%;padding:8px 10px;background:transparent;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:12px;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.new-session.svelte-rgafhj:hover{color:var(--accent);border-color:var(--accent-line);background:var(--accent-2)}.new-session.svelte-rgafhj:disabled{opacity:.5;cursor:default}.ball.svelte-w3h0m4,.plan-card.svelte-w3h0m4{display:none}.ball.svelte-w3h0m4{position:absolute;right:23px;bottom:calc(var(--composer-h, 120px) + 10px);z-index:var(--z-hud);width:38px;height:38px;padding:0;border:1px solid var(--border-2);border-radius:50%;background:var(--bg-elev);box-shadow:0 6px 18px #00000038;cursor:pointer;place-items:center;transition:transform .15s var(--ease, ease);animation:ocrc-pop .22s var(--ease-out, ease-out) backwards}.ball.svelte-w3h0m4:active{transform:scale(.92)}.ghost.svelte-w3h0m4{position:absolute;right:16px;bottom:calc(var(--composer-h, 120px) + 10px);z-index:var(--z-hud);display:flex;align-items:center;gap:8px;padding:5px 10px;background:transparent;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-3);font:inherit;cursor:pointer;opacity:.75}.ghost.svelte-w3h0m4:hover{opacity:1;color:var(--text-2);border-color:var(--accent-line)}.ghost.svelte-w3h0m4 .label:where(.svelte-w3h0m4){text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;font-weight:600}.ghost.svelte-w3h0m4 .bar-count:where(.svelte-w3h0m4){font-size:10.5px}.ghost.svelte-w3h0m4 .bar-count:where(.svelte-w3h0m4) i:where(.svelte-w3h0m4){font-style:normal;color:var(--text-3);padding:0 1px}.bar.svelte-w3h0m4{display:none;position:absolute;right:16px;bottom:calc(var(--composer-h, 120px) + 10px);z-index:var(--z-hud);align-items:center;gap:10px;padding:7px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;font:inherit;animation:ocrc-pop .18s var(--ease-out, ease-out) backwards}.bar.svelte-w3h0m4 .label:where(.svelte-w3h0m4){text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;font-weight:600;color:var(--text-3)}.bar-count.svelte-w3h0m4{font-size:11px;color:var(--text)}.bar-count.svelte-w3h0m4 i:where(.svelte-w3h0m4){font-style:normal;color:var(--text-3);padding:0 1px}.bar.svelte-w3h0m4 .badge:where(.svelte-w3h0m4){min-width:15px;height:15px;padding:0 4px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-pill);font-size:9px;font-weight:700}.bar.svelte-w3h0m4 .caret:where(.svelte-w3h0m4){width:13px;height:13px;color:var(--text-3)}.bar.svelte-w3h0m4:hover{border-color:var(--accent-line)}.ring.svelte-w3h0m4{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.ring.svelte-w3h0m4 circle:where(.svelte-w3h0m4){fill:none;stroke-linecap:round}.track.svelte-w3h0m4{stroke:var(--border);stroke-width:3.5}.arc.svelte-w3h0m4{stroke:var(--accent);stroke-width:3.5;transition:stroke-dasharray .4s var(--ease, ease)}.ball-count.svelte-w3h0m4{position:relative;font-size:9.5px;color:var(--text);letter-spacing:-.02em}.ball-count.svelte-w3h0m4 i:where(.svelte-w3h0m4){font-style:normal;color:var(--text-3);padding:0 1px}.badge.svelte-w3h0m4{position:absolute;bottom:-8px;right:-9px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-pill);font-size:9px;font-weight:700;box-sizing:border-box;box-shadow:0 0 0 2px var(--bg)}.scrim.svelte-w3h0m4{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-hud);background:var(--scrim);border:none;padding:0}.plan-card.svelte-w3h0m4{position:absolute;right:16px;bottom:calc(var(--composer-h, 120px) + 46px);z-index:calc(var(--z-hud) + 1);width:min(86vw,380px);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 48px #00000073;overflow:visible;transform-origin:85% 100%;animation:ocrc-pop .18s var(--ease-out, ease-out) backwards}.hd.svelte-w3h0m4{display:flex;align-items:center;gap:7px;padding:10px 10px 10px 12px}.label.svelte-w3h0m4{flex-shrink:0;text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);font-size:9.5px;font-weight:600}.title.svelte-w3h0m4{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:600;color:var(--text)}.dots.svelte-w3h0m4,.close.svelte-w3h0m4{flex-shrink:0;width:26px;height:26px;display:grid;place-items:center;margin:0;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer}.dots.svelte-w3h0m4{font-size:14px;line-height:1}.close.svelte-w3h0m4 svg:where(.svelte-w3h0m4){width:15px;height:15px}.dots.svelte-w3h0m4:active,.close.svelte-w3h0m4:active{background:var(--bg-elev2);color:var(--text)}.menu.svelte-w3h0m4{position:absolute;top:40px;right:8px;z-index:1;min-width:168px;display:flex;flex-direction:column;padding:4px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000040}.menu.svelte-w3h0m4 button:where(.svelte-w3h0m4){margin:0;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-2);font-size:12px;text-align:left;cursor:pointer}.menu.svelte-w3h0m4 button:where(.svelte-w3h0m4):hover,.menu.svelte-w3h0m4 button:where(.svelte-w3h0m4):active{background:var(--bg-elev);color:var(--text)}.body.svelte-w3h0m4{padding:2px 12px 12px;border-top:1px solid var(--border-2);max-height:calc(52vh - 47px);overflow-y:auto;-webkit-overflow-scrolling:touch}.prog.svelte-w3h0m4{padding:9px 0 7px;font-size:11px;color:var(--text-3)}.grp.svelte-w3h0m4{display:flex;align-items:center;gap:6px;margin:2px 0;padding:3px 0;background:transparent;border:none;color:var(--text-3);font-size:11.5px;cursor:pointer}.grp.static.svelte-w3h0m4{cursor:default}.sub-label.svelte-w3h0m4{text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;font-weight:600}.caret.svelte-w3h0m4{width:12px;height:12px;transition:transform .16s ease;transform:rotate(0)}.caret.open.svelte-w3h0m4{transform:rotate(90deg)}.row.svelte-w3h0m4{display:flex;align-items:flex-start;gap:8px;padding:3px 0}.box.svelte-w3h0m4{flex-shrink:0;width:13px;height:13px;margin-top:2px;border-radius:var(--radius-xs);display:grid;place-items:center;border:1.5px solid var(--border)}.row.done.svelte-w3h0m4 .box:where(.svelte-w3h0m4){background:var(--accent);border-color:var(--accent)}.check.svelte-w3h0m4{font-size:9px;line-height:1;color:var(--accent-ink)}.dot.svelte-w3h0m4{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:ocrc-pulse 1.2s ease-in-out infinite}.row.running.svelte-w3h0m4 .box:where(.svelte-w3h0m4){border-color:var(--accent)}.tx.svelte-w3h0m4{font-size:12px;line-height:1.45;color:var(--text-2);min-width:0}.row.done.svelte-w3h0m4 .tx:where(.svelte-w3h0m4){color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--border)}.row.running.svelte-w3h0m4 .tx:where(.svelte-w3h0m4){color:var(--text);font-weight:500}.sub-dot.svelte-w3h0m4{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:ocrc-pulse 1.2s ease-in-out infinite}.sub-check.svelte-w3h0m4{flex-shrink:0;font-size:10px;line-height:1;color:var(--text-3)}.row.sub.idle.svelte-w3h0m4 .tx:where(.svelte-w3h0m4){color:var(--text-3)}.row.sub.idle.svelte-w3h0m4 .sub-count:where(.svelte-w3h0m4){color:var(--text-3)}.row.sub.svelte-w3h0m4{padding-left:2px}.row.sub.jump.svelte-w3h0m4{margin:0;padding:3px 2px;width:100%;background:transparent;border:none;border-radius:var(--radius-xs);text-align:left;cursor:pointer;color:inherit;font:inherit;align-items:center}.row.sub.jump.svelte-w3h0m4:active{background:var(--bg-elev2)}.row.sub.jump.svelte-w3h0m4 .tx:where(.svelte-w3h0m4){flex:1;min-width:0}.go.svelte-w3h0m4{flex-shrink:0;width:12px;height:12px;color:var(--text-3)}.crumb.svelte-w3h0m4{display:flex;align-items:center;gap:6px;width:100%;margin:9px 0 0;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font:inherit;font-size:11.5px;cursor:pointer;text-align:left}.crumb.svelte-w3h0m4 svg:where(.svelte-w3h0m4){width:12px;height:12px;flex-shrink:0}.crumb.svelte-w3h0m4:active{color:var(--text);border-color:var(--accent)}.sub-count.svelte-w3h0m4{flex-shrink:0;margin-top:1px;font-size:10.5px;color:var(--accent);min-width:26px}@media (max-width: 820px){.ball.svelte-w3h0m4{display:grid}.plan-card.svelte-w3h0m4{display:block}}@media (min-width: 821px){.bar.svelte-w3h0m4{display:flex;top:60px;bottom:auto}.plan-card.svelte-w3h0m4{display:block;width:min(60vw,380px);top:60px;bottom:auto;transform-origin:85% 0}}.jump.svelte-eho102{position:absolute;bottom:calc(var(--composer-h, 120px) + 14px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:var(--z-sticky);animation:ocrc-fade .15s var(--ease-out, ease-out) backwards;display:inline-flex;align-items:center;gap:5px;padding:7px 13px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:12px;cursor:pointer;box-shadow:var(--shadow-card)}.jump.svelte-eho102:hover{color:var(--text);border-color:var(--text-4)}.load-earlier.svelte-eho102{display:block;margin:0 auto 14px;padding:6px 14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:11.5px;cursor:pointer;animation:ocrc-rise-sm .16s var(--ease-out, ease-out) backwards}.load-earlier.svelte-eho102:hover{color:var(--text);border-color:var(--text-4)}.load-earlier.svelte-eho102:disabled{opacity:.55;cursor:default}.chat.svelte-eho102{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}@media (max-width: 820px){.chat.svelte-eho102{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--kb, 0px) - var(--composer-h, 120px)),rgba(0,0,0,.12) calc(100% - var(--kb, 0px)));mask-image:linear-gradient(to bottom,#000 calc(100% - var(--kb, 0px) - var(--composer-h, 120px)),#0000001f calc(100% - var(--kb, 0px)))}}.sub-header.svelte-eho102{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 28px;background:var(--bg);border-bottom:1px solid var(--border-2)}@media (min-width: 821px){.sub-header.svelte-eho102{background:var(--bg-canvas, var(--bg))}}.sub-header.svelte-eho102 .left:where(.svelte-eho102){display:flex;align-items:center;gap:10px;min-width:0}.expand.svelte-eho102{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius-pill);color:var(--text-3);cursor:pointer;flex-shrink:0;transition:color .12s ease,border-color .12s ease,background .12s ease}.expand.svelte-eho102:hover{color:var(--text);border-color:var(--accent);background:var(--accent-2)}.back.svelte-eho102,.inspect.svelte-eho102{display:none}@media (max-width: 820px){.expand.svelte-eho102{display:none}.back.svelte-eho102,.inspect.svelte-eho102{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer}.back.svelte-eho102:active,.inspect.svelte-eho102:active{background:var(--bg-elev2)}}.sub-header.svelte-eho102 .branch:where(.svelte-eho102){min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--hl-purple);background:var(--bg-elev);border:1px solid var(--border-2);border-radius:var(--radius-pill);padding:2px 8px}.sub-header.svelte-eho102 .right:where(.svelte-eho102){display:flex;align-items:center;gap:8px;flex-shrink:0}.pill.svelte-eho102{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--bg-elev);border:1px solid var(--border);color:var(--text-2);font-size:11px;min-width:0;max-width:30vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pill.svelte-eho102 .dot:where(.svelte-eho102){width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:ocrc-pulse 1.2s ease-in-out infinite}.idle.svelte-eho102{font-size:11px;color:var(--text-3)}.abort.svelte-eho102{background:transparent;border:1px solid var(--border-2);color:var(--text-3);border-radius:var(--radius-pill);padding:3px 10px;font-size:11px;font-weight:500;cursor:pointer;transition:color .15s ease,border-color .15s ease}.abort.svelte-eho102:hover{color:var(--err);border-color:var(--err)}.abort.svelte-eho102:disabled{opacity:.5;cursor:default}.stream.svelte-eho102{width:100%;box-sizing:border-box;padding:22px 28px 8px;display:flex;flex-direction:column}.stream.svelte-eho102>*:last-child:not(.stream-end){animation:ocrc-rise var(--dur-enter, .2s) var(--ease-out, ease-out) backwards}.stream.suppressed.svelte-eho102>*:last-child:not(.stream-end){animation:none}.stream-end.svelte-eho102{height:1px;flex-shrink:0}.stream.svelte-eho102>*:not(:last-child){content-visibility:auto;contain-intrinsic-size:auto 120px}.loading.svelte-eho102{display:flex;justify-content:center;gap:7px;padding:18vh 24px 40px}.ldot.svelte-eho102{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:ocrc-pulse 1.2s ease-in-out infinite}.ldot.svelte-eho102:nth-child(2){animation-delay:.15s}.ldot.svelte-eho102:nth-child(3){animation-delay:.3s}.empty.svelte-eho102{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:18vh 24px 40px;color:var(--text-3);font-size:14px}.empty-mark.svelte-eho102{width:40px;height:40px;margin-bottom:6px}.empty-title.svelte-eho102{margin:0;font-family:var(--font-serif);font-size:19px;font-weight:600;color:var(--text);letter-spacing:.01em}.empty-hint.svelte-eho102{margin:0;max-width:420px;line-height:1.6;font-size:12.5px}@media (min-width: 821px){.composer-float.svelte-eho102 .composer{padding-right:calc(24px + var(--sbw, 0px))}}@media (max-width: 820px){.composer-float.svelte-eho102{position:absolute;left:0;right:0;bottom:0;z-index:var(--z-dropdown);background:transparent;transform:translateY(calc(-1 * var(--kb, 0px)));transition:transform .25s ease-out;will-change:transform}.composer-float.svelte-eho102 .composer{background:transparent}.stream.svelte-eho102{padding:14px 12px calc(var(--composer-h, 120px) + var(--kb, 0px) + 8px)}.sub-header.svelte-eho102{gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 8px 10px}.sub-header.svelte-eho102 .left:where(.svelte-eho102){min-width:0}.composer-float.svelte-eho102{background:var(--bg);border-top:1px solid var(--border-2);padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px))}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as o,s as r}from"../chunks/C-RCY5RW.js";export{o as load_css,r as start};
|