@bd7pil/ocrc 0.20.3 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/agent/opencode-backend.js +32 -1
- package/dist/core/agent/opencode-backend.js.map +1 -1
- package/dist/transport/web/routes/vcs.js +22 -0
- package/dist/transport/web/routes/vcs.js.map +1 -1
- package/dist/transport/web/server.js +2 -1
- package/dist/transport/web/server.js.map +1 -1
- package/package.json +1 -1
- package/web/dist/_app/immutable/assets/{0.P8Lanxw4.css → 0.CYAOXS1n.css} +1 -1
- package/web/dist/_app/immutable/assets/3.BoovcwoG.css +1 -0
- package/web/dist/_app/immutable/assets/{Card.Cb4bHscp.css → Card.BnVisgSs.css} +1 -1
- package/web/dist/_app/immutable/chunks/C1FmrZbK.js +1 -0
- package/web/dist/_app/immutable/chunks/{DIEDQ_hk.js → Chcp5gAM.js} +1 -1
- package/web/dist/_app/immutable/chunks/D9_YLzi5.js +1 -0
- package/web/dist/_app/immutable/chunks/{IKhDXhxZ.js → DSWG0n6P.js} +1 -1
- package/web/dist/_app/immutable/chunks/{C2FuqD3s.js → vlg9iH2u.js} +1 -1
- package/web/dist/_app/immutable/chunks/xkVuzql3.js +65 -0
- package/web/dist/_app/immutable/entry/app.BVv3JUL2.js +2 -0
- package/web/dist/_app/immutable/entry/start.DuwtzZly.js +1 -0
- package/web/dist/_app/immutable/nodes/0.iM2YUc1r.js +3 -0
- package/web/dist/_app/immutable/nodes/{1.BoIf0Vny.js → 1.CWyit2rE.js} +1 -1
- package/web/dist/_app/immutable/nodes/{2.DvltLGoA.js → 2.a2Qjdv7h.js} +1 -1
- package/web/dist/_app/immutable/nodes/3.DomWqudh.js +2 -0
- package/web/dist/_app/version.json +1 -1
- package/web/dist/index.html +15 -13
- package/web/dist/service-worker.js +1 -1
- package/web/dist/_app/immutable/assets/3.-850zFjq.css +0 -1
- package/web/dist/_app/immutable/chunks/D63AQ4hr.js +0 -65
- package/web/dist/_app/immutable/chunks/DUrEVoyD.js +0 -1
- package/web/dist/_app/immutable/entry/app.DScImIR9.js +0 -2
- package/web/dist/_app/immutable/entry/start.vWFOBNid.js +0 -1
- package/web/dist/_app/immutable/nodes/0.M2cOeGmP.js +0 -3
- package/web/dist/_app/immutable/nodes/3.B9HRU-IO.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O as Y,b7 as K,b6 as U,b4 as X,aN as _,aM as V,a8 as L,V as Z,X as ee,a2 as te,b8 as p,a9 as g,Y as m}from"./BjY4dxcB.js";function ge(e=!1){const t=Y,n=t.l.u;if(!n)return;let s=()=>Z(t.s);if(e){let o=0,r={};const d=ee(()=>{let a=!1;const l=t.s;for(const u in l)l[u]!==r[u]&&(r[u]=l[u],a=!0);return a&&o++,o});s=()=>L(d)}n.b.length&&K(()=>{P(t,s),_(n.b)}),U(()=>{const o=X(()=>n.m.map(V));return()=>{for(const r of o)typeof r=="function"&&r()}}),n.a.length&&U(()=>{P(t,s),_(n.a)})}function P(e,t){if(e.l.s)for(const n of e.l.s)L(n);t()}te();const A="ocrc.token";function B(e){const t=e.startsWith("#")?e.slice(1):e;if(!t)return null;const n=new URLSearchParams(t).get("token");return n&&n.trim()?n.trim():null}function ne(e){const t=e.startsWith("#")?e.slice(1):e;if(!t)return null;const n=new URLSearchParams(t).get("pair");return n&&n.trim()?n.trim():null}function v(){try{const e=localStorage.getItem(A);return e&&e.trim()?e:null}catch{return null}}function S(e){try{localStorage.setItem(A,e)}catch{}}function H(){try{localStorage.removeItem(A)}catch{}}const I="ocrc.authReloaded";function se(e=window.location){if(v()){H();try{const{pathname:t,search:n}=window.location;window.history.replaceState(null,"",t+n)}catch{}e.reload();return}try{if(sessionStorage.getItem(I))return;sessionStorage.setItem(I,"1")}catch{}e.reload()}function E(){try{sessionStorage.removeItem(I)}catch{}}const f=p("booting"),$=p("");let b=null;if(typeof location<"u"&&typeof window<"u"){const e=B(location.hash);e&&S(e),b=ne(location.hash),b&&history.replaceState(null,"",location.pathname+location.search)}b?(f.set("booting"),(async()=>{try{const e=await fetch("/api/pair/exchange",{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({pending:b})});if(!e.ok)throw new Error(String(e.status));const t=await e.json();if(!t.token)throw new Error("no token");S(t.token),$.set(""),f.set("ready")}catch{$.set("配对链接已失效(1 分钟过期或已被使用)——请在主机上刷新二维码后重试。"),f.set("pairing")}})()):f.set(v()?"ready":"pairing");async function ye(e){const t=e.trim().match(/[?#]pair=([^&#\s]+)/),n=t?decodeURIComponent(t[1]):e.trim();if(!n)return"这看起来不是有效的配对链接。";try{const s=await fetch("/api/pair/exchange",{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({pending:n})});if(!s.ok)throw new Error(String(s.status));const o=await s.json();return!o.token||!oe(o.token)?"这看起来不是有效的配对链接。":($.set(""),"")}catch{return"配对链接已失效(1 分钟过期或已被使用)——请刷新二维码后重试。"}}function T(){const e=v();if(!e){g(f)==="ready"&&se();return}const t=typeof location<"u"?B(location.hash):null;if(t&&t!==e){S(t),f.set("ready");return}if(t){f.set("rejected");return}H(),f.set("pairing")}function oe(e){const t=e.trim();return!t||t.length<16?!1:(S(t),f.set("ready"),!0)}let O="";function R(e){const t={...e??{}},n=v();return n&&(t.authorization=`Bearer ${n}`),t}async function i(e){const t=await fetch(`${O}${e}`,{credentials:"include",headers:R()});if(t.status===401)throw T(),new Error(`GET ${e} 401`);if(!t.ok)throw new Error(`GET ${e} ${t.status}`);return E(),t.json()}async function c(e,t){const n=await fetch(`${O}${e}`,{method:"POST",headers:R({"content-type":"application/json"}),credentials:"include",body:JSON.stringify(t)});if(n.status===401)throw T(),new Error(`POST ${e} 401`);if(!n.ok)throw new Error(`POST ${e} ${n.status}`);return E(),n.json()}async function z(e,t,n){const s=await fetch(`${O}${t}`,{method:e,headers:R(n===void 0?void 0:{"content-type":"application/json"}),credentials:"include",body:n===void 0?void 0:JSON.stringify(n)});if(s.status===401)throw T(),new Error(`${e} ${t} 401`);if(!s.ok)throw new Error(`${e} ${t} ${s.status}`);return E(),s.json()}async function N(e,t){return z("PATCH",e,t)}async function x(e){return z("DELETE",e)}const j={me:()=>i("/api/me"),capabilities:()=>i("/api/capabilities"),backends:()=>i("/api/backends"),setActiveBackend:e=>c("/api/backends/active",{backendId:e}),sessions:()=>i("/api/sessions"),cleanupSubagents:()=>c("/api/sessions/cleanup-subagents",{}),deleteSession:e=>c(`/api/sessions/${e}/delete`,{}),renameSession:(e,t)=>c(`/api/sessions/${e}/rename`,{title:t}),history:(e,t)=>{const n=new URLSearchParams;(t==null?void 0:t.limit)!=null&&n.set("limit",String(t.limit)),(t==null?void 0:t.offset)!=null&&n.set("offset",String(t.offset));const s=n.toString();return i(`/api/session/${e}${s?`?${s}`:""}`)},todo:e=>i(`/api/session/${e}/todo`),context:e=>i(`/api/session/${e}/context`),workspaces:()=>i("/api/workspaces"),createSession:e=>c("/api/session",e),mcp:()=>i("/api/mcp"),commands:e=>i(`/api/commands${e?`?backend=${encodeURIComponent(e)}`:""}`),runCommand:e=>c("/api/command",e),agents:()=>i("/api/agents"),models:()=>i("/api/models"),getOverrides:()=>i("/api/overrides"),setOverrides:e=>c("/api/overrides",e),sendMessage:e=>c("/api/message",e),abort:e=>c("/api/abort",{sessionId:e}),suggestions:e=>i(`/api/session/${e}/suggestions`),approve:(e,t,n)=>c("/api/approval",{sessionId:e,requestId:t,decision:n}),answerQuestion:(e,t,n)=>c("/api/question/reply",{sessionId:e,requestId:t,answers:n}),rejectQuestion:(e,t)=>c("/api/question/reject",{sessionId:e,requestId:t}),controls:e=>i(`/api/session/${e}/controls`),setMode:(e,t)=>c(`/api/session/${e}/mode`,{modeId:t}),setModel:(e,t)=>c(`/api/session/${e}/model`,{modelId:t}),files:(e,t)=>i(`/api/session/${e}/files?q=${encodeURIComponent(t)}`),schedules:()=>i("/api/schedules"),subagents:e=>i(`/api/session/${e}/subagents`),messageRaw:(e,t)=>i(`/api/session/${e}/message/${encodeURIComponent(t)}`),vcs:e=>i(`/api/vcs${e?`?sessionId=${encodeURIComponent(e)}`:""}`),vcsDiff:(e,t)=>i(`/api/vcs/diff?file=${encodeURIComponent(t)}${e?`&sessionId=${encodeURIComponent(e)}`:""}`),version:()=>i("/api/version"),skills:e=>i(`/api/skills${e?`?directory=${encodeURIComponent(e)}`:""}`),browse:(e,t)=>i(`/api/browse?directory=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}`),fileContent:(e,t)=>i(`/api/file-content?directory=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}`),worktrees:e=>i(`/api/worktrees${e?`?directory=${encodeURIComponent(e)}`:""}`),createWorktree:(e,t)=>c("/api/worktrees",{directory:e,name:t}),removeWorktree:(e,t)=>x(`/api/worktrees?directory=${encodeURIComponent(e)}&name=${encodeURIComponent(t)}`),channels:()=>i("/api/channels"),updateChannel:(e,t)=>N(`/api/channels/${e}`,t),resetChannel:e=>c(`/api/channels/${e}/reset`,{}),pairQr:()=>i("/api/pair/qr"),pairOnboarding:()=>i("/api/pair/onboarding"),exchangePair:e=>c("/api/pair/exchange",{pending:e}),addSchedule:e=>c("/api/schedules",e),setScheduleEnabled:(e,t)=>N(`/api/schedules/${e}`,{enabled:t}),deleteSchedule:e=>x(`/api/schedules/${e}`)},D=p([]),q=()=>({order:[],byId:{},lastSeq:0}),y=p({});function J(e,t){return e.id??`${e.kind}:${e.seq??t}`}function ie(e){return e==="thinking"||e==="think-stream"}function be(e){return e?e.order.map(t=>e.byId[t]).filter(Boolean):[]}function we(e,t){return typeof t.seq=="number"&&e>0&&t.seq>e+1}function ve(e){if(!("sessionId"in e)||!e.sessionId)return;const t=e.sessionId,n=J(e,0);y.update(s=>{const o=s[t]??q();if(e.seq!=null&&e.seq<=o.lastSeq&&!(n in o.byId))return s;e.seq!=null&&(o.lastSeq=Math.max(o.lastSeq,e.seq));const r=e.id?e:{...e,id:n};if(n in o.byId)o.byId={...o.byId,[n]:r};else{let d=o.order,a=o.byId;(e.kind==="streaming"||e.kind==="assistant"||e.kind==="error")&&(a={...a},d=d.filter(l=>{var u;return ie((u=a[l])==null?void 0:u.kind)?(delete a[l],!1):!0})),o.order=[...d,n],o.byId={...a,[n]:r}}return{...s,[t]:o}})}function Se(e){y.update(t=>{for(const n of Object.keys(t)){const s=t[n];if(!(e in s.byId))continue;const o={...s.byId};return delete o[e],{...t,[n]:{...s,order:s.order.filter(r=>r!==e),byId:o}}}return t})}function ke(e,t,n=0){y.update(s=>{const o=q();return o.lastSeq=n,t.forEach((r,d)=>{const a=J(r,d);o.order.push(a),o.byId[a]=r.id?r:{...r,id:a}}),{...s,[e]:o}})}let F=0;function Ie(e,t){if(t.length===0)return;F+=1;const n=F;y.update(s=>{const o=s[e]??q(),r={...o.byId},d=[];for(let a=t.length-1;a>=0;a--){const l=t[a],u=l.id??`${l.kind}:h${n}:${a}`;u in r||(d.push(u),r[u]=l.id?l:{...l,id:u})}return d.length===0?s:{...s,[e]:{order:[...d.reverse(),...o.order],byId:r,lastSeq:o.lastSeq}}})}function $e(e){const t=new Set(Array.isArray(e)?e:e?[e]:[]);y.update(n=>{const s={};for(const o of Object.keys(n))t.has(o)&&(s[o]=n[o]);return s})}const k=p(null),h=p(null),M=p(void 0),re=m([h,M,D,k],([e,t,n,s])=>{if(e){const o=t?n.find(a=>a.id===t):void 0,r=(o==null?void 0:o.backendId)??e.activeId,d=e.backends.find(a=>a.id===r);if(d)return d.capabilities}return(s==null?void 0:s.capabilities)??null}),ae=m([h,M,D,k],([e,t,n,s])=>{if(e){const o=t?n.find(r=>r.id===t):void 0;return(o==null?void 0:o.backendId)??e.activeId}return(s==null?void 0:s.id)??null}),Ce=m(re,e=>t=>e?e[t]!==!1:!0),ce=m([h,k],([e,t])=>{var n;return e?((n=e.backends.find(s=>s.id===e.activeId))==null?void 0:n.capabilities)??null:(t==null?void 0:t.capabilities)??null});m(ce,e=>t=>e?e[t]!==!1:!0);const Ae=m(ae,e=>{const t=e??"opencode";return t.includes(":")?t.split(":").pop():t}),w=["emerald","azure","amber","violet"],Ee={emerald:"#54d398",azure:"#5b9eff",amber:"#ffc34d",violet:"#b48cf0"},Te={emerald:"#0f261b",azure:"#101f33",amber:"#2a2110",violet:"#1d1733"},Oe={emerald:"#236b49",azure:"#2c5891",amber:"#8a6a26",violet:"#5a4790"},W="ocrc.agentAccents",G={opencode:"emerald","acp:kimi":"azure"};function de(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t}function le(e){return G[e]?G[e]:w[de(e)%w.length]}function ue(){if(typeof localStorage>"u")return{};try{const e=localStorage.getItem(W),t=e?JSON.parse(e):{};return typeof t=="object"&&t!==null?t:{}}catch{return{}}}function fe(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(W,JSON.stringify(e))}catch{}}const C=p(ue());function pe(e){const t=g(C);return w.includes(t[e])?t[e]:le(e)}function Re(e,t){var s;const n={...g(C)};t&&w.includes(t)?n[e]=t:delete n[e],C.set(n),fe(n),((s=g(h))==null?void 0:s.activeId)===e&&Q(e)}function Q(e){typeof document>"u"||document.documentElement.setAttribute("data-accent",pe(e))}async function je(){try{k.set(await j.capabilities())}catch(e){console.warn("[capabilities] failed to load",e)}}async function he(){try{h.set(await j.backends())}catch(e){console.warn("[backends] failed to load",e)}}async function qe(e){const t=g(h);t&&h.set({...t,activeId:e});try{await j.setActiveBackend(e)}catch(n){console.warn("[backends] setActive failed",n)}await he(),Q(e)}export{w as A,qe as B,Re as C,ke as D,oe as E,ve as F,M as G,Te as a,Ee as b,Oe as c,C as d,pe as e,j as f,Q as g,f as h,Ae as i,h as j,Ce as k,be as l,ae as m,le as n,ye as o,y as p,v as q,ge as r,we as s,he as t,je as u,$ as v,Ie as w,$e as x,Se as y,D as z};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.M2cOeGmP.js","../chunks/CWj6FrbW.js","../chunks/DUrEVoyD.js","../chunks/BjY4dxcB.js","../chunks/DIEDQ_hk.js","../chunks/D63AQ4hr.js","../chunks/IKhDXhxZ.js","../chunks/C2FuqD3s.js","../assets/Card.Cb4bHscp.css","../assets/0.P8Lanxw4.css","../nodes/1.BoIf0Vny.js","../nodes/2.DvltLGoA.js","../assets/2.BNuGfmZP.css","../nodes/3.B9HRU-IO.js","../assets/3.-850zFjq.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
var F=r=>{throw TypeError(r)};var G=(r,e,a)=>e.has(r)||F("Cannot "+a);var u=(r,e,a)=>(G(r,e,"read from private field"),a?a.call(r):e.get(r)),L=(r,e,a)=>e.has(r)?F("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,a),j=(r,e,a,n)=>(G(r,e,"write to private field"),n?n.call(r,a):e.set(r,a),a);import{ai as N,ag as X,z as Z,h as $,aG as ee,aV as te,aP as re,aQ as W,j as ae,ah as se,aO as S,L as ne,a8 as v,af as oe,as as ie,a5 as ce,W as le,b3 as ue,au as de,aE as fe,b7 as me,b6 as he,az as _e,b1 as ve,a4 as x,aU as ge,w,aB as ye,aX as C,M as B,J as be,aK as Ee,a6 as H,b0 as Re,a$ as Pe,aR as we,b5 as I}from"../chunks/BjY4dxcB.js";import"../chunks/CWj6FrbW.js";import{B as Oe,i as D}from"../chunks/DIEDQ_hk.js";import{p as V,b as U}from"../chunks/C2FuqD3s.js";function p(r,e,a){var n;N&&(n=se,X());var o=new Oe(r);Z(()=>{var i=e()??null;if(N){var s=ee(n),t=s===ae,d=i!==null;if(t!==d){var l=te();re(l),o.anchor=l,W(!1),o.ensure(i,i&&(f=>a(f,i))),W(!0);return}}o.ensure(i,i&&(f=>a(f,i)))},$)}function ke(r){return class extends xe{constructor(e){super({component:r,...e})}}}var g,m;class xe{constructor(e){L(this,g);L(this,m);var i;var a=new Map,n=(s,t)=>{var d=de(t,!1,!1);return a.set(s,d),d};const o=new Proxy({...e.props||{},$$events:{}},{get(s,t){return v(a.get(t)??n(t,Reflect.get(s,t)))},has(s,t){return t===ne?!0:(v(a.get(t)??n(t,Reflect.get(s,t))),Reflect.has(s,t))},set(s,t,d){return S(a.get(t)??n(t,d),d),Reflect.set(s,t,d)}});j(this,m,(e.hydrate?oe:ie)(e.component,{target:e.target,anchor:e.anchor,props:o,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!((i=e==null?void 0:e.props)!=null&&i.$$host)||e.sync===!1)&&ce(),j(this,g,o.$$events);for(const s of Object.keys(u(this,m)))s==="$set"||s==="$destroy"||s==="$on"||le(this,s,{get(){return u(this,m)[s]},set(t){u(this,m)[s]=t},enumerable:!0});u(this,m).$set=s=>{Object.assign(o,s)},u(this,m).$destroy=()=>{ue(u(this,m))}}$set(e){u(this,m).$set(e)}$on(e,a){u(this,g)[e]=u(this,g)[e]||[];const n=(...o)=>a.call(this,...o);return u(this,g)[e].push(n),()=>{u(this,g)[e]=u(this,g)[e].filter(o=>o!==n)}}$destroy(){u(this,m).$destroy()}}g=new WeakMap,m=new WeakMap;const Ae="modulepreload",Se=function(r,e){return new URL(r,e).href},Y={},A=function(e,a,n){let o=Promise.resolve();if(a&&a.length>0){const s=document.getElementsByTagName("link"),t=document.querySelector("meta[property=csp-nonce]"),d=(t==null?void 0:t.nonce)||(t==null?void 0:t.getAttribute("nonce"));o=Promise.allSettled(a.map(l=>{if(l=Se(l,n),l in Y)return;Y[l]=!0;const f=l.endsWith(".css"),T=f?'[rel="stylesheet"]':"";if(!!n)for(let y=s.length-1;y>=0;y--){const c=s[y];if(c.href===l&&(!f||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${T}`))return;const _=document.createElement("link");if(_.rel=f?"stylesheet":Ae,f||(_.as="script"),_.crossOrigin="",_.href=l,d&&_.setAttribute("nonce",d),document.head.appendChild(_),f)return new Promise((y,c)=>{_.addEventListener("load",y),_.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(s){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=s,window.dispatchEvent(t),!t.defaultPrevented)throw s}return o.then(s=>{for(const t of s||[])t.status==="rejected"&&i(t.reason);return e().catch(i)})},qe={};var Te=H('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Le=H("<!> <!>",1);function je(r,e){fe(e,!0);let a=V(e,"components",23,()=>[]),n=V(e,"data_0",3,null),o=V(e,"data_1",3,null);me(()=>e.stores.page.set(e.page)),he(()=>{e.stores,e.page,e.constructors,a(),e.form,n(),o(),e.stores.page.notify()});let i=C(!1),s=C(!1),t=C(null);_e(()=>{const c=e.stores.page.subscribe(()=>{v(i)&&(S(s,!0),ve().then(()=>{S(t,document.title||"untitled page",!0)}))});return S(i,!0),c});const d=I(()=>e.constructors[1]);var l=Le(),f=x(l);{var T=c=>{const b=I(()=>e.constructors[0]);var E=B(),O=x(E);p(O,()=>v(b),(R,P)=>{U(P(R,{get data(){return n()},get form(){return e.form},get params(){return e.page.params},children:(h,Be)=>{var z=B(),K=x(z);p(K,()=>v(d),(M,Q)=>{U(Q(M,{get data(){return o()},get form(){return e.form},get params(){return e.page.params}}),k=>a()[1]=k,()=>{var k;return(k=a())==null?void 0:k[1]})}),w(h,z)},$$slots:{default:!0}}),h=>a()[0]=h,()=>{var h;return(h=a())==null?void 0:h[0]})}),w(c,E)},q=c=>{const b=I(()=>e.constructors[0]);var E=B(),O=x(E);p(O,()=>v(b),(R,P)=>{U(P(R,{get data(){return n()},get form(){return e.form},get params(){return e.page.params}}),h=>a()[0]=h,()=>{var h;return(h=a())==null?void 0:h[0]})}),w(c,E)};D(f,c=>{e.constructors[1]?c(T):c(q,-1)})}var _=ge(f,2);{var y=c=>{var b=Te(),E=be(b);{var O=R=>{var P=Re();Pe(()=>we(P,v(t))),w(R,P)};D(E,R=>{v(s)&&R(O)})}Ee(b),w(c,b)};D(_,c=>{v(i)&&c(y)})}w(r,l),ye()}const ze=ke(je),Fe=[()=>A(()=>import("../nodes/0.M2cOeGmP.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url),()=>A(()=>import("../nodes/1.BoIf0Vny.js"),__vite__mapDeps([10,1,3,6]),import.meta.url),()=>A(()=>import("../nodes/2.DvltLGoA.js"),__vite__mapDeps([11,1,2,3,4,6,12]),import.meta.url),()=>A(()=>import("../nodes/3.B9HRU-IO.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,14]),import.meta.url)],Ge=[],Ne={"/":[2],"/[sessionId]":[3]},J={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},Ce=Object.fromEntries(Object.entries(J.transport).map(([r,e])=>[r,e.decode])),We=Object.fromEntries(Object.entries(J.transport).map(([r,e])=>[r,e.encode])),Ye=!1,He=(r,e)=>Ce[r](e);export{He as decode,Ce as decoders,Ne as dictionary,We as encoders,Ye as hash,J as hooks,qe as matchers,Fe as nodes,ze as root,Ge as server_loads};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as o,s as r}from"../chunks/IKhDXhxZ.js";export{o as load_css,r as start};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{q as Ka,r as Ze,z as ft,p as _t,f as Ie,j as sa,d as Qa,a as qt,b as rt,c as Mt,e as Tt,C as da,A as Vt,n as Ga,B as ea,l as Ya,D as Zt,k as Ma,m as Va,g as ua,v as Za,o as ga,E as Xa,h as oa,u as es,t as ts,G as as,x as ya,F as ss,s as ns}from"../chunks/DUrEVoyD.js";import{ai as rs,ag as ls,a1 as Ct,b4 as r,a_ as Ta,aa as is,aJ as os,am as cs,aE as Xe,ap as X,aO as s,V as ve,a8 as e,aq as at,J as a,aK as t,aU as n,aw as At,a$ as K,aR as C,a3 as M,w as i,aB as et,au as u,Z as It,a6 as p,M as it,a4 as Je,b0 as ta,b8 as vs,ay as Wt,$ as gt,b5 as pt,a7 as na,aI as ds,a9 as xt,av as pa,Q as us,b1 as ps,az as fa}from"../chunks/BjY4dxcB.js";import{i as F,a as ze,s as ot}from"../chunks/DIEDQ_hk.js";import{n as za,h as Nt,I as zt,z as we,y as Ce,u as Et,d as aa,G as Ca,F as Ea,i as Ve,a as fs,w as ht,c as mt,D as Ft,A as dt,o as Ot,l as La,t as Lt,E as Ba,b as wa,r as Da,C as hs,M as bs,B as Jt,e as ca,v as ka,x as _s,q as xa,H as Aa,s as Pa,p as Bt,J as ms,k as ja,m as Gt,j as Ia}from"../chunks/D63AQ4hr.js";import{p as Ae,b as Dt}from"../chunks/C2FuqD3s.js";import{g as ra,a as gs}from"../chunks/IKhDXhxZ.js";function ys(P,v,f,q,B){var $;rs&&ls();var l=($=v.$$slots)==null?void 0:$[f],x=!1;l===!0&&(l=v.children,x=!0),l===void 0||l(P,x?()=>q:q)}function ha(P,v,f){Ct(()=>{var q=r(()=>v(P,f==null?void 0:f())||{});if(q!=null&&q.destroy)return()=>q.destroy()})}function ws(P,v,f){var q=is(P,v);q&&q.set&&(P[v]=f,Ta(()=>{P[v]=null}))}function ks(P,v,f,q,B){var l=()=>{q(f[P])};f.addEventListener(v,l),B?os(()=>{f[P]=B()}):l(),(f===document.body||f===window||f===document)&&Ta(()=>{f.removeEventListener(v,l)})}function xs(P,v){var l;var f=(l=P.$$events)==null?void 0:l[v.type],q=cs(f)?f.slice():f==null?[]:[f];for(var B of q)B.call(this,v)}const As=!1,Is=!1,$s="always",di=Object.freeze(Object.defineProperty({__proto__:null,prerender:Is,ssr:As,trailingSlash:$s},Symbol.toStringTag,{value:"Module"})),$a=[2e3,4e3,8e3,16e3,3e4];function Ss(P){const v=Ka();if(!v)return P;const f=P.includes("?")?"&":"?";return`${P}${f}token=${encodeURIComponent(v)}`}function qs(P){let v=null,f=0,q=null,B=null,l=null,x=0,$=!1,w=!1;const h=[];function T(k){var E;Nt.set(k),(E=P.onStatus)==null||E.call(P,k)}function I(){q&&(clearTimeout(q),q=null),B&&(clearTimeout(B),B=null),l&&(clearTimeout(l),l=null)}function A(){B=setTimeout(()=>{(v==null?void 0:v.readyState)===WebSocket.OPEN&&(x=performance.now(),v.send(JSON.stringify({type:"ping"})),l=setTimeout(()=>{v==null||v.close(),_()},45e3))},25e3)}function N(){if(!$){T("reconnecting");try{v=new WebSocket(Ss(P.url))}catch{_();return}v.onopen=()=>{var k;f=0,T("connected");for(const E of h.splice(0))v==null||v.send(E);w&&((k=P.onReconnect)==null||k.call(P)),w=!0,A()},v.onmessage=k=>{var E;try{const ae=JSON.parse(k.data);if(ae.type==="pong"){l&&(clearTimeout(l),l=null),x&&za.set(Math.round(performance.now()-x)),A();return}(E=P.onMessage)==null||E.call(P,ae)}catch{}},v.onclose=()=>{I(),$||_()},v.onerror=()=>{v==null||v.close()}}}function _(){if(I(),$)return;T("reconnecting");const k=$a[Math.min(f,$a.length-1)];f+=1,q=setTimeout(()=>void N(),k)}return N(),{send(k){const E=JSON.stringify(k);(v==null?void 0:v.readyState)===WebSocket.OPEN?v.send(E):h.push(E)},close(){$=!0,I(),h.length=0,v==null||v.close(),v=null,T("offline")}}}let Xt=null;function Ms(P){Xt=P}function va(P){Xt==null||Xt(P)}let Sa=new Map;const Rt=new Set;let Oa,Ut,Yt=!1;function ba(){if(typeof document>"u")return;const P=document.title.replace(/^(🔔 [\d]+ 新动态 — )/,"")||"ocrc";if(Rt.size===0){Ut&&(clearInterval(Ut),Ut=void 0),Yt=!1,document.title=P;return}Ut||(document.title=`🔔 ${Rt.size} 新动态 — ${P}`,Ut=setInterval(()=>{Yt=!Yt,document.title=Yt?`🔔 ${Rt.size} 新动态 — ${P}`:P},1200))}function Ts(P){Oa=P,P&&(Rt.delete(P),ba())}function zs(P){for(const v of P){const f=Sa.get(v.id);Sa.set(v.id,v.lastActiveAt),!(f===void 0||v.id===Oa)&&v.lastActiveAt>f+1500&&(Rt.add(v.id),ba())}}typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(Rt.clear(),ba())});var Cs=p('<span class="dot-ring svelte-hhath1"></span>'),Es=p('<span class="connection-latency mono svelte-hhath1"> </span>'),Ls=p('<button class="install svelte-hhath1">Install</button>'),Bs=p('<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 Ds(P,v){Xe(v,!1);const f=()=>ze(Ea,"$theme",l),q=()=>ze(Nt,"$connection",l),B=()=>ze(za,"$latency",l),[l,x]=ot(),$=u(),w=u();let h=Ae(v,"email",8,""),T=Ae(v,"onPalette",8),I=Ae(v,"installEvent",8,null),A=Ae(v,"onInstall",8,()=>{}),N=Ae(v,"drawerLeft",8,!1),_=Ae(v,"drawerRight",8,!1),k=Ae(v,"onToggleLeft",8,()=>{}),E=Ae(v,"onToggleRight",8,()=>{}),ae=Ae(v,"newButtonAnchor",12,null);function Y(L){return L==="connected"?"live":L==="reconnecting"?"reconnecting":"offline"}X(()=>ve(h()),()=>{s($,h()||"you@local")}),X(()=>e($),()=>{s(w,e($).charAt(0).toUpperCase())}),at(),Ze();var J=Bs(),R=a(J);let Q;var G=a(R);zt(G,{name:"menu",size:18}),t(R);var y=n(R,4),j=n(a(y),4),se=a(j);zt(se,{name:"caret-down",size:9}),t(j),t(y),Dt(y,L=>ae(L),()=>ae());var te=n(y,2),ee=a(te),ge=a(ee);zt(ge,{name:"search",size:14}),t(ee),At(4),t(te);var re=n(te,4),H=n(re,2),O=a(H);{let L=It(()=>f()==="light"?"moon":"sun");zt(O,{get name(){return e(L)},size:15})}t(H);var D=n(H,2),m=a(D),Z=n(a(m),2);{var ye=L=>{var d=Cs();i(L,d)};F(Z,L=>{q()==="connected"&&L(ye)})}t(m);var $e=n(m,2),ce=a($e,!0);t($e);var Te=n($e,2);{var he=L=>{var d=Es(),W=a(d);t(d),K(()=>C(W,`${B()??""}ms`)),i(L,d)};F(Te,L=>{q()==="connected"&&L(he)})}t(D);var _e=n(D,2);{var je=L=>{var d=Ls();M("click",d,function(...W){var ie;(ie=A())==null||ie.apply(this,W)}),i(L,d)};F(_e,L=>{I()&&L(je)})}var Ee=n(_e,2);let Be;var xe=n(Ee,2),De=a(xe),V=a(De,!0);t(De);var fe=n(De,2),b=a(fe,!0);t(fe),t(xe),t(J),K((L,d)=>{Q=we(R,1,"iconbtn svelte-hhath1",null,Q,{active:N()}),Ce(H,"title",f()==="light"?"Switch to dark":"Switch to light"),we(D,1,`connection-pill ${q()??""}`,"svelte-hhath1"),Ce(D,"title",`WebSocket: ${L??""}`),C(ce,d),Be=we(Ee,1,"iconbtn svelte-hhath1",null,Be,{active:_()}),C(V,e($)),C(b,e(w))},[()=>(q(),r(()=>Y(q()))),()=>(q(),r(()=>Y(q())))]),M("click",R,function(...L){var d;(d=k())==null||d.apply(this,L)}),M("click",y,()=>Et.update(L=>!L)),M("click",te,function(...L){var d;(d=T())==null||d.apply(this,L)}),M("click",re,()=>aa.set(!0)),M("click",H,function(...L){var d;(d=Ca)==null||d.apply(this,L)}),M("click",Ee,function(...L){var d;(d=E())==null||d.apply(this,L)}),i(P,J),et(),x()}var Ps=p('<div role="status"><!></div>');function js(P){const v=()=>ze(Nt,"$connection",f),[f,q]=ot();var B=it(),l=Je(B);{var x=$=>{var w=Ps();let h;var T=a(w);{var I=N=>{var _=ta("Reconnecting…");i(N,_)},A=N=>{var _=ta("Offline — live updates paused");i(N,_)};F(T,N=>{v()==="reconnecting"?N(I):N(A,-1)})}t(w),K(()=>h=we(w,1,"banner svelte-l46k7l",null,h,{offline:v()==="offline"})),i($,w)};F(l,$=>{v()!=="connected"&&$(x)})}i(P,B),q()}const Fa="ocrc.pinnedSessions";function Os(){if(typeof localStorage>"u")return[];try{const P=localStorage.getItem(Fa),v=P?JSON.parse(P):[];return Array.isArray(v)?v.filter(f=>typeof f=="string"):[]}catch{return[]}}function Fs(P){if(!(typeof localStorage>"u"))try{localStorage.setItem(Fa,JSON.stringify(P))}catch{}}function Rs(){const{subscribe:P,update:v}=vs(Os());return{subscribe:P,toggle(f){v(q=>{const B=q.includes(f)?q.filter(l=>l!==f):[...q,f];return Fs(B),B})}}}const qa=Rs();function Ws(P,v){return v?P.filter(f=>(f.directory??"")===v):P}var Us=p('<input class="rename-input svelte-1h8243g" placeholder="Session title" aria-label="Session title"/>'),Js=p('<span class="pin-dot svelte-1h8243g" aria-label="已钉住">●</span>'),Ns=p('<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>'),Hs=p('<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),Ks=p('<span class="sep svelte-1h8243g">·</span><span class="repo svelte-1h8243g"> </span>',1),Qs=p('<span class="add svelte-1h8243g"> </span>'),Gs=p('<span class="del svelte-1h8243g"> </span>'),Ys=p('<span class="sep svelte-1h8243g">·</span> <!> <!>',1),Vs=p('<div class="progress svelte-1h8243g" aria-hidden="true"><span class="progress-fill svelte-1h8243g"></span></div>'),Zs=p('<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>'),Xs=p('<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),en=p('<div class="empty mono svelte-1h8243g"> </div>'),tn=p('<div class="sidebar svelte-1h8243g"><!> <!></div>');function an(P,v){Xe(v,!1);const f=()=>ze(ft,"$sessionList",$),q=()=>ze(_t,"$feeds",$),B=()=>ze(Nt,"$connection",$),l=()=>ze(fs,"$activeWorkspace",$),x=()=>ze(qa,"$pinnedSessions",$),[$,w]=ot(),h=u(),T=u(),I=u(),A=u(),N=u(),_=u(),k=u();let E=Ae(v,"activeId",8,void 0),ae=Ae(v,"onSelect",8,void 0),Y=Ae(v,"agentId",8,void 0),J=Ae(v,"agentName",8,void 0);const R=24*60*60*1e3;function Q(d,W){return W==="connected"&&Date.now()-d<R}function G(d,W){const ie=W[d];if(!ie||ie.order.length===0)return!1;const pe=ie.byId[ie.order[ie.order.length-1]];return(pe==null?void 0:pe.kind)==="thinking"||(pe==null?void 0:pe.kind)==="streaming"||(pe==null?void 0:pe.kind)==="think-stream"}function y(d,W){const ie=W[d];if(!ie||ie.order.length===0)return!1;const pe=ie.byId[ie.order[ie.order.length-1]];return(pe==null?void 0:pe.kind)==="approval"}function j(d,W,ie){return G(d.id,W)?"busy":y(d.id,W)?"wait":Q(d.lastActiveAt,ie)?"idle":"offline"}function se(d){const W=Date.now()-d,ie=Math.floor(W/6e4);if(ie<1)return"now";if(ie<60)return`${ie}m`;const pe=Math.floor(ie/60);return pe<24?`${pe}h`:`${Math.floor(pe/24)}d`}function te(d){return(d.includes("_")?d.slice(d.indexOf("_")+1):d).slice(-8)}function ee(d){if(!d)return"";const W=d.replace(/\/+$/,"").split("/");return W[W.length-1]||""}function ge(d,W){ae()&&(d.preventDefault(),ae()(W))}function re(d,W){d.preventDefault(),d.stopPropagation(),qa.toggle(W)}let H=u(null),O=u(""),D=u(null);function m(d,W){d.preventDefault(),d.stopPropagation(),s(H,W.id),s(O,W.title||"")}function Z(){s(H,null),s(O,"")}async function ye(d){const W=e(O).trim();if(!W||e(D)){Z();return}s(D,d);try{await Ie.renameSession(d,W),ft.set(await Ie.sessions())}catch(ie){alert(`重命名失败:${ie.message}`)}finally{s(D,null),s(H,null),s(O,"")}}function $e(d,W){d.key==="Enter"?(d.preventDefault(),ye(W)):d.key==="Escape"&&(d.preventDefault(),Z())}function ce(d){d.focus(),d.select()}let Te=u(null),he=u(null),_e=u();function je(d,W){d.preventDefault(),d.stopPropagation(),s(he,e(he)===W?null:W)}function Ee(d,W,ie){s(he,null);const pe={preventDefault(){},stopPropagation(){}};d==="pin"?re(pe,W):d==="delete"?De(pe,W):ie&&m(pe,ie)}function Be(d){d.key==="Escape"&&s(he,null)}function xe(d){e(he)&&e(_e)&&!e(_e).contains(d.target)&&s(he,null)}Wt(()=>{s(he,null)});async function De(d,W){if(d.preventDefault(),d.stopPropagation(),!e(Te)&&confirm("Delete this session? This cannot be undone.")){s(Te,W);try{await Ie.deleteSession(W),ft.set(await Ie.sessions()),E()===W&&ra("/")}catch(ie){alert(`删除失败:${ie.message}`)}finally{s(Te,null)}}}X(()=>(f(),q(),B()),()=>{s(h,new Map(f().map(d=>[d.id,j(d,q(),B())])))}),X(()=>(ve(Y()),f()),()=>{s(T,Y()?f().filter(d=>d.backendId===Y()||!d.backendId&&Y()==="opencode"):f())}),X(()=>(e(T),l()),()=>{s(I,Ws(e(T),l()))}),X(()=>e(I),()=>{s(A,[...e(I)].sort((d,W)=>W.lastActiveAt-d.lastActiveAt))}),X(()=>(e(A),x()),()=>{s(N,e(A).filter(d=>x().includes(d.id)))}),X(()=>(e(A),x()),()=>{s(_,e(A).filter(d=>!x().includes(d.id)))}),X(()=>(e(N),e(_)),()=>{s(k,[{key:"pinned",label:"Pinned",rows:e(N)},{key:"recent",label:"Recent",rows:e(_)}])}),at(),Ze();var V=tn();M("pointerdown",gt,xe),M("keydown",gt,Be);var fe=a(V);Ve(fe,1,()=>e(k),d=>d.key,(d,W)=>{var ie=it(),pe=Je(ie);{var qe=Pe=>{var oe=Xs(),ne=Je(oe),le=a(ne),Le=a(le,!0);t(le);var be=n(le,4),Se=a(be,!0);t(be),t(ne);var Me=n(ne,2);Ve(Me,1,()=>(e(W),r(()=>e(W).rows)),g=>g.id,(g,o)=>{var c=Zs();let z;var U=a(c),S=a(U),de=a(S),ke=a(de,!0);t(de),t(S);var Oe=n(S,2);{var st=Re=>{var Ye=Us();ht(Ye),Ct(()=>mt(Ye,()=>e(O),tt=>s(O,tt))),ha(Ye,tt=>ce==null?void 0:ce(tt)),Ct(()=>M("click",Ye,tt=>tt.preventDefault())),Ct(()=>M("keydown",Ye,tt=>$e(tt,e(o).id))),Ct(()=>M("blur",Ye,()=>ye(e(o).id))),K(()=>Ye.disabled=(e(D),e(o),r(()=>e(D)===e(o).id))),i(Re,Ye)},Ue=Re=>{var Ye=Hs(),tt=Je(Ye),wt=a(tt,!0);t(tt);var bt=n(tt,2);{var kt=lt=>{var St=Js();i(lt,St)},vt=pt(()=>(x(),e(o),r(()=>x().includes(e(o).id))));F(bt,lt=>{e(vt)&<(kt)})}var ut=n(bt,2),Pt=a(ut),jt=n(Pt,2);let _a;var Wa=a(jt);t(jt);var la=n(jt,2),Ht=n(la,2);let ma;var Ua=n(Ht,2);{var Ja=lt=>{var St=Ns(),Kt=a(St),Qt=n(Kt,2),Na=a(Qt,!0);t(Qt);var Ha=n(Qt,2);t(St),Dt(St,ia=>s(_e,ia),()=>e(_e)),K(ia=>C(Na,ia),[()=>(x(),e(o),r(()=>x().includes(e(o).id)?"取消钉住":"钉住"))]),M("click",Kt,Ft(()=>Ee("rename",e(o).id,e(o)))),M("click",Qt,Ft(()=>Ee("pin",e(o).id))),M("click",Ha,Ft(()=>Ee("delete",e(o).id))),i(lt,St)};F(Ua,lt=>{e(he),e(o),r(()=>e(he)===e(o).id)&<(Ja)})}t(ut),K((lt,St,Kt)=>{C(wt,(e(o),r(()=>e(o).title||"Untitled session"))),_a=we(jt,1,"act pin svelte-1h8243g",null,_a,lt),Ce(jt,"title",St),Ce(Wa,"fill",Kt),la.disabled=(e(Te),e(o),r(()=>e(Te)===e(o).id)),ma=we(Ht,1,"act mmore svelte-1h8243g",null,ma,{on:e(he)===e(o).id}),Ce(Ht,"aria-expanded",(e(he),e(o),r(()=>e(he)===e(o).id)))},[()=>({on:x().includes(e(o).id)}),()=>(x(),e(o),r(()=>x().includes(e(o).id)?"取消钉住":"钉住")),()=>(x(),e(o),r(()=>x().includes(e(o).id)?"currentColor":"none"))]),M("click",Pt,lt=>m(lt,e(o))),M("click",jt,lt=>re(lt,e(o).id)),M("click",la,lt=>De(lt,e(o).id)),M("click",Ht,lt=>je(lt,e(o).id)),i(Re,Ye)};F(Oe,Re=>{e(H),e(o),r(()=>e(H)===e(o).id)?Re(st):Re(Ue,-1)})}t(U);var Qe=n(U,2),me=a(Qe),ue=a(me,!0);t(me);var Ke=n(me,2);{var He=Re=>{var Ye=Ks(),tt=n(Je(Ye)),wt=a(tt,!0);t(tt),K(bt=>C(wt,bt),[()=>(e(o),r(()=>ee(e(o).directory)))]),i(Re,Ye)},nt=pt(()=>(e(o),r(()=>ee(e(o).directory))));F(Ke,Re=>{e(nt)&&Re(He)})}var Ge=n(Ke,3),We=a(Ge,!0);t(Ge);var Fe=n(Ge,2);{var Ne=Re=>{var Ye=Ys(),tt=n(Je(Ye),2);{var wt=vt=>{var ut=Qs(),Pt=a(ut);t(ut),K(()=>C(Pt,`+${e(o),r(()=>e(o).additions)??""}`)),i(vt,ut)};F(tt,vt=>{e(o),r(()=>e(o).additions)&&vt(wt)})}var bt=n(tt,2);{var kt=vt=>{var ut=Gs(),Pt=a(ut);t(ut),K(()=>C(Pt,`−${e(o),r(()=>e(o).deletions)??""}`)),i(vt,ut)};F(bt,vt=>{e(o),r(()=>e(o).deletions)&&vt(kt)})}i(Re,Ye)};F(Fe,Re=>{e(o),r(()=>e(o).additions||e(o).deletions)&&Re(Ne)})}t(Qe);var $t=n(Qe,2);{var ct=Re=>{var Ye=Vs();i(Re,Ye)},yt=pt(()=>(e(h),e(o),r(()=>e(h).get(e(o).id)==="busy")));F($t,Re=>{e(yt)&&Re(ct)})}t(c),K((Re,Ye,tt,wt,bt)=>{Ce(c,"href",`/${e(o),r(()=>e(o).id)??""}/`),z=we(c,1,"session svelte-1h8243g",null,z,Re),we(S,1,`dot ${Ye??""}`,"svelte-1h8243g"),C(ke,tt),C(ue,wt),C(We,bt)},[()=>({active:E()===e(o).id,busy:e(h).get(e(o).id)==="busy"}),()=>(e(h),e(o),r(()=>e(h).get(e(o).id)??"offline")),()=>(e(h),e(o),r(()=>e(h).get(e(o).id)??"offline")),()=>(e(o),r(()=>te(e(o).id))),()=>(e(o),r(()=>se(e(o).lastActiveAt)))]),M("click",c,Re=>ge(Re,e(o).id)),i(g,c)}),K(()=>{C(Le,(e(W),r(()=>e(W).label))),C(Se,(e(W),r(()=>e(W).rows.length)))}),i(Pe,oe)};F(pe,Pe=>{e(W),r(()=>e(W).rows.length)&&Pe(qe)})}i(d,ie)});var b=n(fe,2);{var L=d=>{var W=en(),ie=a(W);t(W),K(()=>C(ie,`no sessions on ${J()??"this agent"??""} yet`)),i(d,W)};F(b,d=>{e(I),r(()=>e(I).length===0)&&d(L)})}t(V),i(P,V),et(),w()}var sn=na('<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>'),nn=na('<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>'),rn=p('<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" aria-label="切换主题" title="切换主题"><!></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 ln(P,v){Xe(v,!1);const f=()=>ze(Ea,"$theme",q),[q,B]=ot(),l=u(),x=u();let $=Ae(v,"email",8,"");X(()=>ve($()),()=>{s(l,$()||"local")}),X(()=>e(l),()=>{s(x,e(l).charAt(0).toUpperCase())}),at(),Ze();var w=rn(),h=a(w),T=a(h,!0);t(h);var I=n(h,2),A=a(I,!0);t(I);var N=n(I,4),_=a(N);{var k=Y=>{var J=sn();i(Y,J)},E=Y=>{var J=nn();i(Y,J)};F(_,Y=>{f()==="light"?Y(k):Y(E,-1)})}t(N);var ae=n(N,2);t(w),K(()=>{Ce(h,"title",$()),C(T,e(x)),Ce(I,"title",$()),C(A,e(l))}),M("click",N,function(...Y){var J;(J=Ca)==null||J.apply(this,Y)}),M("click",ae,()=>aa.set(!0)),i(P,w),et(),B()}var on=p('<span class="host mono svelte-wmno67"> </span>'),cn=p('<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>'),vn=p('<span class="check svelte-wmno67">✓</span>'),dn=p('<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>'),un=p("<button></button>"),pn=p('<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>'),fn=p('<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>'),hn=p('<div class="agents-label svelte-wmno67">Agents</div> <div class="switcher-row svelte-wmno67"></div>',1),bn=p('<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>'),_n=p('<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 mn(P,v){Xe(v,!1);const f=()=>ze(sa,"$backends",x),q=()=>ze(ft,"$sessionList",x),B=()=>ze(Nt,"$connection",x),l=()=>ze(Qa,"$accentOverrides",x),[x,$]=ot(),w=u(),h=u(),T=u(),I=u(),A=u(),N=u(),_=u(),k=u();let E=Ae(v,"activeId",8,void 0),ae=Ae(v,"email",8,""),Y=Ae(v,"drawer",8,!1),J=u(!1);function R(g){const o=g.split(/[\s\-_:./]+/).filter(Boolean);return o.length>=2?(o[0][0]+o[1][0]).toUpperCase():g.slice(0,2).toUpperCase()}function Q(g){return R((g==null?void 0:g.name)||(g==null?void 0:g.id)||"OC")}function G(g){return g==="online"||g==="connected"?"online":g==="connecting"||g==="reconnecting"?"connecting":g==="offline"?"offline":"online"}async function y(g){s(J,!1),await ea(g)}function j(){s(J,!e(J))}async function se(g){await ea(g)}function te(g){g.key==="Escape"&&s(J,!1)}const ee=24*60*60*1e3;function ge(g,o){return o==="connected"&&Date.now()-g<ee}function re(g,o){return Tt(o)}X(()=>f(),()=>{var g,o,c;s(w,((g=f())==null?void 0:g.activeId)??((c=(o=f())==null?void 0:o.backends[0])==null?void 0:c.id)??"opencode")}),X(()=>(f(),e(w)),()=>{var g;s(h,(g=f())==null?void 0:g.backends.find(o=>o.id===e(w)))}),X(()=>f(),()=>{var g;s(T,((g=f())==null?void 0:g.backends)??[])}),X(()=>(f(),q()),()=>{var g;s(I,Object.fromEntries((((g=f())==null?void 0:g.backends)??[]).map(o=>[o.id,q().filter(c=>c.backendId===o.id||!c.backendId&&o.id==="opencode").length])))}),X(()=>(q(),e(w),B()),()=>{s(A,q().filter(g=>(g.backendId===e(w)||!g.backendId&&e(w)==="opencode")&&ge(g.lastActiveAt,B())).length)}),X(()=>(q(),e(w)),()=>{s(N,q().filter(g=>(g.backendId===e(w)||!g.backendId&&e(w)==="opencode")&&(g.additions||g.deletions)).length)}),X(()=>(l(),e(w)),()=>{s(_,re(l(),e(w)))}),X(()=>(e(T),l()),()=>{s(k,Object.fromEntries(e(T).map(g=>[g.id,re(l(),g.id)])))}),at(),Ze();var H=_n();M("keydown",gt,te);let O;var D=a(H),m=a(D),Z=a(m),ye=a(Z),$e=a(ye,!0);t(ye);var ce=n(ye,2),Te=a(ce),he=a(Te,!0);t(Te),t(ce);var _e=n(ce,2),je=a(_e,!0);t(_e);var Ee=n(_e,2);{var Be=g=>{var o=on(),c=a(o,!0);t(o),K(()=>C(c,(e(h),r(()=>e(h).host)))),i(g,o)};F(Ee,g=>{e(h),r(()=>{var o;return(o=e(h))==null?void 0:o.host})&&g(Be)})}var xe=n(Ee,2),De=a(xe);zt(De,{name:"caret-down",size:11}),t(xe),t(Z);var V=n(Z,2);{var fe=g=>{var o=cn();M("click",o,()=>Ot.set(!1)),i(g,o)};F(V,g=>{Y()||g(fe)})}var b=n(V,2);{var L=g=>{var o=pn(),c=a(o);Ve(c,5,()=>e(T),Qe=>Qe.id,(Qe,me)=>{const ue=It(()=>(e(k),e(me),ve(Tt),r(()=>e(k)[e(me).id]??Tt(e(me).id)))),Ke=It(()=>(e(me),e(w),r(()=>e(me).id===e(w))));var He=dn();let nt;var Ge=a(He),We=a(Ge,!0);t(Ge);var Fe=n(Ge,2),Ne=a(Fe),$t=a(Ne,!0);t(Ne);var ct=n(Ne,2),yt=a(ct);t(ct),t(Fe);var Re=n(Fe,2),Ye=a(Re),tt=a(Ye,!0);t(Ye),t(Re);var wt=n(Re,2);{var bt=kt=>{var vt=vn();i(kt,vt)};F(wt,kt=>{e(Ke)&&kt(bt)})}t(He),K((kt,vt,ut)=>{nt=we(He,1,"agent-row svelte-wmno67",null,nt,{selected:e(Ke)}),dt(Ge,`background:${ve(qt),ve(e(ue)),r(()=>qt[e(ue)])??""}; color:${ve(rt),ve(e(ue)),r(()=>rt[e(ue)])??""}; border-color:${ve(Mt),ve(e(ue)),r(()=>Mt[e(ue)])??""}`),C(We,kt),C($t,(e(me),r(()=>e(me).name??e(me).id))),C(yt,`${e(me),r(()=>e(me).host??"local")??""} · ${e(I),e(me),r(()=>e(I)[e(me).id]??0)??""} ses`),we(Re,1,`status-dot ${vt??""}`,"svelte-wmno67"),dt(Re,`--dot:${ve(rt),ve(e(ue)),r(()=>rt[e(ue)])??""}`),C(tt,ut)},[()=>(e(me),r(()=>Q(e(me)))),()=>(e(me),r(()=>G(e(me).status))),()=>(e(me),r(()=>G(e(me).status)))]),M("click",He,()=>y(e(me).id)),i(Qe,He)}),t(c);var z=n(c,2),U=a(z),S=a(U),de=a(S);t(S);var ke=n(S,2),Oe=a(ke);Ve(Oe,1,()=>Vt,La,(Qe,me)=>{var ue=un();let Ke;K(()=>{Ke=we(ue,1,"swatch svelte-wmno67",null,Ke,{active:e(_)===e(me)}),Ce(ue,"aria-label",`设置 ${e(me)??""} 主题`),dt(ue,`background:${ve(rt),e(me),r(()=>rt[e(me)])??""}`)}),M("click",ue,()=>da(e(w),e(me))),i(Qe,ue)});var st=n(Oe,2);let Ue;t(ke),t(U),t(z),t(o),K(Qe=>{C(de,`Theme · ${e(h),r(()=>{var me,ue;return((me=e(h))==null?void 0:me.name)??((ue=e(h))==null?void 0:ue.id)??"Agent"})??""}`),Ue=we(st,1,"auto svelte-wmno67",null,Ue,Qe)},[()=>({active:e(_)===Ga(e(w))})]),M("click",st,()=>da(e(w),null)),i(g,o)};F(b,g=>{e(J)&&g(L)})}t(m);var d=n(m,2);{var W=g=>{var o=hn(),c=n(Je(o),2);Ve(c,5,()=>e(T),z=>z.id,(z,U)=>{const S=It(()=>(e(k),e(U),ve(Tt),r(()=>e(k)[e(U).id]??Tt(e(U).id))));var de=fn();let ke;var Oe=a(de),st=a(Oe,!0);t(Oe);var Ue=n(Oe,2),Qe=a(Ue),me=a(Qe,!0);t(Qe),t(Ue);var ue=n(Ue,2),Ke=a(ue,!0);t(ue);var He=n(ue,2),nt=a(He,!0);t(He),t(de),K((Ge,We,Fe)=>{ke=we(de,1,"switch-pill svelte-wmno67",null,ke,{active:e(U).id===e(w)}),dt(Oe,`background:${ve(qt),ve(e(S)),r(()=>qt[e(S)])??""}; color:${ve(rt),ve(e(S)),r(()=>rt[e(S)])??""}; border-color:${ve(Mt),ve(e(S)),r(()=>Mt[e(S)])??""}`),C(st,Ge),we(Ue,1,`status-dot ${We??""}`,"svelte-wmno67"),dt(Ue,`--dot:${ve(rt),ve(e(S)),r(()=>rt[e(S)])??""}`),C(me,Fe),C(Ke,(e(U),r(()=>e(U).name??e(U).id))),C(nt,(e(I),e(U),r(()=>e(I)[e(U).id]??0)))},[()=>(e(U),r(()=>Q(e(U)))),()=>(e(U),r(()=>G(e(U).status))),()=>(e(U),r(()=>G(e(U).status)))]),M("click",de,()=>se(e(U).id)),i(z,de)}),t(c),i(g,o)};F(d,g=>{ve(Y()),e(T),r(()=>Y()&&e(T).length>1)&&g(W)})}var ie=n(d,2);{var pe=g=>{var o=bn();M("click",o,()=>Lt.set(!0)),i(g,o)};F(ie,g=>{Y()&&g(pe)})}var qe=n(ie,2),Pe=a(qe);{let g=It(()=>(e(h),r(()=>{var o,c;return((o=e(h))==null?void 0:o.name)??((c=e(h))==null?void 0:c.id)})));an(Pe,{get activeId(){return E()},get agentId(){return e(w)},get agentName(){return e(g)}})}t(qe);var oe=n(qe,2),ne=a(oe),le=a(ne);t(ne);var Le=n(ne,4),be=a(Le);t(Le),t(oe);var Se=n(oe,2);{var Me=g=>{ln(g,{get email(){return ae()}})};F(Se,g=>{Y()||g(Me)})}t(D),t(H),K((g,o,c)=>{O=we(H,1,"agent-panel svelte-wmno67",null,O,{drawer:Y()}),Ce(Z,"aria-expanded",e(J)),dt(ye,`background:${ve(qt),e(_),r(()=>qt[e(_)])??""}; color:${ve(rt),e(_),r(()=>rt[e(_)])??""}; border-color:${ve(Mt),e(_),r(()=>Mt[e(_)])??""}`),C($e,g),we(ce,1,`status-dot ${o??""}`,"svelte-wmno67"),dt(ce,`--dot:${ve(rt),e(_),r(()=>rt[e(_)])??""}`),C(he,c),C(je,(e(h),r(()=>{var z,U;return((z=e(h))==null?void 0:z.name)??((U=e(h))==null?void 0:U.id)??"Agent"}))),C(le,`${e(A)??""} 活跃`),C(be,`${e(N)??""} 已推送`)},[()=>(e(h),r(()=>Q(e(h)))),()=>(e(h),r(()=>{var g;return G((g=e(h))==null?void 0:g.status)})),()=>(e(h),r(()=>{var g;return G((g=e(h))==null?void 0:g.status)}))]),M("click",Z,j),i(P,H),et(),$()}var gn=p('<span class="meta svelte-1h1y2gb"> </span>'),yn=p('<div class="bar svelte-1h1y2gb"><div class="fill svelte-1h1y2gb"></div></div>'),wn=p('<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>'),kn=p('<div class="section-label svelte-1h1y2gb">暂无任务</div>'),xn=p('<div class="task svelte-1h1y2gb"><div class="hd svelte-1h1y2gb"><!></div> <!> <div class="items svelte-1h1y2gb"><!> <!></div></div>');function An(P,v){Xe(v,!1);const f=u(),q=u(),B=u();let l=Ae(v,"sessionId",8,void 0),x=Ae(v,"tick",8,0),$=u({total:0,done:0,items:[]}),w=u(new Set),h;async function T(G){if(!G){s($,{total:0,done:0,items:[]}),s(w,new Set);return}G!==h&&(h=G,s(w,new Set));try{const y=await Ie.todo(G);if(G!==l())return;s($,Ba(y))}catch{}}function I(G){e(w).has(G)?e(w).delete(G):e(w).add(G),s(w,e(w))}X(()=>(ve(l()),ve(x())),()=>{T(l()),x()}),X(()=>(e($),e(w)),()=>{s(f,e($).items.map((G,y)=>({...G,status:e(w).has(y)?G.status==="done"?"pending":"done":G.status})))}),X(()=>e(f),()=>{s(q,e(f).filter(G=>G.status==="done").length)}),X(()=>(e($),e(q)),()=>{s(B,e($).total?Math.round(e(q)/e($).total*100):0)}),at(),Ze();var A=xn(),N=a(A),_=a(N);{var k=G=>{var y=gn(),j=a(y);t(y),K(()=>C(j,`${e(q)??""}/${e($),r(()=>e($).total)??""}`)),i(G,y)};F(_,G=>{e($),r(()=>e($).total)&&G(k)})}t(N);var E=n(N,2);{var ae=G=>{var y=yn(),j=a(y);t(y),K(()=>dt(j,`transform:scaleX(${e(B)/100})`)),i(G,y)};F(E,G=>{e($),r(()=>e($).total)&&G(ae)})}var Y=n(E,2),J=a(Y);Ve(J,3,()=>e(f),(G,y)=>G.text+"-"+y,(G,y,j)=>{var se=wn(),te=n(a(se),2),ee=a(te,!0);t(te),t(se),K(()=>{we(se,1,`row ${e(y),r(()=>e(y).status)??""}`,"svelte-1h1y2gb"),C(ee,(e(y),r(()=>e(y).text)))}),M("click",se,()=>I(e(j))),i(G,se)});var R=n(J,2);{var Q=G=>{var y=kn();i(G,y)};F(R,G=>{e($),r(()=>e($).total===0)&&G(Q)})}t(Y),t(A),i(P,A),et()}var In=p('<div><span class="dot svelte-ehf8ic" aria-hidden="true"></span><span> </span><span class="sr-only svelte-ehf8ic"> </span></div>'),$n=p('<div class="label">未配置</div>'),Sn=p('<div class="mcp svelte-ehf8ic"><div class="list svelte-ehf8ic"><!> <!></div></div>');function qn(P,v){Xe(v,!1);let f=Ae(v,"tick",8,0),q=u([]);async function B(){try{s(q,await Ie.mcp())}catch{}}X(()=>ve(f()),()=>{B(),f()}),at(),Ze();var l=Sn(),x=a(l),$=a(x);Ve($,1,()=>e(q),La,(T,I)=>{var A=In();let N;var _=n(a(A)),k=a(_,!0);t(_);var E=n(_),ae=a(E,!0);t(E),t(A),K(()=>{N=we(A,1,"row svelte-ehf8ic",null,N,{off:e(I).status==="disabled"}),C(k,(e(I),r(()=>e(I).name))),C(ae,(e(I),r(()=>e(I).status)))}),i(T,A)});var w=n($,2);{var h=T=>{var I=$n();i(T,I)};F(w,T=>{e(q),r(()=>e(q).length===0)&&T(h)})}t(x),t(l),i(P,l),et()}var Mn=p('<div><button><span class="dot svelte-pijcyq" aria-hidden="true"></span></button> <div class="txt svelte-pijcyq"><div class="prompt svelte-pijcyq"> </div> <div class="spec mono svelte-pijcyq"> </div></div> <button> </button></div>'),Tn=p('<div class="label svelte-pijcyq">暂无</div>'),zn=p('<div class="err svelte-pijcyq"> </div>'),Cn=p('<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>'),En=p('<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 Ln(P,v){Xe(v,!1);const f=[];let q=Ae(v,"tick",8,0),B=u([]),l=u(!1),x=u(""),$=u("every"),w=u(30),h=u("09:00"),T=u(""),I=u(),A;async function N(){try{s(B,(await Ie.schedules()).schedules??[])}catch{}}function _(re){return re.kind==="every"?re.minutes>=60&&re.minutes%60===0?`every ${re.minutes/60}h`:`every ${re.minutes}m`:`daily ${re.time}`}function k(re){return re.name||re.prompt}async function E(){if(!e(x).trim())return;s(T,"");const re=e($)==="every"?{kind:"every",minutes:Math.max(1,Math.round(e(w)))}:{kind:"daily",time:e(h)};try{const H=await Ie.addSchedule({prompt:e(x).trim(),spec:re});if(H.error){s(T,H.error);return}s(x,""),s(l,!1),await N()}catch(H){s(T,H.message)}}async function ae(re){s(B,e(B).map(H=>H.id===re.id?{...H,enabled:!H.enabled}:H));try{await Ie.setScheduleEnabled(re.id,!re.enabled),await N()}catch{await N()}}async function Y(re){if(e(I)!==re){s(I,re),clearTimeout(A),A=setTimeout(()=>s(I,void 0),3e3);return}clearTimeout(A),s(I,void 0);try{await Ie.deleteSchedule(re),await N()}catch{}}X(()=>ve(q()),()=>{N(),q()}),at(),Ze();var J=En(),R=a(J),Q=a(R),G=a(Q,!0);t(Q),t(R);var y=n(R,2),j=a(y);Ve(j,1,()=>e(B),re=>re.id,(re,H)=>{var O=Mn();let D;var m=a(O);let Z;var ye=n(m,2),$e=a(ye),ce=a($e,!0);t($e);var Te=n($e,2),he=a(Te,!0);t(Te),t(ye);var _e=n(ye,2);let je;var Ee=a(_e,!0);t(_e),t(O),K((Be,xe,De,V)=>{D=we(O,1,"row svelte-pijcyq",null,D,{off:!e(H).enabled}),Z=we(m,1,"switch svelte-pijcyq",null,Z,{on:e(H).enabled}),Ce(m,"aria-pressed",(e(H),r(()=>e(H).enabled))),Ce(m,"aria-label",Be),C(ce,xe),C(he,De),je=we(_e,1,"del svelte-pijcyq",null,je,{arm:e(I)===e(H).id}),Ce(_e,"aria-label",`删除 ${V??""}`),C(Ee,(e(I),e(H),r(()=>e(I)===e(H).id?"确认?":"✕")))},[()=>(e(H),r(()=>`${e(H).enabled?"停用":"启用"} ${k(e(H))}`)),()=>(e(H),r(()=>k(e(H)))),()=>(e(H),r(()=>_(e(H).spec))),()=>(e(H),r(()=>k(e(H))))]),M("click",m,()=>ae(e(H))),M("click",_e,()=>Y(e(H).id)),i(re,O)});var se=n(j,2);{var te=re=>{var H=Tn();i(re,H)};F(se,re=>{e(B),e(l),r(()=>e(B).length===0&&!e(l))&&re(te)})}t(y);var ee=n(y,2);{var ge=re=>{var H=Cn(),O=a(H);ds(O);var D=n(O,2),m=a(D);let Z;var ye=a(m);ht(ye),ye.value=ye.__value="every";var $e=n(ye,2);ht($e),At(),t(m);var ce=n(m,2);let Te;var he=a(ce);ht(he),he.value=he.__value="daily";var _e=n(he,2);ht(_e),t(ce),t(D);var je=n(D,2);{var Ee=xe=>{var De=zn(),V=a(De,!0);t(De),K(()=>C(V,e(T))),i(xe,De)};F(je,xe=>{e(T)&&xe(Ee)})}var Be=n(je,2);t(H),K(xe=>{Z=we(m,1,"svelte-pijcyq",null,Z,{sel:e($)==="every"}),$e.disabled=e($)!=="every",Te=we(ce,1,"svelte-pijcyq",null,Te,{sel:e($)==="daily"}),_e.disabled=e($)!=="daily",Be.disabled=xe},[()=>(e(x),r(()=>!e(x).trim()))]),mt(O,()=>e(x),xe=>s(x,xe)),wa(f,[],ye,()=>e($),xe=>s($,xe)),mt($e,()=>e(w),xe=>s(w,xe)),wa(f,[],he,()=>e($),xe=>s($,xe)),mt(_e,()=>e(h),xe=>s(h,xe)),M("click",Be,E),i(re,H)};F(ee,re=>{e(l)&&re(ge)})}t(J),K(()=>{Ce(Q,"aria-label",e(l)?"取消新建计划":"新建计划"),C(G,e(l)?"×":"+")}),M("click",Q,()=>s(l,!e(l))),i(P,J),et()}var Bn=p('<span class="chip svelte-taxat6"> </span>'),Dn=p('<button class="more svelte-taxat6"> </button>'),Pn=p("<div></div> <!>",1),jn=p('<div class="label svelte-taxat6">none</div>'),On=p('<div class="skills svelte-taxat6"><!></div>');function Fn(P,v){Xe(v,!1);const f=u();let q=Ae(v,"tick",8,0),B=u([]),l=u(!1);async function x(){try{s(B,(await Ie.skills()).skills??[])}catch{}}X(()=>(e(l),e(B)),()=>{s(f,e(l)?e(B):e(B).slice(0,18))}),X(()=>ve(q()),()=>{x(),q()}),at(),Ze();var $=On(),w=a($);{var h=I=>{var A=Pn(),N=Je(A);let _;Ve(N,5,()=>e(f),ae=>ae.name,(ae,Y)=>{var J=Bn(),R=a(J,!0);t(J),K(()=>{Ce(J,"title",(e(Y),r(()=>e(Y).description??e(Y).name))),C(R,(e(Y),r(()=>e(Y).name)))}),i(ae,J)}),t(N);var k=n(N,2);{var E=ae=>{var Y=Dn(),J=a(Y,!0);t(Y),K(()=>C(J,(e(l),e(B),r(()=>e(l)?"收起":`展开全部 ${e(B).length}`)))),M("click",Y,()=>s(l,!e(l))),i(ae,Y)};F(k,ae=>{e(B),r(()=>e(B).length>18)&&ae(E)})}K(()=>_=we(N,1,"chips svelte-taxat6",null,_,{clipped:!e(l)&&e(B).length>18})),i(I,A)},T=I=>{var A=jn();i(I,A)};F(w,I=>{e(B),r(()=>e(B).length>0)?I(h):I(T,-1)})}t($),i(P,$),et()}var Rn=p('<button class="up svelte-tp0rgj" aria-label="上级目录"> </button>'),Wn=p('<span class="mono"> </span>'),Un=p('<button class="row svelte-tp0rgj"><span class="ico svelte-tp0rgj"> </span> <span class="name svelte-tp0rgj"> </span></button>'),Jn=p('<div class="label svelte-tp0rgj">empty</div>'),Nn=p('<div class="label svelte-tp0rgj">…</div>'),Hn=p('<div class="files svelte-tp0rgj"><div class="crumb mono svelte-tp0rgj"><!></div> <div class="list svelte-tp0rgj"><!> <!> <!></div></div>');function Kn(P,v){Xe(v,!1);const f=()=>ze(ft,"$sessionList",q),[q,B]=ot(),l=u();let x=Ae(v,"sessionId",8,void 0),$=Ae(v,"tick",8,0),w=u([]),h=u("."),T=u(!1);async function I(){if(e(l)){s(T,!0);try{s(w,(await Ie.browse(e(l),e(h))).files??[])}catch{s(w,[])}finally{s(T,!1)}}}function A(){const se=e(h).replace(/(^|\/)[^/]+\/?$/,"")||".";s(h,se),I()}function N(se){if(se.type==="directory"){s(h,se.path),I();return}Da({id:`file:${se.path}`,kind:"file",title:se.name,path:se.path,directory:e(l)})}X(()=>(f(),ve(x())),()=>{var se;s(l,((se=f().find(te=>te.id===x()))==null?void 0:se.directory)??"")}),X(()=>(e(l),e(h),ve($())),()=>{e(l)&&(e(l),e(h),$(),I())}),at(),Ze();var _=Hn(),k=a(_),E=a(k);{var ae=se=>{var te=Rn(),ee=a(te);t(te),K(()=>C(ee,`↰ ${e(h)??""}`)),M("click",te,A),i(se,te)},Y=se=>{var te=Wn(),ee=a(te,!0);t(te),K(ge=>C(ee,ge),[()=>(e(l),r(()=>e(l).split("/").pop()||"/"))]),i(se,te)};F(E,se=>{e(h)!=="."?se(ae):se(Y,-1)})}t(k);var J=n(k,2),R=a(J);Ve(R,1,()=>e(w),se=>se.path,(se,te)=>{var ee=Un(),ge=a(ee),re=a(ge,!0);t(ge);var H=n(ge,2),O=a(H,!0);t(H),t(ee),K(()=>{C(re,(e(te),r(()=>e(te).type==="directory"?"📁":"📄"))),C(O,(e(te),r(()=>e(te).name)))}),M("click",ee,()=>N(e(te))),i(se,ee)});var Q=n(R,2);{var G=se=>{var te=Jn();i(se,te)};F(Q,se=>{e(T),e(w),r(()=>!e(T)&&e(w).length===0)&&se(G)})}var y=n(Q,2);{var j=se=>{var te=Nn();i(se,te)};F(y,se=>{e(T)&&se(j)})}t(J),t(_),i(P,_),et(),B()}var Qn=p('<div class="row svelte-148ev8e"><span class="ico svelte-148ev8e" aria-hidden="true">🌿</span> <span class="name svelte-148ev8e"> </span> <button> </button></div>'),Gn=p('<div class="rows svelte-148ev8e"></div>'),Yn=p('<div class="label svelte-148ev8e">none</div>'),Vn=p('<div class="err svelte-148ev8e"> </div>'),Zn=p('<div class="form svelte-148ev8e"><input class="name-in mono svelte-148ev8e" placeholder="worktree 名称"/> <!> <button class="go svelte-148ev8e">创建</button></div>'),Xn=p('<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 er(P,v){Xe(v,!1);const f=()=>ze(ft,"$sessionList",q),[q,B]=ot(),l=u();let x=Ae(v,"sessionId",8,void 0),$=Ae(v,"tick",8,0),w=u([]),h=u(!1),T=u(""),I=u(""),A=u(),N;async function _(){if(e(l))try{s(w,(await Ie.worktrees(e(l))).worktrees??[])}catch{}}async function k(){if(e(T).trim()){s(I,"");try{const ee=await Ie.createWorktree(e(l),e(T).trim());if(ee.error){s(I,ee.error);return}s(T,""),s(h,!1),await _()}catch(ee){s(I,ee.message)}}}async function E(ee){if(e(A)!==ee){s(A,ee),clearTimeout(N),N=setTimeout(()=>s(A,void 0),3e3);return}clearTimeout(N),s(A,void 0);try{await Ie.removeWorktree(e(l),ee),await _()}catch{}}X(()=>(f(),ve(x())),()=>{var ee;s(l,((ee=f().find(ge=>ge.id===x()))==null?void 0:ee.directory)??"")}),X(()=>(ve($()),e(l)),()=>{_(),$(),e(l)}),at(),Ze();var ae=Xn(),Y=a(ae),J=a(Y),R=a(J,!0);t(J),t(Y);var Q=n(Y,2),G=a(Q);{var y=ee=>{var ge=Gn();Ve(ge,5,()=>e(w),re=>re.name,(re,H)=>{var O=Qn(),D=n(a(O),2),m=a(D,!0);t(D);var Z=n(D,2);let ye;var $e=a(Z,!0);t(Z),t(O),K(()=>{C(m,(e(H),r(()=>e(H).name))),ye=we(Z,1,"del svelte-148ev8e",null,ye,{arm:e(A)===e(H).name}),Ce(Z,"aria-label",`删除 ${e(H),r(()=>e(H).name)??""}`),C($e,(e(A),e(H),r(()=>e(A)===e(H).name?"确认?":"✕")))}),M("click",Z,()=>E(e(H).name)),i(re,O)}),t(ge),i(ee,ge)},j=ee=>{var ge=Yn();i(ee,ge)};F(G,ee=>{e(w),r(()=>e(w).length>0)?ee(y):e(h)||ee(j,1)})}t(Q);var se=n(Q,2);{var te=ee=>{var ge=Zn(),re=a(ge);ht(re);var H=n(re,2);{var O=m=>{var Z=Vn(),ye=a(Z,!0);t(Z),K(()=>C(ye,e(I))),i(m,Z)};F(H,m=>{e(I)&&m(O)})}var D=n(H,2);t(ge),K(m=>D.disabled=m,[()=>(e(T),r(()=>!e(T).trim()))]),mt(re,()=>e(T),m=>s(T,m)),M("click",D,k),i(ee,ge)};F(se,ee=>{e(h)&&ee(te)})}t(ae),K(()=>{Ce(J,"aria-label",e(h)?"取消新建":"新建 worktree"),C(R,e(h)?"×":"+")}),M("click",J,()=>s(h,!e(h))),i(P,ae),et(),B()}var tr=p('<span class="count mono svelte-1s66f6s"> </span>'),ar=p('<span class="live-label svelte-1s66f6s">运行中</span>'),sr=p('<button class="row svelte-1s66f6s"><span aria-hidden="true"></span> <span class="meta svelte-1s66f6s"><span class="title svelte-1s66f6s"> </span> <!></span> <!></button>'),nr=p('<div class="empty svelte-1s66f6s">该会话暂无子代理</div>'),rr=p('<div class="empty svelte-1s66f6s">…</div>'),lr=p('<div class="subs svelte-1s66f6s"><!> <!> <!></div>');function ir(P,v){Xe(v,!1);let f=Ae(v,"sessionId",8,void 0),q=Ae(v,"tick",8,0),B=u([]),l=u(!1);async function x(){if(!f()){s(B,[]);return}s(l,!0);try{const _=await Ie.subagents(f());s(B,[..._.subagents??[]].sort((k,E)=>Number(E.busy??!1)-Number(k.busy??!1)))}catch{s(B,[])}finally{s(l,!1)}}function $(_){try{sessionStorage.setItem(`ocrc.subparent.${_.id}`,f()??"")}catch{}Da({id:`sub:${_.id}`,kind:"subagent",title:_.title||"…"+_.id.slice(-6),childId:_.id})}X(()=>(ve(f()),ve(q())),()=>{f()&&(f(),q(),x())}),at(),Ze();var w=lr(),h=a(w);Ve(h,1,()=>e(B),_=>_.id,(_,k)=>{var E=sr(),ae=a(E);let Y;var J=n(ae,2),R=a(J),Q=a(R,!0);t(R);var G=n(R,2);{var y=te=>{var ee=tr(),ge=a(ee);t(ee),K(()=>C(ge,`${e(k),r(()=>e(k).done)??""}/${e(k),r(()=>e(k).total)??""}`)),i(te,ee)};F(G,te=>{e(k),r(()=>e(k).total>0)&&te(y)})}t(J);var j=n(J,2);{var se=te=>{var ee=ar();i(te,ee)};F(j,te=>{e(k),r(()=>e(k).busy)&&te(se)})}t(E),K(te=>{Y=we(ae,1,"dot svelte-1s66f6s",null,Y,{live:e(k).busy,done:!e(k).busy&&e(k).total>0&&e(k).done>=e(k).total}),C(Q,te)},[()=>(e(k),r(()=>e(k).title||"…"+e(k).id.slice(-6)))]),M("click",E,()=>$(e(k))),i(_,E)});var T=n(h,2);{var I=_=>{var k=nr();i(_,k)};F(T,_=>{e(l),e(B),r(()=>!e(l)&&e(B).length===0)&&_(I)})}var A=n(T,2);{var N=_=>{var k=rr();i(_,k)};F(A,_=>{e(l)&&_(N)})}t(w),i(P,w),et()}var or=p('<div class="empty svelte-6fqea2">(暂无输出——子代理开跑后这里实时滚动)</div>'),cr=p('<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 vr(P,v){Xe(v,!1);const f=()=>ze(_t,"$feeds",q),[q,B]=ot(),l=u();let x=Ae(v,"childId",8),$=Ae(v,"tick",8,0),w=u(),h=!0,T=u();async function I(R){const Q=xt(_t)[R];if(!(Q&&Q.order.length>0))try{const G=await Ie.history(R,{limit:60});Zt(R,G.cards??[],G.lastSeq??0)}catch{}}Wt(()=>{x()&&va({type:"unsubscribe",sessionId:x()})});function A(){h&&e(w)&&requestAnimationFrame(()=>{e(w)&&h&&pa(w,e(w).scrollTop=e(w).scrollHeight)})}function N(){e(w)&&(h=e(w).scrollHeight-e(w).scrollTop-e(w).clientHeight<60)}X(()=>(ve(x()),e(T),va),()=>{x()&&x()!==e(T)&&(s(T,x()),(async()=>{var Q;await I(x());const R=((Q=xt(_t)[x()])==null?void 0:Q.lastSeq)??0;va({type:"subscribe",sessionId:x(),sinceSeq:R})})())}),X(()=>(ve(x()),ve($()),_t),()=>{var R,Q;x()&&$()&&((Q=(R=xt(_t)[x()])==null?void 0:R.order)==null?void 0:Q.length)===0&&I(x())}),X(()=>(ve(x()),f()),()=>{s(l,x()?Ya(f()[x()]??null):[])}),X(()=>e(l),()=>{e(l)&&A()}),at(),Ze();var _=cr(),k=a(_),E=a(k),ae=a(E);t(E);var Y=n(E,2);t(k);var J=n(k,2);Ve(J,7,()=>e(l),(R,Q)=>R.seq??R.id??Q,(R,Q)=>{hs(R,{get card(){return e(Q)}})},R=>{var Q=or();i(R,Q)}),t(J),Dt(J,R=>s(w,R),()=>e(w)),t(_),K(()=>C(ae,`实况 · ${e(l),r(()=>e(l).length)??""} 条`)),M("click",Y,()=>ra("/"+x())),M("scroll",J,N),i(P,_),et(),B()}var dr=p('<div class="trunc label svelte-va1nfd"> </div>'),ur=p('<div class="hint label svelte-va1nfd">…</div>'),pr=p('<div class="hint label svelte-va1nfd">读取失败</div>'),fr=p('<div class="hint label svelte-va1nfd">(二进制文件,无法预览)</div>'),hr=p('<div class="fv svelte-va1nfd"><!> <div class="body svelte-va1nfd"><!></div></div>');function br(P,v){Xe(v,!1);const f=u(),q=u(),B=u();let l=Ae(v,"directory",8),x=Ae(v,"path",8);const $=2e5;let w=u(""),h=u(!1),T=u(!1),I=u(!1),A=u(!1);async function N(){s(A,!0),s(I,!1);try{const y=await Ie.fileContent(l(),x());if(y.type!=="text"){s(T,!0),s(w,"");return}s(T,!1),s(h,y.content.length>$),s(w,e(h)?y.content.slice(0,$):y.content)}catch{s(I,!0)}finally{s(A,!1)}}X(()=>(ve(l()),ve(x())),()=>{l()&&x()&&(l(),x(),N())}),X(()=>ve(x()),()=>{s(f,/\.(md|markdown)$/i.test(x()))}),X(()=>ve(x()),()=>{s(q,x().split(".").pop()??"")}),X(()=>(e(T),e(I),e(f),e(w),e(q)),()=>{s(B,e(T)||e(I)?"":e(f)?e(w):"```"+e(q)+`
|
|
2
|
-
`+e(w)+"\n```")}),at(),Ze();var _=hr(),k=a(_);{var E=y=>{var j=dr(),se=a(j);t(j),K(te=>C(se,`文件超过 ${te??""} 字符,已截断显示`),[()=>r(()=>$.toLocaleString())]),i(y,j)};F(k,y=>{e(h)&&y(E)})}var ae=n(k,2),Y=a(ae);{var J=y=>{var j=ur();i(y,j)},R=y=>{var j=pr();i(y,j)},Q=y=>{var j=fr();i(y,j)},G=y=>{{let j=It(()=>e(f)?e(w):e(B));bs(y,{get src(){return e(j)}})}};F(Y,y=>{e(A)?y(J):e(I)?y(R,1):e(T)?y(Q,2):y(G,-1)})}t(ae),t(_),i(P,_),et()}var _r=p('<div class="cmd mono svelte-1bw07gw"> </div>'),mr=p('<div class="hint mono svelte-1bw07gw">…</div>'),gr=p('<div class="hint mono svelte-1bw07gw">(找不到该工具调用的原始数据)</div>'),yr=p('<pre class="body mono err svelte-1bw07gw"> </pre>'),wr=p('<pre class="body mono svelte-1bw07gw"> </pre>'),kr=p('<div class="hint mono svelte-1bw07gw"> </div>'),xr=p('<div class="out svelte-1bw07gw"><div class="hd svelte-1bw07gw"><span class="tool mono svelte-1bw07gw"> </span> <span> </span></div> <!> <!></div>');function Ar(P,v){Xe(v,!1);const f=u();let q=Ae(v,"sessionId",8),B=Ae(v,"messageId",8),l=Ae(v,"partId",8),x=Ae(v,"tick",8,0),$=u(""),w=u(""),h=u(""),T=u(""),I=u(""),A=u(!1),N=u(!0),_,k=!1;function E(D){return D.find(m=>(m==null?void 0:m.id)===l()&&(m==null?void 0:m.type)==="tool")??D.find(m=>{var Z;return(m==null?void 0:m.type)==="tool"&&((Z=m==null?void 0:m.state)==null?void 0:Z.callID)!=null&&(m==null?void 0:m.id)===l()})}async function ae(){try{const D=await Ie.messageRaw(q(),B()),m=E((D==null?void 0:D.parts)??[]);if(!m){s(A,!0);return}s(A,!1),s($,String(m.tool??""));const Z=m.state??{};s(w,String(Z.status??"pending"));const ye=Z.input??{};s(h,String(ye.command??ye.cmd??ye.filePath??ye.description??"")),s(T,typeof Z.output=="string"?Z.output:""),s(I,typeof Z.error=="string"?Z.error:"")}catch{s(A,!0)}finally{s(N,!1),!k&&(e(w)==="running"||e(w)==="pending")&&(clearTimeout(_),_=setTimeout(()=>{k||ae()},2e3))}}Wt(()=>{k=!0,clearTimeout(_)}),X(()=>(ve(q()),ve(B())),()=>{q()&&B()&&(q(),B(),ae())}),X(()=>(e(N),ve(x())),()=>{!e(N)&&x()&&(x(),ae())}),X(()=>e(w),()=>{s(f,e(w)==="completed"||e(w)==="done"?"完成":e(w)==="error"?"出错":e(w)==="running"?"运行中":e(w)||"…")}),at(),Ze();var Y=xr(),J=a(Y),R=a(J),Q=a(R,!0);t(R);var G=n(R,2),y=a(G,!0);t(G),t(J);var j=n(J,2);{var se=D=>{var m=_r(),Z=a(m,!0);t(m),K(()=>C(Z,e(h))),i(D,m)};F(j,D=>{e(h)&&D(se)})}var te=n(j,2);{var ee=D=>{var m=mr();i(D,m)},ge=D=>{var m=gr();i(D,m)},re=D=>{var m=yr(),Z=a(m,!0);t(m),K(()=>C(Z,e(I))),i(D,m)},H=D=>{var m=wr(),Z=a(m,!0);t(m),K(()=>C(Z,e(T))),i(D,m)},O=D=>{var m=kr(),Z=a(m,!0);t(m),K(()=>C(Z,e(w)==="running"||e(w)==="pending"?"运行中——输出将在完成时出现":"(无输出)")),i(D,m)};F(te,D=>{e(N)?D(ee):e(A)?D(ge,1):e(I)?D(re,2):e(T)?D(H,3):D(O,-1)})}t(Y),K(()=>{C(Q,e($)||"tool"),we(G,1,`st mono ${e(w)??""}`,"svelte-1bw07gw"),C(y,e(f))}),i(P,Y),et()}var Ir=p('<span class="count mono svelte-1x813in"> </span>'),$r=p('<span class="add svelte-1x813in"> </span>'),Sr=p('<span class="del svelte-1x813in"> </span>'),qr=p('<div class="hint mono svelte-1x813in">…</div>'),Mr=p('<pre class="patch mono svelte-1x813in"> </pre>'),Tr=p('<div class="hint mono svelte-1x813in">(无改动内容)</div>'),zr=p('<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>'),Cr=p('<div class="hint svelte-1x813in">工作区干净</div>'),Er=p('<div class="hint svelte-1x813in">…</div>'),Lr=p('<div class="git svelte-1x813in"><div class="hd svelte-1x813in"><span class="branch mono svelte-1x813in"> </span> <!></div> <!> <!></div>');function Br(P,v){Xe(v,!1);let f=Ae(v,"sessionId",8,void 0),q=Ae(v,"tick",8,0),B=u(""),l=u([]),x=u(new Map),$=u(new Set),w=u(!0),h=u(null);async function T(){try{const y=await Ie.vcs(f());s(B,(y==null?void 0:y.branch)??""),s(l,(y==null?void 0:y.status)??[])}catch{s(B,""),s(l,[])}finally{s(w,!1)}}async function I(y){if(!(e(x).has(y)||e(h)!==null)){s(h,y);try{const j=await Ie.vcsDiff(f(),y);s(x,new Map([...e(x),[y,(j==null?void 0:j.patch)??""]]))}catch{s(x,new Map([...e(x),[y,"(patch 读取失败)"]]))}finally{s(h,null)}}}function A(y){if(e($).has(y)){s($,new Set([...e($)].filter(j=>j!==y)));return}s($,new Set([...e($),y])),I(y)}const N=y=>y==="added"?"新增":y==="deleted"?"删除":y==="modified"?"修改":y??"";X(()=>ve(q()),()=>{q(),T()}),at(),Ze();var _=Lr(),k=a(_),E=a(k),ae=a(E,!0);t(E);var Y=n(E,2);{var J=y=>{var j=Ir(),se=a(j);t(j),K(()=>C(se,`${e(l),r(()=>e(l).length)??""} 个文件`)),i(y,j)};F(Y,y=>{e(l),r(()=>e(l).length)&&y(J)})}t(k);var R=n(k,2);Ve(R,1,()=>e(l),y=>y.file,(y,j)=>{var se=zr(),te=a(se),ee=a(te),ge=a(ee,!0);t(ee);var re=n(ee,2),H=a(re,!0);t(re);var O=n(re,2),D=a(O);{var m=he=>{var _e=$r(),je=a(_e);t(_e),K(()=>C(je,`+${e(j),r(()=>e(j).additions)??""}`)),i(he,_e)};F(D,he=>{e(j),r(()=>e(j).additions)&&he(m)})}var Z=n(D,2);{var ye=he=>{var _e=Sr(),je=a(_e);t(_e),K(()=>C(je,`−${e(j),r(()=>e(j).deletions)??""}`)),i(he,_e)};F(Z,he=>{e(j),r(()=>e(j).deletions)&&he(ye)})}t(O),t(te);var $e=n(te,2);{var ce=he=>{var _e=it(),je=Je(_e);{var Ee=V=>{var fe=qr();i(V,fe)},Be=V=>{var fe=Mr(),b=a(fe,!0);t(fe),K(L=>C(b,L),[()=>(e(x),e(j),r(()=>e(x).get(e(j).file)))]),i(V,fe)},xe=pt(()=>(e(x),e(j),r(()=>e(x).get(e(j).file)))),De=V=>{var fe=Tr();i(V,fe)};F(je,V=>{e(h),e(j),r(()=>e(h)===e(j).file)?V(Ee):e(xe)?V(Be,1):V(De,-1)})}i(he,_e)},Te=pt(()=>(e($),e(j),r(()=>e($).has(e(j).file))));F($e,he=>{e(Te)&&he(ce)})}t(se),K((he,_e)=>{Ce(te,"aria-expanded",he),we(ee,1,`badge ${e(j),r(()=>e(j).status)??""}`,"svelte-1x813in"),C(ge,_e),C(H,(e(j),r(()=>e(j).file)))},[()=>(e($),e(j),r(()=>e($).has(e(j).file))),()=>(e(j),r(()=>N(e(j).status)))]),M("click",te,()=>A(e(j).file)),i(y,se)},y=>{var j=it(),se=Je(j);{var te=ee=>{var ge=Cr();i(ee,ge)};F(se,ee=>{e(w)||ee(te)})}i(y,j)});var Q=n(R,2);{var G=y=>{var j=Er();i(y,j)};F(Q,y=>{e(w)&&y(G)})}t(_),K(()=>C(ae,e(B)||"…")),i(P,_),et()}var Dr=p('<span class="tbadge mono svelte-gu3dqx"> </span>'),Pr=p('<button role="menuitem" class="svelte-gu3dqx"> <!></button>'),jr=p('<div class="strip-menu svelte-gu3dqx" role="menu"><!> <div class="menu-sep svelte-gu3dqx"></div> <button role="menuitem" class="svelte-gu3dqx">Git</button></div>'),Or=p('<div class="strip svelte-gu3dqx"><button class="strip-plus svelte-gu3dqx" title="打开面板" aria-label="打开面板">+</button> <!></div>'),Fr=p('<span class="tbadge mono svelte-gu3dqx"> </span>'),Rr=p('<button role="tab" draggable="true"><span class="dlabel svelte-gu3dqx"> </span> <!> <span class="closer svelte-gu3dqx" role="button" tabindex="-1">✕</span></button>'),Wr=p('<span class="tbadge mono svelte-gu3dqx"> </span>'),Ur=p('<button role="menuitem" class="svelte-gu3dqx"> <!></button>'),Jr=p('<div class="plus-menu svelte-gu3dqx" role="menu"><!> <div class="menu-sep svelte-gu3dqx"></div> <button role="menuitem" class="svelte-gu3dqx">Git</button></div>'),Nr=p('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Hr=p('<!> <div class="gap svelte-gu3dqx"></div> <!>',1),Kr=p('<div class="empty svelte-gu3dqx"><p class="empty-title svelte-gu3dqx">没有打开的面板</p> <p class="empty-hint svelte-gu3dqx">从会话流(计划窗、工具行)或右上 + 打开——任务、文件、子代理、Skills、配置、Git。</p></div>'),Qr=p('<div class="head svelte-gu3dqx"><div class="section-label svelte-gu3dqx">会话</div> <div class="name svelte-gu3dqx"><span class="title-text svelte-gu3dqx"> </span></div></div> <div class="tabs svelte-gu3dqx" role="tablist"><!> <div class="plus svelte-gu3dqx"><button class="plus-btn svelte-gu3dqx" aria-label="打开面板" title="打开面板">+</button> <!></div></div> <div class="pane svelte-gu3dqx"><!></div>',1),Gr=p("<aside><!></aside>");function Yr(P,v){Xe(v,!1);const f=()=>ze(ft,"$sessionList",x),q=()=>ze(_t,"$feeds",x),B=()=>ze(Jt,"$sidePane",x),l=()=>ze(Ma,"$can",x),[x,$]=ot(),w=u(),h=u(),T=u(),I=u(),A=u(),N=u(),_=u();let k=Ae(v,"sessionId",8,void 0),E=u(0),ae=u(-1),Y=u();Wt(()=>clearTimeout(e(Y)));let J=u(!1),R=-1;function Q(ce){R=ce}function G(ce){R!==-1&&_s(R,ce),R=-1}let y=u(!1),j=u();function se(ce){e(y)&&e(j)&&!e(j).contains(ce.target)&&s(y,!1)}function te(ce){ce.key==="Escape"&&s(y,!1)}let ee=u({total:0,done:0,items:[]}),ge;async function re(ce){if(ce)try{const Te=await Ie.todo(ce);if(ce!==k())return;ge=ce,s(ee,Ba(Te))}catch{}}let H=u();const O=ce=>ce==="tasks"&&e(ee).total>0?`${e(ee).done}/${e(ee).total}`:"";X(()=>(f(),ve(k())),()=>{s(w,f().find(ce=>ce.id===k()))}),X(()=>e(w),()=>{var ce;s(h,(ce=e(w))==null?void 0:ce.title)}),X(()=>(ve(k()),q()),()=>{var ce;s(T,k()?((ce=q()[k()])==null?void 0:ce.lastSeq)??0:0)}),X(()=>(e(T),e(ae),e(Y),e(E)),()=>{e(T)!==e(ae)&&(s(ae,e(T)),clearTimeout(e(Y)),s(Y,setTimeout(()=>s(E,e(E)+1),1e3)))}),X(()=>B(),()=>{s(I,B().activeId)}),X(()=>(B(),e(I)),()=>{s(A,B().tabs.find(ce=>ce.id===e(I)))}),X(()=>(B(),e(I)),()=>{s(N,B().tabs.findIndex(ce=>ce.id===e(I)))}),X(()=>B(),()=>{s(_,B().tabs.length===0)}),X(()=>(ve(k()),e(H)),()=>{k()!==e(H)&&(s(H,k()),re(k()))}),X(()=>(e(E),ve(k())),()=>{e(E)&&re(k())}),at(),Ze();var D=Gr();M("click",gt,se),M("keydown",gt,te);let m;var Z=a(D);{var ye=ce=>{var Te=Or(),he=a(Te),_e=n(he,2);{var je=Ee=>{var Be=jr(),xe=a(Be);Ve(xe,1,()=>Aa,V=>V.homeId,(V,fe)=>{var b=Pr(),L=a(b,!0),d=n(L);{var W=pe=>{var qe=Dr(),Pe=a(qe,!0);t(qe),K(oe=>C(Pe,oe),[()=>(e(fe),r(()=>O(e(fe).homeId)))]),i(pe,qe)},ie=pt(()=>(e(fe),r(()=>O(e(fe).homeId))));F(d,pe=>{e(ie)&&pe(W)})}t(b),K(()=>C(L,(e(fe),r(()=>e(fe).title)))),M("click",b,()=>{xa(e(fe).homeId),s(J,!1)}),i(V,b)});var De=n(xe,4);t(Be),M("click",De,()=>{Jt.openPaneTab({id:"git",kind:"git",title:"Git"}),s(J,!1)}),i(Ee,Be)};F(_e,Ee=>{e(J)&&Ee(je)})}t(Te),M("click",he,()=>s(J,!e(J))),i(ce,Te)},$e=ce=>{var Te=Qr(),he=Je(Te),_e=n(a(he),2),je=a(_e),Ee=a(je,!0);t(je),t(_e),t(he);var Be=n(he,2),xe=a(Be);Ve(xe,3,()=>(B(),r(()=>B().tabs)),ne=>ne.id,(ne,le,Le)=>{var be=Rr();let Se;var Me=a(be),g=a(Me,!0);t(Me);var o=n(Me,2);{var c=U=>{var S=Fr(),de=a(S);t(S),K(()=>C(de,`${e(ee),r(()=>e(ee).done)??""}/${e(ee),r(()=>e(ee).total)??""}`)),i(U,S)};F(o,U=>{e(le),e(ee),r(()=>e(le).kind==="home"&&e(le).homeId==="tasks"&&e(ee).total>0)&&U(c)})}var z=n(o,2);t(be),K(()=>{Se=we(be,1,"tab svelte-gu3dqx",null,Se,{active:e(I)===e(le).id}),Ce(be,"aria-selected",(e(I),e(le),r(()=>e(I)===e(le).id))),Ce(be,"title",(e(le),r(()=>e(le).kind==="file"?e(le).path:e(le).title))),C(g,(e(le),r(()=>e(le).title))),Ce(z,"aria-label",(e(le),r(()=>`关闭 ${e(le).title}`)))}),M("click",z,Ft(()=>ca(e(le).id))),M("keydown",z,Ft(U=>U.key==="Enter"&&ca(e(le).id))),M("click",be,()=>Jt.activatePane(e(le).id)),M("dragstart",be,()=>Q(e(Le))),M("dragover",be,ka(()=>{})),M("drop",be,()=>G(e(Le))),M("auxclick",be,ka(U=>{U.button===1&&ca(e(le).id)})),i(ne,be)});var De=n(xe,2),V=a(De),fe=n(V,2);{var b=ne=>{var le=Jr(),Le=a(le);Ve(Le,1,()=>Aa,Se=>Se.homeId,(Se,Me)=>{var g=Ur(),o=a(g,!0),c=n(o);{var z=S=>{var de=Wr(),ke=a(de,!0);t(de),K(Oe=>C(ke,Oe),[()=>(e(Me),r(()=>O(e(Me).homeId)))]),i(S,de)},U=pt(()=>(e(Me),r(()=>O(e(Me).homeId))));F(c,S=>{e(U)&&S(z)})}t(g),K(()=>C(o,(e(Me),r(()=>e(Me).title)))),M("click",g,()=>{xa(e(Me).homeId),s(y,!1)}),i(Se,g)});var be=n(Le,4);t(le),M("click",be,()=>{Jt.openPaneTab({id:"git",kind:"git",title:"Git"}),s(y,!1)}),i(ne,le)};F(fe,ne=>{e(y)&&ne(b)})}t(De),Dt(De,ne=>s(j,ne),()=>e(j)),t(Be);var L=n(Be,2),d=a(L);{var W=ne=>{var le=it(),Le=Je(le);{var be=c=>{var z=it(),U=Je(z);{var S=ke=>{An(ke,{get sessionId(){return k()},get tick(){return e(E)}})},de=pt(()=>(l(),r(()=>l()("todos"))));F(U,ke=>{e(de)&&ke(S)})}i(c,z)},Se=c=>{var z=Nr(),U=Je(z);Kn(U,{get sessionId(){return k()},get tick(){return e(E)}});var S=n(U,4);{var de=Oe=>{er(Oe,{get sessionId(){return k()},get tick(){return e(E)}})},ke=pt(()=>(l(),r(()=>l()("worktrees"))));F(S,Oe=>{e(ke)&&Oe(de)})}i(c,z)},Me=c=>{var z=it(),U=Je(z);{var S=ke=>{ir(ke,{get sessionId(){return k()},get tick(){return e(E)}})},de=pt(()=>(l(),r(()=>l()("todos"))));F(U,ke=>{e(de)&&ke(S)})}i(c,z)},g=c=>{var z=it(),U=Je(z);{var S=ke=>{Fn(ke,{get tick(){return e(E)}})},de=pt(()=>(l(),r(()=>l()("skills"))));F(U,ke=>{e(de)&&ke(S)})}i(c,z)},o=c=>{var z=Hr(),U=Je(z);Ln(U,{get tick(){return e(E)}});var S=n(U,4);{var de=Oe=>{qn(Oe,{get tick(){return e(E)}})},ke=pt(()=>(l(),r(()=>l()("mcp"))));F(S,Oe=>{e(ke)&&Oe(de)})}i(c,z)};F(Le,c=>{e(A),r(()=>e(A).homeId==="tasks")?c(be):(e(A),r(()=>e(A).homeId==="files")?c(Se,1):(e(A),r(()=>e(A).homeId==="subs")?c(Me,2):(e(A),r(()=>e(A).homeId==="skills")?c(g,3):(e(A),r(()=>e(A).homeId==="config")&&c(o,4)))))})}i(ne,le)},ie=ne=>{vr(ne,{get childId(){return e(A),r(()=>e(A).childId)},get tick(){return e(E)}})},pe=ne=>{br(ne,{get directory(){return e(A),r(()=>e(A).directory)},get path(){return e(A),r(()=>e(A).path)}})},qe=ne=>{Ar(ne,{get sessionId(){return e(A),r(()=>e(A).sessionId)},get messageId(){return e(A),r(()=>e(A).messageId)},get partId(){return e(A),r(()=>e(A).partId)},get tick(){return e(E)}})},Pe=ne=>{Br(ne,{get sessionId(){return k()},get tick(){return e(E)}})},oe=ne=>{var le=Kr();i(ne,le)};F(d,ne=>{e(A),r(()=>{var le;return((le=e(A))==null?void 0:le.kind)==="home"})?ne(W):(e(A),r(()=>{var le;return((le=e(A))==null?void 0:le.kind)==="subagent"})?ne(ie,1):(e(A),r(()=>{var le;return((le=e(A))==null?void 0:le.kind)==="file"})?ne(pe,2):(e(A),r(()=>{var le;return((le=e(A))==null?void 0:le.kind)==="tool"})?ne(qe,3):(e(A),r(()=>{var le;return((le=e(A))==null?void 0:le.kind)==="git"})?ne(Pe,4):ne(oe,-1)))))})}t(L),K(ne=>{Ce(_e,"title",e(h)??k()),C(Ee,ne)},[()=>(e(h),ve(k()),r(()=>e(h)||(k()?"…"+k().slice(-8):"No session")))]),M("click",V,()=>s(y,!e(y))),i(ce,Te)};F(Z,ce=>{e(_)?ce(ye):ce($e,-1)})}t(D),K(()=>m=we(D,1,"inspector svelte-gu3dqx",null,m,{strip:e(_)})),i(P,D),et(),$()}function Vr(P,v){const f=v.trim().toLowerCase();return f?P.filter(q=>(q.title??"").toLowerCase().includes(f)||(q.agent??"").toLowerCase().includes(f)||q.id.toLowerCase().includes(f)):P}var Zr=p('<div class="empty svelte-wh9uu8">无匹配结果</div>'),Xr=p('<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>'),el=p('<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>'),tl=p('<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>'),al=p('<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>'),sl=p('<div class="error svelte-wh9uu8"> </div>'),nl=p('<div class="about mono svelte-wh9uu8"> </div>'),rl=p('<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 ll(P,v){Xe(v,!1);const f=()=>ze(Pa,"$page",$),q=()=>ze(sa,"$backends",$),B=()=>ze(ft,"$sessionList",$),l=()=>ze(Va,"$currentBackendId",$),x=()=>ze(Ma,"$can",$),[$,w]=ot(),h=u(),T=u(),I=u(),A=u(),N=u(),_=u(),k=u(),E=u();let ae=Ae(v,"open",8,!1);const Y=us();let J=u(""),R=u(0),Q=u(""),G=u(""),y=u(null),j=u([]),se=u(null);function te(b,L,d){const W=d.trim().toLowerCase();return W?b.toLowerCase().includes(W)||L.toLowerCase().includes(W):!0}const ee=[{name:"new-session",description:"New session"},{name:"toggle-panel",description:"Collapse / expand the agent panel"},{name:"cycle-accent",description:"Cycle accent color"}];function ge(b){var d,W,ie;const L=b.replace(/[^a-zA-Z0-9 ]/g," ").trim().split(/[\s-]+/).filter(Boolean);return((((d=L[0])==null?void 0:d[0])??"")+(((W=L[1])==null?void 0:W[0])??((ie=L[0])==null?void 0:ie[1])??"")).toUpperCase()||b.slice(0,2).toUpperCase()}function re(b,L,d,W,ie){const pe=[];let qe=0;if(b.length){pe.push({type:"group",label:"Agents",icon:"◆"});for(const oe of b)pe.push({type:"agent",agent:oe,selectableIndex:qe++})}if(L.length){pe.push({type:"group",label:"Sessions",icon:"#"});for(const oe of L)pe.push({type:"session",session:oe,selectableIndex:qe++})}const Pe=[...d.map(oe=>({...oe,kind:"backend"})),...W.map(oe=>({...oe}))];if(Pe.length){pe.push({type:"group",label:"Commands",icon:"/"});for(const oe of Pe){const ne=oe.kind==="backend"&&!ie;pe.push({type:"command",command:oe,disabled:ne,selectableIndex:ne?void 0:qe++})}}return pe}let H=null,O=u();function D(b){H=document.activeElement,b.focus()}function m(){var b;Y("close"),s(J,""),s(Q,""),(b=H==null?void 0:H.focus)==null||b.call(H),H=null}function Z(b){ra(`/${b}/`),m()}function ye(){const b=l()??"opencode",L=Tt(b),d=Vt[(Vt.indexOf(L)+1)%Vt.length];da(b,d)}async function $e(b){ua(b);try{await ea(b)}catch{}m()}async function ce(b){if(b==="cycle-accent"){ye(),m();return}if(b==="new-session"){Bt.set(!0),m();return}if(b==="toggle-panel"){Ot.update(L=>!L),m();return}if(!(!e(h)||e(G))){s(G,b),s(Q,"");try{await Ie.runCommand({sessionId:e(h),command:b}),m()}catch(L){s(Q,`/${b} failed: ${L.message}`)}finally{s(G,"")}}}function Te(b){b.type==="agent"&&b.agent?$e(b.agent.id):b.type==="session"&&b.session?Z(b.session.id):b.type==="command"&&!b.disabled&&b.command&&ce(b.command.name)}function he(b){if(b.key==="Escape"){m();return}if(b.key==="Tab"){_e(b);return}if(e(E)!==0){if(b.key==="ArrowDown"){b.preventDefault(),s(R,Math.min(e(R)+1,e(E)-1)),je();return}if(b.key==="ArrowUp"){b.preventDefault(),s(R,Math.max(e(R)-1,0)),je();return}if(b.key==="Enter"){const L=e(k).find(d=>d.selectableIndex===e(R));L&&(b.preventDefault(),Te(L))}}}function _e(b){if(b.key!=="Tab"||!e(O))return;const L=Array.from(e(O).querySelectorAll("input, button:not(:disabled)"));if(L.length===0)return;const d=L[0],W=L[L.length-1];b.shiftKey&&document.activeElement===d?(b.preventDefault(),W.focus()):!b.shiftKey&&document.activeElement===W&&(b.preventDefault(),d.focus())}async function je(){await ps();const b=document.querySelector(".palette .row.active");b==null||b.scrollIntoView({block:"nearest"})}function Ee(b,L){return L?"Open a session first":(b==null?void 0:b.description)??""}X(()=>(ve(ae()),e(y),Ie),()=>{ae()&&!e(y)&&Ie.version().then(b=>{s(y,{version:b.version,uptime:b.uptime})}).catch(()=>{})}),X(()=>f(),()=>{s(h,f().params.sessionId)}),X(()=>q(),()=>{var b;s(T,((b=q())==null?void 0:b.backends)??[])}),X(()=>(e(T),e(J)),()=>{s(I,e(T).filter(b=>te(b.name??b.id,b.id,e(J))))}),X(()=>(B(),e(J)),()=>{s(A,Vr(B(),e(J)))}),X(()=>(ve(ae()),l(),e(se),x(),Ie),()=>{ae()&&l()&&l()!==e(se)&&(s(se,l()),x()("commands")?Ie.commands(l()).then(b=>{s(j,b)}).catch(()=>{s(se,null)}):s(j,[]))}),X(()=>(e(j),e(J)),()=>{s(N,e(j).filter(b=>te(b.name,b.description,e(J))))}),X(()=>e(J),()=>{s(_,ee.filter(b=>te(b.name,b.description,e(J))))}),X(()=>(e(I),e(A),e(N),e(_),e(h)),()=>{s(k,re(e(I),e(A),e(N),e(_),e(h)))}),X(()=>e(k),()=>{s(E,e(k).filter(b=>b.selectableIndex!=null).length)}),X(()=>(e(R),e(E)),()=>{s(R,e(E)?Math.max(0,Math.min(e(R),e(E)-1)):-1)}),X(()=>e(J),()=>{e(J),s(R,0)}),at();var Be={close:m};Ze();var xe=it(),De=Je(xe);{var V=b=>{var L=rl(),d=a(L),W=n(d,2),ie=a(W),pe=a(ie),qe=a(pe);zt(qe,{name:"search",size:14}),t(pe);var Pe=n(pe,2);ht(Pe),ha(Pe,o=>D==null?void 0:D(o)),Ct(()=>mt(Pe,()=>e(J),o=>s(J,o))),Ct(()=>M("keydown",Pe,he)),At(2),t(ie);var oe=n(ie,2),ne=a(oe);{var le=o=>{var c=Zr();i(o,c)},Le=o=>{var c=it(),z=Je(c);Ve(z,1,()=>e(k),U=>{var S,de,ke;return((S=U.agent)==null?void 0:S.id)??((de=U.session)==null?void 0:de.id)??((ke=U.command)==null?void 0:ke.name)??U.label??""},(U,S)=>{var de=it(),ke=Je(de);{var Oe=me=>{var ue=Xr(),Ke=a(ue),He=a(Ke,!0);t(Ke);var nt=n(Ke,2),Ge=a(nt,!0);t(nt),t(ue),K(()=>{C(He,(e(S),r(()=>e(S).icon))),C(Ge,(e(S),r(()=>e(S).label)))}),i(me,ue)},st=me=>{var ue=el();let Ke;var He=a(ue),nt=a(He,!0);t(He);var Ge=n(He,2),We=a(Ge,!0);t(Ge);var Fe=n(Ge,2),Ne=a(Fe,!0);t(Fe),t(ue),K($t=>{Ke=we(ue,1,"row svelte-wh9uu8",null,Ke,{active:e(S).selectableIndex===e(R)}),Ce(ue,"aria-selected",(e(S),e(R),r(()=>e(S).selectableIndex===e(R)))),C(nt,$t),C(We,(e(S),r(()=>{var ct,yt;return((ct=e(S).agent)==null?void 0:ct.name)??((yt=e(S).agent)==null?void 0:yt.id)??""}))),C(Ne,(e(S),q(),r(()=>{var ct,yt,Re;return((ct=e(S).agent)==null?void 0:ct.id)===((yt=q())==null?void 0:yt.activeId)?"active":((Re=e(S).agent)==null?void 0:Re.status)??""})))},[()=>(e(S),r(()=>{var $t,ct;return ge((($t=e(S).agent)==null?void 0:$t.name)??((ct=e(S).agent)==null?void 0:ct.id)??"")}))]),M("click",ue,()=>{e(S).agent&&$e(e(S).agent.id)}),M("mouseenter",ue,()=>{e(S).selectableIndex!=null&&s(R,e(S).selectableIndex)}),i(me,ue)},Ue=me=>{var ue=tl();let Ke;var He=n(a(ue),2),nt=a(He,!0);t(He);var Ge=n(He,2),We=a(Ge,!0);t(Ge),t(ue),K(Fe=>{Ke=we(ue,1,"row svelte-wh9uu8",null,Ke,{active:e(S).selectableIndex===e(R)}),Ce(ue,"aria-selected",(e(S),e(R),r(()=>e(S).selectableIndex===e(R)))),C(nt,Fe),C(We,(e(S),r(()=>{var Ne;return((Ne=e(S).session)==null?void 0:Ne.agent)??""})))},[()=>(e(S),r(()=>{var Fe,Ne;return((Fe=e(S).session)==null?void 0:Fe.title)??((Ne=e(S).session)==null?void 0:Ne.id.slice(-8))??""}))]),M("click",ue,()=>{e(S).session&&Z(e(S).session.id)}),M("mouseenter",ue,()=>{e(S).selectableIndex!=null&&s(R,e(S).selectableIndex)}),i(me,ue)},Qe=me=>{var ue=al();let Ke;var He=n(a(ue),2),nt=a(He,!0);t(He);var Ge=n(He,2),We=a(Ge,!0);t(Ge),t(ue),K(Fe=>{Ke=we(ue,1,"row svelte-wh9uu8",null,Ke,{active:e(S).selectableIndex===e(R),disabled:e(S).disabled}),ue.disabled=(e(S),e(G),r(()=>{var Ne;return e(S).disabled||e(G)===((Ne=e(S).command)==null?void 0:Ne.name)})),Ce(ue,"aria-selected",(e(S),e(R),r(()=>e(S).selectableIndex===e(R)))),C(nt,(e(S),r(()=>{var Ne;return((Ne=e(S).command)==null?void 0:Ne.name)??""}))),C(We,Fe)},[()=>(e(G),e(S),r(()=>{var Fe;return e(G)===((Fe=e(S).command)==null?void 0:Fe.name)?"运行中…":Ee(e(S).command,e(S).disabled)}))]),M("click",ue,()=>{e(S).command&&ce(e(S).command.name)}),M("mouseenter",ue,()=>{e(S).selectableIndex!=null&&s(R,e(S).selectableIndex)}),i(me,ue)};F(ke,me=>{e(S),r(()=>e(S).type==="group")?me(Oe):(e(S),r(()=>e(S).type==="agent")?me(st,1):(e(S),r(()=>e(S).type==="session")?me(Ue,2):(e(S),r(()=>e(S).type==="command")&&me(Qe,3))))})}i(U,de)}),i(o,c)};F(ne,o=>{e(k),r(()=>e(k).length===0)?o(le):o(Le,-1)})}var be=n(ne,2);{var Se=o=>{var c=sl(),z=a(c,!0);t(c),K(()=>C(z,e(Q))),i(o,c)};F(be,o=>{e(Q)&&o(Se)})}var Me=n(be,2);{var g=o=>{var c=nl(),z=a(c);t(c),K(()=>C(z,`ocrc v${e(y),r(()=>e(y).version)??""} · uptime ${e(y),r(()=>e(y).uptime)??""}`)),i(o,c)};F(Me,o=>{e(y)&&o(g)})}t(oe),t(W),Dt(W,o=>s(O,o),()=>e(O)),t(L),M("click",d,m),M("keydown",W,_e),i(b,L)};F(De,b=>{ae()&&b(V)})}i(P,xe),ws(v,"close",m);var fe=et(Be);return w(),fe}var il=p('<div class="empty svelte-cfrpez">正在加载 agent…</div>'),ol=p('<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>'),cl=p('<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>'),vl=p('<button class="recent svelte-cfrpez" type="button"><span class="recent-name svelte-cfrpez"> </span> <span class="recent-dir mono svelte-cfrpez"> </span></button>'),dl=p('<div><span class="recents-label mono svelte-cfrpez"> </span> <div class="recents-list svelte-cfrpez"></div></div>'),ul=p('<div class="error svelte-cfrpez"> </div>'),pl=p('<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 fl(P,v){Xe(v,!1);const f=()=>ze(sa,"$backends",l),q=()=>ze(ft,"$sessionList",l),B=()=>ze(Bt,"$newSessionOpen",l),[l,x]=ot(),$=u(),w=u(),h=u(),T=u();let I=u(""),A=u(""),N=u(""),_=u(!1),k=u(null),E=u(!1);function ae(O){const D=O.split(/[\s\-_:./]+/).filter(Boolean);return D.length>=2?(D[0][0]+D[1][0]).toUpperCase():O.slice(0,2).toUpperCase()}function Y(O){return ae((O==null?void 0:O.name)||(O==null?void 0:O.id)||"OC")}function J(O){return O==="online"||O==="connected"?"online":O==="connecting"||O==="reconnecting"?"connecting":O==="offline"?"offline":"online"}function R(){Bt.set(!1),s(k,null)}function Q(O){s(A,O),s(E,!1)}async function G(){const O=e(A).trim();if(!O){s(k,"需要填写工作目录");return}if(!e(_)){s(_,!0),s(k,null);try{await ea(e(I));const D=await Ie.createSession({directory:O});ft.set(await Ie.sessions()),ms.set(await Ie.workspaces()),R(),ra(`/${D.id}/`)}catch(D){s(k,D.message)}finally{s(_,!1)}}}function y(O){if(O.key==="Escape"){R();return}O.key==="Tab"&&ee(O)}let j=u();function se(O){return Array.from(O.querySelectorAll("button, input, [tabindex]")).filter(D=>!D.hasAttribute("disabled"))}function te(O){const D=document.activeElement,m=O.querySelector("input:not([disabled])")??se(O)[0];return m==null||m.focus(),{destroy(){var Z;(Z=D==null?void 0:D.focus)==null||Z.call(D)}}}function ee(O){if(!e(j))return;const D=se(e(j));if(D.length===0)return;const m=D[0],Z=D[D.length-1];O.shiftKey&&document.activeElement===m?(O.preventDefault(),Z.focus()):!O.shiftKey&&document.activeElement===Z&&(O.preventDefault(),m.focus())}X(()=>f(),()=>{var O;s($,((O=f())==null?void 0:O.backends)??[])}),X(()=>(f(),e($)),()=>{var O,D;s(w,((O=f())==null?void 0:O.activeId)??((D=e($)[0])==null?void 0:D.id)??"opencode")}),X(()=>(e(I),e(w)),()=>{s(I,e(I)||e(w))}),X(()=>(f(),e(I)),()=>{var O,D;s(h,((D=(O=f())==null?void 0:O.backends.find(m=>m.id===e(I)))==null?void 0:D.name)??e(I))}),X(()=>(q(),e(I)),()=>{s(T,(()=>{const O=new Set,D=[];for(const m of[...q()].sort((Z,ye)=>ye.lastActiveAt-Z.lastActiveAt))!(m.backendId===e(I)||!m.backendId&&e(I)==="opencode")||!m.directory||O.has(m.directory)||(O.add(m.directory),D.push({directory:m.directory,name:m.directory.replace(/\/+$/,"").split("/").pop()||m.directory}));return D})())}),at(),Ze();var ge=it();M("keydown",gt,y);var re=Je(ge);{var H=O=>{var D=pl(),m=a(D),Z=n(m,2),ye=a(Z),$e=n(a(ye),2),ce=a($e);zt(ce,{name:"close",size:14}),t($e),t(ye);var Te=n(ye,2),he=a(Te);{var _e=oe=>{var ne=il();i(oe,ne)},je=oe=>{var ne=cl(),le=n(a(ne),2);Ve(le,5,()=>e($),Le=>Le.id,(Le,be)=>{const Se=It(()=>(ve(Tt),e(be),r(()=>Tt(e(be).id)))),Me=It(()=>(e(be),e(I),r(()=>e(be).id===e(I))));var g=ol();let o;var c=a(g),z=a(c,!0);t(c);var U=n(c,2),S=a(U),de=a(S,!0);t(S),t(U);var ke=n(U,2),Oe=a(ke,!0);t(ke),t(g),K((st,Ue,Qe)=>{o=we(g,1,"agent-chip svelte-cfrpez",null,o,{selected:e(Me)}),Ce(g,"aria-checked",e(Me)),dt(c,`background:${ve(qt),ve(e(Se)),r(()=>qt[e(Se)])??""}; color:${ve(rt),ve(e(Se)),r(()=>rt[e(Se)])??""}; border-color:${ve(Mt),ve(e(Se)),r(()=>Mt[e(Se)])??""}`),C(z,st),we(U,1,`chip-status ${Ue??""}`,"svelte-cfrpez"),dt(U,`--dot:${ve(rt),ve(e(Se)),r(()=>rt[e(Se)])??""}`),C(de,Qe),C(Oe,(e(be),r(()=>e(be).name??e(be).id)))},[()=>(e(be),r(()=>Y(e(be)))),()=>(e(be),r(()=>J(e(be).status))),()=>(e(be),r(()=>J(e(be).status)))]),M("click",g,()=>{s(I,e(be).id)}),i(Le,g)}),t(le),t(ne),i(oe,ne)};F(he,oe=>{e($),r(()=>e($).length===0)?oe(_e):oe(je,-1)})}var Ee=n(he,2),Be=n(a(Ee),2),xe=n(a(Be),2);ht(xe);var De=n(xe,2);t(Be);var V=n(Be,2);{var fe=oe=>{var ne=dl();let le;var Le=a(ne),be=a(Le);t(Le);var Se=n(Le,2);Ve(Se,5,()=>e(T),Me=>Me.directory,(Me,g)=>{var o=vl(),c=a(o),z=a(c,!0);t(c);var U=n(c,2),S=a(U,!0);t(U),t(o),K(()=>{Ce(o,"title",(e(g),r(()=>e(g).directory))),C(z,(e(g),r(()=>e(g).name))),C(S,(e(g),r(()=>e(g).directory)))}),M("click",o,()=>Q(e(g).directory)),i(Me,o)}),t(Se),t(ne),K(()=>{le=we(ne,1,"recents svelte-cfrpez",null,le,{open:e(E)}),C(be,`recent · ${e(h)??""}`)}),i(oe,ne)};F(V,oe=>{e(T),r(()=>e(T).length>0)&&oe(fe)})}t(Ee);var b=n(Ee,2),L=n(a(b),2);ht(L),t(b);var d=n(b,2);{var W=oe=>{var ne=ul(),le=a(ne,!0);t(ne),K(()=>C(le,e(k))),i(oe,ne)};F(d,oe=>{e(k)&&oe(W)})}t(Te);var ie=n(Te,2),pe=a(ie),qe=n(pe,2),Pe=a(qe,!0);t(qe),t(ie),t(Z),Dt(Z,oe=>s(j,oe),()=>e(j)),ha(Z,oe=>te==null?void 0:te(oe)),t(D),K(oe=>{pe.disabled=e(_),qe.disabled=oe,C(Pe,e(_)?"Creating…":"Create")},[()=>(e(_),e(A),r(()=>e(_)||!e(A).trim()))]),M("click",m,R),M("click",$e,R),mt(xe,()=>e(A),oe=>s(A,oe)),M("focus",xe,()=>{s(E,!0)}),M("click",De,()=>s(E,!e(E))),mt(L,()=>e(N),oe=>s(N,oe)),M("click",pe,R),M("click",qe,G),i(O,D)};F(re,O=>{B()&&O(H)})}i(P,ge),et(),x()}const hl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH6gkcFAMCstghUQAADE5JREFUeNrdm9lzW8eVxn/dd8MOggR3SqQWSyIlyrFlWbGVuOxxTWaqspQrVXnJU2r+wkzKqWSexk4yih3Hlmwp2mVtFPcVywXu2nnoC5HWYoEAKI5yqiCUQFzcPt855ztL3xZKKRIxgAwwABwETgCHks9fZYmBeeBy8qoDXvI5IgFAAOPA28C7wCRQBgrJ315lUYCbgPAP4G/AJWAJUCbawgeAD4CPgHOJ8q+65Z8UD23gaWAQ+DMwZ6Kt/GPg12jrpwC536vdA3HQhh5Eh7kB/MEEjqCtfw5I8+q7/PdJi+d+CKwByybwc2AWyO/36l6SiETXE8AHQin1OZr0hvd7ZS9ZloB7QilVRceHtdtfULu9oAPZw3gMAE8opaLkPru6V4wiVGrPQFBoJraE3CsQFEka3DXjK2AzCnkUNqnFMbFSPV+kAlJSMmGm6DcsLNFzGAQgzE6uDJViPvT4k7vBTc+lFkcoeuuuCkhLyWt2lvcyJaadLGnR++y8awAUEKFw44hHgcdnzS1u+S5bUUgvA0IBlhAMGw7rkY8tRzhuZXvuCbsGQACOkJxO5RkwLMatFL+rLvP3ZoWNHoMQKsVy5PPb6jIpIfmvvgnKpoXZQ1/rKAQEkBKSSSvNz3JlyobFWM3hU3eDR6GHr+KeLE4Bvoq57bt86m7wmpPh37Nl+mRHy+4dAI8vFoJJK01OmgwYFv2Gxf/U1/jWd2n0CASAhoq54tX4Y22VGSdHzs72zAt6AuWAYfFepsSY5WAKwR9rq9zyXZoq7llALEUef21s8XWzStmwGDacnvxuz2jVFpJDVobf9I3xUX6IY3YGu4c5PFKwFPp8XF3hpufSK//qaV5JC8kRK8MvC8P8qjDCjJ0l1cPUVY1DLjS2uOrVqURBTwi3d2ySiC0kJ+0cIq/T5X9Xl7np61qhWwmS+uOrZoU3UnneTBe6VqDnAIAmx2k7R6ogiZXi49oK1/w6jbh7TlAovmxWmG3kOJXKYQijqzDbEwBAFzGTVppfF0cxhSSuLnHFqxN0mR0ipbjh17ns1diKQhxDYnRRHD0TgCjxVqPLoZiTEONPc4N4KqYaR9wPGgSqcz9QQE1FzCmPW6FLWkmsALwgIgxjIqVAgRBgSIllShzbwLYMDONpoJ4CII5haRPCGAaLkLL0j3UqlhDMOFlq8QBLocfvaxGLobd7Fk/6VYlABYrFzQaf1VcJ/AaiFrNV83GbAUEQoZRCSq14Nm3Rl3col9L0Fx1syyCdMnEsAyGeAUAUw7WHsF6DmQMwNQIZp7tGxxGSk06Oj/JDLEU+F9wtViN/16YXkcIKQK2HLK9t8Umlyf2Khb/ps1H1qbsBfgKAYWgA8lmL/mKK8aEck2N5hgcyHJ8qMTqYxTTEdwFQaMvfmIeLd+DhKnz4Ohwdg2yXdUfJsHgrXWQ9CmnEMRcam7hJF9mW8s0Ycz3CWY5Q95rU7vl8tRDyjadQkSJWoJ4ILYFACJBSkHYMxgazvD07TC5jMTyQQT0JAIBS4AVa+fWa/n8QwYkJyKU6B0AA/dLig2yJpchjMwq42KwSvgiCGIz1EOOBj/Wth/EgQKyGqGqI14hpxPp6IcTToap01lAKanWwLYP+YopizsE0BILnkKAhIQhhbg3+75rmAKU0CNkUyA7jwRSCcTPFv2X6WQx9HoUeS6HP8/xABAq5GmJdb2Jdb2LM+Yi1CBEorawUGC9cjEApRSFnM324xLnTI4wPZZHJdc8EQAFCakJ8uAJ/vgp+qPnhxAQU0iA7LPAUMO3k+DDbz02/zp/qm2zGwbOVXwuxvmlgX3IxH/oIT2lX2mV2klJwaKLIf5w/yOvHyxRy9rZR2lnwo8QT6k2ouDA7CUPFztJkq5U+5eT4RW6IB0GTa16Et7M+iBRyJcT+poHzRR25FCB81RETSynoL6Q4e3KIn7w7+R3l2wIAIIx0avziFmy5sLoFZ4/B4REdLp3IsGFzPt3HNa9GNY6447uPlTfmA+zLDeyLrlbeU9vodQD4yaP9nJsdYaScwXxiwW0BIIUujla2wPWg1tDvQQgjJShkwNylN1hCctBK8Z+5Mg/CJmuRT6UZIJYC7G8a2F+7mHOBbgM75BwpBfmszZmZIU4fL2MZT3enbZfCLYatN+HqQ6g1dZZ44zDMHIShPjDl7oqmlJS8lS5w1e/jbt3lykoTcUlb3pxPlO9QFODYBq9N9nH6eJkDIzmEbKMSbAeIMIJ7S7BehfsrML8OZ47CkRFI2e2DIBHkhcmbMs+VNYdvv2wQf+Uil7tTXiOgKGQt3j87zrHJPhzr2S7acTMURrBRgyv3YasOi5vw5hENwmgJ0m0UTnGsqNR81m9UaXxewbpUJ1wOIOi+z0+nTA6O5Hl7doTRwexzv9cxAK00WHHh1jxs1mFxA05N6iwxOQT5NKSf4xFeELG46nLl5iqf/G2Om5eWUfN+95ZPgB0sZXjr1DBHDhTJZZ6/69d1O2xI7Q2LG9oj5tbg7iKcnITpCQ1ELq2/p8k0JggV9xcq/OXiAp9+McdXV1dYWnNRPdpdsSzJ0YNF3j87Tqlgf+9P9mQeIIQmHS+A+8s6W9xegOsT2htmDsLBQUhZMasbDS7fWuPCpUX++vUCN+9tUnUDYtVd17ltEMHUWJ6zJ4c4dXSAjPP9e749G4gIkmYq0mHR9BOPWIU7i3B0VJFzmty+84gvLz/gyu0V5ldcGk1dCMseaC8FpByLMyfHOHd6jFLBeeYMYE8AaIHQ0sMPYHkLKg1Y2IDrDyFjxdy963P/QcT6usD3JULECBWjlEIgOnMDpbtBJ+VweHKQc6cnmD48gNVGcbJnI7EWSfoBLKzDyiYYwqZaGSR0UmRKG5juKqFXJQqbqDgApZJJ7y7JQBhYts3QUIn33j7CD04M0V+028JyzwB4vDahXTNWglhZONkyTrpEFJQJcsPEgYvf2CBobhB6VQKvilLxtvri8T9PiAIlENLAdIqMjw/zozfG+Mk7wxwaS7ddme45AN/VQS8YaSANE8NOo1SElRkg9CqEXlW/ApcobBAFDeLQI458lIqSEJMIw8IwHaSVxU6VKBT7OTNb5qc/LjEz5ZDPtO89LwWA70grzQuJYTqaAA0H08mjIp849AgD9zEYUdjYDhEEUhpIw0FaGSynQL44wKnDOd4/k+LMMYtidnc08vIB2IlFq8kTBoZpgJUCBWYcEoeeBiQOUHGIStplPfkxkYZNJm0zNZriwzMG509CaZfKPxeAfXtQMAFEShNhG0AaoRRPPo6lEDiWYGpY8LOzgndOwGh/Zwnk2QAkxNXK7fshrZS4UymlIFbQn9eTqXdOwLvTMNYPVod7GE8BIAUUs7rHX6/qm/b++aQ2RSWPciWKmwaMleD0FPzwOLxxRDdeu51FPBcAgR5zTQ3Ba2MagHpTzwL3UwwJKRMGC3B+Gs7PaA/oy3Y+m3wmAK2bzRzQJa1jwsVvdUXnhy+fG1rPCpZyek3njmvrT5R1g9XpdHqnCKWe3qiLYl3H313UTc3le3Djke74Gn6ysA6r1hcprJSeRlsmDOTh2LhWfuYAHB6Fch6cLrfrXggA6JjzAz36ujEH/3gAd5f0hsnKVtLwJNNsIbaLnd2sS+2I8Vb4pW0oFzSxHRqG2SkdjsN9etrUC6u3BcBOcT0NxFpFA3H1IdxZ0JNiPwA/0l4Tx/r9RT+Y7GkgpSYwQ+pN2EJGK/r6IT1YmSjrOE87et64F9IWAC0WDiM9Ft+q69H4/IbeM7i3pMHYcjVxBhFPoyC23yxTK1XK6vw9VISJAT08KeW1m/flNChS9t7quwZgp8RKW7kVHpsJGBUXXF9/Vk9ezR0bwJax7cLZlH5lHK1oIa2JrpQD29Lf7XS/Yc8B2CkKDUYYQRwlXhJDw9MANPztctdOrC6EjnMnsa4htXsbsvuU1ikAHT0u/73AJEy+c765s7oUe5BBOlkmoLo6MNHOHR4DsN/qPi0B4En0Wbr1vbiDoMeu1VtZB65K4C/Awn6vZh/kAfAHCfwvcAOosn/N38sUBdSAK8DHJvB3tg8TvoM+OPmvdmq0JTHQBD4DPgFum+gDhJ8mf1xDHy8dTYD4V5IIWAU+B36LPjpbNYEQuJcgswxcBWaAMSDL/1sOa1sUUEmUvw9cQB+gfkSSBltflOh0mEWfJJ1NQHjVzxFHwF3gOpr41tCnySOAfwK44B4xUUtDyQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wOS0yOFQyMDowMzowMiswMDowMJrHwKAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDktMjhUMjA6MDM6MDIrMDA6MDDrmngcAAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAXdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADQ4h2CHLQAAABZ0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA0OH/PR6AAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9pY2+XMDjOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTc5MDYyNTc4MrLkzeUAAAASdEVYdFRodW1iOjpTaXplADk2NjJCQpTWNTIAAAAadEVYdFRodW1iOjpVUkkAZmlsZTovL2xhcmsuaWNvGFy81AAAAABJRU5ErkJggg==";var bl=na('<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>'),_l=na('<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=p('<img alt="飞书 / Lark"/>');function Ra(P,v){let f=Ae(v,"channel",8),q=Ae(v,"size",8,30);var B=it(),l=Je(B);{var x=h=>{var T=bl();K(()=>{Ce(T,"width",q()),Ce(T,"height",q())}),i(h,T)},$=h=>{var T=_l();K(()=>{Ce(T,"width",q()),Ce(T,"height",q())}),i(h,T)},w=h=>{var T=ml();K(()=>{Ce(T,"src",hl),Ce(T,"width",q()),Ce(T,"height",q()),dt(T,`border-radius: ${q()*.18}px`)}),i(h,T)};F(l,h=>{f()==="telegram"?h(x):f()==="wechat"?h($,1):h(w,-1)})}i(P,B)}var gl=p('<button><span class="ch-logo svelte-b8emeh"><!></span> <span class="ch-name"> </span> <span> </span></button>'),yl=p('<span class="note svelte-b8emeh"> </span>'),wl=p('<p class="hint svelte-b8emeh">自定义白名单已保存——用工作区切换器添加条目后再来这里勾选。</p>'),kl=p('<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>'),xl=p("<span> </span>"),Al=p('<div class="qr-expired svelte-b8emeh"><span>二维码已过期</span> <button class="copy svelte-b8emeh">刷新二维码</button></div>'),Il=p('<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),$l=p('<div class="pair-stopped svelte-b8emeh"><span>已停止配对。</span> <button class="copy svelte-b8emeh">重新开始</button></div>'),Sl=p('<p class="hint svelte-b8emeh">配对信息加载中…</p>'),ql=p('<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 Ml(P,v){Xe(v,!1);const f=()=>ze(aa,"$channelsOpen",q),[q,B]=ot(),l=u(),x=u(),$=u(),w=u();let h=u([]),T=u(),I=u(null),A=u(""),N=u(""),_=u(!1),k=u(Date.now()),E=u(!1),ae;async function Y(){try{s(h,(await Ie.channels()).channels??[]),!e(T)&&e(h).length>0&&s(T,e(h)[0].id)}catch{}}async function J(){s(E,!1);try{s(I,await Ie.pairQr())}catch{s(I,null)}}function R(){s(E,!0)}fa(()=>{Y(),J(),ae=setInterval(()=>s(k,Date.now()),1e3)}),Wt(()=>{ae&&clearInterval(ae)});function Q(m){return m==="telegram"?"Telegram":m==="wechat"?"微信":m==="lark"?"Lark":m}function G(){aa.set(!1)}function y(m){s(T,m),s(A,""),s(N,"")}async function j(m){s(h,e(h).map(Z=>Z.id===m.id?{...Z,enabled:!Z.enabled}:Z));try{await Ie.updateChannel(m.id,{enabled:!m.enabled})}catch{}}async function se(m,Z){s(h,e(h).map(ye=>ye.id===m.id?{...ye,replyGranularity:Z}:ye));try{await Ie.updateChannel(m.id,{replyGranularity:Z})}catch{}}async function te(m){if(!e(A).trim()){s(N,"请输入凭证内容");return}try{await Ie.updateChannel(m.id,{credentials:{token:e(A).trim()}}),s(N,"已保存——重启实例后生效"),s(A,"")}catch{s(N,"保存失败")}}async function ee(){if(e(l)){try{await Ie.resetChannel(e(l).id)}catch{}await Y()}}async function ge(){if(e(I))try{await navigator.clipboard.writeText(e(I).url),s(_,!0),setTimeout(()=>s(_,!1),1600)}catch{}}function re(m){m.key==="Escape"&&G()}X(()=>(e(h),e(T)),()=>{s(l,e(h).find(m=>m.id===e(T))??e(h)[0])}),X(()=>(e(I),e(k)),()=>{var m;s(x,(m=e(I))!=null&&m.expiresAt?Math.max(0,e(I).expiresAt-e(k)):null)}),X(()=>e(x),()=>{s($,e(x)!==null&&e(x)<=0)}),X(()=>e(x),()=>{s(w,e(x)===null?"":`${Math.floor(e(x)/6e4)}:${String(Math.floor(e(x)%6e4/1e3)).padStart(2,"0")}`)}),at(),Ze();var H=it();M("keydown",gt,re);var O=Je(H);{var D=m=>{var Z=ql(),ye=a(Z),$e=n(ye,2),ce=a($e),Te=n(a(ce),2);t(ce);var he=n(ce,2),_e=a(he);Ve(_e,5,()=>e(h),b=>b.id,(b,L)=>{var d=gl();let W;var ie=a(d),pe=a(ie);Ra(pe,{get channel(){return e(L),r(()=>e(L).channel)},size:22}),t(ie);var qe=n(ie,2),Pe=a(qe,!0);t(qe);var oe=n(qe,2);let ne;var le=a(oe,!0);t(oe),t(d),K(Le=>{var be;W=we(d,1,"ch svelte-b8emeh",null,W,{sel:((be=e(l))==null?void 0:be.id)===e(L).id}),C(Pe,Le),ne=we(oe,1,"ch-state svelte-b8emeh",null,ne,{on:e(L).enabled}),C(le,(e(L),r(()=>e(L).enabled?"已启用":"已停用")))},[()=>(e(L),r(()=>Q(e(L).channel)))]),M("click",d,()=>y(e(L).id)),i(b,d)}),t(_e);var je=n(_e,2);{var Ee=b=>{var L=kl(),d=a(L),W=a(d),ie=a(W,!0);t(W);var pe=n(W,2);let qe;t(d);var Pe=n(d,2),oe=a(Pe);{var ne=We=>{var Fe=ta();K(()=>C(Fe,`${e(l),r(()=>{var Ne;return(Ne=e(l).live)!=null&&Ne.connected?"轮询运行中":"未在轮询"})??""}${e(l),r(()=>{var Ne;return(Ne=e(l).live)!=null&&Ne.username?` · @${e(l).live.username}`:""})??""}。
|
|
3
|
-
停用/启用在重启实例后生效。`)),i(We,Fe)},le=We=>{var Fe=ta("待接入:凭证保存后,通道本体在后续版本启用。");i(We,Fe)};F(oe,We=>{e(l),r(()=>e(l).channel==="telegram")?We(ne):We(le,-1)})}t(Pe);var Le=n(Pe,2),be=n(a(Le),2);ht(be);var Se=n(be,2),Me=a(Se),g=n(Me,2);{var o=We=>{var Fe=yl(),Ne=a(Fe,!0);t(Fe),K(()=>C(Ne,e(N))),i(We,Fe)};F(g,We=>{e(N)&&We(o)})}t(Se),t(Le);var c=n(Le,2),z=n(a(c),2),U=a(z);let S;var de=n(U,2);let ke;t(z),t(c);var Oe=n(c,2),st=n(a(Oe),2),Ue=a(st);let Qe;var me=n(Ue,2);let ue;t(st);var Ke=n(st,2);{var He=We=>{var Fe=wl();i(We,Fe)};F(Ke,We=>{e(l),r(()=>e(l).workspaces.mode==="custom")&&We(He)})}t(Oe);var nt=n(Oe,2),Ge=n(a(nt),2);t(nt),t(L),K(We=>{C(ie,We),qe=we(pe,1,"switch svelte-b8emeh",null,qe,{on:e(l).enabled}),Ce(pe,"aria-pressed",(e(l),r(()=>e(l).enabled))),Ce(be,"placeholder",(e(l),r(()=>e(l).channel==="telegram"?"BotFather token(留空保持不变)":"凭证(预留)"))),S=we(U,1,"opt svelte-b8emeh",null,S,{sel:e(l).replyGranularity==="standard"}),ke=we(de,1,"opt svelte-b8emeh",null,ke,{sel:e(l).replyGranularity==="detailed"}),Qe=we(Ue,1,"opt svelte-b8emeh",null,Qe,{sel:e(l).workspaces.mode==="all"}),ue=we(me,1,"opt svelte-b8emeh",null,ue,{sel:e(l).workspaces.mode==="custom"})},[()=>(e(l),r(()=>Q(e(l).channel)))]),M("click",pe,()=>j(e(l))),mt(be,()=>e(A),We=>s(A,We)),M("click",Me,()=>te(e(l))),M("click",U,()=>se(e(l),"standard")),M("click",de,()=>se(e(l),"detailed")),M("click",Ue,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"all"}}).then(Y)),M("click",me,()=>Ie.updateChannel(e(l).id,{workspaces:{mode:"custom",dirs:[]}}).then(Y)),M("click",Ge,ee),i(b,L)};F(je,b=>{e(l)&&b(Ee)})}t(he);var Be=n(he,2),xe=a(Be);{var De=b=>{var L=Il(),d=Je(L),W=a(d),ie=a(W),pe=n(a(ie));{var qe=c=>{var z=xl();let U;var S=a(z,!0);t(z),K(()=>{U=we(z,1,"cd mono svelte-b8emeh",null,U,{expired:e($)}),C(S,e($)?"已过期":`· ${e(w)}`)}),i(c,z)};F(pe,c=>{e(x)!==null&&c(qe)})}t(ie),At(2),t(W);var Pe=n(W,2);t(d);var oe=n(d,2);let ne;var le=a(oe);ja(le,()=>(e(I),r(()=>e(I).svg)));var Le=n(le,2);{var be=c=>{var z=Al(),U=n(a(z),2);t(z),M("click",U,J),i(c,z)};F(Le,c=>{e($)&&c(be)})}t(oe);var Se=n(oe,2),Me=n(a(Se),4),g=n(Me,2),o=a(g,!0);t(g),t(Se),K(()=>{ne=we(oe,1,"qr-big svelte-b8emeh",null,ne,{dim:e($)}),C(o,e(_)?"✓ 已复制":"复制链接")}),M("click",Pe,R),M("click",Me,J),M("click",g,ge),i(b,L)},V=b=>{var L=$l(),d=n(a(L),2);t(L),M("click",d,J),i(b,L)},fe=b=>{var L=Sl();i(b,L)};F(xe,b=>{e(I)&&!e(E)?b(De):e(E)?b(V,1):b(fe,-1)})}t(Be),t($e),t(Z),M("click",ye,G),M("click",Te,G),M("click",$e,Ft(function(b){xs.call(this,v,b)})),M("click",Z,G),i(m,Z)};F(O,m=>{f()&&m(D)})}i(P,H),et(),B()}var Tl=p('<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 zl(P,v){Xe(v,!1);const f=()=>ze(Et,"$plusMenuOpen",q),[q,B]=ot();let l=Ae(v,"anchor",8,null);function x(){Et.set(!1),Bt.set(!0)}function $(){Et.set(!1),Lt.set(!0)}function w(){Et.set(!1)}function h(N){N.key==="Escape"&&w()}Ze();var T=it();M("keydown",gt,h);var I=Je(T);{var A=N=>{var _=Tl(),k=a(_),E=n(k,2),ae=a(E),Y=n(ae,2),J=a(Y),R=a(J);zt(R,{name:"search",size:14}),t(J),At(4),t(Y),t(E),t(_),K(Q=>dt(E,Q),[()=>(ve(l()),r(()=>l()?`top:${l().getBoundingClientRect().bottom+6}px; left:${l().getBoundingClientRect().left}px`:""))]),M("click",k,w),M("click",ae,x),M("click",Y,$),i(N,_)};F(I,N=>{f()&&N(A)})}i(P,T),et(),B()}var Cl=p('<button class="scrim svelte-9zfapn" aria-label="Close"></button>'),El=p('<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>'),Ll=p('<div class="dial svelte-9zfapn" role="menu"></div>'),Bl=p('<div><!> <!> <button><span aria-hidden="true">+</span></button></div>');function Dl(P,v){Xe(v,!1);let f=u(!1);const q=()=>s(f,!e(f)),B=()=>s(f,!1),l=[{label:"新建会话",icon:"+",run:()=>Bt.set(!0)},{label:"搜索与命令",icon:"⌕",run:()=>Lt.set(!0)}];function x(E){E.run(),B()}function $(E){E.key==="Escape"&&e(f)&&B()}Ze();var w=Bl();M("keydown",gt,$);let h;var T=a(w);{var I=E=>{var ae=Cl();M("click",ae,B),i(E,ae)};F(T,E=>{e(f)&&E(I)})}var A=n(T,2);{var N=E=>{var ae=Ll();Ve(ae,5,()=>l,Y=>Y.label,(Y,J)=>{var R=El(),Q=a(R),G=a(Q,!0);t(Q);var y=n(Q,2),j=a(y,!0);t(y),t(R),K(()=>{C(G,e(J).label),C(j,e(J).icon)}),M("click",R,()=>x(e(J))),i(Y,R)}),t(ae),i(E,ae)};F(A,E=>{e(f)&&E(N)})}var _=n(A,2);let k;t(w),K(()=>{h=we(w,1,"fab-root svelte-9zfapn",null,h,{open:e(f)}),k=we(_,1,"fab svelte-9zfapn",null,k,{rot:e(f)}),Ce(_,"aria-label",e(f)?"关闭菜单":"快捷操作"),Ce(_,"aria-expanded",e(f))}),M("click",_,q),i(P,w),et()}var Pl=p('<p class="rejected svelte-9s687p"> </p>'),jl=p('<p class="rejected svelte-9s687p">上一次的令牌被服务器拒绝了——请在下方重新配对。</p>'),Ol=p('<span class="chip mono svelte-9s687p"> </span>'),Fl=p("<span> </span>"),Rl=p('<button class="btn enter svelte-9s687p">配对此浏览器并进入</button>'),Wl=p('<div class="qr-re svelte-9s687p"><span>已过期</span> <button class="btn svelte-9s687p">刷新二维码</button></div>'),Ul=p('<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),Jl=p('<p class="hint dim svelte-9s687p">配对信息加载中…(若宿主机未启用配对组件,请用下方令牌粘贴)</p>'),Nl=p('<span class="ok svelte-9s687p"> </span>'),Hl=p('<span class="off svelte-9s687p">未连接</span>'),Kl=p('<span class="off svelte-9s687p">待接入</span>'),Ql=p('<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>'),Gl=p('<!> <p class="hint dim svelte-9s687p">🔒 通道状态仅展示;凭证与回复粒度等配置在配对后的「机器人管理」面板(标题栏 🤖)中。</p>',1),Yl=p('<p class="hint dim svelte-9s687p">…</p>'),Vl=p('<div class="err svelte-9s687p"> </div>'),Zl=p('<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 Xl(P,v){Xe(v,!1);const f=()=>ze(Za,"$pairHint",q),[q,B]=ot(),l=u(),x=u(),$=u(),w=u(),h=u();let T=Ae(v,"status",8,"pairing"),I=u(""),A=u(""),N=u(!1),_=u(null),k=u(Date.now()),E=u(!1),ae;async function Y(){try{s(_,await Ie.pairOnboarding()),s(k,Date.now())}catch{s(_,null)}}const J={telegram:{name:"Telegram",note:"从 Telegram 打开这台机器"},wechat:{name:"微信",note:"待接入(配置面板已预埋)"},lark:{name:"飞书 / Lark",note:"待接入(配置面板已预埋)"}};fa(()=>{Y(),ae=setInterval(()=>{s(k,Date.now()),e(x)&&Y()},1e3)}),Wt(()=>{ae&&clearInterval(ae)});async function R(){if(e(_))try{await navigator.clipboard.writeText(e(_).url),s(E,!0),setTimeout(()=>s(E,!1),1600)}catch{}}function Q(V){const fe=V.trim(),b=fe.match(/token=([^&#\s]+)/);return b?decodeURIComponent(b[1]):fe}async function G(){if(s(A,""),/[?#]pair=/.test(e(I))){s(A,await ga(e(I)));return}const V=Q(e(I));if(!V||V.length<16){s(A,"这看起来不是有效的令牌。");return}Xa(V)||s(A,"这看起来不是有效的令牌。")}X(()=>(e(_),e(k)),()=>{var V;s(l,(V=e(_))!=null&&V.expiresAt?Math.max(0,e(_).expiresAt-e(k)):null)}),X(()=>e(l),()=>{s(x,e(l)!==null&&e(l)<=0)}),X(()=>e(_),()=>{var V;s($,((V=e(_))==null?void 0:V.paired)??0)}),X(()=>e($),()=>{s(w,e($)>0)}),X(()=>e(l),()=>{s(h,e(l)===null?"":`${Math.floor(e(l)/6e4)}:${String(Math.floor(e(l)%6e4/1e3)).padStart(2,"0")}`)}),at(),Ze();var y=Zl(),j=a(y),se=n(a(j),2);{var te=V=>{var fe=Pl(),b=a(fe,!0);t(fe),K(()=>C(b,f())),i(V,fe)},ee=V=>{var fe=jl();i(V,fe)};F(se,V=>{f()?V(te):T()==="rejected"&&V(ee,1)})}var ge=n(se,2),re=a(ge),H=a(re),O=n(a(H),2);{var D=V=>{var fe=Ol(),b=a(fe);t(fe),K(()=>C(b,`${e(_),r(()=>e(_).host.hostname)??""} · ${e(_),r(()=>e(_).host.arch)??""}`)),i(V,fe)};F(O,V=>{e(_)&&V(D)})}t(H);var m=n(H,4);{var Z=V=>{var fe=Ul(),b=Je(fe),L=a(b);let d;var W=a(L),ie=n(W);{var pe=o=>{var c=Fl();let z;var U=a(c,!0);t(c),K(()=>{z=we(c,1,"mono cd svelte-9s687p",null,z,{expired:e(x)}),C(U,e(x)?"二维码已过期":`· ${e(h)}`)}),i(o,c)};F(ie,o=>{e(l)!==null&&o(pe)})}t(L);var qe=n(L,2);{var Pe=o=>{var c=Rl();M("click",c,()=>e(_)&&ga(e(_).url)),i(o,c)};F(qe,o=>{e(w)&&o(Pe)})}t(b);var oe=n(b,2),ne=a(oe);ja(ne,()=>(e(_),r(()=>e(_).svg)));var le=n(ne,2);{var Le=o=>{var c=Wl(),z=n(a(c),2);t(c),M("click",z,Y),i(o,c)};F(le,o=>{e(x)&&o(Le)})}t(oe);var be=n(oe,2),Se=n(a(be),4),Me=n(Se,2),g=a(Me,!0);t(Me),t(be),At(2),K(()=>{d=we(L,1,"wait svelte-9s687p",null,d,{done:e(w)}),C(W,`${e(w)?`✓ 已有 ${e($)} 台设备完成配对`:"等待手机连接"} `),C(g,e(E)?"✓ 已复制":"复制链接")}),M("click",Se,Y),M("click",Me,R),i(V,fe)},ye=V=>{var fe=Jl();i(V,fe)};F(m,V=>{e(_)?V(Z):V(ye,-1)})}t(re);var $e=n(re,2),ce=n(a($e),4);{var Te=V=>{var fe=Gl(),b=Je(fe);Ve(b,1,()=>(e(_),r(()=>e(_).channels)),L=>L.channel,(L,d)=>{var W=Ql(),ie=a(W),pe=a(ie);Ra(pe,{get channel(){return e(d),r(()=>e(d).channel)},size:30}),t(ie);var qe=n(ie,2),Pe=a(qe),oe=a(Pe),ne=n(oe);{var le=g=>{var o=Nl(),c=a(o);t(o),K(()=>C(c,`已连接 @${e(d),r(()=>e(d).live.username)??""}`)),i(g,o)},Le=g=>{var o=Hl();i(g,o)},be=g=>{var o=Kl();i(g,o)};F(ne,g=>{e(d),r(()=>{var o;return e(d).channel==="telegram"&&((o=e(d).live)==null?void 0:o.connected)})?g(le):(e(d),r(()=>e(d).channel==="telegram")?g(Le,1):g(be,-1))})}t(Pe);var Se=n(Pe,2),Me=a(Se,!0);t(Se),t(qe),At(2),t(W),K(()=>{C(oe,`${e(d),r(()=>{var g;return((g=J[e(d).channel])==null?void 0:g.name)??e(d).channel})??""} `),C(Me,(e(d),r(()=>{var g;return((g=J[e(d).channel])==null?void 0:g.note)??""})))}),i(L,W)}),At(2),i(V,fe)},he=V=>{var fe=Yl();i(V,fe)};F(ce,V=>{e(_)?V(Te):V(he,-1)})}t($e),t(ge);var _e=n(ge,2),je=n(a(_e),2),Ee=a(je);ht(Ee);var Be=n(Ee,2);{var xe=V=>{var fe=Vl(),b=a(fe,!0);t(fe),K(()=>C(b,e(A))),i(V,fe)};F(Be,V=>{e(A)&&V(xe)})}var De=n(Be,2);t(je),t(_e),At(2),t(j),t(y),K(V=>De.disabled=V,[()=>(e(I),r(()=>!e(I).trim()))]),mt(Ee,()=>e(I),V=>s(I,V)),M("keydown",Ee,V=>V.key==="Enter"&&G()),M("click",De,G),ks("open","toggle",_e,V=>s(N,V),()=>e(N)),i(P,y),et(),B()}var ei=p('<button class="backdrop svelte-12qhfyh" aria-label="Close"></button>'),ti=p('<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>'),ai=p('<div role="separator" aria-orientation="vertical" aria-label="调整检查器宽度"></div>'),si=p('<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></div></div> <!> <!> <!> <!> <!> <!>',1);function ui(P,v){Xe(v,!1);const f=()=>ze(Pa,"$page",h),q=()=>ze(sa,"$backends",h),B=()=>ze(Gt,"$inspectorOpen",h),l=()=>ze(Ot,"$leftPanelOpen",h),x=()=>ze(Jt,"$sidePane",h),$=()=>ze(Lt,"$paletteOpen",h),w=()=>ze(oa,"$auth",h),[h,T]=ot(),I=u();let A=u(!1),N=u(!1),_=u(),k=u(null);function E(){s(A,!1),Gt.set(!1)}function ae(){s(A,!e(A)),Gt.set(!1)}function Y(){Gt.update(c=>!c),s(A,!1)}function J(c){if((c.metaKey||c.ctrlKey)&&c.key.toLowerCase()==="k"){c.preventDefault(),Lt.set(!0);return}if((c.metaKey||c.ctrlKey)&&c.key.toLowerCase()==="b"){c.preventDefault(),Ot.update(z=>!z);return}if(c.key==="Escape"){if(xt(Et)){Et.set(!1);return}if(xt(Bt)){Bt.set(!1);return}E()}}let R=u(""),Q=null,G=u(264),y=u(380),j=u(null);try{s(G,Math.max(180,Math.min(520,Number(localStorage.getItem("ocrc.railW"))||264))),s(y,Math.max(280,Math.min(560,Number(localStorage.getItem("ocrc.inspW"))||380)))}catch{}function se(c,z){if(window.matchMedia("(max-width: 820px)").matches)return;z.preventDefault(),s(j,c);const U=z.clientX,S=c==="rail"?e(G):e(y),de=Oe=>{const st=c==="rail"?Oe.clientX-U:U-Oe.clientX,Ue=Math.max(c==="rail"?180:220,Math.min(520,S+st));c==="rail"?s(G,Ue):s(y,Ue)},ke=()=>{window.removeEventListener("pointermove",de),window.removeEventListener("pointerup",ke),s(j,null);try{localStorage.setItem("ocrc.railW",String(e(G))),localStorage.setItem("ocrc.inspW",String(e(y)))}catch{}};window.addEventListener("pointermove",de),window.addEventListener("pointerup",ke)}let te=u(null);async function ee(){e(te)&&(e(te).prompt(),await e(te).userChoice,s(te,null))}let ge=null,re=!1,H=0,O;async function D(c){if(!(re||Date.now()-H<2e3)){re=!0,H=Date.now();try{const{cards:z,lastSeq:U}=await Ie.history(c);Ia.set(!0),Zt(c,z,U),setTimeout(()=>Ia.set(!1),350),Q==null||Q.send({type:"subscribe",sessionId:c,sinceSeq:U})}catch(z){console.warn("[layout] resync failed",z)}finally{re=!1}}}function m(c){var U,S;if(xt(oa)!=="ready")return;if(as.set(c),Ts(c),!c){ya(void 0),ge=null;return}ya(c);const z=!((S=(U=xt(_t)[c])==null?void 0:U.order)!=null&&S.length);c===ge&&!z||(ge=c,Ie.history(c).then(({cards:de,lastSeq:ke})=>{Zt(c,de,ke),Q==null||Q.send({type:"subscribe",sessionId:c,sinceSeq:ke})}).catch(de=>{console.warn("[layout] history failed",de),Zt(c,[],0),Q==null||Q.send({type:"subscribe",sessionId:c})}))}function Z(){Q&&(Q.close(),Q=null),Ie.me().then(z=>{s(R,z.email)}).catch(()=>{}),Ie.sessions().then(z=>{ft.set(z)}).catch(()=>{}),es(),ts();const c=location.protocol==="https:"?"wss:":"ws:";Ms(z=>Q==null?void 0:Q.send(z)),Q=qs({url:`${c}//${location.host}/ws`,onReconnect:()=>{var z;if(ge){const U=((z=xt(_t)[ge])==null?void 0:z.lastSeq)??0;Q==null||Q.send({type:"subscribe",sessionId:ge,sinceSeq:U})}},onMessage:z=>{var U;if(z.type==="card"&&z.card){const S=z.card.sessionId,de=S?((U=xt(_t)[S])==null?void 0:U.lastSeq)??0:0;ss(z.card),S&&ns(de,z.card)&&(clearTimeout(O),O=setTimeout(()=>{D(S)},500))}(z.type==="hello"||z.type==="sessions")&&z.sessions&&(ft.set(z.sessions),zs(z.sessions)),z.type==="replayEnd"&&z.complete===!1&&typeof z.sessionId=="string"&&D(z.sessionId)}}),m(f().params.sessionId)}fa(()=>{const c=oa.subscribe(ue=>{ue==="ready"&&Z()}),z=ue=>{ue.preventDefault(),s(te,ue)};window.addEventListener("beforeinstallprompt",z);const U=window.matchMedia("(max-width: 820px)");s(N,U.matches);const S=ue=>{s(N,ue.matches),ue.matches||E()};U.addEventListener("change",S);const de=window.visualViewport,ke=()=>{!de||!e(_)||(window.scrollY!==0&&window.scrollTo(0,0),pa(_,e(_).style.height=`${Math.round(de.height)}px`),pa(_,e(_).style.transform=de.offsetTop>0?`translateY(${Math.round(de.offsetTop)}px)`:""))};ke(),de==null||de.addEventListener("resize",ke),de==null||de.addEventListener("scroll",ke);const Oe=()=>setTimeout(ke,300);window.addEventListener("orientationchange",Oe);let st=0,Ue=0;const Qe=()=>{ke(),Date.now()<st?Ue=requestAnimationFrame(Qe):Ue=0},me=()=>{st=Date.now()+650,Ue||(Ue=requestAnimationFrame(Qe))};return window.addEventListener("focusin",me),window.addEventListener("focusout",me),()=>{c(),window.removeEventListener("beforeinstallprompt",z),U.removeEventListener("change",S),de==null||de.removeEventListener("resize",ke),de==null||de.removeEventListener("scroll",ke),window.removeEventListener("focusin",me),window.removeEventListener("focusout",me),window.removeEventListener("orientationchange",Oe),Ue&&cancelAnimationFrame(Ue),clearTimeout(O),Q==null||Q.close()}}),gs(c=>{var z,U;E(),m((U=(z=c.to)==null?void 0:z.params)==null?void 0:U.sessionId)}),X(()=>(q(),ua),()=>{q()&&typeof document<"u"&&ua(q().activeId)}),X(()=>f(),()=>{s(I,!!f().params.sessionId)}),at(),Ze();var ye=si();M("keydown",gt,J);var $e=Je(ye),ce=a($e);{var Te=c=>{Ds(c,{get email(){return e(R)},onPalette:()=>Lt.set(!0),get installEvent(){return e(te)},onInstall:ee,get drawerLeft(){return e(A)},get drawerRight(){return B()},onToggleLeft:ae,onToggleRight:Y,get newButtonAnchor(){return e(k)},set newButtonAnchor(z){s(k,z)},$$legacy:!0})};F(ce,c=>{e(N)&&e(I)||c(Te)})}var he=n(ce,2);js(he);var _e=n(he,2),je=a(_e);{var Ee=c=>{var z=ei();M("click",z,E),i(c,z)};F(je,c=>{(e(A)||B())&&c(Ee)})}var Be=n(je,2);{var xe=c=>{var z=ti();M("click",z,()=>Ot.set(!0)),i(c,z)};F(Be,c=>{!l()&&!e(N)&&c(xe)})}var De=n(Be,2);let V;var fe=a(De);mn(fe,{get activeId(){return f(),r(()=>f().params.sessionId)},get drawer(){return e(N)},get email(){return e(R)}}),t(De);var b=n(De,2);let L;var d=n(b,2),W=a(d);ys(W,v,"default",{}),t(d);var ie=n(d,2);{var pe=c=>{var z=ai();let U;K(()=>U=we(z,1,"divider svelte-12qhfyh",null,U,{resizing:e(j)==="insp"})),M("pointerdown",z,S=>se("insp",S)),i(c,z)};F(ie,c=>{x(),r(()=>x().tabs.length>0)&&c(pe)})}var qe=n(ie,2);let Pe;var oe=a(qe);Yr(oe,{get sessionId(){return f(),r(()=>f().params.sessionId)}}),t(qe),t(_e),t($e),Dt($e,c=>s(_,c),()=>e(_));var ne=n($e,2);ll(ne,{get open(){return $()},$$events:{close:()=>Lt.set(!1)}});var le=n(ne,2);zl(le,{get anchor(){return e(k)}});var Le=n(le,2);fl(Le,{});var be=n(Le,2);Ml(be,{});var Se=n(be,2);{var Me=c=>{Dl(c,{})};F(Se,c=>{e(I)||c(Me)})}var g=n(Se,2);{var o=c=>{{let z=It(()=>w()==="rejected"?"rejected":"pairing");Xl(c,{get status(){return e(z)}})}};F(g,c=>{w()!=="ready"&&c(o)})}K(()=>{dt($e,`--rail-w:${e(G)??""}px; --insp-w:${e(y)??""}px`),V=we(De,1,"rail-wrap svelte-12qhfyh",null,V,{collapsed:!l()&&!e(N),open:e(A)||e(N)&&!e(I)}),L=we(b,1,"divider svelte-12qhfyh",null,L,{resizing:e(j)==="rail"}),Pe=we(qe,1,"inspector-wrap svelte-12qhfyh",null,Pe,{open:B()})}),M("pointerdown",b,c=>se("rail",c)),M("dblclick",b,()=>Ot.update(c=>!c)),i(P,ye),et(),T()}export{ui as component,di as universal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{r as ht,f as Se,p as Pt,l as Nt,i as ha,F as _a,y as ba,k as na,j as ga,z as Ot,e as ka,a as Qt,b as ea,c as ta,B as wa,w as xa}from"../chunks/DUrEVoyD.js";import{aE as _t,M as St,a4 as Re,w as v,aB as bt,V as $e,b4 as i,J as o,aK as a,a$ as E,a8 as e,aR as M,a3 as y,aU as r,a6 as p,az as Kt,ap as h,aO as t,aq as yt,$ as vt,au as s,b2 as oa,aw as Mt,av as $t,ay as Ft,b1 as At,aI as ya,b5 as Bt,b0 as $a,a7 as Ia,Z as Sa}from"../chunks/BjY4dxcB.js";import{i as A,s as jt,a as De}from"../chunks/DIEDQ_hk.js";import{i as Te,A as Ct,I as nt,y as ue,z as Qe,l as xt,c as Ca,f as Wt,g as ra,t as Ma,h as Ea,v as qa,J as aa,a as Ta,E as ja,D as Da,q as Ba,m as Ht,r as Oa,s as Aa,C as Ra,o as sa,j as Pa}from"../chunks/D63AQ4hr.js";import{p as mt,b as Ve}from"../chunks/C2FuqD3s.js";import{g as Rt}from"../chunks/IKhDXhxZ.js";var Fa=p('<button class="chip svelte-1hbn5f9" role="listitem"> </button>'),za=p('<div class="suggestions svelte-1hbn5f9" role="list" aria-label="建议的后续操作"><!> <button class="dismiss svelte-1hbn5f9" aria-label="忽略建议"><!></button></div>');function La(Ie,ie){_t(ie,!1);let X=mt(ie,"suggestions",24,()=>[]),q=mt(ie,"onPick",8,()=>{}),Q=mt(ie,"onDismiss",8,()=>{});ht();var ee=St(),T=Re(ee);{var g=w=>{var F=za(),U=o(F);Te(U,3,X,m=>m,(m,I,V)=>{var C=Fa(),ne=o(C,!0);a(C),E(S=>{Ct(C,S),M(ne,e(I))},[()=>($e(e(V)),i(()=>`animation-delay: ${Math.min(e(V),5)*45}ms`))]),y("click",C,()=>q()(e(I))),v(m,C)});var R=r(U,2),j=o(R);nt(j,{name:"close",size:12}),a(R),a(F),y("click",R,function(...m){var I;(I=Q())==null||I.apply(this,m)}),v(w,F)};A(T,w=>{$e(X()),i(()=>X().length>0)&&w(g)})}v(Ie,ee),bt()}var Na=p('<div class="none label svelte-1f5vmb3">未配置 agent</div>'),Wa=p('<button role="option"><span> </span> <span class="label mono"> </span></button>'),Ha=p('<div class="pop svelte-1f5vmb3" role="listbox" aria-label="Agent 覆盖"><!> <!> <button class="opt clear svelte-1f5vmb3" role="option"><!> 清除覆盖</button></div>'),Ka=p('<div class="wrap svelte-1f5vmb3"><button class="chip mono svelte-1f5vmb3" aria-haspopup="listbox"><!> <span class="txt svelte-1f5vmb3"> </span> <!></button> <!></div>');function Ja(Ie,ie){_t(ie,!1);const X=s();let q=s(!1),Q=s(),ee=s([]),T=s({agent:null,model:null});async function g(){try{await(async $=>{var u=oa($,2);t(ee,u[0]),t(T,u[1])})(await Promise.all([Se.agents(),Se.getOverrides()]))}catch{}}Kt(g);async function w($){await Se.setOverrides({agent:$.name}),await g(),t(q,!1)}async function F(){await Se.setOverrides({agent:null}),await g(),t(q,!1)}function U($){$.key==="Escape"&&e(q)&&t(q,!1)}function R($){e(q)&&e(Q)&&!e(Q).contains($.target)&&t(q,!1)}h(()=>e(T),()=>{t(X,e(T).agent??"default")}),yt(),ht();var j=Ka();y("keydown",vt,U),y("click",vt,R);var m=o(j),I=o(m);nt(I,{name:"cpu",size:11});var V=r(I,2),C=o(V,!0);a(V);var ne=r(V,2);nt(ne,{name:"caret-down",size:9}),a(m);var S=r(m,2);{var z=$=>{var u=Ha(),W=o(u);{var N=L=>{var x=Na();v(L,x)};A(W,L=>{e(ee),i(()=>e(ee).length===0)&&L(N)})}var k=r(W,2);Te(k,1,()=>e(ee),L=>L.name,(L,x)=>{var te=Wa();let _;var be=o(te),xe=o(be,!0);a(be);var ge=r(be,2),P=o(ge,!0);a(ge),a(te),E(Z=>{_=Qe(te,1,"opt svelte-1f5vmb3",null,_,{sel:e(x).name===e(T).agent}),ue(te,"aria-selected",(e(x),e(T),i(()=>e(x).name===e(T).agent))),M(xe,(e(x),i(()=>e(x).name))),M(P,Z)},[()=>(e(x),i(()=>e(x).model.split("/").pop()))]),y("click",te,()=>w(e(x))),v(L,te)});var H=r(k,2),_e=o(H);nt(_e,{name:"close",size:11}),Mt(),a(H),a(u),E(()=>ue(H,"aria-selected",(e(T),i(()=>e(T).agent==null)))),y("click",H,F),v($,u)};A(S,$=>{e(q)&&$(z)})}a(j),Ve(j,$=>t(Q,$),()=>e(Q)),E(()=>{ue(m,"aria-expanded",e(q)),M(C,e(X))}),y("click",m,()=>{t(q,!e(q)),e(q)&&g()}),v(Ie,j),bt()}var Ua=p('<div class="none label svelte-1005b73">暂无模型</div>'),Ga=p('<button role="option"><span> </span></button>'),Va=p('<div class="prov label mono svelte-1005b73"> </div> <!>',1),Ya=p('<div class="pop svelte-1005b73" role="listbox" aria-label="模型覆盖"><!> <!> <button class="opt clear svelte-1005b73" role="option"><!> 清除覆盖</button></div>'),Xa=p('<div class="wrap svelte-1005b73"><button class="chip mono svelte-1005b73" aria-haspopup="listbox"><!> <span class="txt svelte-1005b73"> </span> <!></button> <!></div>');function Za(Ie,ie){_t(ie,!1);const X=s();let q=s(!1),Q=s(),ee=s([]),T=s({agent:null,model:null});async function g(){try{await(async $=>{var u=oa($,2);t(ee,u[0]),t(T,u[1])})(await Promise.all([Se.models(),Se.getOverrides()]))}catch{}}Kt(g);async function w($,u){await Se.setOverrides({model:{providerID:$,modelID:u}}),await g(),t(q,!1)}async function F(){await Se.setOverrides({model:null}),await g(),t(q,!1)}function U($){$.key==="Escape"&&e(q)&&t(q,!1)}function R($){e(q)&&e(Q)&&!e(Q).contains($.target)&&t(q,!1)}h(()=>e(T),()=>{var $;t(X,(($=e(T).model)==null?void 0:$.modelID)??"model")}),yt(),ht();var j=Xa();y("keydown",vt,U),y("click",vt,R);var m=o(j),I=o(m);nt(I,{name:"bolt",size:11});var V=r(I,2),C=o(V,!0);a(V);var ne=r(V,2);nt(ne,{name:"caret-down",size:9}),a(m);var S=r(m,2);{var z=$=>{var u=Ya(),W=o(u);{var N=L=>{var x=Ua();v(L,x)};A(W,L=>{e(ee),i(()=>e(ee).length===0)&&L(N)})}var k=r(W,2);Te(k,1,()=>e(ee),L=>L.id,(L,x)=>{var te=Va(),_=Re(te),be=o(_,!0);a(_);var xe=r(_,2);Te(xe,1,()=>(e(x),i(()=>e(x).models)),ge=>ge.id,(ge,P)=>{var Z=Ga();let pe;var ve=o(Z),Ce=o(ve,!0);a(ve),a(Z),E(()=>{var f,G;pe=Qe(Z,1,"opt svelte-1005b73",null,pe,{sel:((f=e(T).model)==null?void 0:f.providerID)===e(x).id&&((G=e(T).model)==null?void 0:G.modelID)===e(P).id}),ue(Z,"aria-selected",(e(T),e(x),e(P),i(()=>{var ae,me;return((ae=e(T).model)==null?void 0:ae.providerID)===e(x).id&&((me=e(T).model)==null?void 0:me.modelID)===e(P).id}))),M(Ce,(e(P),i(()=>e(P).name||e(P).id)))}),y("click",Z,()=>w(e(x).id,e(P).id)),v(ge,Z)}),E(()=>M(be,(e(x),i(()=>e(x).id)))),v(L,te)});var H=r(k,2),_e=o(H);nt(_e,{name:"close",size:11}),Mt(),a(H),a(u),E(()=>ue(H,"aria-selected",(e(T),i(()=>e(T).model==null)))),y("click",H,F),v($,u)};A(S,$=>{e(q)&&$(z)})}a(j),Ve(j,$=>t(Q,$),()=>e(Q)),E(()=>{ue(m,"aria-expanded",e(q)),M(C,e(X))}),y("click",m,()=>{t(q,!e(q)),e(q)&&g()}),v(Ie,j),bt()}var Qa=p('<button role="option"> </button>'),es=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Mode"><div class="label">Mode</div> <!></div>'),ts=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),as=p('<button role="option"> </button>'),ss=p('<div class="pop svelte-dkbq22" role="listbox" aria-label="Model"><div class="label">Model</div> <!></div>'),ns=p('<div class="wrap svelte-dkbq22"><button class="chip mono svelte-dkbq22" aria-haspopup="listbox"><!> <span class="txt svelte-dkbq22"> </span> <!></button> <!></div>'),os=p('<div class="controls svelte-dkbq22"><!> <!></div>');function rs(Ie,ie){_t(ie,!1);const X=s(),q=s(),Q=s(),ee=s();let T=mt(ie,"sessionId",8),g=s({}),w=s(null);async function F(){const u=T();try{const W=await Se.controls(u);if(u!==T())return;t(g,W)}catch{u===T()&&t(g,{})}}async function U(u){e(g).mode&&$t(g,e(g).mode={...e(g).mode,current:u}),t(w,null);try{await Se.setMode(T(),u)}catch{}await F()}async function R(u){e(g).model&&$t(g,e(g).model={...e(g).model,current:u}),t(w,null);try{await Se.setModel(T(),u)}catch{}await F()}function j(u){t(w,e(w)===u?null:u)}let m=s();function I(u){u.key==="Escape"&&e(w)&&t(w,null)}function V(u){e(w)&&e(m)&&!e(m).contains(u.target)&&t(w,null)}h(()=>$e(T()),()=>{T()&&F()}),h(()=>e(g),()=>{var u;t(X,((u=e(g).mode)==null?void 0:u.options)??[])}),h(()=>e(g),()=>{var u;t(q,((u=e(g).model)==null?void 0:u.options)??[])}),h(()=>e(g),()=>{var u,W,N;t(Q,((W=(u=e(g).mode)==null?void 0:u.options.find(k=>{var H;return k.id===((H=e(g).mode)==null?void 0:H.current)}))==null?void 0:W.name)??((N=e(g).mode)==null?void 0:N.current)??"mode")}),h(()=>e(g),()=>{var u,W,N;t(ee,((W=(u=e(g).model)==null?void 0:u.options.find(k=>{var H;return k.id===((H=e(g).model)==null?void 0:H.current)}))==null?void 0:W.name)??((N=e(g).model)==null?void 0:N.current)??"model")}),yt(),ht();var C=os();y("keydown",vt,I),y("click",vt,V);var ne=o(C);{var S=u=>{var W=ts(),N=o(W),k=o(N);nt(k,{name:"bolt",size:11});var H=r(k,2),_e=o(H,!0);a(H);var L=r(H,2);nt(L,{name:"caret-down",size:9}),a(N);var x=r(N,2);{var te=_=>{var be=es(),xe=r(o(be),2);Te(xe,1,()=>e(X),xt,(ge,P)=>{var Z=Qa();let pe;var ve=o(Z,!0);a(Z),E(()=>{var Ce;pe=Qe(Z,1,"opt svelte-dkbq22",null,pe,{sel:e(P).id===((Ce=e(g).mode)==null?void 0:Ce.current)}),ue(Z,"aria-selected",(e(P),e(g),i(()=>{var f;return e(P).id===((f=e(g).mode)==null?void 0:f.current)}))),M(ve,(e(P),i(()=>e(P).name)))}),y("click",Z,()=>U(e(P).id)),v(ge,Z)}),a(be),v(_,be)};A(x,_=>{e(w)==="mode"&&_(te)})}a(W),E(()=>{ue(N,"aria-expanded",e(w)==="mode"),M(_e,e(Q))}),y("click",N,()=>j("mode")),v(u,W)};A(ne,u=>{e(X),i(()=>e(X).length>0)&&u(S)})}var z=r(ne,2);{var $=u=>{var W=ns(),N=o(W),k=o(N);nt(k,{name:"cpu",size:11});var H=r(k,2),_e=o(H,!0);a(H);var L=r(H,2);nt(L,{name:"caret-down",size:9}),a(N);var x=r(N,2);{var te=_=>{var be=ss(),xe=r(o(be),2);Te(xe,1,()=>e(q),xt,(ge,P)=>{var Z=as();let pe;var ve=o(Z,!0);a(Z),E(()=>{var Ce;pe=Qe(Z,1,"opt svelte-dkbq22",null,pe,{sel:e(P).id===((Ce=e(g).model)==null?void 0:Ce.current)}),ue(Z,"aria-selected",(e(P),e(g),i(()=>{var f;return e(P).id===((f=e(g).model)==null?void 0:f.current)}))),M(ve,(e(P),i(()=>e(P).name)))}),y("click",Z,()=>R(e(P).id)),v(ge,Z)}),a(be),v(_,be)};A(x,_=>{e(w)==="model"&&_(te)})}a(W),E(()=>{ue(N,"aria-expanded",e(w)==="model"),M(_e,e(ee))}),y("click",N,()=>j("model")),v(u,W)};A(z,u=>{e(q),i(()=>e(q).length>0)&&u($)})}a(C),Ve(C,u=>t(m,u),()=>e(m)),v(Ie,C),bt()}const Dt={user:"var(--info)",assistant:"var(--accent)",tool:"var(--ok)",other:"var(--border)"};function Lt(Ie){if(!Ie)return 0;let ie=0;for(const q of Ie)(q.codePointAt(0)??0)>=11904&&ie++;const X=Ie.length-ie;return Math.round(ie*.6+X*.25)}function is(Ie,ie){let X=0,q=0,Q=0;for(const w of Ie)if(w.kind==="user")X+=Lt(String(w.text??""));else if(w.kind==="assistant")for(const F of w.blocks??[])F.type==="text"?q+=Lt(String(F.text??"")):F.type==="tool"&&(Q+=Lt(String(F.args??"")));const ee=X+q+Q,T=Math.max(0,ie-ee),g=[{key:"用户",tokens:X,color:Dt.user},{key:"助手",tokens:q,color:Dt.assistant},{key:"工具调用",tokens:Q,color:Dt.tool}];return T>0&&g.push({key:"其他",tokens:T,color:Dt.other}),{segments:g.filter(w=>w.tokens>0),accounted:ee,used:ie}}var ls=p('<span class="seg svelte-4bdpxt"></span>'),cs=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),vs=p('<span class="seg svelte-4bdpxt"></span>'),ds=p('<span class="lg svelte-4bdpxt"><span class="dot svelte-4bdpxt"></span> </span>'),us=p('<div class="bd-label svelte-4bdpxt">细分 <span class="est svelte-4bdpxt">估算</span></div> <div class="bar bd svelte-4bdpxt"></div> <div class="legend svelte-4bdpxt"></div>',1),ps=p('<div class="row svelte-4bdpxt"><span>缓存命中率</span><span class="mono svelte-4bdpxt"> </span></div>'),fs=p('<div class="row svelte-4bdpxt"><span>消息</span><span class="mono svelte-4bdpxt"> </span></div>'),ms=p('<div class="row svelte-4bdpxt"><span>模型</span><span class="mono svelte-4bdpxt"> </span></div>'),hs=p('<div class="row svelte-4bdpxt"><span>总成本</span><span class="mono svelte-4bdpxt"> </span></div>'),_s=p('<div class="pop svelte-4bdpxt" role="dialog" aria-label="上下文用量"><div class="head svelte-4bdpxt"><span class="label svelte-4bdpxt">上下文</span> <span class="mono dim svelte-4bdpxt"> </span></div> <div class="bar svelte-4bdpxt" aria-hidden="true"></div> <div class="legend svelte-4bdpxt"></div> <!> <div class="rows svelte-4bdpxt"><!> <!> <!> <!></div></div>'),bs=p('<div class="wrap svelte-4bdpxt"><button class="ring svelte-4bdpxt" title="上下文占用"><svg viewBox="0 0 24 24" aria-hidden="true" class="svelte-4bdpxt"><circle class="track svelte-4bdpxt" cx="12" cy="12"></circle><circle class="arc svelte-4bdpxt" cx="12" cy="12" transform="rotate(-90 12 12)"></circle></svg> <span class="pct mono svelte-4bdpxt"> <i class="svelte-4bdpxt">%</i></span></button> <!></div>');function gs(Ie,ie){_t(ie,!1);const X=()=>De(Pt,"$feeds",q),[q,Q]=jt(),ee=s(),T=s(),g=s(),w=s(),F=s(),U=s(),R=s(),j=s(),m=s(),I=s(),V=s(),C=s(),ne=s(),S=s(),z=s(),$=s(),u=s(),W=s();let N=mt(ie,"sessionId",8),k=s({}),H=s(!1),_e=s(),L,x=s(),te=s(-1),_=s();async function be(d){try{t(k,await Se.context(d))}catch{}}Ft(()=>{clearTimeout(e(_)),clearTimeout(L)});const xe=10,ge=2*Math.PI*xe;function P(d){return d>=1e6?(d/1e6).toFixed(1)+"M":d>=1e3?(d/1e3).toFixed(1)+"k":String(d)}function Z(d){return d==null?"—":`$${d.toFixed(3)}`}function pe(){clearTimeout(L),t(H,!0)}function ve(){clearTimeout(L),L=setTimeout(()=>t(H,!1),180)}function Ce(d){d.key==="Escape"&&t(H,!1)}function f(d){e(H)&&e(_e)&&!e(_e).contains(d.target)&&t(H,!1)}h(()=>($e(N()),e(x)),()=>{N()!==e(x)&&(t(x,N()),be(N()))}),h(()=>(X(),$e(N())),()=>{var d;t(ee,((d=X()[N()])==null?void 0:d.lastSeq)??0)}),h(()=>(e(ee),e(te),e(_),$e(N())),()=>{e(ee)!==e(te)&&(t(te,e(ee)),clearTimeout(e(_)),t(_,setTimeout(()=>void be(N()),1e3)))}),h(()=>e(k),()=>{var d,K;t(T,typeof((K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.input)=="number"?e(k).tokens.input:0)}),h(()=>e(k),()=>{var d,K;t(g,typeof((K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.output)=="number"?e(k).tokens.output:0)}),h(()=>(e(k),e(T),e(g)),()=>{var d,K;t(w,typeof((K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.used)=="number"?e(k).tokens.used:e(T)+e(g))}),h(()=>e(k),()=>{var d,K;t(F,typeof((K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.max)=="number"?e(k).tokens.max:void 0)}),h(()=>(e(w),e(F)),()=>{t(U,e(w)>0&&e(F)?Math.min(100,e(w)/e(F)*100):0)}),h(()=>e(U),()=>{t(R,e(U)>=90?"var(--err)":e(U)>=70?"var(--warn)":"var(--ok)")}),h(()=>e(k),()=>{var d;t(j,(d=e(k))!=null&&d.model?String(e(k).model).split("/").pop():void 0)}),h(()=>e(k),()=>{var d;t(m,typeof((d=e(k))==null?void 0:d.cost)=="number"?e(k).cost:void 0)}),h(()=>e(k),()=>{var d,K,ye;t(I,typeof((ye=(K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.cache)==null?void 0:ye.read)=="number"?e(k).tokens.cache.read:0)}),h(()=>e(k),()=>{var d,K,ye;t(V,typeof((ye=(K=(d=e(k))==null?void 0:d.tokens)==null?void 0:K.cache)==null?void 0:ye.write)=="number"?e(k).tokens.cache.write:0)}),h(()=>(e(T),e(I)),()=>{t(C,e(T)+e(I)>0?Math.round(e(I)/(e(T)+e(I))*100):void 0)}),h(()=>(X(),$e(N())),()=>{t(ne,X()[N()])}),h(()=>e(ne),()=>{t(S,Nt(e(ne)).filter(d=>d.kind==="user"||d.kind==="assistant").length)}),h(()=>(e(I),e(V),e(T),e(g)),()=>{t(z,[{key:"缓存读",v:e(I),c:"var(--ok)"},{key:"缓存写",v:e(V),c:"var(--info)"},{key:"输入",v:e(T),c:"var(--text-3)"},{key:"输出",v:e(g),c:"var(--hl-purple)"}].filter(d=>d.v>0))}),h(()=>e(z),()=>{t($,e(z).reduce((d,K)=>d+K.v,0))}),h(()=>e(ne),()=>{t(u,Nt(e(ne)))}),h(()=>(e(u),e(w)),()=>{t(W,is(e(u),e(w)))}),yt(),ht();var G=bs();y("keydown",vt,Ce),y("click",vt,f);var ae=o(G),me=o(ae),Le=o(me);ue(Le,"r",xe);var Ne=r(Le);ue(Ne,"r",xe),a(me);var Me=r(me,2),de=o(Me,!0);Mt(),a(Me),a(ae);var le=r(ae,2);{var Ee=d=>{var K=_s(),ye=o(K),We=r(o(ye),2),et=o(We);a(We),a(ye);var Ye=r(ye,2);Te(Ye,5,()=>e(z),xt,(B,b)=>{var J=ls();E(()=>Ct(J,(e(b),e($),i(()=>`width:${e(b).v/(e($)||1)*100}%; background:${e(b).c}`)))),v(B,J)}),a(Ye);var He=r(Ye,2);Te(He,5,()=>e(z),xt,(B,b)=>{var J=cs(),we=o(J),tt=r(we);a(J),E(he=>{Ct(we,(e(b),i(()=>`background:${e(b).c}`))),M(tt,`${e(b),i(()=>e(b).key)??""} ${he??""}`)},[()=>(e(b),i(()=>P(e(b).v)))]),v(B,J)}),a(He);var Xe=r(He,2);{var Ke=B=>{var b=us(),J=r(Re(b),2);Te(J,5,()=>(e(W),i(()=>e(W).segments)),xt,(tt,he)=>{var ce=vs();E(()=>Ct(ce,(e(he),e(W),i(()=>`width:${e(he).tokens/(e(W).used||1)*100}%; background:${e(he).color}`)))),v(tt,ce)}),a(J);var we=r(J,2);Te(we,5,()=>(e(W),i(()=>e(W).segments)),xt,(tt,he)=>{var ce=ds(),je=o(ce),Je=r(je);a(ce),E(Ae=>{Ct(je,(e(he),i(()=>`background:${e(he).color}`))),M(Je,`${e(he),i(()=>e(he).key)??""} ${Ae??""}%`)},[()=>(e(w),e(he),i(()=>e(w)>0?(e(he).tokens/e(w)*100).toFixed(1):"0"))]),v(tt,ce)}),a(we),v(B,b)};A(Xe,B=>{e(W),i(()=>e(W).segments.length>0)&&B(Ke)})}var Be=r(Xe,2),dt=o(Be);{var gt=B=>{var b=ps(),J=r(o(b)),we=o(J);a(J),a(b),E(()=>M(we,`${e(C)??""}%`)),v(B,b)};A(dt,B=>{e(C)!=null&&B(gt)})}var ut=r(dt,2);{var kt=B=>{var b=fs(),J=r(o(b)),we=o(J,!0);a(J),a(b),E(()=>M(we,e(S))),v(B,b)};A(ut,B=>{e(S)>0&&B(kt)})}var c=r(ut,2);{var n=B=>{var b=ms(),J=r(o(b)),we=o(J,!0);a(J),a(b),E(()=>M(we,e(j))),v(B,b)};A(c,B=>{e(j)&&B(n)})}var D=r(c,2);{var se=B=>{var b=hs(),J=r(o(b)),we=o(J,!0);a(J),a(b),E(tt=>M(we,tt),[()=>(e(m),i(()=>Z(e(m))))]),v(B,b)};A(D,B=>{e(m)!=null&&B(se)})}a(Be),a(K),E((B,b)=>M(et,`${B??""} / ${b??""}`),[()=>(e(w),i(()=>P(e(w)))),()=>(e(F),i(()=>P(e(F))))]),v(d,K)};A(le,d=>{e(H)&&e(F)&&d(Ee)})}a(G),Ve(G,d=>t(_e,d),()=>e(_e)),E((d,K,ye)=>{ue(ae,"aria-label",d),ue(ae,"aria-expanded",e(H)),ue(Ne,"stroke",e(R)),ue(Ne,"stroke-dasharray",K),M(de,ye)},[()=>(e(U),i(()=>`上下文占用 ${e(U).toFixed(0)}%`)),()=>(e(U),i(()=>`${Math.max(ge*e(U)/100,e(U)>0?1.5:0)} ${ge}`)),()=>(e(U),i(()=>e(U).toFixed(0)))]),y("click",ae,()=>t(H,!e(H))),y("mouseenter",G,pe),y("mouseleave",G,ve),v(Ie,G),bt(),Q()}var ks=p('<div class="error svelte-60fagq" role="alert"> </div>'),ws=p('<button role="option"> </button>'),xs=p('<div class="mention-dropdown svelte-60fagq" role="listbox"></div>'),ys=p('<div class="thumb svelte-60fagq"><img alt="attachment" class="svelte-60fagq"/> <button class="remove svelte-60fagq" aria-label="移除图片">×</button></div>'),$s=p('<div class="thumbnails svelte-60fagq"></div>'),Is=p('<button class="attach svelte-60fagq" aria-label="附加图片"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg></button> <input type="file" accept="image/*" multiple="" style="display:none"/>',1),Ss=p("<!> <!>",1),Cs=p('<button class="send stop svelte-60fagq" aria-label="停止" title="停止生成"><svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2"></rect></svg></button>'),Ms=Ia('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"></path></svg>'),Es=p('<button class="send svelte-60fagq" aria-label="发送"><!></button>'),qs=p('<div class="composer svelte-60fagq"><div class="dock svelte-60fagq"><!> <div><!> <!> <textarea aria-label="消息输入" class="svelte-60fagq"></textarea> <div class="footer svelte-60fagq"><!> <!> <!> <!> <button class="hint command svelte-60fagq">「/」命令</button> <span class="spacer svelte-60fagq"></span> <span class="hint send-hint svelte-60fagq">↵ 发送 · ⇧↵ 换行</span> <!></div></div></div></div>');function Ts(Ie,ie){_t(ie,!1);const X=()=>De(Wt,"$composerDraft",g),q=()=>De(Pt,"$feeds",g),Q=()=>De(na,"$can",g),ee=()=>De(Ea,"$connection",g),T=()=>De(ha,"$backendName",g),[g,w]=jt(),F=s(),U=s(),R=s();let j=mt(ie,"sessionId",8),m=s(""),I=s(),V=s(!1),C=s(""),ne=s(!1),S=s(),z=s([]),$=s([]),u=s(0),W=0,N,k=!1;async function H(){if(!k){k=!0;try{await Se.abort(j())}catch{}finally{k=!1}}}function _e(){return`c_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function L(c){const n=new FileReader;n.onload=()=>{var we;const D=n.result,se=D.indexOf(","),B=D.slice(0,se),b=D.slice(se+1),J=((we=B.match(/data:(.*?);/))==null?void 0:we[1])??c.type;t(z,[...e(z),{data:b,mimeType:J,preview:D}])},n.readAsDataURL(c)}function x(c){const n=c.target;if(n.files){for(const D of n.files)L(D);n.value=""}}function te(c){if(!Q()("imageInput")||!c.clipboardData)return;const n=[...c.clipboardData.items].filter(D=>D.type.startsWith("image/"));if(n.length){c.preventDefault();for(const D of n){const se=D.getAsFile();se&&L(se)}}}function _(c){t(z,e(z).filter((n,D)=>D!==c))}function be(){if(!e(I))return null;const c=e(I).selectionStart,D=e(m).slice(0,c).match(/(^|[\s])@([^\s]*)$/);return D?{token:D[2],start:c-D[2].length-1}:null}function xe(){const c=be();if(!c){t($,[]),clearTimeout(N);return}W=c.start,t(u,0),clearTimeout(N);const n=c.token;N=setTimeout(async()=>{try{t($,await Se.files(j(),n))}catch{t($,[])}},150)}function ge(c){const n=e(I).selectionStart,D=e(m).slice(0,W),se=e(m).slice(n),B=`@${c} `;t(m,D+B+se),t($,[]),At().then(()=>{const b=D.length+B.length;$t(I,e(I).selectionStart=$t(I,e(I).selectionEnd=b)),e(I).focus(),pe()})}async function P(){var B;const c=e(m).trim();if(!c&&e(z).length===0||e(V))return;if(ee()!=="connected"){t(C,"Disconnected — reconnecting…");return}const n=_e(),D=e(z).map(({data:b,mimeType:J})=>({data:b,mimeType:J}));t(V,!0),t(C,""),_a({kind:"user",sessionId:j(),text:c,ts:Date.now(),id:`user:${n}`}),t(m,"");const se=[...e(z)];t(z,[]),pe();try{await Se.sendMessage({sessionId:j(),text:c,clientId:n,...D.length?{images:D}:{}})}catch(b){t(C,`Send failed: ${b.message}`),ba(`user:${n}`),t(m,c),t(z,se)}finally{t(V,!1),(B=e(I))==null||B.focus()}}function Z(c){if(e($).length>0){if(c.key==="ArrowDown"){c.preventDefault(),t(u,Math.min(e(u)+1,e($).length-1));return}if(c.key==="ArrowUp"){c.preventDefault(),t(u,Math.max(e(u)-1,0));return}if(c.key==="Enter"||c.key==="Tab"){c.preventDefault(),ge(e($)[e(u)]);return}if(c.key==="Escape"){c.preventDefault(),t($,[]);return}}c.key!=="Enter"||c.shiftKey||c.isComposing||c.keyCode===229||(c.preventDefault(),P())}function pe(){e(I)&&($t(I,e(I).style.height="auto"),$t(I,e(I).style.height=Math.min(e(I).scrollHeight,140)+"px"))}Ft(()=>clearTimeout(N)),h(()=>(X(),e(I)),()=>{const c=X();c&&(t(m,c.text),Wt.set(void 0),At().then(()=>{var n;return(n=e(I))==null?void 0:n.focus()}),pe())}),h(()=>e(m),()=>{ra.set(!e(m).trim())}),h(()=>e(m),()=>{t(F,e(m).trim().length>0)}),h(()=>(q(),$e(j())),()=>{t(U,(()=>{const c=q()[j()];if(!c||c.order.length===0)return!1;const n=c.byId[c.order[c.order.length-1]];return(n==null?void 0:n.kind)==="thinking"||(n==null?void 0:n.kind)==="streaming"||(n==null?void 0:n.kind)==="think-stream"})())}),h(()=>(e(U),e(F),e(V)),()=>{t(R,e(U)&&!e(F)&&!e(V))}),yt(),ht();var ve=qs(),Ce=o(ve),f=o(Ce);{var G=c=>{var n=ks(),D=o(n,!0);a(n),E(()=>M(D,e(C))),v(c,n)};A(f,c=>{e(C)&&c(G)})}var ae=r(f,2);let me;var Le=o(ae);{var Ne=c=>{var n=xs();Te(n,5,()=>e($),xt,(D,se,B)=>{var b=ws();let J;var we=o(b,!0);a(b),E(()=>{J=Qe(b,1,"mention-row svelte-60fagq",null,J,{active:B===e(u)}),ue(b,"aria-selected",B===e(u)),M(we,e(se))}),y("mousedown",b,qa(()=>ge(e(se)))),v(D,b)}),a(n),v(c,n)};A(Le,c=>{e($),i(()=>e($).length>0)&&c(Ne)})}var Me=r(Le,2);{var de=c=>{var n=$s();Te(n,5,()=>e(z),xt,(D,se,B)=>{var b=ys(),J=o(b),we=r(J,2);a(b),E(()=>ue(J,"src",(e(se),i(()=>e(se).preview)))),y("click",we,()=>_(B)),v(D,b)}),a(n),v(c,n)};A(Me,c=>{e(z),i(()=>e(z).length>0)&&c(de)})}var le=r(Me,2);ya(le),ue(le,"rows",1),Ve(le,c=>t(I,c),()=>e(I));var Ee=r(le,2),d=o(Ee);{var K=c=>{var n=Is(),D=Re(n),se=r(D,2);Ve(se,B=>t(S,B),()=>e(S)),y("click",D,()=>e(S).click()),y("change",se,x),v(c,n)},ye=Bt(()=>(Q(),i(()=>Q()("imageInput"))));A(d,c=>{e(ye)&&c(K)})}var We=r(d,2);{var et=c=>{var n=Ss(),D=Re(n);Ja(D,{});var se=r(D,2);Za(se,{}),v(c,n)},Ye=Bt(()=>(Q(),i(()=>Q()("catalog"))));A(We,c=>{e(Ye)&&c(et)})}var He=r(We,2);{var Xe=c=>{rs(c,{get sessionId(){return j()}})},Ke=Bt(()=>(Q(),i(()=>Q()("sessionControls"))));A(He,c=>{e(Ke)&&c(Xe)})}var Be=r(He,2);gs(Be,{get sessionId(){return j()}});var dt=r(Be,2),gt=r(dt,6);{var ut=c=>{var n=Cs();y("click",n,H),v(c,n)},kt=c=>{var n=Es(),D=o(n);{var se=b=>{var J=$a("…");v(b,J)},B=b=>{var J=Ms();v(b,J)};A(D,b=>{e(V)?b(se):b(B,-1)})}a(n),E(b=>n.disabled=b,[()=>(e(V),e(m),e(z),ee(),i(()=>e(V)||!e(m).trim()&&e(z).length===0||ee()!=="connected"))]),y("click",n,P),v(c,n)};A(gt,c=>{e(R)?c(ut):c(kt,-1)})}a(Ee),a(ae),a(Ce),a(ve),E(()=>{me=Qe(ae,1,"box svelte-60fagq",null,me,{focused:e(ne),"has-text":e(F)}),ue(le,"placeholder",ee()==="connected"?`给 ${T()} 留言…`:"连接断开…")}),Ca(le,()=>e(m),c=>t(m,c)),y("keydown",le,Z),y("input",le,()=>{pe(),xe()}),y("paste",le,te),y("focus",le,()=>t(ne,!0)),y("blur",le,()=>t(ne,!1)),y("click",le,xe),y("click",dt,()=>Ma.set(!0)),v(Ie,ve),bt(),w()}var js=p('<span class="check svelte-rgafhj">✓</span>'),Ds=p('<button><span aria-hidden="true"></span> <span class="info svelte-rgafhj"><span class="row-title svelte-rgafhj"> </span> <span class="row-meta mono svelte-rgafhj"> </span></span> <!></button>'),Bs=p('<div class="empty svelte-rgafhj"> </div>'),Os=p('<div class="popover svelte-rgafhj" role="dialog" aria-label="会话切换"><div class="list svelte-rgafhj"></div> <div class="footer svelte-rgafhj"><button class="new-session mono svelte-rgafhj"> </button></div></div>'),As=p('<div class="switcher svelte-rgafhj"><button class="trigger svelte-rgafhj" aria-haspopup="true" title="Switch session"><span class="glyph-tile svelte-rgafhj"> </span> <span><span class="sr-only svelte-rgafhj"> </span></span> <span class="title svelte-rgafhj"> </span> <span class="caret svelte-rgafhj" aria-hidden="true"><!></span></button> <!></div>');function Rs(Ie,ie){_t(ie,!1);const X=()=>De(ga,"$backends",T),q=()=>De(Ot,"$sessionList",T),Q=()=>De(Ta,"$activeWorkspace",T),ee=()=>De(aa,"$workspaces",T),[T,g]=jt(),w=s(),F=s(),U=s(),R=s(),j=s(),m=s();let I=mt(ie,"activeId",8,void 0),V=s(!1),C=s(!1);function ne(f){const G=f.split(/[\s\-_:./]+/).filter(Boolean);return G.length>=2?(G[0][0]+G[1][0]).toUpperCase():f.slice(0,2).toUpperCase()}function S(f){return ne((f==null?void 0:f.name)||(f==null?void 0:f.id)||"OC")}function z(f){return f==="online"||f==="connected"?"online":f==="connecting"||f==="reconnecting"?"connecting":f==="offline"?"offline":"online"}function $(){t(V,!e(V))}function u(f){t(V,!1),Rt(`/${f}/`)}async function W(){var G;if(e(C))return;const f=Q()||((G=ee()[0])==null?void 0:G.directory)||"";t(C,!0);try{await wa(e(w));const ae=await Se.createSession({directory:f});Ot.set(await Se.sessions()),aa.set(await Se.workspaces()),t(V,!1),Rt(`/${ae.id}/`)}catch(ae){alert(`Create session failed: ${ae.message}`)}finally{t(C,!1)}}function N(f){f.key==="Escape"&&t(V,!1)}function k(f){const G=Date.now()-f,ae=Math.floor(G/6e4);if(ae<1)return"now";if(ae<60)return`${ae}m`;const me=Math.floor(ae/60);return me<24?`${me}h`:`${Math.floor(me/24)}d`}function H(f){return(f.includes("_")?f.slice(f.indexOf("_")+1):f).slice(-8)}h(()=>X(),()=>{var f,G,ae;t(w,((f=X())==null?void 0:f.activeId)??((ae=(G=X())==null?void 0:G.backends[0])==null?void 0:ae.id)??"opencode")}),h(()=>(X(),e(w)),()=>{var f;t(F,(f=X())==null?void 0:f.backends.find(G=>G.id===e(w)))}),h(()=>e(w),()=>{t(U,ka(e(w)))}),h(()=>(q(),e(w)),()=>{t(R,q().filter(f=>f.backendId===e(w)||!f.backendId&&e(w)==="opencode").sort((f,G)=>G.lastActiveAt-f.lastActiveAt))}),h(()=>(q(),$e(I())),()=>{t(j,q().find(f=>f.id===I()))}),h(()=>e(j),()=>{var f;t(m,((f=e(j))==null?void 0:f.title)||"Untitled session")}),yt(),ht();var _e=As();y("keydown",vt,N);var L=o(_e),x=o(L),te=o(x,!0);a(x);var _=r(x,2),be=o(_),xe=o(be,!0);a(be),a(_);var ge=r(_,2),P=o(ge,!0);a(ge);var Z=r(ge,2),pe=o(Z);nt(pe,{name:"caret-down",size:11}),a(Z),a(L);var ve=r(L,2);{var Ce=f=>{var G=Os(),ae=o(G);Te(ae,5,()=>e(R),Me=>Me.id,(Me,de)=>{var le=Ds();let Ee;var d=o(le),K=r(d,2),ye=o(K),We=o(ye,!0);a(ye);var et=r(ye,2),Ye=o(et);a(et),a(K);var He=r(K,2);{var Xe=Ke=>{var Be=js();v(Ke,Be)};A(He,Ke=>{e(de),$e(I()),i(()=>e(de).id===I())&&Ke(Xe)})}a(le),E((Ke,Be)=>{Ee=Qe(le,1,"row svelte-rgafhj",null,Ee,{active:e(de).id===I()}),Qe(d,1,`dot ${e(de),$e(I()),i(()=>e(de).id===I()?"active":"")??""}`,"svelte-rgafhj"),M(We,(e(de),i(()=>e(de).title||"Untitled session"))),M(Ye,`${Ke??""} · ${Be??""}`)},[()=>(e(de),i(()=>H(e(de).id))),()=>(e(de),i(()=>k(e(de).lastActiveAt)))]),y("click",le,()=>u(e(de).id)),v(Me,le)},Me=>{var de=Bs(),le=o(de);a(de),E(()=>M(le,`No sessions on ${e(F),i(()=>{var Ee,d;return((Ee=e(F))==null?void 0:Ee.name)??((d=e(F))==null?void 0:d.id)??"this agent"})??""}.`)),v(Me,de)}),a(ae);var me=r(ae,2),Le=o(me),Ne=o(Le);a(Le),a(me),a(G),E(()=>{Le.disabled=e(C),M(Ne,`+ New session on ${e(F),i(()=>{var Me,de;return((Me=e(F))==null?void 0:Me.name)??((de=e(F))==null?void 0:de.id)??"agent"})??""}`)}),y("click",Le,W),v(f,G)};A(ve,f=>{e(V)&&f(Ce)})}a(_e),E((f,G,ae)=>{ue(L,"aria-expanded",e(V)),Ct(x,`background:${$e(Qt),e(U),i(()=>Qt[e(U)])??""}; color:${$e(ea),e(U),i(()=>ea[e(U)])??""}; border-color:${$e(ta),e(U),i(()=>ta[e(U)])??""}`),M(te,f),Qe(_,1,`status-dot ${G??""}`,"svelte-rgafhj"),M(xe,ae),M(P,e(m))},[()=>(e(F),i(()=>S(e(F)))),()=>(e(F),i(()=>{var f;return z((f=e(F))==null?void 0:f.status)})),()=>(e(F),i(()=>{var f;return z((f=e(F))==null?void 0:f.status)}))]),y("click",L,$),v(Ie,_e),bt(),g()}var Ps=p('<button class="ghost svelte-w3h0m4" title="重新显示计划窗"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span></button>'),Fs=p('<div class="scrim svelte-w3h0m4" aria-hidden="true"></div>'),zs=p('<button role="menuitem" class="svelte-w3h0m4">本会话隐藏</button>'),Ls=p('<div class="menu svelte-w3h0m4" role="menu"><button role="menuitem" class="svelte-w3h0m4">打开任务面板</button> <!></div>'),Ns=p('<button class="crumb svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M15 18l-6-6 6-6"></path></svg> <span> </span></button>'),Ws=p('<div class="row done svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="check svelte-w3h0m4">✓</span></span><span class="tx svelte-w3h0m4"> </span></div>'),Hs=p('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Ks=p('<div class="row running svelte-w3h0m4"><span class="box svelte-w3h0m4"><span class="dot svelte-w3h0m4"></span></span><span class="tx svelte-w3h0m4"> </span></div>'),Js=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Us=p('<div class="row pending svelte-w3h0m4"><span class="box svelte-w3h0m4"></span><span class="tx svelte-w3h0m4"> </span></div>'),Gs=p('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),Vs=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),Ys=p('<button class="row sub jump svelte-w3h0m4" title="打开子代理会话"><span class="sub-dot svelte-w3h0m4" aria-hidden="true"></span> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),Xs=p('<div class="grp static svelte-w3h0m4"><span class="sub-label svelte-w3h0m4"> </span></div> <!>',1),Zs=p('<span class="sub-check svelte-w3h0m4" aria-hidden="true">✓</span>'),Qs=p('<span class="sub-count mono svelte-w3h0m4"> </span>'),en=p('<button class="row sub jump idle svelte-w3h0m4" title="打开子代理会话"><!> <!> <span class="tx svelte-w3h0m4"> </span> <svg class="go svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg></button>'),tn=p('<button class="grp svelte-w3h0m4"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"></path></svg> <span> </span></button> <!>',1),an=p('<!> <div class="plan-card svelte-w3h0m4"><div class="hd svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="title svelte-w3h0m4"> </span> <button class="dots svelte-w3h0m4" aria-label="Plan menu">⋯</button> <button class="close svelte-w3h0m4" aria-label="收起计划"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-w3h0m4"><path d="M18 15l-6-6-6 6"></path></svg></button></div> <!> <div class="body svelte-w3h0m4"><!> <div class="prog mono svelte-w3h0m4"> </div> <!> <!> <!> <!> <!> <!></div></div>',1),sn=p('<span class="badge mono svelte-w3h0m4"> </span>'),nn=p('<button class="bar svelte-w3h0m4"><span class="label svelte-w3h0m4">计划</span> <span class="bar-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!> <svg class="caret svelte-w3h0m4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 15l-6-6-6 6"></path></svg></button>'),on=p('<span class="badge mono svelte-w3h0m4"> </span>'),rn=p('<button class="ball svelte-w3h0m4"><svg class="ring svelte-w3h0m4" viewBox="0 0 38 38" aria-hidden="true"><circle class="track svelte-w3h0m4" cx="19" cy="19"></circle><circle class="arc svelte-w3h0m4" cx="19" cy="19" transform="rotate(-90 19 19)"></circle></svg> <span class="ball-count mono svelte-w3h0m4"> <i class="svelte-w3h0m4">/</i> </span> <!></button>'),ln=p("<!> <!>",1);function cn(Ie,ie){_t(ie,!1);const X=()=>De(Pt,"$feeds",ee),q=()=>De(Ot,"$sessionList",ee),Q=()=>De(na,"$can",ee),[ee,T]=jt(),g=s(),w=s(),F=s(),U=s(),R=s(),j=s(),m=s(),I=s(),V=s(),C=s(),ne=s();let S=mt(ie,"sessionId",8),z=mt(ie,"onJump",8,()=>{});const $="ocrc.planHud.v3",u=5,W=16,N=2*Math.PI*W;let k=s(!1);try{t(k,window.matchMedia("(min-width: 821px)").matches)}catch{}const H=e(k)?"ocrc.planHud.dt3":$;function _e(){if(typeof localStorage>"u")return{};try{const n=JSON.parse(localStorage.getItem(H)??"{}")??{};return{dismissed:n.dismissed,expanded:n.expanded}}catch{return{}}}let L=s(_e()),x=s(e(L).expanded??e(k));function te(n){if(t(L,{...e(L),...n}),!(typeof localStorage>"u"))try{localStorage.setItem(H,JSON.stringify(e(L)))}catch{}}let _=s({total:0,done:0,items:[]}),be=s();async function xe(n){try{const D=await Se.todo(n);if(n!==S())return;t(be,n),t(_,ja(D))}catch{}}let ge=s(),P=s(0),Z=s(-1),pe=s();Ft(()=>clearTimeout(e(pe)));let ve=s([]),Ce=s(),f=!1;async function G(n){if(!f){f=!0;try{const D=await Se.subagents(n);if(n!==S())return;t(ve,[...D.subagents??[]].sort((se,B)=>Number(B.busy??!1)-Number(se.busy??!1))),t(Ce,n)}catch{t(ve,[])}finally{f=!1}}}const ae=n=>`ocrc.subparent.${n}`;let me=s();function Le(n){try{t(me,sessionStorage.getItem(ae(n))??void 0)}catch{t(me,void 0)}}Le(S());function Ne(n){try{sessionStorage.setItem(ae(n.id),S())}catch{}t(K,!1),Oa({id:`sub:${n.id}`,kind:"subagent",title:n.title||"…"+n.id.slice(-6),childId:n.id}),Ht.set(!0)}function Me(){const n=e(me);t(me,void 0),n&&z()(n)}let de=s(),le=s(!1),Ee=s(!1),d=s(!1),K=s(!1);function ye(){t(x,!e(x)),te({expanded:e(x)})}function We(){te({dismissed:[...e(L).dismissed??[],S()].slice(-20)}),t(K,!1)}function et(){te({dismissed:(e(L).dismissed??[]).filter(n=>n!==S())}),t(x,!0),te({expanded:e(x)})}function Ye(){t(K,!1),Ba("tasks"),Ht.set(!0)}let He=s(),Xe=s(),Ke=s(),Be=s();function dt(n){var se,B,b,J;const D=n.target;if(e(K)){if((se=e(Xe))!=null&&se.contains(D)||(B=e(He))!=null&&B.contains(D))return;t(K,!1)}e(x)&&((b=e(Ke))!=null&&b.contains(D)||(J=e(Be))!=null&&J.contains(D)||(t(x,!1),te({expanded:!1})))}h(()=>($e(S()),e(ge)),()=>{S()!==e(ge)&&(t(ge,S()),xe(S()))}),h(()=>(X(),$e(S())),()=>{var n;t(g,((n=X()[S()])==null?void 0:n.lastSeq)??0)}),h(()=>(e(g),e(Z),e(pe),e(P)),()=>{e(g)!==e(Z)&&(t(Z,e(g)),clearTimeout(e(pe)),t(pe,setTimeout(()=>t(P,e(P)+1),1e3)))}),h(()=>(e(P),$e(S())),()=>{e(P)&&(xe(S()),G(S()))}),h(()=>(q(),$e(S())),()=>{t(w,q().find(n=>n.id===S()))}),h(()=>e(w),()=>{var n;t(F,((n=e(w))==null?void 0:n.title)??"")}),h(()=>e(_),()=>{t(U,e(_).items.filter(n=>n.status==="done"))}),h(()=>e(_),()=>{t(R,e(_).items.filter(n=>n.status==="running"))}),h(()=>e(_),()=>{t(j,e(_).items.filter(n=>n.status==="pending"))}),h(()=>e(j),()=>{t(m,Math.max(0,e(j).length-u))}),h(()=>e(_),()=>{t(I,e(_).total?e(_).done/e(_).total:0)}),h(()=>(e(L),$e(S())),()=>{var n;t(V,((n=e(L).dismissed)==null?void 0:n.includes(S()))??!1)}),h(()=>e(ve),()=>{t(C,e(ve).filter(n=>n.busy))}),h(()=>e(ve),()=>{t(ne,e(ve).filter(n=>!n.busy))}),h(()=>(e(x),$e(S()),e(Ce)),()=>{e(x)&&S()&&e(Ce)!==S()&&G(S())}),h(()=>$e(S()),()=>{S()&&Le(S())}),h(()=>($e(S()),e(de)),()=>{S()!==e(de)&&(t(de,S()),t(le,!1),t(Ee,!1),t(d,!1),t(K,!1))}),yt(),ht();var gt=St();y("pointerdown",vt,dt);var ut=Re(gt);{var kt=n=>{var D=ln(),se=Re(D);{var B=he=>{var ce=Ps(),je=r(o(ce),2),Je=o(je,!0),Ae=r(Je,2,!0);a(je),a(ce),E(()=>{M(Je,(e(_),i(()=>e(_).done))),M(Ae,(e(_),i(()=>e(_).total)))}),y("click",ce,et),v(he,ce)},b=he=>{var ce=an(),je=Re(ce);{var Je=Y=>{var fe=Fs();v(Y,fe)};A(je,Y=>{e(k)||Y(Je)})}var Ae=r(je,2),at=o(Ae),rt=r(o(at),2),ot=o(rt,!0);a(rt);var l=r(rt,2);Ve(l,Y=>t(He,Y),()=>e(He));var O=r(l,2);a(at);var oe=r(at,2);{var Ue=Y=>{var fe=Ls(),re=o(fe),qe=r(re,2);{var Oe=Pe=>{var st=zs();y("click",st,We),v(Pe,st)};A(qe,Pe=>{e(k)||Pe(Oe)})}a(fe),Ve(fe,Pe=>t(Xe,Pe),()=>e(Xe)),y("click",re,Ye),v(Y,fe)};A(oe,Y=>{e(K)&&Y(Ue)})}var It=r(oe,2),pt=o(It);{var Et=Y=>{var fe=Ns(),re=r(o(fe),2),qe=o(re);a(re),a(fe),E(Oe=>M(qe,`返回父会话 …${Oe??""}`),[()=>(e(me),i(()=>e(me).slice(-8)))]),y("click",fe,Me),v(Y,fe)};A(pt,Y=>{e(me)&&Y(Et)})}var zt=r(pt,2),ia=o(zt);a(zt);var Jt=r(zt,2);{var la=Y=>{var fe=Hs(),re=Re(fe),qe=o(re);let Oe;var Pe=r(qe,2),st=o(Pe);a(Pe),a(re);var Fe=r(re,2);{var it=Ge=>{var lt=St(),wt=Re(lt);Te(wt,1,()=>e(U),Ze=>Ze.text,(Ze,ke)=>{var ze=Ws(),ct=r(o(ze)),qt=o(ct,!0);a(ct),a(ze),E(()=>M(qt,(e(ke),i(()=>e(ke).text)))),v(Ze,ze)}),v(Ge,lt)};A(Fe,Ge=>{e(le)&&Ge(it)})}E(()=>{ue(re,"aria-expanded",e(le)),Oe=Qe(qe,0,"caret svelte-w3h0m4",null,Oe,{open:e(le)}),M(st,`已完成 ${e(U),i(()=>e(U).length)??""}`)}),y("click",re,()=>t(le,!e(le))),v(Y,fe)};A(Jt,Y=>{e(U),i(()=>e(U).length)&&Y(la)})}var Ut=r(Jt,2);Te(Ut,1,()=>e(R),Y=>Y.text,(Y,fe)=>{var re=Ks(),qe=r(o(re)),Oe=o(qe,!0);a(qe),a(re),E(()=>M(Oe,(e(fe),i(()=>e(fe).text)))),v(Y,re)});var Gt=r(Ut,2);Te(Gt,1,()=>(e(j),i(()=>e(j).slice(0,u))),Y=>Y.text,(Y,fe)=>{var re=Js(),qe=r(o(re)),Oe=o(qe,!0);a(qe),a(re),E(()=>M(Oe,(e(fe),i(()=>e(fe).text)))),v(Y,re)});var Vt=r(Gt,2);{var ca=Y=>{var fe=Gs(),re=Re(fe),qe=o(re);let Oe;var Pe=r(qe,2),st=o(Pe);a(Pe),a(re);var Fe=r(re,2);{var it=Ge=>{var lt=St(),wt=Re(lt);Te(wt,1,()=>(e(j),i(()=>e(j).slice(u))),Ze=>Ze.text,(Ze,ke)=>{var ze=Us(),ct=r(o(ze)),qt=o(ct,!0);a(ct),a(ze),E(()=>M(qt,(e(ke),i(()=>e(ke).text)))),v(Ze,ze)}),v(Ge,lt)};A(Fe,Ge=>{e(Ee)&&Ge(it)})}E(()=>{ue(re,"aria-expanded",e(Ee)),Oe=Qe(qe,0,"caret svelte-w3h0m4",null,Oe,{open:e(Ee)}),M(st,`待处理 ${e(m)??""}`)}),y("click",re,()=>t(Ee,!e(Ee))),v(Y,fe)};A(Vt,Y=>{e(m)>0&&Y(ca)})}var Yt=r(Vt,2);{var va=Y=>{var fe=Xs(),re=Re(fe),qe=o(re),Oe=o(qe);a(qe),a(re);var Pe=r(re,2);Te(Pe,1,()=>e(C),st=>st.id,(st,Fe)=>{var it=Ys(),Ge=r(o(it),2);{var lt=ke=>{var ze=Vs(),ct=o(ze);a(ze),E(()=>M(ct,`${e(Fe),i(()=>e(Fe).done)??""}/${e(Fe),i(()=>e(Fe).total)??""}`)),v(ke,ze)};A(Ge,ke=>{e(Fe),i(()=>e(Fe).total>0)&&ke(lt)})}var wt=r(Ge,2),Ze=o(wt,!0);a(wt),Mt(2),a(it),E(ke=>M(Ze,ke),[()=>(e(Fe),i(()=>e(Fe).title||"…"+e(Fe).id.slice(-6)))]),y("click",it,()=>Ne(e(Fe))),v(st,it)}),E(()=>M(Oe,`子代理 · 运行中 ${e(C),i(()=>e(C).length)??""}`)),v(Y,fe)};A(Yt,Y=>{e(C),i(()=>e(C).length)&&Y(va)})}var da=r(Yt,2);{var ua=Y=>{var fe=tn(),re=Re(fe),qe=o(re);let Oe;var Pe=r(qe,2),st=o(Pe);a(Pe),a(re);var Fe=r(re,2);{var it=Ge=>{var lt=St(),wt=Re(lt);Te(wt,1,()=>e(ne),Ze=>Ze.id,(Ze,ke)=>{var ze=en(),ct=o(ze);{var qt=ft=>{var Tt=Zs();v(ft,Tt)};A(ct,ft=>{e(ke),i(()=>e(ke).total>0&&e(ke).done>=e(ke).total)&&ft(qt)})}var Xt=r(ct,2);{var pa=ft=>{var Tt=Qs(),ma=o(Tt);a(Tt),E(()=>M(ma,`${e(ke),i(()=>e(ke).done)??""}/${e(ke),i(()=>e(ke).total)??""}`)),v(ft,Tt)};A(Xt,ft=>{e(ke),i(()=>e(ke).total>0)&&ft(pa)})}var Zt=r(Xt,2),fa=o(Zt,!0);a(Zt),Mt(2),a(ze),E(ft=>M(fa,ft),[()=>(e(ke),i(()=>e(ke).title||"…"+e(ke).id.slice(-6)))]),y("click",ze,()=>Ne(e(ke))),v(Ze,ze)}),v(Ge,lt)};A(Fe,Ge=>{e(d)&&Ge(it)})}E(()=>{ue(re,"aria-expanded",e(d)),Oe=Qe(qe,0,"caret svelte-w3h0m4",null,Oe,{open:e(d)}),M(st,`已结束 ${e(ne),i(()=>e(ne).length)??""}`)}),y("click",re,()=>t(d,!e(d))),v(Y,fe)};A(da,Y=>{e(ne),i(()=>e(ne).length)&&Y(ua)})}a(It),a(Ae),Ve(Ae,Y=>t(Ke,Y),()=>e(Ke)),E(Y=>{M(ot,Y),M(ia,`任务 ${e(_),i(()=>e(_).done)??""}/${e(_),i(()=>e(_).total)??""}`)},[()=>(e(F),$e(S()),i(()=>e(F)||"…"+S().slice(-8)))]),y("click",l,Da(()=>t(K,!e(K)))),y("click",O,ye),v(he,ce)};A(se,he=>{e(V)&&!e(k)?he(B):e(x)&&he(b,1)})}var J=r(se,2);{var we=he=>{var ce=nn(),je=r(o(ce),2),Je=o(je,!0),Ae=r(Je,2,!0);a(je);var at=r(je,2);{var rt=ot=>{var l=sn(),O=o(l,!0);a(l),E(()=>M(O,(e(C),i(()=>e(C).length)))),v(ot,l)};A(at,ot=>{e(C),i(()=>e(C).length>0)&&ot(rt)})}Mt(2),a(ce),Ve(ce,ot=>t(Be,ot),()=>e(Be)),E(()=>{ue(ce,"aria-label",(e(_),i(()=>`展开计划 ${e(_).done}/${e(_).total}`))),M(Je,(e(_),i(()=>e(_).done))),M(Ae,(e(_),i(()=>e(_).total)))}),y("click",ce,ye),v(he,ce)},tt=he=>{var ce=rn(),je=o(ce),Je=o(je);ue(Je,"r",W);var Ae=r(Je);ue(Ae,"r",W),a(je);var at=r(je,2),rt=o(at,!0),ot=r(rt,2,!0);a(at);var l=r(at,2);{var O=oe=>{var Ue=on(),It=o(Ue,!0);a(Ue),E(()=>M(It,(e(C),i(()=>e(C).length)))),v(oe,Ue)};A(l,oe=>{e(C),i(()=>e(C).length>0)&&oe(O)})}a(ce),Ve(ce,oe=>t(Be,oe),()=>e(Be)),E(oe=>{ue(ce,"aria-label",(e(_),e(x),i(()=>`计划 ${e(_).done}/${e(_).total} — ${e(x)?"收起":"展开"}`))),ue(ce,"aria-expanded",e(x)),ue(Ae,"stroke-dasharray",oe),M(rt,(e(_),i(()=>e(_).done))),M(ot,(e(_),i(()=>e(_).total)))},[()=>(e(I),i(()=>`${Math.max(N*e(I),N*.02)} ${N}`))]),y("click",ce,ye),v(he,ce)};A(J,he=>{e(k)&&!e(x)?he(we):!e(V)&&!(e(k)&&!e(x))&&he(tt,1)})}v(n,D)},c=Bt(()=>(e(be),$e(S()),e(_),e(ve),e(me),Q(),i(()=>e(be)===S()&&(e(_).total>0||e(ve).length>0||e(me))&&Q()("todos"))));A(ut,n=>{e(c)&&n(kt)})}v(Ie,gt),bt(),T()}var vn=p('<button class="expand svelte-eho102" title="Expand left panel" aria-label="展开左侧面板"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"></path></svg></button>'),dn=p('<span class="branch mono svelte-eho102"> </span>'),un=p('<span class="pill running mono svelte-eho102"><span class="dot svelte-eho102" aria-hidden="true"></span> </span>'),pn=p('<span class="idle mono svelte-eho102">空闲</span>'),fn=p('<button class="load-earlier mono svelte-eho102"> </button>'),mn=p('<div class="loading mono svelte-eho102" aria-label="Loading conversation"><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span><span class="ldot svelte-eho102"></span></div>'),hn=p('<div class="empty svelte-eho102"><svg class="empty-mark svelte-eho102" viewBox="0 0 64 64" fill="none" stroke-width="8" stroke-linecap="round" aria-hidden="true"><path d="M46 15 A24 24 0 1 0 54 32" stroke="var(--text)" opacity=".85"></path><circle cx="49" cy="20" r="6" fill="var(--accent)" stroke="none"></circle></svg> <p class="empty-title svelte-eho102">要让 agent 做什么?</p> <p class="empty-hint svelte-eho102">在下方描述任务——它将在本项目目录中运行。需要时可附上图片。</p></div>'),_n=p('<button class="jump svelte-eho102" aria-label="跳到最新"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14"></path><path d="M19 12l-7 7-7-7"></path></svg> 最新</button>'),bn=p('<div class="chat svelte-eho102"><div class="sub-header svelte-eho102"><div class="left svelte-eho102"><button class="back svelte-eho102" aria-label="返回会话列表"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button> <!> <!> <!></div> <div class="right svelte-eho102"><!> <button class="inspect svelte-eho102" aria-label="Inspector"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="7" x2="20" y2="7"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="17" x2="14" y2="17"></line></svg></button></div></div> <div aria-live="polite"><!> <!> <div class="stream-end svelte-eho102" aria-hidden="true"></div> <!></div></div> <!> <div class="composer-float svelte-eho102"><!> <!></div> <!>',1);function Sn(Ie,ie){_t(ie,!1);const X=()=>De(Aa,"$page",w),q=()=>De(Pt,"$feeds",w),Q=()=>De(Ot,"$sessionList",w),ee=()=>De(ra,"$composerEmpty",w),T=()=>De(sa,"$leftPanelOpen",w),g=()=>De(Pa,"$feedResyncing",w),[w,F]=jt(),U=s(),R=s(),j=s(),m=s(),I=s(),V=s(),C=s(),ne=s(),S=s();let z=s(),$=s(),u=s(),W,N=s(""),k,H,_e=s(0),L=s(0),x=s(),te=s(!0);function _(){e(z)&&$t(z,e(z).scrollTop=e(z).scrollHeight)}function be(){e(z)&&t(te,e(z).scrollHeight-e(z).scrollTop-e(z).clientHeight<80)}const xe=80,ge=50;let P=s(xe),Z=s(0),pe=s(!0),ve=s(!1),Ce=s("");async function f(){if(e(ve)||!e(R))return;if(e(m).length>e(P)){t(P,e(P)+xe);return}if(!e(pe))return;t(ve,!0);const l=e(z),O=l?{h:l.scrollHeight,top:l.scrollTop}:null;try{const oe=await Se.history(e(R),{limit:ge,offset:e(Z)});(oe.cards??[]).length===0?t(pe,!1):(xa(e(R),oe.cards),t(Z,e(Z)+ge),t(P,e(P)+xe),oe.hasMore===!1&&t(pe,!1),O&&l&&(await At(),l.scrollTop=l.scrollHeight-O.h+O.top))}catch(oe){console.warn("[page] loadEarlier failed",oe)}finally{t(ve,!1)}}let G=s("");function ae(l){if(l<60)return`${l}s`;const O=Math.floor(l/60),oe=l%60;return oe===0?`${O}m`:`${O}m ${oe}s`}function me(){K()}const Le=["总结这个项目","最近有什么改动?","运行检查"];let Ne=s(!1),Me=s([]),de;async function le(l,O){if(de!==O){de=O;try{const oe=await Se.suggestions(l);t(Me,oe.suggestions??[])}catch{t(Me,[])}}}let Ee=s(),d=s([]);function K(){if(!e(R))return;const l=[...e(m)].reverse().find(oe=>oe.kind==="user"),O=l==null?void 0:l.text;O&&Se.sendMessage({sessionId:e(R),text:O,clientId:`web_${Date.now()}`})}Kt(()=>{k=new ResizeObserver(()=>{e($)&&(document.documentElement.style.setProperty("--composer-h",`${e($).offsetHeight}px`),e(te)&&_()),e(z)&&document.documentElement.style.setProperty("--sbw",`${e(z).offsetWidth-e(z).clientWidth}px`)}),e($)&&k.observe(e($)),e(z)&&k.observe(e(z)),W=new IntersectionObserver(oe=>{e(te)&&oe.some(Ue=>!Ue.isIntersecting)&&requestAnimationFrame(_)},{root:e(z),threshold:0}),e(u)&&W.observe(e(u));const l=window.visualViewport,O=()=>{e(te)&&requestAnimationFrame(_)};l==null||l.addEventListener("resize",O),H=()=>l==null?void 0:l.removeEventListener("resize",O)}),Ft(()=>{k==null||k.disconnect(),W==null||W.disconnect(),H==null||H(),e(x)&&clearInterval(e(x))}),h(()=>X(),()=>{t(R,X().params.sessionId??"")}),h(()=>(e(R),e(Ce)),()=>{e(R)&&e(R)!==e(Ce)&&(t(Ce,e(R)),t(P,xe),t(Z,0),t(pe,!0),t(ve,!1))}),h(()=>(q(),e(R)),()=>{t(j,q()[e(R)])}),h(()=>e(j),()=>{t(m,Nt(e(j)))}),h(()=>(e(P),e(m)),()=>{t(U,e(P)>=e(m).length?e(m):e(m).slice(-e(P)))}),h(()=>(Q(),e(R)),()=>{t(I,Q().find(l=>l.id===e(R)))}),h(()=>e(I),()=>{var l;t(V,(l=e(I))!=null&&l.directory&&e(I).directory.replace(/\/+$/,"").split("/").pop()||"")}),h(()=>e(j),()=>{t(C,(()=>{if(!e(j)||e(j).order.length===0)return!1;const l=e(j).byId[e(j).order[e(j).order.length-1]];return(l==null?void 0:l.kind)==="thinking"||(l==null?void 0:l.kind)==="streaming"||(l==null?void 0:l.kind)==="think-stream"})())}),h(()=>(e(C),e(G),e(R),e(_e),e(x)),()=>{e(C)?(e(G)!==e(R)&&(t(G,e(R)),t(_e,0)),!e(_e)&&typeof window<"u"&&(t(_e,Date.now()),t(L,0),e(x)&&clearInterval(e(x)),t(x,setInterval(()=>{t(L,Math.floor((Date.now()-e(_e))/1e3))},1e3)))):(t(_e,0),t(L,0),t(G,""),e(x)&&(clearInterval(e(x)),t(x,void 0)))}),h(()=>e(m),()=>{t(ne,e(m).length?e(m)[e(m).length-1]:null)}),h(()=>(e(C),e(ne),e(R)),()=>{var l;!e(C)&&((l=e(ne))==null?void 0:l.kind)==="assistant"&&e(R)&&e(ne).id&&le(e(R),e(ne).id)}),h(()=>(e(R),e(Ee)),()=>{e(R)!==e(Ee)&&(t(Ee,e(R)),t(Ne,!1))}),h(()=>(e(C),e(Ne),ee(),e(Me),e(m)),()=>{e(C)||e(Ne)||!ee()?t(d,[]):e(Me).length>0?t(d,e(Me)):e(m).length===0?t(d,Le):t(d,[])}),h(()=>(e(R),e(j),e(m)),()=>{var l;t(S,`${e(R)}:${((l=e(j))==null?void 0:l.lastSeq)??0}:${e(m).length}`)}),h(()=>(e(S),e(N),e(te)),()=>{e(S)!==e(N)&&(t(N,e(S)),At().then(()=>{e(te)&&_()}))}),yt(),ht();var ye=bn(),We=Re(ye),et=o(We),Ye=o(et),He=o(Ye),Xe=r(He,2);{var Ke=l=>{var O=vn();y("click",O,()=>sa.set(!0)),v(l,O)};A(Xe,l=>{T()||l(Ke)})}var Be=r(Xe,2);Rs(Be,{get activeId(){return e(R)}});var dt=r(Be,2);{var gt=l=>{var O=dn(),oe=o(O,!0);a(O),E(()=>M(oe,e(V))),v(l,O)};A(dt,l=>{e(V)&&l(gt)})}a(Ye);var ut=r(Ye,2),kt=o(ut);{var c=l=>{var O=un(),oe=r(o(O));a(O),E(Ue=>M(oe,` 运行中 ${Ue??""}`),[()=>(e(L),i(()=>ae(e(L))))]),v(l,O)},n=l=>{var O=pn();v(l,O)};A(kt,l=>{e(C)?l(c):l(n,-1)})}var D=r(kt,2);a(ut),a(et);var se=r(et,2);let B;var b=o(se);{var J=l=>{var O=fn(),oe=o(O,!0);a(O),E(()=>{O.disabled=e(ve),M(oe,e(ve)?"加载中…":"加载更早消息")}),y("click",O,f),v(l,O)};A(b,l=>{e(m),e(P),e(pe),i(()=>e(m).length>0&&(e(m).length>e(P)||e(pe)))&&l(J)})}var we=r(b,2);Te(we,1,()=>e(U),l=>l.id,(l,O)=>{{let oe=Sa(()=>(e(O),e(ne),e(C),i(()=>{var Ue;return e(O).id===((Ue=e(ne))==null?void 0:Ue.id)&&e(O).kind==="assistant"&&!e(C)?me:void 0})));Ra(l,{get card(){return e(O)},onRetry:K,get onRegenerate(){return e(oe)}})}});var tt=r(we,2);Ve(tt,l=>t(u,l),()=>e(u));var he=r(tt,2);{var ce=l=>{var O=St(),oe=Re(O);{var Ue=pt=>{var Et=mn();v(pt,Et)},It=pt=>{var Et=hn();v(pt,Et)};A(oe,pt=>{e(j)?pt(It,-1):pt(Ue)})}v(l,O)};A(he,l=>{e(m),i(()=>e(m).length===0)&&l(ce)})}a(se),a(We),Ve(We,l=>t(z,l),()=>e(z));var je=r(We,2);{var Je=l=>{var O=_n();y("click",O,_),v(l,O)};A(je,l=>{e(te),e(m),i(()=>!e(te)&&e(m).length>0)&&l(Je)})}var Ae=r(je,2),at=o(Ae);La(at,{get suggestions(){return e(d)},onPick:l=>Wt.set({text:l,nonce:Date.now()}),onDismiss:()=>{t(Ne,!0),t(d,[])}});var rt=r(at,2);Ts(rt,{get sessionId(){return e(R)}}),a(Ae),Ve(Ae,l=>t($,l),()=>e($));var ot=r(Ae,2);cn(ot,{get sessionId(){return e(R)},onJump:l=>Rt("/"+l)}),E(()=>B=Qe(se,1,"stream conversation-emerald svelte-eho102",null,B,{suppressed:g()})),y("click",He,()=>Rt("/")),y("click",D,()=>Ht.update(l=>!l)),y("scroll",We,be),v(Ie,ye),bt(),F()}export{Sn as component};
|