@bd7pil/ocrc 0.24.0 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/web/dist/_app/immutable/assets/3.BAwvOE6a.css +1 -0
- package/web/dist/_app/immutable/chunks/{C_vwsPv1.js → BAYzPyWK.js} +1 -1
- package/web/dist/_app/immutable/chunks/C_mXJaPY.js +1 -0
- package/web/dist/_app/immutable/chunks/t4ji6lDi.js +1 -0
- package/web/dist/_app/immutable/entry/{app.CJigVzpL.js → app.ZT54EfzQ.js} +2 -2
- package/web/dist/_app/immutable/entry/start.D3bo4q0Y.js +1 -0
- package/web/dist/_app/immutable/nodes/{0.meb8zqTp.js → 0.DNhRQRVG.js} +3 -3
- package/web/dist/_app/immutable/nodes/{1.BWB0JgqJ.js → 1.TFFU0HMI.js} +1 -1
- package/web/dist/_app/immutable/nodes/{2.CzqaLv_7.js → 2.CyFy7Ys8.js} +1 -1
- package/web/dist/_app/immutable/nodes/3.EPvnBrgP.js +2 -0
- package/web/dist/_app/version.json +1 -1
- package/web/dist/index.html +9 -9
- package/web/dist/service-worker.js +1 -1
- package/web/dist/_app/immutable/assets/3.EPSDx0kZ.css +0 -1
- package/web/dist/_app/immutable/chunks/CDb2pzeY.js +0 -1
- package/web/dist/_app/immutable/chunks/CtMqSQTR.js +0 -1
- package/web/dist/_app/immutable/entry/start.CZTj7arI.js +0 -1
- package/web/dist/_app/immutable/nodes/3.BNEhiQlw.js +0 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{q as Ya,r as et,z as ft,p as ut,f as Ie,j as oa,d as Za,a as St,b as rt,c as Tt,e as Ct,D as pa,A as aa,n as Xa,C as na,l as Ta,E as Vt,k as Ca,m as es,g as fa,v as ts,o as ya,F as as,h as da,u as ss,t as ns,H as rs,x as wa,G as ls,s as is}from"../chunks/CtMqSQTR.js";import{ai as os,ag as cs,a1 as Lt,b4 as r,a_ as za,aa as vs,aJ as ds,am as us,aE as tt,ap as ne,aO as s,V as de,a8 as e,aq as st,J as a,aK as t,aU as n,aw as $t,a$ as Y,aR as L,a3 as M,w as o,aB as at,au as d,a6 as f,a7 as gt,M as ot,a4 as Ke,b0 as ra,b8 as ps,ay as Pt,$ as wt,b5 as ht,Z as zt,a9 as bt,aI as Ea,av as la,Q as fs,b1 as hs,az as ha}from"../chunks/BjY4dxcB.js";import{i as F,a as ze,s as it}from"../chunks/Chcp5gAM.js";import{n as La,h as Gt,I as It,A as ye,z as qe,u as Bt,d as ia,J as Ba,G as ja,i as Xe,a as bs,w as _t,c as mt,E as Wt,B as dt,o as Rt,l as Da,t as jt,C as Pa,F as Oa,b as ka,r as Fa,M as _s,e as Jt,D as Nt,v as xa,m as Qt,x as ms,q as Aa,H as Ia,s as Ra,p as Dt,K as gs,k as Wa,y as ua,j as $a}from"../chunks/C_vwsPv1.js";import{p as Ae,b as Et}from"../chunks/vlg9iH2u.js";import{g as Yt,a as ys}from"../chunks/CDb2pzeY.js";function ws(j,v,p,C,E){var A;os&&cs();var l=(A=v.$$slots)==null?void 0:A[p],b=!1;l===!0&&(l=v.children,b=!0),l===void 0||l(j,b?()=>C:C)}function ba(j,v,p){Lt(()=>{var C=r(()=>v(j,p==null?void 0:p())||{});if(C!=null&&C.destroy)return()=>C.destroy()})}function ks(j,v,p){var C=vs(j,v);C&&C.set&&(j[v]=p,za(()=>{j[v]=null}))}function xs(j,v,p,C,E){var l=()=>{C(p[j])};p.addEventListener(v,l),E?ds(()=>{p[j]=E()}):l(),(p===document.body||p===window||p===document)&&za(()=>{p.removeEventListener(v,l)})}function As(j,v){var l;var p=(l=j.$$events)==null?void 0:l[v.type],C=us(p)?p.slice():p==null?[]:[p];for(var E of C)E.call(this,v)}const Is=!1,$s=!1,qs="always",wi=Object.freeze(Object.defineProperty({__proto__:null,prerender:$s,ssr:Is,trailingSlash:qs},Symbol.toStringTag,{value:"Module"})),qa=[2e3,4e3,8e3,16e3,3e4];function Ms(j){const v=Ya();if(!v)return j;const p=j.includes("?")?"&":"?";return`${j}${p}token=${encodeURIComponent(v)}`}function Ss(j){let v=null,p=0,C=null,E=null,l=null,b=0,A=!1,_=!1;const h=[];function S(x){var K;Gt.set(x),(K=j.onStatus)==null||K.call(j,x)}function y(){C&&(clearTimeout(C),C=null),E&&(clearTimeout(E),E=null),l&&(clearTimeout(l),l=null)}function w(){E=setTimeout(()=>{(v==null?void 0:v.readyState)===WebSocket.OPEN&&(b=performance.now(),v.send(JSON.stringify({type:"ping"})),l=setTimeout(()=>{v==null||v.close(),u()},45e3))},25e3)}function N(){if(!A){S("reconnecting");try{v=new WebSocket(Ms(j.url))}catch{u();return}v.onopen=()=>{var x;p=0,S("connected");for(const K of h.splice(0))v==null||v.send(K);_&&((x=j.onReconnect)==null||x.call(j)),_=!0,w()},v.onmessage=x=>{var K;try{const re=JSON.parse(x.data);if(re.type==="pong"){l&&(clearTimeout(l),l=null),b&&La.set(Math.round(performance.now()-b)),w();return}(K=j.onMessage)==null||K.call(j,re)}catch{}},v.onclose=()=>{y(),A||u()},v.onerror=()=>{v==null||v.close()}}}function u(){if(y(),A)return;S("reconnecting");const x=qa[Math.min(p,qa.length-1)];p+=1,C=setTimeout(()=>void N(),x)}return N(),{send(x){const K=JSON.stringify(x);(v==null?void 0:v.readyState)===WebSocket.OPEN?v.send(K):h.push(K)},close(){A=!0,y(),h.length=0,v==null||v.close(),v=null,S("offline")}}}let sa=null;function Ts(j){sa=j}function Ut(j){sa==null||sa(j)}let Ma=new Map;const Ht=new Set;let Ua,Kt,ta=!1;function _a(){if(typeof document>"u")return;const j=document.title.replace(/^(🔔 [\d]+ 新动态 — )/,"")||"ocrc";if(Ht.size===0){Kt&&(clearInterval(Kt),Kt=void 0),ta=!1,document.title=j;return}Kt||(document.title=`🔔 ${Ht.size} 新动态 — ${j}`,Kt=setInterval(()=>{ta=!ta,document.title=ta?`🔔 ${Ht.size} 新动态 — ${j}`:j},1200))}function Cs(j){Ua=j,j&&(Ht.delete(j),_a())}function zs(j){for(const v of j){const p=Ma.get(v.id);Ma.set(v.id,v.lastActiveAt),!(p===void 0||v.id===Ua)&&v.lastActiveAt>p+1500&&(Ht.add(v.id),_a())}}typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(Ht.clear(),_a())});var Es=gt('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="12" rx="2"></rect><path d="M8 20h8M12 16v4"></path></svg>'),Ls=f('<span class="dot-ring svelte-hhath1"></span>'),Bs=f('<span class="connection-latency mono svelte-hhath1"> </span>'),js=f('<button class="install svelte-hhath1">Install</button>'),Ds=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 channels-btn 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 theme-btn 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(j,v){tt(v,!1);const p=()=>ze(ja,"$themeMode",l),C=()=>ze(Gt,"$connection",l),E=()=>ze(La,"$latency",l),[l,b]=it(),A=d(),_=d();let h=Ae(v,"email",8,""),S=Ae(v,"onPalette",8),y=Ae(v,"installEvent",8,null),w=Ae(v,"onInstall",8,()=>{}),N=Ae(v,"drawerLeft",8,!1),u=Ae(v,"drawerRight",8,!1),x=Ae(v,"onToggleLeft",8,()=>{}),K=Ae(v,"onToggleRight",8,()=>{}),re=Ae(v,"newButtonAnchor",12,null);function te(R){return R==="connected"?"live":R==="reconnecting"?"reconnecting":"offline"}ne(()=>de(h()),()=>{s(A,h()||"you@local")}),ne(()=>e(A),()=>{s(_,e(A).charAt(0).toUpperCase())}),st(),et();var P=Ds(),I=a(P);let oe;var Q=a(I);It(Q,{name:"menu",size:18}),t(I);var $=n(I,4),O=n(a($),4),Z=a(O);It(Z,{name:"caret-down",size:9}),t(O),t($),Et($,R=>re(R),()=>re());var D=n($,2),X=a(D),me=a(X);It(me,{name:"search",size:14}),t(X),$t(4),t(D);var ve=n(D,4),B=n(ve,2),V=a(B);{var U=R=>{It(R,{name:"sun",size:15})},g=R=>{It(R,{name:"moon",size:15})},ae=R=>{var le=Es();o(R,le)};F(V,R=>{p()==="light"?R(U):p()==="dark"?R(g,1):R(ae,-1)})}t(B);var pe=n(B,2),Me=a(pe),je=n(a(Me),2);{var De=R=>{var le=Ls();o(R,le)};F(je,R=>{C()==="connected"&&R(De)})}t(Me);var he=n(Me,2),we=a(he,!0);t(he);var Fe=n(he,2);{var Pe=R=>{var le=Bs(),Te=a(le);t(le),Y(()=>L(Te,`${E()??""}ms`)),o(R,le)};F(Fe,R=>{C()==="connected"&&R(Pe)})}t(pe);var Ue=n(pe,2);{var ke=R=>{var le=js();M("click",le,function(...Te){var Be;(Be=w())==null||Be.apply(this,Te)}),o(R,le)};F(Ue,R=>{y()&&R(ke)})}var He=n(Ue,2);let se;var be=n(He,2),m=a(be),ce=a(m,!0);t(m);var k=n(m,2),G=a(k,!0);t(k),t(be),t(P),Y((R,le)=>{oe=ye(I,1,"iconbtn svelte-hhath1",null,oe,{active:N()}),qe(B,"title",p()==="auto"?"主题:跟随系统":p()==="light"?"主题:浅色":"主题:深色"),ye(pe,1,`connection-pill ${C()??""}`,"svelte-hhath1"),qe(pe,"title",`WebSocket: ${R??""}`),L(we,le),se=ye(He,1,"iconbtn svelte-hhath1",null,se,{active:u()}),L(ce,e(A)),L(G,e(_))},[()=>(C(),r(()=>te(C()))),()=>(C(),r(()=>te(C())))]),M("click",I,function(...R){var le;(le=x())==null||le.apply(this,R)}),M("click",$,()=>Bt.update(R=>!R)),M("click",D,function(...R){var le;(le=S())==null||le.apply(this,R)}),M("click",ve,()=>ia.set(!0)),M("click",B,function(...R){var le;(le=Ba)==null||le.apply(this,R)}),M("click",He,function(...R){var le;(le=K())==null||le.apply(this,R)}),o(j,P),at(),b()}var Os=f('<div role="status"><!></div>');function Fs(j){const v=()=>ze(Gt,"$connection",p),[p,C]=it();var E=ot(),l=Ke(E);{var b=A=>{var _=Os();let h;var S=a(_);{var y=N=>{var u=ra("Reconnecting…");o(N,u)},w=N=>{var u=ra("Offline — live updates paused");o(N,u)};F(S,N=>{v()==="reconnecting"?N(y):N(w,-1)})}t(_),Y(()=>h=ye(_,1,"banner svelte-l46k7l",null,h,{offline:v()==="offline"})),o(A,_)};F(l,A=>{v()!=="connected"&&A(b)})}o(j,E),C()}const Ha="ocrc.pinnedSessions";function Rs(){if(typeof localStorage>"u")return[];try{const j=localStorage.getItem(Ha),v=j?JSON.parse(j):[];return Array.isArray(v)?v.filter(p=>typeof p=="string"):[]}catch{return[]}}function Ws(j){if(!(typeof localStorage>"u"))try{localStorage.setItem(Ha,JSON.stringify(j))}catch{}}function Us(){const{subscribe:j,update:v}=ps(Rs());return{subscribe:j,toggle(p){v(C=>{const E=C.includes(p)?C.filter(l=>l!==p):[...C,p];return Ws(E),E})}}}const Sa=Us();function Hs(j,v){return v?j.filter(p=>(p.directory??"")===v):j}var Js=f('<input class="rename-input svelte-1h8243g" placeholder="Session title" aria-label="Session title"/>'),Ns=f('<span class="pin-dot svelte-1h8243g" aria-label="已钉住">●</span>'),Ks=f('<span class="rowmenu svelte-1h8243g" role="menu"><button role="menuitem" class="svelte-1h8243g">重命名</button> <button role="menuitem" class="svelte-1h8243g"> </button> <button role="menuitem" class="danger svelte-1h8243g">删除…</button></span>'),Qs=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> <button title="会话操作" aria-label="会话操作"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><circle cx="5" cy="12" r="1.8"></circle><circle cx="12" cy="12" r="1.8"></circle><circle cx="19" cy="12" r="1.8"></circle></svg></button> <!></span>',1),Vs=f('<span class="sep svelte-1h8243g">·</span><span class="repo svelte-1h8243g"> </span>',1),Gs=f('<span class="add svelte-1h8243g"> </span>'),Ys=f('<span class="del svelte-1h8243g"> </span>'),Zs=f('<span class="sep svelte-1h8243g">·</span> <!> <!>',1),Xs=f('<div class="progress svelte-1h8243g" aria-hidden="true"><span class="progress-fill svelte-1h8243g"></span></div>'),en=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>'),tn=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),an=f('<div class="empty mono svelte-1h8243g"> </div>'),sn=f('<div class="sidebar svelte-1h8243g"><!> <!></div>');function nn(j,v){tt(v,!1);const p=()=>ze(ft,"$sessionList",A),C=()=>ze(ut,"$feeds",A),E=()=>ze(Gt,"$connection",A),l=()=>ze(bs,"$activeWorkspace",A),b=()=>ze(Sa,"$pinnedSessions",A),[A,_]=it(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d();let K=Ae(v,"activeId",8,void 0),re=Ae(v,"onSelect",8,void 0),te=Ae(v,"agentId",8,void 0),P=Ae(v,"agentName",8,void 0);const I=24*60*60*1e3;function oe(k,G){return G==="connected"&&Date.now()-k<I}function Q(k,G){const R=G[k];if(!R||R.order.length===0)return!1;const le=R.byId[R.order[R.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 $(k,G){const R=G[k];if(!R||R.order.length===0)return!1;const le=R.byId[R.order[R.order.length-1]];return(le==null?void 0:le.kind)==="approval"}function O(k,G,R){return Q(k.id,G)?"busy":$(k.id,G)?"wait":oe(k.lastActiveAt,R)?"idle":"offline"}function Z(k){const G=Date.now()-k,R=Math.floor(G/6e4);if(R<1)return"now";if(R<60)return`${R}m`;const le=Math.floor(R/60);return le<24?`${le}h`:`${Math.floor(le/24)}d`}function D(k){return(k.includes("_")?k.slice(k.indexOf("_")+1):k).slice(-8)}function X(k){if(!k)return"";const G=k.replace(/\/+$/,"").split("/");return G[G.length-1]||""}function me(k,G){re()&&(k.preventDefault(),re()(G))}function ve(k,G){k.preventDefault(),k.stopPropagation(),Sa.toggle(G)}let B=d(null),V=d(""),U=d(null);function g(k,G){k.preventDefault(),k.stopPropagation(),s(B,G.id),s(V,G.title||"")}function ae(){s(B,null),s(V,"")}async function pe(k){const G=e(V).trim();if(!G||e(U)){ae();return}s(U,k);try{await Ie.renameSession(k,G),ft.set(await Ie.sessions())}catch(R){alert(`重命名失败:${R.message}`)}finally{s(U,null),s(B,null),s(V,"")}}function Me(k,G){k.key==="Enter"?(k.preventDefault(),pe(G)):k.key==="Escape"&&(k.preventDefault(),ae())}function je(k){k.focus(),k.select()}let De=d(null),he=d(null),we=d();function Fe(k,G){k.preventDefault(),k.stopPropagation(),s(he,e(he)===G?null:G)}function Pe(k,G,R){s(he,null);const le={preventDefault(){},stopPropagation(){}};k==="pin"?ve(le,G):k==="delete"?He(le,G):R&&g(le,R)}function Ue(k){k.key==="Escape"&&s(he,null)}function ke(k){e(he)&&e(we)&&!e(we).contains(k.target)&&s(he,null)}Pt(()=>{s(he,null)});async function He(k,G){if(k.preventDefault(),k.stopPropagation(),!e(De)&&confirm("Delete this session? This cannot be undone.")){s(De,G);try{await Ie.deleteSession(G),ft.set(await Ie.sessions()),K()===G&&Yt("/")}catch(R){alert(`删除失败:${R.message}`)}finally{s(De,null)}}}ne(()=>(p(),C(),E()),()=>{s(h,new Map(p().map(k=>[k.id,O(k,C(),E())])))}),ne(()=>(de(te()),p()),()=>{s(S,te()?p().filter(k=>k.backendId===te()||!k.backendId&&te()==="opencode"):p())}),ne(()=>(e(S),l()),()=>{s(y,Hs(e(S),l()))}),ne(()=>e(y),()=>{s(w,[...e(y)].sort((k,G)=>G.lastActiveAt-k.lastActiveAt))}),ne(()=>(e(w),b()),()=>{s(N,e(w).filter(k=>b().includes(k.id)))}),ne(()=>(e(w),b()),()=>{s(u,e(w).filter(k=>!b().includes(k.id)))}),ne(()=>(e(N),e(u)),()=>{s(x,[{key:"pinned",label:"Pinned",rows:e(N)},{key:"recent",label:"Recent",rows:e(u)}])}),st(),et();var se=sn();M("pointerdown",wt,ke),M("keydown",wt,Ue);var be=a(se);Xe(be,1,()=>e(x),k=>k.key,(k,G)=>{var R=ot(),le=Ke(R);{var Te=Be=>{var ue=tn(),xe=Ke(ue),Je=a(xe),H=a(Je,!0);t(Je);var J=n(Je,4),z=a(J,!0);t(J),t(xe);var W=n(xe,2);Xe(W,1,()=>(e(G),r(()=>e(G).rows)),c=>c.id,(c,i)=>{var q=en();let ie;var ee=a(q),T=a(ee),_e=a(T),Ce=a(_e,!0);t(_e),t(T);var Se=n(T,2);{var $e=We=>{var Ze=Js();_t(Ze),Lt(()=>mt(Ze,()=>e(V),nt=>s(V,nt))),ba(Ze,nt=>je==null?void 0:je(nt)),Lt(()=>M("click",Ze,nt=>nt.preventDefault())),Lt(()=>M("keydown",Ze,nt=>Me(nt,e(i).id))),Lt(()=>M("blur",Ze,()=>pe(e(i).id))),Y(()=>Ze.disabled=(e(U),e(i),r(()=>e(U)===e(i).id))),o(We,Ze)},Ne=We=>{var Ze=Qs(),nt=Ke(Ze),xt=a(nt,!0);t(nt);var yt=n(nt,2);{var At=lt=>{var Mt=Ns();o(lt,Mt)},vt=ht(()=>(b(),e(i),r(()=>b().includes(e(i).id))));F(yt,lt=>{e(vt)&<(At)})}var pt=n(yt,2),Ot=a(pt),Ft=n(Ot,2);let ma;var Na=a(Ft);t(Ft);var ca=n(Ft,2),Zt=n(ca,2);let ga;var Ka=n(Zt,2);{var Qa=lt=>{var Mt=Ks(),Xt=a(Mt),ea=n(Xt,2),Va=a(ea,!0);t(ea);var Ga=n(ea,2);t(Mt),Et(Mt,va=>s(we,va),()=>e(we)),Y(va=>L(Va,va),[()=>(b(),e(i),r(()=>b().includes(e(i).id)?"取消钉住":"钉住"))]),M("click",Xt,Wt(()=>Pe("rename",e(i).id,e(i)))),M("click",ea,Wt(()=>Pe("pin",e(i).id))),M("click",Ga,Wt(()=>Pe("delete",e(i).id))),o(lt,Mt)};F(Ka,lt=>{e(he),e(i),r(()=>e(he)===e(i).id)&<(Qa)})}t(pt),Y((lt,Mt,Xt)=>{L(xt,(e(i),r(()=>e(i).title||"Untitled session"))),ma=ye(Ft,1,"act pin svelte-1h8243g",null,ma,lt),qe(Ft,"title",Mt),qe(Na,"fill",Xt),ca.disabled=(e(De),e(i),r(()=>e(De)===e(i).id)),ga=ye(Zt,1,"act mmore svelte-1h8243g",null,ga,{on:e(he)===e(i).id}),qe(Zt,"aria-expanded",(e(he),e(i),r(()=>e(he)===e(i).id)))},[()=>({on:b().includes(e(i).id)}),()=>(b(),e(i),r(()=>b().includes(e(i).id)?"取消钉住":"钉住")),()=>(b(),e(i),r(()=>b().includes(e(i).id)?"currentColor":"none"))]),M("click",Ot,lt=>g(lt,e(i))),M("click",Ft,lt=>ve(lt,e(i).id)),M("click",ca,lt=>He(lt,e(i).id)),M("click",Zt,lt=>Fe(lt,e(i).id)),o(We,Ze)};F(Se,We=>{e(B),e(i),r(()=>e(B)===e(i).id)?We($e):We(Ne,-1)})}t(ee);var Ye=n(ee,2),ge=a(Ye),fe=a(ge,!0);t(ge);var Ve=n(ge,2);{var Qe=We=>{var Ze=Vs(),nt=n(Ke(Ze)),xt=a(nt,!0);t(nt),Y(yt=>L(xt,yt),[()=>(e(i),r(()=>X(e(i).directory)))]),o(We,Ze)},Ee=ht(()=>(e(i),r(()=>X(e(i).directory))));F(Ve,We=>{e(Ee)&&We(Qe)})}var Le=n(Ve,3),Oe=a(Le,!0);t(Le);var Re=n(Le,2);{var Ge=We=>{var Ze=Zs(),nt=n(Ke(Ze),2);{var xt=vt=>{var pt=Gs(),Ot=a(pt);t(pt),Y(()=>L(Ot,`+${e(i),r(()=>e(i).additions)??""}`)),o(vt,pt)};F(nt,vt=>{e(i),r(()=>e(i).additions)&&vt(xt)})}var yt=n(nt,2);{var At=vt=>{var pt=Ys(),Ot=a(pt);t(pt),Y(()=>L(Ot,`−${e(i),r(()=>e(i).deletions)??""}`)),o(vt,pt)};F(yt,vt=>{e(i),r(()=>e(i).deletions)&&vt(At)})}o(We,Ze)};F(Re,We=>{e(i),r(()=>e(i).additions||e(i).deletions)&&We(Ge)})}t(Ye);var qt=n(Ye,2);{var ct=We=>{var Ze=Xs();o(We,Ze)},kt=ht(()=>(e(h),e(i),r(()=>e(h).get(e(i).id)==="busy")));F(qt,We=>{e(kt)&&We(ct)})}t(q),Y((We,Ze,nt,xt,yt)=>{qe(q,"href",`/${e(i),r(()=>e(i).id)??""}/`),ie=ye(q,1,"session svelte-1h8243g",null,ie,We),ye(T,1,`dot ${Ze??""}`,"svelte-1h8243g"),L(Ce,nt),L(fe,xt),L(Oe,yt)},[()=>({active:K()===e(i).id,busy:e(h).get(e(i).id)==="busy"}),()=>(e(h),e(i),r(()=>e(h).get(e(i).id)??"offline")),()=>(e(h),e(i),r(()=>e(h).get(e(i).id)??"offline")),()=>(e(i),r(()=>D(e(i).id))),()=>(e(i),r(()=>Z(e(i).lastActiveAt)))]),M("click",q,We=>me(We,e(i).id)),o(c,q)}),Y(()=>{L(H,(e(G),r(()=>e(G).label))),L(z,(e(G),r(()=>e(G).rows.length)))}),o(Be,ue)};F(le,Be=>{e(G),r(()=>e(G).rows.length)&&Be(Te)})}o(k,R)});var m=n(be,2);{var ce=k=>{var G=an(),R=a(G);t(G),Y(()=>L(R,`no sessions on ${P()??"this agent"??""} yet`)),o(k,G)};F(m,k=>{e(y),r(()=>e(y).length===0)&&k(ce)})}t(se),o(j,se),at(),_()}var rn=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-aqr1j0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"></path></svg>'),ln=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-aqr1j0"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"></path></svg>'),on=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-aqr1j0"><rect x="3" y="4" width="18" height="12" rx="2"></rect><path d="M8 20h8M12 16v4"></path></svg>'),cn=f('<div class="rail-foot svelte-aqr1j0"><span class="avatar mono svelte-aqr1j0"> </span> <span class="who svelte-aqr1j0"> </span> <span class="sp svelte-aqr1j0"></span> <button class="fbtn svelte-aqr1j0"><!></button> <button class="fbtn svelte-aqr1j0" aria-label="机器人与通道" title="机器人与通道"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-aqr1j0"><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></div>');function vn(j,v){tt(v,!1);const p=()=>ze(ja,"$themeMode",C),[C,E]=it(),l=d(),b=d();let A=Ae(v,"email",8,"");ne(()=>de(A()),()=>{s(l,A()||"local")}),ne(()=>e(l),()=>{s(b,e(l).charAt(0).toUpperCase())}),st(),et();var _=cn(),h=a(_),S=a(h,!0);t(h);var y=n(h,2),w=a(y,!0);t(y);var N=n(y,4),u=a(N);{var x=P=>{var I=rn();o(P,I)},K=P=>{var I=ln();o(P,I)},re=P=>{var I=on();o(P,I)};F(u,P=>{p()==="light"?P(x):p()==="dark"?P(K,1):P(re,-1)})}t(N);var te=n(N,2);t(_),Y(()=>{qe(h,"title",A()),L(S,e(b)),qe(y,"title",A()),L(w,e(l)),qe(N,"aria-label",`主题:${p()}`),qe(N,"title",`主题:${p()==="auto"?"跟随系统":p()==="light"?"浅色":"深色"}`)}),M("click",N,function(...P){var I;(I=Ba)==null||I.apply(this,P)}),M("click",te,()=>ia.set(!0)),o(j,_),at(),E()}var dn=f('<span class="host mono svelte-wmno67"> </span>'),un=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>'),pn=f('<span class="check svelte-wmno67">✓</span>'),fn=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>'),hn=f("<button></button>"),bn=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>'),_n=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>'),mn=f('<div class="agents-label svelte-wmno67">Agents</div> <div class="switcher-row svelte-wmno67"></div>',1),gn=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>'),yn=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 wn(j,v){tt(v,!1);const p=()=>ze(oa,"$backends",b),C=()=>ze(ft,"$sessionList",b),E=()=>ze(Gt,"$connection",b),l=()=>ze(Za,"$accentOverrides",b),[b,A]=it(),_=d(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d();let K=Ae(v,"activeId",8,void 0),re=Ae(v,"email",8,""),te=Ae(v,"drawer",8,!1),P=d(!1);function I(c){const i=c.split(/[\s\-_:./]+/).filter(Boolean);return i.length>=2?(i[0][0]+i[1][0]).toUpperCase():c.slice(0,2).toUpperCase()}function oe(c){return I((c==null?void 0:c.name)||(c==null?void 0:c.id)||"OC")}function Q(c){return c==="online"||c==="connected"?"online":c==="connecting"||c==="reconnecting"?"connecting":c==="offline"?"offline":"online"}async function $(c){s(P,!1),await na(c)}function O(){s(P,!e(P))}async function Z(c){await na(c)}function D(c){c.key==="Escape"&&s(P,!1)}const X=24*60*60*1e3;function me(c,i){return i==="connected"&&Date.now()-c<X}function ve(c,i){return Ct(i)}ne(()=>p(),()=>{var c,i,q;s(_,((c=p())==null?void 0:c.activeId)??((q=(i=p())==null?void 0:i.backends[0])==null?void 0:q.id)??"opencode")}),ne(()=>(p(),e(_)),()=>{var c;s(h,(c=p())==null?void 0:c.backends.find(i=>i.id===e(_)))}),ne(()=>p(),()=>{var c;s(S,((c=p())==null?void 0:c.backends)??[])}),ne(()=>(p(),C()),()=>{var c;s(y,Object.fromEntries((((c=p())==null?void 0:c.backends)??[]).map(i=>[i.id,C().filter(q=>q.backendId===i.id||!q.backendId&&i.id==="opencode").length])))}),ne(()=>(C(),e(_),E()),()=>{s(w,C().filter(c=>(c.backendId===e(_)||!c.backendId&&e(_)==="opencode")&&me(c.lastActiveAt,E())).length)}),ne(()=>(C(),e(_)),()=>{s(N,C().filter(c=>(c.backendId===e(_)||!c.backendId&&e(_)==="opencode")&&(c.additions||c.deletions)).length)}),ne(()=>(l(),e(_)),()=>{s(u,ve(l(),e(_)))}),ne(()=>(e(S),l()),()=>{s(x,Object.fromEntries(e(S).map(c=>[c.id,ve(l(),c.id)])))}),st(),et();var B=yn();M("keydown",wt,D);let V;var U=a(B),g=a(U),ae=a(g),pe=a(ae),Me=a(pe,!0);t(pe);var je=n(pe,2),De=a(je),he=a(De,!0);t(De),t(je);var we=n(je,2),Fe=a(we,!0);t(we);var Pe=n(we,2);{var Ue=c=>{var i=dn(),q=a(i,!0);t(i),Y(()=>L(q,(e(h),r(()=>e(h).host)))),o(c,i)};F(Pe,c=>{e(h),r(()=>{var i;return(i=e(h))==null?void 0:i.host})&&c(Ue)})}var ke=n(Pe,2),He=a(ke);It(He,{name:"caret-down",size:11}),t(ke),t(ae);var se=n(ae,2);{var be=c=>{var i=un();M("click",i,()=>Rt.set(!1)),o(c,i)};F(se,c=>{te()||c(be)})}var m=n(se,2);{var ce=c=>{var i=bn(),q=a(i);Xe(q,5,()=>e(S),Ye=>Ye.id,(Ye,ge)=>{const fe=zt(()=>(e(x),e(ge),de(Ct),r(()=>e(x)[e(ge).id]??Ct(e(ge).id)))),Ve=zt(()=>(e(ge),e(_),r(()=>e(ge).id===e(_))));var Qe=fn();let Ee;var Le=a(Qe),Oe=a(Le,!0);t(Le);var Re=n(Le,2),Ge=a(Re),qt=a(Ge,!0);t(Ge);var ct=n(Ge,2),kt=a(ct);t(ct),t(Re);var We=n(Re,2),Ze=a(We),nt=a(Ze,!0);t(Ze),t(We);var xt=n(We,2);{var yt=At=>{var vt=pn();o(At,vt)};F(xt,At=>{e(Ve)&&At(yt)})}t(Qe),Y((At,vt,pt)=>{Ee=ye(Qe,1,"agent-row svelte-wmno67",null,Ee,{selected:e(Ve)}),dt(Le,`background:${de(St),de(e(fe)),r(()=>St[e(fe)])??""}; color:${de(rt),de(e(fe)),r(()=>rt[e(fe)])??""}; border-color:${de(Tt),de(e(fe)),r(()=>Tt[e(fe)])??""}`),L(Oe,At),L(qt,(e(ge),r(()=>e(ge).name??e(ge).id))),L(kt,`${e(ge),r(()=>e(ge).host??"local")??""} · ${e(y),e(ge),r(()=>e(y)[e(ge).id]??0)??""} ses`),ye(We,1,`status-dot ${vt??""}`,"svelte-wmno67"),dt(We,`--dot:${de(rt),de(e(fe)),r(()=>rt[e(fe)])??""}`),L(nt,pt)},[()=>(e(ge),r(()=>oe(e(ge)))),()=>(e(ge),r(()=>Q(e(ge).status))),()=>(e(ge),r(()=>Q(e(ge).status)))]),M("click",Qe,()=>$(e(ge).id)),o(Ye,Qe)}),t(q);var ie=n(q,2),ee=a(ie),T=a(ee),_e=a(T);t(T);var Ce=n(T,2),Se=a(Ce);Xe(Se,1,()=>aa,Da,(Ye,ge)=>{var fe=hn();let Ve;Y(()=>{Ve=ye(fe,1,"swatch svelte-wmno67",null,Ve,{active:e(u)===e(ge)}),qe(fe,"aria-label",`设置 ${e(ge)??""} 主题`),dt(fe,`background:${de(rt),e(ge),r(()=>rt[e(ge)])??""}`)}),M("click",fe,()=>pa(e(_),e(ge))),o(Ye,fe)});var $e=n(Se,2);let Ne;t(Ce),t(ee),t(ie),t(i),Y(Ye=>{L(_e,`Theme · ${e(h),r(()=>{var ge,fe;return((ge=e(h))==null?void 0:ge.name)??((fe=e(h))==null?void 0:fe.id)??"Agent"})??""}`),Ne=ye($e,1,"auto svelte-wmno67",null,Ne,Ye)},[()=>({active:e(u)===Xa(e(_))})]),M("click",$e,()=>pa(e(_),null)),o(c,i)};F(m,c=>{e(P)&&c(ce)})}t(g);var k=n(g,2);{var G=c=>{var i=mn(),q=n(Ke(i),2);Xe(q,5,()=>e(S),ie=>ie.id,(ie,ee)=>{const T=zt(()=>(e(x),e(ee),de(Ct),r(()=>e(x)[e(ee).id]??Ct(e(ee).id))));var _e=_n();let Ce;var Se=a(_e),$e=a(Se,!0);t(Se);var Ne=n(Se,2),Ye=a(Ne),ge=a(Ye,!0);t(Ye),t(Ne);var fe=n(Ne,2),Ve=a(fe,!0);t(fe);var Qe=n(fe,2),Ee=a(Qe,!0);t(Qe),t(_e),Y((Le,Oe,Re)=>{Ce=ye(_e,1,"switch-pill svelte-wmno67",null,Ce,{active:e(ee).id===e(_)}),dt(Se,`background:${de(St),de(e(T)),r(()=>St[e(T)])??""}; color:${de(rt),de(e(T)),r(()=>rt[e(T)])??""}; border-color:${de(Tt),de(e(T)),r(()=>Tt[e(T)])??""}`),L($e,Le),ye(Ne,1,`status-dot ${Oe??""}`,"svelte-wmno67"),dt(Ne,`--dot:${de(rt),de(e(T)),r(()=>rt[e(T)])??""}`),L(ge,Re),L(Ve,(e(ee),r(()=>e(ee).name??e(ee).id))),L(Ee,(e(y),e(ee),r(()=>e(y)[e(ee).id]??0)))},[()=>(e(ee),r(()=>oe(e(ee)))),()=>(e(ee),r(()=>Q(e(ee).status))),()=>(e(ee),r(()=>Q(e(ee).status)))]),M("click",_e,()=>Z(e(ee).id)),o(ie,_e)}),t(q),o(c,i)};F(k,c=>{de(te()),e(S),r(()=>te()&&e(S).length>1)&&c(G)})}var R=n(k,2);{var le=c=>{var i=gn();M("click",i,()=>jt.set(!0)),o(c,i)};F(R,c=>{te()&&c(le)})}var Te=n(R,2),Be=a(Te);{let c=zt(()=>(e(h),r(()=>{var i,q;return((i=e(h))==null?void 0:i.name)??((q=e(h))==null?void 0:q.id)})));nn(Be,{get activeId(){return K()},get agentId(){return e(_)},get agentName(){return e(c)}})}t(Te);var ue=n(Te,2),xe=a(ue),Je=a(xe);t(xe);var H=n(xe,4),J=a(H);t(H),t(ue);var z=n(ue,2);{var W=c=>{vn(c,{get email(){return re()}})};F(z,c=>{te()||c(W)})}t(U),t(B),Y((c,i,q)=>{V=ye(B,1,"agent-panel svelte-wmno67",null,V,{drawer:te()}),qe(ae,"aria-expanded",e(P)),dt(pe,`background:${de(St),e(u),r(()=>St[e(u)])??""}; color:${de(rt),e(u),r(()=>rt[e(u)])??""}; border-color:${de(Tt),e(u),r(()=>Tt[e(u)])??""}`),L(Me,c),ye(je,1,`status-dot ${i??""}`,"svelte-wmno67"),dt(je,`--dot:${de(rt),e(u),r(()=>rt[e(u)])??""}`),L(he,q),L(Fe,(e(h),r(()=>{var ie,ee;return((ie=e(h))==null?void 0:ie.name)??((ee=e(h))==null?void 0:ee.id)??"Agent"}))),L(Je,`${e(w)??""} 活跃`),L(J,`${e(N)??""} 已推送`)},[()=>(e(h),r(()=>oe(e(h)))),()=>(e(h),r(()=>{var c;return Q((c=e(h))==null?void 0:c.status)})),()=>(e(h),r(()=>{var c;return Q((c=e(h))==null?void 0:c.status)}))]),M("click",ae,O),o(j,B),at(),A()}var kn=f('<div class="empty svelte-1ki800i">问点什么——回复实时流在这里。</div>'),xn=f('<div class="sc svelte-1ki800i"><div class="sc-hd svelte-1ki800i"><span class="hint mono svelte-1ki800i"> </span> <button class="open mono svelte-1ki800i" title="在中栏打开此会话">中栏打开 ↗</button></div> <div class="sc-body svelte-1ki800i"></div> <div class="sc-input svelte-1ki800i"><textarea placeholder="辅助对话…(↵ 发送)" aria-label="辅助对话输入" class="svelte-1ki800i"></textarea> <button class="send svelte-1ki800i" 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" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"></path></svg></button></div></div>');function An(j,v){tt(v,!1);const p=()=>ze(ut,"$feeds",C),[C,E]=it(),l=d();let b=Ae(v,"childId",8);Ae(v,"tick",8,0);let A=d(""),_=d(!1),h=d(),S=!0,y=d();async function w(D){const X=bt(ut)[D];if(!(X&&X.order.length>0))try{const me=await Ie.history(D,{limit:60});Vt(D,me.cards??[],me.lastSeq??0)}catch{}}function N(){S&&e(h)&&requestAnimationFrame(()=>{e(h)&&S&&la(h,e(h).scrollTop=e(h).scrollHeight)})}function u(){e(h)&&(S=e(h).scrollHeight-e(h).scrollTop-e(h).clientHeight<60)}async function x(){const D=e(A).trim();if(!(!D||e(_))){s(_,!0),s(A,""),S=!0;try{await Ie.sendMessage({sessionId:b(),text:D,clientId:`sc_${Date.now().toString(36)}`})}catch{s(A,D)}finally{s(_,!1)}}}function K(D){D.key==="Enter"&&!D.shiftKey&&!D.isComposing&&(D.preventDefault(),x())}Pt(()=>{b()&&Ut({type:"unsubscribe",sessionId:b()})}),ne(()=>(de(b()),e(y),Ut),()=>{b()&&b()!==e(y)&&(s(y,b()),(async()=>{var X;await w(b());const D=((X=bt(ut)[b()])==null?void 0:X.lastSeq)??0;Ut({type:"subscribe",sessionId:b(),sinceSeq:D})})())}),ne(()=>(de(b()),p()),()=>{s(l,b()?Ta(p()[b()]??null):[])}),ne(()=>e(l),()=>{e(l)&&N()}),st(),et();var re=xn(),te=a(re),P=a(te),I=a(P);t(P);var oe=n(P,2);t(te);var Q=n(te,2);Xe(Q,7,()=>e(l),(D,X)=>D.seq??D.id??X,(D,X)=>{Pa(D,{get card(){return e(X)}})},D=>{var X=kn();o(D,X)}),t(Q),Et(Q,D=>s(h,D),()=>e(h));var $=n(Q,2),O=a($);Ea(O),qe(O,"rows",2);var Z=n(O,2);t($),t(re),Y(D=>{L(I,`辅助对话 · ${e(l),r(()=>e(l).length)??""} 条`),Z.disabled=D},[()=>(e(_),e(A),r(()=>e(_)||!e(A).trim()))]),M("click",oe,()=>Yt("/"+b())),M("scroll",Q,u),mt(O,()=>e(A),D=>s(A,D)),M("keydown",O,K),M("click",Z,x),o(j,re),at(),E()}var In=f('<span class="meta svelte-1h1y2gb"> </span>'),$n=f('<div class="bar svelte-1h1y2gb"><div class="fill svelte-1h1y2gb"></div></div>'),qn=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>'),Mn=f('<div class="section-label svelte-1h1y2gb">暂无任务</div>'),Sn=f('<div class="task svelte-1h1y2gb"><div class="hd svelte-1h1y2gb"><!></div> <!> <div class="items svelte-1h1y2gb"><!> <!></div></div>');function Tn(j,v){tt(v,!1);const p=d(),C=d(),E=d();let l=Ae(v,"sessionId",8,void 0),b=Ae(v,"tick",8,0),A=d({total:0,done:0,items:[]}),_=d(new Set),h;async function S(Q){if(!Q){s(A,{total:0,done:0,items:[]}),s(_,new Set);return}Q!==h&&(h=Q,s(_,new Set));try{const $=await Ie.todo(Q);if(Q!==l())return;s(A,Oa($))}catch{}}function y(Q){e(_).has(Q)?e(_).delete(Q):e(_).add(Q),s(_,e(_))}ne(()=>(de(l()),de(b())),()=>{S(l()),b()}),ne(()=>(e(A),e(_)),()=>{s(p,e(A).items.map((Q,$)=>({...Q,status:e(_).has($)?Q.status==="done"?"pending":"done":Q.status})))}),ne(()=>e(p),()=>{s(C,e(p).filter(Q=>Q.status==="done").length)}),ne(()=>(e(A),e(C)),()=>{s(E,e(A).total?Math.round(e(C)/e(A).total*100):0)}),st(),et();var w=Sn(),N=a(w),u=a(N);{var x=Q=>{var $=In(),O=a($);t($),Y(()=>L(O,`${e(C)??""}/${e(A),r(()=>e(A).total)??""}`)),o(Q,$)};F(u,Q=>{e(A),r(()=>e(A).total)&&Q(x)})}t(N);var K=n(N,2);{var re=Q=>{var $=$n(),O=a($);t($),Y(()=>dt(O,`transform:scaleX(${e(E)/100})`)),o(Q,$)};F(K,Q=>{e(A),r(()=>e(A).total)&&Q(re)})}var te=n(K,2),P=a(te);Xe(P,3,()=>e(p),(Q,$)=>Q.text+"-"+$,(Q,$,O)=>{var Z=qn(),D=n(a(Z),2),X=a(D,!0);t(D),t(Z),Y(()=>{ye(Z,1,`row ${e($),r(()=>e($).status)??""}`,"svelte-1h1y2gb"),L(X,(e($),r(()=>e($).text)))}),M("click",Z,()=>y(e(O))),o(Q,Z)});var I=n(P,2);{var oe=Q=>{var $=Mn();o(Q,$)};F(I,Q=>{e(A),r(()=>e(A).total===0)&&Q(oe)})}t(te),t(w),o(j,w),at()}var Cn=f('<div><span class="dot svelte-ehf8ic" aria-hidden="true"></span><span> </span><span class="sr-only svelte-ehf8ic"> </span></div>'),zn=f('<div class="label">未配置</div>'),En=f('<div class="mcp svelte-ehf8ic"><div class="list svelte-ehf8ic"><!> <!></div></div>');function Ln(j,v){tt(v,!1);let p=Ae(v,"tick",8,0),C=d([]);async function E(){try{s(C,await Ie.mcp())}catch{}}ne(()=>de(p()),()=>{E(),p()}),st(),et();var l=En(),b=a(l),A=a(b);Xe(A,1,()=>e(C),Da,(S,y)=>{var w=Cn();let N;var u=n(a(w)),x=a(u,!0);t(u);var K=n(u),re=a(K,!0);t(K),t(w),Y(()=>{N=ye(w,1,"row svelte-ehf8ic",null,N,{off:e(y).status==="disabled"}),L(x,(e(y),r(()=>e(y).name))),L(re,(e(y),r(()=>e(y).status)))}),o(S,w)});var _=n(A,2);{var h=S=>{var y=zn();o(S,y)};F(_,S=>{e(C),r(()=>e(C).length===0)&&S(h)})}t(b),t(l),o(j,l),at()}var Bn=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>'),jn=f('<div class="label svelte-pijcyq">暂无</div>'),Dn=f('<div class="err svelte-pijcyq"> </div>'),Pn=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>'),On=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 Fn(j,v){tt(v,!1);const p=[];let C=Ae(v,"tick",8,0),E=d([]),l=d(!1),b=d(""),A=d("every"),_=d(30),h=d("09:00"),S=d(""),y=d(),w;async function N(){try{s(E,(await Ie.schedules()).schedules??[])}catch{}}function u(ve){return ve.kind==="every"?ve.minutes>=60&&ve.minutes%60===0?`every ${ve.minutes/60}h`:`every ${ve.minutes}m`:`daily ${ve.time}`}function x(ve){return ve.name||ve.prompt}async function K(){if(!e(b).trim())return;s(S,"");const ve=e(A)==="every"?{kind:"every",minutes:Math.max(1,Math.round(e(_)))}:{kind:"daily",time:e(h)};try{const B=await Ie.addSchedule({prompt:e(b).trim(),spec:ve});if(B.error){s(S,B.error);return}s(b,""),s(l,!1),await N()}catch(B){s(S,B.message)}}async function re(ve){s(E,e(E).map(B=>B.id===ve.id?{...B,enabled:!B.enabled}:B));try{await Ie.setScheduleEnabled(ve.id,!ve.enabled),await N()}catch{await N()}}async function te(ve){if(e(y)!==ve){s(y,ve),clearTimeout(w),w=setTimeout(()=>s(y,void 0),3e3);return}clearTimeout(w),s(y,void 0);try{await Ie.deleteSchedule(ve),await N()}catch{}}ne(()=>de(C()),()=>{N(),C()}),st(),et();var P=On(),I=a(P),oe=a(I),Q=a(oe,!0);t(oe),t(I);var $=n(I,2),O=a($);Xe(O,1,()=>e(E),ve=>ve.id,(ve,B)=>{var V=Bn();let U;var g=a(V);let ae;var pe=n(g,2),Me=a(pe),je=a(Me,!0);t(Me);var De=n(Me,2),he=a(De,!0);t(De),t(pe);var we=n(pe,2);let Fe;var Pe=a(we,!0);t(we),t(V),Y((Ue,ke,He,se)=>{U=ye(V,1,"row svelte-pijcyq",null,U,{off:!e(B).enabled}),ae=ye(g,1,"switch svelte-pijcyq",null,ae,{on:e(B).enabled}),qe(g,"aria-pressed",(e(B),r(()=>e(B).enabled))),qe(g,"aria-label",Ue),L(je,ke),L(he,He),Fe=ye(we,1,"del svelte-pijcyq",null,Fe,{arm:e(y)===e(B).id}),qe(we,"aria-label",`删除 ${se??""}`),L(Pe,(e(y),e(B),r(()=>e(y)===e(B).id?"确认?":"✕")))},[()=>(e(B),r(()=>`${e(B).enabled?"停用":"启用"} ${x(e(B))}`)),()=>(e(B),r(()=>x(e(B)))),()=>(e(B),r(()=>u(e(B).spec))),()=>(e(B),r(()=>x(e(B))))]),M("click",g,()=>re(e(B))),M("click",we,()=>te(e(B).id)),o(ve,V)});var Z=n(O,2);{var D=ve=>{var B=jn();o(ve,B)};F(Z,ve=>{e(E),e(l),r(()=>e(E).length===0&&!e(l))&&ve(D)})}t($);var X=n($,2);{var me=ve=>{var B=Pn(),V=a(B);Ea(V);var U=n(V,2),g=a(U);let ae;var pe=a(g);_t(pe),pe.value=pe.__value="every";var Me=n(pe,2);_t(Me),$t(),t(g);var je=n(g,2);let De;var he=a(je);_t(he),he.value=he.__value="daily";var we=n(he,2);_t(we),t(je),t(U);var Fe=n(U,2);{var Pe=ke=>{var He=Dn(),se=a(He,!0);t(He),Y(()=>L(se,e(S))),o(ke,He)};F(Fe,ke=>{e(S)&&ke(Pe)})}var Ue=n(Fe,2);t(B),Y(ke=>{ae=ye(g,1,"svelte-pijcyq",null,ae,{sel:e(A)==="every"}),Me.disabled=e(A)!=="every",De=ye(je,1,"svelte-pijcyq",null,De,{sel:e(A)==="daily"}),we.disabled=e(A)!=="daily",Ue.disabled=ke},[()=>(e(b),r(()=>!e(b).trim()))]),mt(V,()=>e(b),ke=>s(b,ke)),ka(p,[],pe,()=>e(A),ke=>s(A,ke)),mt(Me,()=>e(_),ke=>s(_,ke)),ka(p,[],he,()=>e(A),ke=>s(A,ke)),mt(we,()=>e(h),ke=>s(h,ke)),M("click",Ue,K),o(ve,B)};F(X,ve=>{e(l)&&ve(me)})}t(P),Y(()=>{qe(oe,"aria-label",e(l)?"取消新建计划":"新建计划"),L(Q,e(l)?"×":"+")}),M("click",oe,()=>s(l,!e(l))),o(j,P),at()}var Rn=f('<span class="chip svelte-taxat6"> </span>'),Wn=f('<button class="more svelte-taxat6"> </button>'),Un=f("<div></div> <!>",1),Hn=f('<div class="label svelte-taxat6">none</div>'),Jn=f('<div class="skills svelte-taxat6"><!></div>');function Nn(j,v){tt(v,!1);const p=d();let C=Ae(v,"tick",8,0),E=d([]),l=d(!1);async function b(){try{s(E,(await Ie.skills()).skills??[])}catch{}}ne(()=>(e(l),e(E)),()=>{s(p,e(l)?e(E):e(E).slice(0,18))}),ne(()=>de(C()),()=>{b(),C()}),st(),et();var A=Jn(),_=a(A);{var h=y=>{var w=Un(),N=Ke(w);let u;Xe(N,5,()=>e(p),re=>re.name,(re,te)=>{var P=Rn(),I=a(P,!0);t(P),Y(()=>{qe(P,"title",(e(te),r(()=>e(te).description??e(te).name))),L(I,(e(te),r(()=>e(te).name)))}),o(re,P)}),t(N);var x=n(N,2);{var K=re=>{var te=Wn(),P=a(te,!0);t(te),Y(()=>L(P,(e(l),e(E),r(()=>e(l)?"收起":`展开全部 ${e(E).length}`)))),M("click",te,()=>s(l,!e(l))),o(re,te)};F(x,re=>{e(E),r(()=>e(E).length>18)&&re(K)})}Y(()=>u=ye(N,1,"chips svelte-taxat6",null,u,{clipped:!e(l)&&e(E).length>18})),o(y,w)},S=y=>{var w=Hn();o(y,w)};F(_,y=>{e(E),r(()=>e(E).length>0)?y(h):y(S,-1)})}t(A),o(j,A),at()}var Kn=f('<button class="up svelte-tp0rgj" aria-label="上级目录"> </button>'),Qn=f('<span class="mono"> </span>'),Vn=f('<button class="row svelte-tp0rgj"><span class="ico svelte-tp0rgj"> </span> <span class="name svelte-tp0rgj"> </span></button>'),Gn=f('<div class="label svelte-tp0rgj">empty</div>'),Yn=f('<div class="label svelte-tp0rgj">…</div>'),Zn=f('<div class="files svelte-tp0rgj"><div class="crumb mono svelte-tp0rgj"><!></div> <div class="list svelte-tp0rgj"><!> <!> <!></div></div>');function Xn(j,v){tt(v,!1);const p=()=>ze(ft,"$sessionList",C),[C,E]=it(),l=d();let b=Ae(v,"sessionId",8,void 0),A=Ae(v,"tick",8,0),_=d([]),h=d("."),S=d(!1);async function y(){if(e(l)){s(S,!0);try{s(_,(await Ie.browse(e(l),e(h))).files??[])}catch{s(_,[])}finally{s(S,!1)}}}function w(){const Z=e(h).replace(/(^|\/)[^/]+\/?$/,"")||".";s(h,Z),y()}function N(Z){if(Z.type==="directory"){s(h,Z.path),y();return}Fa({id:`file:${Z.path}`,kind:"file",title:Z.name,path:Z.path,directory:e(l)})}ne(()=>(p(),de(b())),()=>{var Z;s(l,((Z=p().find(D=>D.id===b()))==null?void 0:Z.directory)??"")}),ne(()=>(e(l),e(h),de(A())),()=>{e(l)&&(e(l),e(h),A(),y())}),st(),et();var u=Zn(),x=a(u),K=a(x);{var re=Z=>{var D=Kn(),X=a(D);t(D),Y(()=>L(X,`↰ ${e(h)??""}`)),M("click",D,w),o(Z,D)},te=Z=>{var D=Qn(),X=a(D,!0);t(D),Y(me=>L(X,me),[()=>(e(l),r(()=>e(l).split("/").pop()||"/"))]),o(Z,D)};F(K,Z=>{e(h)!=="."?Z(re):Z(te,-1)})}t(x);var P=n(x,2),I=a(P);Xe(I,1,()=>e(_),Z=>Z.path,(Z,D)=>{var X=Vn(),me=a(X),ve=a(me,!0);t(me);var B=n(me,2),V=a(B,!0);t(B),t(X),Y(()=>{L(ve,(e(D),r(()=>e(D).type==="directory"?"📁":"📄"))),L(V,(e(D),r(()=>e(D).name)))}),M("click",X,()=>N(e(D))),o(Z,X)});var oe=n(I,2);{var Q=Z=>{var D=Gn();o(Z,D)};F(oe,Z=>{e(S),e(_),r(()=>!e(S)&&e(_).length===0)&&Z(Q)})}var $=n(oe,2);{var O=Z=>{var D=Yn();o(Z,D)};F($,Z=>{e(S)&&Z(O)})}t(P),t(u),o(j,u),at(),E()}var er=f('<div class="row svelte-148ev8e"><span class="ico svelte-148ev8e" aria-hidden="true">🌿</span> <span class="name svelte-148ev8e"> </span> <button> </button></div>'),tr=f('<div class="rows svelte-148ev8e"></div>'),ar=f('<div class="label svelte-148ev8e">none</div>'),sr=f('<div class="err svelte-148ev8e"> </div>'),nr=f('<div class="form svelte-148ev8e"><input class="name-in mono svelte-148ev8e" placeholder="worktree 名称"/> <!> <button class="go svelte-148ev8e">创建</button></div>'),rr=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 lr(j,v){tt(v,!1);const p=()=>ze(ft,"$sessionList",C),[C,E]=it(),l=d();let b=Ae(v,"sessionId",8,void 0),A=Ae(v,"tick",8,0),_=d([]),h=d(!1),S=d(""),y=d(""),w=d(),N;async function u(){if(e(l))try{s(_,(await Ie.worktrees(e(l))).worktrees??[])}catch{}}async function x(){if(e(S).trim()){s(y,"");try{const X=await Ie.createWorktree(e(l),e(S).trim());if(X.error){s(y,X.error);return}s(S,""),s(h,!1),await u()}catch(X){s(y,X.message)}}}async function K(X){if(e(w)!==X){s(w,X),clearTimeout(N),N=setTimeout(()=>s(w,void 0),3e3);return}clearTimeout(N),s(w,void 0);try{await Ie.removeWorktree(e(l),X),await u()}catch{}}ne(()=>(p(),de(b())),()=>{var X;s(l,((X=p().find(me=>me.id===b()))==null?void 0:X.directory)??"")}),ne(()=>(de(A()),e(l)),()=>{u(),A(),e(l)}),st(),et();var re=rr(),te=a(re),P=a(te),I=a(P,!0);t(P),t(te);var oe=n(te,2),Q=a(oe);{var $=X=>{var me=tr();Xe(me,5,()=>e(_),ve=>ve.name,(ve,B)=>{var V=er(),U=n(a(V),2),g=a(U,!0);t(U);var ae=n(U,2);let pe;var Me=a(ae,!0);t(ae),t(V),Y(()=>{L(g,(e(B),r(()=>e(B).name))),pe=ye(ae,1,"del svelte-148ev8e",null,pe,{arm:e(w)===e(B).name}),qe(ae,"aria-label",`删除 ${e(B),r(()=>e(B).name)??""}`),L(Me,(e(w),e(B),r(()=>e(w)===e(B).name?"确认?":"✕")))}),M("click",ae,()=>K(e(B).name)),o(ve,V)}),t(me),o(X,me)},O=X=>{var me=ar();o(X,me)};F(Q,X=>{e(_),r(()=>e(_).length>0)?X($):e(h)||X(O,1)})}t(oe);var Z=n(oe,2);{var D=X=>{var me=nr(),ve=a(me);_t(ve);var B=n(ve,2);{var V=g=>{var ae=sr(),pe=a(ae,!0);t(ae),Y(()=>L(pe,e(y))),o(g,ae)};F(B,g=>{e(y)&&g(V)})}var U=n(B,2);t(me),Y(g=>U.disabled=g,[()=>(e(S),r(()=>!e(S).trim()))]),mt(ve,()=>e(S),g=>s(S,g)),M("click",U,x),o(X,me)};F(Z,X=>{e(h)&&X(D)})}t(re),Y(()=>{qe(P,"aria-label",e(h)?"取消新建":"新建 worktree"),L(I,e(h)?"×":"+")}),M("click",P,()=>s(h,!e(h))),o(j,re),at(),E()}var ir=f('<span class="count mono svelte-1s66f6s"> </span>'),or=f('<span class="live-label svelte-1s66f6s">运行中</span>'),cr=f('<button class="row svelte-1s66f6s"><span aria-hidden="true"></span> <span class="meta svelte-1s66f6s"><span class="title svelte-1s66f6s"> </span> <!></span> <!></button>'),vr=f('<div class="empty svelte-1s66f6s">该会话暂无子代理</div>'),dr=f('<div class="empty svelte-1s66f6s">…</div>'),ur=f('<div class="subs svelte-1s66f6s"><!> <!> <!></div>');function pr(j,v){tt(v,!1);let p=Ae(v,"sessionId",8,void 0),C=Ae(v,"tick",8,0),E=d([]),l=d(!1);async function b(){if(!p()){s(E,[]);return}s(l,!0);try{const u=await Ie.subagents(p());s(E,[...u.subagents??[]].sort((x,K)=>Number(K.busy??!1)-Number(x.busy??!1)))}catch{s(E,[])}finally{s(l,!1)}}function A(u){try{sessionStorage.setItem(`ocrc.subparent.${u.id}`,p()??"")}catch{}Fa({id:`sub:${u.id}`,kind:"subagent",title:u.title||"…"+u.id.slice(-6),childId:u.id})}ne(()=>(de(p()),de(C())),()=>{p()&&(p(),C(),b())}),st(),et();var _=ur(),h=a(_);Xe(h,1,()=>e(E),u=>u.id,(u,x)=>{var K=cr(),re=a(K);let te;var P=n(re,2),I=a(P),oe=a(I,!0);t(I);var Q=n(I,2);{var $=D=>{var X=ir(),me=a(X);t(X),Y(()=>L(me,`${e(x),r(()=>e(x).done)??""}/${e(x),r(()=>e(x).total)??""}`)),o(D,X)};F(Q,D=>{e(x),r(()=>e(x).total>0)&&D($)})}t(P);var O=n(P,2);{var Z=D=>{var X=or();o(D,X)};F(O,D=>{e(x),r(()=>e(x).busy)&&D(Z)})}t(K),Y(D=>{te=ye(re,1,"dot svelte-1s66f6s",null,te,{live:e(x).busy,done:!e(x).busy&&e(x).total>0&&e(x).done>=e(x).total}),L(oe,D)},[()=>(e(x),r(()=>e(x).title||"…"+e(x).id.slice(-6)))]),M("click",K,()=>A(e(x))),o(u,K)});var S=n(h,2);{var y=u=>{var x=vr();o(u,x)};F(S,u=>{e(l),e(E),r(()=>!e(l)&&e(E).length===0)&&u(y)})}var w=n(S,2);{var N=u=>{var x=dr();o(u,x)};F(w,u=>{e(l)&&u(N)})}t(_),o(j,_),at()}var fr=f('<div class="empty svelte-6fqea2">(暂无输出——子代理开跑后这里实时滚动)</div>'),hr=f('<div class="t-wrap svelte-6fqea2"><div class="t-hd svelte-6fqea2"><span class="t-hint mono svelte-6fqea2"> </span> <button class="open svelte-6fqea2">在中栏打开此会话 →</button></div> <div class="t-body svelte-6fqea2"></div></div>');function br(j,v){tt(v,!1);const p=()=>ze(ut,"$feeds",C),[C,E]=it(),l=d();let b=Ae(v,"childId",8),A=Ae(v,"tick",8,0),_=d(),h=!0,S=d();async function y(I){const oe=bt(ut)[I];if(!(oe&&oe.order.length>0))try{const Q=await Ie.history(I,{limit:60});Vt(I,Q.cards??[],Q.lastSeq??0)}catch{}}Pt(()=>{b()&&Ut({type:"unsubscribe",sessionId:b()})});function w(){h&&e(_)&&requestAnimationFrame(()=>{e(_)&&h&&la(_,e(_).scrollTop=e(_).scrollHeight)})}function N(){e(_)&&(h=e(_).scrollHeight-e(_).scrollTop-e(_).clientHeight<60)}ne(()=>(de(b()),e(S),Ut),()=>{b()&&b()!==e(S)&&(s(S,b()),(async()=>{var oe;await y(b());const I=((oe=bt(ut)[b()])==null?void 0:oe.lastSeq)??0;Ut({type:"subscribe",sessionId:b(),sinceSeq:I})})())}),ne(()=>(de(b()),de(A()),ut),()=>{var I,oe;b()&&A()&&((oe=(I=bt(ut)[b()])==null?void 0:I.order)==null?void 0:oe.length)===0&&y(b())}),ne(()=>(de(b()),p()),()=>{s(l,b()?Ta(p()[b()]??null):[])}),ne(()=>e(l),()=>{e(l)&&w()}),st(),et();var u=hr(),x=a(u),K=a(x),re=a(K);t(K);var te=n(K,2);t(x);var P=n(x,2);Xe(P,7,()=>e(l),(I,oe)=>I.seq??I.id??oe,(I,oe)=>{Pa(I,{get card(){return e(oe)}})},I=>{var oe=fr();o(I,oe)}),t(P),Et(P,I=>s(_,I),()=>e(_)),t(u),Y(()=>L(re,`实况 · ${e(l),r(()=>e(l).length)??""} 条`)),M("click",te,()=>Yt("/"+b())),M("scroll",P,N),o(j,u),at(),E()}var _r=f('<div class="trunc label svelte-va1nfd"> </div>'),mr=f('<div class="hint label svelte-va1nfd">…</div>'),gr=f('<div class="hint label svelte-va1nfd">读取失败</div>'),yr=f('<div class="hint label svelte-va1nfd">(二进制文件,无法预览)</div>'),wr=f('<div class="fv svelte-va1nfd"><!> <div class="body svelte-va1nfd"><!></div></div>');function kr(j,v){tt(v,!1);const p=d(),C=d(),E=d();let l=Ae(v,"directory",8),b=Ae(v,"path",8);const A=2e5;let _=d(""),h=d(!1),S=d(!1),y=d(!1),w=d(!1);async function N(){s(w,!0),s(y,!1);try{const $=await Ie.fileContent(l(),b());if($.type!=="text"){s(S,!0),s(_,"");return}s(S,!1),s(h,$.content.length>A),s(_,e(h)?$.content.slice(0,A):$.content)}catch{s(y,!0)}finally{s(w,!1)}}ne(()=>(de(l()),de(b())),()=>{l()&&b()&&(l(),b(),N())}),ne(()=>de(b()),()=>{s(p,/\.(md|markdown)$/i.test(b()))}),ne(()=>de(b()),()=>{s(C,b().split(".").pop()??"")}),ne(()=>(e(S),e(y),e(p),e(_),e(C)),()=>{s(E,e(S)||e(y)?"":e(p)?e(_):"```"+e(C)+`
|
|
2
|
-
`+e(_)+"\n```")}),st(),et();var u=wr(),x=a(u);{var K=$=>{var O=_r(),Z=a(O);t(O),Y(D=>L(Z,`文件超过 ${D??""} 字符,已截断显示`),[()=>r(()=>A.toLocaleString())]),o($,O)};F(x,$=>{e(h)&&$(K)})}var re=n(x,2),te=a(re);{var P=$=>{var O=mr();o($,O)},I=$=>{var O=gr();o($,O)},oe=$=>{var O=yr();o($,O)},Q=$=>{{let O=zt(()=>e(p)?e(_):e(E));_s($,{get src(){return e(O)}})}};F(te,$=>{e(w)?$(P):e(y)?$(I,1):e(S)?$(oe,2):$(Q,-1)})}t(re),t(u),o(j,u),at()}var xr=f('<div class="cmd mono svelte-1bw07gw"> </div>'),Ar=f('<div class="hint mono svelte-1bw07gw">…</div>'),Ir=f('<div class="hint mono svelte-1bw07gw">(找不到该工具调用的原始数据)</div>'),$r=f('<pre class="body mono err svelte-1bw07gw"> </pre>'),qr=f('<pre class="body mono svelte-1bw07gw"> </pre>'),Mr=f('<div class="hint mono svelte-1bw07gw"> </div>'),Sr=f('<div class="out svelte-1bw07gw"><div class="hd svelte-1bw07gw"><span class="tool mono svelte-1bw07gw"> </span> <span> </span></div> <!> <!></div>');function Tr(j,v){tt(v,!1);const p=d();let C=Ae(v,"sessionId",8),E=Ae(v,"messageId",8),l=Ae(v,"partId",8),b=Ae(v,"tick",8,0),A=d(""),_=d(""),h=d(""),S=d(""),y=d(""),w=d(!1),N=d(!0),u,x=!1;function K(U){return U.find(g=>(g==null?void 0:g.id)===l()&&(g==null?void 0:g.type)==="tool")??U.find(g=>{var ae;return(g==null?void 0:g.type)==="tool"&&((ae=g==null?void 0:g.state)==null?void 0:ae.callID)!=null&&(g==null?void 0:g.id)===l()})}async function re(){try{const U=await Ie.messageRaw(C(),E()),g=K((U==null?void 0:U.parts)??[]);if(!g){s(w,!0);return}s(w,!1),s(A,String(g.tool??""));const ae=g.state??{};s(_,String(ae.status??"pending"));const pe=ae.input??{};s(h,String(pe.command??pe.cmd??pe.filePath??pe.description??"")),s(S,typeof ae.output=="string"?ae.output:""),s(y,typeof ae.error=="string"?ae.error:"")}catch{s(w,!0)}finally{s(N,!1),!x&&(e(_)==="running"||e(_)==="pending")&&(clearTimeout(u),u=setTimeout(()=>{x||re()},2e3))}}Pt(()=>{x=!0,clearTimeout(u)}),ne(()=>(de(C()),de(E())),()=>{C()&&E()&&(C(),E(),re())}),ne(()=>(e(N),de(b())),()=>{!e(N)&&b()&&(b(),re())}),ne(()=>e(_),()=>{s(p,e(_)==="completed"||e(_)==="done"?"完成":e(_)==="error"?"出错":e(_)==="running"?"运行中":e(_)||"…")}),st(),et();var te=Sr(),P=a(te),I=a(P),oe=a(I,!0);t(I);var Q=n(I,2),$=a(Q,!0);t(Q),t(P);var O=n(P,2);{var Z=U=>{var g=xr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(h))),o(U,g)};F(O,U=>{e(h)&&U(Z)})}var D=n(O,2);{var X=U=>{var g=Ar();o(U,g)},me=U=>{var g=Ir();o(U,g)},ve=U=>{var g=$r(),ae=a(g,!0);t(g),Y(()=>L(ae,e(y))),o(U,g)},B=U=>{var g=qr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(S))),o(U,g)},V=U=>{var g=Mr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(_)==="running"||e(_)==="pending"?"运行中——输出将在完成时出现":"(无输出)")),o(U,g)};F(D,U=>{e(N)?U(X):e(w)?U(me,1):e(y)?U(ve,2):e(S)?U(B,3):U(V,-1)})}t(te),Y(()=>{L(oe,e(A)||"tool"),ye(Q,1,`st mono ${e(_)??""}`,"svelte-1bw07gw"),L($,e(p))}),o(j,te),at()}var Cr=f('<span class="count mono svelte-1x813in"> </span>'),zr=f('<span class="add svelte-1x813in"> </span>'),Er=f('<span class="del svelte-1x813in"> </span>'),Lr=f('<div class="hint mono svelte-1x813in">…</div>'),Br=f('<pre class="patch mono svelte-1x813in"> </pre>'),jr=f('<div class="hint mono svelte-1x813in">(无改动内容)</div>'),Dr=f('<div class="file svelte-1x813in"><button class="row svelte-1x813in"><span> </span> <span class="path mono svelte-1x813in"> </span> <span class="delta mono svelte-1x813in"><!> <!></span></button> <!></div>'),Pr=f('<div class="hint svelte-1x813in">工作区干净</div>'),Or=f('<div class="hint svelte-1x813in">…</div>'),Fr=f('<div class="git svelte-1x813in"><div class="hd svelte-1x813in"><span class="branch mono svelte-1x813in"> </span> <!></div> <!> <!></div>');function Rr(j,v){tt(v,!1);let p=Ae(v,"sessionId",8,void 0),C=Ae(v,"tick",8,0),E=d(""),l=d([]),b=d(new Map),A=d(new Set),_=d(!0),h=d(null);async function S(){try{const $=await Ie.vcs(p());s(E,($==null?void 0:$.branch)??""),s(l,($==null?void 0:$.status)??[])}catch{s(E,""),s(l,[])}finally{s(_,!1)}}async function y($){if(!(e(b).has($)||e(h)!==null)){s(h,$);try{const O=await Ie.vcsDiff(p(),$);s(b,new Map([...e(b),[$,(O==null?void 0:O.patch)??""]]))}catch{s(b,new Map([...e(b),[$,"(patch 读取失败)"]]))}finally{s(h,null)}}}function w($){if(e(A).has($)){s(A,new Set([...e(A)].filter(O=>O!==$)));return}s(A,new Set([...e(A),$])),y($)}const N=$=>$==="added"?"新增":$==="deleted"?"删除":$==="modified"?"修改":$??"";ne(()=>de(C()),()=>{C(),S()}),st(),et();var u=Fr(),x=a(u),K=a(x),re=a(K,!0);t(K);var te=n(K,2);{var P=$=>{var O=Cr(),Z=a(O);t(O),Y(()=>L(Z,`${e(l),r(()=>e(l).length)??""} 个文件`)),o($,O)};F(te,$=>{e(l),r(()=>e(l).length)&&$(P)})}t(x);var I=n(x,2);Xe(I,1,()=>e(l),$=>$.file,($,O)=>{var Z=Dr(),D=a(Z),X=a(D),me=a(X,!0);t(X);var ve=n(X,2),B=a(ve,!0);t(ve);var V=n(ve,2),U=a(V);{var g=he=>{var we=zr(),Fe=a(we);t(we),Y(()=>L(Fe,`+${e(O),r(()=>e(O).additions)??""}`)),o(he,we)};F(U,he=>{e(O),r(()=>e(O).additions)&&he(g)})}var ae=n(U,2);{var pe=he=>{var we=Er(),Fe=a(we);t(we),Y(()=>L(Fe,`−${e(O),r(()=>e(O).deletions)??""}`)),o(he,we)};F(ae,he=>{e(O),r(()=>e(O).deletions)&&he(pe)})}t(V),t(D);var Me=n(D,2);{var je=he=>{var we=ot(),Fe=Ke(we);{var Pe=se=>{var be=Lr();o(se,be)},Ue=se=>{var be=Br(),m=a(be,!0);t(be),Y(ce=>L(m,ce),[()=>(e(b),e(O),r(()=>e(b).get(e(O).file)))]),o(se,be)},ke=ht(()=>(e(b),e(O),r(()=>e(b).get(e(O).file)))),He=se=>{var be=jr();o(se,be)};F(Fe,se=>{e(h),e(O),r(()=>e(h)===e(O).file)?se(Pe):e(ke)?se(Ue,1):se(He,-1)})}o(he,we)},De=ht(()=>(e(A),e(O),r(()=>e(A).has(e(O).file))));F(Me,he=>{e(De)&&he(je)})}t(Z),Y((he,we)=>{qe(D,"aria-expanded",he),ye(X,1,`badge ${e(O),r(()=>e(O).status)??""}`,"svelte-1x813in"),L(me,we),L(B,(e(O),r(()=>e(O).file)))},[()=>(e(A),e(O),r(()=>e(A).has(e(O).file))),()=>(e(O),r(()=>N(e(O).status)))]),M("click",D,()=>w(e(O).file)),o($,Z)},$=>{var O=ot(),Z=Ke(O);{var D=X=>{var me=Pr();o(X,me)};F(Z,X=>{e(_)||X(D)})}o($,O)});var oe=n(I,2);{var Q=$=>{var O=Or();o($,O)};F(oe,$=>{e(_)&&$(Q)})}t(u),Y(()=>L(re,e(E)||"…")),o(j,u),at()}var Wr=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),Ur=f('<button role="tab" draggable="true"><span class="dlabel svelte-gu3dqx"> </span> <!> <span class="closer svelte-gu3dqx" role="button" tabindex="-1">✕</span></button>'),Hr=f('<div class="tabs-menu svelte-gu3dqx" role="menu"><button role="menuitem">关闭其他</button> <button role="menuitem">关闭全部</button></div>'),Jr=f('<button class="tabs-more svelte-gu3dqx" title="页签操作" aria-label="页签操作">⋯</button> <!>',1),Nr=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),Kr=f('<button role="menuitem" class="svelte-gu3dqx"> <!></button>'),Qr=f('<div class="plus-menu svelte-gu3dqx" role="menu"><button role="menuitem" class="svelte-gu3dqx">辅助对话</button> <div class="menu-sep svelte-gu3dqx"></div> <!> <div class="menu-sep svelte-gu3dqx"></div> <button role="menuitem" class="svelte-gu3dqx">Git</button></div>'),Vr=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Gr=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Yr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M9 11l3 3 8-8"></path><path d="M20 12v6a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h9"></path></svg>'),Zr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><path d="M13 2v7h7"></path></svg>'),Xr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="12" cy="12" r="3"></circle><path d="M12 2v3M12 19v3M2 12h3M19 12h3"></path></svg>'),el=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M12 2l2.4 4.9 5.4.8-3.9 3.8.9 5.4-4.8-2.5-4.8 2.5.9-5.4L4.2 7.7l5.4-.8z"></path></svg>'),tl=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>'),al=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),sl=f('<button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><!></span> <span class="l-text svelte-gu3dqx"> <!></span></button>'),nl=f('<div class="launcher svelte-gu3dqx"><p class="l-title svelte-gu3dqx">打开面板</p> <p class="l-desc svelte-gu3dqx">选择要在侧栏中打开的面板。</p> <div class="l-list svelte-gu3dqx"><!> <div class="l-sep svelte-gu3dqx"></div> <button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></span> <span class="l-text svelte-gu3dqx">辅助对话</span></button> <div class="l-sep svelte-gu3dqx"></div> <button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="6" cy="6" r="2.5"></circle><circle cx="6" cy="18" r="2.5"></circle><circle cx="18" cy="8" r="2.5"></circle><path d="M6 8.5v7M8 7c6 0 8 2 8 6v2.5"></path></svg></span> <span class="l-text svelte-gu3dqx">Git</span></button></div></div>'),rl=f('<aside class="inspector svelte-gu3dqx"><div class="head svelte-gu3dqx"><div class="head-main svelte-gu3dqx"><div class="section-label svelte-gu3dqx">会话</div> <div class="name svelte-gu3dqx"><span class="title-text svelte-gu3dqx"> </span></div></div> <button class="collapse-btn svelte-gu3dqx" title="收起面板" aria-label="收起面板"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-gu3dqx"><rect x="3" y="4" width="18" height="16" rx="2"></rect><path d="M15 4v16"></path><path d="M9 9l3 3-3 3"></path></svg></button></div> <div class="tabs svelte-gu3dqx" role="tablist"><!> <!> <div class="plus svelte-gu3dqx"><button class="plus-btn svelte-gu3dqx" aria-label="打开面板" title="打开面板">+</button> <!></div></div> <div class="pane svelte-gu3dqx"><!></div></aside>');function ll(j,v){tt(v,!1);const p=()=>ze(ft,"$sessionList",b),C=()=>ze(ut,"$feeds",b),E=()=>ze(Nt,"$sidePane",b),l=()=>ze(Ca,"$can",b),[b,A]=it(),_=d(),h=d(),S=d(),y=d(),w=d(),N=d();let u=Ae(v,"sessionId",8,void 0),x=d(0),K=d(-1),re=d();Pt(()=>clearTimeout(e(re)));let te=-1;function P(H){te=H}function I(H){te!==-1&&ms(te,H),te=-1}let oe=d(!1),Q=d();function $(H){e(oe)&&e(Q)&&!e(Q).contains(H.target)&&s(oe,!1)}function O(H){H.key==="Escape"&&(s(oe,!1),s(Z,!1))}let Z=d(!1),D=d(!1);async function X(){var H,J;if(!e(D)){s(D,!0),s(oe,!1);try{const z=(H=e(_))==null?void 0:H.directory,W=await Ie.createSession({directory:z,title:"辅助对话"}),c=W.id??((J=W.session)==null?void 0:J.id);c&&Nt.openPaneTab({id:`sidechat:${c}`,kind:"sidechat",title:"辅助对话",childId:c})}catch{}finally{s(D,!1)}}}function me(){const H=E().activeId;for(const J of E().tabs)J.id!==H&&Jt(J.id)}function ve(){for(const H of E().tabs)Jt(H.id)}let B=d({total:0,done:0,items:[]}),V;async function U(H){if(H)try{const J=await Ie.todo(H);if(H!==u())return;V=H,s(B,Oa(J))}catch{}}let g=d();const ae=H=>H==="tasks"&&e(B).total>0?`${e(B).done}/${e(B).total}`:"";ne(()=>(p(),de(u())),()=>{s(_,p().find(H=>H.id===u()))}),ne(()=>e(_),()=>{var H;s(h,(H=e(_))==null?void 0:H.title)}),ne(()=>(de(u()),C()),()=>{var H;s(S,u()?((H=C()[u()])==null?void 0:H.lastSeq)??0:0)}),ne(()=>(e(S),e(K),e(re),e(x)),()=>{e(S)!==e(K)&&(s(K,e(S)),clearTimeout(e(re)),s(re,setTimeout(()=>s(x,e(x)+1),1e3)))}),ne(()=>E(),()=>{s(y,E().activeId)}),ne(()=>(E(),e(y)),()=>{s(w,E().tabs.find(H=>H.id===e(y)))}),ne(()=>(E(),e(y)),()=>{s(N,E().tabs.findIndex(H=>H.id===e(y)))}),ne(()=>(de(u()),e(g)),()=>{u()!==e(g)&&(s(g,u()),U(u()))}),ne(()=>(e(x),de(u())),()=>{e(x)&&U(u())}),st(),et();var pe=rl();M("click",wt,$),M("keydown",wt,O);var Me=a(pe),je=a(Me),De=n(a(je),2),he=a(De),we=a(he,!0);t(he),t(De),t(je);var Fe=n(je,2);t(Me);var Pe=n(Me,2),Ue=a(Pe);Xe(Ue,3,()=>(E(),r(()=>E().tabs)),H=>H.id,(H,J,z)=>{var W=Ur();let c;var i=a(W),q=a(i,!0);t(i);var ie=n(i,2);{var ee=_e=>{var Ce=Wr(),Se=a(Ce);t(Ce),Y(()=>L(Se,`${e(B),r(()=>e(B).done)??""}/${e(B),r(()=>e(B).total)??""}`)),o(_e,Ce)};F(ie,_e=>{e(J),e(B),r(()=>e(J).kind==="home"&&e(J).homeId==="tasks"&&e(B).total>0)&&_e(ee)})}var T=n(ie,2);t(W),Y(()=>{c=ye(W,1,"tab svelte-gu3dqx",null,c,{active:e(y)===e(J).id}),qe(W,"aria-selected",(e(y),e(J),r(()=>e(y)===e(J).id))),qe(W,"title",(e(J),r(()=>e(J).kind==="file"?e(J).path:e(J).title))),L(q,(e(J),r(()=>e(J).title))),qe(T,"aria-label",(e(J),r(()=>`关闭 ${e(J).title}`)))}),M("click",T,Wt(()=>Jt(e(J).id))),M("keydown",T,Wt(_e=>_e.key==="Enter"&&Jt(e(J).id))),M("click",W,()=>Nt.activatePane(e(J).id)),M("dragstart",W,()=>P(e(z))),M("dragover",W,xa(()=>{})),M("drop",W,()=>I(e(z))),M("auxclick",W,xa(_e=>{_e.button===1&&Jt(e(J).id)})),o(H,W)});var ke=n(Ue,2);{var He=H=>{var J=Jr(),z=Ke(J),W=n(z,2);{var c=i=>{var q=Hr(),ie=a(q),ee=n(ie,2);t(q),M("click",ie,()=>{me(),s(Z,!1)}),M("click",ee,()=>{ve(),s(Z,!1)}),o(i,q)};F(W,i=>{e(Z)&&i(c)})}M("click",z,()=>s(Z,!e(Z))),o(H,J)};F(ke,H=>{E(),r(()=>E().tabs.length>1)&&H(He)})}var se=n(ke,2),be=a(se),m=n(be,2);{var ce=H=>{var J=Qr(),z=a(J),W=n(z,4);Xe(W,1,()=>Ia,i=>i.homeId,(i,q)=>{var ie=Kr(),ee=a(ie,!0),T=n(ee);{var _e=Se=>{var $e=Nr(),Ne=a($e,!0);t($e),Y(Ye=>L(Ne,Ye),[()=>(e(q),r(()=>ae(e(q).homeId)))]),o(Se,$e)},Ce=ht(()=>(e(q),r(()=>ae(e(q).homeId))));F(T,Se=>{e(Ce)&&Se(_e)})}t(ie),Y(()=>L(ee,(e(q),r(()=>e(q).title)))),M("click",ie,()=>{Aa(e(q).homeId),s(oe,!1)}),o(i,ie)});var c=n(W,4);t(J),Y(()=>z.disabled=e(D)),M("click",z,X),M("click",c,()=>{Nt.openPaneTab({id:"git",kind:"git",title:"Git"}),s(oe,!1)}),o(H,J)};F(m,H=>{e(oe)&&H(ce)})}t(se),Et(se,H=>s(Q,H),()=>e(Q)),t(Pe);var k=n(Pe,2),G=a(k);{var R=H=>{var J=ot(),z=Ke(J);{var W=ee=>{var T=ot(),_e=Ke(T);{var Ce=$e=>{Tn($e,{get sessionId(){return u()},get tick(){return e(x)}})},Se=ht(()=>(l(),r(()=>l()("todos"))));F(_e,$e=>{e(Se)&&$e(Ce)})}o(ee,T)},c=ee=>{var T=Vr(),_e=Ke(T);Xn(_e,{get sessionId(){return u()},get tick(){return e(x)}});var Ce=n(_e,4);{var Se=Ne=>{lr(Ne,{get sessionId(){return u()},get tick(){return e(x)}})},$e=ht(()=>(l(),r(()=>l()("worktrees"))));F(Ce,Ne=>{e($e)&&Ne(Se)})}o(ee,T)},i=ee=>{var T=ot(),_e=Ke(T);{var Ce=$e=>{pr($e,{get sessionId(){return u()},get tick(){return e(x)}})},Se=ht(()=>(l(),r(()=>l()("todos"))));F(_e,$e=>{e(Se)&&$e(Ce)})}o(ee,T)},q=ee=>{var T=ot(),_e=Ke(T);{var Ce=$e=>{Nn($e,{get tick(){return e(x)}})},Se=ht(()=>(l(),r(()=>l()("skills"))));F(_e,$e=>{e(Se)&&$e(Ce)})}o(ee,T)},ie=ee=>{var T=Gr(),_e=Ke(T);Fn(_e,{get tick(){return e(x)}});var Ce=n(_e,4);{var Se=Ne=>{Ln(Ne,{get tick(){return e(x)}})},$e=ht(()=>(l(),r(()=>l()("mcp"))));F(Ce,Ne=>{e($e)&&Ne(Se)})}o(ee,T)};F(z,ee=>{e(w),r(()=>e(w).homeId==="tasks")?ee(W):(e(w),r(()=>e(w).homeId==="files")?ee(c,1):(e(w),r(()=>e(w).homeId==="subs")?ee(i,2):(e(w),r(()=>e(w).homeId==="skills")?ee(q,3):(e(w),r(()=>e(w).homeId==="config")&&ee(ie,4)))))})}o(H,J)},le=H=>{br(H,{get childId(){return e(w),r(()=>e(w).childId)},get tick(){return e(x)}})},Te=H=>{kr(H,{get directory(){return e(w),r(()=>e(w).directory)},get path(){return e(w),r(()=>e(w).path)}})},Be=H=>{Tr(H,{get sessionId(){return e(w),r(()=>e(w).sessionId)},get messageId(){return e(w),r(()=>e(w).messageId)},get partId(){return e(w),r(()=>e(w).partId)},get tick(){return e(x)}})},ue=H=>{Rr(H,{get sessionId(){return u()},get tick(){return e(x)}})},xe=H=>{An(H,{get childId(){return e(w),r(()=>e(w).childId)},get tick(){return e(x)}})},Je=H=>{var J=nl(),z=n(a(J),4),W=a(z);Xe(W,1,()=>Ia,q=>q.homeId,(q,ie)=>{var ee=sl(),T=a(ee),_e=a(T);{var Ce=Ee=>{var Le=Yr();o(Ee,Le)},Se=Ee=>{var Le=Zr();o(Ee,Le)},$e=Ee=>{var Le=Xr();o(Ee,Le)},Ne=Ee=>{var Le=el();o(Ee,Le)},Ye=Ee=>{var Le=tl();o(Ee,Le)};F(_e,Ee=>{e(ie),r(()=>e(ie).homeId==="tasks")?Ee(Ce):(e(ie),r(()=>e(ie).homeId==="files")?Ee(Se,1):(e(ie),r(()=>e(ie).homeId==="subs")?Ee($e,2):(e(ie),r(()=>e(ie).homeId==="skills")?Ee(Ne,3):Ee(Ye,-1))))})}t(T);var ge=n(T,2),fe=a(ge),Ve=n(fe);{var Qe=Ee=>{var Le=al(),Oe=a(Le);t(Le),Y(()=>L(Oe,`${e(B),r(()=>e(B).done)??""}/${e(B),r(()=>e(B).total)??""}`)),o(Ee,Le)};F(Ve,Ee=>{e(ie),e(B),r(()=>e(ie).homeId==="tasks"&&e(B).total>0)&&Ee(Qe)})}t(ge),t(ee),Y(()=>L(fe,`${e(ie),r(()=>e(ie).title)??""} `)),M("click",ee,()=>Aa(e(ie).homeId)),o(q,ee)});var c=n(W,4),i=n(c,4);t(z),t(J),Y(()=>c.disabled=e(D)),M("click",c,X),M("click",i,()=>Nt.openPaneTab({id:"git",kind:"git",title:"Git"})),o(H,J)};F(G,H=>{e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="home"})?H(R):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="subagent"})?H(le,1):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="file"})?H(Te,2):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="tool"})?H(Be,3):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="git"})?H(ue,4):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="sidechat"})?H(xe,5):H(Je,-1))))))})}t(k),t(pe),Y(H=>{qe(De,"title",e(h)??u()),L(we,H)},[()=>(e(h),de(u()),r(()=>e(h)||(u()?"…"+u().slice(-8):"No session")))]),M("click",Fe,()=>Qt.set(!1)),M("click",be,()=>s(oe,!e(oe))),o(j,pe),at(),A()}function il(j,v){const p=v.trim().toLowerCase();return p?j.filter(C=>(C.title??"").toLowerCase().includes(p)||(C.agent??"").toLowerCase().includes(p)||C.id.toLowerCase().includes(p)):j}var ol=f('<div class="empty svelte-wh9uu8">无匹配结果</div>'),cl=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>'),vl=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>'),dl=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>'),ul=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>'),pl=f('<div class="error svelte-wh9uu8"> </div>'),fl=f('<div class="about mono svelte-wh9uu8"> </div>'),hl=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 bl(j,v){tt(v,!1);const p=()=>ze(Ra,"$page",A),C=()=>ze(oa,"$backends",A),E=()=>ze(ft,"$sessionList",A),l=()=>ze(es,"$currentBackendId",A),b=()=>ze(Ca,"$can",A),[A,_]=it(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d(),K=d();let re=Ae(v,"open",8,!1);const te=fs();let P=d(""),I=d(0),oe=d(""),Q=d(""),$=d(null),O=d([]),Z=d(null);function D(m,ce,k){const G=k.trim().toLowerCase();return G?m.toLowerCase().includes(G)||ce.toLowerCase().includes(G):!0}const X=[{name:"new-session",description:"New session"},{name:"toggle-panel",description:"Collapse / expand the agent panel"},{name:"cycle-accent",description:"Cycle accent color"}];function me(m){var k,G,R;const ce=m.replace(/[^a-zA-Z0-9 ]/g," ").trim().split(/[\s-]+/).filter(Boolean);return((((k=ce[0])==null?void 0:k[0])??"")+(((G=ce[1])==null?void 0:G[0])??((R=ce[0])==null?void 0:R[1])??"")).toUpperCase()||m.slice(0,2).toUpperCase()}function ve(m,ce,k,G,R){const le=[];let Te=0;if(m.length){le.push({type:"group",label:"Agents",icon:"◆"});for(const ue of m)le.push({type:"agent",agent:ue,selectableIndex:Te++})}if(ce.length){le.push({type:"group",label:"Sessions",icon:"#"});for(const ue of ce)le.push({type:"session",session:ue,selectableIndex:Te++})}const Be=[...k.map(ue=>({...ue,kind:"backend"})),...G.map(ue=>({...ue}))];if(Be.length){le.push({type:"group",label:"Commands",icon:"/"});for(const ue of Be){const xe=ue.kind==="backend"&&!R;le.push({type:"command",command:ue,disabled:xe,selectableIndex:xe?void 0:Te++})}}return le}let B=null,V=d();function U(m){B=document.activeElement,m.focus()}function g(){var m;te("close"),s(P,""),s(oe,""),(m=B==null?void 0:B.focus)==null||m.call(B),B=null}function ae(m){Yt(`/${m}/`),g()}function pe(){const m=l()??"opencode",ce=Ct(m),k=aa[(aa.indexOf(ce)+1)%aa.length];pa(m,k)}async function Me(m){fa(m);try{await na(m)}catch{}g()}async function je(m){if(m==="cycle-accent"){pe(),g();return}if(m==="new-session"){Dt.set(!0),g();return}if(m==="toggle-panel"){Rt.update(ce=>!ce),g();return}if(!(!e(h)||e(Q))){s(Q,m),s(oe,"");try{await Ie.runCommand({sessionId:e(h),command:m}),g()}catch(ce){s(oe,`/${m} failed: ${ce.message}`)}finally{s(Q,"")}}}function De(m){m.type==="agent"&&m.agent?Me(m.agent.id):m.type==="session"&&m.session?ae(m.session.id):m.type==="command"&&!m.disabled&&m.command&&je(m.command.name)}function he(m){if(m.key==="Escape"){g();return}if(m.key==="Tab"){we(m);return}if(e(K)!==0){if(m.key==="ArrowDown"){m.preventDefault(),s(I,Math.min(e(I)+1,e(K)-1)),Fe();return}if(m.key==="ArrowUp"){m.preventDefault(),s(I,Math.max(e(I)-1,0)),Fe();return}if(m.key==="Enter"){const ce=e(x).find(k=>k.selectableIndex===e(I));ce&&(m.preventDefault(),De(ce))}}}function we(m){if(m.key!=="Tab"||!e(V))return;const ce=Array.from(e(V).querySelectorAll("input, button:not(:disabled)"));if(ce.length===0)return;const k=ce[0],G=ce[ce.length-1];m.shiftKey&&document.activeElement===k?(m.preventDefault(),G.focus()):!m.shiftKey&&document.activeElement===G&&(m.preventDefault(),k.focus())}async function Fe(){await hs();const m=document.querySelector(".palette .row.active");m==null||m.scrollIntoView({block:"nearest"})}function Pe(m,ce){return ce?"Open a session first":(m==null?void 0:m.description)??""}ne(()=>(de(re()),e($),Ie),()=>{re()&&!e($)&&Ie.version().then(m=>{s($,{version:m.version,uptime:m.uptime})}).catch(()=>{})}),ne(()=>p(),()=>{s(h,p().params.sessionId)}),ne(()=>C(),()=>{var m;s(S,((m=C())==null?void 0:m.backends)??[])}),ne(()=>(e(S),e(P)),()=>{s(y,e(S).filter(m=>D(m.name??m.id,m.id,e(P))))}),ne(()=>(E(),e(P)),()=>{s(w,il(E(),e(P)))}),ne(()=>(de(re()),l(),e(Z),b(),Ie),()=>{re()&&l()&&l()!==e(Z)&&(s(Z,l()),b()("commands")?Ie.commands(l()).then(m=>{s(O,m)}).catch(()=>{s(Z,null)}):s(O,[]))}),ne(()=>(e(O),e(P)),()=>{s(N,e(O).filter(m=>D(m.name,m.description,e(P))))}),ne(()=>e(P),()=>{s(u,X.filter(m=>D(m.name,m.description,e(P))))}),ne(()=>(e(y),e(w),e(N),e(u),e(h)),()=>{s(x,ve(e(y),e(w),e(N),e(u),e(h)))}),ne(()=>e(x),()=>{s(K,e(x).filter(m=>m.selectableIndex!=null).length)}),ne(()=>(e(I),e(K)),()=>{s(I,e(K)?Math.max(0,Math.min(e(I),e(K)-1)):-1)}),ne(()=>e(P),()=>{e(P),s(I,0)}),st();var Ue={close:g};et();var ke=ot(),He=Ke(ke);{var se=m=>{var ce=hl(),k=a(ce),G=n(k,2),R=a(G),le=a(R),Te=a(le);It(Te,{name:"search",size:14}),t(le);var Be=n(le,2);_t(Be),ba(Be,i=>U==null?void 0:U(i)),Lt(()=>mt(Be,()=>e(P),i=>s(P,i))),Lt(()=>M("keydown",Be,he)),$t(2),t(R);var ue=n(R,2),xe=a(ue);{var Je=i=>{var q=ol();o(i,q)},H=i=>{var q=ot(),ie=Ke(q);Xe(ie,1,()=>e(x),ee=>{var T,_e,Ce;return((T=ee.agent)==null?void 0:T.id)??((_e=ee.session)==null?void 0:_e.id)??((Ce=ee.command)==null?void 0:Ce.name)??ee.label??""},(ee,T)=>{var _e=ot(),Ce=Ke(_e);{var Se=ge=>{var fe=cl(),Ve=a(fe),Qe=a(Ve,!0);t(Ve);var Ee=n(Ve,2),Le=a(Ee,!0);t(Ee),t(fe),Y(()=>{L(Qe,(e(T),r(()=>e(T).icon))),L(Le,(e(T),r(()=>e(T).label)))}),o(ge,fe)},$e=ge=>{var fe=vl();let Ve;var Qe=a(fe),Ee=a(Qe,!0);t(Qe);var Le=n(Qe,2),Oe=a(Le,!0);t(Le);var Re=n(Le,2),Ge=a(Re,!0);t(Re),t(fe),Y(qt=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I)}),qe(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Ee,qt),L(Oe,(e(T),r(()=>{var ct,kt;return((ct=e(T).agent)==null?void 0:ct.name)??((kt=e(T).agent)==null?void 0:kt.id)??""}))),L(Ge,(e(T),C(),r(()=>{var ct,kt,We;return((ct=e(T).agent)==null?void 0:ct.id)===((kt=C())==null?void 0:kt.activeId)?"active":((We=e(T).agent)==null?void 0:We.status)??""})))},[()=>(e(T),r(()=>{var qt,ct;return me(((qt=e(T).agent)==null?void 0:qt.name)??((ct=e(T).agent)==null?void 0:ct.id)??"")}))]),M("click",fe,()=>{e(T).agent&&Me(e(T).agent.id)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)},Ne=ge=>{var fe=dl();let Ve;var Qe=n(a(fe),2),Ee=a(Qe,!0);t(Qe);var Le=n(Qe,2),Oe=a(Le,!0);t(Le),t(fe),Y(Re=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I)}),qe(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Ee,Re),L(Oe,(e(T),r(()=>{var Ge;return((Ge=e(T).session)==null?void 0:Ge.agent)??""})))},[()=>(e(T),r(()=>{var Re,Ge;return((Re=e(T).session)==null?void 0:Re.title)??((Ge=e(T).session)==null?void 0:Ge.id.slice(-8))??""}))]),M("click",fe,()=>{e(T).session&&ae(e(T).session.id)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)},Ye=ge=>{var fe=ul();let Ve;var Qe=n(a(fe),2),Ee=a(Qe,!0);t(Qe);var Le=n(Qe,2),Oe=a(Le,!0);t(Le),t(fe),Y(Re=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I),disabled:e(T).disabled}),fe.disabled=(e(T),e(Q),r(()=>{var Ge;return e(T).disabled||e(Q)===((Ge=e(T).command)==null?void 0:Ge.name)})),qe(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Ee,(e(T),r(()=>{var Ge;return((Ge=e(T).command)==null?void 0:Ge.name)??""}))),L(Oe,Re)},[()=>(e(Q),e(T),r(()=>{var Re;return e(Q)===((Re=e(T).command)==null?void 0:Re.name)?"运行中…":Pe(e(T).command,e(T).disabled)}))]),M("click",fe,()=>{e(T).command&&je(e(T).command.name)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)};F(Ce,ge=>{e(T),r(()=>e(T).type==="group")?ge(Se):(e(T),r(()=>e(T).type==="agent")?ge($e,1):(e(T),r(()=>e(T).type==="session")?ge(Ne,2):(e(T),r(()=>e(T).type==="command")&&ge(Ye,3))))})}o(ee,_e)}),o(i,q)};F(xe,i=>{e(x),r(()=>e(x).length===0)?i(Je):i(H,-1)})}var J=n(xe,2);{var z=i=>{var q=pl(),ie=a(q,!0);t(q),Y(()=>L(ie,e(oe))),o(i,q)};F(J,i=>{e(oe)&&i(z)})}var W=n(J,2);{var c=i=>{var q=fl(),ie=a(q);t(q),Y(()=>L(ie,`ocrc v${e($),r(()=>e($).version)??""} · uptime ${e($),r(()=>e($).uptime)??""}`)),o(i,q)};F(W,i=>{e($)&&i(c)})}t(ue),t(G),Et(G,i=>s(V,i),()=>e(V)),t(ce),M("click",k,g),M("keydown",G,we),o(m,ce)};F(He,m=>{re()&&m(se)})}o(j,ke),ks(v,"close",g);var be=at(Ue);return _(),be}var _l=f('<div class="empty svelte-cfrpez">正在加载 agent…</div>'),ml=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>'),gl=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>'),yl=f('<button class="recent svelte-cfrpez" type="button"><span class="recent-name svelte-cfrpez"> </span> <span class="recent-dir mono svelte-cfrpez"> </span></button>'),wl=f('<div><span class="recents-label mono svelte-cfrpez"> </span> <div class="recents-list svelte-cfrpez"></div></div>'),kl=f('<div class="error svelte-cfrpez"> </div>'),xl=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 Al(j,v){tt(v,!1);const p=()=>ze(oa,"$backends",l),C=()=>ze(ft,"$sessionList",l),E=()=>ze(Dt,"$newSessionOpen",l),[l,b]=it(),A=d(),_=d(),h=d(),S=d();let y=d(""),w=d(""),N=d(""),u=d(!1),x=d(null),K=d(!1);function re(V){const U=V.split(/[\s\-_:./]+/).filter(Boolean);return U.length>=2?(U[0][0]+U[1][0]).toUpperCase():V.slice(0,2).toUpperCase()}function te(V){return re((V==null?void 0:V.name)||(V==null?void 0:V.id)||"OC")}function P(V){return V==="online"||V==="connected"?"online":V==="connecting"||V==="reconnecting"?"connecting":V==="offline"?"offline":"online"}function I(){Dt.set(!1),s(x,null)}function oe(V){s(w,V),s(K,!1)}async function Q(){const V=e(w).trim();if(!V){s(x,"需要填写工作目录");return}if(!e(u)){s(u,!0),s(x,null);try{await na(e(y));const U=await Ie.createSession({directory:V});ft.set(await Ie.sessions()),gs.set(await Ie.workspaces()),I(),Yt(`/${U.id}/`)}catch(U){s(x,U.message)}finally{s(u,!1)}}}function $(V){if(V.key==="Escape"){I();return}V.key==="Tab"&&X(V)}let O=d();function Z(V){return Array.from(V.querySelectorAll("button, input, [tabindex]")).filter(U=>!U.hasAttribute("disabled"))}function D(V){const U=document.activeElement,g=V.querySelector("input:not([disabled])")??Z(V)[0];return g==null||g.focus(),{destroy(){var ae;(ae=U==null?void 0:U.focus)==null||ae.call(U)}}}function X(V){if(!e(O))return;const U=Z(e(O));if(U.length===0)return;const g=U[0],ae=U[U.length-1];V.shiftKey&&document.activeElement===g?(V.preventDefault(),ae.focus()):!V.shiftKey&&document.activeElement===ae&&(V.preventDefault(),g.focus())}ne(()=>p(),()=>{var V;s(A,((V=p())==null?void 0:V.backends)??[])}),ne(()=>(p(),e(A)),()=>{var V,U;s(_,((V=p())==null?void 0:V.activeId)??((U=e(A)[0])==null?void 0:U.id)??"opencode")}),ne(()=>(e(y),e(_)),()=>{s(y,e(y)||e(_))}),ne(()=>(p(),e(y)),()=>{var V,U;s(h,((U=(V=p())==null?void 0:V.backends.find(g=>g.id===e(y)))==null?void 0:U.name)??e(y))}),ne(()=>(C(),e(y)),()=>{s(S,(()=>{const V=new Set,U=[];for(const g of[...C()].sort((ae,pe)=>pe.lastActiveAt-ae.lastActiveAt))!(g.backendId===e(y)||!g.backendId&&e(y)==="opencode")||!g.directory||V.has(g.directory)||(V.add(g.directory),U.push({directory:g.directory,name:g.directory.replace(/\/+$/,"").split("/").pop()||g.directory}));return U})())}),st(),et();var me=ot();M("keydown",wt,$);var ve=Ke(me);{var B=V=>{var U=xl(),g=a(U),ae=n(g,2),pe=a(ae),Me=n(a(pe),2),je=a(Me);It(je,{name:"close",size:14}),t(Me),t(pe);var De=n(pe,2),he=a(De);{var we=ue=>{var xe=_l();o(ue,xe)},Fe=ue=>{var xe=gl(),Je=n(a(xe),2);Xe(Je,5,()=>e(A),H=>H.id,(H,J)=>{const z=zt(()=>(de(Ct),e(J),r(()=>Ct(e(J).id)))),W=zt(()=>(e(J),e(y),r(()=>e(J).id===e(y))));var c=ml();let i;var q=a(c),ie=a(q,!0);t(q);var ee=n(q,2),T=a(ee),_e=a(T,!0);t(T),t(ee);var Ce=n(ee,2),Se=a(Ce,!0);t(Ce),t(c),Y(($e,Ne,Ye)=>{i=ye(c,1,"agent-chip svelte-cfrpez",null,i,{selected:e(W)}),qe(c,"aria-checked",e(W)),dt(q,`background:${de(St),de(e(z)),r(()=>St[e(z)])??""}; color:${de(rt),de(e(z)),r(()=>rt[e(z)])??""}; border-color:${de(Tt),de(e(z)),r(()=>Tt[e(z)])??""}`),L(ie,$e),ye(ee,1,`chip-status ${Ne??""}`,"svelte-cfrpez"),dt(ee,`--dot:${de(rt),de(e(z)),r(()=>rt[e(z)])??""}`),L(_e,Ye),L(Se,(e(J),r(()=>e(J).name??e(J).id)))},[()=>(e(J),r(()=>te(e(J)))),()=>(e(J),r(()=>P(e(J).status))),()=>(e(J),r(()=>P(e(J).status)))]),M("click",c,()=>{s(y,e(J).id)}),o(H,c)}),t(Je),t(xe),o(ue,xe)};F(he,ue=>{e(A),r(()=>e(A).length===0)?ue(we):ue(Fe,-1)})}var Pe=n(he,2),Ue=n(a(Pe),2),ke=n(a(Ue),2);_t(ke);var He=n(ke,2);t(Ue);var se=n(Ue,2);{var be=ue=>{var xe=wl();let Je;var H=a(xe),J=a(H);t(H);var z=n(H,2);Xe(z,5,()=>e(S),W=>W.directory,(W,c)=>{var i=yl(),q=a(i),ie=a(q,!0);t(q);var ee=n(q,2),T=a(ee,!0);t(ee),t(i),Y(()=>{qe(i,"title",(e(c),r(()=>e(c).directory))),L(ie,(e(c),r(()=>e(c).name))),L(T,(e(c),r(()=>e(c).directory)))}),M("click",i,()=>oe(e(c).directory)),o(W,i)}),t(z),t(xe),Y(()=>{Je=ye(xe,1,"recents svelte-cfrpez",null,Je,{open:e(K)}),L(J,`recent · ${e(h)??""}`)}),o(ue,xe)};F(se,ue=>{e(S),r(()=>e(S).length>0)&&ue(be)})}t(Pe);var m=n(Pe,2),ce=n(a(m),2);_t(ce),t(m);var k=n(m,2);{var G=ue=>{var xe=kl(),Je=a(xe,!0);t(xe),Y(()=>L(Je,e(x))),o(ue,xe)};F(k,ue=>{e(x)&&ue(G)})}t(De);var R=n(De,2),le=a(R),Te=n(le,2),Be=a(Te,!0);t(Te),t(R),t(ae),Et(ae,ue=>s(O,ue),()=>e(O)),ba(ae,ue=>D==null?void 0:D(ue)),t(U),Y(ue=>{le.disabled=e(u),Te.disabled=ue,L(Be,e(u)?"Creating…":"Create")},[()=>(e(u),e(w),r(()=>e(u)||!e(w).trim()))]),M("click",g,I),M("click",Me,I),mt(ke,()=>e(w),ue=>s(w,ue)),M("focus",ke,()=>{s(K,!0)}),M("click",He,()=>s(K,!e(K))),mt(ce,()=>e(N),ue=>s(N,ue)),M("click",le,I),M("click",Te,Q),o(V,U)};F(ve,V=>{E()&&V(B)})}o(j,me),at(),b()}const Il="data:image/png;base64,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";var $l=gt('<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>'),ql=gt('<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>'),Ml=f('<img alt="飞书 / Lark"/>');function Ja(j,v){let p=Ae(v,"channel",8),C=Ae(v,"size",8,30);var E=ot(),l=Ke(E);{var b=h=>{var S=$l();Y(()=>{qe(S,"width",C()),qe(S,"height",C())}),o(h,S)},A=h=>{var S=ql();Y(()=>{qe(S,"width",C()),qe(S,"height",C())}),o(h,S)},_=h=>{var S=Ml();Y(()=>{qe(S,"src",Il),qe(S,"width",C()),qe(S,"height",C()),dt(S,`border-radius: ${C()*.18}px`)}),o(h,S)};F(l,h=>{p()==="telegram"?h(b):p()==="wechat"?h(A,1):h(_,-1)})}o(j,E)}var Sl=f('<button><span class="ch-logo svelte-b8emeh"><!></span> <span class="ch-name"> </span> <span> </span></button>'),Tl=f('<span class="note svelte-b8emeh"> </span>'),Cl=f('<p class="hint svelte-b8emeh">自定义白名单已保存——用工作区切换器添加条目后再来这里勾选。</p>'),zl=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>'),El=f("<span> </span>"),Ll=f('<div class="qr-expired svelte-b8emeh"><span>二维码已过期</span> <button class="copy svelte-b8emeh">刷新二维码</button></div>'),Bl=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),jl=f('<div class="pair-stopped svelte-b8emeh"><span>已停止配对。</span> <button class="copy svelte-b8emeh">重新开始</button></div>'),Dl=f('<p class="hint svelte-b8emeh">配对信息加载中…</p>'),Pl=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 Ol(j,v){tt(v,!1);const p=()=>ze(ia,"$channelsOpen",C),[C,E]=it(),l=d(),b=d(),A=d(),_=d();let h=d([]),S=d(),y=d(null),w=d(""),N=d(""),u=d(!1),x=d(Date.now()),K=d(!1),re;async function te(){try{s(h,(await Ie.channels()).channels??[]),!e(S)&&e(h).length>0&&s(S,e(h)[0].id)}catch{}}async function P(){s(K,!1);try{s(y,await Ie.pairQr())}catch{s(y,null)}}function I(){s(K,!0)}ha(()=>{te(),P(),re=setInterval(()=>s(x,Date.now()),1e3)}),Pt(()=>{re&&clearInterval(re)});function oe(g){return g==="telegram"?"Telegram":g==="wechat"?"微信":g==="lark"?"Lark":g}function Q(){ia.set(!1)}function $(g){s(S,g),s(w,""),s(N,"")}async function O(g){s(h,e(h).map(ae=>ae.id===g.id?{...ae,enabled:!ae.enabled}:ae));try{await Ie.updateChannel(g.id,{enabled:!g.enabled})}catch{}}async function Z(g,ae){s(h,e(h).map(pe=>pe.id===g.id?{...pe,replyGranularity:ae}:pe));try{await Ie.updateChannel(g.id,{replyGranularity:ae})}catch{}}async function D(g){if(!e(w).trim()){s(N,"请输入凭证内容");return}try{await Ie.updateChannel(g.id,{credentials:{token:e(w).trim()}}),s(N,"已保存——重启实例后生效"),s(w,"")}catch{s(N,"保存失败")}}async function X(){if(e(l)){try{await Ie.resetChannel(e(l).id)}catch{}await te()}}async function me(){if(e(y))try{await navigator.clipboard.writeText(e(y).url),s(u,!0),setTimeout(()=>s(u,!1),1600)}catch{}}function ve(g){g.key==="Escape"&&Q()}ne(()=>(e(h),e(S)),()=>{s(l,e(h).find(g=>g.id===e(S))??e(h)[0])}),ne(()=>(e(y),e(x)),()=>{var g;s(b,(g=e(y))!=null&&g.expiresAt?Math.max(0,e(y).expiresAt-e(x)):null)}),ne(()=>e(b),()=>{s(A,e(b)!==null&&e(b)<=0)}),ne(()=>e(b),()=>{s(_,e(b)===null?"":`${Math.floor(e(b)/6e4)}:${String(Math.floor(e(b)%6e4/1e3)).padStart(2,"0")}`)}),st(),et();var B=ot();M("keydown",wt,ve);var V=Ke(B);{var U=g=>{var ae=Pl(),pe=a(ae),Me=n(pe,2),je=a(Me),De=n(a(je),2);t(je);var he=n(je,2),we=a(he);Xe(we,5,()=>e(h),m=>m.id,(m,ce)=>{var k=Sl();let G;var R=a(k),le=a(R);Ja(le,{get channel(){return e(ce),r(()=>e(ce).channel)},size:22}),t(R);var Te=n(R,2),Be=a(Te,!0);t(Te);var ue=n(Te,2);let xe;var Je=a(ue,!0);t(ue),t(k),Y(H=>{var J;G=ye(k,1,"ch svelte-b8emeh",null,G,{sel:((J=e(l))==null?void 0:J.id)===e(ce).id}),L(Be,H),xe=ye(ue,1,"ch-state svelte-b8emeh",null,xe,{on:e(ce).enabled}),L(Je,(e(ce),r(()=>e(ce).enabled?"已启用":"已停用")))},[()=>(e(ce),r(()=>oe(e(ce).channel)))]),M("click",k,()=>$(e(ce).id)),o(m,k)}),t(we);var Fe=n(we,2);{var Pe=m=>{var ce=zl(),k=a(ce),G=a(k),R=a(G,!0);t(G);var le=n(G,2);let Te;t(k);var Be=n(k,2),ue=a(Be);{var xe=Oe=>{var Re=ra();Y(()=>L(Re,`${e(l),r(()=>{var Ge;return(Ge=e(l).live)!=null&&Ge.connected?"轮询运行中":"未在轮询"})??""}${e(l),r(()=>{var Ge;return(Ge=e(l).live)!=null&&Ge.username?` · @${e(l).live.username}`:""})??""}。
|
|
3
|
-
停用/启用在重启实例后生效。`)),o(Oe,Re)},Je=Oe=>{var Re=ra("待接入:凭证保存后,通道本体在后续版本启用。");o(Oe,Re)};F(ue,Oe=>{e(l),r(()=>e(l).channel==="telegram")?Oe(xe):Oe(Je,-1)})}t(Be);var H=n(Be,2),J=n(a(H),2);_t(J);var z=n(J,2),W=a(z),c=n(W,2);{var i=Oe=>{var Re=Tl(),Ge=a(Re,!0);t(Re),Y(()=>L(Ge,e(N))),o(Oe,Re)};F(c,Oe=>{e(N)&&Oe(i)})}t(z),t(H);var q=n(H,2),ie=n(a(q),2),ee=a(ie);let T;var _e=n(ee,2);let Ce;t(ie),t(q);var Se=n(q,2),$e=n(a(Se),2),Ne=a($e);let Ye;var ge=n(Ne,2);let fe;t($e);var Ve=n($e,2);{var Qe=Oe=>{var Re=Cl();o(Oe,Re)};F(Ve,Oe=>{e(l),r(()=>e(l).workspaces.mode==="custom")&&Oe(Qe)})}t(Se);var Ee=n(Se,2),Le=n(a(Ee),2);t(Ee),t(ce),Y(Oe=>{L(R,Oe),Te=ye(le,1,"switch svelte-b8emeh",null,Te,{on:e(l).enabled}),qe(le,"aria-pressed",(e(l),r(()=>e(l).enabled))),qe(J,"placeholder",(e(l),r(()=>e(l).channel==="telegram"?"BotFather token(留空保持不变)":"凭证(预留)"))),T=ye(ee,1,"opt svelte-b8emeh",null,T,{sel:e(l).replyGranularity==="standard"}),Ce=ye(_e,1,"opt svelte-b8emeh",null,Ce,{sel:e(l).replyGranularity==="detailed"}),Ye=ye(Ne,1,"opt svelte-b8emeh",null,Ye,{sel:e(l).workspaces.mode==="all"}),fe=ye(ge,1,"opt svelte-b8emeh",null,fe,{sel:e(l).workspaces.mode==="custom"})},[()=>(e(l),r(()=>oe(e(l).channel)))]),M("click",le,()=>O(e(l))),mt(J,()=>e(w),Oe=>s(w,Oe)),M("click",W,()=>D(e(l))),M("click",ee,()=>Z(e(l),"standard")),M("click",_e,()=>Z(e(l),"detailed")),M("click",Ne,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"all"}}).then(te)),M("click",ge,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"custom",dirs:[]}}).then(te)),M("click",Le,X),o(m,ce)};F(Fe,m=>{e(l)&&m(Pe)})}t(he);var Ue=n(he,2),ke=a(Ue);{var He=m=>{var ce=Bl(),k=Ke(ce),G=a(k),R=a(G),le=n(a(R));{var Te=q=>{var ie=El();let ee;var T=a(ie,!0);t(ie),Y(()=>{ee=ye(ie,1,"cd mono svelte-b8emeh",null,ee,{expired:e(A)}),L(T,e(A)?"已过期":`· ${e(_)}`)}),o(q,ie)};F(le,q=>{e(b)!==null&&q(Te)})}t(R),$t(2),t(G);var Be=n(G,2);t(k);var ue=n(k,2);let xe;var Je=a(ue);Wa(Je,()=>(e(y),r(()=>e(y).svg)));var H=n(Je,2);{var J=q=>{var ie=Ll(),ee=n(a(ie),2);t(ie),M("click",ee,P),o(q,ie)};F(H,q=>{e(A)&&q(J)})}t(ue);var z=n(ue,2),W=n(a(z),4),c=n(W,2),i=a(c,!0);t(c),t(z),Y(()=>{xe=ye(ue,1,"qr-big svelte-b8emeh",null,xe,{dim:e(A)}),L(i,e(u)?"✓ 已复制":"复制链接")}),M("click",Be,I),M("click",W,P),M("click",c,me),o(m,ce)},se=m=>{var ce=jl(),k=n(a(ce),2);t(ce),M("click",k,P),o(m,ce)},be=m=>{var ce=Dl();o(m,ce)};F(ke,m=>{e(y)&&!e(K)?m(He):e(K)?m(se,1):m(be,-1)})}t(Ue),t(Me),t(ae),M("click",pe,Q),M("click",De,Q),M("click",Me,Wt(function(m){As.call(this,v,m)})),M("click",ae,Q),o(g,ae)};F(V,g=>{p()&&g(U)})}o(j,B),at(),E()}var Fl=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 Rl(j,v){tt(v,!1);const p=()=>ze(Bt,"$plusMenuOpen",C),[C,E]=it();let l=Ae(v,"anchor",8,null);function b(){Bt.set(!1),Dt.set(!0)}function A(){Bt.set(!1),jt.set(!0)}function _(){Bt.set(!1)}function h(N){N.key==="Escape"&&_()}et();var S=ot();M("keydown",wt,h);var y=Ke(S);{var w=N=>{var u=Fl(),x=a(u),K=n(x,2),re=a(K),te=n(re,2),P=a(te),I=a(P);It(I,{name:"search",size:14}),t(P),$t(4),t(te),t(K),t(u),Y(oe=>dt(K,oe),[()=>(de(l()),r(()=>l()?`top:${l().getBoundingClientRect().bottom+6}px; left:${l().getBoundingClientRect().left}px`:""))]),M("click",x,_),M("click",re,b),M("click",te,A),o(N,u)};F(y,N=>{p()&&N(w)})}o(j,S),at(),E()}var Wl=f('<button class="scrim svelte-9zfapn" aria-label="Close"></button>'),Ul=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>'),Hl=f('<div class="dial svelte-9zfapn" role="menu"></div>'),Jl=f('<div><!> <!> <button><span aria-hidden="true">+</span></button></div>');function Nl(j,v){tt(v,!1);let p=d(!1);const C=()=>s(p,!e(p)),E=()=>s(p,!1),l=[{label:"新建会话",icon:"+",run:()=>Dt.set(!0)},{label:"搜索与命令",icon:"⌕",run:()=>jt.set(!0)}];function b(K){K.run(),E()}function A(K){K.key==="Escape"&&e(p)&&E()}et();var _=Jl();M("keydown",wt,A);let h;var S=a(_);{var y=K=>{var re=Wl();M("click",re,E),o(K,re)};F(S,K=>{e(p)&&K(y)})}var w=n(S,2);{var N=K=>{var re=Hl();Xe(re,5,()=>l,te=>te.label,(te,P)=>{var I=Ul(),oe=a(I),Q=a(oe,!0);t(oe);var $=n(oe,2),O=a($,!0);t($),t(I),Y(()=>{L(Q,e(P).label),L(O,e(P).icon)}),M("click",I,()=>b(e(P))),o(te,I)}),t(re),o(K,re)};F(w,K=>{e(p)&&K(N)})}var u=n(w,2);let x;t(_),Y(()=>{h=ye(_,1,"fab-root svelte-9zfapn",null,h,{open:e(p)}),x=ye(u,1,"fab svelte-9zfapn",null,x,{rot:e(p)}),qe(u,"aria-label",e(p)?"关闭菜单":"快捷操作"),qe(u,"aria-expanded",e(p))}),M("click",u,C),o(j,_),at()}var Kl=f('<p class="rejected svelte-9s687p"> </p>'),Ql=f('<p class="rejected svelte-9s687p">上一次的令牌被服务器拒绝了——请在下方重新配对。</p>'),Vl=f('<span class="chip mono svelte-9s687p"> </span>'),Gl=f("<span> </span>"),Yl=f('<button class="btn enter svelte-9s687p">配对此浏览器并进入</button>'),Zl=f('<div class="qr-re svelte-9s687p"><span>已过期</span> <button class="btn svelte-9s687p">刷新二维码</button></div>'),Xl=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),ei=f('<p class="hint dim svelte-9s687p">配对信息加载中…(若宿主机未启用配对组件,请用下方令牌粘贴)</p>'),ti=f('<span class="ok svelte-9s687p"> </span>'),ai=f('<span class="off svelte-9s687p">未连接</span>'),si=f('<span class="off svelte-9s687p">待接入</span>'),ni=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>'),ri=f('<!> <p class="hint dim svelte-9s687p">🔒 通道状态仅展示;凭证与回复粒度等配置在配对后的「机器人管理」面板(标题栏 🤖)中。</p>',1),li=f('<p class="hint dim svelte-9s687p">…</p>'),ii=f('<div class="err svelte-9s687p"> </div>'),oi=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 ci(j,v){tt(v,!1);const p=()=>ze(ts,"$pairHint",C),[C,E]=it(),l=d(),b=d(),A=d(),_=d(),h=d();let S=Ae(v,"status",8,"pairing"),y=d(""),w=d(""),N=d(!1),u=d(null),x=d(Date.now()),K=d(!1),re;async function te(){try{s(u,await Ie.pairOnboarding()),s(x,Date.now())}catch{s(u,null)}}const P={telegram:{name:"Telegram",note:"从 Telegram 打开这台机器"},wechat:{name:"微信",note:"待接入(配置面板已预埋)"},lark:{name:"飞书 / Lark",note:"待接入(配置面板已预埋)"}};ha(()=>{te(),re=setInterval(()=>{s(x,Date.now()),e(b)&&te()},1e3)}),Pt(()=>{re&&clearInterval(re)});async function I(){if(e(u))try{await navigator.clipboard.writeText(e(u).url),s(K,!0),setTimeout(()=>s(K,!1),1600)}catch{}}function oe(se){const be=se.trim(),m=be.match(/token=([^&#\s]+)/);return m?decodeURIComponent(m[1]):be}async function Q(){if(s(w,""),/[?#]pair=/.test(e(y))){s(w,await ya(e(y)));return}const se=oe(e(y));if(!se||se.length<16){s(w,"这看起来不是有效的令牌。");return}as(se)||s(w,"这看起来不是有效的令牌。")}ne(()=>(e(u),e(x)),()=>{var se;s(l,(se=e(u))!=null&&se.expiresAt?Math.max(0,e(u).expiresAt-e(x)):null)}),ne(()=>e(l),()=>{s(b,e(l)!==null&&e(l)<=0)}),ne(()=>e(u),()=>{var se;s(A,((se=e(u))==null?void 0:se.paired)??0)}),ne(()=>e(A),()=>{s(_,e(A)>0)}),ne(()=>e(l),()=>{s(h,e(l)===null?"":`${Math.floor(e(l)/6e4)}:${String(Math.floor(e(l)%6e4/1e3)).padStart(2,"0")}`)}),st(),et();var $=oi(),O=a($),Z=n(a(O),2);{var D=se=>{var be=Kl(),m=a(be,!0);t(be),Y(()=>L(m,p())),o(se,be)},X=se=>{var be=Ql();o(se,be)};F(Z,se=>{p()?se(D):S()==="rejected"&&se(X,1)})}var me=n(Z,2),ve=a(me),B=a(ve),V=n(a(B),2);{var U=se=>{var be=Vl(),m=a(be);t(be),Y(()=>L(m,`${e(u),r(()=>e(u).host.hostname)??""} · ${e(u),r(()=>e(u).host.arch)??""}`)),o(se,be)};F(V,se=>{e(u)&&se(U)})}t(B);var g=n(B,4);{var ae=se=>{var be=Xl(),m=Ke(be),ce=a(m);let k;var G=a(ce),R=n(G);{var le=i=>{var q=Gl();let ie;var ee=a(q,!0);t(q),Y(()=>{ie=ye(q,1,"mono cd svelte-9s687p",null,ie,{expired:e(b)}),L(ee,e(b)?"二维码已过期":`· ${e(h)}`)}),o(i,q)};F(R,i=>{e(l)!==null&&i(le)})}t(ce);var Te=n(ce,2);{var Be=i=>{var q=Yl();M("click",q,()=>e(u)&&ya(e(u).url)),o(i,q)};F(Te,i=>{e(_)&&i(Be)})}t(m);var ue=n(m,2),xe=a(ue);Wa(xe,()=>(e(u),r(()=>e(u).svg)));var Je=n(xe,2);{var H=i=>{var q=Zl(),ie=n(a(q),2);t(q),M("click",ie,te),o(i,q)};F(Je,i=>{e(b)&&i(H)})}t(ue);var J=n(ue,2),z=n(a(J),4),W=n(z,2),c=a(W,!0);t(W),t(J),$t(2),Y(()=>{k=ye(ce,1,"wait svelte-9s687p",null,k,{done:e(_)}),L(G,`${e(_)?`✓ 已有 ${e(A)} 台设备完成配对`:"等待手机连接"} `),L(c,e(K)?"✓ 已复制":"复制链接")}),M("click",z,te),M("click",W,I),o(se,be)},pe=se=>{var be=ei();o(se,be)};F(g,se=>{e(u)?se(ae):se(pe,-1)})}t(ve);var Me=n(ve,2),je=n(a(Me),4);{var De=se=>{var be=ri(),m=Ke(be);Xe(m,1,()=>(e(u),r(()=>e(u).channels)),ce=>ce.channel,(ce,k)=>{var G=ni(),R=a(G),le=a(R);Ja(le,{get channel(){return e(k),r(()=>e(k).channel)},size:30}),t(R);var Te=n(R,2),Be=a(Te),ue=a(Be),xe=n(ue);{var Je=c=>{var i=ti(),q=a(i);t(i),Y(()=>L(q,`已连接 @${e(k),r(()=>e(k).live.username)??""}`)),o(c,i)},H=c=>{var i=ai();o(c,i)},J=c=>{var i=si();o(c,i)};F(xe,c=>{e(k),r(()=>{var i;return e(k).channel==="telegram"&&((i=e(k).live)==null?void 0:i.connected)})?c(Je):(e(k),r(()=>e(k).channel==="telegram")?c(H,1):c(J,-1))})}t(Be);var z=n(Be,2),W=a(z,!0);t(z),t(Te),$t(2),t(G),Y(()=>{L(ue,`${e(k),r(()=>{var c;return((c=P[e(k).channel])==null?void 0:c.name)??e(k).channel})??""} `),L(W,(e(k),r(()=>{var c;return((c=P[e(k).channel])==null?void 0:c.note)??""})))}),o(ce,G)}),$t(2),o(se,be)},he=se=>{var be=li();o(se,be)};F(je,se=>{e(u)?se(De):se(he,-1)})}t(Me),t(me);var we=n(me,2),Fe=n(a(we),2),Pe=a(Fe);_t(Pe);var Ue=n(Pe,2);{var ke=se=>{var be=ii(),m=a(be,!0);t(be),Y(()=>L(m,e(w))),o(se,be)};F(Ue,se=>{e(w)&&se(ke)})}var He=n(Ue,2);t(Fe),t(we),$t(2),t(O),t($),Y(se=>He.disabled=se,[()=>(e(y),r(()=>!e(y).trim()))]),mt(Pe,()=>e(y),se=>s(y,se)),M("keydown",Pe,se=>se.key==="Enter"&&Q()),M("click",He,Q),xs("open","toggle",we,se=>s(N,se),()=>e(N)),o(j,$),at(),E()}var vi=f('<button class="backdrop svelte-12qhfyh" aria-label="Close"></button>'),di=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>'),ui=f('<div role="separator" aria-orientation="vertical" aria-label="调整检查器宽度"></div> <div><!></div>',1),pi=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></div> <!> <!> <!> <!> <!> <!>',1);function ki(j,v){tt(v,!1);const p=()=>ze(Ra,"$page",_),C=()=>ze(oa,"$backends",_),E=()=>ze(Qt,"$inspectorOpen",_),l=()=>ze(Rt,"$leftPanelOpen",_),b=()=>ze(jt,"$paletteOpen",_),A=()=>ze(da,"$auth",_),[_,h]=it(),S=d();let y=d(!1),w=d(!1),N=d(),u=d(null);function x(){s(y,!1),Qt.set(!1)}function K(){s(y,!e(y)),Qt.set(!1)}function re(){Qt.update(z=>!z),s(y,!1)}function te(z){if((z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="k"){z.preventDefault(),jt.set(!0);return}if((z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="b"){z.preventDefault(),Rt.update(W=>!W);return}if(z.key==="Escape"){if(bt(Bt)){Bt.set(!1);return}if(bt(Dt)){Dt.set(!1);return}x()}}let P=d(""),I=null,oe=d(264),Q=d(380),$=d(null);try{s(oe,Math.max(180,Math.min(520,Number(localStorage.getItem("ocrc.railW"))||264))),s(Q,Math.max(280,Math.min(560,Number(localStorage.getItem("ocrc.inspW"))||380)))}catch{}function O(z,W){if(window.matchMedia("(max-width: 820px)").matches)return;W.preventDefault(),s($,z);const c=W.clientX,i=z==="rail"?e(oe):e(Q),q=ee=>{const T=z==="rail"?ee.clientX-c:c-ee.clientX,_e=Math.max(z==="rail"?180:220,Math.min(520,i+T));z==="rail"?s(oe,_e):s(Q,_e)},ie=()=>{window.removeEventListener("pointermove",q),window.removeEventListener("pointerup",ie),s($,null);try{localStorage.setItem("ocrc.railW",String(e(oe))),localStorage.setItem("ocrc.inspW",String(e(Q)))}catch{}};window.addEventListener("pointermove",q),window.addEventListener("pointerup",ie)}let Z=d(null);async function D(){e(Z)&&(e(Z).prompt(),await e(Z).userChoice,s(Z,null))}let X=null,me=!1,ve=0,B;async function V(z){if(!(me||Date.now()-ve<2e3)){me=!0,ve=Date.now();try{const{cards:W,lastSeq:c}=await Ie.history(z);$a.set(!0),Vt(z,W,c),setTimeout(()=>$a.set(!1),350),I==null||I.send({type:"subscribe",sessionId:z,sinceSeq:c})}catch(W){console.warn("[layout] resync failed",W)}finally{me=!1}}}function U(z){var c,i;if(bt(da)!=="ready")return;if(rs.set(z),Cs(z),!z){wa(void 0),X=null;return}wa(z);const W=!((i=(c=bt(ut)[z])==null?void 0:c.order)!=null&&i.length);z===X&&!W||(X=z,ua.set(!0),Ie.history(z).then(({cards:q,lastSeq:ie})=>{Vt(z,q,ie),ua.set(!1),I==null||I.send({type:"subscribe",sessionId:z,sinceSeq:ie})}).catch(q=>{console.warn("[layout] history failed",q),Vt(z,[],0),ua.set(!1),I==null||I.send({type:"subscribe",sessionId:z})}))}function g(){I&&(I.close(),I=null),Ie.me().then(W=>{s(P,W.email)}).catch(()=>{}),Ie.sessions().then(W=>{ft.set(W)}).catch(()=>{}),ss(),ns();const z=location.protocol==="https:"?"wss:":"ws:";Ts(W=>I==null?void 0:I.send(W)),I=Ss({url:`${z}//${location.host}/ws`,onReconnect:()=>{var W;if(X){const c=((W=bt(ut)[X])==null?void 0:W.lastSeq)??0;I==null||I.send({type:"subscribe",sessionId:X,sinceSeq:c})}},onMessage:W=>{var c;if(W.type==="card"&&W.card){const i=W.card.sessionId,q=i?((c=bt(ut)[i])==null?void 0:c.lastSeq)??0:0;ls(W.card),i&&is(q,W.card)&&(clearTimeout(B),B=setTimeout(()=>{V(i)},500))}(W.type==="hello"||W.type==="sessions")&&W.sessions&&(ft.set(W.sessions),zs(W.sessions)),W.type==="replayEnd"&&W.complete===!1&&typeof W.sessionId=="string"&&V(W.sessionId)}}),U(p().params.sessionId)}ha(()=>{const z=da.subscribe($e=>{$e==="ready"&&g()}),W=$e=>{$e.preventDefault(),s(Z,$e)};window.addEventListener("beforeinstallprompt",W);const c=window.matchMedia("(max-width: 820px)");s(w,c.matches);const i=$e=>{s(w,$e.matches),$e.matches||x()};c.addEventListener("change",i);const q=window.visualViewport,ie=()=>{!q||!e(N)||(window.scrollY!==0&&window.scrollTo(0,0),la(N,e(N).style.height=`${Math.round(q.height)}px`),la(N,e(N).style.transform=q.offsetTop>0?`translateY(${Math.round(q.offsetTop)}px)`:""))};ie(),q==null||q.addEventListener("resize",ie),q==null||q.addEventListener("scroll",ie);const ee=()=>setTimeout(ie,300);window.addEventListener("orientationchange",ee);let T=0,_e=0;const Ce=()=>{ie(),Date.now()<T?_e=requestAnimationFrame(Ce):_e=0},Se=()=>{T=Date.now()+650,_e||(_e=requestAnimationFrame(Ce))};return window.addEventListener("focusin",Se),window.addEventListener("focusout",Se),()=>{z(),window.removeEventListener("beforeinstallprompt",W),c.removeEventListener("change",i),q==null||q.removeEventListener("resize",ie),q==null||q.removeEventListener("scroll",ie),window.removeEventListener("focusin",Se),window.removeEventListener("focusout",Se),window.removeEventListener("orientationchange",ee),_e&&cancelAnimationFrame(_e),clearTimeout(B),I==null||I.close()}}),ys(z=>{var W,c;x(),window.addEventListener("ocrc:resubscribe",i=>{const q=i.detail;q!=null&&q.sessionId&&(I==null||I.send({type:"subscribe",sessionId:q.sessionId,sinceSeq:q.sinceSeq??0}))}),U((c=(W=z.to)==null?void 0:W.params)==null?void 0:c.sessionId)}),ne(()=>(C(),fa),()=>{C()&&typeof document<"u"&&fa(C().activeId)}),ne(()=>p(),()=>{s(S,!!p().params.sessionId)}),st(),et();var ae=pi();M("keydown",wt,te);var pe=Ke(ae),Me=a(pe);{var je=z=>{Ps(z,{get email(){return e(P)},onPalette:()=>jt.set(!0),get installEvent(){return e(Z)},onInstall:D,get drawerLeft(){return e(y)},get drawerRight(){return E()},onToggleLeft:K,onToggleRight:re,get newButtonAnchor(){return e(u)},set newButtonAnchor(W){s(u,W)},$$legacy:!0})};F(Me,z=>{e(w)&&e(S)||z(je)})}var De=n(Me,2);Fs(De);var he=n(De,2),we=a(he);{var Fe=z=>{var W=vi();M("click",W,x),o(z,W)};F(we,z=>{(e(y)||E())&&z(Fe)})}var Pe=n(we,2);{var Ue=z=>{var W=di();M("click",W,()=>Rt.set(!0)),o(z,W)};F(Pe,z=>{!l()&&!e(w)&&z(Ue)})}var ke=n(Pe,2);let He;var se=a(ke);wn(se,{get activeId(){return p(),r(()=>p().params.sessionId)},get drawer(){return e(w)},get email(){return e(P)}}),t(ke);var be=n(ke,2);let m;var ce=n(be,2),k=a(ce);ws(k,v,"default",{}),t(ce);var G=n(ce,2);{var R=z=>{var W=ui(),c=Ke(W);let i;var q=n(c,2);let ie;var ee=a(q);ll(ee,{get sessionId(){return p(),r(()=>p().params.sessionId)}}),t(q),Y(()=>{i=ye(c,1,"divider svelte-12qhfyh",null,i,{resizing:e($)==="insp"}),ie=ye(q,1,"inspector-wrap svelte-12qhfyh",null,ie,{open:E()})}),M("pointerdown",c,T=>O("insp",T)),o(z,W)};F(G,z=>{E()&&z(R)})}t(he),t(pe),Et(pe,z=>s(N,z),()=>e(N));var le=n(pe,2);bl(le,{get open(){return b()},$$events:{close:()=>jt.set(!1)}});var Te=n(le,2);Rl(Te,{get anchor(){return e(u)}});var Be=n(Te,2);Al(Be,{});var ue=n(Be,2);Ol(ue,{});var xe=n(ue,2);{var Je=z=>{Nl(z,{})};F(xe,z=>{e(S)||z(Je)})}var H=n(xe,2);{var J=z=>{{let W=zt(()=>A()==="rejected"?"rejected":"pairing");ci(z,{get status(){return e(W)}})}};F(H,z=>{A()!=="ready"&&z(J)})}Y(()=>{dt(pe,`--rail-w:${e(oe)??""}px; --insp-w:${e(Q)??""}px`),He=ye(ke,1,"rail-wrap svelte-12qhfyh",null,He,{collapsed:!l()&&!e(w),open:e(y)||e(w)&&!e(S)}),m=ye(be,1,"divider svelte-12qhfyh",null,m,{resizing:e($)==="rail"})}),M("pointerdown",be,z=>O("rail",z)),M("dblclick",be,()=>Rt.update(z=>!z)),o(j,ae),at(),h()}export{ki as component,wi as universal};
|
|
1
|
+
import"../chunks/CWj6FrbW.js";import{q as Ya,r as et,z as ft,p as ut,f as Ie,j as oa,d as Za,a as St,b as rt,c as Tt,e as Ct,D as pa,A as aa,n as Xa,C as na,l as Ta,E as Vt,k as Ca,m as es,g as fa,v as ts,o as ya,F as as,h as da,u as ss,t as ns,H as rs,x as wa,G as ls,s as is}from"../chunks/t4ji6lDi.js";import{ai as os,ag as cs,a1 as Lt,b4 as r,a_ as za,aa as vs,aJ as ds,am as us,aE as tt,ap as ne,aO as s,V as de,a8 as e,aq as st,J as a,aK as t,aU as n,aw as $t,a$ as Y,aR as L,a3 as M,w as o,aB as at,au as d,a6 as f,a7 as gt,M as ot,a4 as Ke,b0 as ra,b8 as ps,ay as Pt,$ as wt,b5 as ht,Z as zt,a9 as bt,aI as Ea,av as la,Q as fs,b1 as hs,az as ha}from"../chunks/BjY4dxcB.js";import{i as F,a as Ee,s as it}from"../chunks/Chcp5gAM.js";import{n as La,h as Gt,I as It,A as ye,z as Me,u as Bt,d as ia,J as Ba,G as ja,i as Xe,a as bs,w as _t,c as mt,E as Wt,B as dt,o as Rt,l as Da,t as jt,C as Pa,F as Oa,b as ka,r as Fa,M as _s,e as Jt,D as Nt,v as xa,m as Qt,x as ms,q as Aa,H as Ia,s as Ra,p as Dt,K as gs,k as Wa,y as ua,j as $a}from"../chunks/BAYzPyWK.js";import{p as Ae,b as Et}from"../chunks/vlg9iH2u.js";import{g as Yt,a as ys}from"../chunks/C_mXJaPY.js";function ws(j,v,p,C,E){var A;os&&cs();var l=(A=v.$$slots)==null?void 0:A[p],b=!1;l===!0&&(l=v.children,b=!0),l===void 0||l(j,b?()=>C:C)}function ba(j,v,p){Lt(()=>{var C=r(()=>v(j,p==null?void 0:p())||{});if(C!=null&&C.destroy)return()=>C.destroy()})}function ks(j,v,p){var C=vs(j,v);C&&C.set&&(j[v]=p,za(()=>{j[v]=null}))}function xs(j,v,p,C,E){var l=()=>{C(p[j])};p.addEventListener(v,l),E?ds(()=>{p[j]=E()}):l(),(p===document.body||p===window||p===document)&&za(()=>{p.removeEventListener(v,l)})}function As(j,v){var l;var p=(l=j.$$events)==null?void 0:l[v.type],C=us(p)?p.slice():p==null?[]:[p];for(var E of C)E.call(this,v)}const Is=!1,$s=!1,qs="always",wi=Object.freeze(Object.defineProperty({__proto__:null,prerender:$s,ssr:Is,trailingSlash:qs},Symbol.toStringTag,{value:"Module"})),qa=[2e3,4e3,8e3,16e3,3e4];function Ms(j){const v=Ya();if(!v)return j;const p=j.includes("?")?"&":"?";return`${j}${p}token=${encodeURIComponent(v)}`}function Ss(j){let v=null,p=0,C=null,E=null,l=null,b=0,A=!1,_=!1;const h=[];function S(x){var K;Gt.set(x),(K=j.onStatus)==null||K.call(j,x)}function y(){C&&(clearTimeout(C),C=null),E&&(clearTimeout(E),E=null),l&&(clearTimeout(l),l=null)}function w(){E=setTimeout(()=>{(v==null?void 0:v.readyState)===WebSocket.OPEN&&(b=performance.now(),v.send(JSON.stringify({type:"ping"})),l=setTimeout(()=>{v==null||v.close(),u()},45e3))},25e3)}function N(){if(!A){S("reconnecting");try{v=new WebSocket(Ms(j.url))}catch{u();return}v.onopen=()=>{var x;p=0,S("connected");for(const K of h.splice(0))v==null||v.send(K);_&&((x=j.onReconnect)==null||x.call(j)),_=!0,w()},v.onmessage=x=>{var K;try{const re=JSON.parse(x.data);if(re.type==="pong"){l&&(clearTimeout(l),l=null),b&&La.set(Math.round(performance.now()-b)),w();return}(K=j.onMessage)==null||K.call(j,re)}catch{}},v.onclose=()=>{y(),A||u()},v.onerror=()=>{v==null||v.close()}}}function u(){if(y(),A)return;S("reconnecting");const x=qa[Math.min(p,qa.length-1)];p+=1,C=setTimeout(()=>void N(),x)}return N(),{send(x){const K=JSON.stringify(x);(v==null?void 0:v.readyState)===WebSocket.OPEN?v.send(K):h.push(K)},close(){A=!0,y(),h.length=0,v==null||v.close(),v=null,S("offline")}}}let sa=null;function Ts(j){sa=j}function Ut(j){sa==null||sa(j)}let Ma=new Map;const Ht=new Set;let Ua,Kt,ta=!1;function _a(){if(typeof document>"u")return;const j=document.title.replace(/^(🔔 [\d]+ 新动态 — )/,"")||"ocrc";if(Ht.size===0){Kt&&(clearInterval(Kt),Kt=void 0),ta=!1,document.title=j;return}Kt||(document.title=`🔔 ${Ht.size} 新动态 — ${j}`,Kt=setInterval(()=>{ta=!ta,document.title=ta?`🔔 ${Ht.size} 新动态 — ${j}`:j},1200))}function Cs(j){Ua=j,j&&(Ht.delete(j),_a())}function zs(j){for(const v of j){const p=Ma.get(v.id);Ma.set(v.id,v.lastActiveAt),!(p===void 0||v.id===Ua)&&v.lastActiveAt>p+1500&&(Ht.add(v.id),_a())}}typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(Ht.clear(),_a())});var Es=gt('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="12" rx="2"></rect><path d="M8 20h8M12 16v4"></path></svg>'),Ls=f('<span class="dot-ring svelte-hhath1"></span>'),Bs=f('<span class="connection-latency mono svelte-hhath1"> </span>'),js=f('<button class="install svelte-hhath1">Install</button>'),Ds=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 channels-btn 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 theme-btn 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(j,v){tt(v,!1);const p=()=>Ee(ja,"$themeMode",l),C=()=>Ee(Gt,"$connection",l),E=()=>Ee(La,"$latency",l),[l,b]=it(),A=d(),_=d();let h=Ae(v,"email",8,""),S=Ae(v,"onPalette",8),y=Ae(v,"installEvent",8,null),w=Ae(v,"onInstall",8,()=>{}),N=Ae(v,"drawerLeft",8,!1),u=Ae(v,"drawerRight",8,!1),x=Ae(v,"onToggleLeft",8,()=>{}),K=Ae(v,"onToggleRight",8,()=>{}),re=Ae(v,"newButtonAnchor",12,null);function te(U){return U==="connected"?"live":U==="reconnecting"?"reconnecting":"offline"}ne(()=>de(h()),()=>{s(A,h()||"you@local")}),ne(()=>e(A),()=>{s(_,e(A).charAt(0).toUpperCase())}),st(),et();var P=Ds(),I=a(P);let ie;var Q=a(I);It(Q,{name:"menu",size:18}),t(I);var $=n(I,4),O=n(a($),4),Z=a(O);It(Z,{name:"caret-down",size:9}),t(O),t($),Et($,U=>re(U),()=>re());var D=n($,2),X=a(D),me=a(X);It(me,{name:"search",size:14}),t(X),$t(4),t(D);var ve=n(D,4),B=n(ve,2),V=a(B);{var W=U=>{It(U,{name:"sun",size:15})},g=U=>{It(U,{name:"moon",size:15})},ae=U=>{var ce=Es();o(U,ce)};F(V,U=>{p()==="light"?U(W):p()==="dark"?U(g,1):U(ae,-1)})}t(B);var pe=n(B,2),Se=a(pe),je=n(a(Se),2);{var De=U=>{var ce=Ls();o(U,ce)};F(je,U=>{C()==="connected"&&U(De)})}t(Se);var he=n(Se,2),we=a(he,!0);t(he);var Fe=n(he,2);{var Pe=U=>{var ce=Bs(),qe=a(ce);t(ce),Y(()=>L(qe,`${E()??""}ms`)),o(U,ce)};F(Fe,U=>{C()==="connected"&&U(Pe)})}t(pe);var Ue=n(pe,2);{var ke=U=>{var ce=js();M("click",ce,function(...qe){var Te;(Te=w())==null||Te.apply(this,qe)}),o(U,ce)};F(Ue,U=>{y()&&U(ke)})}var He=n(Ue,2);let se;var be=n(He,2),m=a(be),oe=a(m,!0);t(m);var k=n(m,2),G=a(k,!0);t(k),t(be),t(P),Y((U,ce)=>{ie=ye(I,1,"iconbtn svelte-hhath1",null,ie,{active:N()}),Me(B,"title",p()==="auto"?"主题:跟随系统":p()==="light"?"主题:浅色":"主题:深色"),ye(pe,1,`connection-pill ${C()??""}`,"svelte-hhath1"),Me(pe,"title",`WebSocket: ${U??""}`),L(we,ce),se=ye(He,1,"iconbtn svelte-hhath1",null,se,{active:u()}),L(oe,e(A)),L(G,e(_))},[()=>(C(),r(()=>te(C()))),()=>(C(),r(()=>te(C())))]),M("click",I,function(...U){var ce;(ce=x())==null||ce.apply(this,U)}),M("click",$,()=>Bt.update(U=>!U)),M("click",D,function(...U){var ce;(ce=S())==null||ce.apply(this,U)}),M("click",ve,()=>ia.set(!0)),M("click",B,function(...U){var ce;(ce=Ba)==null||ce.apply(this,U)}),M("click",He,function(...U){var ce;(ce=K())==null||ce.apply(this,U)}),o(j,P),at(),b()}var Os=f('<div role="status"><!></div>');function Fs(j){const v=()=>Ee(Gt,"$connection",p),[p,C]=it();var E=ot(),l=Ke(E);{var b=A=>{var _=Os();let h;var S=a(_);{var y=N=>{var u=ra("Reconnecting…");o(N,u)},w=N=>{var u=ra("Offline — live updates paused");o(N,u)};F(S,N=>{v()==="reconnecting"?N(y):N(w,-1)})}t(_),Y(()=>h=ye(_,1,"banner svelte-l46k7l",null,h,{offline:v()==="offline"})),o(A,_)};F(l,A=>{v()!=="connected"&&A(b)})}o(j,E),C()}const Ha="ocrc.pinnedSessions";function Rs(){if(typeof localStorage>"u")return[];try{const j=localStorage.getItem(Ha),v=j?JSON.parse(j):[];return Array.isArray(v)?v.filter(p=>typeof p=="string"):[]}catch{return[]}}function Ws(j){if(!(typeof localStorage>"u"))try{localStorage.setItem(Ha,JSON.stringify(j))}catch{}}function Us(){const{subscribe:j,update:v}=ps(Rs());return{subscribe:j,toggle(p){v(C=>{const E=C.includes(p)?C.filter(l=>l!==p):[...C,p];return Ws(E),E})}}}const Sa=Us();function Hs(j,v){return v?j.filter(p=>(p.directory??"")===v):j}var Js=f('<input class="rename-input svelte-1h8243g" placeholder="Session title" aria-label="Session title"/>'),Ns=f('<span class="pin-dot svelte-1h8243g" aria-label="已钉住">●</span>'),Ks=f('<span class="rowmenu svelte-1h8243g" role="menu"><button role="menuitem" class="svelte-1h8243g">重命名</button> <button role="menuitem" class="svelte-1h8243g"> </button> <button role="menuitem" class="danger svelte-1h8243g">删除…</button></span>'),Qs=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> <button title="会话操作" aria-label="会话操作"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><circle cx="5" cy="12" r="1.8"></circle><circle cx="12" cy="12" r="1.8"></circle><circle cx="19" cy="12" r="1.8"></circle></svg></button> <!></span>',1),Vs=f('<span class="sep svelte-1h8243g">·</span><span class="repo svelte-1h8243g"> </span>',1),Gs=f('<span class="add svelte-1h8243g"> </span>'),Ys=f('<span class="del svelte-1h8243g"> </span>'),Zs=f('<span class="sep svelte-1h8243g">·</span> <!> <!>',1),Xs=f('<div class="progress svelte-1h8243g" aria-hidden="true"><span class="progress-fill svelte-1h8243g"></span></div>'),en=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>'),tn=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),an=f('<div class="empty mono svelte-1h8243g"> </div>'),sn=f('<div class="sidebar svelte-1h8243g"><!> <!></div>');function nn(j,v){tt(v,!1);const p=()=>Ee(ft,"$sessionList",A),C=()=>Ee(ut,"$feeds",A),E=()=>Ee(Gt,"$connection",A),l=()=>Ee(bs,"$activeWorkspace",A),b=()=>Ee(Sa,"$pinnedSessions",A),[A,_]=it(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d();let K=Ae(v,"activeId",8,void 0),re=Ae(v,"onSelect",8,void 0),te=Ae(v,"agentId",8,void 0),P=Ae(v,"agentName",8,void 0);const I=24*60*60*1e3;function ie(k,G){return G==="connected"&&Date.now()-k<I}function Q(k,G){const U=G[k];return!U||U.order.length===0?!1:U.order.some(ce=>{var Te;const qe=(Te=U.byId[ce])==null?void 0:Te.kind;return qe==="thinking"||qe==="streaming"||qe==="think-stream"})}function $(k,G){const U=G[k];if(!U||U.order.length===0)return!1;const ce=U.byId[U.order[U.order.length-1]];return(ce==null?void 0:ce.kind)==="approval"}function O(k,G,U){return Q(k.id,G)?"busy":$(k.id,G)?"wait":ie(k.lastActiveAt,U)?"idle":"offline"}function Z(k){const G=Date.now()-k,U=Math.floor(G/6e4);if(U<1)return"now";if(U<60)return`${U}m`;const ce=Math.floor(U/60);return ce<24?`${ce}h`:`${Math.floor(ce/24)}d`}function D(k){return(k.includes("_")?k.slice(k.indexOf("_")+1):k).slice(-8)}function X(k){if(!k)return"";const G=k.replace(/\/+$/,"").split("/");return G[G.length-1]||""}function me(k,G){re()&&(k.preventDefault(),re()(G))}function ve(k,G){k.preventDefault(),k.stopPropagation(),Sa.toggle(G)}let B=d(null),V=d(""),W=d(null);function g(k,G){k.preventDefault(),k.stopPropagation(),s(B,G.id),s(V,G.title||"")}function ae(){s(B,null),s(V,"")}async function pe(k){const G=e(V).trim();if(!G||e(W)){ae();return}s(W,k);try{await Ie.renameSession(k,G),ft.set(await Ie.sessions())}catch(U){alert(`重命名失败:${U.message}`)}finally{s(W,null),s(B,null),s(V,"")}}function Se(k,G){k.key==="Enter"?(k.preventDefault(),pe(G)):k.key==="Escape"&&(k.preventDefault(),ae())}function je(k){k.focus(),k.select()}let De=d(null),he=d(null),we=d();function Fe(k,G){k.preventDefault(),k.stopPropagation(),s(he,e(he)===G?null:G)}function Pe(k,G,U){s(he,null);const ce={preventDefault(){},stopPropagation(){}};k==="pin"?ve(ce,G):k==="delete"?He(ce,G):U&&g(ce,U)}function Ue(k){k.key==="Escape"&&s(he,null)}function ke(k){e(he)&&e(we)&&!e(we).contains(k.target)&&s(he,null)}Pt(()=>{s(he,null)});async function He(k,G){if(k.preventDefault(),k.stopPropagation(),!e(De)&&confirm("Delete this session? This cannot be undone.")){s(De,G);try{await Ie.deleteSession(G),ft.set(await Ie.sessions()),K()===G&&Yt("/")}catch(U){alert(`删除失败:${U.message}`)}finally{s(De,null)}}}ne(()=>(p(),C(),E()),()=>{s(h,new Map(p().map(k=>[k.id,O(k,C(),E())])))}),ne(()=>(de(te()),p()),()=>{s(S,te()?p().filter(k=>k.backendId===te()||!k.backendId&&te()==="opencode"):p())}),ne(()=>(e(S),l()),()=>{s(y,Hs(e(S),l()))}),ne(()=>e(y),()=>{s(w,[...e(y)].sort((k,G)=>G.lastActiveAt-k.lastActiveAt))}),ne(()=>(e(w),b()),()=>{s(N,e(w).filter(k=>b().includes(k.id)))}),ne(()=>(e(w),b()),()=>{s(u,e(w).filter(k=>!b().includes(k.id)))}),ne(()=>(e(N),e(u)),()=>{s(x,[{key:"pinned",label:"Pinned",rows:e(N)},{key:"recent",label:"Recent",rows:e(u)}])}),st(),et();var se=sn();M("pointerdown",wt,ke),M("keydown",wt,Ue);var be=a(se);Xe(be,1,()=>e(x),k=>k.key,(k,G)=>{var U=ot(),ce=Ke(U);{var qe=Te=>{var ue=tn(),xe=Ke(ue),Je=a(xe),H=a(Je,!0);t(Je);var J=n(Je,4),z=a(J,!0);t(J),t(xe);var R=n(xe,2);Xe(R,1,()=>(e(G),r(()=>e(G).rows)),c=>c.id,(c,i)=>{var q=en();let le;var ee=a(q),T=a(ee),_e=a(T),ze=a(_e,!0);t(_e),t(T);var Ce=n(T,2);{var $e=We=>{var Ze=Js();_t(Ze),Lt(()=>mt(Ze,()=>e(V),nt=>s(V,nt))),ba(Ze,nt=>je==null?void 0:je(nt)),Lt(()=>M("click",Ze,nt=>nt.preventDefault())),Lt(()=>M("keydown",Ze,nt=>Se(nt,e(i).id))),Lt(()=>M("blur",Ze,()=>pe(e(i).id))),Y(()=>Ze.disabled=(e(W),e(i),r(()=>e(W)===e(i).id))),o(We,Ze)},Ne=We=>{var Ze=Qs(),nt=Ke(Ze),xt=a(nt,!0);t(nt);var yt=n(nt,2);{var At=lt=>{var Mt=Ns();o(lt,Mt)},vt=ht(()=>(b(),e(i),r(()=>b().includes(e(i).id))));F(yt,lt=>{e(vt)&<(At)})}var pt=n(yt,2),Ot=a(pt),Ft=n(Ot,2);let ma;var Na=a(Ft);t(Ft);var ca=n(Ft,2),Zt=n(ca,2);let ga;var Ka=n(Zt,2);{var Qa=lt=>{var Mt=Ks(),Xt=a(Mt),ea=n(Xt,2),Va=a(ea,!0);t(ea);var Ga=n(ea,2);t(Mt),Et(Mt,va=>s(we,va),()=>e(we)),Y(va=>L(Va,va),[()=>(b(),e(i),r(()=>b().includes(e(i).id)?"取消钉住":"钉住"))]),M("click",Xt,Wt(()=>Pe("rename",e(i).id,e(i)))),M("click",ea,Wt(()=>Pe("pin",e(i).id))),M("click",Ga,Wt(()=>Pe("delete",e(i).id))),o(lt,Mt)};F(Ka,lt=>{e(he),e(i),r(()=>e(he)===e(i).id)&<(Qa)})}t(pt),Y((lt,Mt,Xt)=>{L(xt,(e(i),r(()=>e(i).title||"Untitled session"))),ma=ye(Ft,1,"act pin svelte-1h8243g",null,ma,lt),Me(Ft,"title",Mt),Me(Na,"fill",Xt),ca.disabled=(e(De),e(i),r(()=>e(De)===e(i).id)),ga=ye(Zt,1,"act mmore svelte-1h8243g",null,ga,{on:e(he)===e(i).id}),Me(Zt,"aria-expanded",(e(he),e(i),r(()=>e(he)===e(i).id)))},[()=>({on:b().includes(e(i).id)}),()=>(b(),e(i),r(()=>b().includes(e(i).id)?"取消钉住":"钉住")),()=>(b(),e(i),r(()=>b().includes(e(i).id)?"currentColor":"none"))]),M("click",Ot,lt=>g(lt,e(i))),M("click",Ft,lt=>ve(lt,e(i).id)),M("click",ca,lt=>He(lt,e(i).id)),M("click",Zt,lt=>Fe(lt,e(i).id)),o(We,Ze)};F(Ce,We=>{e(B),e(i),r(()=>e(B)===e(i).id)?We($e):We(Ne,-1)})}t(ee);var Ye=n(ee,2),ge=a(Ye),fe=a(ge,!0);t(ge);var Ve=n(ge,2);{var Qe=We=>{var Ze=Vs(),nt=n(Ke(Ze)),xt=a(nt,!0);t(nt),Y(yt=>L(xt,yt),[()=>(e(i),r(()=>X(e(i).directory)))]),o(We,Ze)},Le=ht(()=>(e(i),r(()=>X(e(i).directory))));F(Ve,We=>{e(Le)&&We(Qe)})}var Be=n(Ve,3),Oe=a(Be,!0);t(Be);var Re=n(Be,2);{var Ge=We=>{var Ze=Zs(),nt=n(Ke(Ze),2);{var xt=vt=>{var pt=Gs(),Ot=a(pt);t(pt),Y(()=>L(Ot,`+${e(i),r(()=>e(i).additions)??""}`)),o(vt,pt)};F(nt,vt=>{e(i),r(()=>e(i).additions)&&vt(xt)})}var yt=n(nt,2);{var At=vt=>{var pt=Ys(),Ot=a(pt);t(pt),Y(()=>L(Ot,`−${e(i),r(()=>e(i).deletions)??""}`)),o(vt,pt)};F(yt,vt=>{e(i),r(()=>e(i).deletions)&&vt(At)})}o(We,Ze)};F(Re,We=>{e(i),r(()=>e(i).additions||e(i).deletions)&&We(Ge)})}t(Ye);var qt=n(Ye,2);{var ct=We=>{var Ze=Xs();o(We,Ze)},kt=ht(()=>(e(h),e(i),r(()=>e(h).get(e(i).id)==="busy")));F(qt,We=>{e(kt)&&We(ct)})}t(q),Y((We,Ze,nt,xt,yt)=>{Me(q,"href",`/${e(i),r(()=>e(i).id)??""}/`),le=ye(q,1,"session svelte-1h8243g",null,le,We),ye(T,1,`dot ${Ze??""}`,"svelte-1h8243g"),L(ze,nt),L(fe,xt),L(Oe,yt)},[()=>({active:K()===e(i).id,busy:e(h).get(e(i).id)==="busy"}),()=>(e(h),e(i),r(()=>e(h).get(e(i).id)??"offline")),()=>(e(h),e(i),r(()=>e(h).get(e(i).id)??"offline")),()=>(e(i),r(()=>D(e(i).id))),()=>(e(i),r(()=>Z(e(i).lastActiveAt)))]),M("click",q,We=>me(We,e(i).id)),o(c,q)}),Y(()=>{L(H,(e(G),r(()=>e(G).label))),L(z,(e(G),r(()=>e(G).rows.length)))}),o(Te,ue)};F(ce,Te=>{e(G),r(()=>e(G).rows.length)&&Te(qe)})}o(k,U)});var m=n(be,2);{var oe=k=>{var G=an(),U=a(G);t(G),Y(()=>L(U,`no sessions on ${P()??"this agent"??""} yet`)),o(k,G)};F(m,k=>{e(y),r(()=>e(y).length===0)&&k(oe)})}t(se),o(j,se),at(),_()}var rn=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-aqr1j0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"></path></svg>'),ln=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-aqr1j0"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"></path></svg>'),on=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-aqr1j0"><rect x="3" y="4" width="18" height="12" rx="2"></rect><path d="M8 20h8M12 16v4"></path></svg>'),cn=f('<div class="rail-foot svelte-aqr1j0"><span class="avatar mono svelte-aqr1j0"> </span> <span class="who svelte-aqr1j0"> </span> <span class="sp svelte-aqr1j0"></span> <button class="fbtn svelte-aqr1j0"><!></button> <button class="fbtn svelte-aqr1j0" aria-label="机器人与通道" title="机器人与通道"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-aqr1j0"><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></div>');function vn(j,v){tt(v,!1);const p=()=>Ee(ja,"$themeMode",C),[C,E]=it(),l=d(),b=d();let A=Ae(v,"email",8,"");ne(()=>de(A()),()=>{s(l,A()||"local")}),ne(()=>e(l),()=>{s(b,e(l).charAt(0).toUpperCase())}),st(),et();var _=cn(),h=a(_),S=a(h,!0);t(h);var y=n(h,2),w=a(y,!0);t(y);var N=n(y,4),u=a(N);{var x=P=>{var I=rn();o(P,I)},K=P=>{var I=ln();o(P,I)},re=P=>{var I=on();o(P,I)};F(u,P=>{p()==="light"?P(x):p()==="dark"?P(K,1):P(re,-1)})}t(N);var te=n(N,2);t(_),Y(()=>{Me(h,"title",A()),L(S,e(b)),Me(y,"title",A()),L(w,e(l)),Me(N,"aria-label",`主题:${p()}`),Me(N,"title",`主题:${p()==="auto"?"跟随系统":p()==="light"?"浅色":"深色"}`)}),M("click",N,function(...P){var I;(I=Ba)==null||I.apply(this,P)}),M("click",te,()=>ia.set(!0)),o(j,_),at(),E()}var dn=f('<span class="host mono svelte-wmno67"> </span>'),un=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>'),pn=f('<span class="check svelte-wmno67">✓</span>'),fn=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>'),hn=f("<button></button>"),bn=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>'),_n=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>'),mn=f('<div class="agents-label svelte-wmno67">Agents</div> <div class="switcher-row svelte-wmno67"></div>',1),gn=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>'),yn=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 wn(j,v){tt(v,!1);const p=()=>Ee(oa,"$backends",b),C=()=>Ee(ft,"$sessionList",b),E=()=>Ee(Gt,"$connection",b),l=()=>Ee(Za,"$accentOverrides",b),[b,A]=it(),_=d(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d();let K=Ae(v,"activeId",8,void 0),re=Ae(v,"email",8,""),te=Ae(v,"drawer",8,!1),P=d(!1);function I(c){const i=c.split(/[\s\-_:./]+/).filter(Boolean);return i.length>=2?(i[0][0]+i[1][0]).toUpperCase():c.slice(0,2).toUpperCase()}function ie(c){return I((c==null?void 0:c.name)||(c==null?void 0:c.id)||"OC")}function Q(c){return c==="online"||c==="connected"?"online":c==="connecting"||c==="reconnecting"?"connecting":c==="offline"?"offline":"online"}async function $(c){s(P,!1),await na(c)}function O(){s(P,!e(P))}async function Z(c){await na(c)}function D(c){c.key==="Escape"&&s(P,!1)}const X=24*60*60*1e3;function me(c,i){return i==="connected"&&Date.now()-c<X}function ve(c,i){return Ct(i)}ne(()=>p(),()=>{var c,i,q;s(_,((c=p())==null?void 0:c.activeId)??((q=(i=p())==null?void 0:i.backends[0])==null?void 0:q.id)??"opencode")}),ne(()=>(p(),e(_)),()=>{var c;s(h,(c=p())==null?void 0:c.backends.find(i=>i.id===e(_)))}),ne(()=>p(),()=>{var c;s(S,((c=p())==null?void 0:c.backends)??[])}),ne(()=>(p(),C()),()=>{var c;s(y,Object.fromEntries((((c=p())==null?void 0:c.backends)??[]).map(i=>[i.id,C().filter(q=>q.backendId===i.id||!q.backendId&&i.id==="opencode").length])))}),ne(()=>(C(),e(_),E()),()=>{s(w,C().filter(c=>(c.backendId===e(_)||!c.backendId&&e(_)==="opencode")&&me(c.lastActiveAt,E())).length)}),ne(()=>(C(),e(_)),()=>{s(N,C().filter(c=>(c.backendId===e(_)||!c.backendId&&e(_)==="opencode")&&(c.additions||c.deletions)).length)}),ne(()=>(l(),e(_)),()=>{s(u,ve(l(),e(_)))}),ne(()=>(e(S),l()),()=>{s(x,Object.fromEntries(e(S).map(c=>[c.id,ve(l(),c.id)])))}),st(),et();var B=yn();M("keydown",wt,D);let V;var W=a(B),g=a(W),ae=a(g),pe=a(ae),Se=a(pe,!0);t(pe);var je=n(pe,2),De=a(je),he=a(De,!0);t(De),t(je);var we=n(je,2),Fe=a(we,!0);t(we);var Pe=n(we,2);{var Ue=c=>{var i=dn(),q=a(i,!0);t(i),Y(()=>L(q,(e(h),r(()=>e(h).host)))),o(c,i)};F(Pe,c=>{e(h),r(()=>{var i;return(i=e(h))==null?void 0:i.host})&&c(Ue)})}var ke=n(Pe,2),He=a(ke);It(He,{name:"caret-down",size:11}),t(ke),t(ae);var se=n(ae,2);{var be=c=>{var i=un();M("click",i,()=>Rt.set(!1)),o(c,i)};F(se,c=>{te()||c(be)})}var m=n(se,2);{var oe=c=>{var i=bn(),q=a(i);Xe(q,5,()=>e(S),Ye=>Ye.id,(Ye,ge)=>{const fe=zt(()=>(e(x),e(ge),de(Ct),r(()=>e(x)[e(ge).id]??Ct(e(ge).id)))),Ve=zt(()=>(e(ge),e(_),r(()=>e(ge).id===e(_))));var Qe=fn();let Le;var Be=a(Qe),Oe=a(Be,!0);t(Be);var Re=n(Be,2),Ge=a(Re),qt=a(Ge,!0);t(Ge);var ct=n(Ge,2),kt=a(ct);t(ct),t(Re);var We=n(Re,2),Ze=a(We),nt=a(Ze,!0);t(Ze),t(We);var xt=n(We,2);{var yt=At=>{var vt=pn();o(At,vt)};F(xt,At=>{e(Ve)&&At(yt)})}t(Qe),Y((At,vt,pt)=>{Le=ye(Qe,1,"agent-row svelte-wmno67",null,Le,{selected:e(Ve)}),dt(Be,`background:${de(St),de(e(fe)),r(()=>St[e(fe)])??""}; color:${de(rt),de(e(fe)),r(()=>rt[e(fe)])??""}; border-color:${de(Tt),de(e(fe)),r(()=>Tt[e(fe)])??""}`),L(Oe,At),L(qt,(e(ge),r(()=>e(ge).name??e(ge).id))),L(kt,`${e(ge),r(()=>e(ge).host??"local")??""} · ${e(y),e(ge),r(()=>e(y)[e(ge).id]??0)??""} ses`),ye(We,1,`status-dot ${vt??""}`,"svelte-wmno67"),dt(We,`--dot:${de(rt),de(e(fe)),r(()=>rt[e(fe)])??""}`),L(nt,pt)},[()=>(e(ge),r(()=>ie(e(ge)))),()=>(e(ge),r(()=>Q(e(ge).status))),()=>(e(ge),r(()=>Q(e(ge).status)))]),M("click",Qe,()=>$(e(ge).id)),o(Ye,Qe)}),t(q);var le=n(q,2),ee=a(le),T=a(ee),_e=a(T);t(T);var ze=n(T,2),Ce=a(ze);Xe(Ce,1,()=>aa,Da,(Ye,ge)=>{var fe=hn();let Ve;Y(()=>{Ve=ye(fe,1,"swatch svelte-wmno67",null,Ve,{active:e(u)===e(ge)}),Me(fe,"aria-label",`设置 ${e(ge)??""} 主题`),dt(fe,`background:${de(rt),e(ge),r(()=>rt[e(ge)])??""}`)}),M("click",fe,()=>pa(e(_),e(ge))),o(Ye,fe)});var $e=n(Ce,2);let Ne;t(ze),t(ee),t(le),t(i),Y(Ye=>{L(_e,`Theme · ${e(h),r(()=>{var ge,fe;return((ge=e(h))==null?void 0:ge.name)??((fe=e(h))==null?void 0:fe.id)??"Agent"})??""}`),Ne=ye($e,1,"auto svelte-wmno67",null,Ne,Ye)},[()=>({active:e(u)===Xa(e(_))})]),M("click",$e,()=>pa(e(_),null)),o(c,i)};F(m,c=>{e(P)&&c(oe)})}t(g);var k=n(g,2);{var G=c=>{var i=mn(),q=n(Ke(i),2);Xe(q,5,()=>e(S),le=>le.id,(le,ee)=>{const T=zt(()=>(e(x),e(ee),de(Ct),r(()=>e(x)[e(ee).id]??Ct(e(ee).id))));var _e=_n();let ze;var Ce=a(_e),$e=a(Ce,!0);t(Ce);var Ne=n(Ce,2),Ye=a(Ne),ge=a(Ye,!0);t(Ye),t(Ne);var fe=n(Ne,2),Ve=a(fe,!0);t(fe);var Qe=n(fe,2),Le=a(Qe,!0);t(Qe),t(_e),Y((Be,Oe,Re)=>{ze=ye(_e,1,"switch-pill svelte-wmno67",null,ze,{active:e(ee).id===e(_)}),dt(Ce,`background:${de(St),de(e(T)),r(()=>St[e(T)])??""}; color:${de(rt),de(e(T)),r(()=>rt[e(T)])??""}; border-color:${de(Tt),de(e(T)),r(()=>Tt[e(T)])??""}`),L($e,Be),ye(Ne,1,`status-dot ${Oe??""}`,"svelte-wmno67"),dt(Ne,`--dot:${de(rt),de(e(T)),r(()=>rt[e(T)])??""}`),L(ge,Re),L(Ve,(e(ee),r(()=>e(ee).name??e(ee).id))),L(Le,(e(y),e(ee),r(()=>e(y)[e(ee).id]??0)))},[()=>(e(ee),r(()=>ie(e(ee)))),()=>(e(ee),r(()=>Q(e(ee).status))),()=>(e(ee),r(()=>Q(e(ee).status)))]),M("click",_e,()=>Z(e(ee).id)),o(le,_e)}),t(q),o(c,i)};F(k,c=>{de(te()),e(S),r(()=>te()&&e(S).length>1)&&c(G)})}var U=n(k,2);{var ce=c=>{var i=gn();M("click",i,()=>jt.set(!0)),o(c,i)};F(U,c=>{te()&&c(ce)})}var qe=n(U,2),Te=a(qe);{let c=zt(()=>(e(h),r(()=>{var i,q;return((i=e(h))==null?void 0:i.name)??((q=e(h))==null?void 0:q.id)})));nn(Te,{get activeId(){return K()},get agentId(){return e(_)},get agentName(){return e(c)}})}t(qe);var ue=n(qe,2),xe=a(ue),Je=a(xe);t(xe);var H=n(xe,4),J=a(H);t(H),t(ue);var z=n(ue,2);{var R=c=>{vn(c,{get email(){return re()}})};F(z,c=>{te()||c(R)})}t(W),t(B),Y((c,i,q)=>{V=ye(B,1,"agent-panel svelte-wmno67",null,V,{drawer:te()}),Me(ae,"aria-expanded",e(P)),dt(pe,`background:${de(St),e(u),r(()=>St[e(u)])??""}; color:${de(rt),e(u),r(()=>rt[e(u)])??""}; border-color:${de(Tt),e(u),r(()=>Tt[e(u)])??""}`),L(Se,c),ye(je,1,`status-dot ${i??""}`,"svelte-wmno67"),dt(je,`--dot:${de(rt),e(u),r(()=>rt[e(u)])??""}`),L(he,q),L(Fe,(e(h),r(()=>{var le,ee;return((le=e(h))==null?void 0:le.name)??((ee=e(h))==null?void 0:ee.id)??"Agent"}))),L(Je,`${e(w)??""} 活跃`),L(J,`${e(N)??""} 已推送`)},[()=>(e(h),r(()=>ie(e(h)))),()=>(e(h),r(()=>{var c;return Q((c=e(h))==null?void 0:c.status)})),()=>(e(h),r(()=>{var c;return Q((c=e(h))==null?void 0:c.status)}))]),M("click",ae,O),o(j,B),at(),A()}var kn=f('<div class="empty svelte-1ki800i">问点什么——回复实时流在这里。</div>'),xn=f('<div class="sc svelte-1ki800i"><div class="sc-hd svelte-1ki800i"><span class="hint mono svelte-1ki800i"> </span> <button class="open mono svelte-1ki800i" title="在中栏打开此会话">中栏打开 ↗</button></div> <div class="sc-body svelte-1ki800i"></div> <div class="sc-input svelte-1ki800i"><textarea placeholder="辅助对话…(↵ 发送)" aria-label="辅助对话输入" class="svelte-1ki800i"></textarea> <button class="send svelte-1ki800i" 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" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"></path></svg></button></div></div>');function An(j,v){tt(v,!1);const p=()=>Ee(ut,"$feeds",C),[C,E]=it(),l=d();let b=Ae(v,"childId",8);Ae(v,"tick",8,0);let A=d(""),_=d(!1),h=d(),S=!0,y=d();async function w(D){const X=bt(ut)[D];if(!(X&&X.order.length>0))try{const me=await Ie.history(D,{limit:60});Vt(D,me.cards??[],me.lastSeq??0)}catch{}}function N(){S&&e(h)&&requestAnimationFrame(()=>{e(h)&&S&&la(h,e(h).scrollTop=e(h).scrollHeight)})}function u(){e(h)&&(S=e(h).scrollHeight-e(h).scrollTop-e(h).clientHeight<60)}async function x(){const D=e(A).trim();if(!(!D||e(_))){s(_,!0),s(A,""),S=!0;try{await Ie.sendMessage({sessionId:b(),text:D,clientId:`sc_${Date.now().toString(36)}`})}catch{s(A,D)}finally{s(_,!1)}}}function K(D){D.key==="Enter"&&!D.shiftKey&&!D.isComposing&&(D.preventDefault(),x())}Pt(()=>{b()&&Ut({type:"unsubscribe",sessionId:b()})}),ne(()=>(de(b()),e(y),Ut),()=>{b()&&b()!==e(y)&&(s(y,b()),(async()=>{var X;await w(b());const D=((X=bt(ut)[b()])==null?void 0:X.lastSeq)??0;Ut({type:"subscribe",sessionId:b(),sinceSeq:D})})())}),ne(()=>(de(b()),p()),()=>{s(l,b()?Ta(p()[b()]??null):[])}),ne(()=>e(l),()=>{e(l)&&N()}),st(),et();var re=xn(),te=a(re),P=a(te),I=a(P);t(P);var ie=n(P,2);t(te);var Q=n(te,2);Xe(Q,7,()=>e(l),(D,X)=>D.seq??D.id??X,(D,X)=>{Pa(D,{get card(){return e(X)}})},D=>{var X=kn();o(D,X)}),t(Q),Et(Q,D=>s(h,D),()=>e(h));var $=n(Q,2),O=a($);Ea(O),Me(O,"rows",2);var Z=n(O,2);t($),t(re),Y(D=>{L(I,`辅助对话 · ${e(l),r(()=>e(l).length)??""} 条`),Z.disabled=D},[()=>(e(_),e(A),r(()=>e(_)||!e(A).trim()))]),M("click",ie,()=>Yt("/"+b())),M("scroll",Q,u),mt(O,()=>e(A),D=>s(A,D)),M("keydown",O,K),M("click",Z,x),o(j,re),at(),E()}var In=f('<span class="meta svelte-1h1y2gb"> </span>'),$n=f('<div class="bar svelte-1h1y2gb"><div class="fill svelte-1h1y2gb"></div></div>'),qn=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>'),Mn=f('<div class="section-label svelte-1h1y2gb">暂无任务</div>'),Sn=f('<div class="task svelte-1h1y2gb"><div class="hd svelte-1h1y2gb"><!></div> <!> <div class="items svelte-1h1y2gb"><!> <!></div></div>');function Tn(j,v){tt(v,!1);const p=d(),C=d(),E=d();let l=Ae(v,"sessionId",8,void 0),b=Ae(v,"tick",8,0),A=d({total:0,done:0,items:[]}),_=d(new Set),h;async function S(Q){if(!Q){s(A,{total:0,done:0,items:[]}),s(_,new Set);return}Q!==h&&(h=Q,s(_,new Set));try{const $=await Ie.todo(Q);if(Q!==l())return;s(A,Oa($))}catch{}}function y(Q){e(_).has(Q)?e(_).delete(Q):e(_).add(Q),s(_,e(_))}ne(()=>(de(l()),de(b())),()=>{S(l()),b()}),ne(()=>(e(A),e(_)),()=>{s(p,e(A).items.map((Q,$)=>({...Q,status:e(_).has($)?Q.status==="done"?"pending":"done":Q.status})))}),ne(()=>e(p),()=>{s(C,e(p).filter(Q=>Q.status==="done").length)}),ne(()=>(e(A),e(C)),()=>{s(E,e(A).total?Math.round(e(C)/e(A).total*100):0)}),st(),et();var w=Sn(),N=a(w),u=a(N);{var x=Q=>{var $=In(),O=a($);t($),Y(()=>L(O,`${e(C)??""}/${e(A),r(()=>e(A).total)??""}`)),o(Q,$)};F(u,Q=>{e(A),r(()=>e(A).total)&&Q(x)})}t(N);var K=n(N,2);{var re=Q=>{var $=$n(),O=a($);t($),Y(()=>dt(O,`transform:scaleX(${e(E)/100})`)),o(Q,$)};F(K,Q=>{e(A),r(()=>e(A).total)&&Q(re)})}var te=n(K,2),P=a(te);Xe(P,3,()=>e(p),(Q,$)=>Q.text+"-"+$,(Q,$,O)=>{var Z=qn(),D=n(a(Z),2),X=a(D,!0);t(D),t(Z),Y(()=>{ye(Z,1,`row ${e($),r(()=>e($).status)??""}`,"svelte-1h1y2gb"),L(X,(e($),r(()=>e($).text)))}),M("click",Z,()=>y(e(O))),o(Q,Z)});var I=n(P,2);{var ie=Q=>{var $=Mn();o(Q,$)};F(I,Q=>{e(A),r(()=>e(A).total===0)&&Q(ie)})}t(te),t(w),o(j,w),at()}var Cn=f('<div><span class="dot svelte-ehf8ic" aria-hidden="true"></span><span> </span><span class="sr-only svelte-ehf8ic"> </span></div>'),zn=f('<div class="label">未配置</div>'),En=f('<div class="mcp svelte-ehf8ic"><div class="list svelte-ehf8ic"><!> <!></div></div>');function Ln(j,v){tt(v,!1);let p=Ae(v,"tick",8,0),C=d([]);async function E(){try{s(C,await Ie.mcp())}catch{}}ne(()=>de(p()),()=>{E(),p()}),st(),et();var l=En(),b=a(l),A=a(b);Xe(A,1,()=>e(C),Da,(S,y)=>{var w=Cn();let N;var u=n(a(w)),x=a(u,!0);t(u);var K=n(u),re=a(K,!0);t(K),t(w),Y(()=>{N=ye(w,1,"row svelte-ehf8ic",null,N,{off:e(y).status==="disabled"}),L(x,(e(y),r(()=>e(y).name))),L(re,(e(y),r(()=>e(y).status)))}),o(S,w)});var _=n(A,2);{var h=S=>{var y=zn();o(S,y)};F(_,S=>{e(C),r(()=>e(C).length===0)&&S(h)})}t(b),t(l),o(j,l),at()}var Bn=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>'),jn=f('<div class="label svelte-pijcyq">暂无</div>'),Dn=f('<div class="err svelte-pijcyq"> </div>'),Pn=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>'),On=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 Fn(j,v){tt(v,!1);const p=[];let C=Ae(v,"tick",8,0),E=d([]),l=d(!1),b=d(""),A=d("every"),_=d(30),h=d("09:00"),S=d(""),y=d(),w;async function N(){try{s(E,(await Ie.schedules()).schedules??[])}catch{}}function u(ve){return ve.kind==="every"?ve.minutes>=60&&ve.minutes%60===0?`every ${ve.minutes/60}h`:`every ${ve.minutes}m`:`daily ${ve.time}`}function x(ve){return ve.name||ve.prompt}async function K(){if(!e(b).trim())return;s(S,"");const ve=e(A)==="every"?{kind:"every",minutes:Math.max(1,Math.round(e(_)))}:{kind:"daily",time:e(h)};try{const B=await Ie.addSchedule({prompt:e(b).trim(),spec:ve});if(B.error){s(S,B.error);return}s(b,""),s(l,!1),await N()}catch(B){s(S,B.message)}}async function re(ve){s(E,e(E).map(B=>B.id===ve.id?{...B,enabled:!B.enabled}:B));try{await Ie.setScheduleEnabled(ve.id,!ve.enabled),await N()}catch{await N()}}async function te(ve){if(e(y)!==ve){s(y,ve),clearTimeout(w),w=setTimeout(()=>s(y,void 0),3e3);return}clearTimeout(w),s(y,void 0);try{await Ie.deleteSchedule(ve),await N()}catch{}}ne(()=>de(C()),()=>{N(),C()}),st(),et();var P=On(),I=a(P),ie=a(I),Q=a(ie,!0);t(ie),t(I);var $=n(I,2),O=a($);Xe(O,1,()=>e(E),ve=>ve.id,(ve,B)=>{var V=Bn();let W;var g=a(V);let ae;var pe=n(g,2),Se=a(pe),je=a(Se,!0);t(Se);var De=n(Se,2),he=a(De,!0);t(De),t(pe);var we=n(pe,2);let Fe;var Pe=a(we,!0);t(we),t(V),Y((Ue,ke,He,se)=>{W=ye(V,1,"row svelte-pijcyq",null,W,{off:!e(B).enabled}),ae=ye(g,1,"switch svelte-pijcyq",null,ae,{on:e(B).enabled}),Me(g,"aria-pressed",(e(B),r(()=>e(B).enabled))),Me(g,"aria-label",Ue),L(je,ke),L(he,He),Fe=ye(we,1,"del svelte-pijcyq",null,Fe,{arm:e(y)===e(B).id}),Me(we,"aria-label",`删除 ${se??""}`),L(Pe,(e(y),e(B),r(()=>e(y)===e(B).id?"确认?":"✕")))},[()=>(e(B),r(()=>`${e(B).enabled?"停用":"启用"} ${x(e(B))}`)),()=>(e(B),r(()=>x(e(B)))),()=>(e(B),r(()=>u(e(B).spec))),()=>(e(B),r(()=>x(e(B))))]),M("click",g,()=>re(e(B))),M("click",we,()=>te(e(B).id)),o(ve,V)});var Z=n(O,2);{var D=ve=>{var B=jn();o(ve,B)};F(Z,ve=>{e(E),e(l),r(()=>e(E).length===0&&!e(l))&&ve(D)})}t($);var X=n($,2);{var me=ve=>{var B=Pn(),V=a(B);Ea(V);var W=n(V,2),g=a(W);let ae;var pe=a(g);_t(pe),pe.value=pe.__value="every";var Se=n(pe,2);_t(Se),$t(),t(g);var je=n(g,2);let De;var he=a(je);_t(he),he.value=he.__value="daily";var we=n(he,2);_t(we),t(je),t(W);var Fe=n(W,2);{var Pe=ke=>{var He=Dn(),se=a(He,!0);t(He),Y(()=>L(se,e(S))),o(ke,He)};F(Fe,ke=>{e(S)&&ke(Pe)})}var Ue=n(Fe,2);t(B),Y(ke=>{ae=ye(g,1,"svelte-pijcyq",null,ae,{sel:e(A)==="every"}),Se.disabled=e(A)!=="every",De=ye(je,1,"svelte-pijcyq",null,De,{sel:e(A)==="daily"}),we.disabled=e(A)!=="daily",Ue.disabled=ke},[()=>(e(b),r(()=>!e(b).trim()))]),mt(V,()=>e(b),ke=>s(b,ke)),ka(p,[],pe,()=>e(A),ke=>s(A,ke)),mt(Se,()=>e(_),ke=>s(_,ke)),ka(p,[],he,()=>e(A),ke=>s(A,ke)),mt(we,()=>e(h),ke=>s(h,ke)),M("click",Ue,K),o(ve,B)};F(X,ve=>{e(l)&&ve(me)})}t(P),Y(()=>{Me(ie,"aria-label",e(l)?"取消新建计划":"新建计划"),L(Q,e(l)?"×":"+")}),M("click",ie,()=>s(l,!e(l))),o(j,P),at()}var Rn=f('<span class="chip svelte-taxat6"> </span>'),Wn=f('<button class="more svelte-taxat6"> </button>'),Un=f("<div></div> <!>",1),Hn=f('<div class="label svelte-taxat6">none</div>'),Jn=f('<div class="skills svelte-taxat6"><!></div>');function Nn(j,v){tt(v,!1);const p=d();let C=Ae(v,"tick",8,0),E=d([]),l=d(!1);async function b(){try{s(E,(await Ie.skills()).skills??[])}catch{}}ne(()=>(e(l),e(E)),()=>{s(p,e(l)?e(E):e(E).slice(0,18))}),ne(()=>de(C()),()=>{b(),C()}),st(),et();var A=Jn(),_=a(A);{var h=y=>{var w=Un(),N=Ke(w);let u;Xe(N,5,()=>e(p),re=>re.name,(re,te)=>{var P=Rn(),I=a(P,!0);t(P),Y(()=>{Me(P,"title",(e(te),r(()=>e(te).description??e(te).name))),L(I,(e(te),r(()=>e(te).name)))}),o(re,P)}),t(N);var x=n(N,2);{var K=re=>{var te=Wn(),P=a(te,!0);t(te),Y(()=>L(P,(e(l),e(E),r(()=>e(l)?"收起":`展开全部 ${e(E).length}`)))),M("click",te,()=>s(l,!e(l))),o(re,te)};F(x,re=>{e(E),r(()=>e(E).length>18)&&re(K)})}Y(()=>u=ye(N,1,"chips svelte-taxat6",null,u,{clipped:!e(l)&&e(E).length>18})),o(y,w)},S=y=>{var w=Hn();o(y,w)};F(_,y=>{e(E),r(()=>e(E).length>0)?y(h):y(S,-1)})}t(A),o(j,A),at()}var Kn=f('<button class="up svelte-tp0rgj" aria-label="上级目录"> </button>'),Qn=f('<span class="mono"> </span>'),Vn=f('<button class="row svelte-tp0rgj"><span class="ico svelte-tp0rgj"> </span> <span class="name svelte-tp0rgj"> </span></button>'),Gn=f('<div class="label svelte-tp0rgj">empty</div>'),Yn=f('<div class="label svelte-tp0rgj">…</div>'),Zn=f('<div class="files svelte-tp0rgj"><div class="crumb mono svelte-tp0rgj"><!></div> <div class="list svelte-tp0rgj"><!> <!> <!></div></div>');function Xn(j,v){tt(v,!1);const p=()=>Ee(ft,"$sessionList",C),[C,E]=it(),l=d();let b=Ae(v,"sessionId",8,void 0),A=Ae(v,"tick",8,0),_=d([]),h=d("."),S=d(!1);async function y(){if(e(l)){s(S,!0);try{s(_,(await Ie.browse(e(l),e(h))).files??[])}catch{s(_,[])}finally{s(S,!1)}}}function w(){const Z=e(h).replace(/(^|\/)[^/]+\/?$/,"")||".";s(h,Z),y()}function N(Z){if(Z.type==="directory"){s(h,Z.path),y();return}Fa({id:`file:${Z.path}`,kind:"file",title:Z.name,path:Z.path,directory:e(l)})}ne(()=>(p(),de(b())),()=>{var Z;s(l,((Z=p().find(D=>D.id===b()))==null?void 0:Z.directory)??"")}),ne(()=>(e(l),e(h),de(A())),()=>{e(l)&&(e(l),e(h),A(),y())}),st(),et();var u=Zn(),x=a(u),K=a(x);{var re=Z=>{var D=Kn(),X=a(D);t(D),Y(()=>L(X,`↰ ${e(h)??""}`)),M("click",D,w),o(Z,D)},te=Z=>{var D=Qn(),X=a(D,!0);t(D),Y(me=>L(X,me),[()=>(e(l),r(()=>e(l).split("/").pop()||"/"))]),o(Z,D)};F(K,Z=>{e(h)!=="."?Z(re):Z(te,-1)})}t(x);var P=n(x,2),I=a(P);Xe(I,1,()=>e(_),Z=>Z.path,(Z,D)=>{var X=Vn(),me=a(X),ve=a(me,!0);t(me);var B=n(me,2),V=a(B,!0);t(B),t(X),Y(()=>{L(ve,(e(D),r(()=>e(D).type==="directory"?"📁":"📄"))),L(V,(e(D),r(()=>e(D).name)))}),M("click",X,()=>N(e(D))),o(Z,X)});var ie=n(I,2);{var Q=Z=>{var D=Gn();o(Z,D)};F(ie,Z=>{e(S),e(_),r(()=>!e(S)&&e(_).length===0)&&Z(Q)})}var $=n(ie,2);{var O=Z=>{var D=Yn();o(Z,D)};F($,Z=>{e(S)&&Z(O)})}t(P),t(u),o(j,u),at(),E()}var er=f('<div class="row svelte-148ev8e"><span class="ico svelte-148ev8e" aria-hidden="true">🌿</span> <span class="name svelte-148ev8e"> </span> <button> </button></div>'),tr=f('<div class="rows svelte-148ev8e"></div>'),ar=f('<div class="label svelte-148ev8e">none</div>'),sr=f('<div class="err svelte-148ev8e"> </div>'),nr=f('<div class="form svelte-148ev8e"><input class="name-in mono svelte-148ev8e" placeholder="worktree 名称"/> <!> <button class="go svelte-148ev8e">创建</button></div>'),rr=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 lr(j,v){tt(v,!1);const p=()=>Ee(ft,"$sessionList",C),[C,E]=it(),l=d();let b=Ae(v,"sessionId",8,void 0),A=Ae(v,"tick",8,0),_=d([]),h=d(!1),S=d(""),y=d(""),w=d(),N;async function u(){if(e(l))try{s(_,(await Ie.worktrees(e(l))).worktrees??[])}catch{}}async function x(){if(e(S).trim()){s(y,"");try{const X=await Ie.createWorktree(e(l),e(S).trim());if(X.error){s(y,X.error);return}s(S,""),s(h,!1),await u()}catch(X){s(y,X.message)}}}async function K(X){if(e(w)!==X){s(w,X),clearTimeout(N),N=setTimeout(()=>s(w,void 0),3e3);return}clearTimeout(N),s(w,void 0);try{await Ie.removeWorktree(e(l),X),await u()}catch{}}ne(()=>(p(),de(b())),()=>{var X;s(l,((X=p().find(me=>me.id===b()))==null?void 0:X.directory)??"")}),ne(()=>(de(A()),e(l)),()=>{u(),A(),e(l)}),st(),et();var re=rr(),te=a(re),P=a(te),I=a(P,!0);t(P),t(te);var ie=n(te,2),Q=a(ie);{var $=X=>{var me=tr();Xe(me,5,()=>e(_),ve=>ve.name,(ve,B)=>{var V=er(),W=n(a(V),2),g=a(W,!0);t(W);var ae=n(W,2);let pe;var Se=a(ae,!0);t(ae),t(V),Y(()=>{L(g,(e(B),r(()=>e(B).name))),pe=ye(ae,1,"del svelte-148ev8e",null,pe,{arm:e(w)===e(B).name}),Me(ae,"aria-label",`删除 ${e(B),r(()=>e(B).name)??""}`),L(Se,(e(w),e(B),r(()=>e(w)===e(B).name?"确认?":"✕")))}),M("click",ae,()=>K(e(B).name)),o(ve,V)}),t(me),o(X,me)},O=X=>{var me=ar();o(X,me)};F(Q,X=>{e(_),r(()=>e(_).length>0)?X($):e(h)||X(O,1)})}t(ie);var Z=n(ie,2);{var D=X=>{var me=nr(),ve=a(me);_t(ve);var B=n(ve,2);{var V=g=>{var ae=sr(),pe=a(ae,!0);t(ae),Y(()=>L(pe,e(y))),o(g,ae)};F(B,g=>{e(y)&&g(V)})}var W=n(B,2);t(me),Y(g=>W.disabled=g,[()=>(e(S),r(()=>!e(S).trim()))]),mt(ve,()=>e(S),g=>s(S,g)),M("click",W,x),o(X,me)};F(Z,X=>{e(h)&&X(D)})}t(re),Y(()=>{Me(P,"aria-label",e(h)?"取消新建":"新建 worktree"),L(I,e(h)?"×":"+")}),M("click",P,()=>s(h,!e(h))),o(j,re),at(),E()}var ir=f('<span class="count mono svelte-1s66f6s"> </span>'),or=f('<span class="live-label svelte-1s66f6s">运行中</span>'),cr=f('<button class="row svelte-1s66f6s"><span aria-hidden="true"></span> <span class="meta svelte-1s66f6s"><span class="title svelte-1s66f6s"> </span> <!></span> <!></button>'),vr=f('<div class="empty svelte-1s66f6s">该会话暂无子代理</div>'),dr=f('<div class="empty svelte-1s66f6s">…</div>'),ur=f('<div class="subs svelte-1s66f6s"><!> <!> <!></div>');function pr(j,v){tt(v,!1);let p=Ae(v,"sessionId",8,void 0),C=Ae(v,"tick",8,0),E=d([]),l=d(!1);async function b(){if(!p()){s(E,[]);return}s(l,!0);try{const u=await Ie.subagents(p());s(E,[...u.subagents??[]].sort((x,K)=>Number(K.busy??!1)-Number(x.busy??!1)))}catch{s(E,[])}finally{s(l,!1)}}function A(u){try{sessionStorage.setItem(`ocrc.subparent.${u.id}`,p()??"")}catch{}Fa({id:`sub:${u.id}`,kind:"subagent",title:u.title||"…"+u.id.slice(-6),childId:u.id})}ne(()=>(de(p()),de(C())),()=>{p()&&(p(),C(),b())}),st(),et();var _=ur(),h=a(_);Xe(h,1,()=>e(E),u=>u.id,(u,x)=>{var K=cr(),re=a(K);let te;var P=n(re,2),I=a(P),ie=a(I,!0);t(I);var Q=n(I,2);{var $=D=>{var X=ir(),me=a(X);t(X),Y(()=>L(me,`${e(x),r(()=>e(x).done)??""}/${e(x),r(()=>e(x).total)??""}`)),o(D,X)};F(Q,D=>{e(x),r(()=>e(x).total>0)&&D($)})}t(P);var O=n(P,2);{var Z=D=>{var X=or();o(D,X)};F(O,D=>{e(x),r(()=>e(x).busy)&&D(Z)})}t(K),Y(D=>{te=ye(re,1,"dot svelte-1s66f6s",null,te,{live:e(x).busy,done:!e(x).busy&&e(x).total>0&&e(x).done>=e(x).total}),L(ie,D)},[()=>(e(x),r(()=>e(x).title||"…"+e(x).id.slice(-6)))]),M("click",K,()=>A(e(x))),o(u,K)});var S=n(h,2);{var y=u=>{var x=vr();o(u,x)};F(S,u=>{e(l),e(E),r(()=>!e(l)&&e(E).length===0)&&u(y)})}var w=n(S,2);{var N=u=>{var x=dr();o(u,x)};F(w,u=>{e(l)&&u(N)})}t(_),o(j,_),at()}var fr=f('<div class="empty svelte-6fqea2">(暂无输出——子代理开跑后这里实时滚动)</div>'),hr=f('<div class="t-wrap svelte-6fqea2"><div class="t-hd svelte-6fqea2"><span class="t-hint mono svelte-6fqea2"> </span> <button class="open svelte-6fqea2">在中栏打开此会话 →</button></div> <div class="t-body svelte-6fqea2"></div></div>');function br(j,v){tt(v,!1);const p=()=>Ee(ut,"$feeds",C),[C,E]=it(),l=d();let b=Ae(v,"childId",8),A=Ae(v,"tick",8,0),_=d(),h=!0,S=d();async function y(I){const ie=bt(ut)[I];if(!(ie&&ie.order.length>0))try{const Q=await Ie.history(I,{limit:60});Vt(I,Q.cards??[],Q.lastSeq??0)}catch{}}Pt(()=>{b()&&Ut({type:"unsubscribe",sessionId:b()})});function w(){h&&e(_)&&requestAnimationFrame(()=>{e(_)&&h&&la(_,e(_).scrollTop=e(_).scrollHeight)})}function N(){e(_)&&(h=e(_).scrollHeight-e(_).scrollTop-e(_).clientHeight<60)}ne(()=>(de(b()),e(S),Ut),()=>{b()&&b()!==e(S)&&(s(S,b()),(async()=>{var ie;await y(b());const I=((ie=bt(ut)[b()])==null?void 0:ie.lastSeq)??0;Ut({type:"subscribe",sessionId:b(),sinceSeq:I})})())}),ne(()=>(de(b()),de(A()),ut),()=>{var I,ie;b()&&A()&&((ie=(I=bt(ut)[b()])==null?void 0:I.order)==null?void 0:ie.length)===0&&y(b())}),ne(()=>(de(b()),p()),()=>{s(l,b()?Ta(p()[b()]??null):[])}),ne(()=>e(l),()=>{e(l)&&w()}),st(),et();var u=hr(),x=a(u),K=a(x),re=a(K);t(K);var te=n(K,2);t(x);var P=n(x,2);Xe(P,7,()=>e(l),(I,ie)=>I.seq??I.id??ie,(I,ie)=>{Pa(I,{get card(){return e(ie)}})},I=>{var ie=fr();o(I,ie)}),t(P),Et(P,I=>s(_,I),()=>e(_)),t(u),Y(()=>L(re,`实况 · ${e(l),r(()=>e(l).length)??""} 条`)),M("click",te,()=>Yt("/"+b())),M("scroll",P,N),o(j,u),at(),E()}var _r=f('<div class="trunc label svelte-va1nfd"> </div>'),mr=f('<div class="hint label svelte-va1nfd">…</div>'),gr=f('<div class="hint label svelte-va1nfd">读取失败</div>'),yr=f('<div class="hint label svelte-va1nfd">(二进制文件,无法预览)</div>'),wr=f('<div class="fv svelte-va1nfd"><!> <div class="body svelte-va1nfd"><!></div></div>');function kr(j,v){tt(v,!1);const p=d(),C=d(),E=d();let l=Ae(v,"directory",8),b=Ae(v,"path",8);const A=2e5;let _=d(""),h=d(!1),S=d(!1),y=d(!1),w=d(!1);async function N(){s(w,!0),s(y,!1);try{const $=await Ie.fileContent(l(),b());if($.type!=="text"){s(S,!0),s(_,"");return}s(S,!1),s(h,$.content.length>A),s(_,e(h)?$.content.slice(0,A):$.content)}catch{s(y,!0)}finally{s(w,!1)}}ne(()=>(de(l()),de(b())),()=>{l()&&b()&&(l(),b(),N())}),ne(()=>de(b()),()=>{s(p,/\.(md|markdown)$/i.test(b()))}),ne(()=>de(b()),()=>{s(C,b().split(".").pop()??"")}),ne(()=>(e(S),e(y),e(p),e(_),e(C)),()=>{s(E,e(S)||e(y)?"":e(p)?e(_):"```"+e(C)+`
|
|
2
|
+
`+e(_)+"\n```")}),st(),et();var u=wr(),x=a(u);{var K=$=>{var O=_r(),Z=a(O);t(O),Y(D=>L(Z,`文件超过 ${D??""} 字符,已截断显示`),[()=>r(()=>A.toLocaleString())]),o($,O)};F(x,$=>{e(h)&&$(K)})}var re=n(x,2),te=a(re);{var P=$=>{var O=mr();o($,O)},I=$=>{var O=gr();o($,O)},ie=$=>{var O=yr();o($,O)},Q=$=>{{let O=zt(()=>e(p)?e(_):e(E));_s($,{get src(){return e(O)}})}};F(te,$=>{e(w)?$(P):e(y)?$(I,1):e(S)?$(ie,2):$(Q,-1)})}t(re),t(u),o(j,u),at()}var xr=f('<div class="cmd mono svelte-1bw07gw"> </div>'),Ar=f('<div class="hint mono svelte-1bw07gw">…</div>'),Ir=f('<div class="hint mono svelte-1bw07gw">(找不到该工具调用的原始数据)</div>'),$r=f('<pre class="body mono err svelte-1bw07gw"> </pre>'),qr=f('<pre class="body mono svelte-1bw07gw"> </pre>'),Mr=f('<div class="hint mono svelte-1bw07gw"> </div>'),Sr=f('<div class="out svelte-1bw07gw"><div class="hd svelte-1bw07gw"><span class="tool mono svelte-1bw07gw"> </span> <span> </span></div> <!> <!></div>');function Tr(j,v){tt(v,!1);const p=d();let C=Ae(v,"sessionId",8),E=Ae(v,"messageId",8),l=Ae(v,"partId",8),b=Ae(v,"tick",8,0),A=d(""),_=d(""),h=d(""),S=d(""),y=d(""),w=d(!1),N=d(!0),u,x=!1;function K(W){return W.find(g=>(g==null?void 0:g.id)===l()&&(g==null?void 0:g.type)==="tool")??W.find(g=>{var ae;return(g==null?void 0:g.type)==="tool"&&((ae=g==null?void 0:g.state)==null?void 0:ae.callID)!=null&&(g==null?void 0:g.id)===l()})}async function re(){try{const W=await Ie.messageRaw(C(),E()),g=K((W==null?void 0:W.parts)??[]);if(!g){s(w,!0);return}s(w,!1),s(A,String(g.tool??""));const ae=g.state??{};s(_,String(ae.status??"pending"));const pe=ae.input??{};s(h,String(pe.command??pe.cmd??pe.filePath??pe.description??"")),s(S,typeof ae.output=="string"?ae.output:""),s(y,typeof ae.error=="string"?ae.error:"")}catch{s(w,!0)}finally{s(N,!1),!x&&(e(_)==="running"||e(_)==="pending")&&(clearTimeout(u),u=setTimeout(()=>{x||re()},2e3))}}Pt(()=>{x=!0,clearTimeout(u)}),ne(()=>(de(C()),de(E())),()=>{C()&&E()&&(C(),E(),re())}),ne(()=>(e(N),de(b())),()=>{!e(N)&&b()&&(b(),re())}),ne(()=>e(_),()=>{s(p,e(_)==="completed"||e(_)==="done"?"完成":e(_)==="error"?"出错":e(_)==="running"?"运行中":e(_)||"…")}),st(),et();var te=Sr(),P=a(te),I=a(P),ie=a(I,!0);t(I);var Q=n(I,2),$=a(Q,!0);t(Q),t(P);var O=n(P,2);{var Z=W=>{var g=xr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(h))),o(W,g)};F(O,W=>{e(h)&&W(Z)})}var D=n(O,2);{var X=W=>{var g=Ar();o(W,g)},me=W=>{var g=Ir();o(W,g)},ve=W=>{var g=$r(),ae=a(g,!0);t(g),Y(()=>L(ae,e(y))),o(W,g)},B=W=>{var g=qr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(S))),o(W,g)},V=W=>{var g=Mr(),ae=a(g,!0);t(g),Y(()=>L(ae,e(_)==="running"||e(_)==="pending"?"运行中——输出将在完成时出现":"(无输出)")),o(W,g)};F(D,W=>{e(N)?W(X):e(w)?W(me,1):e(y)?W(ve,2):e(S)?W(B,3):W(V,-1)})}t(te),Y(()=>{L(ie,e(A)||"tool"),ye(Q,1,`st mono ${e(_)??""}`,"svelte-1bw07gw"),L($,e(p))}),o(j,te),at()}var Cr=f('<span class="count mono svelte-1x813in"> </span>'),zr=f('<span class="add svelte-1x813in"> </span>'),Er=f('<span class="del svelte-1x813in"> </span>'),Lr=f('<div class="hint mono svelte-1x813in">…</div>'),Br=f('<pre class="patch mono svelte-1x813in"> </pre>'),jr=f('<div class="hint mono svelte-1x813in">(无改动内容)</div>'),Dr=f('<div class="file svelte-1x813in"><button class="row svelte-1x813in"><span> </span> <span class="path mono svelte-1x813in"> </span> <span class="delta mono svelte-1x813in"><!> <!></span></button> <!></div>'),Pr=f('<div class="hint svelte-1x813in">工作区干净</div>'),Or=f('<div class="hint svelte-1x813in">…</div>'),Fr=f('<div class="git svelte-1x813in"><div class="hd svelte-1x813in"><span class="branch mono svelte-1x813in"> </span> <!></div> <!> <!></div>');function Rr(j,v){tt(v,!1);let p=Ae(v,"sessionId",8,void 0),C=Ae(v,"tick",8,0),E=d(""),l=d([]),b=d(new Map),A=d(new Set),_=d(!0),h=d(null);async function S(){try{const $=await Ie.vcs(p());s(E,($==null?void 0:$.branch)??""),s(l,($==null?void 0:$.status)??[])}catch{s(E,""),s(l,[])}finally{s(_,!1)}}async function y($){if(!(e(b).has($)||e(h)!==null)){s(h,$);try{const O=await Ie.vcsDiff(p(),$);s(b,new Map([...e(b),[$,(O==null?void 0:O.patch)??""]]))}catch{s(b,new Map([...e(b),[$,"(patch 读取失败)"]]))}finally{s(h,null)}}}function w($){if(e(A).has($)){s(A,new Set([...e(A)].filter(O=>O!==$)));return}s(A,new Set([...e(A),$])),y($)}const N=$=>$==="added"?"新增":$==="deleted"?"删除":$==="modified"?"修改":$??"";ne(()=>de(C()),()=>{C(),S()}),st(),et();var u=Fr(),x=a(u),K=a(x),re=a(K,!0);t(K);var te=n(K,2);{var P=$=>{var O=Cr(),Z=a(O);t(O),Y(()=>L(Z,`${e(l),r(()=>e(l).length)??""} 个文件`)),o($,O)};F(te,$=>{e(l),r(()=>e(l).length)&&$(P)})}t(x);var I=n(x,2);Xe(I,1,()=>e(l),$=>$.file,($,O)=>{var Z=Dr(),D=a(Z),X=a(D),me=a(X,!0);t(X);var ve=n(X,2),B=a(ve,!0);t(ve);var V=n(ve,2),W=a(V);{var g=he=>{var we=zr(),Fe=a(we);t(we),Y(()=>L(Fe,`+${e(O),r(()=>e(O).additions)??""}`)),o(he,we)};F(W,he=>{e(O),r(()=>e(O).additions)&&he(g)})}var ae=n(W,2);{var pe=he=>{var we=Er(),Fe=a(we);t(we),Y(()=>L(Fe,`−${e(O),r(()=>e(O).deletions)??""}`)),o(he,we)};F(ae,he=>{e(O),r(()=>e(O).deletions)&&he(pe)})}t(V),t(D);var Se=n(D,2);{var je=he=>{var we=ot(),Fe=Ke(we);{var Pe=se=>{var be=Lr();o(se,be)},Ue=se=>{var be=Br(),m=a(be,!0);t(be),Y(oe=>L(m,oe),[()=>(e(b),e(O),r(()=>e(b).get(e(O).file)))]),o(se,be)},ke=ht(()=>(e(b),e(O),r(()=>e(b).get(e(O).file)))),He=se=>{var be=jr();o(se,be)};F(Fe,se=>{e(h),e(O),r(()=>e(h)===e(O).file)?se(Pe):e(ke)?se(Ue,1):se(He,-1)})}o(he,we)},De=ht(()=>(e(A),e(O),r(()=>e(A).has(e(O).file))));F(Se,he=>{e(De)&&he(je)})}t(Z),Y((he,we)=>{Me(D,"aria-expanded",he),ye(X,1,`badge ${e(O),r(()=>e(O).status)??""}`,"svelte-1x813in"),L(me,we),L(B,(e(O),r(()=>e(O).file)))},[()=>(e(A),e(O),r(()=>e(A).has(e(O).file))),()=>(e(O),r(()=>N(e(O).status)))]),M("click",D,()=>w(e(O).file)),o($,Z)},$=>{var O=ot(),Z=Ke(O);{var D=X=>{var me=Pr();o(X,me)};F(Z,X=>{e(_)||X(D)})}o($,O)});var ie=n(I,2);{var Q=$=>{var O=Or();o($,O)};F(ie,$=>{e(_)&&$(Q)})}t(u),Y(()=>L(re,e(E)||"…")),o(j,u),at()}var Wr=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),Ur=f('<button role="tab" draggable="true"><span class="dlabel svelte-gu3dqx"> </span> <!> <span class="closer svelte-gu3dqx" role="button" tabindex="-1">✕</span></button>'),Hr=f('<div class="tabs-menu svelte-gu3dqx" role="menu"><button role="menuitem">关闭其他</button> <button role="menuitem">关闭全部</button></div>'),Jr=f('<button class="tabs-more svelte-gu3dqx" title="页签操作" aria-label="页签操作">⋯</button> <!>',1),Nr=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),Kr=f('<button role="menuitem" class="svelte-gu3dqx"> <!></button>'),Qr=f('<div class="plus-menu svelte-gu3dqx" role="menu"><button role="menuitem" class="svelte-gu3dqx">辅助对话</button> <div class="menu-sep svelte-gu3dqx"></div> <!> <div class="menu-sep svelte-gu3dqx"></div> <button role="menuitem" class="svelte-gu3dqx">Git</button></div>'),Vr=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Gr=f('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Yr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M9 11l3 3 8-8"></path><path d="M20 12v6a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h9"></path></svg>'),Zr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><path d="M13 2v7h7"></path></svg>'),Xr=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="12" cy="12" r="3"></circle><path d="M12 2v3M12 19v3M2 12h3M19 12h3"></path></svg>'),el=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M12 2l2.4 4.9 5.4.8-3.9 3.8.9 5.4-4.8-2.5-4.8 2.5.9-5.4L4.2 7.7l5.4-.8z"></path></svg>'),tl=gt('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>'),al=f('<span class="tbadge mono svelte-gu3dqx"> </span>'),sl=f('<button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><!></span> <span class="l-text svelte-gu3dqx"> <!></span></button>'),nl=f('<div class="launcher svelte-gu3dqx"><p class="l-title svelte-gu3dqx">打开面板</p> <p class="l-desc svelte-gu3dqx">选择要在侧栏中打开的面板。</p> <div class="l-list svelte-gu3dqx"><!> <div class="l-sep svelte-gu3dqx"></div> <button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></span> <span class="l-text svelte-gu3dqx">辅助对话</span></button> <div class="l-sep svelte-gu3dqx"></div> <button class="l-card svelte-gu3dqx"><span class="l-ico svelte-gu3dqx" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="svelte-gu3dqx"><circle cx="6" cy="6" r="2.5"></circle><circle cx="6" cy="18" r="2.5"></circle><circle cx="18" cy="8" r="2.5"></circle><path d="M6 8.5v7M8 7c6 0 8 2 8 6v2.5"></path></svg></span> <span class="l-text svelte-gu3dqx">Git</span></button></div></div>'),rl=f('<aside class="inspector svelte-gu3dqx"><div class="head svelte-gu3dqx"><div class="head-main svelte-gu3dqx"><div class="section-label svelte-gu3dqx">会话</div> <div class="name svelte-gu3dqx"><span class="title-text svelte-gu3dqx"> </span></div></div> <button class="collapse-btn svelte-gu3dqx" title="收起面板" aria-label="收起面板"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true" class="svelte-gu3dqx"><rect x="3" y="4" width="18" height="16" rx="2"></rect><path d="M15 4v16"></path><path d="M9 9l3 3-3 3"></path></svg></button></div> <div class="tabs svelte-gu3dqx" role="tablist"><!> <!> <div class="plus svelte-gu3dqx"><button class="plus-btn svelte-gu3dqx" aria-label="打开面板" title="打开面板">+</button> <!></div></div> <div class="pane svelte-gu3dqx"><!></div></aside>');function ll(j,v){tt(v,!1);const p=()=>Ee(ft,"$sessionList",b),C=()=>Ee(ut,"$feeds",b),E=()=>Ee(Nt,"$sidePane",b),l=()=>Ee(Ca,"$can",b),[b,A]=it(),_=d(),h=d(),S=d(),y=d(),w=d(),N=d();let u=Ae(v,"sessionId",8,void 0),x=d(0),K=d(-1),re=d();Pt(()=>clearTimeout(e(re)));let te=-1;function P(H){te=H}function I(H){te!==-1&&ms(te,H),te=-1}let ie=d(!1),Q=d();function $(H){e(ie)&&e(Q)&&!e(Q).contains(H.target)&&s(ie,!1)}function O(H){H.key==="Escape"&&(s(ie,!1),s(Z,!1))}let Z=d(!1),D=d(!1);async function X(){var H,J;if(!e(D)){s(D,!0),s(ie,!1);try{const z=(H=e(_))==null?void 0:H.directory,R=await Ie.createSession({directory:z,title:"辅助对话"}),c=R.id??((J=R.session)==null?void 0:J.id);c&&Nt.openPaneTab({id:`sidechat:${c}`,kind:"sidechat",title:"辅助对话",childId:c})}catch{}finally{s(D,!1)}}}function me(){const H=E().activeId;for(const J of E().tabs)J.id!==H&&Jt(J.id)}function ve(){for(const H of E().tabs)Jt(H.id)}let B=d({total:0,done:0,items:[]}),V;async function W(H){if(H)try{const J=await Ie.todo(H);if(H!==u())return;V=H,s(B,Oa(J))}catch{}}let g=d();const ae=H=>H==="tasks"&&e(B).total>0?`${e(B).done}/${e(B).total}`:"";ne(()=>(p(),de(u())),()=>{s(_,p().find(H=>H.id===u()))}),ne(()=>e(_),()=>{var H;s(h,(H=e(_))==null?void 0:H.title)}),ne(()=>(de(u()),C()),()=>{var H;s(S,u()?((H=C()[u()])==null?void 0:H.lastSeq)??0:0)}),ne(()=>(e(S),e(K),e(re),e(x)),()=>{e(S)!==e(K)&&(s(K,e(S)),clearTimeout(e(re)),s(re,setTimeout(()=>s(x,e(x)+1),1e3)))}),ne(()=>E(),()=>{s(y,E().activeId)}),ne(()=>(E(),e(y)),()=>{s(w,E().tabs.find(H=>H.id===e(y)))}),ne(()=>(E(),e(y)),()=>{s(N,E().tabs.findIndex(H=>H.id===e(y)))}),ne(()=>(de(u()),e(g)),()=>{u()!==e(g)&&(s(g,u()),W(u()))}),ne(()=>(e(x),de(u())),()=>{e(x)&&W(u())}),st(),et();var pe=rl();M("click",wt,$),M("keydown",wt,O);var Se=a(pe),je=a(Se),De=n(a(je),2),he=a(De),we=a(he,!0);t(he),t(De),t(je);var Fe=n(je,2);t(Se);var Pe=n(Se,2),Ue=a(Pe);Xe(Ue,3,()=>(E(),r(()=>E().tabs)),H=>H.id,(H,J,z)=>{var R=Ur();let c;var i=a(R),q=a(i,!0);t(i);var le=n(i,2);{var ee=_e=>{var ze=Wr(),Ce=a(ze);t(ze),Y(()=>L(Ce,`${e(B),r(()=>e(B).done)??""}/${e(B),r(()=>e(B).total)??""}`)),o(_e,ze)};F(le,_e=>{e(J),e(B),r(()=>e(J).kind==="home"&&e(J).homeId==="tasks"&&e(B).total>0)&&_e(ee)})}var T=n(le,2);t(R),Y(()=>{c=ye(R,1,"tab svelte-gu3dqx",null,c,{active:e(y)===e(J).id}),Me(R,"aria-selected",(e(y),e(J),r(()=>e(y)===e(J).id))),Me(R,"title",(e(J),r(()=>e(J).kind==="file"?e(J).path:e(J).title))),L(q,(e(J),r(()=>e(J).title))),Me(T,"aria-label",(e(J),r(()=>`关闭 ${e(J).title}`)))}),M("click",T,Wt(()=>Jt(e(J).id))),M("keydown",T,Wt(_e=>_e.key==="Enter"&&Jt(e(J).id))),M("click",R,()=>Nt.activatePane(e(J).id)),M("dragstart",R,()=>P(e(z))),M("dragover",R,xa(()=>{})),M("drop",R,()=>I(e(z))),M("auxclick",R,xa(_e=>{_e.button===1&&Jt(e(J).id)})),o(H,R)});var ke=n(Ue,2);{var He=H=>{var J=Jr(),z=Ke(J),R=n(z,2);{var c=i=>{var q=Hr(),le=a(q),ee=n(le,2);t(q),M("click",le,()=>{me(),s(Z,!1)}),M("click",ee,()=>{ve(),s(Z,!1)}),o(i,q)};F(R,i=>{e(Z)&&i(c)})}M("click",z,()=>s(Z,!e(Z))),o(H,J)};F(ke,H=>{E(),r(()=>E().tabs.length>1)&&H(He)})}var se=n(ke,2),be=a(se),m=n(be,2);{var oe=H=>{var J=Qr(),z=a(J),R=n(z,4);Xe(R,1,()=>Ia,i=>i.homeId,(i,q)=>{var le=Kr(),ee=a(le,!0),T=n(ee);{var _e=Ce=>{var $e=Nr(),Ne=a($e,!0);t($e),Y(Ye=>L(Ne,Ye),[()=>(e(q),r(()=>ae(e(q).homeId)))]),o(Ce,$e)},ze=ht(()=>(e(q),r(()=>ae(e(q).homeId))));F(T,Ce=>{e(ze)&&Ce(_e)})}t(le),Y(()=>L(ee,(e(q),r(()=>e(q).title)))),M("click",le,()=>{Aa(e(q).homeId),s(ie,!1)}),o(i,le)});var c=n(R,4);t(J),Y(()=>z.disabled=e(D)),M("click",z,X),M("click",c,()=>{Nt.openPaneTab({id:"git",kind:"git",title:"Git"}),s(ie,!1)}),o(H,J)};F(m,H=>{e(ie)&&H(oe)})}t(se),Et(se,H=>s(Q,H),()=>e(Q)),t(Pe);var k=n(Pe,2),G=a(k);{var U=H=>{var J=ot(),z=Ke(J);{var R=ee=>{var T=ot(),_e=Ke(T);{var ze=$e=>{Tn($e,{get sessionId(){return u()},get tick(){return e(x)}})},Ce=ht(()=>(l(),r(()=>l()("todos"))));F(_e,$e=>{e(Ce)&&$e(ze)})}o(ee,T)},c=ee=>{var T=Vr(),_e=Ke(T);Xn(_e,{get sessionId(){return u()},get tick(){return e(x)}});var ze=n(_e,4);{var Ce=Ne=>{lr(Ne,{get sessionId(){return u()},get tick(){return e(x)}})},$e=ht(()=>(l(),r(()=>l()("worktrees"))));F(ze,Ne=>{e($e)&&Ne(Ce)})}o(ee,T)},i=ee=>{var T=ot(),_e=Ke(T);{var ze=$e=>{pr($e,{get sessionId(){return u()},get tick(){return e(x)}})},Ce=ht(()=>(l(),r(()=>l()("todos"))));F(_e,$e=>{e(Ce)&&$e(ze)})}o(ee,T)},q=ee=>{var T=ot(),_e=Ke(T);{var ze=$e=>{Nn($e,{get tick(){return e(x)}})},Ce=ht(()=>(l(),r(()=>l()("skills"))));F(_e,$e=>{e(Ce)&&$e(ze)})}o(ee,T)},le=ee=>{var T=Gr(),_e=Ke(T);Fn(_e,{get tick(){return e(x)}});var ze=n(_e,4);{var Ce=Ne=>{Ln(Ne,{get tick(){return e(x)}})},$e=ht(()=>(l(),r(()=>l()("mcp"))));F(ze,Ne=>{e($e)&&Ne(Ce)})}o(ee,T)};F(z,ee=>{e(w),r(()=>e(w).homeId==="tasks")?ee(R):(e(w),r(()=>e(w).homeId==="files")?ee(c,1):(e(w),r(()=>e(w).homeId==="subs")?ee(i,2):(e(w),r(()=>e(w).homeId==="skills")?ee(q,3):(e(w),r(()=>e(w).homeId==="config")&&ee(le,4)))))})}o(H,J)},ce=H=>{br(H,{get childId(){return e(w),r(()=>e(w).childId)},get tick(){return e(x)}})},qe=H=>{kr(H,{get directory(){return e(w),r(()=>e(w).directory)},get path(){return e(w),r(()=>e(w).path)}})},Te=H=>{Tr(H,{get sessionId(){return e(w),r(()=>e(w).sessionId)},get messageId(){return e(w),r(()=>e(w).messageId)},get partId(){return e(w),r(()=>e(w).partId)},get tick(){return e(x)}})},ue=H=>{Rr(H,{get sessionId(){return u()},get tick(){return e(x)}})},xe=H=>{An(H,{get childId(){return e(w),r(()=>e(w).childId)},get tick(){return e(x)}})},Je=H=>{var J=nl(),z=n(a(J),4),R=a(z);Xe(R,1,()=>Ia,q=>q.homeId,(q,le)=>{var ee=sl(),T=a(ee),_e=a(T);{var ze=Le=>{var Be=Yr();o(Le,Be)},Ce=Le=>{var Be=Zr();o(Le,Be)},$e=Le=>{var Be=Xr();o(Le,Be)},Ne=Le=>{var Be=el();o(Le,Be)},Ye=Le=>{var Be=tl();o(Le,Be)};F(_e,Le=>{e(le),r(()=>e(le).homeId==="tasks")?Le(ze):(e(le),r(()=>e(le).homeId==="files")?Le(Ce,1):(e(le),r(()=>e(le).homeId==="subs")?Le($e,2):(e(le),r(()=>e(le).homeId==="skills")?Le(Ne,3):Le(Ye,-1))))})}t(T);var ge=n(T,2),fe=a(ge),Ve=n(fe);{var Qe=Le=>{var Be=al(),Oe=a(Be);t(Be),Y(()=>L(Oe,`${e(B),r(()=>e(B).done)??""}/${e(B),r(()=>e(B).total)??""}`)),o(Le,Be)};F(Ve,Le=>{e(le),e(B),r(()=>e(le).homeId==="tasks"&&e(B).total>0)&&Le(Qe)})}t(ge),t(ee),Y(()=>L(fe,`${e(le),r(()=>e(le).title)??""} `)),M("click",ee,()=>Aa(e(le).homeId)),o(q,ee)});var c=n(R,4),i=n(c,4);t(z),t(J),Y(()=>c.disabled=e(D)),M("click",c,X),M("click",i,()=>Nt.openPaneTab({id:"git",kind:"git",title:"Git"})),o(H,J)};F(G,H=>{e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="home"})?H(U):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="subagent"})?H(ce,1):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="file"})?H(qe,2):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="tool"})?H(Te,3):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="git"})?H(ue,4):(e(w),r(()=>{var J;return((J=e(w))==null?void 0:J.kind)==="sidechat"})?H(xe,5):H(Je,-1))))))})}t(k),t(pe),Y(H=>{Me(De,"title",e(h)??u()),L(we,H)},[()=>(e(h),de(u()),r(()=>e(h)||(u()?"…"+u().slice(-8):"No session")))]),M("click",Fe,()=>Qt.set(!1)),M("click",be,()=>s(ie,!e(ie))),o(j,pe),at(),A()}function il(j,v){const p=v.trim().toLowerCase();return p?j.filter(C=>(C.title??"").toLowerCase().includes(p)||(C.agent??"").toLowerCase().includes(p)||C.id.toLowerCase().includes(p)):j}var ol=f('<div class="empty svelte-wh9uu8">无匹配结果</div>'),cl=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>'),vl=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>'),dl=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>'),ul=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>'),pl=f('<div class="error svelte-wh9uu8"> </div>'),fl=f('<div class="about mono svelte-wh9uu8"> </div>'),hl=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 bl(j,v){tt(v,!1);const p=()=>Ee(Ra,"$page",A),C=()=>Ee(oa,"$backends",A),E=()=>Ee(ft,"$sessionList",A),l=()=>Ee(es,"$currentBackendId",A),b=()=>Ee(Ca,"$can",A),[A,_]=it(),h=d(),S=d(),y=d(),w=d(),N=d(),u=d(),x=d(),K=d();let re=Ae(v,"open",8,!1);const te=fs();let P=d(""),I=d(0),ie=d(""),Q=d(""),$=d(null),O=d([]),Z=d(null);function D(m,oe,k){const G=k.trim().toLowerCase();return G?m.toLowerCase().includes(G)||oe.toLowerCase().includes(G):!0}const X=[{name:"new-session",description:"New session"},{name:"toggle-panel",description:"Collapse / expand the agent panel"},{name:"cycle-accent",description:"Cycle accent color"}];function me(m){var k,G,U;const oe=m.replace(/[^a-zA-Z0-9 ]/g," ").trim().split(/[\s-]+/).filter(Boolean);return((((k=oe[0])==null?void 0:k[0])??"")+(((G=oe[1])==null?void 0:G[0])??((U=oe[0])==null?void 0:U[1])??"")).toUpperCase()||m.slice(0,2).toUpperCase()}function ve(m,oe,k,G,U){const ce=[];let qe=0;if(m.length){ce.push({type:"group",label:"Agents",icon:"◆"});for(const ue of m)ce.push({type:"agent",agent:ue,selectableIndex:qe++})}if(oe.length){ce.push({type:"group",label:"Sessions",icon:"#"});for(const ue of oe)ce.push({type:"session",session:ue,selectableIndex:qe++})}const Te=[...k.map(ue=>({...ue,kind:"backend"})),...G.map(ue=>({...ue}))];if(Te.length){ce.push({type:"group",label:"Commands",icon:"/"});for(const ue of Te){const xe=ue.kind==="backend"&&!U;ce.push({type:"command",command:ue,disabled:xe,selectableIndex:xe?void 0:qe++})}}return ce}let B=null,V=d();function W(m){B=document.activeElement,m.focus()}function g(){var m;te("close"),s(P,""),s(ie,""),(m=B==null?void 0:B.focus)==null||m.call(B),B=null}function ae(m){Yt(`/${m}/`),g()}function pe(){const m=l()??"opencode",oe=Ct(m),k=aa[(aa.indexOf(oe)+1)%aa.length];pa(m,k)}async function Se(m){fa(m);try{await na(m)}catch{}g()}async function je(m){if(m==="cycle-accent"){pe(),g();return}if(m==="new-session"){Dt.set(!0),g();return}if(m==="toggle-panel"){Rt.update(oe=>!oe),g();return}if(!(!e(h)||e(Q))){s(Q,m),s(ie,"");try{await Ie.runCommand({sessionId:e(h),command:m}),g()}catch(oe){s(ie,`/${m} failed: ${oe.message}`)}finally{s(Q,"")}}}function De(m){m.type==="agent"&&m.agent?Se(m.agent.id):m.type==="session"&&m.session?ae(m.session.id):m.type==="command"&&!m.disabled&&m.command&&je(m.command.name)}function he(m){if(m.key==="Escape"){g();return}if(m.key==="Tab"){we(m);return}if(e(K)!==0){if(m.key==="ArrowDown"){m.preventDefault(),s(I,Math.min(e(I)+1,e(K)-1)),Fe();return}if(m.key==="ArrowUp"){m.preventDefault(),s(I,Math.max(e(I)-1,0)),Fe();return}if(m.key==="Enter"){const oe=e(x).find(k=>k.selectableIndex===e(I));oe&&(m.preventDefault(),De(oe))}}}function we(m){if(m.key!=="Tab"||!e(V))return;const oe=Array.from(e(V).querySelectorAll("input, button:not(:disabled)"));if(oe.length===0)return;const k=oe[0],G=oe[oe.length-1];m.shiftKey&&document.activeElement===k?(m.preventDefault(),G.focus()):!m.shiftKey&&document.activeElement===G&&(m.preventDefault(),k.focus())}async function Fe(){await hs();const m=document.querySelector(".palette .row.active");m==null||m.scrollIntoView({block:"nearest"})}function Pe(m,oe){return oe?"Open a session first":(m==null?void 0:m.description)??""}ne(()=>(de(re()),e($),Ie),()=>{re()&&!e($)&&Ie.version().then(m=>{s($,{version:m.version,uptime:m.uptime})}).catch(()=>{})}),ne(()=>p(),()=>{s(h,p().params.sessionId)}),ne(()=>C(),()=>{var m;s(S,((m=C())==null?void 0:m.backends)??[])}),ne(()=>(e(S),e(P)),()=>{s(y,e(S).filter(m=>D(m.name??m.id,m.id,e(P))))}),ne(()=>(E(),e(P)),()=>{s(w,il(E(),e(P)))}),ne(()=>(de(re()),l(),e(Z),b(),Ie),()=>{re()&&l()&&l()!==e(Z)&&(s(Z,l()),b()("commands")?Ie.commands(l()).then(m=>{s(O,m)}).catch(()=>{s(Z,null)}):s(O,[]))}),ne(()=>(e(O),e(P)),()=>{s(N,e(O).filter(m=>D(m.name,m.description,e(P))))}),ne(()=>e(P),()=>{s(u,X.filter(m=>D(m.name,m.description,e(P))))}),ne(()=>(e(y),e(w),e(N),e(u),e(h)),()=>{s(x,ve(e(y),e(w),e(N),e(u),e(h)))}),ne(()=>e(x),()=>{s(K,e(x).filter(m=>m.selectableIndex!=null).length)}),ne(()=>(e(I),e(K)),()=>{s(I,e(K)?Math.max(0,Math.min(e(I),e(K)-1)):-1)}),ne(()=>e(P),()=>{e(P),s(I,0)}),st();var Ue={close:g};et();var ke=ot(),He=Ke(ke);{var se=m=>{var oe=hl(),k=a(oe),G=n(k,2),U=a(G),ce=a(U),qe=a(ce);It(qe,{name:"search",size:14}),t(ce);var Te=n(ce,2);_t(Te),ba(Te,i=>W==null?void 0:W(i)),Lt(()=>mt(Te,()=>e(P),i=>s(P,i))),Lt(()=>M("keydown",Te,he)),$t(2),t(U);var ue=n(U,2),xe=a(ue);{var Je=i=>{var q=ol();o(i,q)},H=i=>{var q=ot(),le=Ke(q);Xe(le,1,()=>e(x),ee=>{var T,_e,ze;return((T=ee.agent)==null?void 0:T.id)??((_e=ee.session)==null?void 0:_e.id)??((ze=ee.command)==null?void 0:ze.name)??ee.label??""},(ee,T)=>{var _e=ot(),ze=Ke(_e);{var Ce=ge=>{var fe=cl(),Ve=a(fe),Qe=a(Ve,!0);t(Ve);var Le=n(Ve,2),Be=a(Le,!0);t(Le),t(fe),Y(()=>{L(Qe,(e(T),r(()=>e(T).icon))),L(Be,(e(T),r(()=>e(T).label)))}),o(ge,fe)},$e=ge=>{var fe=vl();let Ve;var Qe=a(fe),Le=a(Qe,!0);t(Qe);var Be=n(Qe,2),Oe=a(Be,!0);t(Be);var Re=n(Be,2),Ge=a(Re,!0);t(Re),t(fe),Y(qt=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I)}),Me(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Le,qt),L(Oe,(e(T),r(()=>{var ct,kt;return((ct=e(T).agent)==null?void 0:ct.name)??((kt=e(T).agent)==null?void 0:kt.id)??""}))),L(Ge,(e(T),C(),r(()=>{var ct,kt,We;return((ct=e(T).agent)==null?void 0:ct.id)===((kt=C())==null?void 0:kt.activeId)?"active":((We=e(T).agent)==null?void 0:We.status)??""})))},[()=>(e(T),r(()=>{var qt,ct;return me(((qt=e(T).agent)==null?void 0:qt.name)??((ct=e(T).agent)==null?void 0:ct.id)??"")}))]),M("click",fe,()=>{e(T).agent&&Se(e(T).agent.id)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)},Ne=ge=>{var fe=dl();let Ve;var Qe=n(a(fe),2),Le=a(Qe,!0);t(Qe);var Be=n(Qe,2),Oe=a(Be,!0);t(Be),t(fe),Y(Re=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I)}),Me(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Le,Re),L(Oe,(e(T),r(()=>{var Ge;return((Ge=e(T).session)==null?void 0:Ge.agent)??""})))},[()=>(e(T),r(()=>{var Re,Ge;return((Re=e(T).session)==null?void 0:Re.title)??((Ge=e(T).session)==null?void 0:Ge.id.slice(-8))??""}))]),M("click",fe,()=>{e(T).session&&ae(e(T).session.id)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)},Ye=ge=>{var fe=ul();let Ve;var Qe=n(a(fe),2),Le=a(Qe,!0);t(Qe);var Be=n(Qe,2),Oe=a(Be,!0);t(Be),t(fe),Y(Re=>{Ve=ye(fe,1,"row svelte-wh9uu8",null,Ve,{active:e(T).selectableIndex===e(I),disabled:e(T).disabled}),fe.disabled=(e(T),e(Q),r(()=>{var Ge;return e(T).disabled||e(Q)===((Ge=e(T).command)==null?void 0:Ge.name)})),Me(fe,"aria-selected",(e(T),e(I),r(()=>e(T).selectableIndex===e(I)))),L(Le,(e(T),r(()=>{var Ge;return((Ge=e(T).command)==null?void 0:Ge.name)??""}))),L(Oe,Re)},[()=>(e(Q),e(T),r(()=>{var Re;return e(Q)===((Re=e(T).command)==null?void 0:Re.name)?"运行中…":Pe(e(T).command,e(T).disabled)}))]),M("click",fe,()=>{e(T).command&&je(e(T).command.name)}),M("mouseenter",fe,()=>{e(T).selectableIndex!=null&&s(I,e(T).selectableIndex)}),o(ge,fe)};F(ze,ge=>{e(T),r(()=>e(T).type==="group")?ge(Ce):(e(T),r(()=>e(T).type==="agent")?ge($e,1):(e(T),r(()=>e(T).type==="session")?ge(Ne,2):(e(T),r(()=>e(T).type==="command")&&ge(Ye,3))))})}o(ee,_e)}),o(i,q)};F(xe,i=>{e(x),r(()=>e(x).length===0)?i(Je):i(H,-1)})}var J=n(xe,2);{var z=i=>{var q=pl(),le=a(q,!0);t(q),Y(()=>L(le,e(ie))),o(i,q)};F(J,i=>{e(ie)&&i(z)})}var R=n(J,2);{var c=i=>{var q=fl(),le=a(q);t(q),Y(()=>L(le,`ocrc v${e($),r(()=>e($).version)??""} · uptime ${e($),r(()=>e($).uptime)??""}`)),o(i,q)};F(R,i=>{e($)&&i(c)})}t(ue),t(G),Et(G,i=>s(V,i),()=>e(V)),t(oe),M("click",k,g),M("keydown",G,we),o(m,oe)};F(He,m=>{re()&&m(se)})}o(j,ke),ks(v,"close",g);var be=at(Ue);return _(),be}var _l=f('<div class="empty svelte-cfrpez">正在加载 agent…</div>'),ml=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>'),gl=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>'),yl=f('<button class="recent svelte-cfrpez" type="button"><span class="recent-name svelte-cfrpez"> </span> <span class="recent-dir mono svelte-cfrpez"> </span></button>'),wl=f('<div><span class="recents-label mono svelte-cfrpez"> </span> <div class="recents-list svelte-cfrpez"></div></div>'),kl=f('<div class="error svelte-cfrpez"> </div>'),xl=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 Al(j,v){tt(v,!1);const p=()=>Ee(oa,"$backends",l),C=()=>Ee(ft,"$sessionList",l),E=()=>Ee(Dt,"$newSessionOpen",l),[l,b]=it(),A=d(),_=d(),h=d(),S=d();let y=d(""),w=d(""),N=d(""),u=d(!1),x=d(null),K=d(!1);function re(V){const W=V.split(/[\s\-_:./]+/).filter(Boolean);return W.length>=2?(W[0][0]+W[1][0]).toUpperCase():V.slice(0,2).toUpperCase()}function te(V){return re((V==null?void 0:V.name)||(V==null?void 0:V.id)||"OC")}function P(V){return V==="online"||V==="connected"?"online":V==="connecting"||V==="reconnecting"?"connecting":V==="offline"?"offline":"online"}function I(){Dt.set(!1),s(x,null)}function ie(V){s(w,V),s(K,!1)}async function Q(){const V=e(w).trim();if(!V){s(x,"需要填写工作目录");return}if(!e(u)){s(u,!0),s(x,null);try{await na(e(y));const W=await Ie.createSession({directory:V});ft.set(await Ie.sessions()),gs.set(await Ie.workspaces()),I(),Yt(`/${W.id}/`)}catch(W){s(x,W.message)}finally{s(u,!1)}}}function $(V){if(V.key==="Escape"){I();return}V.key==="Tab"&&X(V)}let O=d();function Z(V){return Array.from(V.querySelectorAll("button, input, [tabindex]")).filter(W=>!W.hasAttribute("disabled"))}function D(V){const W=document.activeElement,g=V.querySelector("input:not([disabled])")??Z(V)[0];return g==null||g.focus(),{destroy(){var ae;(ae=W==null?void 0:W.focus)==null||ae.call(W)}}}function X(V){if(!e(O))return;const W=Z(e(O));if(W.length===0)return;const g=W[0],ae=W[W.length-1];V.shiftKey&&document.activeElement===g?(V.preventDefault(),ae.focus()):!V.shiftKey&&document.activeElement===ae&&(V.preventDefault(),g.focus())}ne(()=>p(),()=>{var V;s(A,((V=p())==null?void 0:V.backends)??[])}),ne(()=>(p(),e(A)),()=>{var V,W;s(_,((V=p())==null?void 0:V.activeId)??((W=e(A)[0])==null?void 0:W.id)??"opencode")}),ne(()=>(e(y),e(_)),()=>{s(y,e(y)||e(_))}),ne(()=>(p(),e(y)),()=>{var V,W;s(h,((W=(V=p())==null?void 0:V.backends.find(g=>g.id===e(y)))==null?void 0:W.name)??e(y))}),ne(()=>(C(),e(y)),()=>{s(S,(()=>{const V=new Set,W=[];for(const g of[...C()].sort((ae,pe)=>pe.lastActiveAt-ae.lastActiveAt))!(g.backendId===e(y)||!g.backendId&&e(y)==="opencode")||!g.directory||V.has(g.directory)||(V.add(g.directory),W.push({directory:g.directory,name:g.directory.replace(/\/+$/,"").split("/").pop()||g.directory}));return W})())}),st(),et();var me=ot();M("keydown",wt,$);var ve=Ke(me);{var B=V=>{var W=xl(),g=a(W),ae=n(g,2),pe=a(ae),Se=n(a(pe),2),je=a(Se);It(je,{name:"close",size:14}),t(Se),t(pe);var De=n(pe,2),he=a(De);{var we=ue=>{var xe=_l();o(ue,xe)},Fe=ue=>{var xe=gl(),Je=n(a(xe),2);Xe(Je,5,()=>e(A),H=>H.id,(H,J)=>{const z=zt(()=>(de(Ct),e(J),r(()=>Ct(e(J).id)))),R=zt(()=>(e(J),e(y),r(()=>e(J).id===e(y))));var c=ml();let i;var q=a(c),le=a(q,!0);t(q);var ee=n(q,2),T=a(ee),_e=a(T,!0);t(T),t(ee);var ze=n(ee,2),Ce=a(ze,!0);t(ze),t(c),Y(($e,Ne,Ye)=>{i=ye(c,1,"agent-chip svelte-cfrpez",null,i,{selected:e(R)}),Me(c,"aria-checked",e(R)),dt(q,`background:${de(St),de(e(z)),r(()=>St[e(z)])??""}; color:${de(rt),de(e(z)),r(()=>rt[e(z)])??""}; border-color:${de(Tt),de(e(z)),r(()=>Tt[e(z)])??""}`),L(le,$e),ye(ee,1,`chip-status ${Ne??""}`,"svelte-cfrpez"),dt(ee,`--dot:${de(rt),de(e(z)),r(()=>rt[e(z)])??""}`),L(_e,Ye),L(Ce,(e(J),r(()=>e(J).name??e(J).id)))},[()=>(e(J),r(()=>te(e(J)))),()=>(e(J),r(()=>P(e(J).status))),()=>(e(J),r(()=>P(e(J).status)))]),M("click",c,()=>{s(y,e(J).id)}),o(H,c)}),t(Je),t(xe),o(ue,xe)};F(he,ue=>{e(A),r(()=>e(A).length===0)?ue(we):ue(Fe,-1)})}var Pe=n(he,2),Ue=n(a(Pe),2),ke=n(a(Ue),2);_t(ke);var He=n(ke,2);t(Ue);var se=n(Ue,2);{var be=ue=>{var xe=wl();let Je;var H=a(xe),J=a(H);t(H);var z=n(H,2);Xe(z,5,()=>e(S),R=>R.directory,(R,c)=>{var i=yl(),q=a(i),le=a(q,!0);t(q);var ee=n(q,2),T=a(ee,!0);t(ee),t(i),Y(()=>{Me(i,"title",(e(c),r(()=>e(c).directory))),L(le,(e(c),r(()=>e(c).name))),L(T,(e(c),r(()=>e(c).directory)))}),M("click",i,()=>ie(e(c).directory)),o(R,i)}),t(z),t(xe),Y(()=>{Je=ye(xe,1,"recents svelte-cfrpez",null,Je,{open:e(K)}),L(J,`recent · ${e(h)??""}`)}),o(ue,xe)};F(se,ue=>{e(S),r(()=>e(S).length>0)&&ue(be)})}t(Pe);var m=n(Pe,2),oe=n(a(m),2);_t(oe),t(m);var k=n(m,2);{var G=ue=>{var xe=kl(),Je=a(xe,!0);t(xe),Y(()=>L(Je,e(x))),o(ue,xe)};F(k,ue=>{e(x)&&ue(G)})}t(De);var U=n(De,2),ce=a(U),qe=n(ce,2),Te=a(qe,!0);t(qe),t(U),t(ae),Et(ae,ue=>s(O,ue),()=>e(O)),ba(ae,ue=>D==null?void 0:D(ue)),t(W),Y(ue=>{ce.disabled=e(u),qe.disabled=ue,L(Te,e(u)?"Creating…":"Create")},[()=>(e(u),e(w),r(()=>e(u)||!e(w).trim()))]),M("click",g,I),M("click",Se,I),mt(ke,()=>e(w),ue=>s(w,ue)),M("focus",ke,()=>{s(K,!0)}),M("click",He,()=>s(K,!e(K))),mt(oe,()=>e(N),ue=>s(N,ue)),M("click",ce,I),M("click",qe,Q),o(V,W)};F(ve,V=>{E()&&V(B)})}o(j,me),at(),b()}const Il="data:image/png;base64,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";var $l=gt('<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>'),ql=gt('<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>'),Ml=f('<img alt="飞书 / Lark"/>');function Ja(j,v){let p=Ae(v,"channel",8),C=Ae(v,"size",8,30);var E=ot(),l=Ke(E);{var b=h=>{var S=$l();Y(()=>{Me(S,"width",C()),Me(S,"height",C())}),o(h,S)},A=h=>{var S=ql();Y(()=>{Me(S,"width",C()),Me(S,"height",C())}),o(h,S)},_=h=>{var S=Ml();Y(()=>{Me(S,"src",Il),Me(S,"width",C()),Me(S,"height",C()),dt(S,`border-radius: ${C()*.18}px`)}),o(h,S)};F(l,h=>{p()==="telegram"?h(b):p()==="wechat"?h(A,1):h(_,-1)})}o(j,E)}var Sl=f('<button><span class="ch-logo svelte-b8emeh"><!></span> <span class="ch-name"> </span> <span> </span></button>'),Tl=f('<span class="note svelte-b8emeh"> </span>'),Cl=f('<p class="hint svelte-b8emeh">自定义白名单已保存——用工作区切换器添加条目后再来这里勾选。</p>'),zl=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>'),El=f("<span> </span>"),Ll=f('<div class="qr-expired svelte-b8emeh"><span>二维码已过期</span> <button class="copy svelte-b8emeh">刷新二维码</button></div>'),Bl=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),jl=f('<div class="pair-stopped svelte-b8emeh"><span>已停止配对。</span> <button class="copy svelte-b8emeh">重新开始</button></div>'),Dl=f('<p class="hint svelte-b8emeh">配对信息加载中…</p>'),Pl=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 Ol(j,v){tt(v,!1);const p=()=>Ee(ia,"$channelsOpen",C),[C,E]=it(),l=d(),b=d(),A=d(),_=d();let h=d([]),S=d(),y=d(null),w=d(""),N=d(""),u=d(!1),x=d(Date.now()),K=d(!1),re;async function te(){try{s(h,(await Ie.channels()).channels??[]),!e(S)&&e(h).length>0&&s(S,e(h)[0].id)}catch{}}async function P(){s(K,!1);try{s(y,await Ie.pairQr())}catch{s(y,null)}}function I(){s(K,!0)}ha(()=>{te(),P(),re=setInterval(()=>s(x,Date.now()),1e3)}),Pt(()=>{re&&clearInterval(re)});function ie(g){return g==="telegram"?"Telegram":g==="wechat"?"微信":g==="lark"?"Lark":g}function Q(){ia.set(!1)}function $(g){s(S,g),s(w,""),s(N,"")}async function O(g){s(h,e(h).map(ae=>ae.id===g.id?{...ae,enabled:!ae.enabled}:ae));try{await Ie.updateChannel(g.id,{enabled:!g.enabled})}catch{}}async function Z(g,ae){s(h,e(h).map(pe=>pe.id===g.id?{...pe,replyGranularity:ae}:pe));try{await Ie.updateChannel(g.id,{replyGranularity:ae})}catch{}}async function D(g){if(!e(w).trim()){s(N,"请输入凭证内容");return}try{await Ie.updateChannel(g.id,{credentials:{token:e(w).trim()}}),s(N,"已保存——重启实例后生效"),s(w,"")}catch{s(N,"保存失败")}}async function X(){if(e(l)){try{await Ie.resetChannel(e(l).id)}catch{}await te()}}async function me(){if(e(y))try{await navigator.clipboard.writeText(e(y).url),s(u,!0),setTimeout(()=>s(u,!1),1600)}catch{}}function ve(g){g.key==="Escape"&&Q()}ne(()=>(e(h),e(S)),()=>{s(l,e(h).find(g=>g.id===e(S))??e(h)[0])}),ne(()=>(e(y),e(x)),()=>{var g;s(b,(g=e(y))!=null&&g.expiresAt?Math.max(0,e(y).expiresAt-e(x)):null)}),ne(()=>e(b),()=>{s(A,e(b)!==null&&e(b)<=0)}),ne(()=>e(b),()=>{s(_,e(b)===null?"":`${Math.floor(e(b)/6e4)}:${String(Math.floor(e(b)%6e4/1e3)).padStart(2,"0")}`)}),st(),et();var B=ot();M("keydown",wt,ve);var V=Ke(B);{var W=g=>{var ae=Pl(),pe=a(ae),Se=n(pe,2),je=a(Se),De=n(a(je),2);t(je);var he=n(je,2),we=a(he);Xe(we,5,()=>e(h),m=>m.id,(m,oe)=>{var k=Sl();let G;var U=a(k),ce=a(U);Ja(ce,{get channel(){return e(oe),r(()=>e(oe).channel)},size:22}),t(U);var qe=n(U,2),Te=a(qe,!0);t(qe);var ue=n(qe,2);let xe;var Je=a(ue,!0);t(ue),t(k),Y(H=>{var J;G=ye(k,1,"ch svelte-b8emeh",null,G,{sel:((J=e(l))==null?void 0:J.id)===e(oe).id}),L(Te,H),xe=ye(ue,1,"ch-state svelte-b8emeh",null,xe,{on:e(oe).enabled}),L(Je,(e(oe),r(()=>e(oe).enabled?"已启用":"已停用")))},[()=>(e(oe),r(()=>ie(e(oe).channel)))]),M("click",k,()=>$(e(oe).id)),o(m,k)}),t(we);var Fe=n(we,2);{var Pe=m=>{var oe=zl(),k=a(oe),G=a(k),U=a(G,!0);t(G);var ce=n(G,2);let qe;t(k);var Te=n(k,2),ue=a(Te);{var xe=Oe=>{var Re=ra();Y(()=>L(Re,`${e(l),r(()=>{var Ge;return(Ge=e(l).live)!=null&&Ge.connected?"轮询运行中":"未在轮询"})??""}${e(l),r(()=>{var Ge;return(Ge=e(l).live)!=null&&Ge.username?` · @${e(l).live.username}`:""})??""}。
|
|
3
|
+
停用/启用在重启实例后生效。`)),o(Oe,Re)},Je=Oe=>{var Re=ra("待接入:凭证保存后,通道本体在后续版本启用。");o(Oe,Re)};F(ue,Oe=>{e(l),r(()=>e(l).channel==="telegram")?Oe(xe):Oe(Je,-1)})}t(Te);var H=n(Te,2),J=n(a(H),2);_t(J);var z=n(J,2),R=a(z),c=n(R,2);{var i=Oe=>{var Re=Tl(),Ge=a(Re,!0);t(Re),Y(()=>L(Ge,e(N))),o(Oe,Re)};F(c,Oe=>{e(N)&&Oe(i)})}t(z),t(H);var q=n(H,2),le=n(a(q),2),ee=a(le);let T;var _e=n(ee,2);let ze;t(le),t(q);var Ce=n(q,2),$e=n(a(Ce),2),Ne=a($e);let Ye;var ge=n(Ne,2);let fe;t($e);var Ve=n($e,2);{var Qe=Oe=>{var Re=Cl();o(Oe,Re)};F(Ve,Oe=>{e(l),r(()=>e(l).workspaces.mode==="custom")&&Oe(Qe)})}t(Ce);var Le=n(Ce,2),Be=n(a(Le),2);t(Le),t(oe),Y(Oe=>{L(U,Oe),qe=ye(ce,1,"switch svelte-b8emeh",null,qe,{on:e(l).enabled}),Me(ce,"aria-pressed",(e(l),r(()=>e(l).enabled))),Me(J,"placeholder",(e(l),r(()=>e(l).channel==="telegram"?"BotFather token(留空保持不变)":"凭证(预留)"))),T=ye(ee,1,"opt svelte-b8emeh",null,T,{sel:e(l).replyGranularity==="standard"}),ze=ye(_e,1,"opt svelte-b8emeh",null,ze,{sel:e(l).replyGranularity==="detailed"}),Ye=ye(Ne,1,"opt svelte-b8emeh",null,Ye,{sel:e(l).workspaces.mode==="all"}),fe=ye(ge,1,"opt svelte-b8emeh",null,fe,{sel:e(l).workspaces.mode==="custom"})},[()=>(e(l),r(()=>ie(e(l).channel)))]),M("click",ce,()=>O(e(l))),mt(J,()=>e(w),Oe=>s(w,Oe)),M("click",R,()=>D(e(l))),M("click",ee,()=>Z(e(l),"standard")),M("click",_e,()=>Z(e(l),"detailed")),M("click",Ne,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"all"}}).then(te)),M("click",ge,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"custom",dirs:[]}}).then(te)),M("click",Be,X),o(m,oe)};F(Fe,m=>{e(l)&&m(Pe)})}t(he);var Ue=n(he,2),ke=a(Ue);{var He=m=>{var oe=Bl(),k=Ke(oe),G=a(k),U=a(G),ce=n(a(U));{var qe=q=>{var le=El();let ee;var T=a(le,!0);t(le),Y(()=>{ee=ye(le,1,"cd mono svelte-b8emeh",null,ee,{expired:e(A)}),L(T,e(A)?"已过期":`· ${e(_)}`)}),o(q,le)};F(ce,q=>{e(b)!==null&&q(qe)})}t(U),$t(2),t(G);var Te=n(G,2);t(k);var ue=n(k,2);let xe;var Je=a(ue);Wa(Je,()=>(e(y),r(()=>e(y).svg)));var H=n(Je,2);{var J=q=>{var le=Ll(),ee=n(a(le),2);t(le),M("click",ee,P),o(q,le)};F(H,q=>{e(A)&&q(J)})}t(ue);var z=n(ue,2),R=n(a(z),4),c=n(R,2),i=a(c,!0);t(c),t(z),Y(()=>{xe=ye(ue,1,"qr-big svelte-b8emeh",null,xe,{dim:e(A)}),L(i,e(u)?"✓ 已复制":"复制链接")}),M("click",Te,I),M("click",R,P),M("click",c,me),o(m,oe)},se=m=>{var oe=jl(),k=n(a(oe),2);t(oe),M("click",k,P),o(m,oe)},be=m=>{var oe=Dl();o(m,oe)};F(ke,m=>{e(y)&&!e(K)?m(He):e(K)?m(se,1):m(be,-1)})}t(Ue),t(Se),t(ae),M("click",pe,Q),M("click",De,Q),M("click",Se,Wt(function(m){As.call(this,v,m)})),M("click",ae,Q),o(g,ae)};F(V,g=>{p()&&g(W)})}o(j,B),at(),E()}var Fl=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 Rl(j,v){tt(v,!1);const p=()=>Ee(Bt,"$plusMenuOpen",C),[C,E]=it();let l=Ae(v,"anchor",8,null);function b(){Bt.set(!1),Dt.set(!0)}function A(){Bt.set(!1),jt.set(!0)}function _(){Bt.set(!1)}function h(N){N.key==="Escape"&&_()}et();var S=ot();M("keydown",wt,h);var y=Ke(S);{var w=N=>{var u=Fl(),x=a(u),K=n(x,2),re=a(K),te=n(re,2),P=a(te),I=a(P);It(I,{name:"search",size:14}),t(P),$t(4),t(te),t(K),t(u),Y(ie=>dt(K,ie),[()=>(de(l()),r(()=>l()?`top:${l().getBoundingClientRect().bottom+6}px; left:${l().getBoundingClientRect().left}px`:""))]),M("click",x,_),M("click",re,b),M("click",te,A),o(N,u)};F(y,N=>{p()&&N(w)})}o(j,S),at(),E()}var Wl=f('<button class="scrim svelte-9zfapn" aria-label="Close"></button>'),Ul=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>'),Hl=f('<div class="dial svelte-9zfapn" role="menu"></div>'),Jl=f('<div><!> <!> <button><span aria-hidden="true">+</span></button></div>');function Nl(j,v){tt(v,!1);let p=d(!1);const C=()=>s(p,!e(p)),E=()=>s(p,!1),l=[{label:"新建会话",icon:"+",run:()=>Dt.set(!0)},{label:"搜索与命令",icon:"⌕",run:()=>jt.set(!0)}];function b(K){K.run(),E()}function A(K){K.key==="Escape"&&e(p)&&E()}et();var _=Jl();M("keydown",wt,A);let h;var S=a(_);{var y=K=>{var re=Wl();M("click",re,E),o(K,re)};F(S,K=>{e(p)&&K(y)})}var w=n(S,2);{var N=K=>{var re=Hl();Xe(re,5,()=>l,te=>te.label,(te,P)=>{var I=Ul(),ie=a(I),Q=a(ie,!0);t(ie);var $=n(ie,2),O=a($,!0);t($),t(I),Y(()=>{L(Q,e(P).label),L(O,e(P).icon)}),M("click",I,()=>b(e(P))),o(te,I)}),t(re),o(K,re)};F(w,K=>{e(p)&&K(N)})}var u=n(w,2);let x;t(_),Y(()=>{h=ye(_,1,"fab-root svelte-9zfapn",null,h,{open:e(p)}),x=ye(u,1,"fab svelte-9zfapn",null,x,{rot:e(p)}),Me(u,"aria-label",e(p)?"关闭菜单":"快捷操作"),Me(u,"aria-expanded",e(p))}),M("click",u,C),o(j,_),at()}var Kl=f('<p class="rejected svelte-9s687p"> </p>'),Ql=f('<p class="rejected svelte-9s687p">上一次的令牌被服务器拒绝了——请在下方重新配对。</p>'),Vl=f('<span class="chip mono svelte-9s687p"> </span>'),Gl=f("<span> </span>"),Yl=f('<button class="btn enter svelte-9s687p">配对此浏览器并进入</button>'),Zl=f('<div class="qr-re svelte-9s687p"><span>已过期</span> <button class="btn svelte-9s687p">刷新二维码</button></div>'),Xl=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),ei=f('<p class="hint dim svelte-9s687p">配对信息加载中…(若宿主机未启用配对组件,请用下方令牌粘贴)</p>'),ti=f('<span class="ok svelte-9s687p"> </span>'),ai=f('<span class="off svelte-9s687p">未连接</span>'),si=f('<span class="off svelte-9s687p">待接入</span>'),ni=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>'),ri=f('<!> <p class="hint dim svelte-9s687p">🔒 通道状态仅展示;凭证与回复粒度等配置在配对后的「机器人管理」面板(标题栏 🤖)中。</p>',1),li=f('<p class="hint dim svelte-9s687p">…</p>'),ii=f('<div class="err svelte-9s687p"> </div>'),oi=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 ci(j,v){tt(v,!1);const p=()=>Ee(ts,"$pairHint",C),[C,E]=it(),l=d(),b=d(),A=d(),_=d(),h=d();let S=Ae(v,"status",8,"pairing"),y=d(""),w=d(""),N=d(!1),u=d(null),x=d(Date.now()),K=d(!1),re;async function te(){try{s(u,await Ie.pairOnboarding()),s(x,Date.now())}catch{s(u,null)}}const P={telegram:{name:"Telegram",note:"从 Telegram 打开这台机器"},wechat:{name:"微信",note:"待接入(配置面板已预埋)"},lark:{name:"飞书 / Lark",note:"待接入(配置面板已预埋)"}};ha(()=>{te(),re=setInterval(()=>{s(x,Date.now()),e(b)&&te()},1e3)}),Pt(()=>{re&&clearInterval(re)});async function I(){if(e(u))try{await navigator.clipboard.writeText(e(u).url),s(K,!0),setTimeout(()=>s(K,!1),1600)}catch{}}function ie(se){const be=se.trim(),m=be.match(/token=([^&#\s]+)/);return m?decodeURIComponent(m[1]):be}async function Q(){if(s(w,""),/[?#]pair=/.test(e(y))){s(w,await ya(e(y)));return}const se=ie(e(y));if(!se||se.length<16){s(w,"这看起来不是有效的令牌。");return}as(se)||s(w,"这看起来不是有效的令牌。")}ne(()=>(e(u),e(x)),()=>{var se;s(l,(se=e(u))!=null&&se.expiresAt?Math.max(0,e(u).expiresAt-e(x)):null)}),ne(()=>e(l),()=>{s(b,e(l)!==null&&e(l)<=0)}),ne(()=>e(u),()=>{var se;s(A,((se=e(u))==null?void 0:se.paired)??0)}),ne(()=>e(A),()=>{s(_,e(A)>0)}),ne(()=>e(l),()=>{s(h,e(l)===null?"":`${Math.floor(e(l)/6e4)}:${String(Math.floor(e(l)%6e4/1e3)).padStart(2,"0")}`)}),st(),et();var $=oi(),O=a($),Z=n(a(O),2);{var D=se=>{var be=Kl(),m=a(be,!0);t(be),Y(()=>L(m,p())),o(se,be)},X=se=>{var be=Ql();o(se,be)};F(Z,se=>{p()?se(D):S()==="rejected"&&se(X,1)})}var me=n(Z,2),ve=a(me),B=a(ve),V=n(a(B),2);{var W=se=>{var be=Vl(),m=a(be);t(be),Y(()=>L(m,`${e(u),r(()=>e(u).host.hostname)??""} · ${e(u),r(()=>e(u).host.arch)??""}`)),o(se,be)};F(V,se=>{e(u)&&se(W)})}t(B);var g=n(B,4);{var ae=se=>{var be=Xl(),m=Ke(be),oe=a(m);let k;var G=a(oe),U=n(G);{var ce=i=>{var q=Gl();let le;var ee=a(q,!0);t(q),Y(()=>{le=ye(q,1,"mono cd svelte-9s687p",null,le,{expired:e(b)}),L(ee,e(b)?"二维码已过期":`· ${e(h)}`)}),o(i,q)};F(U,i=>{e(l)!==null&&i(ce)})}t(oe);var qe=n(oe,2);{var Te=i=>{var q=Yl();M("click",q,()=>e(u)&&ya(e(u).url)),o(i,q)};F(qe,i=>{e(_)&&i(Te)})}t(m);var ue=n(m,2),xe=a(ue);Wa(xe,()=>(e(u),r(()=>e(u).svg)));var Je=n(xe,2);{var H=i=>{var q=Zl(),le=n(a(q),2);t(q),M("click",le,te),o(i,q)};F(Je,i=>{e(b)&&i(H)})}t(ue);var J=n(ue,2),z=n(a(J),4),R=n(z,2),c=a(R,!0);t(R),t(J),$t(2),Y(()=>{k=ye(oe,1,"wait svelte-9s687p",null,k,{done:e(_)}),L(G,`${e(_)?`✓ 已有 ${e(A)} 台设备完成配对`:"等待手机连接"} `),L(c,e(K)?"✓ 已复制":"复制链接")}),M("click",z,te),M("click",R,I),o(se,be)},pe=se=>{var be=ei();o(se,be)};F(g,se=>{e(u)?se(ae):se(pe,-1)})}t(ve);var Se=n(ve,2),je=n(a(Se),4);{var De=se=>{var be=ri(),m=Ke(be);Xe(m,1,()=>(e(u),r(()=>e(u).channels)),oe=>oe.channel,(oe,k)=>{var G=ni(),U=a(G),ce=a(U);Ja(ce,{get channel(){return e(k),r(()=>e(k).channel)},size:30}),t(U);var qe=n(U,2),Te=a(qe),ue=a(Te),xe=n(ue);{var Je=c=>{var i=ti(),q=a(i);t(i),Y(()=>L(q,`已连接 @${e(k),r(()=>e(k).live.username)??""}`)),o(c,i)},H=c=>{var i=ai();o(c,i)},J=c=>{var i=si();o(c,i)};F(xe,c=>{e(k),r(()=>{var i;return e(k).channel==="telegram"&&((i=e(k).live)==null?void 0:i.connected)})?c(Je):(e(k),r(()=>e(k).channel==="telegram")?c(H,1):c(J,-1))})}t(Te);var z=n(Te,2),R=a(z,!0);t(z),t(qe),$t(2),t(G),Y(()=>{L(ue,`${e(k),r(()=>{var c;return((c=P[e(k).channel])==null?void 0:c.name)??e(k).channel})??""} `),L(R,(e(k),r(()=>{var c;return((c=P[e(k).channel])==null?void 0:c.note)??""})))}),o(oe,G)}),$t(2),o(se,be)},he=se=>{var be=li();o(se,be)};F(je,se=>{e(u)?se(De):se(he,-1)})}t(Se),t(me);var we=n(me,2),Fe=n(a(we),2),Pe=a(Fe);_t(Pe);var Ue=n(Pe,2);{var ke=se=>{var be=ii(),m=a(be,!0);t(be),Y(()=>L(m,e(w))),o(se,be)};F(Ue,se=>{e(w)&&se(ke)})}var He=n(Ue,2);t(Fe),t(we),$t(2),t(O),t($),Y(se=>He.disabled=se,[()=>(e(y),r(()=>!e(y).trim()))]),mt(Pe,()=>e(y),se=>s(y,se)),M("keydown",Pe,se=>se.key==="Enter"&&Q()),M("click",He,Q),xs("open","toggle",we,se=>s(N,se),()=>e(N)),o(j,$),at(),E()}var vi=f('<button class="backdrop svelte-12qhfyh" aria-label="Close"></button>'),di=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>'),ui=f('<div role="separator" aria-orientation="vertical" aria-label="调整检查器宽度"></div> <div><!></div>',1),pi=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></div> <!> <!> <!> <!> <!> <!>',1);function ki(j,v){tt(v,!1);const p=()=>Ee(Ra,"$page",_),C=()=>Ee(oa,"$backends",_),E=()=>Ee(Qt,"$inspectorOpen",_),l=()=>Ee(Rt,"$leftPanelOpen",_),b=()=>Ee(jt,"$paletteOpen",_),A=()=>Ee(da,"$auth",_),[_,h]=it(),S=d();let y=d(!1),w=d(!1),N=d(),u=d(null);function x(){s(y,!1),Qt.set(!1)}function K(){s(y,!e(y)),Qt.set(!1)}function re(){Qt.update(z=>!z),s(y,!1)}function te(z){if((z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="k"){z.preventDefault(),jt.set(!0);return}if((z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="b"){z.preventDefault(),Rt.update(R=>!R);return}if(z.key==="Escape"){if(bt(Bt)){Bt.set(!1);return}if(bt(Dt)){Dt.set(!1);return}x()}}let P=d(""),I=null,ie=d(264),Q=d(380),$=d(null);try{s(ie,Math.max(180,Math.min(520,Number(localStorage.getItem("ocrc.railW"))||264))),s(Q,Math.max(280,Math.min(560,Number(localStorage.getItem("ocrc.inspW"))||380)))}catch{}function O(z,R){if(window.matchMedia("(max-width: 820px)").matches)return;R.preventDefault(),s($,z);const c=R.clientX,i=z==="rail"?e(ie):e(Q),q=ee=>{const T=z==="rail"?ee.clientX-c:c-ee.clientX,_e=Math.max(z==="rail"?180:220,Math.min(520,i+T));z==="rail"?s(ie,_e):s(Q,_e)},le=()=>{window.removeEventListener("pointermove",q),window.removeEventListener("pointerup",le),s($,null);try{localStorage.setItem("ocrc.railW",String(e(ie))),localStorage.setItem("ocrc.inspW",String(e(Q)))}catch{}};window.addEventListener("pointermove",q),window.addEventListener("pointerup",le)}let Z=d(null);async function D(){e(Z)&&(e(Z).prompt(),await e(Z).userChoice,s(Z,null))}let X=null,me=!1,ve=0,B;async function V(z){if(!(me||Date.now()-ve<2e3)){me=!0,ve=Date.now();try{const{cards:R,lastSeq:c}=await Ie.history(z);$a.set(!0),Vt(z,R,c),setTimeout(()=>$a.set(!1),350),I==null||I.send({type:"subscribe",sessionId:z,sinceSeq:c})}catch(R){console.warn("[layout] resync failed",R)}finally{me=!1}}}function W(z){var c,i;if(bt(da)!=="ready")return;if(rs.set(z),Cs(z),!z){wa(void 0),X=null;return}wa(z);const R=!((i=(c=bt(ut)[z])==null?void 0:c.order)!=null&&i.length);z===X&&!R||(X=z,ua.set(!0),Ie.history(z).then(({cards:q,lastSeq:le})=>{Vt(z,q,le),ua.set(!1),I==null||I.send({type:"subscribe",sessionId:z,sinceSeq:le})}).catch(q=>{console.warn("[layout] history failed",q),Vt(z,[],0),ua.set(!1),I==null||I.send({type:"subscribe",sessionId:z})}))}function g(){I&&(I.close(),I=null),Ie.me().then(R=>{s(P,R.email)}).catch(()=>{}),Ie.sessions().then(R=>{ft.set(R)}).catch(()=>{}),ss(),ns();const z=location.protocol==="https:"?"wss:":"ws:";Ts(R=>I==null?void 0:I.send(R)),I=Ss({url:`${z}//${location.host}/ws`,onReconnect:()=>{var R;if(X){const c=((R=bt(ut)[X])==null?void 0:R.lastSeq)??0;I==null||I.send({type:"subscribe",sessionId:X,sinceSeq:c})}},onMessage:R=>{var c;if(R.type==="card"&&R.card){const i=R.card.sessionId,q=i?((c=bt(ut)[i])==null?void 0:c.lastSeq)??0:0;ls(R.card),i&&is(q,R.card)&&(clearTimeout(B),B=setTimeout(()=>{V(i)},500))}(R.type==="hello"||R.type==="sessions")&&R.sessions&&(ft.set(R.sessions),zs(R.sessions)),R.type==="replayEnd"&&R.complete===!1&&typeof R.sessionId=="string"&&V(R.sessionId)}}),W(p().params.sessionId)}ha(()=>{const z=da.subscribe($e=>{$e==="ready"&&g()}),R=$e=>{$e.preventDefault(),s(Z,$e)};window.addEventListener("beforeinstallprompt",R);const c=window.matchMedia("(max-width: 820px)");s(w,c.matches);const i=$e=>{s(w,$e.matches),$e.matches||x()};c.addEventListener("change",i);const q=window.visualViewport,le=()=>{!q||!e(N)||(window.scrollY!==0&&window.scrollTo(0,0),la(N,e(N).style.height=`${Math.round(q.height)}px`),la(N,e(N).style.transform=q.offsetTop>0?`translateY(${Math.round(q.offsetTop)}px)`:""))};le(),q==null||q.addEventListener("resize",le),q==null||q.addEventListener("scroll",le);const ee=()=>setTimeout(le,300);window.addEventListener("orientationchange",ee);let T=0,_e=0;const ze=()=>{le(),Date.now()<T?_e=requestAnimationFrame(ze):_e=0},Ce=()=>{T=Date.now()+650,_e||(_e=requestAnimationFrame(ze))};return window.addEventListener("focusin",Ce),window.addEventListener("focusout",Ce),()=>{z(),window.removeEventListener("beforeinstallprompt",R),c.removeEventListener("change",i),q==null||q.removeEventListener("resize",le),q==null||q.removeEventListener("scroll",le),window.removeEventListener("focusin",Ce),window.removeEventListener("focusout",Ce),window.removeEventListener("orientationchange",ee),_e&&cancelAnimationFrame(_e),clearTimeout(B),I==null||I.close()}}),ys(z=>{var R,c;x(),window.addEventListener("ocrc:resubscribe",i=>{const q=i.detail;q!=null&&q.sessionId&&(I==null||I.send({type:"subscribe",sessionId:q.sessionId,sinceSeq:q.sinceSeq??0}))}),W((c=(R=z.to)==null?void 0:R.params)==null?void 0:c.sessionId)}),ne(()=>(C(),fa),()=>{C()&&typeof document<"u"&&fa(C().activeId)}),ne(()=>p(),()=>{s(S,!!p().params.sessionId)}),st(),et();var ae=pi();M("keydown",wt,te);var pe=Ke(ae),Se=a(pe);{var je=z=>{Ps(z,{get email(){return e(P)},onPalette:()=>jt.set(!0),get installEvent(){return e(Z)},onInstall:D,get drawerLeft(){return e(y)},get drawerRight(){return E()},onToggleLeft:K,onToggleRight:re,get newButtonAnchor(){return e(u)},set newButtonAnchor(R){s(u,R)},$$legacy:!0})};F(Se,z=>{e(w)&&e(S)||z(je)})}var De=n(Se,2);Fs(De);var he=n(De,2),we=a(he);{var Fe=z=>{var R=vi();M("click",R,x),o(z,R)};F(we,z=>{(e(y)||E())&&z(Fe)})}var Pe=n(we,2);{var Ue=z=>{var R=di();M("click",R,()=>Rt.set(!0)),o(z,R)};F(Pe,z=>{!l()&&!e(w)&&z(Ue)})}var ke=n(Pe,2);let He;var se=a(ke);wn(se,{get activeId(){return p(),r(()=>p().params.sessionId)},get drawer(){return e(w)},get email(){return e(P)}}),t(ke);var be=n(ke,2);let m;var oe=n(be,2),k=a(oe);ws(k,v,"default",{}),t(oe);var G=n(oe,2);{var U=z=>{var R=ui(),c=Ke(R);let i;var q=n(c,2);let le;var ee=a(q);ll(ee,{get sessionId(){return p(),r(()=>p().params.sessionId)}}),t(q),Y(()=>{i=ye(c,1,"divider svelte-12qhfyh",null,i,{resizing:e($)==="insp"}),le=ye(q,1,"inspector-wrap svelte-12qhfyh",null,le,{open:E()})}),M("pointerdown",c,T=>O("insp",T)),o(z,R)};F(G,z=>{E()&&z(U)})}t(he),t(pe),Et(pe,z=>s(N,z),()=>e(N));var ce=n(pe,2);bl(ce,{get open(){return b()},$$events:{close:()=>jt.set(!1)}});var qe=n(ce,2);Rl(qe,{get anchor(){return e(u)}});var Te=n(qe,2);Al(Te,{});var ue=n(Te,2);Ol(ue,{});var xe=n(ue,2);{var Je=z=>{Nl(z,{})};F(xe,z=>{e(S)||z(Je)})}var H=n(xe,2);{var J=z=>{{let R=zt(()=>A()==="rejected"?"rejected":"pairing");ci(z,{get status(){return e(R)}})}};F(H,z=>{A()!=="ready"&&z(J)})}Y(()=>{dt(pe,`--rail-w:${e(ie)??""}px; --insp-w:${e(Q)??""}px`),He=ye(ke,1,"rail-wrap svelte-12qhfyh",null,He,{collapsed:!l()&&!e(w),open:e(y)||e(w)&&!e(S)}),m=ye(be,1,"divider svelte-12qhfyh",null,m,{resizing:e($)==="rail"})}),M("pointerdown",be,z=>O("rail",z)),M("dblclick",be,()=>Rt.update(z=>!z)),o(j,ae),at(),h()}export{ki as component,wi as universal};
|