@bd7pil/ocrc 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/core/agent/diff-util.js +49 -0
  2. package/dist/core/agent/diff-util.js.map +1 -1
  3. package/dist/core/agent/opencode-backend.js +65 -3
  4. package/dist/core/agent/opencode-backend.js.map +1 -1
  5. package/dist/core/history.js +3 -0
  6. package/dist/core/history.js.map +1 -1
  7. package/dist/core/relay.js +15 -2
  8. package/dist/core/relay.js.map +1 -1
  9. package/dist/core/stream-accumulator.js +3 -3
  10. package/dist/core/stream-accumulator.js.map +1 -1
  11. package/dist/transport/web/routes/message.js +12 -1
  12. package/dist/transport/web/routes/message.js.map +1 -1
  13. package/dist/transport/web/routes/vcs.js +24 -0
  14. package/dist/transport/web/routes/vcs.js.map +1 -0
  15. package/dist/transport/web/server.js +3 -3
  16. package/dist/transport/web/server.js.map +1 -1
  17. package/package.json +1 -1
  18. package/web/dist/_app/immutable/assets/{0.CA-EXS4v.css → 0.Cvwq5hmD.css} +1 -1
  19. package/web/dist/_app/immutable/assets/3.CuiKumD7.css +1 -0
  20. package/web/dist/_app/immutable/chunks/CU2vlSiG.js +1 -0
  21. package/web/dist/_app/immutable/chunks/{DJgyevNN.js → Df4xtzHP.js} +19 -19
  22. package/web/dist/_app/immutable/chunks/mTCe3pzj.js +1 -0
  23. package/web/dist/_app/immutable/entry/{app.Bf8l1MB1.js → app.JVVZGIJH.js} +2 -2
  24. package/web/dist/_app/immutable/entry/start.CTZhuu9j.js +1 -0
  25. package/web/dist/_app/immutable/nodes/0.BAZobBP6.js +3 -0
  26. package/web/dist/_app/immutable/nodes/{1.Cl7j0xj2.js → 1.Cuo-3lJQ.js} +1 -1
  27. package/web/dist/_app/immutable/nodes/{2.BQLuM1uO.js → 2.Cq6LtW7V.js} +1 -1
  28. package/web/dist/_app/immutable/nodes/3.DHl5Ub8k.js +4 -0
  29. package/web/dist/_app/version.json +1 -1
  30. package/web/dist/index.html +10 -10
  31. package/web/dist/service-worker.js +1 -1
  32. package/dist/transport/web/routes/diff.js +0 -7
  33. package/dist/transport/web/routes/diff.js.map +0 -1
  34. package/web/dist/_app/immutable/assets/3.Ccs8oT1Q.css +0 -1
  35. package/web/dist/_app/immutable/chunks/TuGPYaVf.js +0 -1
  36. package/web/dist/_app/immutable/chunks/aiCxvHoo.js +0 -1
  37. package/web/dist/_app/immutable/entry/start.B_gdilwd.js +0 -1
  38. package/web/dist/_app/immutable/nodes/0.BXbFDh46.js +0 -3
  39. package/web/dist/_app/immutable/nodes/3.DPvOSN1r.js +0 -4
@@ -1,3 +0,0 @@
1
- import"../chunks/CWj6FrbW.js";import{q as Sa,r as Ve,z as dt,p as Lt,f as Te,j as Ft,d as Ta,a as gt,b as st,c as yt,e as wt,C as Ht,A as Pt,n as za,B as jt,k as pa,m as Ma,g as Qt,v as Ca,o as na,E as qa,h as Jt,u as La,t as Ea,G as Ba,x as ra,D as Nt,F as Da,s as Oa}from"../chunks/TuGPYaVf.js";import{ai as Pa,ag as ja,a1 as xt,b4 as r,a_ as fa,aa as Ra,aJ as Fa,am as Wa,aE as Ze,ap as ae,aO as s,V as ve,a8 as e,aq as nt,J as a,aK as t,aU as n,aw as _t,a$ as H,aR as q,a3 as P,w as o,aB as Xe,au as p,Z as mt,a6 as f,M as it,a4 as Ne,b0 as Rt,b8 as Ua,b5 as kt,$ as Ct,aI as Ja,ay as Vt,Q as Na,b1 as Ka,a7 as ha,az as Zt,av as la,a9 as Tt}from"../chunks/BjY4dxcB.js";import{i as U,a as Le,s as ot}from"../chunks/DIEDQ_hk.js";import{o as ba,i as Et,I as At,y as be,x as Ee,u as $t,e as Yt,F as Ha,E as Qa,j as Ye,b as Ya,w as ft,d as bt,z as lt,p as zt,m as Xt,t as It,D as _a,c as ia,r as ma,M as ga,B as Kt,C as Gt,f as oa,s as ya,q as St,G as Ga,l as wa,n as Dt,k as ca}from"../chunks/DJgyevNN.js";import{p as qe,b as Wt}from"../chunks/C2FuqD3s.js";import{g as ea,a as Va}from"../chunks/aiCxvHoo.js";function Za(E,c,v,A,B){var I;Pa&&ja();var l=(I=c.$$slots)==null?void 0:I[v],M=!1;l===!0&&(l=c.children,M=!0),l===void 0||l(E,M?()=>A:A)}function ta(E,c,v){xt(()=>{var A=r(()=>c(E,v==null?void 0:v())||{});if(A!=null&&A.destroy)return()=>A.destroy()})}function Xa(E,c,v){var A=Ra(E,c);A&&A.set&&(E[c]=v,fa(()=>{E[c]=null}))}function es(E,c,v,A,B){var l=()=>{A(v[E])};v.addEventListener(c,l),B?Fa(()=>{v[E]=B()}):l(),(v===document.body||v===window||v===document)&&fa(()=>{v.removeEventListener(c,l)})}function ts(E,c){var l;var v=(l=E.$$events)==null?void 0:l[c.type],A=Wa(v)?v.slice():v==null?[]:[v];for(var B of A)B.call(this,c)}const as=!1,ss=!1,ns="always",pl=Object.freeze(Object.defineProperty({__proto__:null,prerender:ss,ssr:as,trailingSlash:ns},Symbol.toStringTag,{value:"Module"})),va=[2e3,4e3,8e3,16e3,3e4];function rs(E){const c=Sa();if(!c)return E;const v=E.includes("?")?"&":"?";return`${E}${v}token=${encodeURIComponent(c)}`}function ls(E){let c=null,v=0,A=null,B=null,l=null,M=0,I=!1,k=!1;const b=[];function x(y){var O;Et.set(y),(O=E.onStatus)==null||O.call(E,y)}function h(){A&&(clearTimeout(A),A=null),B&&(clearTimeout(B),B=null),l&&(clearTimeout(l),l=null)}function S(){B=setTimeout(()=>{(c==null?void 0:c.readyState)===WebSocket.OPEN&&(M=performance.now(),c.send(JSON.stringify({type:"ping"})),l=setTimeout(()=>{c==null||c.close(),d()},45e3))},25e3)}function _(){if(!I){x("reconnecting");try{c=new WebSocket(rs(E.url))}catch{d();return}c.onopen=()=>{var y;v=0,x("connected");for(const O of b.splice(0))c==null||c.send(O);k&&((y=E.onReconnect)==null||y.call(E)),k=!0,S()},c.onmessage=y=>{var O;try{const K=JSON.parse(y.data);if(K.type==="pong"){l&&(clearTimeout(l),l=null),M&&ba.set(Math.round(performance.now()-M)),S();return}(O=E.onMessage)==null||O.call(E,K)}catch{}},c.onclose=()=>{h(),I||d()},c.onerror=()=>{c==null||c.close()}}}function d(){if(h(),I)return;x("reconnecting");const y=va[Math.min(v,va.length-1)];v+=1,A=setTimeout(()=>void _(),y)}return _(),{send(y){const O=JSON.stringify(y);(c==null?void 0:c.readyState)===WebSocket.OPEN?c.send(O):b.push(O)},close(){I=!0,h(),b.length=0,c==null||c.close(),c=null,x("offline")}}}let da=new Map;const Mt=new Set;let ka,qt,Ot=!1;function aa(){if(typeof document>"u")return;const E=document.title.replace(/^(🔔 [\d]+ 新动态 — )/,"")||"ocrc";if(Mt.size===0){qt&&(clearInterval(qt),qt=void 0),Ot=!1,document.title=E;return}qt||(document.title=`🔔 ${Mt.size} 新动态 — ${E}`,qt=setInterval(()=>{Ot=!Ot,document.title=Ot?`🔔 ${Mt.size} 新动态 — ${E}`:E},1200))}function is(E){ka=E,E&&(Mt.delete(E),aa())}function os(E){for(const c of E){const v=da.get(c.id);da.set(c.id,c.lastActiveAt),!(v===void 0||c.id===ka)&&c.lastActiveAt>v+1500&&(Mt.add(c.id),aa())}}typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(Mt.clear(),aa())});var cs=f('<span class="dot-ring svelte-hhath1"></span>'),vs=f('<span class="connection-latency mono svelte-hhath1"> </span>'),ds=f('<button class="install svelte-hhath1">Install</button>'),us=f('<header class="titlebar svelte-hhath1"><button aria-label="Sessions"><!></button> <div class="brand svelte-hhath1" title="ocrc"><svg class="brand-mark svelte-hhath1" 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)"></path><circle cx="49" cy="20" r="6" fill="var(--accent)" stroke="none"></circle></svg> <span class="wordmark svelte-hhath1"><b class="svelte-hhath1">ocrc</b></span></div> <button class="new-session svelte-hhath1" title="新建会话、命令面板…"><span class="new-icon svelte-hhath1" aria-hidden="true">+</span> <span class="new-label svelte-hhath1">新建</span> <span class="new-caret svelte-hhath1" aria-hidden="true"><!></span></button> <button class="palette-trigger svelte-hhath1" title="搜索会话与命令 (⌘K)"><span class="palette-icon svelte-hhath1" aria-hidden="true"><!></span> <span class="palette-label svelte-hhath1">搜索会话与命令…</span> <kbd class="palette-keycap mono svelte-hhath1">⌘K</kbd></button> <span class="spacer svelte-hhath1"></span> <button class="themebtn svelte-hhath1" title="机器人与通道" aria-label="机器人与通道"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"></rect><circle cx="12" cy="5" r="2"></circle><path d="M12 7v4"></path><path d="M8 16h0M16 16h0"></path></svg></button> <button class="themebtn svelte-hhath1" aria-label="Toggle color theme"><!></button> <span><span class="dot-wrap svelte-hhath1" aria-hidden="true"><span class="dot svelte-hhath1"></span> <!></span> <span class="connection-state svelte-hhath1"> </span> <!></span> <!> <button 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 class="user svelte-hhath1"><span class="user-email mono svelte-hhath1"> </span> <span class="avatar mono svelte-hhath1" aria-hidden="true"> </span></div></header>');function ps(E,c){Ze(c,!1);const v=()=>Le(Qa,"$theme",l),A=()=>Le(Et,"$connection",l),B=()=>Le(ba,"$latency",l),[l,M]=ot(),I=p(),k=p();let b=qe(c,"email",8,""),x=qe(c,"onPalette",8),h=qe(c,"installEvent",8,null),S=qe(c,"onInstall",8,()=>{}),_=qe(c,"drawerLeft",8,!1),d=qe(c,"drawerRight",8,!1),y=qe(c,"onToggleLeft",8,()=>{}),O=qe(c,"onToggleRight",8,()=>{}),K=qe(c,"newButtonAnchor",12,null);function G(z){return z==="connected"?"live":z==="reconnecting"?"reconnecting":"offline"}ae(()=>ve(b()),()=>{s(I,b()||"you@local")}),ae(()=>e(I),()=>{s(k,e(I).charAt(0).toUpperCase())}),nt(),Ve();var X=us(),T=a(X);let ee;var R=a(T);At(R,{name:"menu",size:18}),t(T);var D=n(T,4),ce=n(a(D),4),V=a(ce);At(V,{name:"caret-down",size:9}),t(ce),t(D),Wt(D,z=>K(z),()=>K());var ne=n(D,2),se=a(ne),we=a(se);At(we,{name:"search",size:14}),t(se),_t(4),t(ne);var re=n(ne,4),F=n(re,2),j=a(F);{let z=mt(()=>v()==="light"?"moon":"sun");At(j,{get name(){return e(z)},size:15})}t(F);var Y=n(F,2),L=a(Y),oe=n(a(L),2);{var ke=z=>{var J=cs();o(z,J)};U(oe,z=>{A()==="connected"&&z(ke)})}t(L);var Se=n(L,2),We=a(Se,!0);t(Se);var Re=n(Se,2);{var Z=z=>{var J=vs(),fe=a(J);t(J),H(()=>q(fe,`${B()??""}ms`)),o(z,J)};U(Re,z=>{A()==="connected"&&z(Z)})}t(Y);var N=n(Y,2);{var pe=z=>{var J=ds();P("click",J,function(...fe){var ze;(ze=S())==null||ze.apply(this,fe)}),o(z,J)};U(N,z=>{h()&&z(pe)})}var Ae=n(N,2);let xe;var m=n(Ae,2),W=a(m),C=a(W,!0);t(W);var le=n(W,2),u=a(le,!0);t(le),t(m),t(X),H((z,J)=>{ee=be(T,1,"iconbtn svelte-hhath1",null,ee,{active:_()}),Ee(F,"title",v()==="light"?"Switch to dark":"Switch to light"),be(Y,1,`connection-pill ${A()??""}`,"svelte-hhath1"),Ee(Y,"title",`WebSocket: ${z??""}`),q(We,J),xe=be(Ae,1,"iconbtn svelte-hhath1",null,xe,{active:d()}),q(C,e(I)),q(u,e(k))},[()=>(A(),r(()=>G(A()))),()=>(A(),r(()=>G(A())))]),P("click",T,function(...z){var J;(J=y())==null||J.apply(this,z)}),P("click",D,()=>$t.update(z=>!z)),P("click",ne,function(...z){var J;(J=x())==null||J.apply(this,z)}),P("click",re,()=>Yt.set(!0)),P("click",F,function(...z){var J;(J=Ha)==null||J.apply(this,z)}),P("click",Ae,function(...z){var J;(J=O())==null||J.apply(this,z)}),o(E,X),Xe(),M()}var fs=f('<div role="status"><!></div>');function hs(E){const c=()=>Le(Et,"$connection",v),[v,A]=ot();var B=it(),l=Ne(B);{var M=I=>{var k=fs();let b;var x=a(k);{var h=_=>{var d=Rt("Reconnecting…");o(_,d)},S=_=>{var d=Rt("Offline — live updates paused");o(_,d)};U(x,_=>{c()==="reconnecting"?_(h):_(S,-1)})}t(k),H(()=>b=be(k,1,"banner svelte-l46k7l",null,b,{offline:c()==="offline"})),o(I,k)};U(l,I=>{c()!=="connected"&&I(M)})}o(E,B),A()}const Aa="ocrc.pinnedSessions";function bs(){if(typeof localStorage>"u")return[];try{const E=localStorage.getItem(Aa),c=E?JSON.parse(E):[];return Array.isArray(c)?c.filter(v=>typeof v=="string"):[]}catch{return[]}}function _s(E){if(!(typeof localStorage>"u"))try{localStorage.setItem(Aa,JSON.stringify(E))}catch{}}function ms(){const{subscribe:E,update:c}=Ua(bs());return{subscribe:E,toggle(v){c(A=>{const B=A.includes(v)?A.filter(l=>l!==v):[...A,v];return _s(B),B})}}}const ua=ms();function gs(E,c){return c?E.filter(v=>(v.directory??"")===c):E}var ys=f('<input class="rename-input svelte-1h8243g" placeholder="Session title" aria-label="Session title"/>'),ws=f('<span class="pin-dot svelte-1h8243g" aria-label="已钉住">●</span>'),ks=f('<span class="title svelte-1h8243g"> </span> <!> <span class="actions svelte-1h8243g"><button class="act rename svelte-1h8243g" title="重命名会话" aria-label="重命名会话"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z"></path></svg></button> <button aria-label="钉住会话"><svg width="13" height="13" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 4h6l-1 6 3 3v2H7v-2l3-3-1-6z"></path><line x1="12" y1="15" x2="12" y2="21"></line></svg></button> <button class="act trash svelte-1h8243g" title="删除会话" aria-label="删除会话"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"></path></svg></button></span>',1),As=f('<span class="sep svelte-1h8243g">·</span><span class="repo svelte-1h8243g"> </span>',1),xs=f('<span class="add svelte-1h8243g"> </span>'),$s=f('<span class="del svelte-1h8243g"> </span>'),Is=f('<span class="sep svelte-1h8243g">·</span> <!> <!>',1),Ss=f('<div class="progress svelte-1h8243g" aria-hidden="true"><span class="progress-fill svelte-1h8243g"></span></div>'),Ts=f('<a><div class="line1 svelte-1h8243g"><span><span class="sr-only svelte-1h8243g"> </span></span> <!></div> <div class="meta mono svelte-1h8243g"><span class="id svelte-1h8243g"> </span> <!> <span class="sep svelte-1h8243g">·</span><span> </span> <!></div> <!></a>'),zs=f('<div class="group-header mono svelte-1h8243g"><span class="gh-label svelte-1h8243g"> </span> <span class="gh-line svelte-1h8243g" aria-hidden="true"></span> <span class="gh-count svelte-1h8243g"> </span></div> <!>',1),Ms=f('<div class="empty mono svelte-1h8243g"> </div>'),Cs=f('<div class="sidebar svelte-1h8243g"><!> <!></div>');function qs(E,c){Ze(c,!1);const v=()=>Le(dt,"$sessionList",I),A=()=>Le(Lt,"$feeds",I),B=()=>Le(Et,"$connection",I),l=()=>Le(Ya,"$activeWorkspace",I),M=()=>Le(ua,"$pinnedSessions",I),[I,k]=ot(),b=p(),x=p(),h=p(),S=p(),_=p(),d=p(),y=p();let O=qe(c,"activeId",8,void 0),K=qe(c,"onSelect",8,void 0),G=qe(c,"agentId",8,void 0),X=qe(c,"agentName",8,void 0);const T=24*60*60*1e3;function ee(m,W){return W==="connected"&&Date.now()-m<T}function R(m,W){const C=W[m];if(!C||C.order.length===0)return!1;const le=C.byId[C.order[C.order.length-1]];return(le==null?void 0:le.kind)==="thinking"||(le==null?void 0:le.kind)==="streaming"||(le==null?void 0:le.kind)==="think-stream"}function D(m,W){const C=W[m];if(!C||C.order.length===0)return!1;const le=C.byId[C.order[C.order.length-1]];return(le==null?void 0:le.kind)==="approval"}function ce(m,W,C){return R(m.id,W)?"busy":D(m.id,W)?"wait":ee(m.lastActiveAt,C)?"idle":"offline"}function V(m){const W=Date.now()-m,C=Math.floor(W/6e4);if(C<1)return"now";if(C<60)return`${C}m`;const le=Math.floor(C/60);return le<24?`${le}h`:`${Math.floor(le/24)}d`}function ne(m){return(m.includes("_")?m.slice(m.indexOf("_")+1):m).slice(-8)}function se(m){if(!m)return"";const W=m.replace(/\/+$/,"").split("/");return W[W.length-1]||""}function we(m,W){K()&&(m.preventDefault(),K()(W))}function re(m,W){m.preventDefault(),m.stopPropagation(),ua.toggle(W)}let F=p(null),j=p(""),Y=p(null);function L(m,W){m.preventDefault(),m.stopPropagation(),s(F,W.id),s(j,W.title||"")}function oe(){s(F,null),s(j,"")}async function ke(m){const W=e(j).trim();if(!W||e(Y)){oe();return}s(Y,m);try{await Te.renameSession(m,W),dt.set(await Te.sessions())}catch(C){alert(`重命名失败:${C.message}`)}finally{s(Y,null),s(F,null),s(j,"")}}function Se(m,W){m.key==="Enter"?(m.preventDefault(),ke(W)):m.key==="Escape"&&(m.preventDefault(),oe())}function We(m){m.focus(),m.select()}let Re=p(null);async function Z(m,W){if(m.preventDefault(),m.stopPropagation(),!e(Re)&&confirm("Delete this session? This cannot be undone.")){s(Re,W);try{await Te.deleteSession(W),dt.set(await Te.sessions()),O()===W&&ea("/")}catch(C){alert(`删除失败:${C.message}`)}finally{s(Re,null)}}}ae(()=>(v(),A(),B()),()=>{s(b,new Map(v().map(m=>[m.id,ce(m,A(),B())])))}),ae(()=>(ve(G()),v()),()=>{s(x,G()?v().filter(m=>m.backendId===G()||!m.backendId&&G()==="opencode"):v())}),ae(()=>(e(x),l()),()=>{s(h,gs(e(x),l()))}),ae(()=>e(h),()=>{s(S,[...e(h)].sort((m,W)=>W.lastActiveAt-m.lastActiveAt))}),ae(()=>(e(S),M()),()=>{s(_,e(S).filter(m=>M().includes(m.id)))}),ae(()=>(e(S),M()),()=>{s(d,e(S).filter(m=>!M().includes(m.id)))}),ae(()=>(e(_),e(d)),()=>{s(y,[{key:"pinned",label:"Pinned",rows:e(_)},{key:"recent",label:"Recent",rows:e(d)}])}),nt(),Ve();var N=Cs(),pe=a(N);Ye(pe,1,()=>e(y),m=>m.key,(m,W)=>{var C=it(),le=Ne(C);{var u=z=>{var J=zs(),fe=Ne(J),ze=a(fe),Ce=a(ze,!0);t(ze);var je=n(ze,4),Fe=a(je,!0);t(je),t(fe);var ie=n(fe,2);Ye(ie,1,()=>(e(W),r(()=>e(W).rows)),Ie=>Ie.id,(Ie,Q)=>{var Oe=Ts();let g;var te=a(Oe),ge=a(te),ue=a(ge),i=a(ue,!0);t(ue),t(ge);var w=n(ge,2);{var de=_e=>{var me=ys();ft(me),xt(()=>bt(me,()=>e(j),$e=>s(j,$e))),ta(me,$e=>We==null?void 0:We($e)),xt(()=>P("click",me,$e=>$e.preventDefault())),xt(()=>P("keydown",me,$e=>Se($e,e(Q).id))),xt(()=>P("blur",me,()=>ke(e(Q).id))),H(()=>me.disabled=(e(Y),e(Q),r(()=>e(Y)===e(Q).id))),o(_e,me)},ye=_e=>{var me=ks(),$e=Ne(me),at=a($e,!0);t($e);var Ge=n($e,2);{var ut=pt=>{var Ut=ws();o(pt,Ut)},rt=kt(()=>(M(),e(Q),r(()=>M().includes(e(Q).id))));U(Ge,pt=>{e(rt)&&pt(ut)})}var ct=n(Ge,2),vt=a(ct),ht=n(vt,2);let Bt;var $a=a(ht);t(ht);var sa=n(ht,2);t(ct),H((pt,Ut,Ia)=>{q(at,(e(Q),r(()=>e(Q).title||"Untitled session"))),Bt=be(ht,1,"act pin svelte-1h8243g",null,Bt,pt),Ee(ht,"title",Ut),Ee($a,"fill",Ia),sa.disabled=(e(Re),e(Q),r(()=>e(Re)===e(Q).id))},[()=>({on:M().includes(e(Q).id)}),()=>(M(),e(Q),r(()=>M().includes(e(Q).id)?"取消钉住":"钉住")),()=>(M(),e(Q),r(()=>M().includes(e(Q).id)?"currentColor":"none"))]),P("click",vt,pt=>L(pt,e(Q))),P("click",ht,pt=>re(pt,e(Q).id)),P("click",sa,pt=>Z(pt,e(Q).id)),o(_e,me)};U(w,_e=>{e(F),e(Q),r(()=>e(F)===e(Q).id)?_e(de):_e(ye,-1)})}t(te);var $=n(te,2),Pe=a($),Ue=a(Pe,!0);t(Pe);var Je=n(Pe,2);{var he=_e=>{var me=As(),$e=n(Ne(me)),at=a($e,!0);t($e),H(Ge=>q(at,Ge),[()=>(e(Q),r(()=>se(e(Q).directory)))]),o(_e,me)},Be=kt(()=>(e(Q),r(()=>se(e(Q).directory))));U(Je,_e=>{e(Be)&&_e(he)})}var Ke=n(Je,3),De=a(Ke,!0);t(Ke);var Me=n(Ke,2);{var He=_e=>{var me=Is(),$e=n(Ne(me),2);{var at=rt=>{var ct=xs(),vt=a(ct);t(ct),H(()=>q(vt,`+${e(Q),r(()=>e(Q).additions)??""}`)),o(rt,ct)};U($e,rt=>{e(Q),r(()=>e(Q).additions)&&rt(at)})}var Ge=n($e,2);{var ut=rt=>{var ct=$s(),vt=a(ct);t(ct),H(()=>q(vt,`−${e(Q),r(()=>e(Q).deletions)??""}`)),o(rt,ct)};U(Ge,rt=>{e(Q),r(()=>e(Q).deletions)&&rt(ut)})}o(_e,me)};U(Me,_e=>{e(Q),r(()=>e(Q).additions||e(Q).deletions)&&_e(He)})}t($);var Qe=n($,2);{var et=_e=>{var me=Ss();o(_e,me)},tt=kt(()=>(e(b),e(Q),r(()=>e(b).get(e(Q).id)==="busy")));U(Qe,_e=>{e(tt)&&_e(et)})}t(Oe),H((_e,me,$e,at,Ge)=>{Ee(Oe,"href",`/${e(Q),r(()=>e(Q).id)??""}/`),g=be(Oe,1,"session svelte-1h8243g",null,g,_e),be(ge,1,`dot ${me??""}`,"svelte-1h8243g"),q(i,$e),q(Ue,at),q(De,Ge)},[()=>({active:O()===e(Q).id,busy:e(b).get(e(Q).id)==="busy"}),()=>(e(b),e(Q),r(()=>e(b).get(e(Q).id)??"offline")),()=>(e(b),e(Q),r(()=>e(b).get(e(Q).id)??"offline")),()=>(e(Q),r(()=>ne(e(Q).id))),()=>(e(Q),r(()=>V(e(Q).lastActiveAt)))]),P("click",Oe,_e=>we(_e,e(Q).id)),o(Ie,Oe)}),H(()=>{q(Ce,(e(W),r(()=>e(W).label))),q(Fe,(e(W),r(()=>e(W).rows.length)))}),o(z,J)};U(le,z=>{e(W),r(()=>e(W).rows.length)&&z(u)})}o(m,C)});var Ae=n(pe,2);{var xe=m=>{var W=Ms(),C=a(W);t(W),H(()=>q(C,`no sessions on ${X()??"this agent"??""} yet`)),o(m,W)};U(Ae,m=>{e(h),r(()=>e(h).length===0)&&m(xe)})}t(N),o(E,N),Xe(),k()}var Ls=f('<span class="host mono svelte-wmno67"> </span>'),Es=f('<button class="collapse svelte-wmno67" title="收起面板" 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="M15 18l-6-6 6-6"></path></svg></button>'),Bs=f('<span class="check svelte-wmno67">✓</span>'),Ds=f('<button><span class="row-tile svelte-wmno67"> </span> <span class="row-info svelte-wmno67"><span class="row-name mono svelte-wmno67"> </span> <span class="row-host mono svelte-wmno67"> </span></span> <span><span class="sr-only svelte-wmno67"> </span></span> <!></button>'),Os=f("<button></button>"),Ps=f('<div class="picker svelte-wmno67" role="dialog" aria-label="Agent 选择"><div class="picker-list svelte-wmno67"></div> <div class="picker-footer svelte-wmno67"><div class="theme-row svelte-wmno67"><span class="theme-label mono svelte-wmno67"> </span> <div class="swatches svelte-wmno67"><!> <button>auto</button></div></div></div></div>'),js=f('<button><span class="switch-tile svelte-wmno67"> </span> <span><span class="sr-only svelte-wmno67"> </span></span> <span class="switch-name mono svelte-wmno67"> </span> <span class="switch-count mono svelte-wmno67"> </span></button>'),Rs=f('<div class="agents-label svelte-wmno67">Agents</div> <div class="switcher-row svelte-wmno67"></div>',1),Fs=f('<button class="mobile-search svelte-wmno67"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"></circle><path d="M21 21l-4.3-4.3"></path></svg> <span>搜索会话与命令</span></button>'),Ws=f('<div><div class="panel svelte-wmno67"><div class="header svelte-wmno67"><button class="agent-pill svelte-wmno67" aria-haspopup="true"><span class="glyph-tile svelte-wmno67"> </span> <span><span class="sr-only svelte-wmno67"> </span></span> <span class="name mono svelte-wmno67"> </span> <!> <span class="caret svelte-wmno67" aria-hidden="true"><!></span></button> <!> <!></div> <!> <!> <div class="list svelte-wmno67"><!></div> <div class="footer mono svelte-wmno67"><span> </span> <span class="sep svelte-wmno67">·</span> <span> </span></div></div></div>');function Us(E,c){Ze(c,!1);const v=()=>Le(Ft,"$backends",M),A=()=>Le(dt,"$sessionList",M),B=()=>Le(Et,"$connection",M),l=()=>Le(Ta,"$accentOverrides",M),[M,I]=ot(),k=p(),b=p(),x=p(),h=p(),S=p(),_=p(),d=p(),y=p();let O=qe(c,"activeId",8,void 0),K=qe(c,"drawer",8,!1),G=p(!1);function X(g){const te=g.split(/[\s\-_:./]+/).filter(Boolean);return te.length>=2?(te[0][0]+te[1][0]).toUpperCase():g.slice(0,2).toUpperCase()}function T(g){return X((g==null?void 0:g.name)||(g==null?void 0:g.id)||"OC")}function ee(g){return g==="online"||g==="connected"?"online":g==="connecting"||g==="reconnecting"?"connecting":g==="offline"?"offline":"online"}async function R(g){s(G,!1),await jt(g)}function D(){s(G,!e(G))}async function ce(g){await jt(g)}function V(g){g.key==="Escape"&&s(G,!1)}const ne=24*60*60*1e3;function se(g,te){return te==="connected"&&Date.now()-g<ne}function we(g,te){return wt(te)}ae(()=>v(),()=>{var g,te,ge;s(k,((g=v())==null?void 0:g.activeId)??((ge=(te=v())==null?void 0:te.backends[0])==null?void 0:ge.id)??"opencode")}),ae(()=>(v(),e(k)),()=>{var g;s(b,(g=v())==null?void 0:g.backends.find(te=>te.id===e(k)))}),ae(()=>v(),()=>{var g;s(x,((g=v())==null?void 0:g.backends)??[])}),ae(()=>(v(),A()),()=>{var g;s(h,Object.fromEntries((((g=v())==null?void 0:g.backends)??[]).map(te=>[te.id,A().filter(ge=>ge.backendId===te.id||!ge.backendId&&te.id==="opencode").length])))}),ae(()=>(A(),e(k),B()),()=>{s(S,A().filter(g=>(g.backendId===e(k)||!g.backendId&&e(k)==="opencode")&&se(g.lastActiveAt,B())).length)}),ae(()=>(A(),e(k)),()=>{s(_,A().filter(g=>(g.backendId===e(k)||!g.backendId&&e(k)==="opencode")&&(g.additions||g.deletions)).length)}),ae(()=>(l(),e(k)),()=>{s(d,we(l(),e(k)))}),ae(()=>(e(x),l()),()=>{s(y,Object.fromEntries(e(x).map(g=>[g.id,we(l(),g.id)])))}),nt(),Ve();var re=Ws();P("keydown",Ct,V);let F;var j=a(re),Y=a(j),L=a(Y),oe=a(L),ke=a(oe,!0);t(oe);var Se=n(oe,2),We=a(Se),Re=a(We,!0);t(We),t(Se);var Z=n(Se,2),N=a(Z,!0);t(Z);var pe=n(Z,2);{var Ae=g=>{var te=Ls(),ge=a(te,!0);t(te),H(()=>q(ge,(e(b),r(()=>e(b).host)))),o(g,te)};U(pe,g=>{e(b),r(()=>{var te;return(te=e(b))==null?void 0:te.host})&&g(Ae)})}var xe=n(pe,2),m=a(xe);At(m,{name:"caret-down",size:11}),t(xe),t(L);var W=n(L,2);{var C=g=>{var te=Es();P("click",te,()=>zt.set(!1)),o(g,te)};U(W,g=>{K()||g(C)})}var le=n(W,2);{var u=g=>{var te=Ps(),ge=a(te);Ye(ge,5,()=>e(x),Je=>Je.id,(Je,he)=>{const Be=mt(()=>(e(y),e(he),ve(wt),r(()=>e(y)[e(he).id]??wt(e(he).id)))),Ke=mt(()=>(e(he),e(k),r(()=>e(he).id===e(k))));var De=Ds();let Me;var He=a(De),Qe=a(He,!0);t(He);var et=n(He,2),tt=a(et),_e=a(tt,!0);t(tt);var me=n(tt,2),$e=a(me);t(me),t(et);var at=n(et,2),Ge=a(at),ut=a(Ge,!0);t(Ge),t(at);var rt=n(at,2);{var ct=vt=>{var ht=Bs();o(vt,ht)};U(rt,vt=>{e(Ke)&&vt(ct)})}t(De),H((vt,ht,Bt)=>{Me=be(De,1,"agent-row svelte-wmno67",null,Me,{selected:e(Ke)}),lt(He,`background:${ve(gt),ve(e(Be)),r(()=>gt[e(Be)])??""}; color:${ve(st),ve(e(Be)),r(()=>st[e(Be)])??""}; border-color:${ve(yt),ve(e(Be)),r(()=>yt[e(Be)])??""}`),q(Qe,vt),q(_e,(e(he),r(()=>e(he).name??e(he).id))),q($e,`${e(he),r(()=>e(he).host??"local")??""} · ${e(h),e(he),r(()=>e(h)[e(he).id]??0)??""} ses`),be(at,1,`status-dot ${ht??""}`,"svelte-wmno67"),lt(at,`--dot:${ve(st),ve(e(Be)),r(()=>st[e(Be)])??""}`),q(ut,Bt)},[()=>(e(he),r(()=>T(e(he)))),()=>(e(he),r(()=>ee(e(he).status))),()=>(e(he),r(()=>ee(e(he).status)))]),P("click",De,()=>R(e(he).id)),o(Je,De)}),t(ge);var ue=n(ge,2),i=a(ue),w=a(i),de=a(w);t(w);var ye=n(w,2),$=a(ye);Ye($,1,()=>Pt,Xt,(Je,he)=>{var Be=Os();let Ke;H(()=>{Ke=be(Be,1,"swatch svelte-wmno67",null,Ke,{active:e(d)===e(he)}),Ee(Be,"aria-label",`设置 ${e(he)??""} 主题`),lt(Be,`background:${ve(st),e(he),r(()=>st[e(he)])??""}`)}),P("click",Be,()=>Ht(e(k),e(he))),o(Je,Be)});var Pe=n($,2);let Ue;t(ye),t(i),t(ue),t(te),H(Je=>{q(de,`Theme · ${e(b),r(()=>{var he,Be;return((he=e(b))==null?void 0:he.name)??((Be=e(b))==null?void 0:Be.id)??"Agent"})??""}`),Ue=be(Pe,1,"auto svelte-wmno67",null,Ue,Je)},[()=>({active:e(d)===za(e(k))})]),P("click",Pe,()=>Ht(e(k),null)),o(g,te)};U(le,g=>{e(G)&&g(u)})}t(Y);var z=n(Y,2);{var J=g=>{var te=Rs(),ge=n(Ne(te),2);Ye(ge,5,()=>e(x),ue=>ue.id,(ue,i)=>{const w=mt(()=>(e(y),e(i),ve(wt),r(()=>e(y)[e(i).id]??wt(e(i).id))));var de=js();let ye;var $=a(de),Pe=a($,!0);t($);var Ue=n($,2),Je=a(Ue),he=a(Je,!0);t(Je),t(Ue);var Be=n(Ue,2),Ke=a(Be,!0);t(Be);var De=n(Be,2),Me=a(De,!0);t(De),t(de),H((He,Qe,et)=>{ye=be(de,1,"switch-pill svelte-wmno67",null,ye,{active:e(i).id===e(k)}),lt($,`background:${ve(gt),ve(e(w)),r(()=>gt[e(w)])??""}; color:${ve(st),ve(e(w)),r(()=>st[e(w)])??""}; border-color:${ve(yt),ve(e(w)),r(()=>yt[e(w)])??""}`),q(Pe,He),be(Ue,1,`status-dot ${Qe??""}`,"svelte-wmno67"),lt(Ue,`--dot:${ve(st),ve(e(w)),r(()=>st[e(w)])??""}`),q(he,et),q(Ke,(e(i),r(()=>e(i).name??e(i).id))),q(Me,(e(h),e(i),r(()=>e(h)[e(i).id]??0)))},[()=>(e(i),r(()=>T(e(i)))),()=>(e(i),r(()=>ee(e(i).status))),()=>(e(i),r(()=>ee(e(i).status)))]),P("click",de,()=>ce(e(i).id)),o(ue,de)}),t(ge),o(g,te)};U(z,g=>{ve(K()),e(x),r(()=>K()&&e(x).length>1)&&g(J)})}var fe=n(z,2);{var ze=g=>{var te=Fs();P("click",te,()=>It.set(!0)),o(g,te)};U(fe,g=>{K()&&g(ze)})}var Ce=n(fe,2),je=a(Ce);{let g=mt(()=>(e(b),r(()=>{var te,ge;return((te=e(b))==null?void 0:te.name)??((ge=e(b))==null?void 0:ge.id)})));qs(je,{get activeId(){return O()},get agentId(){return e(k)},get agentName(){return e(g)}})}t(Ce);var Fe=n(Ce,2),ie=a(Fe),Ie=a(ie);t(ie);var Q=n(ie,4),Oe=a(Q);t(Q),t(Fe),t(j),t(re),H((g,te,ge)=>{F=be(re,1,"agent-panel svelte-wmno67",null,F,{drawer:K()}),Ee(L,"aria-expanded",e(G)),lt(oe,`background:${ve(gt),e(d),r(()=>gt[e(d)])??""}; color:${ve(st),e(d),r(()=>st[e(d)])??""}; border-color:${ve(yt),e(d),r(()=>yt[e(d)])??""}`),q(ke,g),be(Se,1,`status-dot ${te??""}`,"svelte-wmno67"),lt(Se,`--dot:${ve(st),e(d),r(()=>st[e(d)])??""}`),q(Re,ge),q(N,(e(b),r(()=>{var ue,i;return((ue=e(b))==null?void 0:ue.name)??((i=e(b))==null?void 0:i.id)??"Agent"}))),q(Ie,`${e(S)??""} 活跃`),q(Oe,`${e(_)??""} 已推送`)},[()=>(e(b),r(()=>T(e(b)))),()=>(e(b),r(()=>{var g;return ee((g=e(b))==null?void 0:g.status)})),()=>(e(b),r(()=>{var g;return ee((g=e(b))==null?void 0:g.status)}))]),P("click",L,D),o(E,re),Xe(),I()}var Js=f('<span class="meta svelte-1h1y2gb"> </span>'),Ns=f('<div class="bar svelte-1h1y2gb"><div class="fill svelte-1h1y2gb"></div></div>'),Ks=f('<button type="button"><span class="box svelte-1h1y2gb"><span class="dot svelte-1h1y2gb"></span> <span class="check svelte-1h1y2gb">✓</span></span> <span class="tx svelte-1h1y2gb"> </span></button>'),Hs=f('<div class="section-label svelte-1h1y2gb">暂无任务</div>'),Qs=f('<div class="task svelte-1h1y2gb"><div class="hd svelte-1h1y2gb"><!></div> <!> <div class="items svelte-1h1y2gb"><!> <!></div></div>');function Ys(E,c){Ze(c,!1);const v=p(),A=p(),B=p();let l=qe(c,"sessionId",8,void 0),M=qe(c,"tick",8,0),I=p({total:0,done:0,items:[]}),k=p(new Set),b;async function x(R){if(!R){s(I,{total:0,done:0,items:[]}),s(k,new Set);return}R!==b&&(b=R,s(k,new Set));try{const D=await Te.todo(R);if(R!==l())return;s(I,_a(D))}catch{}}function h(R){e(k).has(R)?e(k).delete(R):e(k).add(R),s(k,e(k))}ae(()=>(ve(l()),ve(M())),()=>{x(l()),M()}),ae(()=>(e(I),e(k)),()=>{s(v,e(I).items.map((R,D)=>({...R,status:e(k).has(D)?R.status==="done"?"pending":"done":R.status})))}),ae(()=>e(v),()=>{s(A,e(v).filter(R=>R.status==="done").length)}),ae(()=>(e(I),e(A)),()=>{s(B,e(I).total?Math.round(e(A)/e(I).total*100):0)}),nt(),Ve();var S=Qs(),_=a(S),d=a(_);{var y=R=>{var D=Js(),ce=a(D);t(D),H(()=>q(ce,`${e(A)??""}/${e(I),r(()=>e(I).total)??""}`)),o(R,D)};U(d,R=>{e(I),r(()=>e(I).total)&&R(y)})}t(_);var O=n(_,2);{var K=R=>{var D=Ns(),ce=a(D);t(D),H(()=>lt(ce,`transform:scaleX(${e(B)/100})`)),o(R,D)};U(O,R=>{e(I),r(()=>e(I).total)&&R(K)})}var G=n(O,2),X=a(G);Ye(X,3,()=>e(v),(R,D)=>R.text+"-"+D,(R,D,ce)=>{var V=Ks(),ne=n(a(V),2),se=a(ne,!0);t(ne),t(V),H(()=>{be(V,1,`row ${e(D),r(()=>e(D).status)??""}`,"svelte-1h1y2gb"),q(se,(e(D),r(()=>e(D).text)))}),P("click",V,()=>h(e(ce))),o(R,V)});var T=n(X,2);{var ee=R=>{var D=Hs();o(R,D)};U(T,R=>{e(I),r(()=>e(I).total===0)&&R(ee)})}t(G),t(S),o(E,S),Xe()}var Gs=f('<div><span class="dot svelte-ehf8ic" aria-hidden="true"></span><span> </span><span class="sr-only svelte-ehf8ic"> </span></div>'),Vs=f('<div class="label">未配置</div>'),Zs=f('<div class="mcp svelte-ehf8ic"><div class="list svelte-ehf8ic"><!> <!></div></div>');function Xs(E,c){Ze(c,!1);let v=qe(c,"tick",8,0),A=p([]);async function B(){try{s(A,await Te.mcp())}catch{}}ae(()=>ve(v()),()=>{B(),v()}),nt(),Ve();var l=Zs(),M=a(l),I=a(M);Ye(I,1,()=>e(A),Xt,(x,h)=>{var S=Gs();let _;var d=n(a(S)),y=a(d,!0);t(d);var O=n(d),K=a(O,!0);t(O),t(S),H(()=>{_=be(S,1,"row svelte-ehf8ic",null,_,{off:e(h).status==="disabled"}),q(y,(e(h),r(()=>e(h).name))),q(K,(e(h),r(()=>e(h).status)))}),o(x,S)});var k=n(I,2);{var b=x=>{var h=Vs();o(x,h)};U(k,x=>{e(A),r(()=>e(A).length===0)&&x(b)})}t(M),t(l),o(E,l),Xe()}var en=f('<div><button><span class="dot svelte-pijcyq" aria-hidden="true"></span></button> <div class="txt svelte-pijcyq"><div class="prompt svelte-pijcyq"> </div> <div class="spec mono svelte-pijcyq"> </div></div> <button> </button></div>'),tn=f('<div class="label svelte-pijcyq">暂无</div>'),an=f('<div class="err svelte-pijcyq"> </div>'),sn=f('<div class="form svelte-pijcyq"><textarea class="prompt-in svelte-pijcyq" rows="2" placeholder="让 agent 做什么?"></textarea> <div class="kind svelte-pijcyq"><label><input type="radio" class="svelte-pijcyq"/> 每 <input class="num svelte-pijcyq" type="number" min="1" max="10080"/> 分钟</label> <label><input type="radio" class="svelte-pijcyq"/> 每天 <input class="time svelte-pijcyq" type="time"/></label></div> <!> <button class="go svelte-pijcyq">创建</button></div>'),nn=f('<div class="schedules svelte-pijcyq"><div class="hd svelte-pijcyq"><button class="add svelte-pijcyq"> </button></div> <div class="list svelte-pijcyq"><!> <!></div> <!></div>');function rn(E,c){Ze(c,!1);const v=[];let A=qe(c,"tick",8,0),B=p([]),l=p(!1),M=p(""),I=p("every"),k=p(30),b=p("09:00"),x=p(""),h=p(),S;async function _(){try{s(B,(await Te.schedules()).schedules??[])}catch{}}function d(re){return re.kind==="every"?re.minutes>=60&&re.minutes%60===0?`every ${re.minutes/60}h`:`every ${re.minutes}m`:`daily ${re.time}`}function y(re){return re.name||re.prompt}async function O(){if(!e(M).trim())return;s(x,"");const re=e(I)==="every"?{kind:"every",minutes:Math.max(1,Math.round(e(k)))}:{kind:"daily",time:e(b)};try{const F=await Te.addSchedule({prompt:e(M).trim(),spec:re});if(F.error){s(x,F.error);return}s(M,""),s(l,!1),await _()}catch(F){s(x,F.message)}}async function K(re){s(B,e(B).map(F=>F.id===re.id?{...F,enabled:!F.enabled}:F));try{await Te.setScheduleEnabled(re.id,!re.enabled),await _()}catch{await _()}}async function G(re){if(e(h)!==re){s(h,re),clearTimeout(S),S=setTimeout(()=>s(h,void 0),3e3);return}clearTimeout(S),s(h,void 0);try{await Te.deleteSchedule(re),await _()}catch{}}ae(()=>ve(A()),()=>{_(),A()}),nt(),Ve();var X=nn(),T=a(X),ee=a(T),R=a(ee,!0);t(ee),t(T);var D=n(T,2),ce=a(D);Ye(ce,1,()=>e(B),re=>re.id,(re,F)=>{var j=en();let Y;var L=a(j);let oe;var ke=n(L,2),Se=a(ke),We=a(Se,!0);t(Se);var Re=n(Se,2),Z=a(Re,!0);t(Re),t(ke);var N=n(ke,2);let pe;var Ae=a(N,!0);t(N),t(j),H((xe,m,W,C)=>{Y=be(j,1,"row svelte-pijcyq",null,Y,{off:!e(F).enabled}),oe=be(L,1,"switch svelte-pijcyq",null,oe,{on:e(F).enabled}),Ee(L,"aria-pressed",(e(F),r(()=>e(F).enabled))),Ee(L,"aria-label",xe),q(We,m),q(Z,W),pe=be(N,1,"del svelte-pijcyq",null,pe,{arm:e(h)===e(F).id}),Ee(N,"aria-label",`删除 ${C??""}`),q(Ae,(e(h),e(F),r(()=>e(h)===e(F).id?"确认?":"✕")))},[()=>(e(F),r(()=>`${e(F).enabled?"停用":"启用"} ${y(e(F))}`)),()=>(e(F),r(()=>y(e(F)))),()=>(e(F),r(()=>d(e(F).spec))),()=>(e(F),r(()=>y(e(F))))]),P("click",L,()=>K(e(F))),P("click",N,()=>G(e(F).id)),o(re,j)});var V=n(ce,2);{var ne=re=>{var F=tn();o(re,F)};U(V,re=>{e(B),e(l),r(()=>e(B).length===0&&!e(l))&&re(ne)})}t(D);var se=n(D,2);{var we=re=>{var F=sn(),j=a(F);Ja(j);var Y=n(j,2),L=a(Y);let oe;var ke=a(L);ft(ke),ke.value=ke.__value="every";var Se=n(ke,2);ft(Se),_t(),t(L);var We=n(L,2);let Re;var Z=a(We);ft(Z),Z.value=Z.__value="daily";var N=n(Z,2);ft(N),t(We),t(Y);var pe=n(Y,2);{var Ae=m=>{var W=an(),C=a(W,!0);t(W),H(()=>q(C,e(x))),o(m,W)};U(pe,m=>{e(x)&&m(Ae)})}var xe=n(pe,2);t(F),H(m=>{oe=be(L,1,"svelte-pijcyq",null,oe,{sel:e(I)==="every"}),Se.disabled=e(I)!=="every",Re=be(We,1,"svelte-pijcyq",null,Re,{sel:e(I)==="daily"}),N.disabled=e(I)!=="daily",xe.disabled=m},[()=>(e(M),r(()=>!e(M).trim()))]),bt(j,()=>e(M),m=>s(M,m)),ia(v,[],ke,()=>e(I),m=>s(I,m)),bt(Se,()=>e(k),m=>s(k,m)),ia(v,[],Z,()=>e(I),m=>s(I,m)),bt(N,()=>e(b),m=>s(b,m)),P("click",xe,O),o(re,F)};U(se,re=>{e(l)&&re(we)})}t(X),H(()=>{Ee(ee,"aria-label",e(l)?"取消新建计划":"新建计划"),q(R,e(l)?"×":"+")}),P("click",ee,()=>s(l,!e(l))),o(E,X),Xe()}var ln=f('<span class="chip svelte-taxat6"> </span>'),on=f('<button class="more svelte-taxat6"> </button>'),cn=f("<div></div> <!>",1),vn=f('<div class="label svelte-taxat6">none</div>'),dn=f('<div class="skills svelte-taxat6"><!></div>');function un(E,c){Ze(c,!1);const v=p();let A=qe(c,"tick",8,0),B=p([]),l=p(!1);async function M(){try{s(B,(await Te.skills()).skills??[])}catch{}}ae(()=>(e(l),e(B)),()=>{s(v,e(l)?e(B):e(B).slice(0,18))}),ae(()=>ve(A()),()=>{M(),A()}),nt(),Ve();var I=dn(),k=a(I);{var b=h=>{var S=cn(),_=Ne(S);let d;Ye(_,5,()=>e(v),K=>K.name,(K,G)=>{var X=ln(),T=a(X,!0);t(X),H(()=>{Ee(X,"title",(e(G),r(()=>e(G).description??e(G).name))),q(T,(e(G),r(()=>e(G).name)))}),o(K,X)}),t(_);var y=n(_,2);{var O=K=>{var G=on(),X=a(G,!0);t(G),H(()=>q(X,(e(l),e(B),r(()=>e(l)?"收起":`展开全部 ${e(B).length}`)))),P("click",G,()=>s(l,!e(l))),o(K,G)};U(y,K=>{e(B),r(()=>e(B).length>18)&&K(O)})}H(()=>d=be(_,1,"chips svelte-taxat6",null,d,{clipped:!e(l)&&e(B).length>18})),o(h,S)},x=h=>{var S=vn();o(h,S)};U(k,h=>{e(B),r(()=>e(B).length>0)?h(b):h(x,-1)})}t(I),o(E,I),Xe()}var pn=f('<button class="up svelte-tp0rgj" aria-label="上级目录"> </button>'),fn=f('<span class="mono"> </span>'),hn=f('<button class="row svelte-tp0rgj"><span class="ico svelte-tp0rgj"> </span> <span class="name svelte-tp0rgj"> </span></button>'),bn=f('<div class="label svelte-tp0rgj">empty</div>'),_n=f('<div class="label svelte-tp0rgj">…</div>'),mn=f('<div class="files svelte-tp0rgj"><div class="crumb mono svelte-tp0rgj"><!></div> <div class="list svelte-tp0rgj"><!> <!> <!></div></div>');function gn(E,c){Ze(c,!1);const v=()=>Le(dt,"$sessionList",A),[A,B]=ot(),l=p();let M=qe(c,"sessionId",8,void 0),I=qe(c,"tick",8,0),k=p([]),b=p("."),x=p(!1);async function h(){if(e(l)){s(x,!0);try{s(k,(await Te.browse(e(l),e(b))).files??[])}catch{s(k,[])}finally{s(x,!1)}}}function S(){const V=e(b).replace(/(^|\/)[^/]+\/?$/,"")||".";s(b,V),h()}function _(V){if(V.type==="directory"){s(b,V.path),h();return}ma({id:`file:${V.path}`,kind:"file",title:V.name,path:V.path,directory:e(l)})}ae(()=>(v(),ve(M())),()=>{var V;s(l,((V=v().find(ne=>ne.id===M()))==null?void 0:V.directory)??"")}),ae(()=>(e(l),e(b),ve(I())),()=>{e(l)&&(e(l),e(b),I(),h())}),nt(),Ve();var d=mn(),y=a(d),O=a(y);{var K=V=>{var ne=pn(),se=a(ne);t(ne),H(()=>q(se,`↰ ${e(b)??""}`)),P("click",ne,S),o(V,ne)},G=V=>{var ne=fn(),se=a(ne,!0);t(ne),H(we=>q(se,we),[()=>(e(l),r(()=>e(l).split("/").pop()||"/"))]),o(V,ne)};U(O,V=>{e(b)!=="."?V(K):V(G,-1)})}t(y);var X=n(y,2),T=a(X);Ye(T,1,()=>e(k),V=>V.path,(V,ne)=>{var se=hn(),we=a(se),re=a(we,!0);t(we);var F=n(we,2),j=a(F,!0);t(F),t(se),H(()=>{q(re,(e(ne),r(()=>e(ne).type==="directory"?"📁":"📄"))),q(j,(e(ne),r(()=>e(ne).name)))}),P("click",se,()=>_(e(ne))),o(V,se)});var ee=n(T,2);{var R=V=>{var ne=bn();o(V,ne)};U(ee,V=>{e(x),e(k),r(()=>!e(x)&&e(k).length===0)&&V(R)})}var D=n(ee,2);{var ce=V=>{var ne=_n();o(V,ne)};U(D,V=>{e(x)&&V(ce)})}t(X),t(d),o(E,d),Xe(),B()}var yn=f('<div class="row svelte-148ev8e"><span class="ico svelte-148ev8e" aria-hidden="true">🌿</span> <span class="name svelte-148ev8e"> </span> <button> </button></div>'),wn=f('<div class="rows svelte-148ev8e"></div>'),kn=f('<div class="label svelte-148ev8e">none</div>'),An=f('<div class="err svelte-148ev8e"> </div>'),xn=f('<div class="form svelte-148ev8e"><input class="name-in mono svelte-148ev8e" placeholder="worktree 名称"/> <!> <button class="go svelte-148ev8e">创建</button></div>'),$n=f('<div class="wt svelte-148ev8e"><div class="hd svelte-148ev8e"><button class="add svelte-148ev8e"> </button></div> <div class="list svelte-148ev8e"><!></div> <!></div>');function In(E,c){Ze(c,!1);const v=()=>Le(dt,"$sessionList",A),[A,B]=ot(),l=p();let M=qe(c,"sessionId",8,void 0),I=qe(c,"tick",8,0),k=p([]),b=p(!1),x=p(""),h=p(""),S=p(),_;async function d(){if(e(l))try{s(k,(await Te.worktrees(e(l))).worktrees??[])}catch{}}async function y(){if(e(x).trim()){s(h,"");try{const se=await Te.createWorktree(e(l),e(x).trim());if(se.error){s(h,se.error);return}s(x,""),s(b,!1),await d()}catch(se){s(h,se.message)}}}async function O(se){if(e(S)!==se){s(S,se),clearTimeout(_),_=setTimeout(()=>s(S,void 0),3e3);return}clearTimeout(_),s(S,void 0);try{await Te.removeWorktree(e(l),se),await d()}catch{}}ae(()=>(v(),ve(M())),()=>{var se;s(l,((se=v().find(we=>we.id===M()))==null?void 0:se.directory)??"")}),ae(()=>(ve(I()),e(l)),()=>{d(),I(),e(l)}),nt(),Ve();var K=$n(),G=a(K),X=a(G),T=a(X,!0);t(X),t(G);var ee=n(G,2),R=a(ee);{var D=se=>{var we=wn();Ye(we,5,()=>e(k),re=>re.name,(re,F)=>{var j=yn(),Y=n(a(j),2),L=a(Y,!0);t(Y);var oe=n(Y,2);let ke;var Se=a(oe,!0);t(oe),t(j),H(()=>{q(L,(e(F),r(()=>e(F).name))),ke=be(oe,1,"del svelte-148ev8e",null,ke,{arm:e(S)===e(F).name}),Ee(oe,"aria-label",`删除 ${e(F),r(()=>e(F).name)??""}`),q(Se,(e(S),e(F),r(()=>e(S)===e(F).name?"确认?":"✕")))}),P("click",oe,()=>O(e(F).name)),o(re,j)}),t(we),o(se,we)},ce=se=>{var we=kn();o(se,we)};U(R,se=>{e(k),r(()=>e(k).length>0)?se(D):e(b)||se(ce,1)})}t(ee);var V=n(ee,2);{var ne=se=>{var we=xn(),re=a(we);ft(re);var F=n(re,2);{var j=L=>{var oe=An(),ke=a(oe,!0);t(oe),H(()=>q(ke,e(h))),o(L,oe)};U(F,L=>{e(h)&&L(j)})}var Y=n(F,2);t(we),H(L=>Y.disabled=L,[()=>(e(x),r(()=>!e(x).trim()))]),bt(re,()=>e(x),L=>s(x,L)),P("click",Y,y),o(se,we)};U(V,se=>{e(b)&&se(ne)})}t(K),H(()=>{Ee(X,"aria-label",e(b)?"取消新建":"新建 worktree"),q(T,e(b)?"×":"+")}),P("click",X,()=>s(b,!e(b))),o(E,K),Xe(),B()}var Sn=f('<span class="count mono svelte-1s66f6s"> </span>'),Tn=f('<span class="live-label svelte-1s66f6s">运行中</span>'),zn=f('<button class="row svelte-1s66f6s"><span aria-hidden="true"></span> <span class="meta svelte-1s66f6s"><span class="title svelte-1s66f6s"> </span> <!></span> <!></button>'),Mn=f('<div class="empty svelte-1s66f6s">该会话暂无子代理</div>'),Cn=f('<div class="empty svelte-1s66f6s">…</div>'),qn=f('<div class="subs svelte-1s66f6s"><!> <!> <!></div>');function Ln(E,c){Ze(c,!1);let v=qe(c,"sessionId",8,void 0),A=qe(c,"tick",8,0),B=p([]),l=p(!1);async function M(){if(!v()){s(B,[]);return}s(l,!0);try{const d=await Te.subagents(v());s(B,[...d.subagents??[]].sort((y,O)=>Number(O.busy??!1)-Number(y.busy??!1)))}catch{s(B,[])}finally{s(l,!1)}}function I(d){ma({id:`sub:${d.id}`,kind:"subagent",title:d.title||"…"+d.id.slice(-6),childId:d.id})}ae(()=>(ve(v()),ve(A())),()=>{v()&&(v(),A(),M())}),nt(),Ve();var k=qn(),b=a(k);Ye(b,1,()=>e(B),d=>d.id,(d,y)=>{var O=zn(),K=a(O);let G;var X=n(K,2),T=a(X),ee=a(T,!0);t(T);var R=n(T,2);{var D=ne=>{var se=Sn(),we=a(se);t(se),H(()=>q(we,`${e(y),r(()=>e(y).done)??""}/${e(y),r(()=>e(y).total)??""}`)),o(ne,se)};U(R,ne=>{e(y),r(()=>e(y).total>0)&&ne(D)})}t(X);var ce=n(X,2);{var V=ne=>{var se=Tn();o(ne,se)};U(ce,ne=>{e(y),r(()=>e(y).busy)&&ne(V)})}t(O),H(ne=>{G=be(K,1,"dot svelte-1s66f6s",null,G,{live:e(y).busy,done:!e(y).busy&&e(y).total>0&&e(y).done>=e(y).total}),q(ee,ne)},[()=>(e(y),r(()=>e(y).title||"…"+e(y).id.slice(-6)))]),P("click",O,()=>I(e(y))),o(d,O)});var x=n(b,2);{var h=d=>{var y=Mn();o(d,y)};U(x,d=>{e(l),e(B),r(()=>!e(l)&&e(B).length===0)&&d(h)})}var S=n(x,2);{var _=d=>{var y=Cn();o(d,y)};U(S,d=>{e(l)&&d(_)})}t(k),o(E,k),Xe()}var En=f('<div class="ln user svelte-6fqea2"><span class="who mono svelte-6fqea2">用户</span><span class="tx svelte-6fqea2"> </span></div>'),Bn=f('<div class="ln md svelte-6fqea2"><!></div>'),Dn=f('<div class="ln tool mono svelte-6fqea2"><span class="who mono svelte-6fqea2"> </span><span class="tx mono svelte-6fqea2"> </span></div>'),On=f('<div class="ln err mono svelte-6fqea2"> </div>'),Pn=f('<div class="empty svelte-6fqea2"> </div>'),jn=f('<div class="t-wrap svelte-6fqea2"><div class="t-hint mono svelte-6fqea2"> </div> <div class="t-body svelte-6fqea2"></div></div>');function Rn(E,c){Ze(c,!1);let v=qe(c,"childId",8),A=qe(c,"tick",8,0);const B=40;let l=p([]),M=p(!1);async function I(){var S;s(M,!0);try{const d=(await Te.history(v(),{limit:B})).cards??[],y=[];for(const O of d)if(O.kind==="user")y.push({kind:"user",text:String(O.text??"")});else if(O.kind==="assistant")for(const K of O.blocks??[])K.type==="text"&&((S=K.text)!=null&&S.trim())?y.push({kind:"assistant",text:K.text}):K.type==="tool"&&y.push({kind:"tool",tool:K.tool,args:K.args,status:K.status});else O.kind==="error"&&y.push({kind:"error",text:String(O.message??"")});s(l,y.slice(-B))}catch{s(l,[])}finally{s(M,!1)}}ae(()=>(ve(v()),ve(A())),()=>{v()&&(v(),A(),I())}),nt(),Ve();var k=jn(),b=a(k),x=a(b,!0);t(b);var h=n(b,2);Ye(h,5,()=>e(l),Xt,(S,_)=>{var d=it(),y=Ne(d);{var O=T=>{var ee=En(),R=n(a(ee)),D=a(R,!0);t(R),t(ee),H(()=>q(D,(e(_),r(()=>e(_).text)))),o(T,ee)},K=T=>{var ee=Bn(),R=a(ee);ga(R,{get src(){return e(_),r(()=>e(_).text)}}),t(ee),o(T,ee)},G=T=>{var ee=Dn(),R=a(ee),D=a(R,!0);t(R);var ce=n(R),V=a(ce,!0);t(ce),t(ee),H(ne=>{q(D,(e(_),r(()=>e(_).tool))),q(V,ne)},[()=>(e(_),r(()=>(e(_).args??"").slice(0,120)))]),o(T,ee)},X=T=>{var ee=On(),R=a(ee,!0);t(ee),H(()=>q(R,(e(_),r(()=>e(_).text)))),o(T,ee)};U(y,T=>{e(_),r(()=>e(_).kind==="user")?T(O):(e(_),r(()=>e(_).kind==="assistant")?T(K,1):(e(_),r(()=>e(_).kind==="tool")?T(G,2):(e(_),r(()=>e(_).kind==="error")&&T(X,3))))})}o(S,d)},S=>{var _=Pn(),d=a(_,!0);t(_),H(()=>q(d,e(M)?"…":"(无输出)")),o(S,_)}),t(h),t(k),H(()=>q(x,e(M)?"刷新中…":"实况 · 最近 "+B+" 条")),o(E,k),Xe()}var Fn=f('<div class="trunc label svelte-va1nfd"> </div>'),Wn=f('<div class="hint label svelte-va1nfd">…</div>'),Un=f('<div class="hint label svelte-va1nfd">读取失败</div>'),Jn=f('<div class="hint label svelte-va1nfd">(二进制文件,无法预览)</div>'),Nn=f('<div class="fv svelte-va1nfd"><!> <div class="body svelte-va1nfd"><!></div></div>');function Kn(E,c){Ze(c,!1);const v=p(),A=p(),B=p();let l=qe(c,"directory",8),M=qe(c,"path",8);const I=2e5;let k=p(""),b=p(!1),x=p(!1),h=p(!1),S=p(!1);async function _(){s(S,!0),s(h,!1);try{const D=await Te.fileContent(l(),M());if(D.type!=="text"){s(x,!0),s(k,"");return}s(x,!1),s(b,D.content.length>I),s(k,e(b)?D.content.slice(0,I):D.content)}catch{s(h,!0)}finally{s(S,!1)}}ae(()=>(ve(l()),ve(M())),()=>{l()&&M()&&(l(),M(),_())}),ae(()=>ve(M()),()=>{s(v,/\.(md|markdown)$/i.test(M()))}),ae(()=>ve(M()),()=>{s(A,M().split(".").pop()??"")}),ae(()=>(e(x),e(h),e(v),e(k),e(A)),()=>{s(B,e(x)||e(h)?"":e(v)?e(k):"```"+e(A)+`
2
- `+e(k)+"\n```")}),nt(),Ve();var d=Nn(),y=a(d);{var O=D=>{var ce=Fn(),V=a(ce);t(ce),H(ne=>q(V,`文件超过 ${ne??""} 字符,已截断显示`),[()=>r(()=>I.toLocaleString())]),o(D,ce)};U(y,D=>{e(b)&&D(O)})}var K=n(y,2),G=a(K);{var X=D=>{var ce=Wn();o(D,ce)},T=D=>{var ce=Un();o(D,ce)},ee=D=>{var ce=Jn();o(D,ce)},R=D=>{{let ce=mt(()=>e(v)?e(k):e(B));ga(D,{get src(){return e(ce)}})}};U(G,D=>{e(S)?D(X):e(h)?D(T,1):e(x)?D(ee,2):D(R,-1)})}t(K),t(d),o(E,d),Xe()}var Hn=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),Qn=f('<button role="tab"> <!></button>'),Yn=f('<button role="tab"><span class="dlabel svelte-gu3dqx"> </span> <span class="closer svelte-gu3dqx" role="button" tabindex="-1">✕</span></button>'),Gn=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Vn=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Zn=f('<aside class="inspector svelte-gu3dqx"><div class="head svelte-gu3dqx"><div class="section-label svelte-gu3dqx">会话</div> <div class="name svelte-gu3dqx"><span class="title-text svelte-gu3dqx"> </span></div></div> <div class="tabs svelte-gu3dqx" role="tablist"><!> <!></div> <div class="pane svelte-gu3dqx"><!></div></aside>');function Xn(E,c){Ze(c,!1);const v=()=>Le(dt,"$sessionList",M),A=()=>Le(Lt,"$feeds",M),B=()=>Le(Kt,"$sidePane",M),l=()=>Le(pa,"$can",M),[M,I]=ot(),k=p(),b=p(),x=p(),h=p(),S=p();let _=qe(c,"sessionId",8,void 0),d=p(0),y=p(-1),O=p();Vt(()=>clearTimeout(e(O)));const K=[{id:"tasks",label:"任务"},{id:"files",label:"文件"},{id:"subs",label:"子代理"},{id:"skills",label:"Skills"},{id:"config",label:"配置"}];let G=p({total:0,done:0,items:[]}),X;async function T(Z){try{const N=await Te.todo(Z);if(Z!==_())return;X=Z,s(G,_a(N))}catch{}}let ee=p();ae(()=>(v(),ve(_())),()=>{s(k,v().find(Z=>Z.id===_()))}),ae(()=>e(k),()=>{var Z;s(b,(Z=e(k))==null?void 0:Z.title)}),ae(()=>(ve(_()),A()),()=>{var Z;s(x,_()?((Z=A()[_()])==null?void 0:Z.lastSeq)??0:0)}),ae(()=>(e(x),e(y),e(O),e(d)),()=>{e(x)!==e(y)&&(s(y,e(x)),clearTimeout(e(O)),s(O,setTimeout(()=>s(d,e(d)+1),1e3)))}),ae(()=>B(),()=>{s(h,B().activeId)}),ae(()=>(B(),e(h)),()=>{s(S,B().tabs.find(Z=>Z.id===e(h)))}),ae(()=>(ve(_()),e(ee)),()=>{_()!==e(ee)&&(s(ee,_()),T(_()))}),ae(()=>(e(d),ve(_())),()=>{e(d)&&T(_())}),nt(),Ve();var R=Zn(),D=a(R),ce=n(a(D),2),V=a(ce),ne=a(V,!0);t(V),t(ce),t(D);var se=n(D,2),we=a(se);Ye(we,1,()=>K,Z=>Z.id,(Z,N)=>{var pe=Qn();let Ae;var xe=a(pe,!0),m=n(xe);{var W=C=>{var le=Hn(),u=a(le);t(le),H(()=>q(u,`${e(G),r(()=>e(G).done)??""}/${e(G),r(()=>e(G).total)??""}`)),o(C,le)};U(m,C=>{e(N),e(G),r(()=>e(N).id==="tasks"&&e(G).total>0)&&C(W)})}t(pe),H(()=>{Ae=be(pe,1,"tab svelte-gu3dqx",null,Ae,{active:e(h)===e(N).id}),Ee(pe,"aria-selected",(e(h),e(N),r(()=>e(h)===e(N).id))),q(xe,(e(N),r(()=>e(N).label)))}),P("click",pe,()=>Kt.activatePane(e(N).id)),o(Z,pe)});var re=n(we,2);Ye(re,1,()=>(B(),r(()=>B().tabs)),Z=>Z.id,(Z,N)=>{var pe=Yn();let Ae;var xe=a(pe),m=a(xe,!0);t(xe);var W=n(xe,2);t(pe),H(()=>{Ae=be(pe,1,"tab dyn svelte-gu3dqx",null,Ae,{active:e(h)===e(N).id}),Ee(pe,"aria-selected",(e(h),e(N),r(()=>e(h)===e(N).id))),Ee(pe,"title",(e(N),r(()=>e(N).kind==="file"?e(N).path:e(N).title))),q(m,(e(N),r(()=>e(N).title))),Ee(W,"aria-label",(e(N),r(()=>`关闭 ${e(N).title}`)))}),P("click",W,Gt(()=>oa(e(N).id))),P("keydown",W,Gt(C=>C.key==="Enter"&&oa(e(N).id))),P("click",pe,()=>Kt.activatePane(e(N).id)),o(Z,pe)}),t(se);var F=n(se,2),j=a(F);{var Y=Z=>{var N=it(),pe=Ne(N);{var Ae=m=>{Ys(m,{get sessionId(){return _()},get tick(){return e(d)}})},xe=kt(()=>(l(),r(()=>l()("todos"))));U(pe,m=>{e(xe)&&m(Ae)})}o(Z,N)},L=Z=>{var N=Gn(),pe=Ne(N);gn(pe,{get sessionId(){return _()},get tick(){return e(d)}});var Ae=n(pe,4);{var xe=W=>{In(W,{get sessionId(){return _()},get tick(){return e(d)}})},m=kt(()=>(l(),r(()=>l()("worktrees"))));U(Ae,W=>{e(m)&&W(xe)})}o(Z,N)},oe=Z=>{var N=it(),pe=Ne(N);{var Ae=m=>{Ln(m,{get sessionId(){return _()},get tick(){return e(d)}})},xe=kt(()=>(l(),r(()=>l()("todos"))));U(pe,m=>{e(xe)&&m(Ae)})}o(Z,N)},ke=Z=>{var N=it(),pe=Ne(N);{var Ae=m=>{un(m,{get tick(){return e(d)}})},xe=kt(()=>(l(),r(()=>l()("skills"))));U(pe,m=>{e(xe)&&m(Ae)})}o(Z,N)},Se=Z=>{var N=Vn(),pe=Ne(N);rn(pe,{get tick(){return e(d)}});var Ae=n(pe,4);{var xe=W=>{Xs(W,{get tick(){return e(d)}})},m=kt(()=>(l(),r(()=>l()("mcp"))));U(Ae,W=>{e(m)&&W(xe)})}o(Z,N)},We=Z=>{Rn(Z,{get childId(){return e(S),r(()=>e(S).childId)},get tick(){return e(d)}})},Re=Z=>{Kn(Z,{get directory(){return e(S),r(()=>e(S).directory)},get path(){return e(S),r(()=>e(S).path)}})};U(j,Z=>{e(h)==="tasks"?Z(Y):e(h)==="files"?Z(L,1):e(h)==="subs"?Z(oe,2):e(h)==="skills"?Z(ke,3):e(h)==="config"?Z(Se,4):(e(S),r(()=>{var N;return((N=e(S))==null?void 0:N.kind)==="subagent"})?Z(We,5):(e(S),r(()=>{var N;return((N=e(S))==null?void 0:N.kind)==="file"})&&Z(Re,6)))})}t(F),t(R),H(Z=>{Ee(ce,"title",e(b)??_()),q(ne,Z)},[()=>(e(b),ve(_()),r(()=>e(b)||(_()?"…"+_().slice(-8):"No session")))]),o(E,R),Xe(),I()}function er(E,c){const v=c.trim().toLowerCase();return v?E.filter(A=>(A.title??"").toLowerCase().includes(v)||(A.agent??"").toLowerCase().includes(v)||A.id.toLowerCase().includes(v)):E}var tr=f('<div class="empty svelte-wh9uu8">无匹配结果</div>'),ar=f('<div class="group svelte-wh9uu8" role="presentation"><span class="group-icon svelte-wh9uu8" aria-hidden="true"> </span> <span class="group-label mono svelte-wh9uu8"> </span></div>'),sr=f('<button role="option"><span class="tile glyph svelte-wh9uu8" aria-hidden="true"> </span> <span class="label svelte-wh9uu8"> </span> <span class="hint mono svelte-wh9uu8"> </span></button>'),nr=f('<button role="option"><span class="tile svelte-wh9uu8" aria-hidden="true">#</span> <span class="label svelte-wh9uu8"> </span> <span class="hint mono svelte-wh9uu8"> </span></button>'),rr=f('<button role="option"><span class="tile svelte-wh9uu8" aria-hidden="true">/</span> <span class="label svelte-wh9uu8"> </span> <span class="hint mono svelte-wh9uu8"> </span></button>'),lr=f('<div class="error svelte-wh9uu8"> </div>'),ir=f('<div class="about mono svelte-wh9uu8"> </div>'),or=f('<div class="overlay svelte-wh9uu8"><button class="backdrop svelte-wh9uu8" aria-label="关闭"></button> <div class="palette svelte-wh9uu8" role="dialog" aria-modal="true" aria-label="搜索会话与命令" tabindex="-1"><div class="header svelte-wh9uu8"><span class="search-icon svelte-wh9uu8" aria-hidden="true"><!></span> <input class="q svelte-wh9uu8" placeholder="跳转会话,或运行命令…" aria-label="搜索会话与命令"/> <kbd class="keycap mono svelte-wh9uu8" aria-label="按 Esc 关闭">esc</kbd></div> <div class="results svelte-wh9uu8" role="listbox" aria-label="结果"><!> <!> <!></div></div></div>');function cr(E,c){Ze(c,!1);const v=()=>Le(ya,"$page",I),A=()=>Le(Ft,"$backends",I),B=()=>Le(dt,"$sessionList",I),l=()=>Le(Ma,"$currentBackendId",I),M=()=>Le(pa,"$can",I),[I,k]=ot(),b=p(),x=p(),h=p(),S=p(),_=p(),d=p(),y=p(),O=p();let K=qe(c,"open",8,!1);const G=Na();let X=p(""),T=p(0),ee=p(""),R=p(""),D=p(null),ce=p([]),V=p(null);function ne(u,z,J){const fe=J.trim().toLowerCase();return fe?u.toLowerCase().includes(fe)||z.toLowerCase().includes(fe):!0}const se=[{name:"new-session",description:"New session"},{name:"toggle-panel",description:"Collapse / expand the agent panel"},{name:"cycle-accent",description:"Cycle accent color"}];function we(u){var J,fe,ze;const z=u.replace(/[^a-zA-Z0-9 ]/g," ").trim().split(/[\s-]+/).filter(Boolean);return((((J=z[0])==null?void 0:J[0])??"")+(((fe=z[1])==null?void 0:fe[0])??((ze=z[0])==null?void 0:ze[1])??"")).toUpperCase()||u.slice(0,2).toUpperCase()}function re(u,z,J,fe,ze){const Ce=[];let je=0;if(u.length){Ce.push({type:"group",label:"Agents",icon:"◆"});for(const ie of u)Ce.push({type:"agent",agent:ie,selectableIndex:je++})}if(z.length){Ce.push({type:"group",label:"Sessions",icon:"#"});for(const ie of z)Ce.push({type:"session",session:ie,selectableIndex:je++})}const Fe=[...J.map(ie=>({...ie,kind:"backend"})),...fe.map(ie=>({...ie}))];if(Fe.length){Ce.push({type:"group",label:"Commands",icon:"/"});for(const ie of Fe){const Ie=ie.kind==="backend"&&!ze;Ce.push({type:"command",command:ie,disabled:Ie,selectableIndex:Ie?void 0:je++})}}return Ce}let F=null,j=p();function Y(u){F=document.activeElement,u.focus()}function L(){var u;G("close"),s(X,""),s(ee,""),(u=F==null?void 0:F.focus)==null||u.call(F),F=null}function oe(u){ea(`/${u}/`),L()}function ke(){const u=l()??"opencode",z=wt(u),J=Pt[(Pt.indexOf(z)+1)%Pt.length];Ht(u,J)}async function Se(u){Qt(u);try{await jt(u)}catch{}L()}async function We(u){if(u==="cycle-accent"){ke(),L();return}if(u==="new-session"){St.set(!0),L();return}if(u==="toggle-panel"){zt.update(z=>!z),L();return}if(!(!e(b)||e(R))){s(R,u),s(ee,"");try{await Te.runCommand({sessionId:e(b),command:u}),L()}catch(z){s(ee,`/${u} failed: ${z.message}`)}finally{s(R,"")}}}function Re(u){u.type==="agent"&&u.agent?Se(u.agent.id):u.type==="session"&&u.session?oe(u.session.id):u.type==="command"&&!u.disabled&&u.command&&We(u.command.name)}function Z(u){if(u.key==="Escape"){L();return}if(u.key==="Tab"){N(u);return}if(e(O)!==0){if(u.key==="ArrowDown"){u.preventDefault(),s(T,Math.min(e(T)+1,e(O)-1)),pe();return}if(u.key==="ArrowUp"){u.preventDefault(),s(T,Math.max(e(T)-1,0)),pe();return}if(u.key==="Enter"){const z=e(y).find(J=>J.selectableIndex===e(T));z&&(u.preventDefault(),Re(z))}}}function N(u){if(u.key!=="Tab"||!e(j))return;const z=Array.from(e(j).querySelectorAll("input, button:not(:disabled)"));if(z.length===0)return;const J=z[0],fe=z[z.length-1];u.shiftKey&&document.activeElement===J?(u.preventDefault(),fe.focus()):!u.shiftKey&&document.activeElement===fe&&(u.preventDefault(),J.focus())}async function pe(){await Ka();const u=document.querySelector(".palette .row.active");u==null||u.scrollIntoView({block:"nearest"})}function Ae(u,z){return z?"Open a session first":(u==null?void 0:u.description)??""}ae(()=>(ve(K()),e(D),Te),()=>{K()&&!e(D)&&Te.version().then(u=>{s(D,{version:u.version,uptime:u.uptime})}).catch(()=>{})}),ae(()=>v(),()=>{s(b,v().params.sessionId)}),ae(()=>A(),()=>{var u;s(x,((u=A())==null?void 0:u.backends)??[])}),ae(()=>(e(x),e(X)),()=>{s(h,e(x).filter(u=>ne(u.name??u.id,u.id,e(X))))}),ae(()=>(B(),e(X)),()=>{s(S,er(B(),e(X)))}),ae(()=>(ve(K()),l(),e(V),M(),Te),()=>{K()&&l()&&l()!==e(V)&&(s(V,l()),M()("commands")?Te.commands(l()).then(u=>{s(ce,u)}).catch(()=>{s(V,null)}):s(ce,[]))}),ae(()=>(e(ce),e(X)),()=>{s(_,e(ce).filter(u=>ne(u.name,u.description,e(X))))}),ae(()=>e(X),()=>{s(d,se.filter(u=>ne(u.name,u.description,e(X))))}),ae(()=>(e(h),e(S),e(_),e(d),e(b)),()=>{s(y,re(e(h),e(S),e(_),e(d),e(b)))}),ae(()=>e(y),()=>{s(O,e(y).filter(u=>u.selectableIndex!=null).length)}),ae(()=>(e(T),e(O)),()=>{s(T,e(O)?Math.max(0,Math.min(e(T),e(O)-1)):-1)}),ae(()=>e(X),()=>{e(X),s(T,0)}),nt();var xe={close:L};Ve();var m=it(),W=Ne(m);{var C=u=>{var z=or(),J=a(z),fe=n(J,2),ze=a(fe),Ce=a(ze),je=a(Ce);At(je,{name:"search",size:14}),t(Ce);var Fe=n(Ce,2);ft(Fe),ta(Fe,i=>Y==null?void 0:Y(i)),xt(()=>bt(Fe,()=>e(X),i=>s(X,i))),xt(()=>P("keydown",Fe,Z)),_t(2),t(ze);var ie=n(ze,2),Ie=a(ie);{var Q=i=>{var w=tr();o(i,w)},Oe=i=>{var w=it(),de=Ne(w);Ye(de,1,()=>e(y),ye=>{var $,Pe,Ue;return(($=ye.agent)==null?void 0:$.id)??((Pe=ye.session)==null?void 0:Pe.id)??((Ue=ye.command)==null?void 0:Ue.name)??ye.label??""},(ye,$)=>{var Pe=it(),Ue=Ne(Pe);{var Je=De=>{var Me=ar(),He=a(Me),Qe=a(He,!0);t(He);var et=n(He,2),tt=a(et,!0);t(et),t(Me),H(()=>{q(Qe,(e($),r(()=>e($).icon))),q(tt,(e($),r(()=>e($).label)))}),o(De,Me)},he=De=>{var Me=sr();let He;var Qe=a(Me),et=a(Qe,!0);t(Qe);var tt=n(Qe,2),_e=a(tt,!0);t(tt);var me=n(tt,2),$e=a(me,!0);t(me),t(Me),H(at=>{He=be(Me,1,"row svelte-wh9uu8",null,He,{active:e($).selectableIndex===e(T)}),Ee(Me,"aria-selected",(e($),e(T),r(()=>e($).selectableIndex===e(T)))),q(et,at),q(_e,(e($),r(()=>{var Ge,ut;return((Ge=e($).agent)==null?void 0:Ge.name)??((ut=e($).agent)==null?void 0:ut.id)??""}))),q($e,(e($),A(),r(()=>{var Ge,ut,rt;return((Ge=e($).agent)==null?void 0:Ge.id)===((ut=A())==null?void 0:ut.activeId)?"active":((rt=e($).agent)==null?void 0:rt.status)??""})))},[()=>(e($),r(()=>{var at,Ge;return we(((at=e($).agent)==null?void 0:at.name)??((Ge=e($).agent)==null?void 0:Ge.id)??"")}))]),P("click",Me,()=>{e($).agent&&Se(e($).agent.id)}),P("mouseenter",Me,()=>{e($).selectableIndex!=null&&s(T,e($).selectableIndex)}),o(De,Me)},Be=De=>{var Me=nr();let He;var Qe=n(a(Me),2),et=a(Qe,!0);t(Qe);var tt=n(Qe,2),_e=a(tt,!0);t(tt),t(Me),H(me=>{He=be(Me,1,"row svelte-wh9uu8",null,He,{active:e($).selectableIndex===e(T)}),Ee(Me,"aria-selected",(e($),e(T),r(()=>e($).selectableIndex===e(T)))),q(et,me),q(_e,(e($),r(()=>{var $e;return(($e=e($).session)==null?void 0:$e.agent)??""})))},[()=>(e($),r(()=>{var me,$e;return((me=e($).session)==null?void 0:me.title)??(($e=e($).session)==null?void 0:$e.id.slice(-8))??""}))]),P("click",Me,()=>{e($).session&&oe(e($).session.id)}),P("mouseenter",Me,()=>{e($).selectableIndex!=null&&s(T,e($).selectableIndex)}),o(De,Me)},Ke=De=>{var Me=rr();let He;var Qe=n(a(Me),2),et=a(Qe,!0);t(Qe);var tt=n(Qe,2),_e=a(tt,!0);t(tt),t(Me),H(me=>{He=be(Me,1,"row svelte-wh9uu8",null,He,{active:e($).selectableIndex===e(T),disabled:e($).disabled}),Me.disabled=(e($),e(R),r(()=>{var $e;return e($).disabled||e(R)===(($e=e($).command)==null?void 0:$e.name)})),Ee(Me,"aria-selected",(e($),e(T),r(()=>e($).selectableIndex===e(T)))),q(et,(e($),r(()=>{var $e;return(($e=e($).command)==null?void 0:$e.name)??""}))),q(_e,me)},[()=>(e(R),e($),r(()=>{var me;return e(R)===((me=e($).command)==null?void 0:me.name)?"运行中…":Ae(e($).command,e($).disabled)}))]),P("click",Me,()=>{e($).command&&We(e($).command.name)}),P("mouseenter",Me,()=>{e($).selectableIndex!=null&&s(T,e($).selectableIndex)}),o(De,Me)};U(Ue,De=>{e($),r(()=>e($).type==="group")?De(Je):(e($),r(()=>e($).type==="agent")?De(he,1):(e($),r(()=>e($).type==="session")?De(Be,2):(e($),r(()=>e($).type==="command")&&De(Ke,3))))})}o(ye,Pe)}),o(i,w)};U(Ie,i=>{e(y),r(()=>e(y).length===0)?i(Q):i(Oe,-1)})}var g=n(Ie,2);{var te=i=>{var w=lr(),de=a(w,!0);t(w),H(()=>q(de,e(ee))),o(i,w)};U(g,i=>{e(ee)&&i(te)})}var ge=n(g,2);{var ue=i=>{var w=ir(),de=a(w);t(w),H(()=>q(de,`ocrc v${e(D),r(()=>e(D).version)??""} · uptime ${e(D),r(()=>e(D).uptime)??""}`)),o(i,w)};U(ge,i=>{e(D)&&i(ue)})}t(ie),t(fe),Wt(fe,i=>s(j,i),()=>e(j)),t(z),P("click",J,L),P("keydown",fe,N),o(u,z)};U(W,u=>{K()&&u(C)})}o(E,m),Xa(c,"close",L);var le=Xe(xe);return k(),le}var vr=f('<div class="empty svelte-cfrpez">正在加载 agent…</div>'),dr=f('<button type="button" role="radio"><span class="chip-tile svelte-cfrpez"> </span> <span><span class="sr-only svelte-cfrpez"> </span></span> <span class="chip-name svelte-cfrpez"> </span></button>'),ur=f('<div class="field svelte-cfrpez"><span class="label svelte-cfrpez">Agent</span> <div class="agent-chips svelte-cfrpez" role="radiogroup" aria-label="选择 agent"></div></div>'),pr=f('<button class="recent svelte-cfrpez" type="button"><span class="recent-name svelte-cfrpez"> </span> <span class="recent-dir mono svelte-cfrpez"> </span></button>'),fr=f('<div><span class="recents-label mono svelte-cfrpez"> </span> <div class="recents-list svelte-cfrpez"></div></div>'),hr=f('<div class="error svelte-cfrpez"> </div>'),br=f('<div class="overlay svelte-cfrpez"><button class="backdrop svelte-cfrpez" aria-label="关闭"></button> <div class="modal svelte-cfrpez" role="dialog" aria-modal="true" aria-label="新建会话"><div class="header svelte-cfrpez"><span class="title svelte-cfrpez">New session</span> <button class="close svelte-cfrpez" aria-label="关闭"><!></button></div> <div class="body svelte-cfrpez"><!> <div class="field svelte-cfrpez"><label class="label svelte-cfrpez" for="new-session-dir">Working directory</label> <div class="dir-input svelte-cfrpez"><span class="host-prefix mono svelte-cfrpez">host:</span> <input id="new-session-dir" class="path mono svelte-cfrpez" type="text" placeholder="/path/to/project"/> <button class="browse svelte-cfrpez" type="button" title="该 agent 最近使用的目录">最近</button></div> <!></div> <div class="field svelte-cfrpez"><label class="label svelte-cfrpez" for="new-session-branch">Branch <span class="optional svelte-cfrpez">(optional)</span></label> <input id="new-session-branch" class="branch mono svelte-cfrpez" type="text" placeholder="main"/></div> <!></div> <div class="footer svelte-cfrpez"><button class="btn secondary svelte-cfrpez" type="button">取消</button> <button class="btn primary svelte-cfrpez" type="button"> </button></div></div></div>');function _r(E,c){Ze(c,!1);const v=()=>Le(Ft,"$backends",l),A=()=>Le(dt,"$sessionList",l),B=()=>Le(St,"$newSessionOpen",l),[l,M]=ot(),I=p(),k=p(),b=p(),x=p();let h=p(""),S=p(""),_=p(""),d=p(!1),y=p(null),O=p(!1);function K(j){const Y=j.split(/[\s\-_:./]+/).filter(Boolean);return Y.length>=2?(Y[0][0]+Y[1][0]).toUpperCase():j.slice(0,2).toUpperCase()}function G(j){return K((j==null?void 0:j.name)||(j==null?void 0:j.id)||"OC")}function X(j){return j==="online"||j==="connected"?"online":j==="connecting"||j==="reconnecting"?"connecting":j==="offline"?"offline":"online"}function T(){St.set(!1),s(y,null)}function ee(j){s(S,j),s(O,!1)}async function R(){const j=e(S).trim();if(!j){s(y,"需要填写工作目录");return}if(!e(d)){s(d,!0),s(y,null);try{await jt(e(h));const Y=await Te.createSession({directory:j});dt.set(await Te.sessions()),Ga.set(await Te.workspaces()),T(),ea(`/${Y.id}/`)}catch(Y){s(y,Y.message)}finally{s(d,!1)}}}function D(j){if(j.key==="Escape"){T();return}j.key==="Tab"&&se(j)}let ce=p();function V(j){return Array.from(j.querySelectorAll("button, input, [tabindex]")).filter(Y=>!Y.hasAttribute("disabled"))}function ne(j){const Y=document.activeElement,L=j.querySelector("input:not([disabled])")??V(j)[0];return L==null||L.focus(),{destroy(){var oe;(oe=Y==null?void 0:Y.focus)==null||oe.call(Y)}}}function se(j){if(!e(ce))return;const Y=V(e(ce));if(Y.length===0)return;const L=Y[0],oe=Y[Y.length-1];j.shiftKey&&document.activeElement===L?(j.preventDefault(),oe.focus()):!j.shiftKey&&document.activeElement===oe&&(j.preventDefault(),L.focus())}ae(()=>v(),()=>{var j;s(I,((j=v())==null?void 0:j.backends)??[])}),ae(()=>(v(),e(I)),()=>{var j,Y;s(k,((j=v())==null?void 0:j.activeId)??((Y=e(I)[0])==null?void 0:Y.id)??"opencode")}),ae(()=>(e(h),e(k)),()=>{s(h,e(h)||e(k))}),ae(()=>(v(),e(h)),()=>{var j,Y;s(b,((Y=(j=v())==null?void 0:j.backends.find(L=>L.id===e(h)))==null?void 0:Y.name)??e(h))}),ae(()=>(A(),e(h)),()=>{s(x,(()=>{const j=new Set,Y=[];for(const L of[...A()].sort((oe,ke)=>ke.lastActiveAt-oe.lastActiveAt))!(L.backendId===e(h)||!L.backendId&&e(h)==="opencode")||!L.directory||j.has(L.directory)||(j.add(L.directory),Y.push({directory:L.directory,name:L.directory.replace(/\/+$/,"").split("/").pop()||L.directory}));return Y})())}),nt(),Ve();var we=it();P("keydown",Ct,D);var re=Ne(we);{var F=j=>{var Y=br(),L=a(Y),oe=n(L,2),ke=a(oe),Se=n(a(ke),2),We=a(Se);At(We,{name:"close",size:14}),t(Se),t(ke);var Re=n(ke,2),Z=a(Re);{var N=ie=>{var Ie=vr();o(ie,Ie)},pe=ie=>{var Ie=ur(),Q=n(a(Ie),2);Ye(Q,5,()=>e(I),Oe=>Oe.id,(Oe,g)=>{const te=mt(()=>(ve(wt),e(g),r(()=>wt(e(g).id)))),ge=mt(()=>(e(g),e(h),r(()=>e(g).id===e(h))));var ue=dr();let i;var w=a(ue),de=a(w,!0);t(w);var ye=n(w,2),$=a(ye),Pe=a($,!0);t($),t(ye);var Ue=n(ye,2),Je=a(Ue,!0);t(Ue),t(ue),H((he,Be,Ke)=>{i=be(ue,1,"agent-chip svelte-cfrpez",null,i,{selected:e(ge)}),Ee(ue,"aria-checked",e(ge)),lt(w,`background:${ve(gt),ve(e(te)),r(()=>gt[e(te)])??""}; color:${ve(st),ve(e(te)),r(()=>st[e(te)])??""}; border-color:${ve(yt),ve(e(te)),r(()=>yt[e(te)])??""}`),q(de,he),be(ye,1,`chip-status ${Be??""}`,"svelte-cfrpez"),lt(ye,`--dot:${ve(st),ve(e(te)),r(()=>st[e(te)])??""}`),q(Pe,Ke),q(Je,(e(g),r(()=>e(g).name??e(g).id)))},[()=>(e(g),r(()=>G(e(g)))),()=>(e(g),r(()=>X(e(g).status))),()=>(e(g),r(()=>X(e(g).status)))]),P("click",ue,()=>{s(h,e(g).id)}),o(Oe,ue)}),t(Q),t(Ie),o(ie,Ie)};U(Z,ie=>{e(I),r(()=>e(I).length===0)?ie(N):ie(pe,-1)})}var Ae=n(Z,2),xe=n(a(Ae),2),m=n(a(xe),2);ft(m);var W=n(m,2);t(xe);var C=n(xe,2);{var le=ie=>{var Ie=fr();let Q;var Oe=a(Ie),g=a(Oe);t(Oe);var te=n(Oe,2);Ye(te,5,()=>e(x),ge=>ge.directory,(ge,ue)=>{var i=pr(),w=a(i),de=a(w,!0);t(w);var ye=n(w,2),$=a(ye,!0);t(ye),t(i),H(()=>{Ee(i,"title",(e(ue),r(()=>e(ue).directory))),q(de,(e(ue),r(()=>e(ue).name))),q($,(e(ue),r(()=>e(ue).directory)))}),P("click",i,()=>ee(e(ue).directory)),o(ge,i)}),t(te),t(Ie),H(()=>{Q=be(Ie,1,"recents svelte-cfrpez",null,Q,{open:e(O)}),q(g,`recent · ${e(b)??""}`)}),o(ie,Ie)};U(C,ie=>{e(x),r(()=>e(x).length>0)&&ie(le)})}t(Ae);var u=n(Ae,2),z=n(a(u),2);ft(z),t(u);var J=n(u,2);{var fe=ie=>{var Ie=hr(),Q=a(Ie,!0);t(Ie),H(()=>q(Q,e(y))),o(ie,Ie)};U(J,ie=>{e(y)&&ie(fe)})}t(Re);var ze=n(Re,2),Ce=a(ze),je=n(Ce,2),Fe=a(je,!0);t(je),t(ze),t(oe),Wt(oe,ie=>s(ce,ie),()=>e(ce)),ta(oe,ie=>ne==null?void 0:ne(ie)),t(Y),H(ie=>{Ce.disabled=e(d),je.disabled=ie,q(Fe,e(d)?"Creating…":"Create")},[()=>(e(d),e(S),r(()=>e(d)||!e(S).trim()))]),P("click",L,T),P("click",Se,T),bt(m,()=>e(S),ie=>s(S,ie)),P("focus",m,()=>{s(O,!0)}),P("click",W,()=>s(O,!e(O))),bt(z,()=>e(_),ie=>s(_,ie)),P("click",Ce,T),P("click",je,R),o(j,Y)};U(re,j=>{B()&&j(F)})}o(E,we),Xe(),M()}const mr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH6gkcFAMCstghUQAADE5JREFUeNrdm9lzW8eVxn/dd8MOggR3SqQWSyIlyrFlWbGVuOxxTWaqspQrVXnJU2r+wkzKqWSexk4yih3Hlmwp2mVtFPcVywXu2nnoC5HWYoEAKI5yqiCUQFzcPt855ztL3xZKKRIxgAwwABwETgCHks9fZYmBeeBy8qoDXvI5IgFAAOPA28C7wCRQBgrJ315lUYCbgPAP4G/AJWAJUCbawgeAD4CPgHOJ8q+65Z8UD23gaWAQ+DMwZ6Kt/GPg12jrpwC536vdA3HQhh5Eh7kB/MEEjqCtfw5I8+q7/PdJi+d+CKwByybwc2AWyO/36l6SiETXE8AHQin1OZr0hvd7ZS9ZloB7QilVRceHtdtfULu9oAPZw3gMAE8opaLkPru6V4wiVGrPQFBoJraE3CsQFEka3DXjK2AzCnkUNqnFMbFSPV+kAlJSMmGm6DcsLNFzGAQgzE6uDJViPvT4k7vBTc+lFkcoeuuuCkhLyWt2lvcyJaadLGnR++y8awAUEKFw44hHgcdnzS1u+S5bUUgvA0IBlhAMGw7rkY8tRzhuZXvuCbsGQACOkJxO5RkwLMatFL+rLvP3ZoWNHoMQKsVy5PPb6jIpIfmvvgnKpoXZQ1/rKAQEkBKSSSvNz3JlyobFWM3hU3eDR6GHr+KeLE4Bvoq57bt86m7wmpPh37Nl+mRHy+4dAI8vFoJJK01OmgwYFv2Gxf/U1/jWd2n0CASAhoq54tX4Y22VGSdHzs72zAt6AuWAYfFepsSY5WAKwR9rq9zyXZoq7llALEUef21s8XWzStmwGDacnvxuz2jVFpJDVobf9I3xUX6IY3YGu4c5PFKwFPp8XF3hpufSK//qaV5JC8kRK8MvC8P8qjDCjJ0l1cPUVY1DLjS2uOrVqURBTwi3d2ySiC0kJ+0cIq/T5X9Xl7np61qhWwmS+uOrZoU3UnneTBe6VqDnAIAmx2k7R6ogiZXi49oK1/w6jbh7TlAovmxWmG3kOJXKYQijqzDbEwBAFzGTVppfF0cxhSSuLnHFqxN0mR0ipbjh17ns1diKQhxDYnRRHD0TgCjxVqPLoZiTEONPc4N4KqYaR9wPGgSqcz9QQE1FzCmPW6FLWkmsALwgIgxjIqVAgRBgSIllShzbwLYMDONpoJ4CII5haRPCGAaLkLL0j3UqlhDMOFlq8QBLocfvaxGLobd7Fk/6VYlABYrFzQaf1VcJ/AaiFrNV83GbAUEQoZRCSq14Nm3Rl3col9L0Fx1syyCdMnEsAyGeAUAUw7WHsF6DmQMwNQIZp7tGxxGSk06Oj/JDLEU+F9wtViN/16YXkcIKQK2HLK9t8Umlyf2Khb/ps1H1qbsBfgKAYWgA8lmL/mKK8aEck2N5hgcyHJ8qMTqYxTTEdwFQaMvfmIeLd+DhKnz4Ohwdg2yXdUfJsHgrXWQ9CmnEMRcam7hJF9mW8s0Ycz3CWY5Q95rU7vl8tRDyjadQkSJWoJ4ILYFACJBSkHYMxgazvD07TC5jMTyQQT0JAIBS4AVa+fWa/n8QwYkJyKU6B0AA/dLig2yJpchjMwq42KwSvgiCGIz1EOOBj/Wth/EgQKyGqGqI14hpxPp6IcTToap01lAKanWwLYP+YopizsE0BILnkKAhIQhhbg3+75rmAKU0CNkUyA7jwRSCcTPFv2X6WQx9HoUeS6HP8/xABAq5GmJdb2Jdb2LM+Yi1CBEorawUGC9cjEApRSFnM324xLnTI4wPZZHJdc8EQAFCakJ8uAJ/vgp+qPnhxAQU0iA7LPAUMO3k+DDbz02/zp/qm2zGwbOVXwuxvmlgX3IxH/oIT2lX2mV2klJwaKLIf5w/yOvHyxRy9rZR2lnwo8QT6k2ouDA7CUPFztJkq5U+5eT4RW6IB0GTa16Et7M+iBRyJcT+poHzRR25FCB81RETSynoL6Q4e3KIn7w7+R3l2wIAIIx0avziFmy5sLoFZ4/B4REdLp3IsGFzPt3HNa9GNY6447uPlTfmA+zLDeyLrlbeU9vodQD4yaP9nJsdYaScwXxiwW0BIIUujla2wPWg1tDvQQgjJShkwNylN1hCctBK8Z+5Mg/CJmuRT6UZIJYC7G8a2F+7mHOBbgM75BwpBfmszZmZIU4fL2MZT3enbZfCLYatN+HqQ6g1dZZ44zDMHIShPjDl7oqmlJS8lS5w1e/jbt3lykoTcUlb3pxPlO9QFODYBq9N9nH6eJkDIzmEbKMSbAeIMIJ7S7BehfsrML8OZ47CkRFI2e2DIBHkhcmbMs+VNYdvv2wQf+Uil7tTXiOgKGQt3j87zrHJPhzr2S7acTMURrBRgyv3YasOi5vw5hENwmgJ0m0UTnGsqNR81m9UaXxewbpUJ1wOIOi+z0+nTA6O5Hl7doTRwexzv9cxAK00WHHh1jxs1mFxA05N6iwxOQT5NKSf4xFeELG46nLl5iqf/G2Om5eWUfN+95ZPgB0sZXjr1DBHDhTJZZ6/69d1O2xI7Q2LG9oj5tbg7iKcnITpCQ1ELq2/p8k0JggV9xcq/OXiAp9+McdXV1dYWnNRPdpdsSzJ0YNF3j87Tqlgf+9P9mQeIIQmHS+A+8s6W9xegOsT2htmDsLBQUhZMasbDS7fWuPCpUX++vUCN+9tUnUDYtVd17ltEMHUWJ6zJ4c4dXSAjPP9e749G4gIkmYq0mHR9BOPWIU7i3B0VJFzmty+84gvLz/gyu0V5ldcGk1dCMseaC8FpByLMyfHOHd6jFLBeeYMYE8AaIHQ0sMPYHkLKg1Y2IDrDyFjxdy963P/QcT6usD3JULECBWjlEIgOnMDpbtBJ+VweHKQc6cnmD48gNVGcbJnI7EWSfoBLKzDyiYYwqZaGSR0UmRKG5juKqFXJQqbqDgApZJJ7y7JQBhYts3QUIn33j7CD04M0V+028JyzwB4vDahXTNWglhZONkyTrpEFJQJcsPEgYvf2CBobhB6VQKvilLxtvri8T9PiAIlENLAdIqMjw/zozfG+Mk7wxwaS7ddme45AN/VQS8YaSANE8NOo1SElRkg9CqEXlW/ApcobBAFDeLQI458lIqSEJMIw8IwHaSVxU6VKBT7OTNb5qc/LjEz5ZDPtO89LwWA70grzQuJYTqaAA0H08mjIp849AgD9zEYUdjYDhEEUhpIw0FaGSynQL44wKnDOd4/k+LMMYtidnc08vIB2IlFq8kTBoZpgJUCBWYcEoeeBiQOUHGIStplPfkxkYZNJm0zNZriwzMG509CaZfKPxeAfXtQMAFEShNhG0AaoRRPPo6lEDiWYGpY8LOzgndOwGh/Zwnk2QAkxNXK7fshrZS4UymlIFbQn9eTqXdOwLvTMNYPVod7GE8BIAUUs7rHX6/qm/b++aQ2RSWPciWKmwaMleD0FPzwOLxxRDdeu51FPBcAgR5zTQ3Ba2MagHpTzwL3UwwJKRMGC3B+Gs7PaA/oy3Y+m3wmAK2bzRzQJa1jwsVvdUXnhy+fG1rPCpZyek3njmvrT5R1g9XpdHqnCKWe3qiLYl3H313UTc3le3Djke74Gn6ysA6r1hcprJSeRlsmDOTh2LhWfuYAHB6Fch6cLrfrXggA6JjzAz36ujEH/3gAd5f0hsnKVtLwJNNsIbaLnd2sS+2I8Vb4pW0oFzSxHRqG2SkdjsN9etrUC6u3BcBOcT0NxFpFA3H1IdxZ0JNiPwA/0l4Tx/r9RT+Y7GkgpSYwQ+pN2EJGK/r6IT1YmSjrOE87et64F9IWAC0WDiM9Ft+q69H4/IbeM7i3pMHYcjVxBhFPoyC23yxTK1XK6vw9VISJAT08KeW1m/flNChS9t7quwZgp8RKW7kVHpsJGBUXXF9/Vk9ezR0bwJax7cLZlH5lHK1oIa2JrpQD29Lf7XS/Yc8B2CkKDUYYQRwlXhJDw9MANPztctdOrC6EjnMnsa4htXsbsvuU1ikAHT0u/73AJEy+c765s7oUe5BBOlkmoLo6MNHOHR4DsN/qPi0B4En0Wbr1vbiDoMeu1VtZB65K4C/Awn6vZh/kAfAHCfwvcAOosn/N38sUBdSAK8DHJvB3tg8TvoM+OPmvdmq0JTHQBD4DPgFum+gDhJ8mf1xDHy8dTYD4V5IIWAU+B36LPjpbNYEQuJcgswxcBWaAMSDL/1sOa1sUUEmUvw9cQB+gfkSSBltflOh0mEWfJJ1NQHjVzxFHwF3gOpr41tCnySOAfwK44B4xUUtDyQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wOS0yOFQyMDowMzowMiswMDowMJrHwKAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDktMjhUMjA6MDM6MDIrMDA6MDDrmngcAAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAXdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADQ4h2CHLQAAABZ0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA0OH/PR6AAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9pY2+XMDjOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTc5MDYyNTc4MrLkzeUAAAASdEVYdFRodW1iOjpTaXplADk2NjJCQpTWNTIAAAAadEVYdFRodW1iOjpVUkkAZmlsZTovL2xhcmsuaWNvGFy81AAAAABJRU5ErkJggg==";var gr=ha('<svg viewBox="0 0 24 24" role="img" aria-label="Telegram"><path fill="#26A5E4" d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"></path></svg>'),yr=ha('<svg viewBox="0 0 24 24" role="img" aria-label="WeChat"><path fill="#07C160" d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z"></path></svg>'),wr=f('<img alt="飞书 / Lark"/>');function xa(E,c){let v=qe(c,"channel",8),A=qe(c,"size",8,30);var B=it(),l=Ne(B);{var M=b=>{var x=gr();H(()=>{Ee(x,"width",A()),Ee(x,"height",A())}),o(b,x)},I=b=>{var x=yr();H(()=>{Ee(x,"width",A()),Ee(x,"height",A())}),o(b,x)},k=b=>{var x=wr();H(()=>{Ee(x,"src",mr),Ee(x,"width",A()),Ee(x,"height",A()),lt(x,`border-radius: ${A()*.18}px`)}),o(b,x)};U(l,b=>{v()==="telegram"?b(M):v()==="wechat"?b(I,1):b(k,-1)})}o(E,B)}var kr=f('<button><span class="ch-logo svelte-b8emeh"><!></span> <span class="ch-name"> </span> <span> </span></button>'),Ar=f('<span class="note svelte-b8emeh"> </span>'),xr=f('<p class="hint svelte-b8emeh">自定义白名单已保存——用工作区切换器添加条目后再来这里勾选。</p>'),$r=f('<div class="detail svelte-b8emeh"><div class="d-hd svelte-b8emeh"><span class="d-name svelte-b8emeh"> </span> <button aria-label="启用通道"><span class="knob svelte-b8emeh"></span></button></div> <p class="note svelte-b8emeh"><!></p> <div class="sec svelte-b8emeh"><div class="sec-label svelte-b8emeh">关联凭证</div> <input class="cred mono svelte-b8emeh"/> <div class="sec-acts svelte-b8emeh"><button class="save svelte-b8emeh">保存</button> <!></div></div> <div class="sec svelte-b8emeh"><div class="sec-label svelte-b8emeh">回复粒度</div> <div class="opts svelte-b8emeh"><button>标准回复(隐藏工具过程)</button> <button>详细回复(显示工具过程)</button></div></div> <div class="sec svelte-b8emeh"><div class="sec-label svelte-b8emeh">工作区访问范围</div> <div class="opts svelte-b8emeh"><button>所有工作区</button> <button>自定义</button></div> <!></div> <div class="sec danger svelte-b8emeh"><div class="sec-label svelte-b8emeh">重置</div> <button class="reset svelte-b8emeh">恢复默认设置</button></div></div>'),Ir=f("<span> </span>"),Sr=f('<div class="qr-expired svelte-b8emeh"><span>二维码已过期</span> <button class="copy svelte-b8emeh">刷新二维码</button></div>'),Tr=f('<div class="pair-head svelte-b8emeh"><div><div class="pair-title svelte-b8emeh">等待手机连接 <!></div> <div class="hint svelte-b8emeh">用手机扫码,或在手机上打开链接。链接 1 分钟内有效,仅可使用一次。</div></div> <button class="stop svelte-b8emeh">停止</button></div> <div><!> <!></div> <div class="pair-acts svelte-b8emeh"><span class="hint svelte-b8emeh">无法扫码?可以在手机上打开链接。</span> <span class="spacer svelte-b8emeh"></span> <button class="copy svelte-b8emeh"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M21 12a9 9 0 1 1-2.64-6.36"></path><path d="M21 3v6h-6"></path></svg> 刷新二维码</button> <button class="copy svelte-b8emeh"> </button></div>',1),zr=f('<div class="pair-stopped svelte-b8emeh"><span>已停止配对。</span> <button class="copy svelte-b8emeh">重新开始</button></div>'),Mr=f('<p class="hint svelte-b8emeh">配对信息加载中…</p>'),Cr=f('<div class="overlay svelte-b8emeh"><button class="backdrop svelte-b8emeh" aria-label="关闭"></button> <div class="modal svelte-b8emeh" role="dialog" aria-modal="true" aria-label="机器人与通道" tabindex="-1"><div class="header svelte-b8emeh"><span class="title svelte-b8emeh">🤖 机器人 · 通道</span> <button class="close svelte-b8emeh" aria-label="关闭">✕</button></div> <div class="cols svelte-b8emeh"><div class="list svelte-b8emeh"></div> <!></div> <div class="pair svelte-b8emeh"><!></div></div></div>');function qr(E,c){Ze(c,!1);const v=()=>Le(Yt,"$channelsOpen",A),[A,B]=ot(),l=p(),M=p(),I=p(),k=p();let b=p([]),x=p(),h=p(null),S=p(""),_=p(""),d=p(!1),y=p(Date.now()),O=p(!1),K;async function G(){try{s(b,(await Te.channels()).channels??[]),!e(x)&&e(b).length>0&&s(x,e(b)[0].id)}catch{}}async function X(){s(O,!1);try{s(h,await Te.pairQr())}catch{s(h,null)}}function T(){s(O,!0)}Zt(()=>{G(),X(),K=setInterval(()=>s(y,Date.now()),1e3)}),Vt(()=>{K&&clearInterval(K)});function ee(L){return L==="telegram"?"Telegram":L==="wechat"?"微信":L==="lark"?"Lark":L}function R(){Yt.set(!1)}function D(L){s(x,L),s(S,""),s(_,"")}async function ce(L){s(b,e(b).map(oe=>oe.id===L.id?{...oe,enabled:!oe.enabled}:oe));try{await Te.updateChannel(L.id,{enabled:!L.enabled})}catch{}}async function V(L,oe){s(b,e(b).map(ke=>ke.id===L.id?{...ke,replyGranularity:oe}:ke));try{await Te.updateChannel(L.id,{replyGranularity:oe})}catch{}}async function ne(L){if(!e(S).trim()){s(_,"请输入凭证内容");return}try{await Te.updateChannel(L.id,{credentials:{token:e(S).trim()}}),s(_,"已保存——重启实例后生效"),s(S,"")}catch{s(_,"保存失败")}}async function se(){if(e(l)){try{await Te.resetChannel(e(l).id)}catch{}await G()}}async function we(){if(e(h))try{await navigator.clipboard.writeText(e(h).url),s(d,!0),setTimeout(()=>s(d,!1),1600)}catch{}}function re(L){L.key==="Escape"&&R()}ae(()=>(e(b),e(x)),()=>{s(l,e(b).find(L=>L.id===e(x))??e(b)[0])}),ae(()=>(e(h),e(y)),()=>{var L;s(M,(L=e(h))!=null&&L.expiresAt?Math.max(0,e(h).expiresAt-e(y)):null)}),ae(()=>e(M),()=>{s(I,e(M)!==null&&e(M)<=0)}),ae(()=>e(M),()=>{s(k,e(M)===null?"":`${Math.floor(e(M)/6e4)}:${String(Math.floor(e(M)%6e4/1e3)).padStart(2,"0")}`)}),nt(),Ve();var F=it();P("keydown",Ct,re);var j=Ne(F);{var Y=L=>{var oe=Cr(),ke=a(oe),Se=n(ke,2),We=a(Se),Re=n(a(We),2);t(We);var Z=n(We,2),N=a(Z);Ye(N,5,()=>e(b),u=>u.id,(u,z)=>{var J=kr();let fe;var ze=a(J),Ce=a(ze);xa(Ce,{get channel(){return e(z),r(()=>e(z).channel)},size:22}),t(ze);var je=n(ze,2),Fe=a(je,!0);t(je);var ie=n(je,2);let Ie;var Q=a(ie,!0);t(ie),t(J),H(Oe=>{var g;fe=be(J,1,"ch svelte-b8emeh",null,fe,{sel:((g=e(l))==null?void 0:g.id)===e(z).id}),q(Fe,Oe),Ie=be(ie,1,"ch-state svelte-b8emeh",null,Ie,{on:e(z).enabled}),q(Q,(e(z),r(()=>e(z).enabled?"已启用":"已停用")))},[()=>(e(z),r(()=>ee(e(z).channel)))]),P("click",J,()=>D(e(z).id)),o(u,J)}),t(N);var pe=n(N,2);{var Ae=u=>{var z=$r(),J=a(z),fe=a(J),ze=a(fe,!0);t(fe);var Ce=n(fe,2);let je;t(J);var Fe=n(J,2),ie=a(Fe);{var Ie=_e=>{var me=Rt();H(()=>q(me,`${e(l),r(()=>{var $e;return($e=e(l).live)!=null&&$e.connected?"轮询运行中":"未在轮询"})??""}${e(l),r(()=>{var $e;return($e=e(l).live)!=null&&$e.username?` · @${e(l).live.username}`:""})??""}。
3
- 停用/启用在重启实例后生效。`)),o(_e,me)},Q=_e=>{var me=Rt("待接入:凭证保存后,通道本体在后续版本启用。");o(_e,me)};U(ie,_e=>{e(l),r(()=>e(l).channel==="telegram")?_e(Ie):_e(Q,-1)})}t(Fe);var Oe=n(Fe,2),g=n(a(Oe),2);ft(g);var te=n(g,2),ge=a(te),ue=n(ge,2);{var i=_e=>{var me=Ar(),$e=a(me,!0);t(me),H(()=>q($e,e(_))),o(_e,me)};U(ue,_e=>{e(_)&&_e(i)})}t(te),t(Oe);var w=n(Oe,2),de=n(a(w),2),ye=a(de);let $;var Pe=n(ye,2);let Ue;t(de),t(w);var Je=n(w,2),he=n(a(Je),2),Be=a(he);let Ke;var De=n(Be,2);let Me;t(he);var He=n(he,2);{var Qe=_e=>{var me=xr();o(_e,me)};U(He,_e=>{e(l),r(()=>e(l).workspaces.mode==="custom")&&_e(Qe)})}t(Je);var et=n(Je,2),tt=n(a(et),2);t(et),t(z),H(_e=>{q(ze,_e),je=be(Ce,1,"switch svelte-b8emeh",null,je,{on:e(l).enabled}),Ee(Ce,"aria-pressed",(e(l),r(()=>e(l).enabled))),Ee(g,"placeholder",(e(l),r(()=>e(l).channel==="telegram"?"BotFather token(留空保持不变)":"凭证(预留)"))),$=be(ye,1,"opt svelte-b8emeh",null,$,{sel:e(l).replyGranularity==="standard"}),Ue=be(Pe,1,"opt svelte-b8emeh",null,Ue,{sel:e(l).replyGranularity==="detailed"}),Ke=be(Be,1,"opt svelte-b8emeh",null,Ke,{sel:e(l).workspaces.mode==="all"}),Me=be(De,1,"opt svelte-b8emeh",null,Me,{sel:e(l).workspaces.mode==="custom"})},[()=>(e(l),r(()=>ee(e(l).channel)))]),P("click",Ce,()=>ce(e(l))),bt(g,()=>e(S),_e=>s(S,_e)),P("click",ge,()=>ne(e(l))),P("click",ye,()=>V(e(l),"standard")),P("click",Pe,()=>V(e(l),"detailed")),P("click",Be,()=>Te.updateChannel(e(l).id,{workspaces:{mode:"all"}}).then(G)),P("click",De,()=>Te.updateChannel(e(l).id,{workspaces:{mode:"custom",dirs:[]}}).then(G)),P("click",tt,se),o(u,z)};U(pe,u=>{e(l)&&u(Ae)})}t(Z);var xe=n(Z,2),m=a(xe);{var W=u=>{var z=Tr(),J=Ne(z),fe=a(J),ze=a(fe),Ce=n(a(ze));{var je=w=>{var de=Ir();let ye;var $=a(de,!0);t(de),H(()=>{ye=be(de,1,"cd mono svelte-b8emeh",null,ye,{expired:e(I)}),q($,e(I)?"已过期":`· ${e(k)}`)}),o(w,de)};U(Ce,w=>{e(M)!==null&&w(je)})}t(ze),_t(2),t(fe);var Fe=n(fe,2);t(J);var ie=n(J,2);let Ie;var Q=a(ie);wa(Q,()=>(e(h),r(()=>e(h).svg)));var Oe=n(Q,2);{var g=w=>{var de=Sr(),ye=n(a(de),2);t(de),P("click",ye,X),o(w,de)};U(Oe,w=>{e(I)&&w(g)})}t(ie);var te=n(ie,2),ge=n(a(te),4),ue=n(ge,2),i=a(ue,!0);t(ue),t(te),H(()=>{Ie=be(ie,1,"qr-big svelte-b8emeh",null,Ie,{dim:e(I)}),q(i,e(d)?"✓ 已复制":"复制链接")}),P("click",Fe,T),P("click",ge,X),P("click",ue,we),o(u,z)},C=u=>{var z=zr(),J=n(a(z),2);t(z),P("click",J,X),o(u,z)},le=u=>{var z=Mr();o(u,z)};U(m,u=>{e(h)&&!e(O)?u(W):e(O)?u(C,1):u(le,-1)})}t(xe),t(Se),t(oe),P("click",ke,R),P("click",Re,R),P("click",Se,Gt(function(u){ts.call(this,c,u)})),P("click",oe,R),o(L,oe)};U(j,L=>{v()&&L(Y)})}o(E,F),Xe(),B()}var Lr=f('<div class="overlay svelte-1r7zhoh"><button class="backdrop svelte-1r7zhoh" aria-label="Close"></button> <div class="menu svelte-1r7zhoh" role="menu" aria-label="New actions"><button class="item svelte-1r7zhoh" role="menuitem"><span class="icon svelte-1r7zhoh" aria-hidden="true">+</span> <span class="label svelte-1r7zhoh">New session</span></button> <button class="item svelte-1r7zhoh" role="menuitem"><span class="icon svelte-1r7zhoh" aria-hidden="true"><!></span> <span class="label svelte-1r7zhoh">Command palette</span> <kbd class="keycap mono svelte-1r7zhoh">⌘K</kbd></button></div></div>');function Er(E,c){Ze(c,!1);const v=()=>Le($t,"$plusMenuOpen",A),[A,B]=ot();let l=qe(c,"anchor",8,null);function M(){$t.set(!1),St.set(!0)}function I(){$t.set(!1),It.set(!0)}function k(){$t.set(!1)}function b(_){_.key==="Escape"&&k()}Ve();var x=it();P("keydown",Ct,b);var h=Ne(x);{var S=_=>{var d=Lr(),y=a(d),O=n(y,2),K=a(O),G=n(K,2),X=a(G),T=a(X);At(T,{name:"search",size:14}),t(X),_t(4),t(G),t(O),t(d),H(ee=>lt(O,ee),[()=>(ve(l()),r(()=>l()?`top:${l().getBoundingClientRect().bottom+6}px; left:${l().getBoundingClientRect().left}px`:""))]),P("click",y,k),P("click",K,M),P("click",G,I),o(_,d)};U(h,_=>{v()&&_(S)})}o(E,x),Xe(),B()}var Br=f('<button class="scrim svelte-9zfapn" aria-label="Close"></button>'),Dr=f('<button class="dial-item svelte-9zfapn" role="menuitem"><span class="dial-label mono svelte-9zfapn"> </span> <span class="dial-icon svelte-9zfapn" aria-hidden="true"> </span></button>'),Or=f('<div class="dial svelte-9zfapn" role="menu"></div>'),Pr=f('<div><!> <!> <button><span aria-hidden="true">+</span></button></div>');function jr(E,c){Ze(c,!1);let v=p(!1);const A=()=>s(v,!e(v)),B=()=>s(v,!1),l=[{label:"新建会话",icon:"+",run:()=>St.set(!0)},{label:"搜索与命令",icon:"⌕",run:()=>It.set(!0)}];function M(O){O.run(),B()}function I(O){O.key==="Escape"&&e(v)&&B()}Ve();var k=Pr();P("keydown",Ct,I);let b;var x=a(k);{var h=O=>{var K=Br();P("click",K,B),o(O,K)};U(x,O=>{e(v)&&O(h)})}var S=n(x,2);{var _=O=>{var K=Or();Ye(K,5,()=>l,G=>G.label,(G,X)=>{var T=Dr(),ee=a(T),R=a(ee,!0);t(ee);var D=n(ee,2),ce=a(D,!0);t(D),t(T),H(()=>{q(R,e(X).label),q(ce,e(X).icon)}),P("click",T,()=>M(e(X))),o(G,T)}),t(K),o(O,K)};U(S,O=>{e(v)&&O(_)})}var d=n(S,2);let y;t(k),H(()=>{b=be(k,1,"fab-root svelte-9zfapn",null,b,{open:e(v)}),y=be(d,1,"fab svelte-9zfapn",null,y,{rot:e(v)}),Ee(d,"aria-label",e(v)?"关闭菜单":"快捷操作"),Ee(d,"aria-expanded",e(v))}),P("click",d,A),o(E,k),Xe()}var Rr=f('<p class="rejected svelte-9s687p"> </p>'),Fr=f('<p class="rejected svelte-9s687p">上一次的令牌被服务器拒绝了——请在下方重新配对。</p>'),Wr=f('<span class="chip mono svelte-9s687p"> </span>'),Ur=f("<span> </span>"),Jr=f('<button class="btn enter svelte-9s687p">配对此浏览器并进入</button>'),Nr=f('<div class="qr-re svelte-9s687p"><span>已过期</span> <button class="btn svelte-9s687p">刷新二维码</button></div>'),Kr=f('<div class="wait-row svelte-9s687p"><span> <!></span> <!></div> <div class="qr-wrap svelte-9s687p"><!> <!></div> <div class="acts svelte-9s687p"><span class="hint svelte-9s687p">无法扫码?在手机上打开链接。</span> <span class="spacer svelte-9s687p"></span> <button class="btn svelte-9s687p">⟳ 刷新二维码</button> <button class="btn svelte-9s687p"> </button></div> <p class="hint dim svelte-9s687p">二维码 1 分钟内有效、仅可使用一次;过期自动刷新,刷新会作废旧码。配对成功后本页自动进入面板。</p>',1),Hr=f('<p class="hint dim svelte-9s687p">配对信息加载中…(若宿主机未启用配对组件,请用下方令牌粘贴)</p>'),Qr=f('<span class="ok svelte-9s687p"> </span>'),Yr=f('<span class="off svelte-9s687p">未连接</span>'),Gr=f('<span class="off svelte-9s687p">待接入</span>'),Vr=f('<div class="ch svelte-9s687p"><span class="ch-icon svelte-9s687p" aria-hidden="true"><!></span> <div class="ch-body"><div class="ch-name svelte-9s687p"> <!></div> <div class="ch-note svelte-9s687p"> </div></div> <span class="lock svelte-9s687p" title="配对后可配置">🔒</span></div>'),Zr=f('<!> <p class="hint dim svelte-9s687p">🔒 通道状态仅展示;凭证与回复粒度等配置在配对后的「机器人管理」面板(标题栏 🤖)中。</p>',1),Xr=f('<p class="hint dim svelte-9s687p">…</p>'),el=f('<div class="err svelte-9s687p"> </div>'),tl=f('<div class="gate svelte-9s687p"><div class="panel svelte-9s687p"><div class="head svelte-9s687p"><span class="hicon svelte-9s687p" aria-hidden="true"><svg viewBox="0 0 64 64" fill="none" stroke-width="6" stroke-linecap="round" class="svelte-9s687p"><path d="M46 15 A24 24 0 1 0 54 32" stroke="var(--text)" opacity=".85"></path><circle cx="49" cy="20" r="7" fill="var(--accent)" stroke="none"></circle></svg></span> <div><h1 class="svelte-9s687p">配对 ocrc 远程控制</h1> <p class="sub svelte-9s687p">扫码或在手机上打开链接,即可远程控制这台机器的 opencode。</p></div></div> <!> <div class="cols svelte-9s687p"><section class="scan svelte-9s687p"><div class="sec-head svelte-9s687p"><span class="sec-title svelte-9s687p">📱 手机扫码连接</span> <!></div> <p class="sub svelte-9s687p">用手机相机扫码,在手机上打开这台机器。</p> <!></section> <section class="channels svelte-9s687p"><div class="sec-head svelte-9s687p"><span class="sec-title svelte-9s687p">🤖 Bot 通道</span></div> <p class="sub svelte-9s687p">连接聊天 Bot,适合更长时间的移动端访问。</p> <!></section></div> <details class="paste svelte-9s687p"><summary class="svelte-9s687p">已有配对链接或令牌?</summary> <div class="paste-body svelte-9s687p"><input class="field mono svelte-9s687p" placeholder="粘贴配对链接或令牌…" aria-label="配对令牌或链接" autocapitalize="off" autocorrect="off" spellcheck="false"/> <!> <button class="connect svelte-9s687p">连接</button></div></details> <p class="hint dim foot svelte-9s687p">令牌只保存在本设备上 · Telegram 通道为可选,未配置时仅 Web 面板可用</p></div></div>');function al(E,c){Ze(c,!1);const v=()=>Le(Ca,"$pairHint",A),[A,B]=ot(),l=p(),M=p(),I=p(),k=p(),b=p();let x=qe(c,"status",8,"pairing"),h=p(""),S=p(""),_=p(!1),d=p(null),y=p(Date.now()),O=p(!1),K;async function G(){try{s(d,await Te.pairOnboarding()),s(y,Date.now())}catch{s(d,null)}}const X={telegram:{name:"Telegram",note:"从 Telegram 打开这台机器"},wechat:{name:"微信",note:"待接入(配置面板已预埋)"},lark:{name:"飞书 / Lark",note:"待接入(配置面板已预埋)"}};Zt(()=>{G(),K=setInterval(()=>{s(y,Date.now()),e(M)&&G()},1e3)}),Vt(()=>{K&&clearInterval(K)});async function T(){if(e(d))try{await navigator.clipboard.writeText(e(d).url),s(O,!0),setTimeout(()=>s(O,!1),1600)}catch{}}function ee(C){const le=C.trim(),u=le.match(/token=([^&#\s]+)/);return u?decodeURIComponent(u[1]):le}async function R(){if(s(S,""),/[?#]pair=/.test(e(h))){s(S,await na(e(h)));return}const C=ee(e(h));if(!C||C.length<16){s(S,"这看起来不是有效的令牌。");return}qa(C)||s(S,"这看起来不是有效的令牌。")}ae(()=>(e(d),e(y)),()=>{var C;s(l,(C=e(d))!=null&&C.expiresAt?Math.max(0,e(d).expiresAt-e(y)):null)}),ae(()=>e(l),()=>{s(M,e(l)!==null&&e(l)<=0)}),ae(()=>e(d),()=>{var C;s(I,((C=e(d))==null?void 0:C.paired)??0)}),ae(()=>e(I),()=>{s(k,e(I)>0)}),ae(()=>e(l),()=>{s(b,e(l)===null?"":`${Math.floor(e(l)/6e4)}:${String(Math.floor(e(l)%6e4/1e3)).padStart(2,"0")}`)}),nt(),Ve();var D=tl(),ce=a(D),V=n(a(ce),2);{var ne=C=>{var le=Rr(),u=a(le,!0);t(le),H(()=>q(u,v())),o(C,le)},se=C=>{var le=Fr();o(C,le)};U(V,C=>{v()?C(ne):x()==="rejected"&&C(se,1)})}var we=n(V,2),re=a(we),F=a(re),j=n(a(F),2);{var Y=C=>{var le=Wr(),u=a(le);t(le),H(()=>q(u,`${e(d),r(()=>e(d).host.hostname)??""} · ${e(d),r(()=>e(d).host.arch)??""}`)),o(C,le)};U(j,C=>{e(d)&&C(Y)})}t(F);var L=n(F,4);{var oe=C=>{var le=Kr(),u=Ne(le),z=a(u);let J;var fe=a(z),ze=n(fe);{var Ce=i=>{var w=Ur();let de;var ye=a(w,!0);t(w),H(()=>{de=be(w,1,"mono cd svelte-9s687p",null,de,{expired:e(M)}),q(ye,e(M)?"二维码已过期":`· ${e(b)}`)}),o(i,w)};U(ze,i=>{e(l)!==null&&i(Ce)})}t(z);var je=n(z,2);{var Fe=i=>{var w=Jr();P("click",w,()=>e(d)&&na(e(d).url)),o(i,w)};U(je,i=>{e(k)&&i(Fe)})}t(u);var ie=n(u,2),Ie=a(ie);wa(Ie,()=>(e(d),r(()=>e(d).svg)));var Q=n(Ie,2);{var Oe=i=>{var w=Nr(),de=n(a(w),2);t(w),P("click",de,G),o(i,w)};U(Q,i=>{e(M)&&i(Oe)})}t(ie);var g=n(ie,2),te=n(a(g),4),ge=n(te,2),ue=a(ge,!0);t(ge),t(g),_t(2),H(()=>{J=be(z,1,"wait svelte-9s687p",null,J,{done:e(k)}),q(fe,`${e(k)?`✓ 已有 ${e(I)} 台设备完成配对`:"等待手机连接"} `),q(ue,e(O)?"✓ 已复制":"复制链接")}),P("click",te,G),P("click",ge,T),o(C,le)},ke=C=>{var le=Hr();o(C,le)};U(L,C=>{e(d)?C(oe):C(ke,-1)})}t(re);var Se=n(re,2),We=n(a(Se),4);{var Re=C=>{var le=Zr(),u=Ne(le);Ye(u,1,()=>(e(d),r(()=>e(d).channels)),z=>z.channel,(z,J)=>{var fe=Vr(),ze=a(fe),Ce=a(ze);xa(Ce,{get channel(){return e(J),r(()=>e(J).channel)},size:30}),t(ze);var je=n(ze,2),Fe=a(je),ie=a(Fe),Ie=n(ie);{var Q=ue=>{var i=Qr(),w=a(i);t(i),H(()=>q(w,`已连接 @${e(J),r(()=>e(J).live.username)??""}`)),o(ue,i)},Oe=ue=>{var i=Yr();o(ue,i)},g=ue=>{var i=Gr();o(ue,i)};U(Ie,ue=>{e(J),r(()=>{var i;return e(J).channel==="telegram"&&((i=e(J).live)==null?void 0:i.connected)})?ue(Q):(e(J),r(()=>e(J).channel==="telegram")?ue(Oe,1):ue(g,-1))})}t(Fe);var te=n(Fe,2),ge=a(te,!0);t(te),t(je),_t(2),t(fe),H(()=>{q(ie,`${e(J),r(()=>{var ue;return((ue=X[e(J).channel])==null?void 0:ue.name)??e(J).channel})??""} `),q(ge,(e(J),r(()=>{var ue;return((ue=X[e(J).channel])==null?void 0:ue.note)??""})))}),o(z,fe)}),_t(2),o(C,le)},Z=C=>{var le=Xr();o(C,le)};U(We,C=>{e(d)?C(Re):C(Z,-1)})}t(Se),t(we);var N=n(we,2),pe=n(a(N),2),Ae=a(pe);ft(Ae);var xe=n(Ae,2);{var m=C=>{var le=el(),u=a(le,!0);t(le),H(()=>q(u,e(S))),o(C,le)};U(xe,C=>{e(S)&&C(m)})}var W=n(xe,2);t(pe),t(N),_t(2),t(ce),t(D),H(C=>W.disabled=C,[()=>(e(h),r(()=>!e(h).trim()))]),bt(Ae,()=>e(h),C=>s(h,C)),P("keydown",Ae,C=>C.key==="Enter"&&R()),P("click",W,R),es("open","toggle",N,C=>s(_,C),()=>e(_)),o(E,D),Xe(),B()}var sl=f('<button class="backdrop svelte-12qhfyh" aria-label="Close"></button>'),nl=f('<button class="rail-strip svelte-12qhfyh" title="展开会话栏 (⌘B)" aria-label="展开会话栏"><svg class="strip-mark svelte-12qhfyh" 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)"></path><circle cx="49" cy="20" r="6" fill="var(--accent)" stroke="none"></circle></svg> <svg class="strip-caret svelte-12qhfyh" 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>'),rl=f('<div class="app svelte-12qhfyh"><!> <!> <div class="body svelte-12qhfyh"><!> <!> <div><!></div> <div role="separator" aria-orientation="vertical" aria-label="调整会话栏宽度(双击收起/展开)"></div> <main class="svelte-12qhfyh"><!></main> <div role="separator" aria-orientation="vertical" aria-label="调整检查器宽度"></div> <div><!></div></div></div> <!> <!> <!> <!> <!> <!>',1);function fl(E,c){Ze(c,!1);const v=()=>Le(ya,"$page",k),A=()=>Le(Ft,"$backends",k),B=()=>Le(Dt,"$inspectorOpen",k),l=()=>Le(zt,"$leftPanelOpen",k),M=()=>Le(It,"$paletteOpen",k),I=()=>Le(Jt,"$auth",k),[k,b]=ot(),x=p();let h=p(!1),S=p(!1),_=p(),d=p(null);function y(){s(h,!1),Dt.set(!1)}function O(){s(h,!e(h)),Dt.set(!1)}function K(){Dt.update(i=>!i),s(h,!1)}function G(i){if((i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="k"){i.preventDefault(),It.set(!0);return}if((i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="b"){i.preventDefault(),zt.update(w=>!w);return}if(i.key==="Escape"){if(Tt($t)){$t.set(!1);return}if(Tt(St)){St.set(!1);return}y()}}let X=p(""),T=null,ee=p(250),R=p(280),D=p(null);try{s(ee,Math.max(180,Math.min(520,Number(localStorage.getItem("ocrc.railW"))||250))),s(R,Math.max(220,Math.min(520,Number(localStorage.getItem("ocrc.inspW"))||280)))}catch{}function ce(i,w){if(window.matchMedia("(max-width: 820px)").matches)return;w.preventDefault(),s(D,i);const de=w.clientX,ye=i==="rail"?e(ee):e(R),$=Ue=>{const Je=i==="rail"?Ue.clientX-de:de-Ue.clientX,he=Math.max(i==="rail"?180:220,Math.min(520,ye+Je));i==="rail"?s(ee,he):s(R,he)},Pe=()=>{window.removeEventListener("pointermove",$),window.removeEventListener("pointerup",Pe),s(D,null);try{localStorage.setItem("ocrc.railW",String(e(ee))),localStorage.setItem("ocrc.inspW",String(e(R)))}catch{}};window.addEventListener("pointermove",$),window.addEventListener("pointerup",Pe)}let V=p(null);async function ne(){e(V)&&(e(V).prompt(),await e(V).userChoice,s(V,null))}let se=null,we=!1,re=0,F;async function j(i){if(!(we||Date.now()-re<2e3)){we=!0,re=Date.now();try{const{cards:w,lastSeq:de}=await Te.history(i);ca.set(!0),Nt(i,w,de),setTimeout(()=>ca.set(!1),350),T==null||T.send({type:"subscribe",sessionId:i,sinceSeq:de})}catch(w){console.warn("[layout] resync failed",w)}finally{we=!1}}}function Y(i){var de,ye;if(Tt(Jt)!=="ready")return;if(Ba.set(i),is(i),!i){ra(void 0),se=null;return}ra(i);const w=!((ye=(de=Tt(Lt)[i])==null?void 0:de.order)!=null&&ye.length);i===se&&!w||(se=i,Te.history(i).then(({cards:$,lastSeq:Pe})=>{Nt(i,$,Pe),T==null||T.send({type:"subscribe",sessionId:i,sinceSeq:Pe})}).catch($=>{console.warn("[layout] history failed",$),Nt(i,[],0),T==null||T.send({type:"subscribe",sessionId:i})}))}function L(){T&&(T.close(),T=null),Te.me().then(w=>{s(X,w.email)}).catch(()=>{}),Te.sessions().then(w=>{dt.set(w)}).catch(()=>{}),La(),Ea();const i=location.protocol==="https:"?"wss:":"ws:";T=ls({url:`${i}//${location.host}/ws`,onReconnect:()=>{var w;if(se){const de=((w=Tt(Lt)[se])==null?void 0:w.lastSeq)??0;T==null||T.send({type:"subscribe",sessionId:se,sinceSeq:de})}},onMessage:w=>{var de;if(w.type==="card"&&w.card){const ye=w.card.sessionId,$=ye?((de=Tt(Lt)[ye])==null?void 0:de.lastSeq)??0:0;Da(w.card),ye&&Oa($,w.card)&&(clearTimeout(F),F=setTimeout(()=>{j(ye)},500))}(w.type==="hello"||w.type==="sessions")&&w.sessions&&(dt.set(w.sessions),os(w.sessions)),w.type==="replayEnd"&&w.complete===!1&&typeof w.sessionId=="string"&&j(w.sessionId)}}),Y(v().params.sessionId)}Zt(()=>{const i=Jt.subscribe(De=>{De==="ready"&&L()}),w=De=>{De.preventDefault(),s(V,De)};window.addEventListener("beforeinstallprompt",w);const de=window.matchMedia("(max-width: 820px)");s(S,de.matches);const ye=De=>{s(S,De.matches),De.matches||y()};de.addEventListener("change",ye);const $=window.visualViewport,Pe=()=>{!$||!e(_)||(window.scrollY!==0&&window.scrollTo(0,0),la(_,e(_).style.height=`${Math.round($.height)}px`),la(_,e(_).style.transform=$.offsetTop>0?`translateY(${Math.round($.offsetTop)}px)`:""))};Pe(),$==null||$.addEventListener("resize",Pe),$==null||$.addEventListener("scroll",Pe);const Ue=()=>setTimeout(Pe,300);window.addEventListener("orientationchange",Ue);let Je=0,he=0;const Be=()=>{Pe(),Date.now()<Je?he=requestAnimationFrame(Be):he=0},Ke=()=>{Je=Date.now()+650,he||(he=requestAnimationFrame(Be))};return window.addEventListener("focusin",Ke),window.addEventListener("focusout",Ke),()=>{i(),window.removeEventListener("beforeinstallprompt",w),de.removeEventListener("change",ye),$==null||$.removeEventListener("resize",Pe),$==null||$.removeEventListener("scroll",Pe),window.removeEventListener("focusin",Ke),window.removeEventListener("focusout",Ke),window.removeEventListener("orientationchange",Ue),he&&cancelAnimationFrame(he),clearTimeout(F),T==null||T.close()}}),Va(i=>{var w,de;y(),Y((de=(w=i.to)==null?void 0:w.params)==null?void 0:de.sessionId)}),ae(()=>(A(),Qt),()=>{A()&&typeof document<"u"&&Qt(A().activeId)}),ae(()=>v(),()=>{s(x,!!v().params.sessionId)}),nt(),Ve();var oe=rl();P("keydown",Ct,G);var ke=Ne(oe),Se=a(ke);{var We=i=>{ps(i,{get email(){return e(X)},onPalette:()=>It.set(!0),get installEvent(){return e(V)},onInstall:ne,get drawerLeft(){return e(h)},get drawerRight(){return B()},onToggleLeft:O,onToggleRight:K,get newButtonAnchor(){return e(d)},set newButtonAnchor(w){s(d,w)},$$legacy:!0})};U(Se,i=>{e(S)&&e(x)||i(We)})}var Re=n(Se,2);hs(Re);var Z=n(Re,2),N=a(Z);{var pe=i=>{var w=sl();P("click",w,y),o(i,w)};U(N,i=>{(e(h)||B())&&i(pe)})}var Ae=n(N,2);{var xe=i=>{var w=nl();P("click",w,()=>zt.set(!0)),o(i,w)};U(Ae,i=>{!l()&&!e(S)&&i(xe)})}var m=n(Ae,2);let W;var C=a(m);Us(C,{get activeId(){return v(),r(()=>v().params.sessionId)},get drawer(){return e(S)}}),t(m);var le=n(m,2);let u;var z=n(le,2),J=a(z);Za(J,c,"default",{}),t(z);var fe=n(z,2);let ze;var Ce=n(fe,2);let je;var Fe=a(Ce);Xn(Fe,{get sessionId(){return v(),r(()=>v().params.sessionId)}}),t(Ce),t(Z),t(ke),Wt(ke,i=>s(_,i),()=>e(_));var ie=n(ke,2);cr(ie,{get open(){return M()},$$events:{close:()=>It.set(!1)}});var Ie=n(ie,2);Er(Ie,{get anchor(){return e(d)}});var Q=n(Ie,2);_r(Q,{});var Oe=n(Q,2);qr(Oe,{});var g=n(Oe,2);{var te=i=>{jr(i,{})};U(g,i=>{e(x)||i(te)})}var ge=n(g,2);{var ue=i=>{{let w=mt(()=>I()==="rejected"?"rejected":"pairing");al(i,{get status(){return e(w)}})}};U(ge,i=>{I()!=="ready"&&i(ue)})}H(()=>{lt(ke,`--rail-w:${e(ee)??""}px; --insp-w:${e(R)??""}px`),W=be(m,1,"rail-wrap svelte-12qhfyh",null,W,{collapsed:!l()&&!e(S),open:e(h)||e(S)&&!e(x)}),u=be(le,1,"divider svelte-12qhfyh",null,u,{resizing:e(D)==="rail"}),ze=be(fe,1,"divider svelte-12qhfyh",null,ze,{resizing:e(D)==="insp"}),je=be(Ce,1,"inspector-wrap svelte-12qhfyh",null,je,{open:B()})}),P("pointerdown",le,i=>ce("rail",i)),P("dblclick",le,()=>zt.update(i=>!i)),P("pointerdown",fe,i=>ce("insp",i)),o(E,oe),Xe(),b()}export{fl as component,pl as universal};
@@ -1,4 +0,0 @@
1
- import"../chunks/CWj6FrbW.js";import{r as Re,f as Ce,k as Nt,p as Pt,l as sa,i as _a,F as ga,y as ba,j as xa,z as Bt,e as ka,a as Xt,b as Yt,c as Zt,B as wa,w as ya}from"../chunks/TuGPYaVf.js";import{aE as ze,M as ot,a4 as Te,w as i,aB as Fe,V,b4 as n,J as s,aK as a,a$ as D,a8 as e,aR as S,a3 as W,aU as r,a6 as u,aw as yt,ay as jt,ap as y,aO as t,aq as Ue,au as o,b5 as Ct,Q as $a,az as Wt,$ as bt,b2 as na,av as It,b1 as Ot,aI as qa,b0 as Ia,a7 as Ca,Z as Sa}from"../chunks/BjY4dxcB.js";import{i as A,a as Pe,s as Mt}from"../chunks/DIEDQ_hk.js";import{j as De,z as Rt,I as He,l as ja,y as Le,m as xt,x as we,M as ra,w as Ma,A as Ea,d as Ta,g as Lt,i as Da,h as oa,t as Aa,v as Ba,G as ea,b as Oa,D as Ra,C as za,a as Fa,n as la,s as La,p as ta,k as Na}from"../chunks/DJgyevNN.js";import{p as qe,b as at}from"../chunks/C2FuqD3s.js";import{g as zt}from"../chunks/aiCxvHoo.js";var Pa=u('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),Wa=u('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function Ha(ce,P){ze(P,!1);let c=qe(P,"suggestions",24,()=>[]),g=qe(P,"onPick",8,()=>{}),_=qe(P,"onDismiss",8,()=>{});Re();var O=ot(),p=Te(O);{var f=m=>{var d=Wa(),w=s(d);De(w,3,c,j=>j,(j,U,G)=>{var l=Pa(),C=s(l,!0);a(l),D(q=>{Rt(l,q),S(C,e(U))},[()=>(V(e(G)),n(()=>`animation-delay: ${Math.min(e(G),5)*45}ms`))]),W("click",l,()=>g()(e(U))),i(j,l)});var $=r(w,2),E=s($);He(E,{name:"close",size:12}),a($),a(d),W("click",$,function(...j){var U;(U=_())==null||U.apply(this,j)}),i(m,d)};A(p,m=>{V(c()),n(()=>c().length>0)&&m(f)})}i(ce,O),Fe()}var Ka=u('<div class="card user svelte-2ec03f"> </div>');function Ua(ce,P){ze(P,!1);let c=qe(P,"card",8);Re();var g=Ka(),_=s(g,!0);a(g),D(()=>S(_,(V(c()),n(()=>c().text)))),i(ce,g),Fe()}var Ga=u('<button class="stop svelte-1n9pz5q">Stop</button>'),Ja=u('<div class="thinking-row svelte-1n9pz5q"><span class="toggle mono svelte-1n9pz5q"><span class="caret svelte-1n9pz5q" aria-hidden="true"><!></span> reasoning</span> <!></div>');function Va(ce,P){ze(P,!1);let c=qe(P,"card",8);Re();var g=Ja(),_=s(g),O=s(_),p=s(O);He(p,{name:"caret-right",size:11}),a(O),yt(),a(_);var f=r(_,2);{var m=d=>{var w=Ga();W("click",w,()=>Ce.abort(c().sessionId)),i(d,w)};A(f,d=>{V(c()),n(()=>c().showStop)&&d(m)})}a(g),i(ce,g),Fe()}const aa={30:"#555",31:"#e0796b",32:"#6cc08b",33:"#e0b341",34:"#7cafc2",35:"#b48cf0",36:"#4ec9b0",37:"#f2f0ec",90:"#8d877c",91:"#f09080",92:"#8dd8a4",93:"#f0c860",94:"#90c5dd",95:"#c9a8f8",96:"#70dcc8",97:"#ffffff"};function Qa(ce){let P=ce.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");P=P.replace(/\x1b\[[0-9;?]*[A-Za-z]/g,_=>_.endsWith("m")?_:"").replace(/\x1b\][^\x07]*\x07/g,"").replace(/\x1b\][^\x1b]*\x1b\\/g,"");let c=0;const g=[];for(const _ of P.split(/(\x1b\[[0-9;]*m)/)){const O=_.match(/^\x1b\[([0-9;]*)m$/);if(!O){g.push(_);continue}const p=O[1].split(";").filter(Boolean).map(Number);p.length===0&&p.push(0);const f=[];for(let m=0;m<p.length;m++){const d=p[m];if(d===0)for(;c>0;)g.push("</span>"),c--;else if(d===38||d===48){const w=p[m+1];w===5?m+=2:w===2&&(d===38&&f.push(`color:rgb(${p[m+2]},${p[m+3]},${p[m+4]})`),m+=4)}else d===1?f.push("font-weight:bold"):d===2?f.push("opacity:0.7"):d===3?f.push("font-style:italic"):d===4?f.push("text-decoration:underline"):aa[d]&&f.push(`color:${aa[d]}`)}f.length&&(g.push(`<span style="${f.join(";")}">`),c++)}for(;c>0;)g.push("</span>"),c--;return g.join("")}var Xa=u('<span class="add svelte-dcl78h"> </span>'),Ya=u('<span class="del svelte-dcl78h"> </span>'),Za=u('<span class="diff mono svelte-dcl78h"><!> <!></span>'),es=u('<span class="shimmer svelte-dcl78h" aria-hidden="true"></span>'),ts=u('<span class="dur mono svelte-dcl78h"> </span>'),as=u('<button class="toggle mono svelte-dcl78h"> </button>'),ss=u('<div><div class="term-head svelte-dcl78h"><span class="glyph svelte-dcl78h" aria-hidden="true"> </span> <span class="tname mono svelte-dcl78h"> </span> <!> <!></div> <div class="term-body mono svelte-dcl78h"></div> <!></div>');function ns(ce,P){ze(P,!1);const c=o(),g=o(),_=o(),O=o(),p=o();let f=qe(P,"text",8),m=qe(P,"tool",8,""),d=qe(P,"status",8,"done"),w=qe(P,"dur",8,void 0),$=qe(P,"adds",8,void 0),E=qe(P,"dels",8,void 0);const j=20;let U=o(!1),G=o(""),l,C=o(0),q=o("");function Y(z){z!==l&&(l=z,t(G,Qa(z)))}jt(()=>{e(C)&&cancelAnimationFrame(e(C))});function k(z){return z==null?"":z<1?`${(z*1e3).toFixed(0)}ms`:`${z.toFixed(1)}s`}y(()=>V(f()),()=>{t(c,f().split(`
2
- `))}),y(()=>e(c),()=>{t(g,e(c).length>j)}),y(()=>(V(d()),e(U)),()=>{t(_,d()==="running"||e(U))}),y(()=>(e(g),e(_),e(c),V(f())),()=>{t(O,e(g)&&!e(_)?e(c).slice(0,j).join(`
3
- `):f())}),y(()=>(e(O),V(d()),e(q),e(C)),()=>{const z=e(O);d()==="running"&&typeof requestAnimationFrame<"u"?(t(q,z),e(C)||t(C,requestAnimationFrame(()=>{t(C,0),Y(e(q))}))):(e(C)&&(cancelAnimationFrame(e(C)),t(C,0)),Y(z))}),y(()=>V(d()),()=>{t(p,d()==="done"?"✓":d()==="running"?"●":"✗")}),Ue(),Re();var v=ss(),h=s(v),H=s(h),Q=s(H,!0);a(H);var J=r(H,2),I=s(J,!0);a(J);var K=r(J,2);{var L=z=>{var Z=Za(),de=s(Z);{var ve=N=>{var F=Xa(),ne=s(F);a(F),D(()=>S(ne,`+${$()??""}`)),i(N,F)};A(de,N=>{$()&&N(ve)})}var M=r(de,2);{var oe=N=>{var F=Ya(),ne=s(F);a(F),D(()=>S(ne,`−${E()??""}`)),i(N,F)};A(M,N=>{E()&&N(oe)})}a(Z),i(z,Z)};A(K,z=>{($()||E())&&z(L)})}var se=r(K,2);{var B=z=>{var Z=es();i(z,Z)},X=z=>{var Z=ts(),de=s(Z,!0);a(Z),D(ve=>S(de,ve),[()=>(V(w()),n(()=>k(w())))]),i(z,Z)};A(se,z=>{d()==="running"?z(B):w()!=null&&z(X,1)})}a(h);var be=r(h,2);ja(be,()=>e(G),!0),a(be);var ie=r(be,2);{var te=z=>{var Z=as(),de=s(Z,!0);a(Z),D(()=>S(de,(e(_),e(c),n(()=>e(_)?"▴ show less":`▾ show more · ${e(c).length-j} more lines`)))),W("click",Z,()=>t(U,!e(U))),i(z,Z)};A(ie,z=>{e(g)&&d()!=="running"&&z(te)})}a(v),D(()=>{Le(v,1,`term ${d()??""}`,"svelte-dcl78h"),S(Q,e(p)),S(I,m())}),i(ce,v),Fe()}var rs=u('<span class="ps1 mono svelte-on906i" aria-hidden="true">$</span>'),os=u('<span class="add svelte-on906i"> </span>'),ls=u('<span class="del svelte-on906i"> </span>'),is=u('<span class="diff mono svelte-on906i"><!> <!></span>'),vs=u('<span class="shimmer svelte-on906i" aria-hidden="true"></span>'),cs=u('<span class="dur mono svelte-on906i"> </span>'),ds=u('<div><div class="row-main svelte-on906i"><span class="status svelte-on906i" aria-hidden="true"></span> <span class="sr-only svelte-on906i"> </span> <span class="name mono svelte-on906i"> </span> <!> <span class="arg mono svelte-on906i"> </span> <!> <!></div></div>'),us=u('<button class="more mono svelte-on906i"> </button>'),ps=u('<div class="execution svelte-on906i"><div class="header svelte-on906i"><span class="label mono svelte-on906i">EXECUTION</span> <span class="rule svelte-on906i" aria-hidden="true"></span> <span class="count mono svelte-on906i"> </span></div> <div class="rows svelte-on906i"><!> <!></div></div>');function ia(ce,P){ze(P,!1);const c=o(),g=o(),_=o(),O=o();let p=qe(P,"tools",8);const f=12,m=100;let d=o(!1);const w=new Set;function $(l,C){if(w.has(C))return!0;const q=l.args??"",Y=q.includes(`
4
- `)||q.length>m;return Y&&w.add(C),Y}function E(l){return l==null?"":l<1?`${(l*1e3).toFixed(0)}ms`:`${l.toFixed(1)}s`}y(()=>V(p()),()=>{t(c,p())}),y(()=>(e(d),e(c)),()=>{t(g,e(d)?e(c):e(c).slice(0,f))}),y(()=>e(c),()=>{t(_,e(c).length)}),y(()=>e(c),()=>{t(O,e(c).filter(l=>l.status==="done").length)}),Ue(),Re();var j=ot(),U=Te(j);{var G=l=>{var C=ps(),q=s(C),Y=r(s(q),4),k=s(Y);a(Y),a(q);var v=r(q,2),h=s(v);De(h,1,()=>e(g),xt,(J,I,K)=>{var L=ot(),se=Te(L);{var B=ie=>{ns(ie,{get text(){return e(I),n(()=>e(I).args)},get tool(){return e(I),n(()=>e(I).tool)},get status(){return e(I),n(()=>e(I).status)},get dur(){return e(I),n(()=>e(I).dur)},get adds(){return e(I),n(()=>e(I).adds)},get dels(){return e(I),n(()=>e(I).dels)}})},X=Ct(()=>(e(I),n(()=>$(e(I),K)))),be=ie=>{var te=ds(),z=s(te),Z=r(s(z),2),de=s(Z,!0);a(Z);var ve=r(Z,2),M=s(ve,!0);a(ve);var oe=r(ve,2);{var N=re=>{var _e=rs();i(re,_e)};A(oe,re=>{e(I),n(()=>e(I).tool==="bash")&&re(N)})}var F=r(oe,2),ne=s(F,!0);a(F);var ge=r(F,2);{var ke=re=>{var _e=is(),Ne=s(_e);{var Ze=Me=>{var Ae=os(),Be=s(Ae);a(Ae),D(()=>S(Be,`+${e(I),n(()=>e(I).adds)??""}`)),i(Me,Ae)};A(Ne,Me=>{e(I),n(()=>e(I).adds)&&Me(Ze)})}var Ge=r(Ne,2);{var Ke=Me=>{var Ae=ls(),Be=s(Ae);a(Ae),D(()=>S(Be,`−${e(I),n(()=>e(I).dels)??""}`)),i(Me,Ae)};A(Ge,Me=>{e(I),n(()=>e(I).dels)&&Me(Ke)})}a(_e),i(re,_e)};A(ge,re=>{e(I),n(()=>e(I).adds||e(I).dels)&&re(ke)})}var ue=r(ge,2);{var R=re=>{var _e=vs();i(re,_e)},le=re=>{var _e=cs(),Ne=s(_e,!0);a(_e),D(Ze=>S(Ne,Ze),[()=>(e(I),n(()=>E(e(I).dur)))]),i(re,_e)};A(ue,re=>{e(I),n(()=>e(I).status==="running")?re(R):(e(I),n(()=>e(I).dur!=null)&&re(le,1))})}a(z),a(te),D(()=>{Le(te,1,`row ${e(I),n(()=>e(I).status)??""}`,"svelte-on906i"),S(de,(e(I),n(()=>e(I).status))),S(M,(e(I),n(()=>e(I).tool))),S(ne,(e(I),n(()=>e(I).args)))}),i(ie,te)};A(se,ie=>{e(X)?ie(B):ie(be,-1)})}i(J,L)});var H=r(h,2);{var Q=J=>{var I=us(),K=s(I);a(I),D(()=>S(K,`… ${e(c),n(()=>e(c).length-f)??""} more`)),W("click",I,()=>t(d,!0)),i(J,I)};A(H,J=>{e(c),e(d),n(()=>e(c).length>f&&!e(d))&&J(Q)})}a(v),a(C),D(()=>S(k,`${e(O)??""}/${e(_)??""} steps`)),i(l,C)};A(U,l=>{V(p()),n(()=>p().length>0)&&l(G)})}i(ce,j),Fe()}var fs=u('<div class="text svelte-l1yd1q"><!></div>'),hs=u('<span class="think-dot svelte-l1yd1q" aria-hidden="true"></span>'),ms=u('<pre class="think-body svelte-l1yd1q"> </pre>'),_s=u('<div class="think svelte-l1yd1q"><button class="think-head svelte-l1yd1q"><!> <span class="think-label svelte-l1yd1q"> </span> <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></button> <!></div>'),gs=u('<div class="card streaming svelte-l1yd1q"></div>');function bs(ce,P){ze(P,!1);const c=o(),g=o();let _=qe(P,"card",8),O=o(!1);y(()=>V(_()),()=>{t(c,(()=>{const f=[];for(const m of _().blocks)if(m.type==="text"){const d=f[f.length-1];(d==null?void 0:d.kind)==="text"?d.text+=m.text:f.push({kind:"text",text:m.text})}else if(m.type==="tool"){const d=f[f.length-1],w={tool:m.tool,args:m.args,status:m.status};(d==null?void 0:d.kind)==="tools"?d.tools.push(w):f.push({kind:"tools",tools:[w]})}else if(m.type==="reasoning"){const d=f[f.length-1];(d==null?void 0:d.kind)==="reasoning"?d.text+=m.text:f.push({kind:"reasoning",text:m.text})}return f})())}),y(()=>e(c),()=>{t(g,e(c).length>0&&e(c)[e(c).length-1].kind==="reasoning")}),Ue(),Re();var p=gs();De(p,5,()=>e(c),xt,(f,m)=>{var d=ot(),w=Te(d);{var $=G=>{var l=ot(),C=Te(l);{var q=k=>{var v=fs(),h=s(v);ra(h,{get src(){return e(m),n(()=>e(m).text)},throttle:!0,streaming:!0}),a(v),i(k,v)},Y=Ct(()=>(e(m),n(()=>e(m).text.trim())));A(C,k=>{e(Y)&&k(q)})}i(G,l)},E=G=>{ia(G,{get tools(){return e(m),n(()=>e(m).tools)}})},j=G=>{var l=_s(),C=s(l),q=s(C);{var Y=I=>{var K=hs();i(I,K)};A(q,I=>{e(g)&&I(Y)})}var k=r(q,2),v=s(k,!0);a(k);var h=r(k,2);let H;a(C);var Q=r(C,2);{var J=I=>{var K=ms(),L=s(K,!0);a(K),D(()=>S(L,(e(m),n(()=>e(m).text)))),i(I,K)};A(Q,I=>{e(O)&&I(J)})}a(l),D(()=>{we(C,"aria-expanded",e(O)),S(v,e(g)?"思考中…":"思考过程"),H=Le(h,0,"think-caret svelte-l1yd1q",null,H,{open:e(O)})}),W("click",C,()=>t(O,!e(O))),i(G,l)},U=Ct(()=>(e(m),n(()=>e(m).text.trim())));A(w,G=>{e(m),n(()=>e(m).kind==="text")?G($):(e(m),n(()=>e(m).kind==="tools")?G(E,1):e(U)&&G(j,2))})}i(f,d)}),a(p),i(ce,p),Fe()}var xs=u('<details class="think svelte-wmi6xy"><summary class="svelte-wmi6xy">思考过程</summary> <pre class="svelte-wmi6xy"> </pre></details>'),ks=u('<div class="text svelte-wmi6xy"><!></div>'),ws=u('<span class="chip agent mono svelte-wmi6xy"> </span>'),ys=u('<span class="chip mono svelte-wmi6xy"> </span>'),$s=u('<span class="chip mono svelte-wmi6xy"> </span>'),qs=u('<span class="chip mono svelte-wmi6xy"> </span>'),Is=u('<span class="chip cost mono svelte-wmi6xy"> </span>'),Cs=u('<button class="icon svelte-wmi6xy" title="重新生成" aria-label="重新生成"><!></button>'),Ss=u('<div class="meta svelte-wmi6xy"><div class="chips svelte-wmi6xy"><!> <!> <!> <!> <!></div> <div class="actions svelte-wmi6xy"><!> <button title="复制" aria-label="复制"><!></button></div></div>'),js=u('<div class="card assistant svelte-wmi6xy"><!> <!> <!> <!></div>');function Ms(ce,P){ze(P,!1);const c=o(),g=o(),_=o(),O=o();let p=qe(P,"card",8),f=qe(P,"onRegenerate",8,void 0);function m(k){return k>=1e3?`${(k/1e3).toFixed(1)}k`:String(k)}let d=o(!1),w;async function $(){if(e(g)){try{await navigator.clipboard.writeText(e(g))}catch{return}t(d,!0),w&&clearTimeout(w),w=setTimeout(()=>t(d,!1),1300)}}jt(()=>clearTimeout(w)),y(()=>V(p()),()=>{t(c,p().blocks.filter(k=>k.type==="tool").map(k=>({tool:k.tool,args:k.args,status:k.status})))}),y(()=>V(p()),()=>{t(g,p().blocks.filter(k=>k.type==="text").map(k=>k.text).join(""))}),y(()=>V(p()),()=>{t(_,p().meta)}),y(()=>e(_),()=>{t(O,e(_).agent||e(_).model||e(_).tokens||e(_).duration!=null||e(_).cost!==void 0)}),Ue(),Re();var E=js(),j=s(E);{var U=k=>{var v=xs(),h=r(s(v),2),H=s(h,!0);a(h),a(v),D(()=>S(H,(V(p()),n(()=>p().thinkingText)))),i(k,v)};A(j,k=>{V(p()),n(()=>p().thinkingText)&&k(U)})}var G=r(j,2);ia(G,{get tools(){return e(c)}});var l=r(G,2);{var C=k=>{var v=ks(),h=s(v);ra(h,{get src(){return e(g)}}),a(v),i(k,v)};A(l,k=>{e(g)&&k(C)})}var q=r(l,2);{var Y=k=>{var v=Ss(),h=s(v),H=s(h);{var Q=N=>{var F=ws(),ne=s(F,!0);a(F),D(()=>S(ne,(e(_),n(()=>e(_).agent)))),i(N,F)};A(H,N=>{e(_),n(()=>e(_).agent)&&N(Q)})}var J=r(H,2);{var I=N=>{var F=ys(),ne=s(F,!0);a(F),D(()=>S(ne,(e(_),n(()=>e(_).model)))),i(N,F)};A(J,N=>{e(_),n(()=>e(_).model)&&N(I)})}var K=r(J,2);{var L=N=>{var F=$s(),ne=s(F);a(F),D((ge,ke)=>S(ne,`↑${ge??""} ↓${ke??""}`),[()=>(e(_),n(()=>m(e(_).tokens.input))),()=>(e(_),n(()=>m(e(_).tokens.output)))]),i(N,F)};A(K,N=>{e(_),n(()=>e(_).tokens)&&N(L)})}var se=r(K,2);{var B=N=>{var F=qs(),ne=s(F);a(F),D(()=>S(ne,`${e(_),n(()=>e(_).duration)??""}s`)),i(N,F)};A(se,N=>{e(_),n(()=>e(_).duration!=null)&&N(B)})}var X=r(se,2);{var be=N=>{var F=Is(),ne=s(F);a(F),D(ge=>S(ne,`$${ge??""}`),[()=>(e(_),n(()=>e(_).cost.toFixed(3)))]),i(N,F)};A(X,N=>{e(_),n(()=>e(_).cost!==void 0)&&N(be)})}a(h);var ie=r(h,2),te=s(ie);{var z=N=>{var F=Cs(),ne=s(F);He(ne,{name:"refresh",size:13}),a(F),W("click",F,function(...ge){var ke;(ke=f())==null||ke.apply(this,ge)}),i(N,F)};A(te,N=>{f()&&N(z)})}var Z=r(te,2);let de;var ve=s(Z);{var M=N=>{He(N,{name:"check",size:13})},oe=N=>{He(N,{name:"copy",size:13})};A(ve,N=>{e(d)?N(M):N(oe,-1)})}a(Z),a(ie),a(v),D(()=>de=Le(Z,1,"icon svelte-wmi6xy",null,de,{copied:e(d)})),W("click",Z,$),i(k,v)};A(q,k=>{e(O)&&k(Y)})}a(E),i(ce,E),Fe()}var Es=u('<button class="retry svelte-1m8kde8"><!> Retry</button>'),Ts=u('<div class="card error svelte-1m8kde8"><div class="head svelte-1m8kde8"><!> </div> <code class="svelte-1m8kde8"> </code> <!></div>');function Ds(ce,P){ze(P,!1);const c=o();let g=qe(P,"card",8),_=qe(P,"onRetry",8,void 0);const O=$a();function p(l){const C=(l||"").toLowerCase();return C.includes("abort")?{label:"Stopped",retryable:!1}:C.includes("timeout")||C.includes("timed out")?{label:"Timed out",retryable:!0}:C.includes("fetch")||C.includes("network")||C.includes("econn")||/\b(429|500|502|503|504)\b/.test(C)?{label:"Network issue",retryable:!0}:{label:"Error",retryable:!0}}function f(){_()?_()():O("retry")}y(()=>V(g()),()=>{t(c,p(g().message))}),Ue(),Re();var m=Ts(),d=s(m),w=s(d);He(w,{name:"alert",size:13});var $=r(w);a(d);var E=r(d,2),j=s(E,!0);a(E);var U=r(E,2);{var G=l=>{var C=Es(),q=s(C);He(q,{name:"refresh",size:11}),yt(),a(C),D(()=>C.disabled=!_()),W("click",C,f),i(l,C)};A(U,l=>{e(c),n(()=>e(c).retryable)&&l(G)})}a(m),D(()=>{S($,` ${e(c),n(()=>e(c).label)??""}`),S(j,(V(g()),n(()=>g().message)))}),i(ce,m),Fe()}var As=u('<div class="note mono svelte-hbf6ni"> </div>');function Bs(ce,P){ze(P,!1);const c=o(),g=o();let _=qe(P,"card",8);y(()=>V(_()),()=>{t(c,_().sections.map(f=>f.body).join(" ")||"")}),y(()=>(V(_()),e(c)),()=>{t(g,[_().title,e(c)].filter(Boolean).join(" — "))}),Ue(),Re();var O=As(),p=s(O,!0);a(O),D(()=>S(p,e(g))),i(ce,O),Fe()}var Os=u('<div class="note mono svelte-scaqco"> </div>');function Rs(ce,P){ze(P,!1);const c=o(),g=o(),_=o(),O=o();let p=qe(P,"card",8);y(()=>V(p()),()=>{t(c,p().fields.title??"Status")}),y(()=>V(p()),()=>{t(g,Object.entries(p().fields).filter(([d])=>d!=="title"))}),y(()=>e(g),()=>{t(_,e(g).map(([d,w])=>`${d}: ${w}`).join(" · "))}),y(()=>(e(c),e(_)),()=>{t(O,[e(c),e(_)].filter(Boolean).join(" · "))}),Ue(),Re();var f=Os(),m=s(f,!0);a(f),D(()=>S(m,e(O))),i(ce,f),Fe()}var zs=u('<div><span class="mark svelte-19vkggv" aria-hidden="true"> </span> <span class="rlabel svelte-19vkggv"> </span> <span class="rttl svelte-19vkggv"> </span></div>'),Fs=u('<div class="appr pending svelte-19vkggv"><div class="header svelte-19vkggv"><span class="warn-dot svelte-19vkggv" aria-hidden="true"></span> <span class="label svelte-19vkggv">需要审批</span> <span class="rule svelte-19vkggv" aria-hidden="true"></span> <span class="tool mono svelte-19vkggv"> </span></div> <pre class="diff mono svelte-19vkggv"> </pre> <div class="acts svelte-19vkggv"><button class="a allow svelte-19vkggv">批准</button> <button class="a always svelte-19vkggv">总是允许</button> <span class="spacer svelte-19vkggv"></span> <button class="a rej svelte-19vkggv">拒绝</button></div></div>');function Ls(ce,P){ze(P,!1);const c=o(),g=o(),_=o();let O=qe(P,"card",8),p=o("");async function f(j){try{await Ce.approve(O().sessionId,O().requestId,j),t(p,j)}catch{t(p,"error")}}const m={once:"已批准 — 已应用",always:"已设为自动允许",reject:"已拒绝 — 未应用",error:"失败"};y(()=>e(p),()=>{t(c,!!e(p))}),y(()=>e(p),()=>{t(g,e(p)==="reject"||e(p)==="error")}),y(()=>V(O()),()=>{t(_,typeof O().args=="string"?O().args:JSON.stringify(O().args,null,2))}),Ue(),Re();var d=ot(),w=Te(d);{var $=j=>{var U=zs();let G;var l=s(U),C=s(l,!0);a(l);var q=r(l,2),Y=s(q,!0);a(q);var k=r(q,2),v=s(k,!0);a(k),a(U),D(()=>{G=Le(U,1,"appr resolved svelte-19vkggv",null,G,{rej:e(g)}),S(C,e(g)?"✕":"✓"),S(Y,(e(p),n(()=>m[e(p)]??e(p)))),S(v,(V(O()),n(()=>O().title)))}),i(j,U)},E=j=>{var U=Fs(),G=s(U),l=r(s(G),6),C=s(l,!0);a(l),a(G);var q=r(G,2),Y=s(q,!0);a(q);var k=r(q,2),v=s(k),h=r(v,2),H=r(h,4);a(k),a(U),D(()=>{S(C,(V(O()),n(()=>O().title))),S(Y,e(_))}),W("click",v,()=>f("once")),W("click",h,()=>f("always")),W("click",H,()=>f("reject")),i(j,U)};A(w,j=>{e(c)?j($):j(E,-1)})}i(ce,d),Fe()}var Ns=u('<div><span class="mark svelte-hiqfhq" aria-hidden="true"> </span> <span class="rlabel svelte-hiqfhq"> </span> <span class="rttl mono svelte-hiqfhq"> </span></div>'),Ps=u('<span class="mono warn-note svelte-hiqfhq">当前后端不支持 Web 回答</span>'),Ws=u('<div class="qhead mono svelte-hiqfhq"> </div>'),Hs=u("<button> </button>"),Ks=u('<input class="custom mono svelte-hiqfhq" placeholder="或输入自定义回答…"/>'),Us=u('<div class="hint svelte-hiqfhq">可多选</div>'),Gs=u('<div class="q svelte-hiqfhq"><!> <div class="qtext svelte-hiqfhq"> </div> <div class="opts svelte-hiqfhq"></div> <!> <!></div>'),Js=u('<div class="qcard pending svelte-hiqfhq"><div class="header svelte-hiqfhq"><span class="q-dot svelte-hiqfhq" aria-hidden="true"></span> <span class="label svelte-hiqfhq">需要你的回答</span> <span class="rule svelte-hiqfhq" aria-hidden="true"></span> <!></div> <!> <div class="acts svelte-hiqfhq"><button class="a send svelte-hiqfhq">提交回答</button> <span class="spacer svelte-hiqfhq"></span> <button class="a rej svelte-hiqfhq">取消</button></div></div>');function Vs(ce,P){ze(P,!1);const c=()=>Pe(Nt,"$can",g),[g,_]=Mt(),O=o(),p=o(),f=o(),m=o();let d=qe(P,"card",8),w=o({}),$=o({}),E=o("");function j(v,h,H){const Q=e(w)[v]??[];H?t(w,{...e(w),[v]:Q.includes(h)?Q.filter(J=>J!==h):[...Q,h]}):t(w,{...e(w),[v]:Q.includes(h)?[]:[h]})}async function U(){const v=(d().questions??[]).map((h,H)=>{const Q=(e($)[H]??"").trim();return Q?[Q]:(e(w)[H]??[]).map(J=>{var I;return(I=h.options[J])==null?void 0:I.label}).filter(J=>!!J)});try{const h=await Ce.answerQuestion(d().sessionId,d().requestId,v);t(E,h!=null&&h.stale?"stale":h!=null&&h.ok?"replied":"error")}catch{t(E,"error")}}async function G(){try{const v=await Ce.rejectQuestion(d().sessionId,d().requestId);t(E,v!=null&&v.stale?"stale":v!=null&&v.ok?"rejected":"error")}catch{t(E,"error")}}const l={replied:"已回答",rejected:"已取消",stale:"已在其他界面回答",error:"提交失败"};y(()=>(V(d()),e(E)),()=>{t(O,d().resolved??(e(E)==="replied"||e(E)==="rejected"?e(E):void 0))}),y(()=>e(E),()=>{t(p,e(E)==="stale")}),y(()=>c(),()=>{t(f,c()("questions"))}),y(()=>(V(d()),e($),e(w)),()=>{t(m,(d().questions??[]).every((v,h)=>(e($)[h]??"").trim()?!0:(e(w)[h]??[]).length>0))}),Ue(),Re();var C=ot(),q=Te(C);{var Y=v=>{var h=Ns();let H;var Q=s(h),J=s(Q,!0);a(Q);var I=r(Q,2),K=s(I,!0);a(I);var L=r(I,2),se=s(L,!0);a(L),a(h),D(B=>{H=Le(h,1,"qcard resolved svelte-hiqfhq",null,H,{fresh:e(E)!=="",rej:e(O)==="rejected"||e(p)||e(E)==="error"}),S(J,e(O)==="replied"?"✓":"✕"),S(K,(e(O),e(E),n(()=>l[e(O)??e(E)]??""))),S(se,B)},[()=>(V(d()),n(()=>d().requestId.slice(0,12)))]),i(v,h)},k=v=>{var h=Js(),H=s(h),Q=r(s(H),6);{var J=B=>{var X=Ps();i(B,X)};A(Q,B=>{e(f)||B(J)})}a(H);var I=r(H,2);De(I,1,()=>(V(d()),n(()=>d().questions)),xt,(B,X,be)=>{var ie=Gs(),te=s(ie);{var z=ne=>{var ge=Ws(),ke=s(ge,!0);a(ge),D(()=>S(ke,(e(X),n(()=>e(X).header)))),i(ne,ge)};A(te,ne=>{e(X),n(()=>e(X).header)&&ne(z)})}var Z=r(te,2),de=s(Z,!0);a(Z);var ve=r(Z,2);De(ve,5,()=>(e(X),n(()=>e(X).options)),xt,(ne,ge,ke)=>{var ue=Hs();let R;var le=s(ue,!0);a(ue),D(re=>{R=Le(ue,1,"opt svelte-hiqfhq",null,R,re),we(ue,"title",(e(ge),n(()=>e(ge).description??e(ge).label))),S(le,(e(ge),n(()=>e(ge).label)))},[()=>({on:(e(w)[be]??[]).includes(ke)})]),W("click",ue,()=>j(be,ke,e(X).multiple)),i(ne,ue)}),a(ve);var M=r(ve,2);{var oe=ne=>{var ge=Ks();Ma(ge),D(()=>Ea(ge,(e($),n(()=>e($)[be]??"")))),W("input",ge,ke=>t($,{...e($),[be]:ke.currentTarget.value})),i(ne,ge)};A(M,ne=>{e(X),n(()=>e(X).custom)&&ne(oe)})}var N=r(M,2);{var F=ne=>{var ge=Us();i(ne,ge)};A(N,ne=>{e(X),n(()=>e(X).multiple)&&ne(F)})}a(ie),D(()=>S(de,(e(X),n(()=>e(X).question)))),i(B,ie)});var K=r(I,2),L=s(K),se=r(L,4);a(K),a(h),D(()=>{L.disabled=!e(f)||!e(m)||e(E)==="error",se.disabled=!e(f)}),W("click",L,U),W("click",se,G),i(v,h)};A(q,v=>{e(O)||e(p)?v(Y):v(k,-1)})}i(ce,C),Fe(),_()}var Qs=u('<div class="card placeholder svelte-1udyrqm"> </div>');function Xs(ce,P){ze(P,!1);let c=qe(P,"card",8),g=qe(P,"onRetry",8,void 0);Re();var _=ot(),O=Te(_);{var p=l=>{Ua(l,{get card(){return c()}})},f=l=>{Va(l,{get card(){return c()}})},m=l=>{bs(l,{get card(){return c()}})},d=l=>{Ms(l,{get card(){return c()}})},w=l=>{Ds(l,{get card(){return c()},get onRetry(){return g()}})},$=l=>{Bs(l,{get card(){return c()}})},E=l=>{Rs(l,{get card(){return c()}})},j=l=>{Ls(l,{get card(){return c()}})},U=l=>{Vs(l,{get card(){return c()}})},G=l=>{var C=Qs(),q=s(C);a(C),D(()=>S(q,`[${V(c()),n(()=>c().kind)??""}]`)),i(l,C)};A(O,l=>{V(c()),n(()=>c().kind==="user")?l(p):(V(c()),n(()=>c().kind==="thinking")?l(f,1):(V(c()),n(()=>c().kind==="streaming")?l(m,2):(V(c()),n(()=>c().kind==="assistant")?l(d,3):(V(c()),n(()=>c().kind==="error")?l(w,4):(V(c()),n(()=>c().kind==="info")?l($,5):(V(c()),n(()=>c().kind==="status")?l(E,6):(V(c()),n(()=>c().kind==="approval")?l(j,7):(V(c()),n(()=>c().kind==="question")?l(U,8):l(G,-1)))))))))})}i(ce,_),Fe()}var Ys=u('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Zs=u('<button role="option"><span> </span> <span class="label mono"> </span></button>'),en=u('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),tn=u('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <!></div>');function an(ce,P){ze(P,!1);const c=o();let g=o(!1),_=o(),O=o([]),p=o({agent:null,model:null});async function f(){try{await(async k=>{var v=na(k,2);t(O,v[0]),t(p,v[1])})(await Promise.all([Ce.agents(),Ce.getOverrides()]))}catch{}}Wt(f);async function m(k){await Ce.setOverrides({agent:k.name}),await f(),t(g,!1)}async function d(){await Ce.setOverrides({agent:null}),await f(),t(g,!1)}function w(k){k.key==="Escape"&&e(g)&&t(g,!1)}function $(k){e(g)&&e(_)&&!e(_).contains(k.target)&&t(g,!1)}y(()=>e(p),()=>{t(c,e(p).agent??"default")}),Ue(),Re();var E=tn();W("keydown",bt,w),W("click",bt,$);var j=s(E),U=s(j);He(U,{name:"cpu",size:11});var G=r(U,2),l=s(G,!0);a(G);var C=r(G,2);He(C,{name:"caret-down",size:9}),a(j);var q=r(j,2);{var Y=k=>{var v=en(),h=s(v);{var H=K=>{var L=Ys();i(K,L)};A(h,K=>{e(O),n(()=>e(O).length===0)&&K(H)})}var Q=r(h,2);De(Q,1,()=>e(O),K=>K.name,(K,L)=>{var se=Zs();let B;var X=s(se),be=s(X,!0);a(X);var ie=r(X,2),te=s(ie,!0);a(ie),a(se),D(z=>{B=Le(se,1,"opt svelte-1f5vmb3",null,B,{sel:e(L).name===e(p).agent}),we(se,"aria-selected",(e(L),e(p),n(()=>e(L).name===e(p).agent))),S(be,(e(L),n(()=>e(L).name))),S(te,z)},[()=>(e(L),n(()=>e(L).model.split("/").pop()))]),W("click",se,()=>m(e(L))),i(K,se)});var J=r(Q,2),I=s(J);He(I,{name:"close",size:11}),yt(),a(J),a(v),D(()=>we(J,"aria-selected",(e(p),n(()=>e(p).agent==null)))),W("click",J,d),i(k,v)};A(q,k=>{e(g)&&k(Y)})}a(E),at(E,k=>t(_,k),()=>e(_)),D(()=>{we(j,"aria-expanded",e(g)),S(l,e(c))}),W("click",j,()=>{t(g,!e(g)),e(g)&&f()}),i(ce,E),Fe()}var sn=u('<div class="none label svelte-1005b73">暂无模型</div>'),nn=u('<button role="option"><span> </span></button>'),rn=u('<div class="prov label mono svelte-1005b73"> </div> <!>',1),on=u('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),ln=u('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <!></div>');function vn(ce,P){ze(P,!1);const c=o();let g=o(!1),_=o(),O=o([]),p=o({agent:null,model:null});async function f(){try{await(async k=>{var v=na(k,2);t(O,v[0]),t(p,v[1])})(await Promise.all([Ce.models(),Ce.getOverrides()]))}catch{}}Wt(f);async function m(k,v){await Ce.setOverrides({model:{providerID:k,modelID:v}}),await f(),t(g,!1)}async function d(){await Ce.setOverrides({model:null}),await f(),t(g,!1)}function w(k){k.key==="Escape"&&e(g)&&t(g,!1)}function $(k){e(g)&&e(_)&&!e(_).contains(k.target)&&t(g,!1)}y(()=>e(p),()=>{var k;t(c,((k=e(p).model)==null?void 0:k.modelID)??"model")}),Ue(),Re();var E=ln();W("keydown",bt,w),W("click",bt,$);var j=s(E),U=s(j);He(U,{name:"bolt",size:11});var G=r(U,2),l=s(G,!0);a(G);var C=r(G,2);He(C,{name:"caret-down",size:9}),a(j);var q=r(j,2);{var Y=k=>{var v=on(),h=s(v);{var H=K=>{var L=sn();i(K,L)};A(h,K=>{e(O),n(()=>e(O).length===0)&&K(H)})}var Q=r(h,2);De(Q,1,()=>e(O),K=>K.id,(K,L)=>{var se=rn(),B=Te(se),X=s(B,!0);a(B);var be=r(B,2);De(be,1,()=>(e(L),n(()=>e(L).models)),ie=>ie.id,(ie,te)=>{var z=nn();let Z;var de=s(z),ve=s(de,!0);a(de),a(z),D(()=>{var M,oe;Z=Le(z,1,"opt svelte-1005b73",null,Z,{sel:((M=e(p).model)==null?void 0:M.providerID)===e(L).id&&((oe=e(p).model)==null?void 0:oe.modelID)===e(te).id}),we(z,"aria-selected",(e(p),e(L),e(te),n(()=>{var N,F;return((N=e(p).model)==null?void 0:N.providerID)===e(L).id&&((F=e(p).model)==null?void 0:F.modelID)===e(te).id}))),S(ve,(e(te),n(()=>e(te).name||e(te).id)))}),W("click",z,()=>m(e(L).id,e(te).id)),i(ie,z)}),D(()=>S(X,(e(L),n(()=>e(L).id)))),i(K,se)});var J=r(Q,2),I=s(J);He(I,{name:"close",size:11}),yt(),a(J),a(v),D(()=>we(J,"aria-selected",(e(p),n(()=>e(p).model==null)))),W("click",J,d),i(k,v)};A(q,k=>{e(g)&&k(Y)})}a(E),at(E,k=>t(_,k),()=>e(_)),D(()=>{we(j,"aria-expanded",e(g)),S(l,e(c))}),W("click",j,()=>{t(g,!e(g)),e(g)&&f()}),i(ce,E),Fe()}var cn=u('<button role="option"> </button>'),dn=u('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),un=u('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),pn=u('<button role="option"> </button>'),fn=u('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),hn=u('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),mn=u('<div class="controls svelte-dkbq22"><!> <!></div>');function _n(ce,P){ze(P,!1);const c=o(),g=o(),_=o(),O=o();let p=qe(P,"sessionId",8),f=o({}),m=o(null);async function d(){const v=p();try{const h=await Ce.controls(v);if(v!==p())return;t(f,h)}catch{v===p()&&t(f,{})}}async function w(v){e(f).mode&&It(f,e(f).mode={...e(f).mode,current:v}),t(m,null);try{await Ce.setMode(p(),v)}catch{}await d()}async function $(v){e(f).model&&It(f,e(f).model={...e(f).model,current:v}),t(m,null);try{await Ce.setModel(p(),v)}catch{}await d()}function E(v){t(m,e(m)===v?null:v)}let j=o();function U(v){v.key==="Escape"&&e(m)&&t(m,null)}function G(v){e(m)&&e(j)&&!e(j).contains(v.target)&&t(m,null)}y(()=>V(p()),()=>{p()&&d()}),y(()=>e(f),()=>{var v;t(c,((v=e(f).mode)==null?void 0:v.options)??[])}),y(()=>e(f),()=>{var v;t(g,((v=e(f).model)==null?void 0:v.options)??[])}),y(()=>e(f),()=>{var v,h,H;t(_,((h=(v=e(f).mode)==null?void 0:v.options.find(Q=>{var J;return Q.id===((J=e(f).mode)==null?void 0:J.current)}))==null?void 0:h.name)??((H=e(f).mode)==null?void 0:H.current)??"mode")}),y(()=>e(f),()=>{var v,h,H;t(O,((h=(v=e(f).model)==null?void 0:v.options.find(Q=>{var J;return Q.id===((J=e(f).model)==null?void 0:J.current)}))==null?void 0:h.name)??((H=e(f).model)==null?void 0:H.current)??"model")}),Ue(),Re();var l=mn();W("keydown",bt,U),W("click",bt,G);var C=s(l);{var q=v=>{var h=un(),H=s(h),Q=s(H);He(Q,{name:"bolt",size:11});var J=r(Q,2),I=s(J,!0);a(J);var K=r(J,2);He(K,{name:"caret-down",size:9}),a(H);var L=r(H,2);{var se=B=>{var X=dn(),be=r(s(X),2);De(be,1,()=>e(c),xt,(ie,te)=>{var z=cn();let Z;var de=s(z,!0);a(z),D(()=>{var ve;Z=Le(z,1,"opt svelte-dkbq22",null,Z,{sel:e(te).id===((ve=e(f).mode)==null?void 0:ve.current)}),we(z,"aria-selected",(e(te),e(f),n(()=>{var M;return e(te).id===((M=e(f).mode)==null?void 0:M.current)}))),S(de,(e(te),n(()=>e(te).name)))}),W("click",z,()=>w(e(te).id)),i(ie,z)}),a(X),i(B,X)};A(L,B=>{e(m)==="mode"&&B(se)})}a(h),D(()=>{we(H,"aria-expanded",e(m)==="mode"),S(I,e(_))}),W("click",H,()=>E("mode")),i(v,h)};A(C,v=>{e(c),n(()=>e(c).length>0)&&v(q)})}var Y=r(C,2);{var k=v=>{var h=hn(),H=s(h),Q=s(H);He(Q,{name:"cpu",size:11});var J=r(Q,2),I=s(J,!0);a(J);var K=r(J,2);He(K,{name:"caret-down",size:9}),a(H);var L=r(H,2);{var se=B=>{var X=fn(),be=r(s(X),2);De(be,1,()=>e(g),xt,(ie,te)=>{var z=pn();let Z;var de=s(z,!0);a(z),D(()=>{var ve;Z=Le(z,1,"opt svelte-dkbq22",null,Z,{sel:e(te).id===((ve=e(f).model)==null?void 0:ve.current)}),we(z,"aria-selected",(e(te),e(f),n(()=>{var M;return e(te).id===((M=e(f).model)==null?void 0:M.current)}))),S(de,(e(te),n(()=>e(te).name)))}),W("click",z,()=>$(e(te).id)),i(ie,z)}),a(X),i(B,X)};A(L,B=>{e(m)==="model"&&B(se)})}a(h),D(()=>{we(H,"aria-expanded",e(m)==="model"),S(I,e(O))}),W("click",H,()=>E("model")),i(v,h)};A(Y,v=>{e(g),n(()=>e(g).length>0)&&v(k)})}a(l),at(l,v=>t(j,v),()=>e(j)),i(ce,l),Fe()}var gn=u('<span class="seg svelte-4bdpxt"></span>'),bn=u('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),xn=u('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),kn=u('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),wn=u('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),yn=u('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),$n=u('<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>'),qn=u('<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 In(ce,P){ze(P,!1);const c=()=>Pe(Pt,"$feeds",g),[g,_]=Mt(),O=o(),p=o(),f=o(),m=o(),d=o(),w=o(),$=o(),E=o(),j=o(),U=o(),G=o(),l=o(),C=o(),q=o(),Y=o(),k=o();let v=qe(P,"sessionId",8),h=o({}),H=o(!1),Q=o(),J,I=o(),K=o(-1),L=o();async function se(R){try{t(h,await Ce.context(R))}catch{}}jt(()=>{clearTimeout(e(L)),clearTimeout(J)});const B=10,X=2*Math.PI*B;function be(R){return R>=1e6?(R/1e6).toFixed(1)+"M":R>=1e3?(R/1e3).toFixed(1)+"k":String(R)}function ie(R){return R==null?"—":`$${R.toFixed(3)}`}function te(){clearTimeout(J),t(H,!0)}function z(){clearTimeout(J),J=setTimeout(()=>t(H,!1),180)}function Z(R){R.key==="Escape"&&t(H,!1)}function de(R){e(H)&&e(Q)&&!e(Q).contains(R.target)&&t(H,!1)}y(()=>(V(v()),e(I)),()=>{v()!==e(I)&&(t(I,v()),se(v()))}),y(()=>(c(),V(v())),()=>{var R;t(O,((R=c()[v()])==null?void 0:R.lastSeq)??0)}),y(()=>(e(O),e(K),e(L),V(v())),()=>{e(O)!==e(K)&&(t(K,e(O)),clearTimeout(e(L)),t(L,setTimeout(()=>void se(v()),1e3)))}),y(()=>e(h),()=>{var R,le;t(p,typeof((le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.input)=="number"?e(h).tokens.input:0)}),y(()=>e(h),()=>{var R,le;t(f,typeof((le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.output)=="number"?e(h).tokens.output:0)}),y(()=>(e(h),e(p),e(f)),()=>{var R,le;t(m,typeof((le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.used)=="number"?e(h).tokens.used:e(p)+e(f))}),y(()=>e(h),()=>{var R,le;t(d,typeof((le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.max)=="number"?e(h).tokens.max:void 0)}),y(()=>(e(m),e(d)),()=>{t(w,e(m)>0&&e(d)?Math.min(100,e(m)/e(d)*100):0)}),y(()=>e(w),()=>{t($,e(w)>=90?"var(--err)":e(w)>=70?"var(--warn)":"var(--ok)")}),y(()=>e(h),()=>{var R;t(E,(R=e(h))!=null&&R.model?String(e(h).model).split("/").pop():void 0)}),y(()=>e(h),()=>{var R;t(j,typeof((R=e(h))==null?void 0:R.cost)=="number"?e(h).cost:void 0)}),y(()=>e(h),()=>{var R,le,re;t(U,typeof((re=(le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.cache)==null?void 0:re.read)=="number"?e(h).tokens.cache.read:0)}),y(()=>e(h),()=>{var R,le,re;t(G,typeof((re=(le=(R=e(h))==null?void 0:R.tokens)==null?void 0:le.cache)==null?void 0:re.write)=="number"?e(h).tokens.cache.write:0)}),y(()=>(e(p),e(U)),()=>{t(l,e(p)+e(U)>0?Math.round(e(U)/(e(p)+e(U))*100):void 0)}),y(()=>(c(),V(v())),()=>{t(C,c()[v()])}),y(()=>e(C),()=>{t(q,sa(e(C)).filter(R=>R.kind==="user"||R.kind==="assistant").length)}),y(()=>(e(U),e(G),e(p),e(f)),()=>{t(Y,[{key:"缓存读",v:e(U),c:"var(--ok)"},{key:"缓存写",v:e(G),c:"var(--info)"},{key:"输入",v:e(p),c:"var(--text-3)"},{key:"输出",v:e(f),c:"var(--hl-purple)"}].filter(R=>R.v>0))}),y(()=>e(Y),()=>{t(k,e(Y).reduce((R,le)=>R+le.v,0))}),Ue(),Re();var ve=qn();W("keydown",bt,Z),W("click",bt,de);var M=s(ve),oe=s(M),N=s(oe);we(N,"r",B);var F=r(N);we(F,"r",B),a(oe);var ne=r(oe,2),ge=s(ne,!0);yt(),a(ne),a(M);var ke=r(M,2);{var ue=R=>{var le=$n(),re=s(le),_e=r(s(re),2),Ne=s(_e);a(_e),a(re);var Ze=r(re,2);De(Ze,5,()=>e(Y),xt,(fe,b)=>{var pe=gn();D(()=>Rt(pe,(e(b),e(k),n(()=>`width:${e(b).v/(e(k)||1)*100}%; background:${e(b).c}`)))),i(fe,pe)}),a(Ze);var Ge=r(Ze,2);De(Ge,5,()=>e(Y),xt,(fe,b)=>{var pe=bn(),Ie=s(pe),lt=r(Ie);a(pe),D(ht=>{Rt(Ie,(e(b),n(()=>`background:${e(b).c}`))),S(lt,`${e(b),n(()=>e(b).key)??""} ${ht??""}`)},[()=>(e(b),n(()=>be(e(b).v)))]),i(fe,pe)}),a(Ge);var Ke=r(Ge,2),Me=s(Ke);{var Ae=fe=>{var b=xn(),pe=r(s(b)),Ie=s(pe);a(pe),a(b),D(()=>S(Ie,`${e(l)??""}%`)),i(fe,b)};A(Me,fe=>{e(l)!=null&&fe(Ae)})}var Be=r(Me,2);{var Je=fe=>{var b=kn(),pe=r(s(b)),Ie=s(pe,!0);a(pe),a(b),D(()=>S(Ie,e(q))),i(fe,b)};A(Be,fe=>{e(q)>0&&fe(Je)})}var T=r(Be,2);{var ee=fe=>{var b=wn(),pe=r(s(b)),Ie=s(pe,!0);a(pe),a(b),D(()=>S(Ie,e(E))),i(fe,b)};A(T,fe=>{e(E)&&fe(ee)})}var me=r(T,2);{var Se=fe=>{var b=yn(),pe=r(s(b)),Ie=s(pe,!0);a(pe),a(b),D(lt=>S(Ie,lt),[()=>(e(j),n(()=>ie(e(j))))]),i(fe,b)};A(me,fe=>{e(j)!=null&&fe(Se)})}a(Ke),a(le),D((fe,b)=>S(Ne,`${fe??""} / ${b??""}`),[()=>(e(m),n(()=>be(e(m)))),()=>(e(d),n(()=>be(e(d))))]),i(R,le)};A(ke,R=>{e(H)&&e(d)&&R(ue)})}a(ve),at(ve,R=>t(Q,R),()=>e(Q)),D((R,le,re)=>{we(M,"aria-label",R),we(M,"aria-expanded",e(H)),we(F,"stroke",e($)),we(F,"stroke-dasharray",le),S(ge,re)},[()=>(e(w),n(()=>`上下文占用 ${e(w).toFixed(0)}%`)),()=>(e(w),n(()=>`${Math.max(X*e(w)/100,e(w)>0?1.5:0)} ${X}`)),()=>(e(w),n(()=>e(w).toFixed(0)))]),W("click",M,()=>t(H,!e(H))),W("mouseenter",ve,te),W("mouseleave",ve,z),i(ce,ve),Fe(),_()}var Cn=u('<div class="error svelte-60fagq" role="alert"> </div>'),Sn=u('<button role="option"> </button>'),jn=u('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),Mn=u('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),En=u('<div class="thumbnails svelte-60fagq"></div>'),Tn=u('<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),Dn=u("<!> <!>",1),An=Ca('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"></path></svg>'),Bn=u('<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 On(ce,P){ze(P,!1);const c=()=>Pe(Lt,"$composerDraft",p),g=()=>Pe(Nt,"$can",p),_=()=>Pe(Da,"$connection",p),O=()=>Pe(_a,"$backendName",p),[p,f]=Mt(),m=o();let d=qe(P,"sessionId",8),w=o(""),$=o(),E=o(!1),j=o(""),U=o(!1),G=o(),l=o([]),C=o([]),q=o(0),Y=0,k;function v(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function h(T){const ee=new FileReader;ee.onload=()=>{var Ie;const me=ee.result,Se=me.indexOf(","),fe=me.slice(0,Se),b=me.slice(Se+1),pe=((Ie=fe.match(/data:(.*?);/))==null?void 0:Ie[1])??T.type;t(l,[...e(l),{data:b,mimeType:pe,preview:me}])},ee.readAsDataURL(T)}function H(T){const ee=T.target;if(ee.files){for(const me of ee.files)h(me);ee.value=""}}function Q(T){if(!g()("imageInput")||!T.clipboardData)return;const ee=[...T.clipboardData.items].filter(me=>me.type.startsWith("image/"));if(ee.length){T.preventDefault();for(const me of ee){const Se=me.getAsFile();Se&&h(Se)}}}function J(T){t(l,e(l).filter((ee,me)=>me!==T))}function I(){if(!e($))return null;const T=e($).selectionStart,me=e(w).slice(0,T).match(/(^|[\s])@([^\s]*)$/);return me?{token:me[2],start:T-me[2].length-1}:null}function K(){const T=I();if(!T){t(C,[]),clearTimeout(k);return}Y=T.start,t(q,0),clearTimeout(k);const ee=T.token;k=setTimeout(async()=>{try{t(C,await Ce.files(d(),ee))}catch{t(C,[])}},150)}function L(T){const ee=e($).selectionStart,me=e(w).slice(0,Y),Se=e(w).slice(ee),fe=`@${T} `;t(w,me+fe+Se),t(C,[]),Ot().then(()=>{const b=me.length+fe.length;It($,e($).selectionStart=It($,e($).selectionEnd=b)),e($).focus(),X()})}async function se(){var fe;const T=e(w).trim();if(!T&&e(l).length===0||e(E))return;if(_()!=="connected"){t(j,"Disconnected — reconnecting…");return}const ee=v(),me=e(l).map(({data:b,mimeType:pe})=>({data:b,mimeType:pe}));t(E,!0),t(j,""),ga({kind:"user",sessionId:d(),text:T,ts:Date.now(),id:`user:${ee}`}),t(w,"");const Se=[...e(l)];t(l,[]),X();try{await Ce.sendMessage({sessionId:d(),text:T,clientId:ee,...me.length?{images:me}:{}})}catch(b){t(j,`Send failed: ${b.message}`),ba(`user:${ee}`),t(w,T),t(l,Se)}finally{t(E,!1),(fe=e($))==null||fe.focus()}}function B(T){if(e(C).length>0){if(T.key==="ArrowDown"){T.preventDefault(),t(q,Math.min(e(q)+1,e(C).length-1));return}if(T.key==="ArrowUp"){T.preventDefault(),t(q,Math.max(e(q)-1,0));return}if(T.key==="Enter"||T.key==="Tab"){T.preventDefault(),L(e(C)[e(q)]);return}if(T.key==="Escape"){T.preventDefault(),t(C,[]);return}}T.key!=="Enter"||T.shiftKey||T.isComposing||T.keyCode===229||(T.preventDefault(),se())}function X(){e($)&&(It($,e($).style.height="auto"),It($,e($).style.height=Math.min(e($).scrollHeight,140)+"px"))}jt(()=>clearTimeout(k)),y(()=>(c(),e($)),()=>{const T=c();T&&(t(w,T.text),Lt.set(void 0),Ot().then(()=>{var ee;return(ee=e($))==null?void 0:ee.focus()}),X())}),y(()=>e(w),()=>{oa.set(!e(w).trim())}),y(()=>e(w),()=>{t(m,e(w).trim().length>0)}),Ue(),Re();var be=Bn(),ie=s(be),te=s(ie);{var z=T=>{var ee=Cn(),me=s(ee,!0);a(ee),D(()=>S(me,e(j))),i(T,ee)};A(te,T=>{e(j)&&T(z)})}var Z=r(te,2);let de;var ve=s(Z);{var M=T=>{var ee=jn();De(ee,5,()=>e(C),xt,(me,Se,fe)=>{var b=Sn();let pe;var Ie=s(b,!0);a(b),D(()=>{pe=Le(b,1,"mention-row svelte-60fagq",null,pe,{active:fe===e(q)}),we(b,"aria-selected",fe===e(q)),S(Ie,e(Se))}),W("mousedown",b,Ba(()=>L(e(Se)))),i(me,b)}),a(ee),i(T,ee)};A(ve,T=>{e(C),n(()=>e(C).length>0)&&T(M)})}var oe=r(ve,2);{var N=T=>{var ee=En();De(ee,5,()=>e(l),xt,(me,Se,fe)=>{var b=Mn(),pe=s(b),Ie=r(pe,2);a(b),D(()=>we(pe,"src",(e(Se),n(()=>e(Se).preview)))),W("click",Ie,()=>J(fe)),i(me,b)}),a(ee),i(T,ee)};A(oe,T=>{e(l),n(()=>e(l).length>0)&&T(N)})}var F=r(oe,2);qa(F),we(F,"rows",1),at(F,T=>t($,T),()=>e($));var ne=r(F,2),ge=s(ne);{var ke=T=>{var ee=Tn(),me=Te(ee),Se=r(me,2);at(Se,fe=>t(G,fe),()=>e(G)),W("click",me,()=>e(G).click()),W("change",Se,H),i(T,ee)},ue=Ct(()=>(g(),n(()=>g()("imageInput"))));A(ge,T=>{e(ue)&&T(ke)})}var R=r(ge,2);{var le=T=>{var ee=Dn(),me=Te(ee);an(me,{});var Se=r(me,2);vn(Se,{}),i(T,ee)},re=Ct(()=>(g(),n(()=>g()("catalog"))));A(R,T=>{e(re)&&T(le)})}var _e=r(R,2);{var Ne=T=>{_n(T,{get sessionId(){return d()}})},Ze=Ct(()=>(g(),n(()=>g()("sessionControls"))));A(_e,T=>{e(Ze)&&T(Ne)})}var Ge=r(_e,2);In(Ge,{get sessionId(){return d()}});var Ke=r(Ge,2),Me=r(Ke,6),Ae=s(Me);{var Be=T=>{var ee=Ia("…");i(T,ee)},Je=T=>{var ee=An();i(T,ee)};A(Ae,T=>{e(E)?T(Be):T(Je,-1)})}a(Me),a(ne),a(Z),a(ie),a(be),D(T=>{de=Le(Z,1,"box svelte-60fagq",null,de,{focused:e(U),"has-text":e(m)}),we(F,"placeholder",_()==="connected"?`给 ${O()} 留言…`:"连接断开…"),Me.disabled=T},[()=>(e(E),e(w),e(l),_(),n(()=>e(E)||!e(w).trim()&&e(l).length===0||_()!=="connected"))]),Ta(F,()=>e(w),T=>t(w,T)),W("keydown",F,B),W("input",F,()=>{X(),K()}),W("paste",F,Q),W("focus",F,()=>t(U,!0)),W("blur",F,()=>t(U,!1)),W("click",F,K),W("click",Ke,()=>Aa.set(!0)),W("click",Me,se),i(ce,be),Fe(),f()}var Rn=u('<span class="check svelte-rgafhj">✓</span>'),zn=u('<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>'),Fn=u('<div class="empty svelte-rgafhj"> </div>'),Ln=u('<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>'),Nn=u('<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 Pn(ce,P){ze(P,!1);const c=()=>Pe(xa,"$backends",p),g=()=>Pe(Bt,"$sessionList",p),_=()=>Pe(Oa,"$activeWorkspace",p),O=()=>Pe(ea,"$workspaces",p),[p,f]=Mt(),m=o(),d=o(),w=o(),$=o(),E=o(),j=o();let U=qe(P,"activeId",8,void 0),G=o(!1),l=o(!1);function C(M){const oe=M.split(/[\s\-_:./]+/).filter(Boolean);return oe.length>=2?(oe[0][0]+oe[1][0]).toUpperCase():M.slice(0,2).toUpperCase()}function q(M){return C((M==null?void 0:M.name)||(M==null?void 0:M.id)||"OC")}function Y(M){return M==="online"||M==="connected"?"online":M==="connecting"||M==="reconnecting"?"connecting":M==="offline"?"offline":"online"}function k(){t(G,!e(G))}function v(M){t(G,!1),zt(`/${M}/`)}async function h(){var oe;if(e(l))return;const M=_()||((oe=O()[0])==null?void 0:oe.directory)||"";t(l,!0);try{await wa(e(m));const N=await Ce.createSession({directory:M});Bt.set(await Ce.sessions()),ea.set(await Ce.workspaces()),t(G,!1),zt(`/${N.id}/`)}catch(N){alert(`Create session failed: ${N.message}`)}finally{t(l,!1)}}function H(M){M.key==="Escape"&&t(G,!1)}function Q(M){const oe=Date.now()-M,N=Math.floor(oe/6e4);if(N<1)return"now";if(N<60)return`${N}m`;const F=Math.floor(N/60);return F<24?`${F}h`:`${Math.floor(F/24)}d`}function J(M){return(M.includes("_")?M.slice(M.indexOf("_")+1):M).slice(-8)}y(()=>c(),()=>{var M,oe,N;t(m,((M=c())==null?void 0:M.activeId)??((N=(oe=c())==null?void 0:oe.backends[0])==null?void 0:N.id)??"opencode")}),y(()=>(c(),e(m)),()=>{var M;t(d,(M=c())==null?void 0:M.backends.find(oe=>oe.id===e(m)))}),y(()=>e(m),()=>{t(w,ka(e(m)))}),y(()=>(g(),e(m)),()=>{t($,g().filter(M=>M.backendId===e(m)||!M.backendId&&e(m)==="opencode").sort((M,oe)=>oe.lastActiveAt-M.lastActiveAt))}),y(()=>(g(),V(U())),()=>{t(E,g().find(M=>M.id===U()))}),y(()=>e(E),()=>{var M;t(j,((M=e(E))==null?void 0:M.title)||"Untitled session")}),Ue(),Re();var I=Nn();W("keydown",bt,H);var K=s(I),L=s(K),se=s(L,!0);a(L);var B=r(L,2),X=s(B),be=s(X,!0);a(X),a(B);var ie=r(B,2),te=s(ie,!0);a(ie);var z=r(ie,2),Z=s(z);He(Z,{name:"caret-down",size:11}),a(z),a(K);var de=r(K,2);{var ve=M=>{var oe=Ln(),N=s(oe);De(N,5,()=>e($),ke=>ke.id,(ke,ue)=>{var R=zn();let le;var re=s(R),_e=r(re,2),Ne=s(_e),Ze=s(Ne,!0);a(Ne);var Ge=r(Ne,2),Ke=s(Ge);a(Ge),a(_e);var Me=r(_e,2);{var Ae=Be=>{var Je=Rn();i(Be,Je)};A(Me,Be=>{e(ue),V(U()),n(()=>e(ue).id===U())&&Be(Ae)})}a(R),D((Be,Je)=>{le=Le(R,1,"row svelte-rgafhj",null,le,{active:e(ue).id===U()}),Le(re,1,`dot ${e(ue),V(U()),n(()=>e(ue).id===U()?"active":"")??""}`,"svelte-rgafhj"),S(Ze,(e(ue),n(()=>e(ue).title||"Untitled session"))),S(Ke,`${Be??""} · ${Je??""}`)},[()=>(e(ue),n(()=>J(e(ue).id))),()=>(e(ue),n(()=>Q(e(ue).lastActiveAt)))]),W("click",R,()=>v(e(ue).id)),i(ke,R)},ke=>{var ue=Fn(),R=s(ue);a(ue),D(()=>S(R,`No sessions on ${e(d),n(()=>{var le,re;return((le=e(d))==null?void 0:le.name)??((re=e(d))==null?void 0:re.id)??"this agent"})??""}.`)),i(ke,ue)}),a(N);var F=r(N,2),ne=s(F),ge=s(ne);a(ne),a(F),a(oe),D(()=>{ne.disabled=e(l),S(ge,`+ New session on ${e(d),n(()=>{var ke,ue;return((ke=e(d))==null?void 0:ke.name)??((ue=e(d))==null?void 0:ue.id)??"agent"})??""}`)}),W("click",ne,h),i(M,oe)};A(de,M=>{e(G)&&M(ve)})}a(I),D((M,oe,N)=>{we(K,"aria-expanded",e(G)),Rt(L,`background:${V(Xt),e(w),n(()=>Xt[e(w)])??""}; color:${V(Yt),e(w),n(()=>Yt[e(w)])??""}; border-color:${V(Zt),e(w),n(()=>Zt[e(w)])??""}`),S(se,M),Le(B,1,`status-dot ${oe??""}`,"svelte-rgafhj"),S(be,N),S(te,e(j))},[()=>(e(d),n(()=>q(e(d)))),()=>(e(d),n(()=>{var M;return Y((M=e(d))==null?void 0:M.status)})),()=>(e(d),n(()=>{var M;return Y((M=e(d))==null?void 0:M.status)}))]),W("click",K,k),i(ce,I),Fe(),f()}var Wn=u('<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>'),Hn=u('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),Kn=u('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Un=u('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),Gn=u('<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>'),Jn=u('<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>'),Vn=u('<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),Qn=u('<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>'),Xn=u('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Yn=u('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Zn=u('<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),er=u('<span class="sub-count mono svelte-w3h0m4"> </span>'),tr=u('<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>'),ar=u('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),sr=u('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),nr=u('<span class="sub-count mono svelte-w3h0m4"> </span>'),rr=u('<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>'),or=u('<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),lr=u('<!> <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),ir=u('<span class="badge mono svelte-w3h0m4"> </span>'),vr=u('<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>'),cr=u('<span class="badge mono svelte-w3h0m4"> </span>'),dr=u('<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>'),ur=u("<!> <!>",1);function pr(ce,P){ze(P,!1);const c=()=>Pe(Pt,"$feeds",O),g=()=>Pe(Bt,"$sessionList",O),_=()=>Pe(Nt,"$can",O),[O,p]=Mt(),f=o(),m=o(),d=o(),w=o(),$=o(),E=o(),j=o(),U=o(),G=o(),l=o(),C=o();let q=qe(P,"sessionId",8),Y=qe(P,"onJump",8,()=>{});const k="ocrc.planHud.v3",v=5,h=16,H=2*Math.PI*h;let Q=o(!1);try{t(Q,window.matchMedia("(min-width: 821px)").matches)}catch{}const J=e(Q)?"ocrc.planHud.dt3":k;function I(){if(typeof localStorage>"u")return{};try{const b=JSON.parse(localStorage.getItem(J)??"{}")??{};return{dismissed:b.dismissed,expanded:b.expanded}}catch{return{}}}let K=o(I()),L=o(e(K).expanded??e(Q));function se(b){if(t(K,{...e(K),...b}),!(typeof localStorage>"u"))try{localStorage.setItem(J,JSON.stringify(e(K)))}catch{}}let B=o({total:0,done:0,items:[]}),X=o();async function be(b){try{const pe=await Ce.todo(b);if(b!==q())return;t(X,b),t(B,Ra(pe))}catch{}}let ie=o(),te=o(0),z=o(-1),Z=o();jt(()=>clearTimeout(e(Z)));let de=o([]),ve=o(),M=!1;async function oe(b){if(!M){M=!0;try{const pe=await Ce.subagents(b);if(b!==q())return;t(de,[...pe.subagents??[]].sort((Ie,lt)=>Number(lt.busy??!1)-Number(Ie.busy??!1))),t(ve,b)}catch{t(de,[])}finally{M=!1}}}const N=b=>`ocrc.subparent.${b}`;let F=o();function ne(b){try{t(F,sessionStorage.getItem(N(b))??void 0)}catch{t(F,void 0)}}ne(q());function ge(b){try{sessionStorage.setItem(N(b.id),q())}catch{}t(_e,!1),Y()(b.id)}function ke(){const b=e(F);t(F,void 0),b&&Y()(b)}let ue=o(),R=o(!1),le=o(!1),re=o(!1),_e=o(!1);function Ne(){t(L,!e(L)),se({expanded:e(L)})}function Ze(){se({dismissed:[...e(K).dismissed??[],q()].slice(-20)}),t(_e,!1)}function Ge(){se({dismissed:(e(K).dismissed??[]).filter(b=>b!==q())}),t(L,!0),se({expanded:e(L)})}function Ke(){t(_e,!1),Fa("tasks"),la.set(!0)}let Me=o(),Ae=o(),Be=o(),Je=o();function T(b){var Ie,lt,ht,$t;const pe=b.target;if(e(_e)){if((Ie=e(Ae))!=null&&Ie.contains(pe)||(lt=e(Me))!=null&&lt.contains(pe))return;t(_e,!1)}e(L)&&((ht=e(Be))!=null&&ht.contains(pe)||($t=e(Je))!=null&&$t.contains(pe)||(t(L,!1),se({expanded:!1})))}y(()=>(V(q()),e(ie)),()=>{q()!==e(ie)&&(t(ie,q()),be(q()))}),y(()=>(c(),V(q())),()=>{var b;t(f,((b=c()[q()])==null?void 0:b.lastSeq)??0)}),y(()=>(e(f),e(z),e(Z),e(te)),()=>{e(f)!==e(z)&&(t(z,e(f)),clearTimeout(e(Z)),t(Z,setTimeout(()=>t(te,e(te)+1),1e3)))}),y(()=>(e(te),V(q())),()=>{e(te)&&(be(q()),oe(q()))}),y(()=>(g(),V(q())),()=>{t(m,g().find(b=>b.id===q()))}),y(()=>e(m),()=>{var b;t(d,((b=e(m))==null?void 0:b.title)??"")}),y(()=>e(B),()=>{t(w,e(B).items.filter(b=>b.status==="done"))}),y(()=>e(B),()=>{t($,e(B).items.filter(b=>b.status==="running"))}),y(()=>e(B),()=>{t(E,e(B).items.filter(b=>b.status==="pending"))}),y(()=>e(E),()=>{t(j,Math.max(0,e(E).length-v))}),y(()=>e(B),()=>{t(U,e(B).total?e(B).done/e(B).total:0)}),y(()=>(e(K),V(q())),()=>{var b;t(G,((b=e(K).dismissed)==null?void 0:b.includes(q()))??!1)}),y(()=>e(de),()=>{t(l,e(de).filter(b=>b.busy))}),y(()=>e(de),()=>{t(C,e(de).filter(b=>!b.busy))}),y(()=>(e(L),V(q()),e(ve)),()=>{e(L)&&q()&&e(ve)!==q()&&oe(q())}),y(()=>V(q()),()=>{q()&&ne(q())}),y(()=>(V(q()),e(ue)),()=>{q()!==e(ue)&&(t(ue,q()),t(R,!1),t(le,!1),t(re,!1),t(_e,!1))}),Ue(),Re();var ee=ot();W("pointerdown",bt,T);var me=Te(ee);{var Se=b=>{var pe=ur(),Ie=Te(pe);{var lt=Ve=>{var Ee=Wn(),et=r(s(Ee),2),it=s(et,!0),st=r(it,2,!0);a(et),a(Ee),D(()=>{S(it,(e(B),n(()=>e(B).done))),S(st,(e(B),n(()=>e(B).total)))}),W("click",Ee,Ge),i(Ve,Ee)},ht=Ve=>{var Ee=lr(),et=Te(Ee);{var it=he=>{var $e=Hn();i(he,$e)};A(et,he=>{e(Q)||he(it)})}var st=r(et,2),ut=s(st),nt=r(s(ut),2),vt=s(nt,!0);a(nt);var pt=r(nt,2);at(pt,he=>t(Me,he),()=>e(Me));var qt=r(pt,2);a(ut);var x=r(ut,2);{var ae=he=>{var $e=Un(),xe=s($e),Oe=r(xe,2);{var We=Qe=>{var dt=Kn();W("click",dt,Ze),i(Qe,dt)};A(Oe,Qe=>{e(Q)||Qe(We)})}a($e),at($e,Qe=>t(Ae,Qe),()=>e(Ae)),W("click",xe,Ke),i(he,$e)};A(x,he=>{e(_e)&&he(ae)})}var ye=r(x,2),ft=s(ye);{var St=he=>{var $e=Gn(),xe=r(s($e),2),Oe=s(xe);a(xe),a($e),D(We=>S(Oe,`返回父会话 …${We??""}`),[()=>(e(F),n(()=>e(F).slice(-8)))]),W("click",$e,ke),i(he,$e)};A(ft,he=>{e(F)&&he(St)})}var ct=r(ft,2),Et=s(ct);a(ct);var Ht=r(ct,2);{var va=he=>{var $e=Vn(),xe=Te($e),Oe=s(xe);let We;var Qe=r(Oe,2),dt=s(Qe);a(Qe),a(xe);var Xe=r(xe,2);{var mt=tt=>{var _t=ot(),wt=Te(_t);De(wt,1,()=>e(w),rt=>rt.text,(rt,je)=>{var Ye=Jn(),gt=r(s(Ye)),Tt=s(gt,!0);a(gt),a(Ye),D(()=>S(Tt,(e(je),n(()=>e(je).text)))),i(rt,Ye)}),i(tt,_t)};A(Xe,tt=>{e(R)&&tt(mt)})}D(()=>{we(xe,"aria-expanded",e(R)),We=Le(Oe,0,"caret svelte-w3h0m4",null,We,{open:e(R)}),S(dt,`已完成 ${e(w),n(()=>e(w).length)??""}`)}),W("click",xe,()=>t(R,!e(R))),i(he,$e)};A(Ht,he=>{e(w),n(()=>e(w).length)&&he(va)})}var Kt=r(Ht,2);De(Kt,1,()=>e($),he=>he.text,(he,$e)=>{var xe=Qn(),Oe=r(s(xe)),We=s(Oe,!0);a(Oe),a(xe),D(()=>S(We,(e($e),n(()=>e($e).text)))),i(he,xe)});var Ut=r(Kt,2);De(Ut,1,()=>(e(E),n(()=>e(E).slice(0,v))),he=>he.text,(he,$e)=>{var xe=Xn(),Oe=r(s(xe)),We=s(Oe,!0);a(Oe),a(xe),D(()=>S(We,(e($e),n(()=>e($e).text)))),i(he,xe)});var Gt=r(Ut,2);{var ca=he=>{var $e=Zn(),xe=Te($e),Oe=s(xe);let We;var Qe=r(Oe,2),dt=s(Qe);a(Qe),a(xe);var Xe=r(xe,2);{var mt=tt=>{var _t=ot(),wt=Te(_t);De(wt,1,()=>(e(E),n(()=>e(E).slice(v))),rt=>rt.text,(rt,je)=>{var Ye=Yn(),gt=r(s(Ye)),Tt=s(gt,!0);a(gt),a(Ye),D(()=>S(Tt,(e(je),n(()=>e(je).text)))),i(rt,Ye)}),i(tt,_t)};A(Xe,tt=>{e(le)&&tt(mt)})}D(()=>{we(xe,"aria-expanded",e(le)),We=Le(Oe,0,"caret svelte-w3h0m4",null,We,{open:e(le)}),S(dt,`待处理 ${e(j)??""}`)}),W("click",xe,()=>t(le,!e(le))),i(he,$e)};A(Gt,he=>{e(j)>0&&he(ca)})}var Jt=r(Gt,2);{var da=he=>{var $e=ar(),xe=Te($e),Oe=s(xe),We=s(Oe);a(Oe),a(xe);var Qe=r(xe,2);De(Qe,1,()=>e(l),dt=>dt.id,(dt,Xe)=>{var mt=tr(),tt=r(s(mt),2);{var _t=je=>{var Ye=er(),gt=s(Ye);a(Ye),D(()=>S(gt,`${e(Xe),n(()=>e(Xe).done)??""}/${e(Xe),n(()=>e(Xe).total)??""}`)),i(je,Ye)};A(tt,je=>{e(Xe),n(()=>e(Xe).total>0)&&je(_t)})}var wt=r(tt,2),rt=s(wt,!0);a(wt),yt(2),a(mt),D(je=>S(rt,je),[()=>(e(Xe),n(()=>e(Xe).title||"…"+e(Xe).id.slice(-6)))]),W("click",mt,()=>ge(e(Xe))),i(dt,mt)}),D(()=>S(We,`子代理 · 运行中 ${e(l),n(()=>e(l).length)??""}`)),i(he,$e)};A(Jt,he=>{e(l),n(()=>e(l).length)&&he(da)})}var ua=r(Jt,2);{var pa=he=>{var $e=or(),xe=Te($e),Oe=s(xe);let We;var Qe=r(Oe,2),dt=s(Qe);a(Qe),a(xe);var Xe=r(xe,2);{var mt=tt=>{var _t=ot(),wt=Te(_t);De(wt,1,()=>e(C),rt=>rt.id,(rt,je)=>{var Ye=rr(),gt=s(Ye);{var Tt=kt=>{var Dt=sr();i(kt,Dt)};A(gt,kt=>{e(je),n(()=>e(je).total>0&&e(je).done>=e(je).total)&&kt(Tt)})}var Vt=r(gt,2);{var fa=kt=>{var Dt=nr(),ma=s(Dt);a(Dt),D(()=>S(ma,`${e(je),n(()=>e(je).done)??""}/${e(je),n(()=>e(je).total)??""}`)),i(kt,Dt)};A(Vt,kt=>{e(je),n(()=>e(je).total>0)&&kt(fa)})}var Qt=r(Vt,2),ha=s(Qt,!0);a(Qt),yt(2),a(Ye),D(kt=>S(ha,kt),[()=>(e(je),n(()=>e(je).title||"…"+e(je).id.slice(-6)))]),W("click",Ye,()=>ge(e(je))),i(rt,Ye)}),i(tt,_t)};A(Xe,tt=>{e(re)&&tt(mt)})}D(()=>{we(xe,"aria-expanded",e(re)),We=Le(Oe,0,"caret svelte-w3h0m4",null,We,{open:e(re)}),S(dt,`已结束 ${e(C),n(()=>e(C).length)??""}`)}),W("click",xe,()=>t(re,!e(re))),i(he,$e)};A(ua,he=>{e(C),n(()=>e(C).length)&&he(pa)})}a(ye),a(st),at(st,he=>t(Be,he),()=>e(Be)),D(he=>{S(vt,he),S(Et,`任务 ${e(B),n(()=>e(B).done)??""}/${e(B),n(()=>e(B).total)??""}`)},[()=>(e(d),V(q()),n(()=>e(d)||"…"+q().slice(-8)))]),W("click",pt,za(()=>t(_e,!e(_e)))),W("click",qt,Ne),i(Ve,Ee)};A(Ie,Ve=>{e(G)&&!e(Q)?Ve(lt):e(L)&&Ve(ht,1)})}var $t=r(Ie,2);{var At=Ve=>{var Ee=vr(),et=r(s(Ee),2),it=s(et,!0),st=r(it,2,!0);a(et);var ut=r(et,2);{var nt=vt=>{var pt=ir(),qt=s(pt,!0);a(pt),D(()=>S(qt,(e(l),n(()=>e(l).length)))),i(vt,pt)};A(ut,vt=>{e(l),n(()=>e(l).length>0)&&vt(nt)})}yt(2),a(Ee),at(Ee,vt=>t(Je,vt),()=>e(Je)),D(()=>{we(Ee,"aria-label",(e(B),n(()=>`展开计划 ${e(B).done}/${e(B).total}`))),S(it,(e(B),n(()=>e(B).done))),S(st,(e(B),n(()=>e(B).total)))}),W("click",Ee,Ne),i(Ve,Ee)},Ft=Ve=>{var Ee=dr(),et=s(Ee),it=s(et);we(it,"r",h);var st=r(it);we(st,"r",h),a(et);var ut=r(et,2),nt=s(ut,!0),vt=r(nt,2,!0);a(ut);var pt=r(ut,2);{var qt=x=>{var ae=cr(),ye=s(ae,!0);a(ae),D(()=>S(ye,(e(l),n(()=>e(l).length)))),i(x,ae)};A(pt,x=>{e(l),n(()=>e(l).length>0)&&x(qt)})}a(Ee),at(Ee,x=>t(Je,x),()=>e(Je)),D(x=>{we(Ee,"aria-label",(e(B),e(L),n(()=>`计划 ${e(B).done}/${e(B).total} — ${e(L)?"收起":"展开"}`))),we(Ee,"aria-expanded",e(L)),we(st,"stroke-dasharray",x),S(nt,(e(B),n(()=>e(B).done))),S(vt,(e(B),n(()=>e(B).total)))},[()=>(e(U),n(()=>`${Math.max(H*e(U),H*.02)} ${H}`))]),W("click",Ee,Ne),i(Ve,Ee)};A($t,Ve=>{e(Q)&&!e(L)?Ve(At):!e(G)&&!(e(Q)&&!e(L))&&Ve(Ft,1)})}i(b,pe)},fe=Ct(()=>(e(X),V(q()),e(B),e(de),e(F),_(),n(()=>e(X)===q()&&(e(B).total>0||e(de).length>0||e(F))&&_()("todos"))));A(me,b=>{e(fe)&&b(Se)})}i(ce,ee),Fe(),p()}var fr=u('<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>'),hr=u('<span class="branch mono svelte-eho102"> </span>'),mr=u('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span> <button class="abort svelte-eho102">停止</button>',1),_r=u('<span class="idle mono svelte-eho102">空闲</span>'),gr=u('<button class="load-earlier mono svelte-eho102"> </button>'),br=u('<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>'),xr=u('<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>'),kr=u('<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>'),wr=u('<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 Mr(ce,P){ze(P,!1);const c=()=>Pe(La,"$page",m),g=()=>Pe(Pt,"$feeds",m),_=()=>Pe(Bt,"$sessionList",m),O=()=>Pe(oa,"$composerEmpty",m),p=()=>Pe(ta,"$leftPanelOpen",m),f=()=>Pe(Na,"$feedResyncing",m),[m,d]=Mt(),w=o(),$=o(),E=o(),j=o(),U=o(),G=o(),l=o(),C=o(),q=o();let Y=o(),k=o(),v=o(),h,H=o(""),Q,J,I=o(!1),K=o(0),L=o(0),se=o(),B=o(!0);function X(){e(Y)&&It(Y,e(Y).scrollTop=e(Y).scrollHeight)}function be(){e(Y)&&t(B,e(Y).scrollHeight-e(Y).scrollTop-e(Y).clientHeight<80)}const ie=80,te=50;let z=o(ie),Z=o(0),de=o(!0),ve=o(!1),M=o("");async function oe(){if(e(ve)||!e($))return;if(e(j).length>e(z)){t(z,e(z)+ie);return}if(!e(de))return;t(ve,!0);const x=e(Y),ae=x?{h:x.scrollHeight,top:x.scrollTop}:null;try{const ye=await Ce.history(e($),{limit:te,offset:e(Z)});(ye.cards??[]).length===0?t(de,!1):(ya(e($),ye.cards),t(Z,e(Z)+te),t(z,e(z)+ie),ye.hasMore===!1&&t(de,!1),ae&&x&&(await Ot(),x.scrollTop=x.scrollHeight-ae.h+ae.top))}catch(ye){console.warn("[page] loadEarlier failed",ye)}finally{t(ve,!1)}}let N=o("");function F(x){if(x<60)return`${x}s`;const ae=Math.floor(x/60),ye=x%60;return ye===0?`${ae}m`:`${ae}m ${ye}s`}function ne(){Ne()}const ge=["总结这个项目","最近有什么改动?","运行检查"];let ke=o(!1),ue=o([]),R;async function le(x,ae){if(R!==ae){R=ae;try{const ye=await Ce.suggestions(x);t(ue,ye.suggestions??[])}catch{t(ue,[])}}}let re=o(),_e=o([]);function Ne(){if(!e($))return;const x=[...e(j)].reverse().find(ye=>ye.kind==="user"),ae=x==null?void 0:x.text;ae&&Ce.sendMessage({sessionId:e($),text:ae,clientId:`web_${Date.now()}`})}async function Ze(){if(!(!e($)||e(I))){t(I,!0);try{await Ce.abort(e($))}catch{}finally{t(I,!1)}}}Wt(()=>{Q=new ResizeObserver(()=>{e(k)&&(document.documentElement.style.setProperty("--composer-h",`${e(k).offsetHeight}px`),e(B)&&X())}),e(k)&&Q.observe(e(k)),h=new IntersectionObserver(ye=>{e(B)&&ye.some(ft=>!ft.isIntersecting)&&requestAnimationFrame(X)},{root:e(Y),threshold:0}),e(v)&&h.observe(e(v));const x=window.visualViewport,ae=()=>{e(B)&&requestAnimationFrame(X)};x==null||x.addEventListener("resize",ae),J=()=>x==null?void 0:x.removeEventListener("resize",ae)}),jt(()=>{Q==null||Q.disconnect(),h==null||h.disconnect(),J==null||J(),e(se)&&clearInterval(e(se))}),y(()=>c(),()=>{t($,c().params.sessionId??"")}),y(()=>(e($),e(M)),()=>{e($)&&e($)!==e(M)&&(t(M,e($)),t(z,ie),t(Z,0),t(de,!0),t(ve,!1))}),y(()=>(g(),e($)),()=>{t(E,g()[e($)])}),y(()=>e(E),()=>{t(j,sa(e(E)))}),y(()=>(e(z),e(j)),()=>{t(w,e(z)>=e(j).length?e(j):e(j).slice(-e(z)))}),y(()=>(_(),e($)),()=>{t(U,_().find(x=>x.id===e($)))}),y(()=>e(U),()=>{var x;t(G,(x=e(U))!=null&&x.directory&&e(U).directory.replace(/\/+$/,"").split("/").pop()||"")}),y(()=>e(E),()=>{t(l,(()=>{if(!e(E)||e(E).order.length===0)return!1;const x=e(E).byId[e(E).order[e(E).order.length-1]];return(x==null?void 0:x.kind)==="thinking"||(x==null?void 0:x.kind)==="streaming"||(x==null?void 0:x.kind)==="think-stream"})())}),y(()=>(e(l),e(N),e($),e(K),e(se)),()=>{e(l)?(e(N)!==e($)&&(t(N,e($)),t(K,0)),!e(K)&&typeof window<"u"&&(t(K,Date.now()),t(L,0),e(se)&&clearInterval(e(se)),t(se,setInterval(()=>{t(L,Math.floor((Date.now()-e(K))/1e3))},1e3)))):(t(K,0),t(L,0),t(N,""),e(se)&&(clearInterval(e(se)),t(se,void 0)))}),y(()=>e(j),()=>{t(C,e(j).length?e(j)[e(j).length-1]:null)}),y(()=>(e(l),e(C),e($)),()=>{var x;!e(l)&&((x=e(C))==null?void 0:x.kind)==="assistant"&&e($)&&le(e($),e(C).id)}),y(()=>(e($),e(re)),()=>{e($)!==e(re)&&(t(re,e($)),t(ke,!1))}),y(()=>(e(l),e(ke),O(),e(ue),e(j)),()=>{e(l)||e(ke)||!O()?t(_e,[]):e(ue).length>0?t(_e,e(ue)):e(j).length===0?t(_e,ge):t(_e,[])}),y(()=>(e($),e(E),e(j)),()=>{var x;t(q,`${e($)}:${((x=e(E))==null?void 0:x.lastSeq)??0}:${e(j).length}`)}),y(()=>(e(q),e(H),e(B)),()=>{e(q)!==e(H)&&(t(H,e(q)),Ot().then(()=>{e(B)&&X()}))}),Ue(),Re();var Ge=wr(),Ke=Te(Ge),Me=s(Ke),Ae=s(Me),Be=s(Ae),Je=r(Be,2);{var T=x=>{var ae=fr();W("click",ae,()=>ta.set(!0)),i(x,ae)};A(Je,x=>{p()||x(T)})}var ee=r(Je,2);Pn(ee,{get activeId(){return e($)}});var me=r(ee,2);{var Se=x=>{var ae=hr(),ye=s(ae,!0);a(ae),D(()=>S(ye,e(G))),i(x,ae)};A(me,x=>{e(G)&&x(Se)})}a(Ae);var fe=r(Ae,2),b=s(fe);{var pe=x=>{var ae=mr(),ye=Te(ae),ft=r(s(ye));a(ye);var St=r(ye,2);D(ct=>{S(ft,` 运行中 ${ct??""}`),St.disabled=e(I)},[()=>(e(L),n(()=>F(e(L))))]),W("click",St,Ze),i(x,ae)},Ie=x=>{var ae=_r();i(x,ae)};A(b,x=>{e(l)?x(pe):x(Ie,-1)})}var lt=r(b,2);a(fe),a(Me);var ht=r(Me,2);let $t;var At=s(ht);{var Ft=x=>{var ae=gr(),ye=s(ae,!0);a(ae),D(()=>{ae.disabled=e(ve),S(ye,e(ve)?"加载中…":"加载更早消息")}),W("click",ae,oe),i(x,ae)};A(At,x=>{e(j),e(z),e(de),n(()=>e(j).length>0&&(e(j).length>e(z)||e(de)))&&x(Ft)})}var Ve=r(At,2);De(Ve,1,()=>e(w),x=>x.id,(x,ae)=>{{let ye=Sa(()=>(e(ae),e(C),e(l),n(()=>{var ft;return e(ae).id===((ft=e(C))==null?void 0:ft.id)&&e(ae).kind==="assistant"&&!e(l)?ne:void 0})));Xs(x,{get card(){return e(ae)},onRetry:Ne,get onRegenerate(){return e(ye)}})}});var Ee=r(Ve,2);at(Ee,x=>t(v,x),()=>e(v));var et=r(Ee,2);{var it=x=>{var ae=ot(),ye=Te(ae);{var ft=ct=>{var Et=br();i(ct,Et)},St=ct=>{var Et=xr();i(ct,Et)};A(ye,ct=>{e(E)?ct(St,-1):ct(ft)})}i(x,ae)};A(et,x=>{e(j),n(()=>e(j).length===0)&&x(it)})}a(ht),a(Ke),at(Ke,x=>t(Y,x),()=>e(Y));var st=r(Ke,2);{var ut=x=>{var ae=kr();W("click",ae,X),i(x,ae)};A(st,x=>{e(B),e(j),n(()=>!e(B)&&e(j).length>0)&&x(ut)})}var nt=r(st,2),vt=s(nt);Ha(vt,{get suggestions(){return e(_e)},onPick:x=>Lt.set({text:x,nonce:Date.now()}),onDismiss:()=>{t(ke,!0),t(_e,[])}});var pt=r(vt,2);On(pt,{get sessionId(){return e($)}}),a(nt),at(nt,x=>t(k,x),()=>e(k));var qt=r(nt,2);pr(qt,{get sessionId(){return e($)},onJump:x=>zt("/"+x)}),D(()=>$t=Le(ht,1,"stream conversation-emerald svelte-eho102",null,$t,{suppressed:f()})),W("click",Be,()=>zt("/")),W("click",lt,()=>la.update(x=>!x)),W("scroll",Ke,be),i(ce,Ge),Fe(),d()}export{Mr as component};