UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

4,055 lines • 651 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./session-snapshot-database-BBKeXATO.js","./plugin-contracts-runtime-ByiEPbv_.js","./config-runtime-BecGLziM.js","./control-ui-core-DI-Q_yCI.css","./control-ui-boot-shared-styles-DUf4zEvn.css","./control-ui-boot-shared-DIWJGbGi.css","./lobster-favicon-B1-d4YOu.js","./control-ui-boot-new-CkyIHJ_L.js","./chat-transcript-styles-BN-TorbW.js","./control-ui-boot-new-styles-cChqenO3.js","./chat-transcript-styles-B0IJwY9P.css","./control-ui-boot-new-styles-BS7lzENV.css","./control-ui-boot-new-D-SpiTTi.css","./custodian-alert-store-DMTYYmJp.js","./channel-avatar-BGPmiYTL.js","./control-ui-boot-chat-CGYcTLro.js","./control-ui-boot-chat-Ye5j4vAg.js","./control-ui-boot-chat-CmENwCKi.js","./control-ui-boot-chat-XPUNenUd.js","./control-ui-boot-chat-k_u3nGjS.js","./control-ui-boot-chat-styles-BcslGtWC.js","./control-ui-boot-chat-styles-SRk09zDG.css","./control-ui-boot-chat-C2DT0d4M.css","./session-organizer-operations.runtime-SirMtAXt.js","./session-workspace-recovery.runtime-C0JCx4Ml.js","./input-dialog-CnAqzRxY.js","./cloud-worker-stop.runtime-B791S2pQ.js","./session-group-defaults-dialog-BXDAWnDl.js","./sidebar-people.runtime-CKP5u6WU.js","./sidebar-agent-roster-Bur9kdR6.js","./roster-element-DI75fxGv.js","./sidebar-agent-roster-BbA0HhFs.css","./session-progress-hovercard.runtime-CGFOHb0n.js","./control-ui-boot-chat-B-b-JQel.js","./control-ui-boot-chat-BD9CwLj7.js","./control-ui-boot-chat-DhbON6pC.css","./session-progress-hovercard-CWlzJYa-.css"])))=>i.map(i=>d[i]);
import{n as e,r as t}from"./rolldown-runtime-8BhlS34s.js";import{$c as n,$l as r,$t as i,Al as a,Au as o,B as s,Cr as c,El as l,Eo as u,Eu as d,Fc as f,Fl as p,Fo as m,Ga as h,Gl as g,Gs as _,Hc as v,Ho as y,Hr as b,Hs as x,I as S,Ic as C,Jc as w,Jr as ee,Js as te,K as ne,Ks as re,Ku as T,Lc as E,Ll as D,Lt as ie,Lu as ae,Mc as oe,Ml as se,Mu as ce,Nc as le,Nl as ue,No as de,Nu as O,Ou as fe,P as pe,Pl as me,Ps as he,Pu as k,Ql as ge,Qt as _e,Rs as ve,Rt as ye,Tl as be,Tu as xe,Ua as Se,Uc as Ce,Ul as we,Ur as Te,V as Ee,Vl as De,Vo as Oe,Vr as ke,W as Ae,Wc as je,Wl as Me,Wo as Ne,Wr as Pe,Xc as Fe,Xl as Ie,Xo as Le,Xu as Re,Yo as ze,Yr as Be,Ys as Ve,Yu as He,Zc as Ue,Zl as We,_c as Ge,_u as Ke,ac as qe,br as Je,cs as Ye,dl as Xe,dn as Ze,ds as Qe,dt as $e,ea as et,el as tt,fl as nt,fu as rt,gc as it,gu as at,hl as ot,hu as st,i as ct,ia as lt,il as ut,jc as dt,jo as ft,ju as pt,k as mt,kl as A,ku as ht,lc as gt,ll as _t,lt as vt,n as yt,nc as bt,nl as xt,oc as St,qs as Ct,ra as wt,rc as Tt,sc as Et,uc as Dt,ul as Ot,un as kt,uu as At,vu as jt,wl as j,wr as Mt,xu as Nt,yu as M,z as Pt,zl as Ft,zo as It,zt as Lt,zu as N}from"./control-ui-core-CBJ5efDh.js";import{C as Rt,S as zt,T as Bt,dt as Vt,r as Ht,w as Ut}from"./control-ui-boot-shared-gZIpWrfw.js";import{$ as Wt,$i as Gt,$n as Kt,Aa as qt,Ai as Jt,Ao as Yt,At as Xt,Ba as Zt,Br as Qt,Bt as $t,Ca as en,Ea as tn,Ei as nn,Fa as rn,Fi as an,Ga as on,Gr as sn,Gt as cn,Hr as ln,Ia as un,Ji as dn,Ka as fn,Kt as pn,La as mn,Lr as hn,Ma as gn,Na as _n,Ni as vn,No as yn,Oa as bn,Q as xn,Qi as Sn,Qr as Cn,Ra as wn,Rr as Tn,Sa as En,T as Dn,Ta as On,Ti as kn,Ua as An,Ui as jn,Ut as Mn,Vr as Nn,Wa as Pn,Wr as Fn,Wt as In,X as Ln,Z as Rn,Zr as zn,Zt as Bn,_a as Vn,_o as Hn,a as Un,aa as Wn,an as Gn,ar as Kn,at as qn,ba as Jn,bo as Yn,c as Xn,ca as P,cn as Zn,da as Qn,dn as $n,dr as er,ea as tr,ei as nr,er as rr,et as ir,fa as ar,fn as or,ga as sr,go as cr,gt as lr,ha as ur,hn as dr,ht as fr,i as pr,ia as mr,it as hr,ja as gr,jt as _r,ki as vr,la as yr,ma as br,mt as xr,na as Sr,nr as Cr,nt as wr,o as Tr,on as Er,or as Dr,pa as Or,po as kr,qr as Ar,ra as jr,ri as Mr,rt as Nr,s as Pr,sa as F,sn as Fr,sr as Ir,ta as Lr,tn as Rr,tt as zr,ui as Br,ur as Vr,ut as Hr,va as Ur,vo as Wr,w as Gr,wn as Kr,wo as qr,ya as Jr,zr as Yr,zt as Xr}from"./control-ui-core-DtLivg_r.js";import{$ as Zr,A as Qr,E as $r,G as I,J as L,K as ei,M as ti,N as ni,P as ri,W as R,X as z,Z as B,_ as ii,at as V,c as ai,et as oi,f as si,g as ci,i as li,k as ui,l as di,lt as fi,n as pi,o as mi,p as hi,q as gi,rt as H,s as _i,t as vi,y as yi}from"./lit-runtime-IOnANfcZ.js";import{An as bi,Bt as xi,Dn as Si,Gn as Ci,Ht as wi,It as Ti,Jn as Ei,Kn as Di,Lt as Oi,Mn as ki,On as Ai,T as ji,Vt as Mi,Wn as Ni,Xt as Pi,Yt as Fi,_t as Ii,dt as Li,gt as Ri,h as zi,ht as Bi,jn as Vi,lt as Hi,m as Ui,p as Wi,qn as Gi,ut as Ki,vt as qi,w as Ji}from"./control-ui-boot-shared-CkXlyZBY.js";import{c as Yi,d as Xi,l as Zi}from"./gateway-runtime-C77LeWZN.js";import{Aa as Qi,An as $i,At as ea,Bn as ta,Ca as na,Da as ra,Dn as ia,Ea as aa,En as oa,Fa as sa,Fn as ca,Ft as la,Hn as ua,In as da,It as fa,Jt as pa,Ln as ma,Lt as ha,Ma as ga,Mn as _a,Nn as va,Oa as ya,On as ba,Pn as xa,Pt as Sa,Qt as Ca,Sa as wa,Ta,Tn as Ea,Tr as Da,Un as Oa,Ut as ka,Vn as Aa,Wt as ja,Xt as Ma,_a as Na,_n as Pa,da as Fa,fa as Ia,fi as La,ga as Ra,ha as za,ii as Ba,jn as Va,jt as Ha,kn as Ua,kr as Wa,kt as Ga,n as Ka,t as qa,vn as Ja,vt as Ya,wa as Xa,ya as Za,yt as Qa,zn as $a,zt as eo}from"./control-ui-boot-shared-UG5ko-VG.js";import{An as to,Bi as no,Bo as ro,D as io,Fo as ao,Gi as oo,J as so,Jr as co,Jt as lo,K as uo,Kt as fo,La as po,Ma as mo,Mo as ho,Mt as go,N as _o,On as vo,Po as yo,Ra as bo,Sr as xo,Ui as So,Ur as Co,Wr as wo,Wt as To,Xt as Eo,Yt as Do,Zi as Oo,Zr as U,da as ko,dn as Ao,ea as jo,fi as Mo,fo as No,ft as Po,h as Fo,ha as Io,hi as Lo,hn as Ro,i as zo,in as Bo,jt as Vo,ka as Ho,kn as Uo,m as Wo,ma as Go,mo as Ko,mt as qo,n as Jo,na as Yo,o as Xo,pa as W,qr as Zo,qt as Qo,r as $o,ra as es,ro as ts,u as ns,uo as G,va as rs,vi as is,wa as as,wi as os,xa as ss,xr as cs,ya as ls,yi as us,zi as ds,zo as fs}from"./ui-CmSP4d14.js";import{B as ps,C as ms,F as hs,I as gs,L as _s,M as vs,N as ys,O as bs,U as xs,V as Ss,W as Cs,d as ws,g as Ts,h as Es,i as Ds,j as Os,m as ks,n as As,p as js,r as Ms,s as Ns,st as Ps,t as Fs,u as Is,w as Ls,x as Rs,z as zs}from"./control-ui-boot-shared-VLPz5vN2.js";import{_ as Bs,a as Vs,i as Hs,m as Us,o as Ws,r as Gs,y as Ks}from"./control-ui-boot-shared-SQHdJTzb.js";import{$c as qs,$l as Js,$p as Ys,Ac as Xs,Bc as Zs,Bl as Qs,Ca as $s,Dl as ec,Ec as tc,El as nc,Fc as rc,Fl as ic,Gf as ac,Gl as oc,Hc as sc,Il as cc,Jc as lc,Jl as uc,Kc as dc,Kl as fc,Lc as pc,Ll as mc,Mc as hc,Ml as gc,Nl as _c,Oc as vc,Ol as yc,Pc as bc,Pl as xc,Ql as Sc,Rl as Cc,Sa as wc,Tc,Tl as Ec,Uc as Dc,Uf as Oc,Vc as kc,Vl as Ac,Xc as jc,Xl as Mc,Yc as Nc,Yl as Pc,Zc as Fc,Zl as Ic,_ as Lc,_l as Rc,al as zc,am as Bc,ca as Vc,cl as Hc,cu as Uc,dm as Wc,du as Gc,el as Kc,eu as qc,fu as Jc,g as Yc,gl as Xc,gu as Zc,hu as Qc,il as $c,im as el,iu as tl,kc as nl,la as rl,ll as il,lm as al,lu as ol,ml as sl,mu as cl,nu as ll,ol as ul,pl as dl,qc as fl,ql as pl,rm as ml,ru as hl,sa as gl,sl as _l,sm as vl,su as yl,tl as bl,tu as xl,ul as Sl,vu as Cl,wa as wl,wc as Tl,wl as El,xa as Dl,xl as Ol,yu as kl,zc as Al}from"./control-ui-boot-shared-dOnP4mAA.js";import{B as jl,C as Ml,D as Nl,E as Pl,G as Fl,H as Il,L as Ll,U as Rl,b as zl,c as Bl,i as Vl,s as Hl,v as K,w as Ul,x as Wl}from"./control-ui-boot-shared-Q8KG_noF.js";import{A as Gl,C as Kl,D as ql,M as Jl,N as Yl,P as Xl,T as Zl,_ as Ql,a as $l,c as eu,f as tu,g as nu,h as ru,i as iu,j as au,k as ou,m as su,n as cu,o as lu,p as uu,u as du,v as fu,w as pu,x as mu,y as hu}from"./markdown-runtime-ORQpioyT.js";import"./control-ui-boot-shared-styles-BXPMRytW.js";import{t as gu}from"./sidebar-update-runtime-DQZboSgD.js";var _u=t({createCanvasSurfaceLease:()=>vu});function vu(e){let t=null,n=null,r=null,i=0,a=0,o=!1,s=e=>o&&a===e,c=()=>{n!==null&&(globalThis.clearTimeout(n),n=null)},l=(e,t)=>{s(t)&&(c(),n=globalThis.setTimeout(()=>{s(t)&&(n=null,d(t))},Qo(e,{minMs:xu})))},u=e=>{if(!s(e))return;i+=1;let t=Math.min(Cu*2**(i-1),wu);l(t,e)},d=n=>{if(r?.generation===n||!s(n)||!t)return;let a=t,o=Promise.resolve().then(()=>e.request(`plugin.surface.refresh`,{surface:`canvas`,observedUrl:a})).then(r=>{if(!s(n)||t!==a)return;let o=yu(r);if(!o){u(n);return}i=0,t=o.canvasUrl,e.onChange(t);let c=o.expiresAtMs===void 0?Su:o.expiresAtMs-Date.now()-bu;l(c,n)}).catch(e=>{e instanceof lo&&e.gatewayCode===`FORBIDDEN`||u(n)}).finally(()=>{r?.promise===o&&(r=null)});r={generation:n,promise:o}};return{start(n){a+=1,o=!0,i=0,c(),t=n?.trim()||null,e.onChange(t),t&&d(a)},stop(){(o||t!==null||n!==null)&&(a+=1,o=!1,i=0,c(),t=null,e.onChange(null))}}}function yu(e){if(!e||typeof e!=`object`)return;let t=e;if(t.surface!==`canvas`)return;let n=t.pluginSurfaceUrls;if(!as(n))return;let r=n.canvas;if(typeof r!=`string`||!r.trim())return;let i=t.expiresAtMs;if(!(i!==void 0&&(typeof i!=`number`||!Number.isSafeInteger(i)||i<=0)))return{canvasUrl:r.trim(),...i===void 0?{}:{expiresAtMs:i}}}var bu,xu,Su,Cu,wu;function Tu(){return(Tu=e((()=>{Eo(),fo(),bu=15e3,xu=1e3,Su=6e4,Cu=1e3,wu=3e5})))()}function Eu({fill:e,glyph:t}){let n=e=>e.replaceAll(`&`,`&amp;`).replaceAll(`"`,`&quot;`).replaceAll(`<`,`&lt;`);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${Vn.viewBox}" fill="none"><rect x="${Vn.inset}" y="${Vn.inset}" width="${Vn.size}" height="${Vn.size}" rx="${Vn.radius}" fill="${n(e)}"/><path d="${Vn.glyph}" fill="none" stroke="${n(t)}" stroke-width="${Vn.strokeWidth}" stroke-linecap="round" stroke-linejoin="round"/></svg>`}function Du(){return(Du=e((()=>{Ur()})))()}var Ou=t({applyControlUiPresentation:()=>ku,invalidateControlUiFaviconPalette:()=>ju,syncControlUiFavicon:()=>Iu});function ku(e){ju(),Fr(e.seamColor);let t=document.documentElement,n=e.environment;if(!n){let e=t.getAttribute(Ho);if(e){let t=` · ${JSON.parse(e).label}`;document.title.endsWith(t)&&(document.title=document.title.slice(0,-t.length))}t.removeAttribute(Ho),t.style.removeProperty(`--control-ui-environment-color`),t.style.removeProperty(`--control-ui-environment-ink`),document.querySelector(`.control-ui-environment-stripe`)?.remove(),Iu();return}if(t.setAttribute(Ho,JSON.stringify(n)),t.style.setProperty(`--control-ui-environment-color`,`var(--control-ui-environment-${n.color})`),t.style.setProperty(`--control-ui-environment-ink`,`var(--control-ui-environment-${n.color}-ink)`),!document.querySelector(`.control-ui-environment-stripe`)){let e=document.createElement(`div`);e.className=`control-ui-environment-stripe`,e.setAttribute(`aria-hidden`,`true`),document.body.prepend(e)}document.title.endsWith(` · ${n.label}`)||(document.title=`${document.title} · ${n.label}`),Iu()}function Au(e,t=`square`){(Bu!==e||Vu!==t)&&(Bu=e,Vu=t,Iu())}function ju(){Hu=void 0}function Mu(e){zu!==e&&(zu=e,ju()),Iu()}function Nu(e,t){for(let[n,r]of[[`href`,t[0]],[`type`,t[1]]])r===null?e.removeAttribute(n):e.setAttribute(n,r)}function Pu(){let e=document.documentElement,t=getComputedStyle(e),n=e.getAttribute(Ho),r=n?JSON.parse(n):null,i=r?t.getPropertyValue(`--control-ui-environment-${r.color}`).trim():``,a=br().brandIcon===`claw`?i?`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><path fill="${i}" d="M60 10C30 10 15 35 15 55c0 20 15 40 30 45v10h10v-10h10v10h10v-10c15-5 30-25 30-45 0-20-15-45-45-45Z"/></svg>`:null:Eu({fill:t.getPropertyValue(`--primary`).trim(),glyph:t.getPropertyValue(`--primary-foreground`).trim()}),o=a?`data:image/svg+xml,${encodeURIComponent(a)}`:null,s=e.dataset.themeMode===`light`,c={attention:s?`--session-color-orange`:`--warn`,working:s?`--info`:`--accent`,done:`--ok`,disconnected:`--muted`,idle:``}[zu];return{baseSvg:o,color:c?t.getPropertyValue(c).trim():``,ring:t.getPropertyValue(`--bg`).trim()}}function Fu(){return(Hu??=Pu()).baseSvg}function Iu(){let{baseSvg:e,color:t,ring:n}=Hu??=Pu();t||Uu.clear();for(let r of document.querySelectorAll(`link[rel="icon"]`)){if(!Bu&&!e&&!t){Wu.delete(r),r.dataset.openclawOriginalFavicon&&(Nu(r,JSON.parse(r.dataset.openclawOriginalFavicon)),delete r.dataset.openclawOriginalFavicon);continue}r.dataset.openclawOriginalFavicon??=JSON.stringify([r.getAttribute(`href`),r.getAttribute(`type`)]);let i=JSON.parse(r.dataset.openclawOriginalFavicon),a=Bu,o=a?.src??e??i[0],s=a||e?`image/svg+xml`:i[1],c=a?Vu:`square`,l=JSON.stringify([o,s,t,n,c]),u=Wu.get(r);if(u?.signature===l&&u.image===a)continue;let d={signature:l,image:a};if(Wu.set(r,d),!t&&!a||!o){Nu(r,[o,s]);continue}Ru(o,s,t,n,a,c).then(e=>{r.isConnected&&Wu.get(r)===d&&(r.href=e.href,r.type=e.type)},e=>{Wu.get(r)===d&&(Wu.delete(r),a?Au(null):Nu(r,[o,s]),console.warn(`[openclaw] favicon status could not be composed`,e))})}}async function Lu(e,t){if(t===`image/svg+xml`||/(?:\.svg(?:[?#]|$)|^data:image\/svg\+xml)/i.test(e)){let t=await fetch(e);if(!t.ok)throw Error(`Favicon loading failed (${t.status})`);let n=new DOMParser().parseFromString(await t.text(),`image/svg+xml`),r=n.documentElement;if(n.querySelector(`parsererror`)||r.localName!==`svg`||r.namespaceURI!==Gu)throw Error(`Invalid SVG favicon`);return{svg:r}}let n=new Image;return n.src=e,await n.decode(),{image:n}}async function Ru(e,t,n,r,i,a){let o=i?{image:i}:await Io(Uu,JSON.stringify([e,t]),()=>Lu(e,t),{cacheRejections:!1});if(`svg`in o){let e=new DOMParser().parseFromString(`<svg xmlns="${Gu}" viewBox="0 0 32 32" width="32" height="32"><circle cx="25.5" cy="25.5" r="5" stroke-width="2"/></svg>`,`image/svg+xml`).documentElement,t=e.firstElementChild;t.setAttribute(`fill`,n),t.setAttribute(`stroke`,r);let i=document.importNode(o.svg,!0);return i.setAttribute(`x`,`0`),i.setAttribute(`y`,`0`),i.setAttribute(`width`,`32`),i.setAttribute(`height`,`32`),e.prepend(i),{href:`data:image/svg+xml,${encodeURIComponent(new XMLSerializer().serializeToString(e))}`,type:`image/svg+xml`}}let s=document.createElement(`canvas`);s.width=32,s.height=32;let c=s.getContext(`2d`);if(!c)throw Error(`Favicon canvas unavailable`);c.save(),a!==`square`&&(c.beginPath(),c.roundRect(0,0,32,32,a===`circle`?16:8),c.clip());let l=(a===`square`?Math.min:Math.max)(32/o.image.naturalWidth,32/o.image.naturalHeight),u=o.image.naturalWidth*l,d=o.image.naturalHeight*l;c.drawImage(o.image,(32-u)/2,(32-d)/2,u,d),c.restore(),n&&(c.beginPath(),c.arc(25.5,25.5,5,0,Math.PI*2),c.fillStyle=n,c.fill(),c.strokeStyle=r,c.lineWidth=2,c.stroke());let f=s.toDataURL(`image/png`);if(!i)return{href:f,type:`image/png`};let p=`<svg xmlns="${Gu}" viewBox="0 0 32 32" width="32" height="32"><image width="32" height="32" href="${f}"/></svg>`;return{href:`data:image/svg+xml,${encodeURIComponent(p)}`,type:`image/svg+xml`}}var zu,Bu,Vu,Hu,Uu,Wu,Gu;function Ku(){return(Ku=e((()=>{mo(),Du(),Zn(),ur(),zu=`idle`,Bu=null,Vu=`square`,Uu=new Map,Wu=new WeakMap,Gu=`http://www.w3.org/2000/svg`})))()}async function qu(e){let t=new Image;if(t.src=e,await t.decode(),!t.naturalWidth||!t.naturalHeight)throw Error(`Favicon artwork has no dimensions`);return t}function Ju(e){let t=!1,n=0,r=``,i=0,a=0,o,s=()=>{};function c(){n+=1,s(),s=()=>{}}function l(){if(t)return;let u=Vr(e.gateway),d=e.theme.branding,f=d.artwork?.icons?.[d.brandIcon]?.url,p=e.theme.settings.tabIcon??`default`,m=!d.lobsterdex&&p.startsWith(`lobster:`)?`default`:p,h=io(m),g=m.startsWith(`lobster:`)?m.slice(8):null;g||(o?.(),o=void 0);let _=e.agentSelection.state.selectedId,v=e.agents.state.agentsList?.agents.find(e=>e.id===_);h!==null&&_&&e.gateway.snapshot.phase===`connected`&&e.agentIdentity.ensure([_]);let y=h!==null&&v?rt(v,e.agentIdentity.get(_)):null,b=JSON.stringify([u.key,m,h===null?null:_,y,f,h===null?g?a:null:i]);if(r===b)return;r=b,c(),Au(null);let x=n,S=()=>!t&&x===n&&u===Vr(e.gateway),C=async()=>{if(f&&S())try{let{fetchPluginThemeArtworkBlobUrl:e}=await W(async()=>{let{fetchPluginThemeArtworkBlobUrl:e}=await import(`./control-ui-boot-shared-dOnP4mAA.js`).then(e=>(e.Ls(),e.Is));return{fetchPluginThemeArtworkBlobUrl:e}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);if(!S())return;let t=await e({url:f});if(!S())return;if(!t){r=``;return}let n=await qu(t);S()&&Au(n)}catch{S()&&(r=``,Au(null))}};if(g){Promise.all([W(()=>import(`./lobster-favicon-B1-d4YOu.js`),__vite__mapDeps([6,0,7,2,1,8,9,3,4,5,10,11,12]),import.meta.url),W(()=>import(`./control-ui-boot-new-CkyIHJ_L.js`).then(e=>(e.C(),e.w)),__vite__mapDeps([7,0,2,1,8,9,3,4,5,10,11,12]),import.meta.url)]).then(([{loadUnlockedLobsterFavicon:e},{subscribeLobsterdex:t}])=>S()?(o??=t(()=>{a+=1,l()}),e(g)):null).then(e=>{S()&&(e?Au(e):C())}).catch(()=>{S()&&(r=``,C())});return}if(!y||h===null){C();return}let w=y.startsWith(`/`)?Xa(y):y;s=Ta(w),Promise.resolve(w).then(async e=>{if(!S())return;if(!e)throw Error(`Agent avatar unavailable`);let t=await qu(e);S()&&Au(t,h)}).catch(()=>{S()&&(r=``,s(),s=()=>{},C())})}let u=[e.gateway.subscribe(l),e.theme.subscribe(()=>{a+=1,l()}),e.agents.subscribe(l),e.agentIdentity.subscribe(l),e.agentSelection.subscribe(l),Lt(()=>{i+=1,r=``,c(),Au(null),queueMicrotask(l)})];return l(),()=>{t=!0,o?.(),u.forEach(e=>e()),c(),Au(null)}}function Yu(){return(Yu=e((()=>{At(),ie(),na(),Ku(),er(),Go()})))()}function Xu(e){td.delete(e)}function Zu(e,t){let n=nd.get(e);n||(n=new Set,nd.set(e,n)),n.add(t)}function Qu(e,t){let n=nd.get(e);n?.delete(t),n?.size===0&&(nd.delete(e),Xu(e))}function $u(e,t){Xu(e);let n=nd.get(e);if(!n)return;let r=Array.from(n,e=>({owner:e,generation:e.clientGeneration}));for(let{owner:i,generation:a}of r)n.has(i)&&i.client===e&&i.clientGeneration===a&&i.onQuestionResolution(t)}function ed(e,t,n,r){let i=r===void 0?To:Math.min(To,Math.max(0,r-Date.now()));if(t!==`question.list`)return e.request(t,n,{timeoutMs:i});let a=td.get(e);return a||(a=e.request(t,n,{timeoutMs:i}),td.set(e,a),a.catch(()=>{td.get(e)===a&&td.delete(e)})),a}var td,nd;function rd(){return(rd=e((()=>{fo(),td=new WeakMap,nd=new WeakMap})))()}function id(e){if(!as(e))return null;let{name:t,kind:n,allowedHosts:r,reason:i}=e;return typeof t!=`string`||!/^[A-Z][A-Z0-9_]{0,127}$/.test(t)||n!==`secret`&&n!==`env`||i!==void 0&&(typeof i!=`string`||i.length>200)||r!==void 0&&(n!==`secret`||!Array.isArray(r)||r.length>128||r.some(e=>typeof e!=`string`||!e||e.length>253)||new Set(r).size!==r.length)?null:{name:t,kind:n,...r===void 0?{}:{allowedHosts:[...r]},...i===void 0?{}:{reason:i}}}function ad(e){if(!as(e))return null;let t=is(e.updatedAtMs,{min:0}),n=e.updatedBy===void 0?void 0:ho(e.updatedBy);return t===void 0||e.updatedBy!==void 0&&!n?null:{updatedAtMs:t,...n?{updatedBy:n}:{}}}function od(e){if(e.isSecret!==void 0&&typeof e.isSecret!=`boolean`)return null;let t=e.secretStore===void 0?void 0:id(e.secretStore),n=e.secretStoreExisting===void 0?void 0:ad(e.secretStoreExisting);return t===null||n===null||t&&!e.isSecret||n&&!t?null:{...typeof e.isSecret==`boolean`?{isSecret:e.isSecret}:{},...t?{secretStore:t}:{},...n?{secretStoreExisting:n}:{}}}function sd(e,t){for(let n of e)n.isSecret&&t.delete(n.questionId)}function cd(e,t){if(!as(e))return null;if(e.status===`cancelled`)return{status:`cancelled`};let n=t(e.answers);return e.status===`answered`&&n?{status:`answered`,answers:n}:null}function ld(e,t,n,r){if(!(`answers`in n))return{requestParams:{id:e,cancel:!0}};let i={answers:Object.fromEntries(Object.entries(n.answers).map(([e,t])=>[e,[...t]]))},a=t[0]?.secretStore?t[0]:void 0,o=a?.secretStore?.kind===`secret`?r===void 0?a.secretStore.allowedHosts:r.split(/[,\s]+/u).filter(Boolean):void 0;return{requestParams:{id:e,answers:i,...o===void 0?{}:{secretStoreAllowedHosts:o}},submittedAnswers:a?{answers:{[a.questionId]:[`stored`]}}:i}}function ud(){return(ud=e((()=>{us()})))()}function dd(e){if(!as(e))return null;let t=ho(e.questionId),n=typeof e.header==`string`?e.header:null,r=ho(e.question);if(!t||!/^[a-z][a-z0-9_]*$/.test(t)||n===null||!r)return null;let i=Re(n,fd);if(e.presentation!==void 0&&e.presentation!==`form`||!Array.isArray(e.options)||e.options.length>(e.presentation===`form`?64:4))return null;let a=e.options.flatMap(e=>{if(!as(e))return[];let t=ho(e.label);if(!t||e.description!==void 0&&typeof e.description!=`string`||e.thumbnail!==void 0&&!Ni(e.thumbnail)||e.value!==void 0&&(typeof e.value!=`string`||!e.value||e.value.length>4096))return[];let n=e.preview===void 0?void 0:Di(e.preview);return e.preview!==void 0&&!n||e.resourceUri!==void 0&&(typeof e.resourceUri!=`string`||e.resourceUri.length>2048)?[]:[{label:t,...typeof e.value==`string`?{value:e.value}:{},...n?{preview:n}:{},...typeof e.resourceUri==`string`?{resourceUri:e.resourceUri}:{},...typeof e.thumbnail==`string`?{thumbnail:e.thumbnail}:{},...typeof e.description==`string`?{description:e.description}:{}}]});if(a.length!==e.options.length)return null;let o=ho(e.url);if(e.url!==void 0){if(!o||!Gi(o))return null;let e=URL.parse(o);if(!e||e.username||e.password)return null}if(e.answerFormat!==void 0&&e.answerFormat!==`lines`)return null;let s=Array.isArray(e.defaultAnswers)&&e.defaultAnswers.every(e=>typeof e==`string`&&e.length<=4096)?e.defaultAnswers:void 0;if(e.defaultAnswers!==void 0&&(!s||s.length>64))return null;for(let t of[`multiSelect`,`isOther`,`allowEmpty`])if(e[t]!==void 0&&typeof e[t]!=`boolean`)return null;let c=e.resource===void 0?void 0:Ci(e.resource);if(e.resource!==void 0&&(!c||e.presentation!==`form`))return null;let l=od(e);return l?{questionId:t,header:i,question:r,options:a,...c?{resource:c}:{},...e.presentation===`form`?{presentation:`form`}:{},...e.allowEmpty===!0?{allowEmpty:!0}:{},...e.answerFormat===`lines`?{answerFormat:`lines`}:{},...s?{defaultAnswers:s}:{},...o?{url:o}:{},...e.multiSelect===!0?{multiSelect:!0}:{},...typeof e.isOther==`boolean`?{isOther:e.isOther}:{},...l}:null}var fd;function pd(){return(pd=e((()=>{Ei(),He(),ud(),fd=12})))()}function md(e){return is(e,{min:0})??null}function hd(e){if(!as(e)||!as(e.answers))return null;let t={};for(let[n,r]of Object.entries(e.answers)){if(!/^[a-z][a-z0-9_]*$/.test(n)||!Array.isArray(r)||!r.every(e=>typeof e==`string`))return null;t[n]=[...r]}return{answers:t}}function gd(e,t){if(!e||!t)return!1;let n=Object.keys(e.answers).toSorted(),r=Object.keys(t.answers).toSorted();return n.length===r.length&&n.every((n,i)=>n===r[i]&&e.answers[n]?.length===t.answers[n]?.length&&e.answers[n]?.every((e,r)=>Object.is(e,t.answers[n]?.[r])))}function _d(e){if(!as(e))return null;let t=ho(e.id),n=md(e.createdAtMs),r=md(e.expiresAtMs);if(!t||n===null||r===null||!Array.isArray(e.questions)||e.questions.length<1||e.questions.length>3)return null;let i=e.questions.map(dd);if(!i.every(e=>e!==null)||new Set(i.map(e=>e.questionId)).size!==i.length)return null;let a=e.agentId===void 0?void 0:ho(e.agentId),o=e.sessionKey===void 0?void 0:ho(e.sessionKey),s=e.runId===void 0?void 0:ho(e.runId);if(e.agentId!==void 0&&!a||e.sessionKey!==void 0&&!o||e.runId!==void 0&&!s)return null;let c={id:t,questions:i,...a?{agentId:a}:{},...o?{sessionKey:o}:{},...s?{runId:s}:{},createdAtMs:n,expiresAtMs:r};if(e.status===`pending`)return{...c,status:`pending`};let l=yd(e);return l?{...c,...l}:null}function vd(e){let t=_d(e);return t?.status===`pending`?t:null}function yd(e){if(!as(e))return null;let t=ho(e.id);if(!t)return null;if(e.status===`answered`){let n=hd(e.answers);return n?{id:t,status:`answered`,answers:n}:null}return e.status===`cancelled`||e.status===`expired`?{id:t,status:e.status}:null}function bd(e){let t={client:null,ownerClient:null,clientGeneration:0,prompts:new Map,unmatchedResolutions:new Map,revision:0,expiryTimer:null,refreshRetryTimer:null,onChange:e,onQuestionResolution:e=>Td(t,e)};return t}function xd(e,t){let n=e[t];n&&(globalThis.clearTimeout(n),e[t]=null)}function Sd(e){xd(e,`expiryTimer`);let t=1/0;for(let n of e.prompts.values())n.status===`pending`&&(t=Math.min(t,n.expiresAtMs));t!==1/0&&(e.expiryTimer=globalThis.setTimeout(()=>{e.expiryTimer=null;let t=Date.now(),n=!1;for(let r of e.prompts.values())r.status===`pending`&&r.expiresAtMs<=t&&(r.status=`expired`,sd(r.questions,r.drafts),r.locallyExpired=!0,r.submitting=!1,r.error=null,r.revision=++e.revision,n=!0);Sd(e),n&&e.onChange()},os(t-Date.now(),0,0)))}function Cd(e,t,n,r){let i=++e.revision,a=r?.drafts??new Map;n.status!==`pending`&&sd(n.questions,a);let o={...n,...r?.submittedAnswers?{submittedAnswers:r.submittedAnswers}:{},answeredElsewhere:n.status===`answered`&&!r?.localResolutionConfirmed&&!r?.submitting,localResolutionConfirmed:r?.localResolutionConfirmed??!1,locallyExpired:!1,submitting:n.status===`pending`||n.status===`answered`&&!(r?.localResolutionConfirmed??!1)?r?.submitting??!1:!1,error:n.status===`pending`?r?.error??null:null,drafts:a,...r?.secretStoreAllowedHostsDraft===void 0?{}:{secretStoreAllowedHostsDraft:r.secretStoreAllowedHostsDraft},revision:i},s=e.unmatchedResolutions.get(t);s&&(e.unmatchedResolutions.delete(t),wd(e,o,s)),e.prompts.set(t,o)}function wd(e,t,n){t.status=n.status,sd(t.questions,t.drafts),t.answers=n.status===`answered`?n.answers:void 0;let r=n.status===`answered`&&gd(t.submittedAnswers,n.answers);t.answeredElsewhere=n.status===`answered`&&!t.localResolutionConfirmed&&!r&&!t.submitting,t.locallyExpired=!1,(n.status!==`answered`||t.localResolutionConfirmed)&&(t.submitting=!1),t.error=null,t.revision=++e.revision}function Td(e,t){e.client&&Xu(e.client);let n=e.prompts.get(t.id);n?(wd(e,n,t),Sd(e)):(e.unmatchedResolutions.set(t.id,t),e.revision+=1),e.onChange()}function Ed(e,t){if(t.event===`question.requested`){let n=vd(t.payload);if(!n)return!1;e.client&&Xu(e.client);let r=e.prompts.get(n.id);return r&&r.status!==`pending`?!0:(Cd(e,n.id,n,r),Sd(e),e.onChange(),!0)}if(t.event!==`question.resolved`)return!1;let n=yd(t.payload);return n?(Td(e,n),!0):!1}function Dd(e){if(!as(e)||!Array.isArray(e.questions))return null;let t=e.questions.map(vd);return t.every(e=>e!==null)?t:null}function Od(e){return e instanceof rr&&as(e.details)&&e.details.reason===`QUESTION_NOT_FOUND`}function kd(e,t){t.status=`unavailable`,sd(t.questions,t.drafts),t.answers=void 0,t.answeredElsewhere=!1,t.localResolutionConfirmed=!1,t.locallyExpired=!1,t.submitting=!1,t.error=null,t.revision=++e.revision}async function Ad(e,t,n){let r=e.revision,i=Dd(await ed(t,`question.list`,{}));if(!i)return Xu(t),!1;if(!n())return!1;let a=new Set(i.map(e=>e.id));for(let t of i){let n=e.prompts.get(t.id);(!n||n.revision<=r||n.locallyExpired)&&Cd(e,t.id,t,n)}Sd(e),e.onChange();let o=[...e.prompts.values()].filter(e=>(e.locallyExpired||e.status===`pending`&&e.revision<=r)&&!a.has(e.id)).map(e=>({id:e.id,prompt:e,revision:e.revision})),s=new Set(o.map(e=>e.id));for(let t of e.unmatchedResolutions.keys())!a.has(t)&&!s.has(t)&&(o.push({id:t,prompt:void 0,revision:e.revision}),s.add(t));let c=await Promise.all(o.map(async r=>{let i=await ed(t,`question.get`,{id:r.id}).then(e=>({ok:!0,value:e}),e=>({ok:!1,error:e}));if(!n())return!1;let a=e.prompts.get(r.id);if(r.prompt&&a!==r.prompt)return!(!a||a.status===`pending`||a.locallyExpired);if(r.prompt&&a?.revision!==r.revision&&!a?.locallyExpired)return a?.status!==`pending`;if(!r.prompt&&!e.unmatchedResolutions.has(r.id))return!0;if(!i.ok)return Od(i.error)?(a&&(kd(e,a),Sd(e)),e.unmatchedResolutions.delete(r.id),e.onChange(),!0):!1;let o=as(i.value)?_d(i.value.question):null;return o?(Cd(e,r.id,o,a),Sd(e),e.onChange(),!0):!1}));return n()&&c.every(Boolean)}function jd(e,t,n=()=>e.client===t){let r=e.clientGeneration,i=()=>e.client===t&&e.clientGeneration===r&&n(),a=0,o=async()=>{if(!i())return;let n;try{n=await Ad(e,t,i)}catch{n=!1}if(n||!i())return;let r=Rd[a];a=Math.min(a+1,Rd.length-1),e.refreshRetryTimer=globalThis.setTimeout(()=>{e.refreshRetryTimer=null,o()},r)};o()}function Md(e,t){if(xd(e,`refreshRetryTimer`),e.client===t)return;e.client&&Qu(e.client,e),e.clientGeneration+=1;let n=t!==null&&e.ownerClient!==null&&e.ownerClient!==t;if(e.client=t,t!==null&&(e.ownerClient=t,Zu(t,e)),n){let t=e.prompts.size>0||e.unmatchedResolutions.size>0;xd(e,`expiryTimer`),e.prompts.clear(),e.unmatchedResolutions.clear(),t&&(e.revision+=1,e.onChange());return}t&&Sd(e);let r=!1;for(let t of e.prompts.values())t.submitting&&(t.submitting=!1,t.revision=++e.revision,r=!0);r&&e.onChange()}function Nd(e){e.client&&Qu(e.client,e),xd(e,`expiryTimer`),xd(e,`refreshRetryTimer`),e.clientGeneration+=1,e.client=null}async function Pd(e,t,n){let r=e.prompts.get(t),i=e.client,a=e.clientGeneration;if(!r||r.status!==`pending`||r.submitting)return;if(!i){r.error=N(`chat.questions.disconnected`),r.revision=++e.revision,e.onChange();return}r.submitting=!0;let o=ld(t,r.questions,n,r.secretStoreAllowedHostsDraft);r.submittedAnswers=o.submittedAnswers,r.error=null,r.revision=++e.revision,e.onChange();try{let n=cd(await ed(i,`question.resolve`,o.requestParams,r.expiresAtMs),hd);if(!n||n.status!==(o.submittedAnswers?`answered`:`cancelled`))throw Error(`invalid question.resolve response`);if(e.client===i&&e.clientGeneration===a){let n=e.prompts.get(t);n&&(n.localResolutionConfirmed=!0)}$u(i,{...n,id:t})}catch(n){if(e.client!==i||e.clientGeneration!==a)return;let r=e.prompts.get(t);if(!r)return;r.submitting=!1,r.status===`pending`?r.error=M(n):r.status===`answered`&&!r.localResolutionConfirmed&&(r.answeredElsewhere=!gd(r.submittedAnswers,r.answers)),r.revision=++e.revision,e.onChange()}}async function Fd(e,t,n){await Pd(e,t,{answers:n})}async function Id(e,t){await Pd(e,t,{cancel:!0})}function Ld(e){return[...e.prompts.values()].toSorted((e,t)=>e.createdAtMs-t.createdAtMs||e.id.localeCompare(t.id))}var Rd;function zd(){return(zd=e((()=>{us(),Kt(),k(),Nt(),rd(),pd(),ud(),Rd=[1e3,2e3,4e3]})))()}var Bd=t({connectControlUiFavicon:()=>Vd});function Vd(e,t,n=Date.now()){ju();let r=n,i=!1,a=!1,o=t.gateway.snapshot.client,s=t.agentSelection.state.selectedId,c=Vr(t.gateway),l=new Map,u=new WeakSet,d=bd(()=>p());function f(){let e=t.gateway.snapshot,n=Vr(t.gateway),i=t.agentSelection.state.selectedId;(c!==n||e.client&&d.ownerClient&&e.client!==d.ownerClient)&&(Nd(d),d=bd(()=>p())),(o!==e.client||s!==i||c!==n)&&(a=!1,l.clear(),r=Date.now(),o=e.client,s=i,c=n)}function p(){if(i)return;f();let n=t.gateway.snapshot,c=!1;for(let t of e.querySelectorAll(`openclaw-chat-pane`)){let e=t.runActivity,n=e?.completion,i=n&&!u.has(n);n&&u.add(n),e&&e.client===o&&e.agentId===s&&(c||=e.working,i&&n.phase===`done`&&n.occurredAt>=r&&document.visibilityState===`hidden`&&(a=!0))}let p=t.sessions.state.result;if(n.phase===`connected`&&p){let e=new Map;for(let n of p.sessions)G(n.agentId??Ft(n.key)?.agentId??t.sessions.state.agentId??``)===s&&(qo(n)?(c=!0,e.set(n.key,n.sessionId)):n.status===`done`&&l.has(n.key)&&l.get(n.key)===n.sessionId&&document.visibilityState===`hidden`&&(a=!0));l=e}document.visibilityState===`visible`&&(a=!1),Mu(t.overlays.snapshot.approvalQueue.length>0||Ld(d).some(e=>e.status===`pending`)?`attention`:c?`working`:a?`done`:n.phase===`connected`?`idle`:`disconnected`)}function m(){f();let e=t.gateway.snapshot,n=e.phase===`connected`&&Xi({hello:e.hello},`question.list`)?e.client:null;d.client!==n&&(Md(d,n),n&&jd(d,n,()=>!i&&t.gateway.snapshot.client===n&&t.gateway.snapshot.phase===`connected`)),p()}let h=[t.gateway.subscribe(m),t.gateway.subscribeEvents(e=>Ed(d,e)),t.overlays.subscribe(p),t.agentSelection.subscribe(p),t.sessions.subscribe(p)],g=new MutationObserver(()=>{ju(),p()});g.observe(document.documentElement,{attributes:!0,attributeFilter:[`style`,`data-theme`,`data-theme-mode`,`data-theme-mascot`]}),document.addEventListener(`visibilitychange`,p),e.addEventListener(le,p),e.addEventListener(dt,p),m();let _=Ju(t);return()=>{_(),i=!0,h.forEach(e=>e()),g.disconnect(),document.removeEventListener(`visibilitychange`,p),e.removeEventListener(le,p),e.removeEventListener(dt,p),Nd(d),Mu(`idle`)}}function Hd(){return(Hd=e((()=>{Zi(),A(),f(),Ku(),Yu(),er(),zd()})))()}var Ud=t({nativeGatewaysCapability:()=>Kd});function Wd(e){if(!e||typeof e!=`object`)return null;let t=e;return Array.isArray(t.gateways)&&typeof t.currentId==`string`?t:null}function Gd(){if(typeof window>`u`)return null;let e=window,t=On()?.webkit?.messageHandlers?.openclawGateways;if(!t?.postMessage)return null;let n=t.postMessage.bind(t),r=Wd(e.__OPENCLAW_NATIVE_GATEWAYS__),i=new Set;return window.addEventListener(qd,e=>{let t=Wd(e.detail);t&&(r=t,i.forEach(e=>e(t)))}),{get snapshot(){return r},subscribe:e=>jo(i,e),select:e=>n({type:`select`,id:e}),openWindow:e=>n({type:`open-window`,id:e}),setPrimary:e=>n({type:`set-primary`,id:e}),reconnect:e=>n({type:`reconnect`,id:e}),reconnectCancel:e=>n({type:`reconnect-cancel`,id:e}),openSettings:()=>n({type:`open-settings`})}}function Kd(){return Jd===void 0&&(Jd=Gd()),Jd}var qd,Jd;function Yd(){return(Yd=e((()=>{qd=`openclaw:native-gateways-changed`})))()}function Xd(e,t=128){return typeof e==`string`&&e.length>0&&e.length<=t&&e.trim()===e}function Zd(e){let t=ls(e);if(!Xd(t?.targetId)||!Xd(t.profile))return;let n={targetId:t.targetId,profile:t.profile};if(t.target===`host`&&t.node===void 0)return{...n,target:`host`};if(t.target===`node`&&Xd(t.node,256))return{...n,target:`node`,node:t.node}}function Qd(e){return JSON.stringify([e?.target,e?.node,e?.profile])}function $d(e){return JSON.stringify([e.target,e.node,e.profile,e.targetId])}function ef(){return(ef=e((()=>{})))()}function tf(e){try{let t=decodeURIComponent(e);return t&&t!==`.`&&t!==`..`?t:null}catch{return null}}function nf([e,t,n,r]){return{kind:n?`issue`:`pull`,number:Number(n??r),owner:e,repo:t}}function rf(e){let t=Tn(e);return t?nf(t):null}function af(e){let t=URL.parse(e),n=t?Yr(t):null;return n&&t?{...nf(n),href:t.href}:null}function of(){return(of=e((()=>{})))()}var sf=t({default:()=>lf});function cf(e){return uf.has(e)}function lf(e){let t=new Set,n=new Map,r=et(e.gateway.snapshot),a=()=>{for(let e of t)e()},o=e=>{for(let[t,r]of n)if(j(t,e))return{key:t,entry:r};return null},s=e=>o(e.owner.sessionKey)?.entry===e,c=t=>{let n=e.gateway.snapshot;return!!(t.retainsConnection()&&r.isCurrent(t.scope)&&n.client?.recoveryScopeReady)},l=e=>{let t=e.persistRecovery?al(e.owner.gatewayUrl,e.owner.recoveryScope,e.owner.sessionKey):null;return s(e)&&(!t||t.messageId===e.owner.messageId)},u=e=>c(e)&&l(e),d=(e,t=!0)=>{let r=o(e.owner.sessionKey);r?.entry===e&&(n.delete(r.key),t&&a())},f=(t,n,r,i)=>{let a=Oc(t.owner.sessionKey,{text:n.message,mentions:n.mentions,attachments:t.attachments,createdAt:t.createdAt},t.scope.client,r);e.chatSubmissions.retain(a?{...a,...i?{consumedByEventId:i}:{}}:null)},p=(e,t,n)=>{let{recovery:r}=vl(t,n,e.persistRecovery);e.work={kind:`paused`,recovery:r},a()},m=(t,r,i)=>{let o=r;Cl({client:t.scope.client,describe:e.sessions.describe,recovery:o,persistRecovery:t.persistRecovery,cleanupOnCancellation:()=>!t.persistRecovery&&t.work.kind!==`paused`,mode:i,isLifecycleCurrent:()=>c(t),ownsRecovery:()=>l(t),clearRecovery:()=>ml(t.owner.gatewayUrl,t.owner.recoveryScope,t.owner.sessionKey,t.owner.messageId),setRecoveryPhase:e=>{o={...o,phase:e},t.work={kind:`running`,recovery:o},a()}}).then(r=>{if(!l(t)||!t.retainsConnection()){d(t);return}if(r.status===`paused`){t.work={kind:`paused`,recovery:r.recovery},a(),_(e.gateway.snapshot);return}if(r.status===`cancelled`&&r.cleanupError){p(t,o,r.cleanupError),_(e.gateway.snapshot);return}if(r.status===`cancelled`&&!t.persistRecovery){t.work={kind:`cancelled`,recovery:o};let e=[...n.values()].filter(e=>e.work.kind===`cancelled`);for(let t of e.slice(0,-32))d(t,!1);a();return}if(!c(t)){r.status===`started`||r.status===`accepted`?(t.work={kind:`checking`,recovery:o},_(e.gateway.snapshot)):r.status!==`interrupted`&&d(t);return}(r.status===`started`||r.status===`accepted`)&&f(t,o,r.status===`started`?r.messageId:t.owner.messageId,r.status===`accepted`?r.consumedByEventId:void 0),d(t)}).catch(e=>{u(t)&&p(t,o,M(e))}).finally(()=>{u(t)&&t.work.kind!==`cancelled`&&e.sessions.invalidate()})},h=t=>{if(t.recovery.phase===`creating`)return;r.transition(e.gateway.snapshot);let s=o(t.recovery.sessionKey)?.entry;if(s&&s.owner.messageId===t.recovery.messageId&&s.retainsConnection()&&(s.work.kind===`cancelled`||u(s)&&(s.work.kind!==`paused`||t.recovery.phase===`paused`)))return;s&&d(s,!1);let c=r.capture();if(!c)return;let l={sessionKey:t.recovery.sessionKey,messageId:t.recovery.messageId,gatewayUrl:t.recovery.gatewayUrl,recoveryScope:t.recovery.recoveryScope},f={work:t.recovery.phase===`paused`?{kind:`paused`,recovery:t.recovery}:{kind:t.recovery.phase===`sending`?`checking`:`running`,recovery:t.recovery},owner:l,attachments:t.displayAttachments??i(t.recovery.attachments),persistRecovery:t.persistRecovery,createdAt:s?.owner.messageId===l.messageId?s.createdAt:t.createdAt,scope:c,retainsConnection:Mn(e.gateway,l)};n.set(l.sessionKey,f),a(),t.recovery.phase!==`paused`&&m(f,t.recovery,t.mode)},g=(e,t,n)=>h({recovery:t,persistRecovery:e.persistRecovery,mode:n,createdAt:e.createdAt}),_=t=>{if(r.transition(t),t.phase===`connected`&&t.client?.recoveryScopeReady&&t.client.recoveryScope){for(let e of n.values())(e.work.kind===`paused`||e.work.kind===`checking`)&&!c(e)&&e.retainsConnection()&&l(e)&&g(e,e.work.recovery,`recover`);for(let n of Bc(e.gateway.connection.gatewayUrl,t.client.recoveryScope))h({recovery:n,persistRecovery:!0,mode:`recover`,createdAt:Date.now()})}};return{resumeRecovery:()=>_(e.gateway.snapshot),hasPendingTurn(e){let t=o(e)?.entry;return!!(t&&t.work.kind!==`cancelled`&&t.retainsConnection()&&l(t))},get(t){let n=o(t)?.entry;if(!n||!n.retainsConnection()||!l(n))return null;let r=n.work.kind===`cancelled`,i=!r&&!c(n),a=r?N(`newSession.placementCancelled`):n.work.recovery.phase===`paused`?n.work.recovery.error:void 0,s=i?`reconnecting`:r?`cancelled`:n.work.kind===`running`?n.work.recovery.phase===`sending`?`sending`:`pending`:`failed`;if(s===`pending`){let t=(e.sessions.state.result?.sessions.find(e=>j(e.key,n.owner.sessionKey)))?.placement?.state;t&&cf(t)&&(s=t)}return{sessionKey:n.owner.sessionKey,targetKind:n.work.recovery.target.kind,phase:s,startedAt:n.createdAt,initialTurn:cn({recovery:n.work.recovery,attachments:n.attachments,createdAt:n.createdAt,checking:n.work.kind===`checking`||r&&n.work.recovery.phase===`sending`,reconnecting:i,error:r?a:void 0}),...n.work.kind===`running`?{}:{...a?{error:a}:{},retryable:!i&&!r,...r?{}:{action:n.work.kind===`checking`||n.work.recovery.phase===`paused`&&n.work.recovery.reason===`unconfirmed`?`check-delivery`:`retry`}}}},start:h,pause(e,t){let n=o(e)?.entry;if(!n||n.work.kind===`cancelled`||!u(n))return;let{recovery:r}=vl(n.work.recovery,t,n.persistRecovery);n.work={kind:`paused`,recovery:r},d(n,!1),g(n,r,`recover`)},retry(e){let t=o(e)?.entry;if(!t||t.work.kind!==`paused`||!u(t))return;if(t.work.recovery.reason===`unconfirmed`){t.work={kind:`checking`,recovery:t.work.recovery},a(),m(t,t.work.recovery,`recover`);return}let{reason:n,error:r,...i}=t.work.recovery,s={...i,phase:`dispatching`,messageId:n===`rejected`?Vo():i.messageId};if(t.persistRecovery&&!Wc(s,i.messageId)){p(t,t.work.recovery,`placement recovery storage is unavailable`);return}g(t,s,`retry`)},subscribe:e=>jo(t,e),dispose(){r.dispose(),n.clear(),t.clear()}}}var uf;function df(){return(df=e((()=>{k(),za(),Nt(),A(),el(),kl(),go(),_e(),ac(),pn(),In(),Ra(),uf=new Set([`requested`,`provisioning`,`syncing`,`starting`,`active`])})))()}var ff=t({refreshControlUiServiceWorker:()=>gf});function pf(e){return e.state===`activated`||e.state===`redundant`?Promise.resolve():new Promise(t=>{let n=()=>{(e.state===`activated`||e.state===`redundant`)&&(e.removeEventListener(`statechange`,n),t())};e.addEventListener(`statechange`,n),n()})}async function mf(e){let t=new MessageChannel,n;try{return await new Promise(r=>{n=setTimeout(()=>r(null),1e3),t.port1.addEventListener(`message`,e=>r(e.data),{once:!0}),t.port1.start(),e.postMessage({type:`sw-version-probe`},[t.port2])})}finally{clearTimeout(n),t.port1.close(),t.port2.close()}}async function hf(e){for(;e.active;){let t=e.active,n=await mf(t);if(e.active!==t)continue;if(!Gt(n))return!1;let r=await dn({canReload:()=>e.active===t});if(r||e.active===t)return r}return!1}async function gf(){let e=typeof navigator<`u`&&`serviceWorker`in navigator?navigator.serviceWorker:null;if(!e)return!1;let t=await e.getRegistration();if(!t)return!1;let n=t.installing??t.waiting;if(!n){try{await t.update()}catch(e){if(await hf(t))return!0;throw e}n=t.installing??t.waiting}return n&&await pf(n),hf(t)}function _f(){return(_f=e((()=>{tr(),jn()})))()}function vf(e,t){let n=xr(e,t);return n?L`<div class="update-git-revisions">
    <span class="update-git-revisions__range" dir="ltr">
      ${n.currentSha?L`<code title=${n.currentSha}>${n.currentSha.slice(0,8)}</code>
              <span aria-hidden="true">→</span>`:I}
      <code title=${n.targetSha}>${n.targetSha.slice(0,8)}</code>
    </span>
    ${n.compareUrl?L`<a href=${n.compareUrl} target="_blank" rel="noopener noreferrer"
            >${N(`updates.target.viewChanges`)} <span aria-hidden="true">↗</span></a
          >`:I}
  </div>`:I}function yf(){return(yf=e((()=>{R(),fr(),k()})))()}function bf(e){return e.replace(/^(?:diagnostic|warning):(.+?)(?::\d+)?$/u,`$1`)}function xf(e,t=!0){let n=e.status!==`running`,r=e.target.installationMethod===`ocm`,i=$o(e),a=Xo.indexOf(e.phase),o=Xo.flatMap((t,r)=>{let i=e.steps.find(e=>e.step===t);if(t===`repairing`&&!i&&t!==e.phase)return[];let o=i?.status??`pending`;return i||(t===`finished`&&n?o=e.status===`succeeded`?`completed`:e.status===`skipped`?`skipped`:`failed`:t===e.phase?o=`in_progress`:(n||r<a)&&(o=`skipped`)),[{step:t,status:o,label:N(`updates.run.phase.${t}`)}]}),s=e.steps.filter(e=>!e.step.startsWith(`notice:`)&&!e.step.startsWith(`diagnostic:`)&&!Xo.some(t=>t===e.step)),c=s.findLast(e=>e.status===`in_progress`)??e.steps.findLast(e=>e.status===`in_progress`&&e.detail)??e.steps.findLast(e=>e.detail),l=new Map;for(let t of e.steps){if(!t.detail)continue;let e=bf(t.step),n=l.get(e)??[];n.push(t.detail),l.set(e,n)}let u=new Map(Array.from(l,([e,t])=>[e,ds(t.join(`
`),-4096).split(/\r?\n/u).slice(-80).join(`
`)])),d=c?u.get(bf(c.step))??``:``,f=e.verification,p=zo(f,e.after),m=e=>e===void 0?n?`warn`:`pending`:e?`pass`:`fail`,h=[{name:`service`,state:m(f.serviceRunning)},{name:`version`,state:p.kind===`unavailable`?`warn`:m(p.kind===`unobserved`?void 0:p.kind===`verified`)},{name:`plugins`,state:m(f.pluginErrors===void 0?void 0:f.pluginErrors.length===0)},{name:`channels`,state:m(f.channelsReady)}],g=o.filter(e=>e.status===`completed`).length,_=o.filter(e=>e.status!==`skipped`).length;return{report:i,terminal:n,reconciled:Fo(e),headline:!t&&!n&&(e.phase===`activating`||e.phase===`restarting`||e.phase===`verifying`)?N(`updates.run.restarting`):i.headline,compactLabel:r?``:N(`updates.run.progress`,{completed:String(g),total:String(_)}),phases:r?[]:o.map(({step:e,status:t,label:n})=>({step:e,status:t,label:n,detail:u.get(e)})),steps:s.map(({step:e,status:t})=>({step:e,status:t,detail:u.get(bf(e))})),detailStep:c?.step,details:d,oracles:r?[]:h}}function Sf(){return(Sf=e((()=>{ns(),Wo(),Jo(),k()})))()}function Cf(e){return Er({signal:e.signal,value:!1},({render:t,finish:n})=>{let r=!1,i=!e.requiredAcknowledgement,a=e.title??N(`common.confirm`),o=()=>L`
        <openclaw-modal-dialog
          label=${a}
          description=${e.message}
          @modal-cancel=${()=>n(!1)}
        >
          <div class="exec-approval-card">
            <div class="exec-approval-header">
              <div>
                <div class="exec-approval-title">${a}</div>
                <div class="exec-approval-sub" style="white-space: pre-line">
                  ${e.message}
                </div>
              </div>
            </div>
            ${e.details?L`<div class="exec-approval-command mono">${e.details}</div>`:I}
            ${e.requiredAcknowledgement?L`<label class="field checkbox">
                    <input
                      type="checkbox"
                      .checked=${i}
                      @change=${e=>{let n=e.currentTarget;n instanceof HTMLInputElement&&(i=n.checked,t(o))}}
                    />
                    <span>${e.requiredAcknowledgement}</span>
                  </label>`:I}
            ${e.skipPreference&&!e.requiredAcknowledgement?L`<label class="field checkbox exec-approval-skip">
                    <input
                      type="checkbox"
                      @change=${e=>{r=e.target.checked}}
                    />
                    <span>${N(`common.dontAskAgain`)}</span>
                  </label>`:I}
            <div class="exec-approval-actions">
              <button
                type="button"
                class="btn ${e.danger?`danger`:`primary`}"
                ?disabled=${!i}
                @click=${()=>{i&&(r&&e.skipPreference?.remember(),n(!0))}}
              >
                ${e.confirmLabel??N(`common.confirm`)}
              </button>
              <button type="button" class="btn" autofocus @click=${()=>n(!1)}>
                ${e.cancelLabel??N(`common.cancel`)}
              </button>
            </div>
          </div>
        </openclaw-modal-dialog>
      `;t(o)})}function wf(e){return e.skipPreference?.skipped&&!e.requiredAcknowledgement?Promise.resolve(!0):Tf?Promise.resolve(!1):(Tf=!0,Cf(e).finally(()=>{Tf=!1}))}var Tf;function Ef(){return(Ef=e((()=>{R(),k(),Gn(),Tf=!1})))()}var Df=t({createWebPushCapabilityRuntime:()=>zf});function Of(e){let t=e?.pushManager;return t&&typeof t.getSubscription==`function`?t:null}function kf(e){let t=Of(e);if(!t||typeof t.subscribe!=`function`)throw Error(`Web Push is unavailable in this browser. On iPhone or iPad, add OpenClaw to the Home Screen and open the installed app.`);return t}function Af(e){let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`);return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}async function jf(){return`serviceWorker`in navigator?await Of(await navigator.serviceWorker.getRegistration())?.getSubscription()??null:null}async function Mf(e){let{vapidPublicKey:t}=await e.request(`push.web.vapidPublicKey`,{});if(!t)throw Error(`Failed to retrieve VAPID public key`);return Af(t)}function Nf(e,t){let n=e.options.applicationServerKey;if(!n)return!1;let r=new Uint8Array(n);return r.length===t.length&&r.every((e,n)=>e===t[n])}function Pf(e){let t=e.toJSON();if(!t.endpoint||!t.keys?.p256dh||!t.keys.auth)throw Error(`Invalid push subscription from browser`);return{endpoint:t.endpoint,keys:{p256dh:t.keys.p256dh,auth:t.keys.auth}}}async function Ff(e,t,n){return Nf(t,n)?(await e.request(`push.web.subscribe`,Pf(t)),{state:`registered`}):(await e.request(`push.web.unsubscribe`,{endpoint:t.endpoint}).catch(()=>void 0),{state:`vapid-mismatch`,error:Kf})}async function If(e,t){return{subscription:t.state,preferences:t.state===`registered`?await Uf(e):null,error:t.state===`vapid-mismatch`?t.error:null}}async function Lf(e){let t=await jf();return await If(e,t?await Ff(e,t,await Mf(e)):{state:`missing`})}function Rf(e){let t=null,n=0,r=!1,i=async(t,i)=>{let a;try{a=await Lf(t)}catch(e){a={error:M(e)}}!r&&i===n&&e.gateway.snapshot.phase===`connected`&&e.gateway.snapshot.client===t&&e.publish(a)},a=r=>{let a=r.phase===`connected`?r.client:null;if(a===t)return;t=a;let o=++n;if(e.publish({subscription:`unknown`,preferences:null,error:null}),a){let t=()=>i(a,o);(e.connectionBootstrap?.run(`web-push-reconcile`,t)??t()).catch(()=>void 0)}},o=e.gateway.subscribe(a),s=e.gateway.subscribeEvents(t=>{let r=t.payload,a=e.gateway.snapshot.client;t.event===`users.prefs.changed`&&a&&r&&typeof r==`object`&&e.gateway.snapshot.selfUser?.id&&`keys`in r&&Array.isArray(r.keys)&&r.keys.includes(qf)&&i(a,++n)});return a(e.gateway.snapshot),()=>{r=!0,n+=1,o(),s()}}function zf(e){let t=null;return{run(n){let r=e.gateway.snapshot.client;if(!r)return Promise.resolve();let i=()=>e.gateway.snapshot.phase===`connected`&&e.gateway.snapshot.client===r;t||e.publish({loading:!0,error:null});let a=(t??Promise.resolve()).then(async()=>{if(!i())throw Error(`Gateway changed before the notification change could be saved.`);e.publish({error:null});let t=await Wf(r,n);i()&&e.publish(t)}).catch(t=>{i()&&e.publish({error:M(t)})}).finally(()=>{t===a&&(t=null,e.publish({loading:!1,permission:`Notification`in window?Notification.permission:`unsupported`}))});return t=a,a},dispose:Rf(e)}}async function Bf(e){let t=await Notification.requestPermission();if(t!==`granted`)throw Error(`Notification permission ${t}`);let n=kf(await oo(()=>navigator.serviceWorker.ready,Gf,()=>{throw Error(`Service worker not ready (timed out)`)})),r=await Mf(e),i=await n.getSubscription();if(i)return await Ff(e,i,r);let a=await n.subscribe({userVisibleOnly:!0,applicationServerKey:r.buffer});try{return await Ff(e,a,r)}catch(e){try{await a.unsubscribe()}catch{}throw e}}async function Vf(e){let t=await jf();if(t){try{await e.request(`push.web.unsubscribe`,{endpoint:t.endpoint})}catch{}await t.unsubscribe()}}async function Hf(){let e=await jf();if(!e)throw Error(`Enable notifications before changing notification preferences.`);return e}async function Uf(e){let t=await Hf();return await e.request(`push.web.preferences.get`,{endpoint:t.endpoint})}async function Wf(e,t){switch(t.kind){case`enable`:return await If(e,await Bf(e));case`disable`:return await Vf(e),{subscription:`missing`,preferences:null};case`test`:return await e.request(`push.web.test`,{}),{};case`set`:{let n=await Hf();return await e.request(`push.web.preferences.set`,{endpoint:n.endpoint,scope:t.scope,preferences:t.preferences}),{preferences:await Uf(e)}}default:return t}}var Gf,Kf,qf;function Jf(){return(Jf=e((()=>{So(),Nt(),Gf=1e4,Kf=`This browser push subscription belongs to another Gateway. Open this Gateway's own Control UI, or configure every mutually trusted Gateway behind this PWA with the same VAPID keypair.`,qf=`notifications.web.v1`})))()}var Yf=t({renderAgentAvatarFace:()=>Xf});function Xf(e){let t=he(e),n=Zf[t%Zf.length],r=`hsl(${n} 58% 62%)`,i=`hsl(${n} 65% 90%)`,a=`hsl(${n} 55% 18%)`,o=[z`<circle cx="11" cy="13.5" r="1.6" /><circle cx="21" cy="13.5" r="1.6" />`,z`<ellipse cx="11" cy="13" rx="1.5" ry="2" /><ellipse cx="21" cy="13" rx="1.5" ry="2" />`,z`<path d="M9 14q2-3 4 0m6 0q2-3 4 0" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,z`<rect x="6.5" y="9" width="19" height="9.5" rx="4.75" />
      <g fill=${i}><rect x="10.5" y="12" width="2.5" height="3.5" rx="1.25" /><rect x="19" y="12" width="2.5" height="3.5" rx="1.25" /></g>`],s=[z`<path d="M11.5 20q4.5 4.5 9 0" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,z`<path d="M11 19q5 1.5 10 0c-.5 4.5-3 6-5 6s-4.5-1.5-5-6Z" />
      <path d="M13.5 23q2.5-2 5 0-2.5 2-5 0Z" fill=${i} />`,z`<path d="M12 22q5 2 8-1" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,z`<path d="M13.5 22.5h5" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`],c=Math.floor(t/Zf.length),l=Math.floor(c/o.length),u=Math.floor(l/s.length)%2==1;return L`<svg
    class="identity-avatar__agent-face"
    viewBox="0 0 32 32"
    width="100%"
    height="100%"
    aria-hidden="true"
  >
    ${z`<circle cx="16" cy="16" r="16" fill=${u?i:r} />
      <g fill=${a}>${o[c%o.length]}${s[l%s.length]}</g>`}
  </svg>`}var Zf;function Qf(){return(Qf=e((()=>{R(),Zf=[8,32,48,82,142,174,202,232,272,322]})))()}function $f(e,t){return!t.avatarHat||Nl(e)?null:((he(e)^ep)>>>0)%6==0?t.avatarHat:null}var ep;function tp(){return(tp=e((()=>{Pl(),ep=Math.trunc(Math.random()*4294967295)})))()}function np(e,t,n=I){return zs(W(async()=>{let{fetchPluginThemeArtworkBlobUrl:e}=await import(`./control-ui-boot-shared-dOnP4mAA.js`).then(e=>(e.Ls(),e.Is));return{fetchPluginThemeArtworkBlobUrl:e}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).then(({fetchPluginThemeArtworkBlobUrl:t})=>t({url:e})).then(e=>e?L`<img class=${t} alt="" src=${e} />`:n).catch(()=>n),n)}function rp(){return(rp=e((()=>{R(),gs(),Go()})))()}function ip(e=F.lobster,t=br(),n=F.mark){return t.brandIcon===`claw`?e:t.brandIcon===`mark`?n:L`<openclaw-theme-brand-icon
    .branding=${t}
    aria-hidden="true"
  ></openclaw-theme-brand-icon>`}var ap;function op(){return(op=e((()=>{R(),B(),ur(),P(),rp(),ap=class extends ko{static{this.styles=fi`
    :host {
      display: inline-flex;
      width: 100%;
      height: 100%;
    }
    img,
    svg {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  `}render(){let e=this.branding??br(),t=e.artwork?.icons?.[e.brandIcon];return t?np(t.url,`brand-icon`,F.mark):F.mark}},U([V({attribute:!1})],ap.prototype,`branding`,void 0),customElements.get(`openclaw-theme-brand-icon`)||customElements.define(`openclaw-theme-brand-icon`,ap)})))()}var sp;function cp(){return(cp=e((()=>{R(),sp={crown:z`
    <path
      d="M46 12 L46 2 L53 8 L60 0 L67 8 L74 2 L74 12 Q60 8 46 12 Z"
      fill="#f6c945"
    />
  `,santa:z`
    <g>
      <path d="M47 10 Q54 1 68 3 L72 9 Z" fill="#e0312f" />
      <circle cx="71" cy="3.5" r="3.5" fill="#f5f7fa" />
      <ellipse cx="59" cy="10.5" rx="15" ry="3.5" fill="#f5f7fa" />
    </g>
  `,pumpkin:z`
    <g>
      <ellipse cx="60" cy="6.5" rx="8.5" ry="5.5" fill="#e8871e" />
      <path d="M56 2.5 Q56 6.5 56 10.5 M64 2.5 Q64 6.5 64 10.5" stroke="#c96a10" stroke-width="1.5" fill="none" />
      <path d="M60 1.5 Q60.5 0 63 0.5" stroke="#4c9a4c" stroke-width="2.5" stroke-linecap="round" fill="none" />
    </g>
  `,party:z`
    <g>
      <path d="M52 11 L60 0.5 L68 11 Z" fill="#7c5cff" />
      <path d="M55.5 6.5 L64.5 6.5" stroke="#ffd166" stroke-width="2" />
      <circle cx="60" cy="1" r="2.4" fill="#ff5c8a" />
    </g>
  `}})))()}function lp(e){return z`
    <svg
      class="lobster-pet__svg"
      viewBox="0 0 120 105"
      preserveAspectRatio="none"
      aria-hidden="true"
    >
      ${e}
    </svg>
  `}function up(){return(up=e((()=>{R()})))()}function dp(e,t){return{penguin:`--lob-scale:2;--lob-w:0.85;--lob-h:1.1;--lob-face:${t}`,fedora:`--lob-scale:1.6;--lob-w:1;--lob-h:0.72;--lob-face:1`}[e]}function fp(e,t){return z`
    <svg class="identity-avatar__hat-svg" viewBox="0 0 100 100" aria-hidden="true">
      <g transform="translate(60 27) rotate(-12) scale(2.2) translate(-60 ${-t})">
        ${sp[e]}
      </g>
    </svg>
  `}var pp,mp,hp,gp,_p,vp;function yp(){return(yp=e((()=>{R(),cp(),up(),pp=lp(z`
    <ellipse cx="46" cy="99" rx="12" ry="4.5" fill="#f5921b" />
    <ellipse cx="72" cy="99" rx="12" ry="4.5" fill="#f5921b" />
    <ellipse cx="59" cy="62" rx="31" ry="39" fill="#151515" />
    <path d="M30 56 Q14 70 26 88 Q34 80 36 62 Z" fill="#151515" />
    <path d="M88 56 Q104 70 92 88 Q84 80 82 62 Z" fill="#151515" />
    <ellipse cx="60" cy="70" rx="19" ry="27" fill="#f2f2f2" />
    <ellipse cx="60" cy="40" rx="17" ry="12" fill="#f2f2f2" />
    <circle cx="52" cy="39" r="4.6" fill="#ffffff" />
    <circle cx="68" cy="39" r="4.6" fill="#ffffff" />
    <circle cx="53.5" cy="39.5" r="2.4" fill="#0a1014" />
    <circle cx="69.5" cy="39.5" r="2.4" fill="#0a1014" />
    <path d="M60 44 L79 49 L60 54 Q56 49 60 44 Z" fill="#f5921b" />
    <g transform="translate(0 3) rotate(-8 60 24)">
      <ellipse cx="60" cy="26" rx="30" ry="5.5" fill="#d40000" />
      <path d="M40 26 Q42 6 60 5 Q78 6 80 26 Z" fill="#ee0000" />
      <path d="M41 22 Q60 18 79 22 L79 26 L41 26 Z" fill="#a60000" />
      <path d="M48 9 Q60 4 72 9" stroke="#ff6b6b" stroke-width="2" fill="none" stroke-linecap="round" opacity="0.7" />
    </g>
`),mp=lp(z`
    <ellipse cx="60" cy="82" rx="54" ry="11" fill="#d40000" />
    <path d="M26 80 Q28 30 60 26 Q92 30 94 80 Z" fill="#ee0000" />
    <path d="M52 30 Q60 24 68 30 Q64 40 60 42 Q56 40 52 30 Z" fill="#c40000" opacity="0.7" />
    <path d="M28 66 Q60 58 92 66 L92 78 Q60 72 28 78 Z" fill="#a60000" />
    <path d="M40 36 Q50 29 58 28" stroke="#ff6b6b" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.7" />
    <ellipse cx="60" cy="82" rx="54" ry="11" fill="none" stroke="#a60000" stroke-width="1.5" />
`),hp={penguin:pp,fedora:mp},gp={penguin:`on loan from the kernel`,fedora:`a hat. nobody underneath`},_p={penguin:13e3,fedora:9e3},vp={fedora:z`
    <svg class="identity-avatar__hat-svg" viewBox="0 0 100 100" aria-hidden="true">
      <g transform="rotate(-12 60 25)">
        <ellipse cx="60" cy="27" rx="27" ry="5" fill="#d40000" />
        <path d="M43 27 Q45 7 60 6 Q75 7 77 27 Z" fill="#ee0000" />
        <path d="M44 22 Q60 18 76 22 L76 27 L44 27 Z" fill="#a60000" />
        <path d="M50 10 Q60 6 70 10" stroke="#ff6b6b" stroke-width="1.8" fill="none" stroke-linecap="round" opacity="0.7" />
      </g>
    </svg>
  `,crown:fp(`crown`,11),santa:fp(`santa`,10.5),party:fp(`party`,11),pumpkin:fp(`pumpkin`,12)}})))()}function bp(e){let t=ra(e),n=t.kind===`initials`?t:ya(e),r=t.kind===`profile`?Xa(t.url):null;return{fallback:n,imageUrl:r,sourceUrl:t.kind===`profile`?t.url:void 0,pending:r!==null&&typeof r!=`string`}}function xp(e,t){e.setAttribute(`data-avatar-state`,t),e.classList.toggle(`is-pending`,t===`pending`),e.classList.toggle(`is-fallback`,t===`none`||t===`failed`)}function Sp(e,t,n){let r=e.currentTarget;if(!(r instanceof HTMLImageElement))return;let i=r.closest(t);i&&xp(i,n?`failed`:`loaded`)}function Cp({view:e,fallbackSelector:t,className:n,alt:r=``,ariaHidden:i=!1,onImageError:a}){return e.imageUrl?L`<img
    class=${n??I}
    src=${Ap(e.imageUrl,e.sourceUrl,t)}
    alt=${r}
    aria-hidden=${i?`true`:I}
    referrerpolicy="no-referrer"
    @error=${e=>{Sp(e,t,!0),a?.()}}
    @load=${e=>Sp(e,t,!1)}
  />`:I}function wp(e,t){let n=br();return n.brandIcon===`claw`?L`<img
    class=${`identity-avatar--agent ${t}`}
    src=${An(`favicon.svg`)}
    alt=${e??``}
    aria-hidden=${e?I:`true`}
  />`:L`<span
      class=${`identity-avatar--agent identity-avatar--neutral ${t}`}
      role=${e?`img`:I}
      aria-label=${e??I}
      aria-hidden=${e?I:`true`}
      >${ip(F.mark,n)}</span
    >`}function Tp(e,t=``,n){let r=br();if(Nl(e.id))return L`${Mp(e.name,t)}`;let i=e.avatar&&!e.pending?Xa(e.avatar)??e.avatar:null,a={imageUrl:i,sourceUrl:e.avatar??void 0,pending:e.pending??i!==null};return L`<span
    class=${Op(`identity-avatar--agent ${t}`,a)}
    role=${e.name?`img`:I}
    aria-label=${e.name??I}
    aria-hidden=${e.name?I:`true`}
  >
    ${Cp({view:a,fallbackSelector:`.identity-avatar--agent`,className:`identity-avatar__image`,onImageError:n})}
    <span class="identity-avatar__fallback">
      ${Ss([e.id,e.textAvatar],()=>zs(e.textAvatar?L`<span class="identity-avatar__text" data-avatar=${e.textAvatar}></span>`:W(async()=>{let{renderAgentAvatarFace:e}=await Promise.resolve().then(()=>(Qf(),Yf));return{renderAgentAvatarFace:e}},void 0,import.meta.url).then(({renderAgentAvatarFace:t})=>t(e.id)),I))}
    </span>
    ${e.pending?I:Ep(e.id,r)}
  </span>`}function Ep(e,t=br()){let n=$f(e,t);if(!n)return I;let r=t.artwork?.hats?.[n],i=es(n)?vp[n]:r?np(r.url,`identity-avatar__hat-img`):I;return L`<span class=${`identity-avatar__hat identity-avatar__hat--${n}`} aria-hidden="true"
    >${i}</span
  >`}var Dp,Op,kp,Ap,jp,Mp;function Np(){return(Np=e((()=>{R(),_i(),ri(),ps(),gs(),Yo(),Pl(),Pn(),ur(),ie(),na(),aa(),tp(),P(),rp(),op(),yp(),Go(),Dp=class extends ni{constructor(...e){super(...e),this.hasImage=!1}render(e,t){return e}update(e,[t,n]){n.imageUrl?this.hasImage||xp(e.element,`pending`):xp(e.element,n.pending?`pending`:`none`),this.hasImage=!!n.imageUrl;let r=e.element.getAttribute(`data-avatar-state`);return`${t}${r===`pending`?` is-pending`:r===`none`||r===`failed`?` is-fallback`:``}`}},Op=ti(Dp),kp=class extends _s{constructor(...e){super(...e),this.imageUrl=null,this.value=I,this.resolvedUrl=null,this.fallbackSelector=``}render(e,t,n){return I}update(e,[t,n,r]){let i=n??(typeof t==`string`?t:void 0),a=i?Qi(i,ye().origin):null,o=a&&t===i?Xa(a):t;if(this.part=e,this.fallbackSelector=r,this.sourceUrl=a??void 0,o!==this.imageUrl||!this.release){let e=this.isConnected?Ta(o):void 0;this.release?.(),this.release=e,this.imageUrl=o,this.value=typeof o==`string`?o:o?.then(e=>e??I)??I}let s=super.update(e,[this.value,I]);return this.reconcileSource(s,!1),s}setValue(e){super.setValue(e),this.reconcileSource(e,!0)}reconcileSource(e,t){if(e===gi||!this.part)return;let n=this.part.element;if(!(n instanceof HTMLImageElement))return;let r=typeof e==`string`?e:null;if(r!==this.resolvedUrl||!r){this.resolvedUrl=r;let e=n.closest(this.fallbackSelector);e&&xp(e,!r&&t?`failed`:`pending`)}queueMicrotask(()=>{if(r&&this.resolvedUrl===r&&n.getAttribute(`src`)===r&&n.complete&&n.naturalWidth>0){let e=n.closest(this.fallbackSelector);e&&xp(e,`loaded`)}})}disconnected(){super.disconnected(),this.release?.(),this.release=void 0}reconnected(){if(this.part){let e=this.sourceUrl?Xa(this.sourceUrl):this.imageUrl;this.setValue(this.update(this.part,[e,this.sourceUrl,this.fallbackSelector]))}super.reconnected()}},Ap=ti(kp),jp=class extends Qr{constructor(...e){super(...e),this.className=``}render(e,t){return this.name=e,this.className=t,this.isConnected&&(this.stop??=sr(()=>this.setValue(wp(this.name,this.className)))),wp(e,t)}disconnected(){this.stop?.(),this.stop=void 0}reconnected(){this.setValue(this.render(this.name,this.className))}},Mp=ti(jp)})))()}function Pp(e,t){if(e.key===`Tab`){t?.();return}e.key===`Escape`&&e.currentTarget&&Wp.add(e.currentTarget)}function Fp(e){let t=e.currentTarget;return t!==null&&Wp.delete(t)}function Ip(e,t){if(!(e instanceof HTMLElement)||e.localName!==`wa-dropdown-item`)return;let n=e;Promise.resolve(n.updateComplete).then(()=>{n.isConnected&&(n.setAttribute(`role`,`menuitemradio`),n.setAttribute(`aria-checked`,String(t)))})}function Lp(e){let t=e.shadowRoot?.querySelector(`[part="menu"]`);if(!t)return;let n=e.querySelector(`[slot="trigger"]`),r=e.getAttribute(`aria-label`)||(n?.getAttribute(`aria-label`)??n?.textContent?.trim());r&&(t.setAttribute(`aria-label`,r),t.removeAttribute(`aria-labelledby`))}function Rp(e){let t=e.shadowRoot?.querySelector(`[part="submenu"]`);if(!t)return;let n=(e.shadowRoot?.querySelector(`slot:not([name])`))?.assignedNodes({flatten:!0}).map(e=>e.textContent).join(` `).replace(/\s+/gu,` `).trim(),r=e.getAttribute(`aria-label`)??n;r&&(t.setAttribute(`aria-label`,r),t.removeAttribute(`aria-labelledby`))}function zp(e){e.querySelectorAll(`wa-dropdown-item`).forEach(Rp)}function Bp(e){let t=e.detail?.item;if(!(t instanceof HTMLElement)||t.localName!==`wa-dropdown-item`)return;let n=`updateComplete`in t?t.updateComplete:void 0;Promise.resolve(n).then(()=>{t.isConnected&&Rp(t)})}function Vp(e){let t=e.composedPath()[0];if(!(t instanceof HTMLElement)||t.localName!==`wa-dropdown`||(queueMicrotask(()=>{!e.defaultPrevented&&t.open&&Ge(t,`wa-after-hide`,function*(){let e=t.shadowRoot?.querySelector(`[part="menu"]`);e&&(yield e);for(let e of t.querySelectorAll(`wa-dropdown-item`)){let t=e.shadowRoot?.querySelector(`[part="submenu"]`);t&&(yield t)}})}),t.shadowRoot?.querySelector(`[part="menu"]`)?.removeAttribute(`inert`),Lp(t),zp(t),Gp.get(t)?.disconnect(),typeof MutationObserver>`u`))return;let n=new MutationObserver(()=>{Lp(t),zp(t)});n.observe(t,{attributes:!0,attributeFilter:[`aria-label`],childList:!0,characterData:!0,subtree:!0}),Gp.set(t,n)}function Hp(e){let t=e.composedPath()[0];t instanceof HTMLElement&&t.localName===`wa-dropdown`&&queueMicrotask(()=>{e.defaultPrevented||!t.isConnected||t.open||t.shadowRoot?.querySelector(`[part="menu"]`)?.setAttribute(`inert`,``)})}function Up(e){let t=e.composedPath()[0];t instanceof HTMLElement&&t.localName===`wa-dropdown`&&(Gp.get(t)?.disconnect(),Gp.delete(t))}var Wp,Gp;function Kp(){return(Kp=e((()=>{Cs(),xs(),it(),Wp=new WeakSet,Gp=new WeakMap,typeof document<`u`&&(document.addEventListener(`wa-show`,Vp),document.addEventListener(`submenu-opening`,e=>{e instanceof CustomEvent&&Bp(e)},!0),document.addEventListener(`wa-hide`,Hp),document.addEventListener(`wa-after-hide`,Up))})))()}function qp(e,t,n,r){return e.icon&&!n?L`<span class="agent-select__avatar agent-select__avatar--icon" aria-hidden="true"
      >${e.icon}</span
    >`:Tp({id:e.agent?.id??e.value,avatar:n,textAvatar:e.agent?ot(e.agent,t):null},`agent-select__avatar`,r)}function Jp(e){return L`
    <span class="agent-select__option-copy">
      <span class="agent-select__option-heading">
        <span class="agent-select__option-label">${e.label}</span>
        ${e.badge?L`<span class="agent-select__badge">${e.badge}</span>`:I}
      </span>
      ${e.description?L`<span class="agent-select__option-description">${e.description}</span>`:I}
    </span>
  `}var Yp;function Xp(){return(Xp=e((()=>{Cs(),xs(),R(),B(),$r(),k(),_t(),At(),na(),O(),P(),Np(),Kp(),Yp=class extends pt{constructor(...e){super(...e),this.options=[],this.value=``,this.placeholder=``,this.accessibleLabel=``,this.menuLabel=``,this.identityById={},this.disabled=!1,this.variant=`default`,this.onSelect=()=>{},this.onCreateAgent=null,this.avatarLoader=new wa(this),this.handleSelect=e=>{if(this.disabled){e.preventDefault();return}let t=e.detail.item;if(t.hasAttribute(`data-create-agent`)){this.onCreateAgent?.();return}let n=t.value??t.getAttribute(`value`);if(n!=null){if(n===this.value){e.preventDefault();let t=e.currentTarget;t.querySelector(`[slot="trigger"]`)?.focus({preventScroll:!0}),t.open=!1;return}this.onSelect(n)}}}willUpdate(e){if(e.has(`disabled`)&&this.disabled){let e=this.querySelector(`wa-dropdown`);e&&(e.open=!1)}}renderAvatar(e){let t=e.agent?.id,n=t?this.identityById[t]??null:null,r=e.agent?rt(e.agent,n):null;return qp(e,n,r?this.avatarLoader.resolve(r):null,r?this.avatarLoader.imageErrorHandler(r):void 0)}render(){return this.avatarLoader.withActiveRoutes(()=>this.renderContent())}renderContent(){let e=this.options.find(e=>e.value===this.value),t=e??(this.value?{value:this.value,label:this.value,agent:{id:this.value}}:null),n=this.disabled||this.options.length===0&&!this.onCreateAgent,r=t?.label??(this.placeholder||N(`agents.noAgents`)),i=e?.badge,a=i?`${r}, ${i}`:r;return L`
      <wa-dropdown
        class="agent-select ${this.variant===`compact`?`agent-select--compact`:``}"
        placement="bottom-start"
        aria-label=${this.accessibleLabel||r}
        @wa-select=${this.handleSelect}
        @keydown=${e=>{let t=e.currentTarget;e.key===`Escape`&&t.open&&e.preventDefault()}}
      >
        <button
          slot="trigger"
          type="button"
          class="agent-select__trigger"
          aria-label=${this.accessibleLabel?`${this.accessibleLabel}: ${a}`:a}
          ?disabled=${n}
        >
          ${t?this.renderAvatar(t):I}
          <span class="agent-select__label">${r}</span>
          ${i?L`<span class="agent-select__badge">${i}</span>`:I}
          <span class="agent-select__chevron" aria-hidden="true">${F.chevronDown}</span>
        </button>
        ${this.menuLabel?L`<div class="agent-select__menu-title">${this.menuLabel}</div>`:I}
        ${this.options.map(e=>{let t=e.value===this.value,n=[e.label,e.description,e.badge].filter(Boolean).join(`, `);return L`
            <wa-dropdown-item
              class="agent-select__option"
              data-agent-option
              ?data-selected=${t}
              aria-label=${n}
              .value=${e.value}
              ?disabled=${this.disabled||e.disabled}
              ?autofocus=${t&&!this.disabled&&!e.disabled}
              ${ui(e=>Ip(e,t))}
            >
              <span slot="icon">${this.renderAvatar(e)}</span>
              ${Jp(e)}
              <span slot="details" class="agent-select__option-state" aria-hidden="true">
                ${t?L`<span class="agent-select__option-check">${F.check}</span>`:I}
              </span>
            </wa-dropdown-item>
          `})}
        ${this.onCreateAgent?L`
                ${this.options.length>0?L`<div class="agent-select__separator" role="separator"></div>`:I}
                <wa-dropdown-item
                  class="agent-select__option"
                  data-create-agent
                  ?disabled=${this.disabled}
                >
                  <span slot="icon" class="agent-select__footer-icon" aria-hidden="true"
                    >${F.users}</span
                  >
                  <span class="agent-select__option-label">${N(`custodian.newAgent`)}</span>
                </wa-dropdown-item>
              `:I}
      </wa-dropdown>
    `}},U([V({attribute:!1})],Yp.prototype,`options`,void 0),U([V({attribute:!1})],Yp.prototype,`value`,void 0),U([V({attribute:!1})],Yp.prototype,`placeholder`,void 0),U([V({attribute:!1})],Yp.prototype,`accessibleLabel`,void 0),U([V({attribute:!1})],Yp.prototype,`menuLabel`,void 0),U([V({attribute:!1})],Yp.prototype,`identityById`,void 0),U([V({attribute:!1})],Yp.prototype,`disabled`,void 0),U([V({attribute:!1})],Yp.prototype,`variant`,void 0),U([V({attribute:!1})],Yp.prototype,`onSelect`,void 0),U([V({attribute:!1})],Yp.prototype,`onCreateAgent`,void 0)})))()}var Zp=t({});function Qp(){return(Qp=e((()=>{Xp(),customElements.get(`openclaw-agent-select`)||customElements.define(`openclaw-agent-select`,Yp)})))()}function $p(e){let t=Date.now();return e!=null&&Number.isFinite(e)&&e<=t&&t-e<6e4?N(`common.now`):Pt(e,{fallback:``,suffix:e!=null&&e>t})}function em(e){return e!==void 0&&e<0xe8d4a51000?e*1e3:e}function tm(e){let t=ut(e.sessionKey);for(let r of e.catalogs)for(let i of r.hosts)for(let a of i.sessions){let o=a.sessionKey??n({catalogId:r.id,hostId:i.hostId,threadId:a.threadId}),s=t?.catalogId===r.id&&t.hostId===i.hostId&&t.threadId===a.threadId;if(o!==e.sessionKey&&!s)continue;let c=yo(a.cwd),l=yo(a.gitBranch);return{...e.liveRow,hasActiveRun:e.liveRow?.hasActiveRun===!0,hasAutomation:e.liveRow?.hasAutomation===!0,label:e.liveRow?.label??(a.name||a.threadId),color:e.liveRow?e.liveRow.color:a.color,createdActor:e.liveRow?.createdActor??a.createdActor,createdAt:e.liveRow?.createdAt??em(a.createdAt),updatedAt:e.liveRow?.updatedAt??em(a.updatedAt),workContext:c?l||a.pullRequest?{kind:`project`,name:gt(c),path:c,...l?{branch:l}:{}}:{kind:`workspace`,name:gt(c),path:c}:e.liveRow?.workContext}}return e.liveRow}function nm(e){let t=new Set;for(let n of e)for(let e of n.hosts)for(let n of e.sessions)n.sessionKey&&t.add(n.sessionKey);return t}function rm(e){let t=new Set,n=e=>{e&&t.add(M(`[${e.code}] ${e.message}`))};n(e.error);for(let t of e.hosts)t.error?.code!==`NODE_OFFLINE`&&n(t.error);return[...t]}function im(e,t,n,r){let i=new Map(n.toReversed().map(e=>[e.key,e]));return e.flatMap(e=>{let n=[];for(let a of e.hosts){let e=a.sessions.filter(e=>{let n=e.sessionKey?i.get(e.sessionKey):void 0;return e.sessionKey&&r?.(n??{key:e.sessionKey})?!1:!t||(n?n.owner?.actor.id:e.createdActor?.id)===t});e.length>0&&n.push(e.length===a.sessions.length?a:{...a,sessions:e})}return n.length>0?[{...e,visibleHosts:n}]:[]})}function am(e,t){return e.map(e=>e.id===t.catalogId?{...e,hosts:e.hosts.map(e=>e.hostId===t.hostId?{...e,sessions:e.sessions.map(e=>e.threadId===t.threadId?{...e,sessionKey:t.sessionKey}:e)}:e)}:e)}function om(){return(om=e((()=>{k(),Nt(),Ae(),xt()})))()}function sm(e){let t=e.kind===`entry`?`data-sidebar-entry`:`data-session-section`,n=(n,r)=>{let i=n.closest(`[${t}]`),a=[...i?.parentElement?.children??[]].filter(n=>n.hasAttribute(t)&&(e.kind===`entry`||n.querySelector(`.sidebar-recent-sessions__head[draggable="true"]`))),o=i?a.indexOf(i):-1;return o<0?null:a[o+(r===`before`?-1:1)]?.getAttribute(t)??null},r=N(`chat.sidebar.reorderItem`,{item:e.label});return L`
    <wa-dropdown
      class="sidebar-reorder-menu"
      placement="bottom-end"
      aria-label=${r}
      @wa-show=${e=>{let t=e.currentTarget;if(t instanceof HTMLElement)for(let e of[`before`,`after`])t.querySelector(`wa-dropdown-item[value="${e}"]`)?.toggleAttribute(`disabled`,n(t,e)===null)}}
      @wa-select=${async t=>{let r=t.detail.item.value;if(r!==`before`&&r!==`after`)return;let i=t.currentTarget;if(!(i instanceof HTMLElement))return;let a=n(i,r);if(a){let t=i.querySelector(`button[slot=trigger]`);await e.onMove(a,r),t?.isConnected&&document.activeElement===document.body&&t.focus({preventScroll:!0})}}}
    >
      <button
        slot="trigger"
        type="button"
        class="sidebar-reorder-trigger"
        aria-label=${r}
        title=${r}
      >
        ${F.gripVertical}
      </button>
      <wa-dropdown-item value="before">
        <span slot="icon" aria-hidden="true">${F.arrowUp}</span>
        ${N(`chat.sidebar.moveUp`)}
      </wa-dropdown-item>
      <wa-dropdown-item value="after">
        <span slot="icon" aria-hidden="true">${F.arrowDown}</span>
        ${N(`chat.sidebar.moveDown`)}
      </wa-dropdown-item>
    </wa-dropdown>
  `}function cm(){return(cm=e((()=>{R(),k(),P(),Kp()})))()}function lm(e){let t=e.draggable!==!1&&!e.disabledReason;return L`
    <div
      class="sidebar-recent-sessions__head ${t?`sidebar-recent-sessions__head--draggable`:``}"
      draggable=${t?`true`:`false`}
      title=${e.disabledReason??I}
      @mousedown=${e=>{e.currentTarget.toggleAttribute(`data-section-drag-blocked`,!!e.target.closest(`button, a`))}}
      @mouseup=${e=>{e.currentTarget.removeAttribute(`data-section-drag-blocked`)}}
      @dragstart=${n=>{if(!t){n.preventDefault();return}let r=n.currentTarget,i=!!n.target.closest(`button, a`)||r.hasAttribute(`data-section-drag-blocked`);if(r.removeAttribute(`data-section-drag-blocked`),i){n.preventDefault();return}n.dataTransfer&&(qc(n.dataTransfer,e.sectionId),e.onStartDrag(e.sectionId))}}
      @dragend=${t=>{t.currentTarget.removeAttribute(`data-section-drag-blocked`),e.onFinishDrag()}}
      @contextmenu=${e.onContextMenu??I}
    >
      <span class="sidebar-session-group-drag-handle" aria-hidden="true"></span>
      ${e.content}
      ${t&&e.reorder?sm({...e.reorder,kind:`section`}):I}
      ${e.status?L`<button
              type="button"
              class="sidebar-session-group-status"
              tabindex="-1"
              aria-label=${e.status.label}
              aria-expanded=${String(e.status.expanded)}
              title=${e.status.title??I}
              @click=${e.status.onToggle}
            >
              ${e.status.content}
            </button>`:I}
    </div>
  `}function um(){return(um=e((()=>{R(),oc(),cm()})))()}function dm(e){return e.split(/[-_]+/u).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}function fm(e){if(Object.hasOwn(wm,e))return wm[e];let t=Tm.exec(e)?.[1];return t?`${fm(t)} (ACP)`:dm(e)}function pm(e){let t=e.indexOf(`/`);return(t>0?e.slice(0,t).trim().toLowerCase():``)||null}function mm(e){let t=e.trim().toLowerCase(),n=Cm[t]??t;if(Sm.has(n))return n;let r=Tm.exec(t)?.[1];return r?mm(r):null}function hm(e){return mm(e)!==null}function gm(e){let t=(e?.providerDisplayId??e?.providerId??``).trim().toLowerCase();return Dm.get(t)??t}function _m(e,t){return Number(Em.has(gm(t)))-Number(Em.has(gm(e)))||e.id.localeCompare(t.id)}function vm(e){let t=gm(e),n=Em.get(t),r=n?.label??(e?.providerDisplayId??e?.providerId??``).trim().toLowerCase(),i=n?.brand?ym(An(`cloud-provider-icons/${n.brand}.svg`),n.brand,`cloud-provider-icon`):t===`machine0`||t===`incus`?F.server:t===`local-container`?F.box:F.cloud;return{label:r,icon:L`<span class="cloud-profile-icon" aria-hidden="true">${i}</span>`}}function ym(e,t,n=``){return L`<span
    class="provider-brand-icon ${n}"
    data-provider-icon=${t}
    style=${`--provider-icon-url: url("${e}")`}
    aria-hidden="true"
  ></span>`}function bm(e,t){let n=t?.className?` ${t.className}`:``,r=Re(e.trim().toUpperCase(),1)||`?`;return L`
    <span
      class="provider-brand-icon provider-brand-icon--fallback${n}"
      aria-hidden="true"
    >
      ${r}
    </span>
  `}function xm(e,t){let n=mm(e);return n?ym(An(`provider-icons/ProviderIcon-${n}.svg`),n,t?.className?.trim()??``):bm(e,t)}var Sm,Cm,wm,Tm,Em,Dm;function Om(){return(Om=e((()=>{R(),Pn(),He(),P(),Sm=new Set(`abacus.alibaba.amp.antigravity.arcee.augment.baseten.bedrock.byteplus.cerebras.chutes.claude.clawrouter.cloudflare.codebuff.codex.cohere.comfy.commandcode.copilot.crof.crossmodel.cursor.deepgram.deepinfra.deepseek.devin.doubao.elevenlabs.factory.fal.featherless.fireworks.gemini.grok.groq.huggingface.jetbrains.kilo.kimi.kiro.litellm.llamacpp.llmproxy.lmstudio.longcat.manus.meta.microsoft.mimo.minimax.mistral.novita.nvidia.ollama.opencode.opencodego.openrouter.perplexity.pi.pixverse.poe.qianfan.qoder.runway.sakana.stepfun.synthetic.t3chat.tencent.together.venice.vercel.vertexai.vllm.volcengine.warp.windsurf.zai.zed`.split(`.`)),Cm={anthropic:`claude`,"amazon-bedrock":`bedrock`,"aws-bedrock":`bedrock`,"claude-cli":`claude`,"cloudflare-ai-gateway":`cloudflare`,"copilot-proxy":`copilot`,google:`gemini`,"google-gemini-cli":`gemini`,"github-copilot":`copilot`,kilocode:`kilo`,"kimi-coding":`kimi`,"llama-cpp":`llamacpp`,"microsoft-foundry":`microsoft`,"minimax-portal":`minimax`,"ollama-cloud":`ollama`,openai:`codex`,moonshot:`kimi`,"opencode-go":`opencodego`,"opencode-zen":`opencode`,qwen:`alibaba`,"qwen-token-plan":`alibaba`,"stepfun-plan":`stepfun`,"tencent-tokenhub":`tencent`,"tencent-tokenplan":`tencent`,xai:`grok`,xiaomi:`mimo`,"xiaomi-token-plan":`mimo`,"vercel-ai-gateway":`vercel`,"vertex-ai":`vertexai`,"z-ai":`zai`},wm={"acp-copilot":`GitHub Copilot CLI`,"acp-kilocode":`Kilo Code (ACP)`,"acp-qwen":`Qwen Code (ACP)`,anthropic:`Anthropic`,"claude-cli":`Claude CLI`,google:`Google`,"github-copilot":`GitHub`,"llama-cpp":`llama.cpp`,lmstudio:`LM Studio`,longcat:`LongCat`,openai:`OpenAI`,moonshot:`Moonshot AI`,opencode:`OpenCode`,openrouter:`OpenRouter`,qwen:`Qwen Cloud`,xai:`xAI`,zai:`Z.AI`},Tm=/^acp-(.+)$/u,Em=new Map([[`aws`,{label:`AWS`,brand:`aws`}],[`azure`,{label:`Azure`,brand:`azure`}],[`daytona`,{label:`Daytona`,brand:`daytona`}],[`gcp`,{label:`Google Cloud`,brand:`gcp`}],[`hetzner`,{label:`Hetzner`,brand:`hetzner`}],[`machine0`,{label:`Machine0`}]]),Dm=new Map([[`google`,`gcp`],[`google-cloud`,`gcp`],[`docker`,`local-container`],[`local-docker`,`local-container`],[`podman`,`local-container`],[`local-podman`,`local-container`]])})))()}function km(e,t,n,r){return e===`pair`?L`<svg
      class="session-glyph__trace${t?` session-glyph__trace--queued`:``}"
      viewBox="-16 -11 32 22"
      role="img"
      aria-label=${n}
    >
      <path class="session-glyph__trace-track" d=${Mm}></path>
      <path
        class="session-glyph__trace-run"
        d=${Mm}
        pathLength="100"
        ${r??I}
      ></path>
    </svg>`:L`<span
    class="session-glyph__ring${t?` session-glyph__ring--queued`:``}"
    role="img"
    aria-label=${n}
    ${r??I}
  ></span>`}function Am(e){let{content:t,running:n,queued:r=!1,runningLabel:i,circular:a=!1,badge:o=I,ring:s=`circle`}=e,c=L`<span class="session-glyph${`${a?` session-glyph--circular`:``}${n?` session-glyph--running`:``}${t===I?` session-glyph--bare`:``}`}">
    <span class="session-glyph__content">${t}</span>
    ${n?km(s,r,i??N(r?`sessionsView.statusQueued`:`sessionsView.activeRun`),e.runVisibility):I}
    ${o}
  </span>`;return n&&i?L`<openclaw-tooltip .content=${i} .describe=${!1}
        >${c}</openclaw-tooltip
      >`:c}function jm(){return L`<span
    class="session-glyph__badge session-glyph__badge--unread"
    role="img"
    aria-label=${N(`sessionsView.unread`)}
  ></span>`}var Mm;function Nm(){return(Nm=e((()=>{R(),k(),an(),Mm=`M0,-9.798A11,11 0 1 1 0,9.798A11,11 0 1 1 0,-9.798Z`})))()}function Pm(e){return[e?.osLabel||e?.os||``,e?.class||``,e?.cpu?N(`sessionHovercard.machineCpu`,{cpu:String(e.cpu)}):``,e?.memoryGb?N(`sessionHovercard.machineMemory`,{memory:String(e.memoryGb)}):``]}function Fm(){return(Fm=e((()=>{k()})))()}function Im(e){return`${e.numbers.map(e=>`#${e}`).join(`, `)} · ${N(`chat.pullRequests.${e.state}`)}`}function Lm(e,t,n=``,r=0,i,a,o,s=0){return L`<openclaw-tooltip .content=${e}>
    <span
      class=${`session-row-badge${n?` ${n}`:``}`}
      data-pull-request-state=${i??I}
      data-placement-state=${a??I}
      data-disk-space-status=${o??I}
      data-workspace-conflicts=${s?String(s):I}
      role="img"
      aria-label=${e}
      >${t}${r?L`<span aria-hidden="true">${r}</span>`:I}</span
    >
  </openclaw-tooltip>`}function Rm(e){let t=e.pullRequest?Im(e.pullRequest):void 0,n=e.pullRequest?.state,r=e.isChild?void 0:e.placementState,i=Oi(r)?r:void 0,a=Math.max(0,Math.floor(e.workspaceConflictCount??0)),o=a>0?e.placementState:void 0,s=i??o,c=a>0,l=e.isChild?void 0:e.diskSpaceStatus,u=l===`critical`?N(`sessionsView.cloudWorkerDiskCritical`):l===`warning`?N(`sessionsView.cloudWorkerDiskWarning`):``,d=Math.max(0,Math.floor(e.outboxAttentionCount??0)),f=d>0?N(d===1?`sessionsView.messageNeedsAttention`:`sessionsView.messagesNeedAttention`,{count:String(d)}):``;if(!e.incognito&&!t&&!e.hasApproval&&d===0&&!e.hasComposerDraft&&!s&&!c)return I;let p=s?e.placementProviderId&&e.placementProfileId?[e.placementProviderId,e.placementProfileId,...Pm(e.placementMachine),s].filter(Boolean).join(` · `):N(`sessionsView.cloudWorkerPlacement`,{state:s}):``,m=[c?s?N(a===1?`sessionsView.placementWorkspaceConflict`:`sessionsView.placementWorkspaceConflicts`,{placement:p,count:String(a)}):N(a===1?`sessionsView.cloudWorkerDescendantConflict`:`sessionsView.cloudWorkerDescendantConflicts`,{count:String(a)}):p,u].filter(Boolean).join(` · `);return L`<span class="session-row-badges">
    ${e.incognito?Lm(N(`sessionsView.incognito`),F.lock,`session-row-badge--incognito`):I}
    ${t?Lm(t,n===`merged`?F.gitMerge:F.gitPullRequest,`session-row-badge--pull-request`,0,n):I}
    ${e.hasApproval?Lm(N(`sessionsView.approvalNeeded`),F.alertTriangle,`session-row-badge--approval`):I}
    ${d>0?Lm(f,F.alertTriangle,`session-row-badge--attention`,d):I}
    ${e.hasComposerDraft?Lm(N(`sessionsView.unsentDraft`),F.pencil,`session-row-badge--draft`):I}
    ${s||c?Lm(m,F.globe,`session-row-badge--cloud`,0,void 0,s,l,c?a:0):I}
  </span>`}function zm(){return(zm=e((()=>{R(),Ti(),k(),P(),Fm()})))()}function Bm(e){let t=Vm.get(e);if(!t){let n=new Map;t={observer:new IntersectionObserver(e=>{for(let t of e)for(let e of n.get(t.target)??[])e.classList.toggle(`session-run-indicator--offscreen`,!t.isIntersecting)},{root:e}),rows:n},Vm.set(e,t)}return t}var Vm,Hm,Um;function Wm(){return(Wm=e((()=>{R(),_i(),ri(),Vm=new WeakMap,Hm=class extends Qr{constructor(...e){super(...e),this.pending=!1}render(){return I}update(e){return this.element=e.element,this.schedule(),I}schedule(){!this.pending&&this.isConnected&&(this.pending=!0,queueMicrotask(()=>{this.pending=!1;let e=this.element;if(!this.isConnected||!e?.isConnected)return;let t=e.closest(`.session-row-host`),n=e.closest(`.sidebar-shell__body`);if(t&&n){if(this.observation?.root!==n||this.observation.row!==t){this.disconnected();let r=Bm(n),i=r.rows.get(t)??new Set;i.add(e),r.rows.set(t,i),this.observation={root:n,row:t,group:r}}this.observation.group.observer.unobserve(t),this.observation.group.observer.observe(t)}}))}disconnected(){if(!this.observation||!this.element)return;let{root:e,row:t,group:n}=this.observation,r=n.rows.get(t);r?.delete(this.element),r?.size===0&&(n.observer.unobserve(t),n.rows.delete(t)),n.rows.size===0&&(n.observer.disconnect(),Vm.delete(e)),this.observation=void 0}reconnected(){this.schedule()}},Um=ti(Hm)})))()}var Gm=t({renderSessionCatalogGroups:()=>Jm});function Km(e,t,n,r,i){let a=document.activeElement instanceof HTMLElement?document.activeElement:null,o=a?.closest(`[data-session-key]`),s=Qm.find(e=>a?.matches(e)),c=s!==void 0&&(o?.dataset.catalogSessionKey===e||o?.dataset.sessionKey===e||o?.dataset.sessionKey===t);if(r||c)return e=>{e instanceof HTMLElement&&(r&&i.onCatalogMenuTriggerRendered(n,e.querySelector(`[data-catalog-session-menu]`)??e.querySelector(`.sidebar-recent-session__link`)??void 0),c&&queueMicrotask(()=>{e.isConnected&&document.activeElement===document.body&&(e.querySelector(s)??e.querySelector(`.sidebar-recent-session__link`))?.focus({preventScroll:!0})}))}}function qm(e,t){return e?L`<span
      class="session-run-spinner"
      role="img"
      aria-label=${N(`sessionsView.activeRun`)}
      title=${N(`sessionsView.activeRun`)}
    ></span>`:t?L`<span
        class="session-unread-dot"
        role="img"
        aria-label=${N(`sessionsView.unread`)}
      ></span>`:I}function Jm(e){let t=new Map;for(let n of e.liveRows)t.has(n.key)||t.set(n.key,n);return e.catalogs.map(n=>{let r=`catalog:${n.id}`,i=e.collapsedSections.has(r),a=n.visibleHosts.flatMap(e=>e.sessions),o=a.flatMap(e=>{let n=e.sessionKey?t.get(e.sessionKey):void 0;return n?[n]:[]}),s=o.some(qo),c=o.some(e=>e.unread===!0),l=hm(n.id),u=e.loadingMoreCatalogIds.has(n.id),d=n.hosts.some(e=>!!e.nextCursor),f=n.capabilities.startTerminal===!0,p=rm(n),m=p.length>0,h=p.join(`; `),g=N(`chat.sidebar.catalogDiscoveryHelp`,{error:h}),_=[`sidebar-recent-sessions__group`,`sidebar-recent-sessions__group--zone-coding`,i?`sidebar-recent-sessions__group--collapsed`:``,e.draggingSectionId===r?`sidebar-recent-sessions__group--dragging`:``,e.sectionDropTarget?.sectionId===r?`sidebar-recent-sessions__group--section-drop-${e.sectionDropTarget.position}`:``].filter(Boolean).join(` `);return L`
      <div
        class=${_}
        data-session-section=${r}
        @dragover=${e.sectionDragDisabledReason?I:t=>e.onSectionDragOver(t,r)}
        @dragleave=${e.sectionDragDisabledReason?I:t=>e.onSectionDragLeave(t,r)}
        @drop=${e.sectionDragDisabledReason?I:t=>e.onSectionDrop(t,r)}
      >
        ${lm({sectionId:r,status:m||i&&a.length>0?{label:m?`${n.label}: ${g}`:n.label,expanded:!i,title:m?g:void 0,onToggle:()=>e.onToggleSection(r),content:L`<span
                    class="sidebar-session-group-count ${m?`sidebar-session-group-count--error`:``}"
                    data-session-catalog-error=${m?n.id:I}
                    aria-hidden="true"
                    >${m?F.alertTriangle:a.length}</span
                  >`}:void 0,disabledReason:e.sectionDragDisabledReason,onStartDrag:e.onStartSectionDrag,onFinishDrag:e.onFinishSectionDrag,reorder:{label:n.label,onMove:(t,n)=>e.onReorderSection(r,t,n)},onContextMenu:t=>{t.preventDefault();let r=t.currentTarget,i=r.querySelector(`[data-session-catalog-view-menu]`)??r;e.onOpenViewMenu(n.id,i,{x:t.clientX,y:t.clientY})},content:L`
            <button
              type="button"
              class="sidebar-session-group-toggle"
              aria-expanded=${String(!i)}
              aria-label=${m?`${n.label}: ${g}`:n.label}
              title=${m?g:I}
              @click=${()=>e.onToggleSection(r)}
            >
              <span
                class="sidebar-session-group-toggle__lead ${l?`sidebar-session-group-toggle__lead--branded`:``}"
                aria-hidden="true"
              >
                ${l?xm(n.id,{className:`sidebar-session-catalog-provider-icon`}):I}
                <span class="sidebar-session-group-toggle__icon"
                  >${i?F.chevronRight:F.chevronDown}</span
                >
              </span>
              ${Oa(n.label,`sidebar-recent-sessions__label-text`)}
              ${qm(s,c)}
            </button>
            <button
              type="button"
              class="sidebar-session-group-actions sidebar-session-sort sidebar-session-catalog-grouping ${e.ownerFilterActive?`sidebar-session-sort--filtered`:``}"
              data-session-catalog-view-menu=${n.id}
              title=${N(`chat.sidebar.catalogViewOptions`)}
              aria-label=${N(`chat.sidebar.catalogViewOptions`)}
              aria-haspopup="menu"
              aria-expanded=${String(e.viewMenuOpenCatalogId===n.id)}
              @click=${t=>{t.stopPropagation(),e.onOpenViewMenu(n.id,t.currentTarget)}}
            >
              ${F.listFilter}
            </button>
            ${f?Un({basePath:e.basePath,agentId:e.newSessionAgentId,target:{catalogId:n.id},className:`sidebar-session-group-actions sidebar-session-new sidebar-session-catalog-new`,label:`${N(`chat.runControls.newSession`)} — ${n.label}`,disabledReason:e.newSessionDisabledReason,onOpen:e.onOpenNewSession}):I}
          `})}
        ${i?I:L`<div class="sidebar-recent-sessions__list">
                  ${n.visibleHosts.map(r=>Ym(n,r,t,e))}
                </div>
                ${d?L`<button
                        type="button"
                        class="sidebar-session-catalog-load-more"
                        data-session-catalog-load-more=${n.id}
                        ?disabled=${u}
                        aria-busy=${String(u)}
                        @click=${()=>e.onLoadMore(n.id)}
                      >
                        ${N(`chat.selectors.loadMoreSessions`)}
                      </button>`:I}`}
      </div>
    `})}function Ym(e,t,r,i){let a=t.error?M(`[${t.error.code}] ${t.error.message}`):void 0,o=i.projectGrouping===`project`?ll(t.sessions):i.projectGrouping===`person`?xl(t.sessions):null,s=(a,o,s=!1)=>{let c=(i.visibleSessionLimits.get(o)??Zm)>Zm;return pi(c?a:a.slice(0,Zm),r=>n({catalogId:e.id,hostId:t.hostId,threadId:r.threadId}),n=>Xm(e,t,n,r,i,s))},c=(e,t)=>{if(e.length<=Zm)return I;let n=(i.visibleSessionLimits.get(t)??Zm)>Zm,r=N(n?`chat.messages.showLess`:`chat.messages.showMore`);return L`<div class="sidebar-session-pagination sidebar-session-pagination--catalog">
      <button
        type="button"
        class="sidebar-session-pagination__button"
        aria-label=${r}
        @click=${()=>i.onSetVisibleSessionLimit(t,n?Zm:e.length)}
      >
        ${r}
      </button>
    </div>`},l=o?.ungrouped??t.sessions,u=o?`catalog-${i.projectGrouping}-ungrouped:${e.id}:${t.hostId}`:`catalog-host:${e.id}:${t.hostId}`,d=t.kind!==`gateway`;return L`
    <section class="sidebar-session-catalog-host" data-session-catalog-host=${t.hostId}>
      ${d?L`<div
              class="sidebar-session-catalog-host__head"
              aria-label=${a?`${t.label}: ${a}`:t.label}
              title=${a??t.label}
            >
              <span class="sidebar-session-group-toggle__lead" aria-hidden="true">
                <span class="sidebar-session-group-toggle__icon">${F.monitor}</span>
              </span>
              <span class="sidebar-session-catalog-host__label">${t.label}</span>
              <span
                class="sidebar-session-catalog-host__count ${t.error?`sidebar-session-catalog-host__count--error`:``}"
                aria-hidden="true"
                >${t.error?F.alertTriangle:t.sessions.length}</span
              >
            </div>`:I}
      <div class="sidebar-session-catalog-host__sessions" role="list" aria-label=${t.label}>
        ${o?pi(o.groups,e=>e.key,n=>{let r=`catalog-${n.kind}:${e.id}:${t.hostId}:${n.key}`,a=n.legacySectionKey?`catalog-project:${e.id}:${t.hostId}:${n.legacySectionKey}`:null,o=i.collapsedSections.has(r)?r:a&&i.collapsedSections.has(a)?a:null,l=o!==null;return L`
                    <div class="sidebar-session-catalog-project" role="listitem">
                      <button
                        type="button"
                        class="sidebar-session-catalog-project__head"
                        data-session-catalog-project=${n.key}
                        aria-expanded=${String(!l)}
                        title=${n.title}
                        @click=${()=>i.onToggleSection(o??r)}
                      >
                        <span class="sidebar-session-catalog-project__icon" aria-hidden="true"
                          >${l?F.chevronRight:F.chevronDown}</span
                        >
                        <span class="sidebar-session-catalog-project__label">${n.label}</span>
                        <span class="sidebar-session-catalog-project__count" aria-hidden="true"
                          >${n.sessions.length}</span
                        >
                      </button>
                      ${l?I:L`<div
                                class="sidebar-session-catalog-project__sessions"
                                role="list"
                                aria-label=${`${t.label}: ${n.label}`}
                              >
                                ${s(n.sessions,r,!0)}
                              </div>
                              ${c(n.sessions,r)}`}
                    </div>
                  `}):I}
        ${s(l,u)}
      </div>
      ${c(l,u)}
    </section>
  `}function Xm(e,t,r,i,a,o=!1){let s=em(r.recencyAt??r.updatedAt??r.createdAt),c={catalogId:e.id,hostId:t.hostId,threadId:r.threadId,...r.sourceHomeId?{sourceHomeId:r.sourceHomeId}:{}},l=n(c),u=r.sessionKey??n(c,a.newSessionAgentId),d=r.name||r.threadId,f=$p(s),p=`chat`,{href:m,options:h}=Fe({face:p,sessionKey:u,fallbackAgentId:a.newSessionAgentId,basePath:a.basePath,mainKey:a.mainKey}),g={key:c,agentId:a.newSessionAgentId,routeId:p,navigation:h,canOpenTerminal:r.canOpenTerminal===!0,canDelete:r.canArchive&&e.capabilities.archive,name:r.name??r.threadId,displayName:r.name,meta:f},_=a.isMenuOpen(c),v=Km(l,u,c,_,a),y=r.sessionKey?i.get(r.sessionKey):void 0;if(y)return a.renderLiveRow(y,{catalogIdentityKey:l,catalogMenu:g,...v?{rowRef:v}:{},...r.pullRequest?{pullRequest:r.pullRequest}:{}});let b=Vi(r.color??``),S=u===a.routeSessionKey,C=r.status===`active`||r.status===`running`,w=r.canOpenTerminal===!0&&a.terminalAvailable,ee=()=>a.onOpenTerminal(c,a.newSessionAgentId),te=(e,t,n)=>a.onOpenMenu(g,e,t,n),ne=e=>ta(e,e instanceof KeyboardEvent?e.currentTarget.querySelector(`[data-catalog-session-menu]`):null,(e,t,n)=>te(t,n,e??void 0)),re=di(JSON.stringify([d,r.status,r.pullRequest]),Oa(d,`sidebar-recent-session__name`));return L`
    <div
      ${v?ui(v):I}
      class="sidebar-recent-session session-row-host sidebar-recent-session--single-line ${b?`sidebar-recent-session--colored`:``} ${S?`sidebar-recent-session--active`:``} ${o?`sidebar-recent-session--catalog-project-child`:``} ${C?`session-row-host--running`:``}"
      style=${b?`--session-color: var(--session-color-${b})`:I}
      data-session-key=${u}
      data-catalog-session-key=${l}
      data-session-row-action-count="1"
      role="listitem"
      @contextmenu=${ne}
      @keydown=${ne}
    >
      <a
        href=${m}
        class="sidebar-recent-session__link"
        aria-current=${S?`page`:I}
        @click=${e=>{x(e)&&(e.preventDefault(),a.catalogOpenTarget===`terminal`&&w?ee():a.onNavigate?.(p,h))}}
      >
        <span class="sidebar-session-indicator">
          ${C?Am({content:I,running:C,runVisibility:Um()}):I}
        </span>
        <span class="sidebar-recent-session__text">
          <span class="sidebar-recent-session__title-row"> ${re} </span>
          <span class="sidebar-recent-session__details">
            <span class="sidebar-recent-session__details-endcap">
              ${Rm({pullRequest:r.pullRequest})}
            </span>
          </span>
        </span>
      </a>
      <span class="sidebar-recent-session__aside session-row-aside">
        <span class="session-row-actions">
          <button
            class="session-action"
            data-catalog-session-menu="true"
            type="button"
            title=${N(`chat.sidebar.openSessionMenu`)}
            aria-label=${N(`chat.sidebar.openSessionMenu`)}
            aria-haspopup="menu"
            aria-expanded=${String(_)}
            @click=${e=>{e.stopPropagation();let t=e.currentTarget,n=t.getBoundingClientRect();te(n.right,n.bottom+4,t)}}
          >
            ${F.moreHorizontal}
          </button>
        </span>
      </span>
    </div>
  `}var Zm,Qm;function $m(){return($m=e((()=>{R(),ai(),$r(),vi(),bi(),k(),Nt(),ua(),Aa(),xt(),hl(),je(),om(),um(),P(),pr(),Om(),Nm(),zm(),Wm(),Zm=5,Qm=[`.sidebar-recent-session__link`,`[data-child-session-toggle]`,`[data-sidebar-session-pin]`,`[data-sidebar-session-archive]`,`[data-sidebar-session-menu]`,`[data-catalog-session-menu]`]})))()}function eh(e){let t=Bt(qi(jl(e).text)),n=$a(t);if(!t||Ut(t)||Rt(t)||n.shouldSkip||!n.text)return``;let r=n.text.replace(/```[\s\S]*?```/g,` `).split(/\n\s*\n/),i=``;for(let e=r.length-1;e>=0&&(i=Ji(r[e]??``),!i);--e);if(!i)return``;let a=i.match(/[^.!?…]+(?:[.!?…]+(?=\s|$)|$)/g)?.map(e=>e.trim()).findLast(e=>!!e)??i;return mt(a,rh)}function th(e){let t=[Bi,Ri];for(let n=Math.min(e.length,...t.map(e=>e.length-1));n>=1;--n){let r=e.slice(-n);if(t.some(e=>e.startsWith(r)))return r}return``}function nh(e,t){let n=`${e.delimiterTail}${t}`;e.delimiterTail=``;let r=e.internalDepth,i=0,a=``;for(;i<n.length;){let e=n.indexOf(Bi,i),t=n.indexOf(Ri,i);if(e===-1&&t===-1){r===0&&(a+=n.slice(i));break}let o=e!==-1&&(t===-1||e<t),s=o?e:t;o?(r===0&&(a+=n.slice(i,s)),r+=1):r!==0&&--r,i=s+(o?Bi:Ri).length}let o=th(n);return o&&(e.delimiterTail=o,r===0&&a.endsWith(o)&&(a=a.slice(0,-o.length))),e.internalDepth=r,a}var rh;function ih(){return(ih=e((()=>{ji(),Ii(),zt(),Ll(),ma(),Ae(),rh=120})))()}function ah(e,t,n){if(e!==`tool`&&e!==`item`)return;let r=rs(t),i=e===`item`?Bs(Fi,{...r}):void 0,a=Ks(Fi,i)?i:void 0;if(e===`item`&&(!a||a.kind!==`tool`))return;let o=typeof r?.toolCallId==`string`&&r.toolCallId||void 0,s=a?.itemId,c=s&&n?.itemId?s===n.itemId:void 0,l=o&&n?.toolCallId?o===n.toolCallId:void 0,u=(c===!0||l===!0)&&c!==!1&&l!==!1;if(r?.hideFromChannelProgress===!0||r?.suppressChannelProgress===!0)return u?null:void 0;let d=(typeof r?.name==`string`?r.name.trim():``)||(u?n?.name:void 0);if(!d)return;let f=a?eh(a.progressText?.trim()||``)||void 0:u?n?.text:void 0;return{name:d,itemId:s??(u?n?.itemId:void 0),toolCallId:o??(u?n?.toolCallId:void 0),text:f}}function oh(){return(oh=e((()=>{Us(),Pi(),ih()})))()}var sh=t({SidebarSessionNarrationController:()=>gh});function ch(){return{retryWindowMs:mh,retryAt:0,timer:null}}function lh(e){return e.startedAt??e.updatedAt??0}function uh(e,t){return typeof t!=`string`||!t.trim()||G(t)===G(e)}var dh,fh,ph,mh,hh,gh;function _h(){return(_h=e((()=>{Eo(),fo(),Us(),wi(),Fl(),A(),Ys(),ih(),oh(),dh=6,fh=2e3,ph=16384,mh=500,hh=3e4,gh=class{constructor(e,t=()=>void 0,n=()=>void 0){this.onLinesChanged=e,this.onObserverDigestsChanged=t,this.onToolsChanged=n,this.source=null,this.input=null,this.visibilityDocument=null,this.handleVisibilityChange=()=>{this.input&&this.sync(this.input)},this.connectionIdentity=null,this.connected=!1,this.disposed=!1,this.enabled=!1,this.agentId=`main`,this.desiredKeys=new Set,this.subscriptions=new Map,this.pendingReleases=new Map,this.pendingSubscriptions=new Map,this.streams=new Map,this.runIds=new Map,this.throttles=new Map,this.lines=new Map,this.observerDigests=new Map,this.tools=new Map}sync(e){if(this.disposed)return;this.input||(this.visibilityDocument=globalThis.document??null,this.visibilityDocument?.addEventListener(`visibilitychange`,this.handleVisibilityChange)),this.input=e;let t=this.connectionIdentity!==e.connectionIdentity,n=this.source!==e.source,r=!e.connected||!e.connectionIdentity||!e.source;if((t||n||r)&&this.resetSubscriptions(),this.source=e.source,this.connectionIdentity=e.connectionIdentity,this.connected=e.connected,this.enabled=e.enabled&&this.visibilityDocument?.visibilityState!==`hidden`,this.agentId=G(e.agentId),r||!this.enabled){this.desiredKeys=new Set,this.resetSubscriptions(),this.syncReleases(),this.clearAllLines();return}let i=e.openSessionKey.trim(),a=new Set,o=0;for(let t of e.rows.filter(e=>e.hasActiveRun).toSorted((e,t)=>Number(this.subscriptions.has(t.key)||this.pendingSubscriptions.has(t.key))-Number(this.subscriptions.has(e.key)||this.pendingSubscriptions.has(e.key))||lh(t)-lh(e))){let e=j(t.key,i);!e&&o>=dh||(a.add(t.key),e||(o+=1))}for(let e of this.desiredKeys)a.has(e)||this.releaseKey(e);this.desiredKeys=a;for(let e of a){let t=this.subscriptionAgentId(e),n=this.subscriptions.get(e)?.subscription.agentId??null,r=this.pendingSubscriptions.get(e)?.agentId??null;(this.subscriptions.has(e)&&n!==t||this.pendingSubscriptions.has(e)&&r!==t)&&this.releaseKey(e),!(this.subscriptions.has(e)||(this.pendingSubscriptions.get(e)?.retryAt??0)>Date.now())&&this.subscribeKey(e)}this.syncReleases()}handleEvent(e){if(this.enabled&&this.connected){if(e.event===`chat`){this.handleChatEvent(e.payload);return}if(e.event===`session.narration`){this.handleNarrationEvent(e.payload);return}if(e.event===`session.observer`){this.handleObserverEvent(e.payload);return}(e.event===`agent`||e.event===`session.tool`)&&this.handleAgentEvent(e.payload)}}disconnect(){this.visibilityDocument?.removeEventListener(`visibilitychange`,this.handleVisibilityChange),this.visibilityDocument=null,this.input=null,this.desiredKeys=new Set,this.resetSubscriptions(),this.clearAllLines(),this.connected=!1,this.syncReleases()}dispose(){this.disposed||(this.disposed=!0,this.disconnect())}async subscribeKey(e){let t=this.source,n=this.connectionIdentity;if(!t||!n||!this.connected||!this.enabled||!this.desiredKeys.has(e))return;let r=this.pendingSubscriptions.get(e)??{agentId:this.subscriptionAgentId(e),...ch()};this.cancelRetry(r),r.retryAt=1/0,this.pendingSubscriptions.set(e,r);try{let i={key:e,source:t,connectionIdentity:n,subscription:await t.subscribeMessages(e,{agentId:r.agentId??void 0,mode:`narration`})},a=this.pendingSubscriptions.get(e)===r;if(a&&this.pendingSubscriptions.delete(e),!a||t!==this.source||!this.connected||!this.enabled||!this.desiredKeys.has(e)){this.releaseSubscription(i);return}this.subscriptions.set(e,i),this.syncReleases()}catch(t){this.pendingSubscriptions.get(e)===r&&this.scheduleRetry(r,t)}}scheduleRetry(e,t){if(e.retryAt=1/0,!(t instanceof Do)&&(!(t instanceof lo)||!t.retryable))return;let n=t instanceof lo?t.retryAfterMs:void 0,r=Qo((typeof n==`number`&&Number.isFinite(n)?Math.max(0,n):0)+Math.random()*e.retryWindowMs);e.retryWindowMs=Math.min(e.retryWindowMs*2,hh),e.retryAt=Date.now()+r,e.timer=globalThis.setTimeout(()=>{e.timer=null,e.retryAt=0,this.input?this.sync(this.input):this.syncReleases()},r)}cancelRetry(e){e.timer!==null&&(globalThis.clearTimeout(e.timer),e.timer=null)}subscriptionAgentId(e){return p(e)?this.agentId:null}releaseKey(e){let t=this.pendingSubscriptions.get(e);t&&this.cancelRetry(t),this.pendingSubscriptions.delete(e);let n=this.subscriptions.get(e);this.subscriptions.delete(e),n&&this.releaseSubscription(n),this.clearLine(e)}releaseSubscription(e){let t=this.pendingReleases.get(e)??ch();e.release||t.retryAt>Date.now()||(this.cancelRetry(t),t.retryAt=1/0,this.pendingReleases.set(e,t),e.release=e.source.unsubscribeMessages(e.subscription).then(()=>{this.pendingReleases.delete(e)}).catch(n=>{this.pendingReleases.get(e)===t&&!this.releaseIsDesired(e)&&this.scheduleRetry(t,n)}).finally(()=>{e.release=void 0,this.syncReleases()}))}releaseIsDesired(e){return e.source===this.source&&this.desiredKeys.has(e.key)&&(e.subscription.agentId??null)===this.subscriptionAgentId(e.key)}syncReleases(){for(let[e,t]of this.pendingReleases){if(!this.disposed&&(!this.connected||e.connectionIdentity!==this.connectionIdentity)){this.cancelRetry(t),t.retryAt=0,(this.input||e.connectionIdentity!==this.connectionIdentity)&&this.pendingReleases.delete(e);continue}this.releaseIsDesired(e)&&(this.cancelRetry(t),t.retryAt=0,!this.subscriptions.has(e.key))||this.releaseSubscription(e)}}resetSubscriptions(){let e=new Set([...this.subscriptions.keys(),...this.pendingSubscriptions.keys()]);for(let t of e)this.releaseKey(t)}matchingDesiredKey(e,t){if(typeof e!=`string`||!e.trim())return null;for(let n of this.desiredKeys)if(j(n,e)&&(!p(n)||uh(this.agentId,t)))return n;return null}handleChatEvent(e){if(!e||typeof e!=`object`)return;let t=e,n=this.matchingDesiredKey(t.sessionKey,t.agentId);if(!n||(this.observeRun(n,t.runId),this.observerDigests.has(n)))return;let r=t.state===`final`||t.state===`aborted`||t.state===`error`,i=t.message;if(i&&typeof i.role==`string`&&i.role!==`assistant`)return;let a=typeof t.deltaText==`string`?t.deltaText:``,o=i?Il(Rl(i)??``):null,s=this.streams.get(n)?.consumedLength??0,c=t.replace===!0;if(c||o!==null){let e=o??a,t=!c&&a!==``&&s>0&&e.length-a.length===s;this.publishText(n,{streamLength:e.length,fragment:t?a:e,reset:!t,immediate:r});return}if(a){s>0&&this.publishText(n,{streamLength:s+a.length,fragment:a,reset:!1,immediate:r});return}if(r){let e=this.throttles.get(n)?.pending;e!=null&&this.publishImmediate(n,e)}}handleNarrationEvent(e){if(!Ks(xi,e))return;let t=this.matchingDesiredKey(e.sessionKey,e.agentId);t&&(this.observeRun(t,e.runId),!this.observerDigests.has(t)&&(this.streams.delete(t),this.publishImmediate(t,e.text)))}publishText(e,t){if(t.streamLength<=0){t.reset&&this.clearNarration(e);return}let n=this.streams.get(e)??{consumedLength:0,internalDepth:0,delimiterTail:``,visibleText:``};if(n.consumedLength=t.streamLength,this.streams.set(e,n),t.reset){n.internalDepth=0,n.delimiterTail=``,n.visibleText=``;let t=this.throttles.get(e);t&&(t.pending=null)}let r=nh(n,t.fragment),i=`${n.visibleText}${r}`;if(!i){t.reset&&this.lines.delete(e)&&this.onLinesChanged(new Map(this.lines));return}n.visibleText=i.length>ph?ds(i,-16384):i,t.immediate?this.publishImmediate(e,n.visibleText):this.publishThrottled(e,n.visibleText)}handleAgentEvent(e){if(!e||typeof e!=`object`)return;let t=e,n=this.matchingDesiredKey(t.sessionKey,t.agentId);if(!n)return;if(t.stream===`lifecycle`){this.observeRun(n,t.runId);return}let r=typeof t.runId==`string`?t.runId.trim():``,i=r!==``&&this.runIds.get(n)===r,a=ah(t.stream,t.data,!r||i?this.tools.get(n):void 0);if(a===null){i&&this.tools.delete(n)&&this.onToolsChanged(new Map(this.tools));return}if(!a)return;this.observeRun(n,r);let o=this.tools.get(n);(o?.name!==a.name||o.itemId!==a.itemId||o.toolCallId!==a.toolCallId||o.text!==a.text)&&(this.tools.set(n,a),this.onToolsChanged(new Map(this.tools)))}handleObserverEvent(e){if(!e||typeof e!=`object`)return;let t=e,n=this.matchingDesiredKey(t.sessionKey,t.agentId),r=typeof t.runId==`string`?t.runId.trim():``;if(!n||!r)return;let i={...t,runId:r};if(!Ks(Mi,i))return;this.observeRun(n,r);let a=this.observerDigests.get(n);a&&Ac(a,i)===a||(this.clearNarration(n),this.observerDigests.set(n,i),this.onObserverDigestsChanged(new Map(this.observerDigests)))}observeRun(e,t){let n=typeof t==`string`?t.trim():``;if(!n)return;let r=this.runIds.get(e);r&&r!==n&&this.clearLine(e),this.runIds.set(e,n)}publishThrottled(e,t){let n=Date.now(),r=this.throttles.get(e);if(!r||n-r.lastPublishedAt>=fh){this.publishImmediate(e,t);return}r.pending=t,!r.timer&&(r.timer=globalThis.setTimeout(()=>{r.timer=null;let t=r.pending;r.pending=null,t!==null&&this.desiredKeys.has(e)&&(r.lastPublishedAt=Date.now(),this.publishActivity(e,t))},fh-(n-r.lastPublishedAt)))}publishImmediate(e,t){let n=this.throttles.get(e)?.timer;n&&globalThis.clearTimeout(n),this.throttles.set(e,{lastPublishedAt:Date.now(),pending:null,timer:null}),this.publishActivity(e,t)}publishActivity(e,t){let n=eh(t);(n?this.lines.get(e)!==n:this.lines.delete(e))&&(n&&this.lines.set(e,n),this.onLinesChanged(new Map(this.lines)))}clearLine(e){this.clearNarration(e),this.runIds.delete(e),this.tools.delete(e)&&this.onToolsChanged(new Map(this.tools)),this.observerDigests.delete(e)&&this.onObserverDigestsChanged(new Map(this.observerDigests))}clearNarration(e){this.streams.delete(e);let t=this.throttles.get(e);t?.timer&&globalThis.clearTimeout(t.timer),this.throttles.delete(e),this.lines.delete(e)&&this.onLinesChanged(new Map(this.lines))}clearAllLines(){for(let e of this.throttles.values())e.timer&&globalThis.clearTimeout(e.timer);this.streams.clear(),this.runIds.clear(),this.throttles.clear(),this.tools.size>0&&(this.tools.clear(),this.onToolsChanged(new Map)),this.lines.size>0&&(this.lines.clear(),this.onLinesChanged(new Map)),this.observerDigests.size>0&&(this.observerDigests.clear(),this.onObserverDigestsChanged(new Map))}}})))()}var vh;function yh(){return(yh=e((()=>{an(),Kp(),vh=class{constructor(e,t){this.host=e,this.options=t,this.generation=0,this.handleDocumentKeydown=e=>{if(!(e.defaultPrevented||vn(e,this.host.ownerDocument))&&(this.options.onKeydown?.(e),!e.defaultPrevented)){if(e.key!==`Escape`){e.key===`Tab`&&e.composedPath().some(e=>e instanceof Element&&e.localName===`wa-dropdown-item`&&this.host.contains(e))&&Pp(e,()=>this.options.getTrigger()?.focus());return}e.preventDefault(),e.stopPropagation(),this.options.getTrigger()?.focus(),this.options.onClose()}},e.addController(this)}hostConnected(){document.addEventListener(`keydown`,this.handleDocumentKeydown,!0);let e=++this.generation;this.focusFirstItem(e)}hostDisconnected(){this.generation+=1,document.removeEventListener(`keydown`,this.handleDocumentKeydown,!0)}async focusFirstItem(e){await this.host.updateComplete,await this.host.querySelector(`wa-dropdown`)?.updateComplete,this.host.isConnected&&e===this.generation&&this.host.querySelector(`wa-dropdown-item:not([disabled])`)?.focus()}}})))()}function bh(e){if(e.key!==`Tab`)return!1;let t=e.composedPath().find(e=>e instanceof HTMLElement),n=e.composedPath().find(e=>e instanceof HTMLElement&&e.localName===`wa-dropdown-item`),r=(t?.closest(`.people-menu__search`)?.parentElement??n?.parentElement)?.querySelector(`:scope > .people-menu__search input`);if(!r||!t)return!1;let i=[];for(let e=r.parentElement?.nextElementSibling;e?.localName===`wa-dropdown-item`;e=e.nextElementSibling)e instanceof HTMLElement&&!e.hasAttribute(`disabled`)&&i.push(e);return t!==r&&(!n||!i.includes(n))?!1:(e.preventDefault(),e.stopPropagation(),(t===r?i[0]??r:r).focus(),!0)}var xh,Sh;function Ch(){return(Ch=e((()=>{R(),_i(),li(),k(),ca(),da(),xh=class extends Qr{constructor(...e){super(...e),this.rows=[],this.query=``,this.onInput=e=>{this.query=e.currentTarget.value,this.setValue(this.content())},this.onKeydown=e=>{if(bh(e)||e.key===`Escape`||(e.stopPropagation(),e.isComposing||e.keyCode===229||![`ArrowDown`,`Enter`].includes(e.key)))return;e.preventDefault();let t=e.currentTarget.parentElement?.nextElementSibling;for(;t?.localName===`wa-dropdown-item`;){if(t instanceof HTMLElement&&!t.hasAttribute(`disabled`)){t.focus();return}t=t.nextElementSibling}}}render(e,t,n){return t!==this.scope&&(this.query=``),this.rows=e,this.scope=t,this.slot=n,this.content()}content(){let e=this.query.trim().toLocaleLowerCase().split(/\s+/u),t=this.rows.filter(t=>{let n=t.text.toLocaleLowerCase();return e.every(e=>n.includes(e))});return L`
      <div
        slot=${this.slot??I}
        class="people-menu__search"
        @click=${e=>e.stopPropagation()}
      >
        <input
          type="search"
          autocomplete="off"
          aria-label=${N(`sessionsView.searchPeople`)}
          placeholder=${N(`sessionsView.searchPeople`)}
          .value=${mi(this.query)}
          @input=${this.onInput}
          @keydown=${this.onKeydown}
        />
      </div>
      ${t.map(e=>e.render())}
      ${t.length===0?L`<div slot=${this.slot??I} class="people-menu__status" role="status">
              ${N(`sessionsView.noPeopleMatch`)}
            </div>`:I}
    `}},Sh=ti(xh)})))()}function wh(e,t){let n=e.length===1?e.toUpperCase():e;return L`<span slot="details" class="session-menu__shortcut" aria-hidden="true"
    >${Sr(n,{inline:!0})}${t?L` / ${jr(t,{inline:!0})}`:``}</span
  >`}function Th(e,t){if(bh(t))return!0;if(t.metaKey||t.ctrlKey||t.altKey||t.composedPath().some(e=>e instanceof Element&&e.matches(`input, textarea, select, [contenteditable=true]`)))return!1;let n=Oo(t);if(!n)return!1;let r=e.querySelector(`[data-shortcut="${n}"]`);if(!r||r.disabled||r.getAttribute(`aria-disabled`)===`true`)return!1;let i=r.closest(`wa-dropdown-item:not([slot="submenu"])`);return r.getAttribute(`slot`)===`submenu`&&i?.submenuOpen!==!0?!1:(t.preventDefault(),t.stopPropagation(),r.click(),!0)}function Eh(){return(Eh=e((()=>{R(),Aa(),Lr(),Ch()})))()}function Dh(e){if(Ge(e),e.setAttribute(`popover`,`manual`),typeof e.showPopover==`function`)try{e.showPopover();return}catch{}e.removeAttribute(`popover`)}var Oh;function kh(){return(kh=e((()=>{it(),Oh=class extends HTMLElement{connectedCallback(){Dh(this)}},customElements.get(`openclaw-menu-surface`)||customElements.define(`openclaw-menu-surface`,Oh)})))()}function Ah(e){return Ai.some(t=>t===e)}function jh(e){return e.startsWith(`data:image/svg+xml,`)?L`<img src=${e} alt="" aria-hidden="true" />`:Ah(e)?Mh[e]:null}var Mh;function Nh(){return(Nh=e((()=>{R(),bi(),P(),Mh={braces:F.braces,book:F.book,monitor:F.monitor,bot:F.bot,kanban:F.kanban,coins:F.coins}})))()}function Ph(e){return e.archiveShortcut&&e.selectionCount===1&&!e.session.archived?xe.archiveSession:void 0}function Fh(e){return L`
    ${Va.map(t=>L`
        <wa-dropdown-item
          slot=${e.inline?I:`submenu`}
          class="session-menu__item"
          value=${`open-in:${t}`}
          ?disabled=${e.disabled}
        >
          <span class="session-menu__text">${_a[t]}</span>
        </wa-dropdown-item>
      `)}
  `}function Ih(e){let t=1,n=()=>t<=9?String(t++):null,r=(t,r,i,a=!0)=>{let o=n(),s=i===`new-group`?`new-group`:`move-to-group`;return L`
      <wa-dropdown-item
        slot=${e.inline?I:`submenu`}
        class="session-menu__item"
        value=${i}
        role=${a?`menuitemradio`:`menuitem`}
        aria-checked=${a?String(r):I}
        ${a?ui(e=>Ip(e,r)):I}
        data-shortcut=${o??I}
        aria-keyshortcuts=${o??I}
        ?disabled=${e.actionDisabled(s)}
        title=${e.actionTitle(s)}
      >
        <span class="session-menu__text">${t}</span>
        ${a&&r?L`<span slot="details" class="session-menu__check" aria-hidden="true"
                >${F.check}</span
              >`:I}
        ${o?wh(o):I}
      </wa-dropdown-item>
    `};return L`
    ${e.groups.map(t=>r(t,e.category===t,`move-to-group:${encodeURIComponent(t)}`))}
    ${e.category?r(N(e.categoryClearReturnsToGroups?`sessionsView.moveBackToGroups`:`sessionsView.removeFromGroup`),!1,`move-to-group:`,!1):I}
    ${r(N(`sessionsView.newGroup`),!1,`new-group`,!1)}
  `}function Lh(e){let t=Vi(e.color??``);return L`<div
    class="session-menu__colors"
    role="group"
    aria-label=${N(`sessionsView.setColorMenu`)}
  >
    ${(e.allowDefault===!1?Si:[null,...Si]).map(n=>{let r=N(n?`sessionsView.colors.${n}`:`sessionsView.noColor`),i=t===n&&(n!==null||!e.color);return L`<button
          type="button"
          class="session-menu__color-choice"
          aria-label=${r}
          aria-pressed=${String(i)}
          ?disabled=${e.disabled}
          title=${e.disabledReason??r}
          @click=${t=>e.onSelect(t,n)}
        >
          <span
            class=${`session-menu__color-swatch${n===null?` session-menu__color-swatch--none`:``}`}
            style=${n?`background: var(--session-color-${n})`:I}
            aria-hidden="true"
            >${n===null?F.circleX:i?F.check:I}</span
          >
        </button>`})}
  </div>`}function Rh(){return(Rh=e((()=>{R(),$r(),bi(),k(),va(),fe(),P(),Eh(),Kp()})))()}function zh(){let e=globalThis.navigator?.platform??``;return/Mac|iPhone|iPad|iPod/u.test(e)?[`⌃`,`⌘`,`Space`]:/Win/u.test(e)?[`Win`,`+`,`.`]:null}function Bh(e){let t=ki(e.customIconValue),n=t&&(e.allowSvg||!t.startsWith(`data:image/svg+xml,`)),r=zh();return L`
    <div
      class="session-menu__icon-custom-entry"
      aria-hidden=${e.mode===`custom`?I:`true`}
      ?inert=${e.mode!==`custom`}
    >
      <div class="session-menu__icon-custom-header">
        <button
          type="button"
          class="session-menu__icon-back"
          aria-label=${N(`common.back`)}
          @click=${e.onBack}
        >
          ${F.arrowLeft}
        </button>
        <span
          >${N(e.allowSvg?`sessionsView.customIconTitle`:`sessionsView.customEmojiTitle`)}</span
        >
      </div>
      <div class="session-menu__icon-custom-controls">
        <textarea
          class="session-menu__icon-custom-input"
          rows="1"
          autocomplete="off"
          aria-label=${N(e.allowSvg?`sessionsView.customIconTitle`:`sessionsView.customEmojiTitle`)}
          .value=${e.customIconValue}
          @input=${e.onInput}
          @keydown=${t=>{t.key!==`Enter`||t.isComposing||t.keyCode===229||(t.preventDefault(),t.stopPropagation(),n&&!e.disabled&&e.onApply(t))}}
        ></textarea>
        <button
          type="button"
          class="session-menu__icon-set"
          ?disabled=${!n||e.disabled}
          @click=${e.onApply}
        >
          ${N(`sessionsView.customEmojiSet`)}
        </button>
      </div>
      <div class="session-menu__icon-custom-hint">
        ${r?Wn(N(e.allowSvg?`sessionsView.customIconHint`:`sessionsView.customEmojiHint`,{shortcut:`{shortcut}`}),Sr(r,{inline:!0})):N(e.allowSvg?`sessionsView.customIconHintNoShortcut`:`sessionsView.customEmojiHintNoShortcut`)}
      </div>
    </div>
  `}function Vh(e){let t=e.clearable!==!1&&e.currentIcon===null?null:[...Wh,...Ai].find(t=>t===e.currentIcon)??Wh[0],n=(n,r=!1)=>L`
    <button
      type="button"
      class=${`session-menu__icon-choice${r?` session-menu__icon-choice--glyph`:``}`}
      aria-label=${r?n??N(`sessionsView.noIcon`):I}
      aria-pressed=${String(e.currentIcon===n)}
      tabindex=${n===t?`0`:`-1`}
      ?disabled=${e.disabled}
      title=${e.disabledReason??(n===null?N(`sessionsView.noIcon`):I)}
      @click=${t=>e.onSelect(t,n)}
    >
      ${n===null?F.circleX:r?jh(n):n}
    </button>
  `;return L`
    <div class="session-menu__icon-picker session-menu__icon-panel" data-mode=${e.mode}>
      <div
        class="session-menu__icon-options"
        aria-hidden=${e.mode===`grid`?I:`true`}
        ?inert=${e.mode!==`grid`}
        role="group"
        aria-label=${N(`sessionsView.setIconMenu`)}
        @keydown=${Uh}
      >
        <div class="session-menu__icon-section-label">${N(`sessionsView.iconEmojiSection`)}</div>
        <div class="session-menu__icon-grid">
          ${Wh.map(e=>n(e))}
          <button
            type="button"
            class="session-menu__icon-choice session-menu__icon-choice--custom"
            aria-label=${N(e.allowSvg?`sessionsView.customIconCell`:`sessionsView.customEmojiCell`)}
            aria-pressed="false"
            tabindex="-1"
            ?disabled=${e.disabled}
            title=${e.disabledReason??I}
            @click=${e.onShowCustom}
          >
            ${F.moreHorizontal}
          </button>
        </div>
        <div class="session-menu__icon-section-label">${N(`sessionsView.iconGlyphSection`)}</div>
        <div class="session-menu__icon-grid">
          ${e.clearable===!1?I:n(null,!0)}
          ${Ai.map(e=>n(e,!0))}
        </div>
      </div>
      ${Bh(e)}
    </div>
  `}function Hh(e){return L`<div slot=${e.inline?I:`submenu`} class="session-menu__appearance">
    <div class="session-menu__icon-section-label">${N(`sessionsView.setColorMenu`)}</div>
    ${Lh({color:e.currentColor,allowDefault:e.clearable!==!1,disabled:e.colorDisabled,disabledReason:e.colorDisabledReason,onSelect:e.onSelectColor})}
    ${Vh(e)}
    ${e.clearable===!1?I:L`<div class="session-menu__separator" role="separator"></div>
            <button
              type="button"
              class="session-menu__icon-remove"
              ?disabled=${e.disabled||e.colorDisabled}
              title=${e.disabledReason??e.colorDisabledReason??I}
              @click=${e.onReset}
            >
              ${N(`sessionsView.resetAppearance`)}
            </button>`}
  </div>`}function Uh(e){let t=e.target;if(!(t instanceof HTMLButtonElement))return;let n={ArrowLeft:-1,ArrowRight:1,ArrowUp:-1,ArrowDown:1}[e.key];if(n===void 0)return;let r=e.currentTarget;if(!(r instanceof HTMLElement))return;let i=Array.from(r.querySelectorAll(`.session-menu__icon-choice:not(:disabled)`)),a=i.indexOf(t);if(a<0)return;e.preventDefault(),e.stopPropagation();let o=i[(a+n+i.length)%i.length];if(e.key===`ArrowUp`||e.key===`ArrowDown`){let e=[];for(let t of i){let n=t.getBoundingClientRect(),r=e.find(e=>Math.abs(e.top-n.top)<1),i={button:t,x:n.left+n.width/2};r?r.choices.push(i):e.push({top:n.top,choices:[i]})}e.sort((e,t)=>e.top-t.top);let r=e[(e.findIndex(e=>e.choices.some(e=>e.button===t))+n+e.length)%e.length];if(!r)return;let a=t.getBoundingClientRect(),s=a.left+a.width/2;o=r.choices.reduce((e,t)=>Math.abs(t.x-s)<Math.abs(e.x-s)?t:e).button}t.tabIndex=-1,o&&(o.tabIndex=0,o.focus())}var Wh;function Gh(){return(Gh=e((()=>{R(),bi(),k(),P(),Lr(),Nh(),Rh(),Wh=[`🦞`,`🚀`,`🐛`,`✅`,`🔥`,`📦`,`🧪`,`📝`,`🔍`,`⚡`,`🎯`]})))()}function Kh(e){return Yh[e]??null}function qh(e){return L`
    <wa-dropdown-item
      class=${`session-menu__item${e.details?` session-menu__item--compact-details`:``}`}
      value=${e.value}
      aria-label=${e.accessibleLabel??I}
      ?disabled=${e.disabled??!1}
      title=${e.title??I}
    >
      <span slot="icon" class="session-menu__icon" aria-hidden="true">${e.icon}</span>
      <span class="session-menu__text">${e.label}</span>
      ${e.details?L`<span class="session-menu__compact-details" aria-hidden="true"
              >${e.details}</span
            >`:I}
      <span slot="details" class="session-menu__icon session-menu__chevron" aria-hidden="true"
        >${F.chevronRight}</span
      >
    </wa-dropdown-item>
  `}function Jh(e){return L`
    <wa-dropdown-item class="session-menu__item session-menu__back" value="compact:back">
      <span slot="icon" class="session-menu__icon" aria-hidden="true">${F.arrowLeft}</span>
      <span class="session-menu__text">${N(`common.back`)}</span>
    </wa-dropdown-item>
    <div class="session-menu__separator" role="separator"></div>
    ${e}
  `}var Yh;function Xh(){return(Xh=e((()=>{R(),k(),P(),Yh={"compact:back":`root`,"compact:open-copy":`copy`,"compact:open-snooze":`snooze`,"compact:open-assign-owner":`assign-owner`,"compact:open-group":`group`,"compact:open-icon":`icon`,"compact:open-open-in":`open-in`}})))()}var Zh;function Qh(){return(Qh=e((()=>{R(),k(),Ae(),ic(),P(),Zh=class{constructor(e){this.host=e}handleSelect(e){if(e===`wake`)return this.host.runAction({kind:`wake`}),!0;if(!e.startsWith(`snooze:`))return!1;let t=Number(e.slice(7));return Number.isFinite(t)&&t>Date.now()&&this.host.runAction({kind:`snooze`,snoozedUntil:t}),!0}renderAction(){if(!this.host.eligible())return I;let e=this.host.readWakeTime();return cc({snoozedUntil:e??void 0},Date.now())?this.host.renderItem(`wake`,`${N(`sessionsView.wakeSession`)} · ${xc(e)}`,F.clock):this.host.renderSubmenu(`snooze`,N(`sessionsView.snooze`),F.clock,this.host.disabled(`snooze`),this.host.disabledReason(`snooze`))}renderSubmenu(e=!1){let t=new Date,n={hour:`sessionsView.snoozeHour`,"three-hours":`sessionsView.snoozeThreeHours`,evening:`sessionsView.snoozeEvening`,tomorrow:`sessionsView.snoozeTomorrow`,"next-week":`sessionsView.snoozeNextWeek`};return L`${Cc(t).map(({id:r,snoozedUntil:i})=>{let a=r===`next-week`?xc(i,t):Ee(i);return L`
        <wa-dropdown-item
          slot=${e?I:`submenu`}
          class="session-menu__item"
          value=${`snooze:${i}`}
          ?disabled=${this.host.disabled(`snooze`)}
          title=${this.host.disabledReason(`snooze`)??I}
          ><span class="session-menu__text">${N(n[r])} · ${a}</span></wa-dropdown-item
        >
      `})}`}}})))()}function $h(e,t){return{basePath:e.basePath,navigate:(n,r)=>{t?.(),e.navigate(`activity`,kr(n,e.basePath,r))}}}function eg(e,t,n){let r=e?.trim();return!r||!t?null:{href:kr(r,t.basePath,n).href,open:e=>{x(e)&&(e.preventDefault(),t.navigate(r,n))}}}function tg(e,t,n){return t?L`<a class="${n} person-activity-link" href=${t.href} @click=${t.open}
        >${e}</a
      >`:L`<span class=${n}>${e}</span>`}function ng(e,t){return t?L`<a
        class="person-activity-avatar-link"
        href=${t.href}
        tabindex="-1"
        aria-hidden="true"
        @click=${t.open}
        >${e}</a
      >`:e}function rg(e,t){return t?L`<a class="person-activity-avatar-link" href=${t.href} @click=${t.open}
        >${e}</a
      >`:e}function ig(){return(ig=e((()=>{R(),cr()})))()}function ag(e){let t=L`<span
    class=${e.imageUrl?`viewer-avatar__fallback`:I}
    style=${`background: hsl(${e.fallback.colorSeed%360} 48% 42%)`}
    ><span class="viewer-avatar__initials">${e.fallback.initials}</span></span
  >`;return L`${Cp({view:e,fallbackSelector:`.viewer-avatar`})}${t}`}function og(e,t,n){let r=ra({identity:t,id:e.id,name:e.name,profileAvatarUrl:e.avatarUrl});return L`<span
    class="viewer-avatar viewer-avatar--session"
    aria-label=${Jc(e)}
    data-viewer-id=${n?e.id:I}
    >${Tp({id:t.id,avatar:r.kind===`profile`?r.url:null})}</span
  >`}var sg,cg,lg;function ug(){return(ug=e((()=>{Zo(),R(),B(),Jt(),k(),aa(),yl(),O(),E(),Np(),ig(),an(),sg=Object.freeze([]),cg=class extends o{constructor(){super(),this.context=new co(this,{context:vr,subscribe:!0}),this.user=null,this.variant=`session`,this.markAsViewer=!0,new C(this).watch(()=>!this.user?.avatarUrl?.trim()&&(this.identity??this.user?.identity)?.type===`profile`?this.context.value?.gateway:void 0,(e,t)=>{let n=this.selfAvatarUrl;return e.subscribe(()=>{let e=this.selfAvatarUrl;e!==n&&(n=e,t())})})}get selfAvatarUrl(){let e=this.identity??this.user?.identity,t=this.context.value?.gateway.snapshot.selfUser;return e?.type===`profile`&&t?.identity?.type===`profile`&&e.id===t.identity.id?t.avatarUrl:void 0}render(){let e=this.user;if(!e)return I;let t=this.variant===`profile`?e.name??e.email??e.id:Jc(e),n=bp({identity:this.identity??e.identity,id:e.id,name:e.name,username:e.email,profileAvatarUrl:e.avatarUrl?.trim()||this.selfAvatarUrl});return L`<span
      class=${Op(`viewer-avatar viewer-avatar--${this.variant}`,n)}
      data-viewer-id=${this.markAsViewer?e.id:I}
      aria-label=${t}
    >
      ${ag(n)}
    </span>`}},U([V({attribute:!1})],cg.prototype,`user`,void 0),U([V()],cg.prototype,`variant`,void 0),U([V({attribute:!1})],cg.prototype,`identity`,void 0),U([V({type:Boolean,attribute:!1})],cg.prototype,`markAsViewer`,void 0),lg=class extends o{constructor(...e){super(...e),this.excludeIdentities=sg,this.maxVisible=3}render(){let e=this.staticParticipants?this.staticParticipants.map(({identity:e,label:t,avatarUrl:n})=>({identity:e,id:e.id,name:t,avatarUrl:n,watchedSessions:[]})):this.staticUsers??Zc(this.presencePayload,this.selfUser,this.selfInstanceId,this.sessionKey,this.excludeIdentities);if(e.length===0)return I;let t=e.slice(0,this.maxVisible),n=e.slice(this.maxVisible),r=Math.max(e.length,this.totalCount??0)-t.length,i=n.length===r?n.map(Jc).join(`
`):N(`sessionHovercard.moreParticipantsLabel`,{count:String(r)});return L`<span
      class="viewer-facepile viewer-facepile--session"
      data-viewer-count=${Math.max(e.length,this.totalCount??0)}
      aria-label=${e.map(Jc).join(`, `)}
    >
      ${t.map(e=>L`<openclaw-tooltip .content=${Jc(e)}>
          <span class="viewer-facepile__tooltip-anchor">
            ${rg(e.identity?.type===`agent`?og(e,e.identity,!this.staticParticipants):L`<openclaw-viewer-avatar
                    .user=${e}
                    .identity=${e.identity}
                    .markAsViewer=${!this.staticParticipants}
                    variant="session"
                  ></openclaw-viewer-avatar>`,e.identity?.type===`profile`?eg(e.identity.id,this.personActivity,Jc(e)):null)}
          </span>
        </openclaw-tooltip>`)}
      ${r>0?L`<openclaw-tooltip .content=${i}>
              <span class="viewer-avatar viewer-avatar--overflow" aria-label=${i}
                >+${r}</span
              >
            </openclaw-tooltip>`:I}
    </span>`}},U([V({attribute:!1})],lg.prototype,`presencePayload`,void 0),U([V({attribute:!1})],lg.prototype,`selfUser`,void 0),U([V({attribute:!1})],lg.prototype,`selfInstanceId`,void 0),U([V({attribute:!1})],lg.prototype,`sessionKey`,void 0),U([V({attribute:!1})],lg.prototype,`excludeIdentities`,void 0),U([V({attribute:!1})],lg.prototype,`staticParticipants`,void 0),U([V({attribute:!1})],lg.prototype,`staticUsers`,void 0),U([V({type:Number,attribute:`max-visible`})],lg.prototype,`maxVisible`,void 0),U([V({type:Number,attribute:!1})],lg.prototype,`totalCount`,void 0),U([V({attribute:!1})],lg.prototype,`personActivity`,void 0),globalThis.customElements&&(customElements.get(`openclaw-viewer-avatar`)||customElements.define(`openclaw-viewer-avatar`,cg),customElements.get(`openclaw-viewer-facepile`)||customElements.define(`openclaw-viewer-facepile`,lg))})))()}function dg(e){return e?{type:`human`,id:e.id,identity:{type:`profile`,id:e.id},label:e.name,avatarUrl:e.avatarUrl}:null}function fg(e,t,n=`created`,r,i,a){return e?.id?L`<openclaw-session-owner-chip
        .owner=${e}
        size=${t}
        attribution=${n}
        .viewingNow=${r}
        .participants=${i??[]}
        .participantCount=${a??i?.length??0}
      ></openclaw-session-owner-chip>`:I}function pg(e){let t=e.label?.trim()||e.id?.trim()||``;if(!t)return``;let n=t.replace(/@.*$/u,``).split(/[\s._-]+/u).filter(Boolean),r=e=>e?Re(e,1):``;return(r(n[0])+r(n[1])).toUpperCase()||r(t).toUpperCase()}function mg(e){let t=0;for(let n=0;n<e.length;n+=1)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%360}function hg(e){if(e.identity?.type===`agent`){let t=ra({id:e.id,identity:e.identity,name:e.label,profileAvatarUrl:e.avatarUrl});return L`<span
      class="viewer-avatar viewer-avatar--session"
      aria-label=${e.label||e.id}
    >
      ${Tp({id:e.identity.id,avatar:t.kind===`profile`?t.url:null})}
    </span>`}return L`<openclaw-viewer-avatar
    .identity=${e.identity}
    .user=${{id:e.id,name:e.label,avatarUrl:e.avatarUrl,watchedSessions:[]}}
    .markAsViewer=${!1}
    variant="session"
    aria-hidden="true"
  ></openclaw-viewer-avatar>`}var gg;function _g(){return(_g=e((()=>{R(),B(),k(),He(),aa(),O(),Np(),ug(),gg=class extends pt{constructor(...e){super(...e),this.owner=null,this.size=`row`,this.attribution=`created`,this.participants=[],this.participantCount=0}render(){let e=this.owner;if(!e?.id)return I;let t=pg(e);if(!t)return I;let n=e.label||e.id,r=this.attribution===`archived`?`sessionsView.archivedBy`:this.attribution===`owned`?`sessionsView.ownedBy`:`sessionsView.createdBy`,i=N(r,{name:n}),a=this.viewingNow?`${i} · ${N(`sessionsView.viewingNow`)}`:i,o=ra({id:e.id,identity:e.identity,name:e.label,profileAvatarUrl:e.avatarUrl}),s=this.size===`row`&&this.participantCount>0,c=L`
      <span
        class="session-owner-chip session-owner-chip--${this.size} ${this.viewingNow===!1?`session-owner-chip--away`:``} ${s?`session-owner-stack__front`:``}"
        style="--owner-hue: ${mg(e.id)}"
        role="img"
        aria-label=${a}
        title=${a}
        >${e.identity?.type===`agent`||o.kind===`profile`?hg({...e,id:e.id}):L`<span class="session-owner-chip__initials">${t}</span>`}</span
      >
    `;if(!s)return c;let l=this.participants[0],u=l?.label||l?.identity.id,d=this.participantCount===1&&u?`${a} · ${N(`sessionsView.withParticipant`,{name:u})}`:`${a} · ${N(`sessionsView.withMoreParticipants`,{count:String(this.participantCount)})}`;return L`<span
      class="session-owner-stack ${this.participantCount>1?`session-owner-stack--overflow`:``}"
      role="group"
      aria-label=${d}
    >
      <span class="session-owner-stack__back" aria-hidden="true">
        ${this.participantCount===1&&l?hg({...l,id:l.identity.id}):L`<span class="session-owner-stack__overflow"
                ><span class="session-owner-stack__count">+${this.participantCount}</span></span
              >`}
      </span>
      ${c}
    </span>`}},U([V({attribute:!1})],gg.prototype,`owner`,void 0),U([V({type:String})],gg.prototype,`size`,void 0),U([V({type:String})],gg.prototype,`attribution`,void 0),U([V({attribute:!1})],gg.prototype,`viewingNow`,void 0),U([V({attribute:!1})],gg.prototype,`participants`,void 0),U([V({type:Number})],gg.prototype,`participantCount`,void 0),customElements.get(`openclaw-session-owner-chip`)||customElements.define(`openclaw-session-owner-chip`,gg)})))()}var vg;function yg(){return(yg=e((()=>{Zo(),Os(),R(),$r(),so(),Jt(),k(),_t(),At(),Nt(),_c(),P(),Ch(),_g(),Kp(),vg=class{constructor(e){this.opened=!1,this.searchGeneration=0,this.load=()=>{this.searchGeneration+=1,this.opened=!0,this.profiles.run()},this.context=new co(e,{context:vr,subscribe:!0});let t=new gc(e,{getGateway:()=>this.context.value?.gateway,invalidateRequests:()=>{this.searchGeneration+=1}});this.profiles=new vs(e,{args:()=>[t.epoch,this.opened,t.capture()?.client],task:([,e,t])=>e&&t?t.request(`users.list`,{}):ys})}render(e,t=!1){let n=this.context.value,r=dg(n?.gateway.snapshot.selfUser),i=e.currentOwner,a=i?.identity?.id??i?.id,o=this.profiles.status===hs.COMPLETE?(this.profiles.value?.profiles??[]).filter(e=>!e.mergedInto&&e.id!==r?.id).map(e=>({type:`human`,id:e.id,identity:{type:`profile`,id:e.id},label:e.displayName?.trim()||e.githubIdentity?.login||e.emails[0]||e.id,avatarUrl:uo(e.id,e.updatedAt)})):i?.type===`human`&&a&&a!==r?.id?[{...i,type:i.type,id:a}]:[];for(let e of n?.agents.state.agentsList?.agents??[]){let t=n?.agentIdentity.get(e.id);o.push({type:`agent`,id:e.id,identity:{type:`agent`,id:e.id},label:nt(e,t),avatarUrl:rt(e,t)??void 0})}o.sort((e,t)=>e.type.localeCompare(t.type)||(e.label??e.id).localeCompare(t.label??t.id)||e.id.localeCompare(t.id)),r&&o.unshift(r);let s=t?I:`submenu`;return L`
      ${Sh(o.map(t=>({text:[t.label,t.id,t.type,t===r?N(`sessionsView.assignToMe`):``].join(` `),render:()=>{let n=t.type===i?.type&&t.id===a;return L`<wa-dropdown-item
              slot=${s}
              class="session-menu__item"
              value=${`assign-owner:${t.type}:${encodeURIComponent(t.id)}`}
              role="menuitemradio"
              aria-checked=${String(n)}
              ${ui(e=>Ip(e,n))}
              ?disabled=${e.disabled||n}
              title=${e.disabledReason??I}
            >
              <span slot="icon" class="session-menu__avatar" aria-hidden="true"
                >${hg(t)}</span
              >
              <span class="session-menu__text"
                >${t===r?N(`sessionsView.assignToMe`):t.label??t.id}</span
              >
              ${n?L`<span slot="details" class="session-menu__check" aria-hidden="true"
                      >${F.check}</span
                    >`:I}
            </wa-dropdown-item>`}})),this.searchGeneration,t?void 0:`submenu`)}
      ${this.profiles.render({pending:()=>L`<wa-dropdown-item slot=${s} disabled>${N(`common.loading`)}</wa-dropdown-item>`,error:e=>L`
          <div slot=${s} class="session-menu__info" role="alert">
            ${M(e,N(`common.failed`))}
          </div>
          <wa-dropdown-item slot=${s} class="session-menu__item" value="reload-owners"
            >${N(`common.retry`)}</wa-dropdown-item
          >
        `})}
    `}}})))()}var bg,xg,Sg;function Cg(){return(Cg=e((()=>{Zo(),R(),bi(),Jt(),k(),va(),E(),P(),Eh(),Gh(),Xh(),Rh(),Qh(),yg(),bg=[`copy-session-id`,`copy-session-link`,`copy-session-preview-link`,`copy-markdown`,`open-new-tab`,`open-new-window`,`split-right`,`split-below`,`reset-appearance`,`toggle-pin`,`toggle-unread`,`toggle-involving-me`,`rename`,`fork`,`new-group`,`toggle-archived`,`delete`],xg={label:``,sessionId:null,pinned:!1,unread:!1,archived:!1,snoozedUntil:null,category:null,icon:null,color:null,categoryClearReturnsToGroups:!1},Sg=class{constructor(e,t,n,r){this.host=e,this.readState=t,this.onAction=n,this.onClose=r,this.iconPickerMode=`grid`,this.customIconValue=``,this.snoozeMenu=new Zh({readWakeTime:()=>this.readState().session.snoozedUntil,eligible:()=>!this.actionExtraDisabled(`snooze`),disabled:e=>this.actionDisabled(e,this.actionExtraDisabled(e)),disabledReason:e=>this.readState().actionDisabledReasons[e],renderItem:(...e)=>this.renderItem(...e),renderSubmenu:(...e)=>this.renderSubmenu(...e),runAction:e=>this.runAction(e)}),this.loadOwners=()=>{this.readState().selectionCount===1&&this.ownerMenu.load()},this.selectIcon=(e,t)=>{e.stopPropagation(),this.runAction({kind:`set-icon`,icon:t})},this.showCustomIconEntry=e=>{e.stopPropagation(),this.iconPickerMode=`custom`,this.customIconValue=``,this.host.requestUpdate(),this.host.updateComplete.then(()=>{this.host.querySelector(`.session-menu__icon-custom-input`)?.focus()})},this.showIconGrid=e=>{e?.stopPropagation(),this.iconPickerMode=`grid`,this.customIconValue=``,this.host.requestUpdate(),this.host.updateComplete.then(()=>{let e=this.host.querySelector(`.session-menu__icon-choice--custom`);for(let t of this.host.querySelectorAll(`.session-menu__icon-choice`))t.tabIndex=t===e?0:-1;e?.focus()})},this.updateCustomIconValue=e=>{e.currentTarget instanceof HTMLTextAreaElement&&(this.customIconValue=e.currentTarget.value,this.host.requestUpdate())},this.applyCustomIcon=e=>{e?.stopPropagation();let t=ki(this.customIconValue);t&&this.runAction({kind:`set-icon`,icon:t})},this.focusAppearanceOnOpen=e=>{let t=e.currentTarget;t instanceof HTMLElement&&e.detail.item===t&&t.getAttribute(`aria-expanded`)!==`true`&&(this.iconPickerMode=`grid`,this.customIconValue=``,this.host.requestUpdate(),this.host.updateComplete.then(()=>requestAnimationFrame(()=>{t.querySelector(`.session-menu__appearance button:not(:disabled)`)?.focus()})))},this.context=new co(e,{context:vr,subscribe:!0}),new C(e).watchStore(()=>this.context.value?.gateway),this.ownerMenu=new vg(e)}get involvementAvailable(){return this.context.value?.gateway.snapshot.hello?.policy?.hasMultipleSessionSharingIdentities===!0}actionDisabled(e,t=!1){let n=this.readState();return n.disabled||t||!!n.actionDisabledReasons[e]}actionExtraDisabled(e){let t=this.readState(),{session:n}=t,r=t.selectionCount>1;switch(e){case`open-in`:return r||!t.worktreePath;case`copy-session-link`:case`copy-session-preview-link`:case`open-new-tab`:case`open-new-window`:return r||!t.navigationAllowed;case`copy-markdown`:return r||!t.copyMarkdownAllowed;case`split-right`:case`split-below`:return r||!t.splitAllowed;case`reset-appearance`:return r||this.actionDisabled(`set-icon`)||this.actionDisabled(`set-color`);case`copy-session-id`:return r||!n.sessionId;case`toggle-pin`:return r||n.pinnable===!1||n.isChild===!0||n.archived;case`snooze`:case`wake`:return!t.snoozeAllowed||this.actionExtraDisabled(`toggle-pin`)||!t.archiveAllowed;case`toggle-involving-me`:return!this.involvementAvailable||r||n.hiddenFromInvolvingMe===void 0||!n.sessionId;case`rename`:case`set-icon`:case`set-color`:case`assign-owner`:return r;case`fork`:return r||t.forkDisabled;case`move-to-group`:case`new-group`:return n.isChild===!0;case`toggle-archived`:return n.archiving===!0||!r&&!n.archived&&!t.archiveAllowed;case`delete`:return!t.deleteAllowed;case`toggle-unread`:return!1;default:return e}}runAction(e){this.actionDisabled(e.kind,this.actionExtraDisabled(e.kind))||(e.kind!==`set-icon`&&e.kind!==`set-color`&&e.kind!==`reset-appearance`&&this.onClose(),this.onAction(e))}handleSelect(e){if(e===`reload-owners`)return this.ownerMenu.load(),!0;let t=bg.find(t=>t===e);if(t)return this.runAction({kind:t}),!0;if(this.snoozeMenu.handleSelect(e))return!0;if(e.startsWith(`open-in:`)){let t=this.readState(),n=Va.find(t=>t===e.slice(8));return t.worktreePath&&n&&this.runAction({kind:`open-in`,editor:n,path:t.worktreePath}),!0}if(e.startsWith(`move-to-group:`)){let t=e.slice(14);return this.runAction({kind:`move-to-group`,category:t?decodeURIComponent(t):null}),!0}let[n,r,i]=e.split(`:`);return n===`assign-owner`&&(r===`human`||r===`agent`)&&i?(this.runAction({kind:`assign-owner`,owner:{type:r,id:decodeURIComponent(i)}}),!0):!1}prepareCompactView(e){e===`icon`&&(this.iconPickerMode=`grid`,this.customIconValue=``)}focusCurrentView(){this.host.updateComplete.then(()=>{(this.host.querySelector(`.session-menu__appearance button:not(:disabled)`)??this.host.querySelector(`wa-dropdown-item:not([disabled])`))?.focus()})}handleKeydown(e){let t=e.composedPath().find(e=>e instanceof HTMLElement),n=t?.closest(`.session-menu__appearance`);if(e.key===`Tab`&&t&&n&&this.host.contains(n)){let r=Array.from(n.querySelectorAll(`button:not(:disabled):not([tabindex="-1"]), textarea:not(:disabled)`)).filter(e=>!e.closest(`[inert], [hidden], [aria-hidden="true"]`)),i=r.indexOf(t),a=i<0?void 0:r[i+(e.shiftKey?-1:1)];return a?(e.preventDefault(),e.stopPropagation(),a.focus(),!0):!1}return e.composedPath().find(e=>e instanceof HTMLTextAreaElement&&e.classList.contains(`session-menu__icon-custom-input`))?e.key===`Enter`||(e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),this.showIconGrid()),!0):!1}renderItem(e,t,n,r={}){let i=this.readState(),a=e===`toggle-archived`?Ph(i):void 0;return L`<wa-dropdown-item
      slot=${r.inline===!1?`submenu`:I}
      class=${`session-menu__item${e===`delete`?` session-menu__item--destructive`:``}`}
      variant=${e===`delete`?`danger`:`neutral`}
      value=${e}
      data-shortcut=${r.shortcut??I}
      aria-keyshortcuts=${r.shortcut?.toUpperCase()??I}
      ?data-new-tab-action=${e===`open-new-tab`||e===`open-new-window`}
      ?disabled=${this.actionDisabled(e,this.actionExtraDisabled(e))}
      title=${i.actionDisabledReasons[e]??r.title??I}
    >
      <span slot="icon" class="session-menu__icon" aria-hidden="true">${n}</span>
      <span class="session-menu__text">${t}</span>
      ${r.shortcut?wh(r.shortcut,a):I}
    </wa-dropdown-item>`}renderSubmenu(e,t,n,r=!1,i){if(this.readState().compact)return qh({value:`compact:open-${e}`,label:t,icon:n,disabled:r,title:i});let a=e===`icon`?`i`:e===`copy`?`c`:void 0;return L`<wa-dropdown-item
      class=${`session-menu__item${e===`assign-owner`?` people-menu__submenu`:``}`}
      ?disabled=${r}
      title=${i??I}
      data-shortcut=${a??I}
      aria-keyshortcuts=${a?.toUpperCase()??I}
      @submenu-opening=${e===`icon`?this.focusAppearanceOnOpen:I}
    >
      <span slot="icon" class="session-menu__icon" aria-hidden="true">${n}</span>
      <span class="session-menu__text">${t}</span>
      ${a?wh(a):I} ${this.renderSubmenuBody(e)}
    </wa-dropdown-item>`}renderPrimaryActions(){let{session:e,selectionCount:t}=this.readState(),n=t>1,r=String(t);return L`
      ${n||e.pinnable===!1||e.isChild?I:this.renderItem(`toggle-pin`,N(e.pinned?`sessionsView.unpinSession`:`sessionsView.pinSession`),e.pinned?F.pinOff:F.pin,{shortcut:`p`})}
      ${n?I:this.renderItem(`rename`,N(`sessionsView.renameSessionMenu`),F.edit,{shortcut:`r`})}
      ${this.renderItem(`toggle-unread`,N(n?e.unread?`sessionsView.markReadCount`:`sessionsView.markUnreadCount`:e.unread?`sessionsView.markRead`:`sessionsView.markUnread`,{count:r}),e.unread?F.eye:F.circle,{shortcut:`u`})}
      ${this.involvementAvailable&&!n&&e.hiddenFromInvolvingMe!==void 0?this.renderItem(`toggle-involving-me`,N(e.hiddenFromInvolvingMe?`sessionsView.showInInvolvingMe`:`sessionsView.hideFromInvolvingMe`),e.hiddenFromInvolvingMe?F.eye:F.eyeOff):I}
      ${this.snoozeMenu.renderAction()}
      ${this.renderItem(`toggle-archived`,N(e.archiving?`sessionsView.archiving`:n?e.archived?`sessionsView.restoreSessionCount`:`sessionsView.archiveSessionCount`:e.archived?`sessionsView.restoreSession`:`sessionsView.archiveSession`,{count:r}),e.archived?F.archiveRestore:F.archive,{shortcut:`a`})}
    `}renderOrganizationActions(){let e=this.readState(),t=e.selectionCount>1;return L`
      ${t?I:this.renderSubmenu(`icon`,N(`sessionsView.setIconColorMenu`),F.palette,this.actionDisabled(`set-icon`)&&this.actionDisabled(`set-color`))}
      ${this.renderGroupAction()}
      ${t?I:this.renderSubmenu(`assign-owner`,N(`sessionsView.assignTo`),F.users,this.actionDisabled(`assign-owner`),e.actionDisabledReasons[`assign-owner`])}
    `}renderTransferActions(){let e=this.readState();return e.selectionCount>1?I:L`
      ${this.renderItem(`fork`,N(`sessionsView.forkSession`),F.copy,{shortcut:`f`,title:e.forkFromLastCompleted?N(`sessionsView.forkFromLastCompleted`):void 0})}
      ${this.renderSubmenu(`copy`,N(`common.copy`),F.copy)}
      ${e.navigationAllowed||e.worktreePath||e.renderOpenInExtra?this.renderSubmenu(`open-in`,N(`sessionsView.openInEditorMenu`),F.externalLink):I}
    `}renderGroupAction(){let e=this.readState(),t=e.selectionCount>1,n=String(e.selectionCount);if(e.session.isChild===!0)return I;let r=t?N(`sessionsView.moveToGroupMenuCount`,{count:n}):N(`sessionsView.moveToGroupMenu`);return this.renderSubmenu(`group`,r,F.folder,this.actionDisabled(`move-to-group`),e.actionDisabledReasons[`move-to-group`])}renderDeleteAction(){let e=this.readState(),t=e.selectionCount>1?N(`sessionsView.deleteSessionCount`,{count:String(e.selectionCount)}):N(`sessionsView.deleteSessionMenu`);return this.renderItem(`delete`,t,F.trash,{shortcut:`d`})}renderCompactView(e){return e===`root`?I:Jh(this.renderSubmenuBody(e,!0))}renderSubmenuBody(e,t=!1){let n=this.readState();switch(e){case`snooze`:return this.snoozeMenu.renderSubmenu(t);case`copy`:return this.renderCopySubmenu(t);case`open-in`:return this.renderOpenSubmenu(t);case`icon`:return this.renderAppearancePicker(t);case`group`:return this.renderGroupSubmenu(t);case`assign-owner`:return this.ownerMenu.render({currentOwner:n.currentOwner,disabled:this.actionDisabled(`assign-owner`),disabledReason:n.actionDisabledReasons[`assign-owner`]},t);default:return e}}renderCopySubmenu(e=!1){let t=this.readState();return L`
      ${t.navigationAllowed?[[`copy-session-link`,`sessionsView.copySessionLink`],[`copy-session-preview-link`,`sessionsView.copySessionPreviewLink`]].map(([t,n])=>this.renderItem(t,N(n),F.link,{inline:e})):I}
      ${this.renderItem(`copy-markdown`,N(`sessionsView.copyMarkdown`),F.fileText,{inline:e})}
      ${this.renderItem(`copy-session-id`,N(`sessionsView.copySessionId`),F.copy,{inline:e})}
    `}renderOpenSubmenu(e=!1){let t=this.readState();return L`
      ${t.navigationAllowed?[[`open-new-tab`,`sessionsView.openNewTab`,F.externalLink],[`open-new-window`,`sessionsView.openNewWindow`,F.monitor]].map(([t,n,r])=>this.renderItem(t,N(n),r,{inline:e})):I}
      ${t.splitAllowed?[[`split-right`,`chat.splitView.splitRight`,F.columns2],[`split-below`,`sessionsView.splitBelow`,F.panelBottomOpen]].map(([t,n,r])=>this.renderItem(t,N(n),r,{inline:e})):I}
      ${t.renderOpenInExtra?.(e)??I}
      ${t.worktreePath?L`
              <div slot=${e?I:`submenu`} class="session-menu__info">
                ${N(`sessionsView.workspaceEditors`)}
              </div>
              ${Fh({inline:e,disabled:this.actionDisabled(`open-in`)})}
            `:I}
    `}renderGroupSubmenu(e=!1){let t=this.readState();return Ih({inline:e,category:t.session.category,categoryClearReturnsToGroups:t.session.categoryClearReturnsToGroups,groups:t.groups,actionDisabled:e=>this.actionDisabled(e),actionTitle:e=>t.actionDisabledReasons[e]??I})}renderAppearancePicker(e=!1){let t=this.readState();return Hh({inline:e,allowSvg:!0,mode:this.iconPickerMode,currentIcon:t.session.icon,currentColor:t.session.color,colorDisabled:this.actionDisabled(`set-color`),colorDisabledReason:t.actionDisabledReasons[`set-color`],onSelectColor:(e,t)=>{e.stopPropagation(),this.runAction({kind:`set-color`,color:t})},onReset:e=>{e.stopPropagation(),this.runAction({kind:`reset-appearance`})},customIconValue:this.customIconValue,disabled:this.actionDisabled(`set-icon`),disabledReason:t.actionDisabledReasons[`set-icon`],onSelect:this.selectIcon,onShowCustom:this.showCustomIconEntry,onBack:this.showIconGrid,onInput:this.updateCustomIconValue,onApply:this.applyCustomIcon})}}})))()}var q;function wg(){return(wg=e((()=>{R(),B(),ai(),k(),O(),yh(),P(),Eh(),kh(),Cg(),Xh(),q=class extends pt{constructor(...e){super(...e),this.session=xg,this.compact=!1,this.navigationAllowed=!1,this.copyMarkdownAllowed=!1,this.splitAllowed=!1,this.selectionCount=1,this.lastActive=``,this.anchor={x:0,y:0},this.trigger=null,this.disabled=!1,this.actionDisabledReasons={},this.forkDisabled=!1,this.forkFromLastCompleted=!1,this.archiveAllowed=!1,this.snoozeAllowed=!1,this.deleteAllowed=!1,this.cloudWorkerStopAllowed=!1,this.groups=[],this.currentOwner=null,this.work=null,this.pluginActions=[],this.onAction=()=>{},this.onClose=()=>{},this.compactView=`root`,this.managementActions=new Sg(this,()=>this,e=>this.onAction(e),()=>this.onClose()),this.menuLifecycle=new vh(this,{getTrigger:()=>this.trigger,onClose:()=>this.onClose(),onKeydown:e=>{this.managementActions.handleKeydown(e)||Th(this,e)}}),this.handleSelect=e=>{e.preventDefault();let t=e.detail.item.value;if(!t)return;let n=Kh(t);if(n){this.compactView=n,this.managementActions.prepareCompactView(n),this.managementActions.focusCurrentView();return}if(!this.managementActions.handleSelect(t)){if(t.startsWith(`plugin:`)){let e=t.slice(7),n=this.pluginActions.find(t=>t.id===e);n&&this.selectionCount===1&&!this.actionDisabled(`plugin`,n.disabled)&&this.runAction({kind:`plugin`,id:e});return}if(t===`stop-cloud-worker`){this.runAction({kind:t});return}t===`open-pr`&&this.work?.pullRequestUrl&&this.runAction({kind:`open-pr`,url:this.work.pullRequestUrl})}},this.handleAfterHide=e=>{e.currentTarget instanceof Node&&e.currentTarget.isConnected&&this.onClose()}}get worktreePath(){return this.work?.worktreePath??null}connectedCallback(){super.connectedCallback(),Dh(this)}runAction(e){this.actionDisabledReasons[e.kind]||(this.onClose(),this.onAction(e))}actionDisabled(e,t=!1){return this.disabled||t||!!this.actionDisabledReasons[e]}actionTitle(e){return this.actionDisabledReasons[e]??I}renderWorkItems(){return this.work?.pullRequestUrl?L`
      <wa-dropdown-item
        class="session-menu__item"
        value="open-pr"
        data-new-tab-action
        data-shortcut="g"
        aria-keyshortcuts="G"
        ?disabled=${this.disabled}
      >
        <span slot="icon" class="session-menu__icon" aria-hidden="true"
          >${F.gitPullRequest}</span
        >
        <span class="session-menu__text">${N(`sessionsView.openPullRequest`)}</span>
        ${wh(`g`)}
      </wa-dropdown-item>
    `:I}render(){let e=Math.max(8,Math.min(this.anchor.x,window.innerWidth-240-8)),t=Math.max(8,Math.min(this.anchor.y,window.innerHeight-460-8)),n=this.session,r=this.selectionCount>1,i=String(this.selectionCount),a=r?N(`chat.sidebar.sessionMenuMany`,{count:i}):N(`chat.sidebar.sessionMenu`,{session:n.label});return di(this.anchor,L`<wa-dropdown
        class=${`session-menu${this.compact?` session-menu--compact`:``}`}
        .open=${!0}
        placement="bottom-start"
        .distance=${0}
        aria-label=${a}
        @wa-show=${this.managementActions.loadOwners}
        @wa-select=${this.handleSelect}
        @wa-after-hide=${this.handleAfterHide}
      >
        <button
          slot="trigger"
          type="button"
          tabindex="-1"
          aria-hidden="true"
          aria-label=${a}
          style="position: fixed; left: ${e}px; top: ${t}px; width: 1px; height: 1px; opacity: 0; pointer-events: none;"
        ></button>
        ${this.compact&&this.compactView!==`root`?this.managementActions.renderCompactView(this.compactView):L`
                ${!r&&this.lastActive?L`<div class="session-menu__info">
                        ${N(`sessionsView.lastActive`,{time:this.lastActive})}
                      </div>`:I}
                ${this.managementActions.renderPrimaryActions()}
                <div class="session-menu__separator" role="separator"></div>
                ${this.managementActions.renderOrganizationActions()}
                ${r?I:this.pluginActions.map(e=>L`
                          <wa-dropdown-item
                            class="session-menu__item"
                            value=${`plugin:${e.id}`}
                            ?disabled=${this.actionDisabled(`plugin`,e.disabled)}
                            title=${this.actionTitle(`plugin`)}
                          >
                            <span slot="icon" class="session-menu__icon" aria-hidden="true"
                              >${F.plug}</span
                            >
                            <span class="session-menu__text">${e.label}</span>
                          </wa-dropdown-item>
                        `)}
                ${r?I:L`
                        <div class="session-menu__separator" role="separator"></div>
                        ${this.managementActions.renderTransferActions()} ${this.renderWorkItems()}
                      `}
                <div class="session-menu__separator" role="separator"></div>
                ${!r&&this.cloudWorkerStopAllowed?L`
                        <wa-dropdown-item
                          class="session-menu__item session-menu__item--destructive"
                          value="stop-cloud-worker"
                          variant="danger"
                          ?disabled=${this.actionDisabled(`stop-cloud-worker`)}
                          title=${this.actionTitle(`stop-cloud-worker`)}
                        >
                          <span slot="icon" class="session-menu__icon" aria-hidden="true"
                            >${F.stop}</span
                          >
                          <span class="session-menu__text"
                            >${N(`sessionsView.stopCloudWorker`)}</span
                          >
                        </wa-dropdown-item>
                      `:I}
                ${this.managementActions.renderDeleteAction()}
              `}
      </wa-dropdown>`)}},U([V({attribute:!1})],q.prototype,`session`,void 0),U([V({attribute:!1})],q.prototype,`compact`,void 0),U([V({attribute:!1})],q.prototype,`navigationAllowed`,void 0),U([V({attribute:!1})],q.prototype,`copyMarkdownAllowed`,void 0),U([V({attribute:!1})],q.prototype,`splitAllowed`,void 0),U([V({attribute:!1})],q.prototype,`selectionCount`,void 0),U([V({attribute:!1})],q.prototype,`lastActive`,void 0),U([V({attribute:!1})],q.prototype,`anchor`,void 0),U([V({attribute:!1})],q.prototype,`trigger`,void 0),U([V({attribute:!1})],q.prototype,`disabled`,void 0),U([V({attribute:!1})],q.prototype,`actionDisabledReasons`,void 0),U([V({attribute:!1})],q.prototype,`forkDisabled`,void 0),U([V({attribute:!1})],q.prototype,`forkFromLastCompleted`,void 0),U([V({attribute:!1})],q.prototype,`archiveAllowed`,void 0),U([V({attribute:!1})],q.prototype,`snoozeAllowed`,void 0),U([V({attribute:!1})],q.prototype,`deleteAllowed`,void 0),U([V({attribute:!1})],q.prototype,`cloudWorkerStopAllowed`,void 0),U([V({attribute:!1})],q.prototype,`groups`,void 0),U([V({attribute:!1})],q.prototype,`currentOwner`,void 0),U([V({attribute:!1})],q.prototype,`work`,void 0),U([V({attribute:!1})],q.prototype,`pluginActions`,void 0),U([V({attribute:!1})],q.prototype,`onAction`,void 0),U([V({attribute:!1})],q.prototype,`onClose`,void 0),U([H()],q.prototype,`compactView`,void 0),customElements.get(`openclaw-session-menu`)||customElements.define(`openclaw-session-menu`,q)})))()}function Tg(e,t){return!e.dispatchEvent(new CustomEvent(Eg,{detail:t,bubbles:!0,composed:!0,cancelable:!0}))}var Eg;function Dg(){return(Dg=e((()=>{Eg=`openclaw-mcp-app-open`})))()}var Og;function kg(){return(kg=e((()=>{wo(),R(),B(),Jt(),k(),Ua(),Nt(),ba(),Na(),je(),go(),O(),P(),Dg(),$i(),Og=class extends pt{constructor(...e){super(...e),this.sessionKey=``,this.agentId=``,this.surface=`global`,this.filePath=``,this.expanded=!1,this.error=null,this.onboardingBusy=!1,this.target=()=>({sessionKey:this.sessionKey||this.context?.gateway.snapshot.sessionKey||``,agentId:this.agentId||this.context?.agentSelection.state.selectedId||void 0}),this.catalog=new ia(this,()=>this.context,this.target,()=>this.surface===`global`)}entries(e){return e.entrypoints.filter(({entrypoint:e})=>this.surface===`file`?e.type===`file`&&e.extensions.some(e=>this.filePath.toLowerCase().endsWith(e.toLowerCase())):e.type===(this.surface===`sidebar`?`global`:this.surface))}icon(e,t){let n=document.documentElement.dataset.themeMode,r=[...t.icons??[],...e.icons??[]].find(e=>(!e.theme||e.theme===n)&&Ni(e.src));return r?L`<img class="mcp-app-icon" src=${r.src} alt="" referrerpolicy="no-referrer" />`:F.puzzle}open(e,t,n=!1,r=!1){if(this.context){if(this.error=null,this.surface===`sidebar`||this.surface===`global`){let i=Za({kind:`server`,serverName:e.serverName,toolName:t.toolName,deepLink:`/`});this.context.navigate(`apps`,{search:`${i}${n?`&settings=1`:``}${r?`&quickAction=1`:``}`});return}Tg(this,{...this.target(),owner:this.context.gateway.snapshot.client,serverName:e.serverName,entrypoint:t,settings:n,quickAction:r,...this.surface===`file`?{filePath:this.filePath}:{}})?this.expanded=!1:this.error=N(`mcpApp.errors.mountUnavailable`)}}async onboard(e){let t=this.context,n=t?.gateway.snapshot.client;if(!t||!n||this.onboardingBusy)return;let r=this.target();this.onboardingBusy=!0;try{if(await n.request(`mcp.app.onboard`,{...r,pluginId:e,idempotencyKey:Vo()}),!this.isConnected||t.gateway.snapshot.client!==n)return;let i=Fe({context:t,sessionKey:r.sessionKey,agentId:r.agentId,face:`chat`});t.navigate(`chat`,i.options)}catch(e){t.gateway.snapshot.client===n&&(this.error=M(e))}finally{this.onboardingBusy=!1}}render(){if(!this.catalog.available)return I;let e=this.catalog.servers.flatMap(e=>this.entries(e).map(t=>({server:e,entry:t}))),t=this.surface===`thread`||this.surface===`file`;return this.surface===`sidebar`?L`${e.map(({server:e,entry:t})=>L`<button type="button" class="nav-item" @click=${()=>this.open(e,t)} title=${e.label}><span class="nav-item__icon">${this.icon(e,t)}</span><span class="nav-item__text">${t.title}</span></button>`)}`:this.surface===`file`&&!e.length||this.surface===`thread`&&!e.length&&!this.catalog.onboarding.length&&!this.catalog.servers.some(e=>e.settings)?I:L`<section class="mcp-app-catalog ${t?`mcp-app-catalog--compact`:``}">
      ${t?L`<button
              class="btn btn--sm"
              type="button"
              aria-expanded=${String(this.expanded)}
              @click=${()=>{this.expanded=!this.expanded}}
            >
              ${F.puzzle}
              ${N(this.surface===`file`?`mcpApp.openWith`:`mcpApp.threadApps`)}
            </button>`:L`<h2>${N(`mcpApp.catalogTitle`)}</h2>
              <p class="muted">${N(`mcpApp.catalogDescription`)}</p>`}
      ${!t||this.expanded?L`<div class="mcp-app-catalog__entries">
              ${this.catalog.loading?L`<p role="status">${N(`mcpApp.loading`)}</p>`:I}
              ${this.catalog.error?L`<p role="alert">${this.catalog.error}</p>
                      <button class="btn" @click=${()=>void this.catalog.refresh()}>
                        ${N(`mcpApp.retry`)}
                      </button>`:I}
              ${!this.catalog.loading&&!this.catalog.error&&!e.length?L`<p>${N(`mcpApp.empty`)}</p>`:I}
              ${e.map(({server:e,entry:t})=>L`<div class="mcp-app-catalog__entry">
                    <button class="btn" type="button" @click=${()=>this.open(e,t)}>
                      ${this.icon(e,t)}<span
                        ><strong>${t.title}</strong><small>${e.label}</small></span
                      ></button
                    >${t.entrypoint.type===`global`&&t.entrypoint.quickAction?L`<button class="btn btn--sm" type="button" @click=${()=>this.open(e,t,!1,!0)}>${t.entrypoint.quickAction.title}</button>`:I}${e.settings?L`<button type="button" class="btn btn--sm" @click=${()=>this.open(e,t,!0)}>${N(`mcpApp.settings`)}</button>`:I}
                  </div>`)}
              ${this.surface===`file`?I:this.catalog.servers.filter(e=>e.settings&&!this.entries(e).length).map(e=>L`<button class="btn" type="button" @click=${()=>this.open(e,{toolName:e.settings.readTool,title:e.label,resourceUri:``,entrypoint:{type:`settings`}},!0)}>${e.label} · ${N(`mcpApp.settings`)}</button>`)}
              ${this.catalog.onboarding.map(e=>L`<button class="btn" type="button" ?disabled=${this.onboardingBusy} @click=${()=>void this.onboard(e.pluginId)}>${N(`mcpApp.onboarding`)} · ${e.title}</button>`)}
              ${t?I:L`<button class="btn btn--sm" @click=${()=>this.context?.navigate(`mcp`)}>${N(`mcpApp.configure`)}</button>`}
            </div>`:I}
      ${this.error?L`<p role="alert">${this.error}</p>`:I}
    </section>`}},U([Co({context:vr,subscribe:!0})],Og.prototype,`context`,void 0),U([V({attribute:!1})],Og.prototype,`sessionKey`,void 0),U([V({attribute:!1})],Og.prototype,`agentId`,void 0),U([V()],Og.prototype,`surface`,void 0),U([V({attribute:!1})],Og.prototype,`filePath`,void 0),U([H()],Og.prototype,`expanded`,void 0),U([H()],Og.prototype,`error`,void 0),U([H()],Og.prototype,`onboardingBusy`,void 0),customElements.get(`openclaw-mcp-app-catalog`)||customElements.define(`openclaw-mcp-app-catalog`,Og)})))()}var Ag;function jg(){return(jg=e((()=>{R(),B(),k(),ua(),na(),O(),P(),Np(),Ag=class extends o{constructor(...e){super(...e),this.agentId=``,this.agentName=``,this.avatarUrl=null,this.avatarAuthReady=!1,this.avatarText=null,this.environment=null,this.menuOpen=!1,this.menuUnread=!1,this.switcherAvailable=!1,this.avatarLoader=new wa(this)}render(){return this.avatarLoader.withActiveRoutes(()=>this.renderContent())}renderContent(){let e=this.avatarUrl,t=!(!e?.startsWith(`/`)||this.avatarAuthReady),n=e&&!t?this.avatarLoader.resolve(e):null,r=this.switcherAvailable?N(`agentChip.switchAgent`):N(`agentChip.menuLabel`);return L`
      <div class="sidebar-agent-card ${this.menuOpen?`sidebar-agent-card--open`:``}">
        <button
          type="button"
          class="sidebar-agent-card__main"
          aria-haspopup="menu"
          aria-expanded=${String(this.menuOpen)}
          aria-label="${this.agentName} · ${r}"
          @pointermove=${e=>{this.switcherAvailable&&e.currentTarget instanceof HTMLElement&&this.onMenuPointerMove?.(e.currentTarget,e)}}
          @pointerleave=${()=>this.onMenuPointerLeave?.()}
          @pointerdown=${e=>{e.stopPropagation()}}
          @click=${e=>{e.stopPropagation(),e.currentTarget instanceof HTMLElement&&this.onToggleMenu?.(e.currentTarget)}}
        >
          <span
            class="sidebar-agent-card__avatar ${this.environment?`sidebar-agent-card__avatar--environment`:``}"
          >
            ${Tp({id:this.agentId,avatar:n,textAvatar:this.avatarText,pending:t},``,e?this.avatarLoader.imageErrorHandler(e):void 0)}
            ${this.menuUnread&&!this.menuOpen?L`<span
                    class="session-unread-dot sidebar-agent-card__menu-unread"
                    role="img"
                    aria-label=${N(`sessionsView.unread`)}
                  ></span>`:I}
          </span>
          <span class="sidebar-agent-card__text">
            <span class="sidebar-agent-card__name">
              ${Oa(this.agentName,`sidebar-agent-card__name-text`,{loop:!0,delay:300,speed:35})}
              <span class="sidebar-agent-card__chevron" aria-hidden="true"
                >${F.chevronsUpDown}</span
              >
            </span>
            ${this.environment?L`<span class="sidebar-agent-card__subtitle-row">
                    <span class="control-ui-environment-pill">${this.environment.label}</span>
                  </span>`:I}
          </span>
        </button>
      </div>
    `}},U([V({attribute:!1})],Ag.prototype,`agentId`,void 0),U([V({attribute:!1})],Ag.prototype,`agentName`,void 0),U([V({attribute:!1})],Ag.prototype,`avatarUrl`,void 0),U([V({attribute:!1})],Ag.prototype,`avatarAuthReady`,void 0),U([V({attribute:!1})],Ag.prototype,`avatarText`,void 0),U([V({attribute:!1})],Ag.prototype,`environment`,void 0),U([V({attribute:!1})],Ag.prototype,`menuOpen`,void 0),U([V({attribute:!1})],Ag.prototype,`menuUnread`,void 0),U([V({attribute:!1})],Ag.prototype,`switcherAvailable`,void 0),U([V({attribute:!1})],Ag.prototype,`onToggleMenu`,void 0),U([V({attribute:!1})],Ag.prototype,`onMenuPointerMove`,void 0),U([V({attribute:!1})],Ag.prototype,`onMenuPointerLeave`,void 0),customElements.get(`openclaw-sidebar-agent-card`)||customElements.define(`openclaw-sidebar-agent-card`,Ag)})))()}function Mg(e){return e.state.phase===`hidden`?null:{type:`scopeUpgrade`,category:`system`,dismissal:wr(e),requiresAction:!0,severity:e.state.phase===`error`||e.state.phase===`rejected`?`error`:`warning`,state:e.state}}function Ng(e){let t=e.approvals.map(e=>({type:`approval`,approval:e,category:`approvals`,dismissal:null,requiresAction:!0,severity:`warning`})),n=e.attention.filter(e=>e.severity===`error`),r=e.attention.filter(e=>e.severity===`warning`),i=e.mentions.toSorted((e,t)=>t.createdAt-e.createdAt||e.id.localeCompare(t.id)).map(e=>({type:`mention`,mention:e,category:`mentions`,dismissal:null,requiresAction:!0,severity:`neutral`}));return[...t,...e.outbox??[],...e.update?.severity===`error`?[e.update]:[],...e.scopeUpgrade?[e.scopeUpgrade]:[],...n,...e.update?.severity===`warning`?[e.update]:[],...r,...i]}function Pg(e,t){return t===`all`||e.category===t}function Fg(e){let t=e.filter(e=>e.requiresAction);return{all:t.length,approvals:t.filter(e=>e.category===`approvals`).length,mentions:t.filter(e=>e.category===`mentions`).length,automations:t.filter(e=>e.category===`automations`).length,system:t.filter(e=>e.category===`system`).length}}function Ig(){return(Ig=e((()=>{Rn()})))()}function Lg(e,t={}){let n={phase:`unavailable`,items:[],dismissing:[],error:null},r=null,i=!1,a=new Set,o=e=>{n={...n,...e};for(let e of a)e()},s=t=>!i&&r===t&&Yi(e.snapshot,`mentions.list`,`operator.read`)&&e.snapshot.client===t.client&&e.snapshot.hello===t.hello&&e.connectionRevision===t.connectionRevision&&e.snapshot.selfUser?.identity?.id===t.profileId,c=async(e,t,n)=>{if(s(e))try{let r=await e.client.request(t,n);if(!s(e)||r.gatewayInstanceId!==e.gatewayInstanceId||e.revision!==null&&r.revision<e.revision||e.requiredRevision!==null&&r.revision<e.requiredRevision)return;e.revision=r.revision,o({phase:`ready`,items:r.items,error:null})}catch(t){if(!s(e))return;let n=t instanceof rr&&(t.gatewayCode===`FORBIDDEN`||Cr(t)===Ao.AUTHENTICATED_PROFILE_UNAVAILABLE);n&&(r=null),o({phase:`error`,error:M(t),...n?{items:[],dismissing:[]}:{}})}},l=e=>s(e)?(e.refreshRequested=!0,e.refreshPromise||=Promise.resolve().then(async()=>{try{for(;s(e)&&e.refreshRequested;)e.refreshRequested=!1,o({phase:`loading`,error:null}),await c(e,`mentions.list`,{})}finally{e.refreshPromise=null,s(e)&&e.refreshRequested&&await l(e)}}),e.refreshPromise):Promise.resolve(),u=e=>{let n=()=>s(e)?e.refreshPromise?e.refreshPromise:e.revision!==null&&(e.requiredRevision===null||e.revision>=e.requiredRevision)?(e.refreshRequested=!1,Promise.resolve()):l(e):Promise.resolve();return t.connectionBootstrap?.run(e,n,{background:!0})??n()},d=()=>{let t=e.snapshot,n=t.selfUser?.identity?.id,a=t.hello?.server?.bootId;if(r&&s(r))return;if(i||t.phase!==`connected`||!t.client||!t.hello||!n||!a||!Yi(t,`mentions.list`,`operator.read`)){r=null,o({phase:`unavailable`,items:[],dismissing:[],error:null});return}let c={client:t.client,hello:t.hello,connectionRevision:e.connectionRevision,profileId:n,gatewayInstanceId:a,revision:null,requiredRevision:null,dismissing:new Set,refreshRequested:!1,refreshPromise:null};r=c,o({phase:`loading`,items:[],dismissing:[],error:null}),s(c)&&u(c)},f=e.subscribeEvents(e=>{let t=r;if(e.event!==`mentions.changed`||!t||!s(t))return;let n=as(e.payload)?e.payload:void 0;n?.gatewayInstanceId!==t.gatewayInstanceId||typeof n.revision!=`number`||!Number.isSafeInteger(n.revision)||n.revision<0||t.revision!==null&&n.revision<=t.revision||(t.requiredRevision=Math.max(t.requiredRevision??0,n.revision),t.refreshRequested=!0,u(t))}),p=e.subscribe(d);return d(),{get snapshot(){return n},refresh:()=>(r||d(),r?l(r):Promise.resolve()),async dismiss(t){let i=r;if(!i||!s(i)||!Yi(e.snapshot,`mentions.dismiss`,`operator.read`))return;let a=new Set(n.items.map(e=>e.id)),l=[...new Set(t)].filter(e=>a.has(e)&&!i.dismissing.has(e));if(l.length){for(let e of l)i.dismissing.add(e);o({dismissing:[...i.dismissing],error:null});try{await c(i,`mentions.dismiss`,{ids:l})}finally{for(let e of l)i.dismissing.delete(e);s(i)&&o({dismissing:[...i.dismissing]})}}},subscribe:e=>jo(a,e),dispose(){i=!0,r=null,p(),f(),a.clear()}}}function Rg(){return(Rg=e((()=>{Ro(),Kt(),Nt(),Zi()})))()}function zg(e,t){return t!==!1&&e.enabled&&!ja(e)&&e.state?.nextRunAtMs!=null?e.state.nextRunAtMs+Vg:1/0}function Bg(e){let t=[],n=(e,t)=>({...e,type:`attention`,category:t,dismissal:{kind:e.kind,signature:e.signature},requiresAction:!0}),r=nc(e.modelAuthStatus?.providers??[]).filter(Ec).filter(e=>e.status===`expired`||e.status===`missing`);for(let i of r){let r=e.modelAuthAgentId?`agent:${e.modelAuthAgentId}\n${i.provider}`:i.provider,a=`${i.displayName}: ${i.status}`,o=i.profiles.find(e=>e.status===`expired`||e.status===`missing`)?.profileId??e.modelAuthAgentId?.trim(),c=s(Math.max(0,e.now-(e.modelAuthStatus?.ts??e.now)),{suffix:!1}),l=o?N(`attention.modelAuthExpiredWithScope`,{scope:o,time:c}):N(`attention.modelAuthExpiredState`,{time:c}),u=N(`attention.modelAuthExpired`,{providers:i.displayName});t.push(n({kind:`modelAuthExpired`,severity:`error`,icon:`plug`,label:i.displayName,detail:l,meta:{...o?{context:o}:{},status:N(`attention.authExpired`),time:c},inlineAction:{label:N(`attention.reconnect`),routeId:`model-providers`},signature:r,action:{kind:`askCustodian`,alert:{id:`modelAuthExpired:${r}`,title:u,facts:[a],question:mt(N(`attention.alerts.modelAuthExpiredQuestion`,{facts:a}),Hg),action:{label:N(`routeTitles.modelProviders`),target:{kind:`navigate`,routeId:`model-providers`}}}}},`system`))}for(let r of[`cronFailed`,`cronOverdue`]){let i=r===`cronFailed`,a=e=>(i?e.state?.lastRunAtMs:e.state?.nextRunAtMs)??e.updatedAtMs,o=e.cronJobs.filter(t=>i?ka(t):e.now>zg(t,e.cronSchedulerEnabled)).toSorted((e,t)=>a(t)-a(e));for(let c of o){let o=s(Math.max(0,e.now-a(c))),l=e.cronOwnerByJobId?.get(c.id);t.push(n({kind:r,severity:i?`error`:`warning`,icon:`clock`,label:c.name?.trim()||c.id,detail:N(i?`attention.automationFailed`:`attention.automationOverdue`,{time:o}),meta:{...l?{context:l}:{},status:N(i?`attention.failed`:`attention.overdue`),time:o},action:{kind:`navigate`,routeId:`cron`},signature:i?c.id:`${c.id}@${c.state?.nextRunAtMs}`},`automations`))}}return t}var Vg,Hg;function Ug(){return(Ug=e((()=>{k(),Ea(),Ae(),El(),oa(),Vg=3e5,Hg=1e3})))()}function Wg(e,t,n=Date.now()){return!!(e&&(e.status===`running`||!t&&e.finishedAtMs!==null&&n-e.finishedAtMs<864e5))}function Gg(e){let t=e.overlays.snapshot,n=t.updateSchedule?.campaign,r=t.updateRun,i=Wg(r,t.updateRunAcknowledged),a=r?null:t.updateStatusBanner,o=t.updateRunning||t.updateReconciliationPending||n?.state===`applying`,s=Yi(e.gateway.snapshot,`update.run`,`operator.admin`),c=Yi(e.gateway.snapshot,`update.status`,`operator.admin`),l=n&&!t.updateCampaignStatusHydrated&&c,u=lr(t.updateAvailable,t.updateSchedule,o);if(!(i||t.updateReconciliationPending||a||(l?t.updateRunning:u)))return null;let d=i&&r?.status!==`running`?{kind:`updateAvailable`,signature:JSON.stringify([`run`,r?.runId])}:hr({gatewayBootId:e.gateway.snapshot.hello?.server?.bootId,updateAvailable:t.updateAvailable,updateSchedule:t.updateSchedule}),f=o||Wt(a?.tone);return{type:`update`,category:`system`,dismissal:s&&!f?d:null,requiresAction:f||s&&u,severity:t.updateStatusBanner?.tone===`danger`?`error`:`warning`}}function Kg(){return(Kg=e((()=>{fr(),Zi(),Rn()})))()}var qg;function Jg(){return(Jg=e((()=>{Rg(),_t(),Da(),Ba(),Ma(),Pa(),_(),vt(),El(),A(),Rn(),Ig(),Ug(),Kg(),Go(),qg=class{constructor(e,t){this.sources=e,this.onChange=t,this.cronJobs=[],this.cronSchedulerEnabled=null,this.modelAuthStatus=null,this.modelAuthAgentId=null,this.loadedOwner=null,this.loadedClient=this.sources.gateway.snapshot.client,this.loadedAgentScope={...this.sources.agentSelection.state},this.dismissalKey=null,this.dismissed={},this.reviewedOutbox=new Set,this.loadGeneration=0,this.cronRefresh=null,this.cronRefreshNeeded=!1,this.modelAuthRefresh=null,this.outboxRuntime=null,this.disposed=!1,this.refreshDeferred=()=>{this.scheduleHealthRefresh(),document.visibilityState===`visible`&&(this.onChange(),this.cronRefreshNeeded&&this.load(!1))},this.syncDismissalsFromStorage=e=>{this.dismissalKey&&(e.key===null||e.key===this.dismissalKey)&&this.syncDismissals()},this.mentions=Lg(e.gateway,{connectionBootstrap:e.connectionBootstrap}),this.loadedClient=null,this.stopSubscriptions=[e.gateway.subscribe(()=>this.synchronizeGateway()),e.gateway.subscribeEvents(e=>{e.event===`cron`?this.load(!1):e.event===`config.changed`?this.load():$e(e)&&this.load(!0,!1)}),e.agentSelection.subscribe(()=>this.synchronizeGateway()),e.agents.subscribe(t),e.overlays.subscribe(t),this.mentions.subscribe(t),La(t),Wa(t)],W(()=>import(`./control-ui-boot-shared-dOnP4mAA.js`).then(e=>(e.vp(),e._p)).then(e=>{this.disposed||(this.outboxRuntime=e,this.buildEntries().some(e=>e.type===`outbox`)&&this.onChange())}),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).catch(()=>{}),document.addEventListener(`visibilitychange`,this.refreshDeferred),globalThis.addEventListener(`storage`,this.syncDismissalsFromStorage),this.synchronizeGateway()}get entries(){return this.buildEntries().filter(e=>!e.dismissal||!xn(this.dismissed,e.dismissal)&&!(e.dismissal.kind===`outbox`&&this.reviewedOutbox.has(e.dismissal.signature)))}owner(){return{connectionRevision:this.sources.gateway.connectionRevision,dismissalKey:Nr(this.sources.gateway)}}ownerEquals(e,t){return e.connectionRevision===t.connectionRevision&&e.dismissalKey===t.dismissalKey}clearHealth(){this.cronJobs=[],this.cronSchedulerEnabled=null,this.cronRetryAt=void 0,this.modelAuthStatus=null,this.modelAuthAgentId=null,this.modelAuthRefreshAt=void 0,this.scheduleHealthRefresh()}scheduleHealthRefresh(){if(globalThis.clearTimeout(this.healthRefreshTimer),this.healthRefreshTimer=void 0,this.disposed||!te(this.sources.gateway.snapshot)||document.visibilityState===`hidden`)return;let e=Date.now(),t=this.modelAuthRefreshAt!==void 0&&this.modelAuthRefreshAt<=e,n=this.cronRetryAt!==void 0&&this.cronRetryAt<=e;if(t||n){this.load(t,n);return}let r=Math.min(this.modelAuthRefreshAt??1/0,this.cronRetryAt??1/0);for(let t of this.cronJobs){let n=Math.floor(zg(t,this.cronSchedulerEnabled))+1;n>e&&(r=Math.min(r,n))}Number.isFinite(r)&&(this.healthRefreshTimer=globalThis.setTimeout(()=>{this.onChange(),this.scheduleHealthRefresh()},Math.min(2147483647,r-e)))}cronOwnerByJobId(){let e=this.sources.agentSelection.state,t=this.sources.agents.state.agentsList;if(e.scopeId!==null||!t)return;let n=new Map(t.agents.map(e=>[G(e.id),Xe(e)])),r=G(t.defaultId);return new Map(this.cronJobs.map(e=>{let t=G(e.agentId??r);return[e.id,n.get(t)??t]}))}buildEntries(){let e=this.sources.gateway.snapshot,t=this.outboxRuntime?.listChatOutboxAttention({client:e.client,connected:e.phase===`connected`,settings:{gatewayUrl:this.sources.gateway.connection.gatewayUrl},assistantAgentId:e.assistantAgentId,agentsList:this.sources.agents.state.agentsList,hello:e.hello}).map(t=>Object.assign(t,{type:`outbox`,category:`system`,dismissal:{kind:`outbox`,signature:JSON.stringify([e.client?.recoveryScope,t.agentId,t.sessionKey,t.id,t.unconfirmed,t.command])},requiresAction:!0,severity:t.unconfirmed?`warning`:`error`}))??[];if(e.phase!==`connected`)return t;let n=this.sources.overlays.snapshot,r=Gg(this.sources),i=Mg({scopes:e.hello?.auth?.scopes,state:this.sources.scopeUpgrade.state}),a=Bg({cronJobs:this.cronJobs,cronSchedulerEnabled:this.cronSchedulerEnabled,cronOwnerByJobId:this.cronOwnerByJobId(),modelAuthStatus:this.modelAuthStatus,modelAuthAgentId:this.modelAuthAgentId,now:Date.now()});return Ng({approvals:n.approvalQueue,attention:a,outbox:t,mentions:this.mentions.snapshot.items,scopeUpgrade:i,update:r})}reconcileDismissals(e){this.dismissalKey&&(this.dismissed=zr({active:this.buildEntries().flatMap(e=>e.dismissal?[e.dismissal]:[]),key:this.dismissalKey,scope:e}))}load(e=!0,t=!0){let n=this.sources.gateway.snapshot,r=n.client;if(!te(n)||!r)return;let i=this.owner(),a={...this.sources.agentSelection.state},o=this.loadGeneration;this.loadedOwner=i,this.loadedClient=r,this.loadedAgentScope=a;let s=()=>o===this.loadGeneration&&te(this.sources.gateway.snapshot)&&this.sources.gateway.snapshot.client===r&&this.ownerEquals(i,this.owner())&&this.sources.agentSelection.state.selectedId===a.selectedId&&this.sources.agentSelection.state.scopeId===a.scopeId,c=e=>{s()&&(this.reconcileDismissals(e),this.scheduleHealthRefresh(),this.onChange())};if(t&&this.cronRefresh?.generation===o&&(this.cronRefresh.requested=!0),t&&(this.cronRetryAt=void 0,this.cronRefreshNeeded=document.visibilityState===`hidden`),t&&!this.cronRefreshNeeded&&this.cronRefresh?.generation!==o){let e={generation:o,requested:!0};this.cronRefresh=e;let t=()=>s()&&document.visibilityState!==`hidden`,n=async()=>{try{for(;e.requested&&s();){if(!t()){this.cronRefreshNeeded=!0;break}e.requested=!1;let n=pa({client:r,connected:!0});for(n.canRefresh=t,n.cronAgentId=a.scopeId,await Promise.all([Ja(n),Ca(n)]);t()&&n.cronJobsHasMore&&!n.cronJobsError&&!e.requested;)await Ja(n,{append:!0});if(s()){let r=!!(n.cronJobsError||n.cronError);this.cronRefreshNeeded||=r,this.cronRetryAt=r?Date.now()+6e4:void 0,!n.cronJobsError&&!n.cronJobsHasMore&&(this.cronJobs=n.cronJobs.map(e=>({id:e.id,name:e.name,agentId:e.agentId,enabled:e.enabled,updatedAtMs:e.updatedAtMs,state:{nextRunAtMs:e.nextRunAtMs??void 0,lastRunAtMs:e.lastRunAtMs??void 0,lastRunStatus:e.lastRunStatus??void 0,runningAtMs:e.runningAtMs,autoDisabled:e.autoDisabled}}))),n.cronError||(this.cronSchedulerEnabled=n.cronStatus?.enabled??null),c({cronInventoryComplete:a.scopeId===null&&!n.cronJobsHasMore&&!e.requested&&!n.cronJobsError&&!n.cronError,modelAuthAgentId:null}),n.cronJobsHasMore&&!t()&&(this.cronRefreshNeeded=!0)}}}finally{this.cronRefresh===e&&(this.cronRefresh=null)}};this.sources.connectionBootstrap?.run(e,n,{background:!0})??n()}if((e||a.selectedId!==this.modelAuthAgentId)&&a.selectedId){if(this.modelAuthRefreshAt=void 0,this.modelAuthRefresh?.generation===o)this.modelAuthRefresh.requested||=e;else{let e={generation:o,requested:!0},t=a.selectedId;this.modelAuthRefresh=e,(async()=>{try{for(;e.requested&&s();){e.requested=!1;let n=await ec(r,{agentId:t}).catch(()=>null);s()&&(this.modelAuthStatus=n,this.modelAuthAgentId=t,this.modelAuthRefreshAt=n?yc(n):void 0,c({cronInventoryComplete:!1,modelAuthAgentId:t}))}}finally{this.modelAuthRefresh===e&&(this.modelAuthRefresh=null)}})()}}else a.selectedId||(this.modelAuthStatus=null,this.modelAuthAgentId=null);this.scheduleHealthRefresh()}synchronizeGateway(){let e=this.sources.gateway.snapshot,t=Nr(this.sources.gateway);if(t!==this.dismissalKey&&(this.dismissalKey=t,this.dismissed=ir(t)),e.phase!==`connected`||!e.client){this.loadGeneration+=1,this.loadedOwner=null,this.loadedClient=null,this.clearHealth(),this.onChange();return}if(!te(e)){this.loadGeneration+=1,this.loadedClient=null,this.scheduleHealthRefresh();return}let n=this.owner(),r=this.sources.agentSelection.state,i=this.loadedOwner!==null&&!this.ownerEquals(n,this.loadedOwner);if(i&&(this.clearHealth(),this.onChange()),!i&&e.client===this.loadedClient&&r.selectedId===this.loadedAgentScope.selectedId&&r.scopeId===this.loadedAgentScope.scopeId)return;let a=!1;r.selectedId!==this.loadedAgentScope.selectedId&&(this.modelAuthStatus=null,this.modelAuthAgentId=null,a=!0),r.scopeId!==this.loadedAgentScope.scopeId&&(this.cronJobs=[],a=!0),a&&this.onChange(),this.loadGeneration+=1,this.modelAuthRefreshAt=void 0,this.cronRetryAt=void 0,this.scheduleHealthRefresh(),this.load()}syncDismissals(){this.synchronizeGateway(),this.dismissed=ir(this.dismissalKey),this.onChange()}dismiss(e){let t=this.sources.overlays.snapshot.updateRun;if(e.kind===`outbox`&&(this.reviewedOutbox.add(e.signature),this.onChange()),e.kind===`updateAvailable`&&t&&t.status!==`running`&&e.signature===JSON.stringify([`run`,t.runId])){this.sources.overlays.acknowledgeUpdateRun();return}this.dismissalKey&&(this.dismissed=Ln(this.dismissalKey,e),this.onChange())}dispose(){this.disposed=!0,this.loadGeneration+=1,this.modelAuthRefreshAt=void 0,this.scheduleHealthRefresh();for(let e of this.stopSubscriptions)e();this.mentions.dispose(),document.removeEventListener(`visibilitychange`,this.refreshDeferred),globalThis.removeEventListener(`storage`,this.syncDismissalsFromStorage)}}})))()}var Yg=t({}),Xg;function Zg(){return(Zg=e((()=>{wo(),R(),B(),Jt(),k(),Ea(),Zi(),O(),E(),P(),Br(),Ig(),Jg(),an(),Go(),oa(),Xg=class extends pt{constructor(...e){super(...e),this.panelOpen=!1,this.panelPosition={left:8,anchor:`bottom`,bottom:8},this.selectedTab=`all`,this.overflowAbove=!1,this.overflowBelow=!1,this.panelTrigger=null,this.mentions=null,this.panelRenderer=null,this.panelLoad=Dt(()=>W(()=>Promise.resolve().then(()=>(wj(),Sj)),void 0,import.meta.url)),this.panelGeneration=0,this.subscriptions=new C(this).watchStore(()=>this.context?.sidebarAttention).watchStore(()=>this.context?.sessions).watchStore(()=>this.context?.agents).watchStore(()=>this.context?.agentIdentity),this.handleOutsideInteraction=e=>{(e instanceof KeyboardEvent?e.key===`Escape`&&!this.panelOpen&&!e.defaultPrevented:!e.composedPath().includes(this))&&(e instanceof KeyboardEvent&&this.panelTrigger&&(e.preventDefault(),e.stopPropagation()),this.closePanel(!1))},this.handleWindowBlur=()=>{let e=document.activeElement;if(!this.contains(e)){for(;e?.shadowRoot?.activeElement;)e=e.shadowRoot.activeElement;e instanceof HTMLIFrameElement&&this.closePanel(!1)}},this.preloadPanel=()=>{this.panelLoad.load().catch(()=>void 0)},this.syncOverflowCue=()=>{let e=this.querySelector(`.sidebar-issues-panel__list`);this.overflowAbove=!!(e&&e.scrollTop>2),this.overflowBelow=!!(e&&e.scrollHeight-e.scrollTop-e.clientHeight>2)},this.handlePanelKeydown=e=>{if(e.key===`Escape`){e.preventDefault(),this.closePanel(!0);return}if(e.key!==`Tab`)return;let t=e.currentTarget;if(!(t instanceof HTMLElement))return;let n=Array.from(t.querySelectorAll(`summary, button, a[href], [tabindex]:not([tabindex='-1'])`)).filter(e=>{let t=e.closest(`details:not([open])`),n=e.tagName===`SUMMARY`||!!e.parentElement?.closest(`summary`);return!e.hasAttribute(`disabled`)&&!e.closest(`[hidden]`)&&(!t||n)}),r=n[0],i=n.at(-1);e.shiftKey&&document.activeElement===r?(e.preventDefault(),i?.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),r?.focus())}}connectedCallback(){super.connectedCallback(),this.mentions=this.context?.sidebarAttention.activate(qg)??null,this.preloadPanel(),document.addEventListener(`pointerdown`,this.handleOutsideInteraction,!0),document.addEventListener(`keydown`,this.handleOutsideInteraction,!0),window.addEventListener(`blur`,this.handleWindowBlur)}disconnectedCallback(){document.removeEventListener(`pointerdown`,this.handleOutsideInteraction,!0),document.removeEventListener(`keydown`,this.handleOutsideInteraction,!0),window.removeEventListener(`blur`,this.handleWindowBlur),this.panelLoad.dispose(),this.closePanel(!1),this.subscriptions.clear(),super.disconnectedCallback()}willUpdate(e){e.has(`activeRouteId`)&&e.get(`activeRouteId`)!==void 0&&this.closePanel(!1)}updated(e){super.updated(e),this.panelOpen&&this.syncOverflowCue()}async openPanel(e){let t=++this.panelGeneration;this.panelTrigger=e;let n=await this.panelLoad.load();if(!this.isConnected||t!==this.panelGeneration)return;this.context?.scopeUpgrade.activate(n.ScopeUpgradeController);let r=e.getBoundingClientRect(),i=Math.min(390,globalThis.innerWidth-16),a=r.left+r.width/2-i/2,o=Math.max(8,Math.min(a,globalThis.innerWidth-i-8));this.panelRenderer=n.renderSidebarAttentionPanel,this.panelPosition=r.top<globalThis.innerHeight/2?{left:o,anchor:`top`,top:Math.max(8,r.bottom+8)}:{left:o,anchor:`bottom`,bottom:Math.max(8,globalThis.innerHeight-r.top+8)},this.selectedTab=`all`,this.panelOpen=!0,await this.updateComplete,t===this.panelGeneration&&this.querySelector(`.sidebar-issues-panel__list`)?.focus()}closePanel(e){let t=++this.panelGeneration,n=e&&this.panelOpen?this.panelTrigger:null;this.panelOpen=!1,this.overflowAbove=!1,this.overflowBelow=!1,this.panelTrigger=null,n&&this.updateComplete.then(()=>{t===this.panelGeneration&&n.focus()})}dismissPanel(){let e=this.panelOpen;return this.closePanel(!1),e}selectTab(e){this.selectedTab=e,this.updateComplete.then(()=>{if(!this.panelOpen||this.selectedTab!==e)return;let t=this.querySelector(`.sidebar-issues-panel__list`);t&&(t.scrollTop=0),this.syncOverflowCue()})}async open(e){if(this.closePanel(!1),e.action.kind===`navigate`){this.onNavigate?.(e.action.routeId);return}let{custodianAlertStore:t}=await W(async()=>{let{custodianAlertStore:e}=await import(`./custodian-alert-store-DMTYYmJp.js`).then(e=>(e.r(),e.n));return{custodianAlertStore:e}},__vite__mapDeps([13]),import.meta.url);t.present(e.action.alert);let n=this.context?.gateway.snapshot;Yi(n,`openclaw.chat`,`operator.admin`)?window.dispatchEvent(new CustomEvent(nr,{detail:{open:!0}})):(this.onNavigate??(e=>this.context?.navigate(e)))(`custodian`)}async decideApproval(e,t,n){let r=this.context;if(!r)return;let i=e.currentTarget;if(!(i instanceof HTMLElement))return;let a=Array.from(this.querySelectorAll(`[data-issue-row-focus]`)),o=i.closest(`[data-approval-id]`)?.querySelector(`[data-issue-row-focus]`)??null,s=o?a.indexOf(o):0,c=this.panelGeneration;if(await r.overlays.decideApproval(n,t),await this.updateComplete,c!==this.panelGeneration||i.isConnected)return;let l=Array.from(this.querySelectorAll(`[data-issue-row-focus]`));l[Math.min(Math.max(s,0),l.length-1)]?.focus()}render(){if(!this.context)return I;let e=this.context.sidebarAttention.entries;if(this.context.gateway.snapshot.phase!==`connected`&&e.length===0)return I;let t=Fg(e).all,n=N(t===1?`attention.issueCount`:`attention.issueCountPlural`,{count:String(t)});return L`
      <span class="sr-only" role="status" aria-live="polite">${n}</span>
      <button
        type="button"
        class="sidebar-issues-button"
        aria-expanded=${String(this.panelOpen)}
        aria-haspopup="dialog"
        aria-controls="sidebar-issues-panel"
        aria-label=${n}
        @pointerenter=${this.preloadPanel}
        @focus=${this.preloadPanel}
        @pointerdown=${this.preloadPanel}
        @click=${e=>{let t=e.currentTarget;t instanceof HTMLElement&&(this.panelOpen?this.closePanel(!0):this.openPanel(t))}}
      >
        <span class="sidebar-issues-button__icon" aria-hidden="true">${F.inbox}</span>
        ${t>0?L`<span class="sidebar-issues-button__count" aria-hidden="true"
                >${t>9?`9+`:t}</span
              >`:I}
      </button>
      ${this.panelOpen&&this.panelRenderer&&this.mentions?this.panelRenderer({context:this.context,mentions:this.mentions,entries:e,onApprovalDecision:(e,t,n)=>void this.decideApproval(e,t,n),onClose:()=>this.closePanel(!0),onDismiss:e=>this.context?.sidebarAttention.dismiss(e),onKeydown:this.handlePanelKeydown,onNavigate:(e,t)=>{this.closePanel(!1),(this.onNavigate??this.context?.navigate)?.(e,t)},onOpen:e=>void this.open(e),onScroll:this.syncOverflowCue,onSelectTab:e=>this.selectTab(e),overflowAbove:this.overflowAbove,overflowBelow:this.overflowBelow,panelPosition:this.panelPosition,selectedTab:this.selectedTab,watchUpdateProgress:this.watchUpdateProgress}):I}
    `}},U([Co({context:vr,subscribe:!0})],Xg.prototype,`context`,void 0),U([H()],Xg.prototype,`panelOpen`,void 0),U([H()],Xg.prototype,`panelPosition`,void 0),U([H()],Xg.prototype,`selectedTab`,void 0),U([H()],Xg.prototype,`overflowAbove`,void 0),U([H()],Xg.prototype,`overflowBelow`,void 0),U([V({attribute:!1})],Xg.prototype,`activeRouteId`,void 0),U([V({attribute:!1})],Xg.prototype,`onNavigate`,void 0),U([V({attribute:!1})],Xg.prototype,`watchUpdateProgress`,void 0),customElements.get(`openclaw-sidebar-attention`)||customElements.define(`openclaw-sidebar-attention`,Xg)})))()}var Qg;function $g(){return($g=e((()=>{R(),B(),k(),O(),P(),an(),Qg=class extends o{constructor(...e){super(...e),this.mode=`system`,this.menuItem=!1,this.handleModeChange=e=>{let t=this.mode===`system`?`light`:this.mode===`light`?`dark`:`system`;this.dispatchEvent(new CustomEvent(`theme-change`,{detail:{mode:t,element:e.currentTarget},bubbles:!0,composed:!0}))}}render(){let e=this.mode===`system`?`common.system`:this.mode===`light`?`common.light`:`common.dark`,t=N(e),n=N(`common.colorModeOption`,{mode:t});return L`
      <openclaw-tooltip .content=${n}>
        <button
          type="button"
          class="theme-mode-toggle"
          role=${this.menuItem?`menuitem`:I}
          aria-label=${n}
          @click=${this.handleModeChange}
        >
          ${this.mode===`system`?F.monitor:this.mode===`light`?F.sun:F.moon}
        </button>
      </openclaw-tooltip>
    `}},U([V({attribute:!1})],Qg.prototype,`mode`,void 0),U([V({attribute:!1})],Qg.prototype,`menuItem`,void 0),customElements.get(`openclaw-theme-mode-toggle`)||customElements.define(`openclaw-theme-mode-toggle`,Qg)})))()}function e_(e){let t=`online`,n=e.sidebarAgentsMode===`roster`,r=n?!e.teamOnlineExpanded:e.collapsedSessionSections.has(t),i=N(`presence.rosterTitle`),a=cl(e.sessionData.presencePayload),o=t_.get(e);if(o?.length===a.length&&a.every((e,t)=>e===o[t])?a=o:t_.set(e,a),a.length===0)return I;let s=e.sessionData.ownerCounts.counts,c=e=>s&&e.identity?.type===`profile`?s.get(e.identity.id)??{open:0,running:0}:null,l=Date.now(),u={active:0,idle:1,unknown:2},d=e=>Number((c(e)?.running??0)>0),f=e.people.statusFilter===`running`,p=a.filter(e=>!f||d(e)>0).toSorted((t,n)=>(e.people.sortMode===`presence`?u[Gc(t,l)]-u[Gc(n,l)]||d(n)-d(t):e.people.sortMode===`name`?0:(c(n)?.[e.people.sortMode]??-1)-(c(t)?.[e.people.sortMode]??-1))||Jc(t).localeCompare(Jc(n),void 0,{sensitivity:`base`})),m=$h({basePath:e.basePath,navigate:(t,n)=>e.onNavigate?.(t,n)},()=>e.dismissTransientMenus());return L`
    <section class="sidebar-online" aria-label=${i} data-session-section=${t}>
      ${lm({sectionId:t,draggable:!1,onStartDrag:()=>void 0,onFinishDrag:()=>void 0,content:L`
          <button
            type="button"
            class="sidebar-session-group-toggle"
            aria-expanded=${String(!r)}
            aria-label=${i}
            @click=${()=>{n?e.teamOnlineExpanded=r:e.toggleSection(t)}}
          >
            <span class="sidebar-session-group-toggle__lead" aria-hidden="true">
              <span class="sidebar-session-group-toggle__icon"
                >${r?F.chevronRight:F.chevronDown}</span
              >
            </span>
            ${Oa(i,`sidebar-recent-sessions__label-text`)}
            ${r?L`<span class="sidebar-online__facepile">
                    <openclaw-viewer-facepile
                      .staticUsers=${a}
                      .maxVisible=${2}
                    ></openclaw-viewer-facepile>
                  </span>`:I}
          </button>
          ${r?I:L`<button
                  type="button"
                  class="sidebar-session-toolbar__button sidebar-online__filter-toggle sidebar-session-sort ${f?`sidebar-session-sort--filtered`:``}"
                  aria-label=${N(`presence.filters.label`)}
                  title=${N(`presence.filters.label`)}
                  aria-haspopup="dialog"
                  aria-expanded=${String(e.sidebarMenus.peopleFilterMenuPosition!==null)}
                  @click=${t=>{t.currentTarget instanceof HTMLElement&&e.sidebarMenus.togglePositionedMenu(`peopleFilter`,t.currentTarget)}}
                >
                  ${F.listFilter}
                </button>`}
        `})}
      ${r?I:L`<div class="sidebar-online__list">
                ${p.length===0?L`<span class="sidebar-session-empty-hint">${N(s===null?`presence.sessions.unavailable`:`presence.filters.noMatches`)}</span>`:I}
                ${pi(p,Ul,e=>{let t=Gc(e),n=c(e),r=n?N(`presence.sessions.counts`,{open:String(n.open),running:String(n.running)}):N(`presence.sessions.unavailable`),i=eg(e.identity?.id,m,Jc(e)),a=i?hi`a`:hi`button`;return ci`<div
                  class="sidebar-online__row"
                  data-person-card
                  data-person-card-section="online"
                >
                  <${a}
                    class="sidebar-online__person"
                    type=${i?I:`button`}
                    href=${i?.href??I}
                    @click=${i?.open??I}
                    data-online-user-id=${e.id}
                    data-presence-activity=${t}
                    aria-description=${`${Uc(t)} · ${r}`}
                    title=${n?I:N(`presence.sessions.unavailable`)}
                    data-person-card-key=${Ul(e)}
                    data-person-card-trigger
                    aria-haspopup="dialog"
                    aria-expanded="false"
                    aria-label=${N(i?`presence.card.ariaLabel`:`presence.card.details`,{name:Jc(e)})}
                  >
                    <span class="sidebar-online__avatar" aria-hidden="true">
                      <openclaw-viewer-avatar
                        .user=${e}
                        .markAsViewer=${!1}
                        variant="footer"
                      ></openclaw-viewer-avatar>
                    </span>
                    <span class="sidebar-online__person-name">${Jc(e)}</span>
                    ${n&&(n.open>0||n.running>0)?L`<span class="sidebar-online__counts" aria-hidden="true">
                            ${n.running>0?L`<span
                                    class="sidebar-online__running"
                                    data-session-count="running"
                                    title=${N(`presence.sessions.runningCount`,{count:String(n.running)})}
                                    ><span class="session-run-spinner"></span
                                    ><span class="sidebar-online__count"
                                      >${n.running}</span
                                    ></span
                                  >`:I}
                            ${n.open>0?L`<span
                                    class="sidebar-online__open"
                                    data-session-count="open"
                                    title=${N(`presence.sessions.openCount`,{count:String(n.open)})}
                                    ><span class="sidebar-online__open-icon"
                                      >${F.messageCircle}</span
                                    ><span class="sidebar-online__count"
                                      >${n.open}</span
                                    ></span
                                  >`:I}
                          </span>`:I}
                  </${a}>
                </div>`})}
              </div>
              ${e.sessionData.ownerCounts.error?L`<button
                      type="button"
                      class="sidebar-online__retry"
                      @click=${()=>e.sessionData.ownerCounts.refresh()}
                    >
                      ${N(`presence.sessions.retry`)}
                    </button>`:I}`}
    </section>
  `}var t_;function n_(){return(n_=e((()=>{R(),vi(),si(),Ml(),k(),ua(),yl(),um(),P(),ig(),t_=new WeakMap})))()}function r_(e,t,n,r={}){return L`<wa-dropdown-item
    class=${`sidebar-customize-menu__item${r.className?` ${r.className}`:``}`}
    value=${e}
    ?disabled=${r.disabled}
    title=${r.title??I}
  >
    <span slot="icon" class="nav-item__icon" aria-hidden="true">${F[n]}</span>
    <span class="sidebar-customize-menu__text">${t}</span>
    ${r.details??I}
  </wa-dropdown-item>`}function i_(e,t,n=`top`){return L`<button
    slot="trigger"
    type="button"
    tabindex="-1"
    aria-hidden="true"
    aria-label=${t}
    style="position: fixed; left: ${e.x}px; ${n}: ${e.y}px; width: 1px; height: 1px; opacity: 0; pointer-events: none;"
  ></button>`}function a_(e){return L`<wa-dropdown
    class=${e.className}
    .open=${!0}
    placement="bottom-start"
    .distance=${0}
    aria-label=${e.label}
    @wa-select=${t=>{t.preventDefault(),e.onSelect(t.detail.item)}}
    @keydown=${t=>Pp(t,e.onTabAway)}
    @wa-after-hide=${t=>e.onClose(Fp(t))}
  >
    ${i_(e.position,e.label)} ${e.content}
  </wa-dropdown>`}function o_(e,t){return e===void 0?!1:t===`config`?_n(e):t===`plugins`?gr(e):t===`sessions`?gn(e):e===t}function s_(e){let t=e??[];return[`chat`,`control`,`agent`,`settings`].flatMap(e=>t.filter(t=>(t.group??`control`)===e))}function c_(e){return L`
    <a
      href=${e.href}
      class="nav-item ${e.active?`nav-item--active`:``}"
      aria-current=${e.active?`page`:I}
      @focus=${t=>e.onPreload(t)}
      @blur=${e.onCancelPreload}
      @pointerenter=${t=>e.onPreload(t)}
      @pointerleave=${e.onCancelPreload}
      @touchstart=${{handleEvent:t=>e.onPreload(t,!0),passive:!0}}
      @click=${t=>{x(t)&&(t.preventDefault(),e.onNavigate())}}
    >
      <span class="nav-item__icon" aria-hidden="true"
        >${F[rn(e.routeId)]}</span
      >
      <span class="nav-item__text">${Zt(e.routeId)}</span>
    </a>
  `}function l_(e){let t=Yt(e.tab,e.basePath),n=Object.hasOwn(F,e.tab.icon)?e.tab.icon:`plug`;return L`
    <a
      href=${`${t.pathname}${t.search}`}
      class="nav-item ${e.active?`nav-item--active`:``}"
      aria-current=${e.active?`page`:I}
      @click=${n=>{x(n)&&(n.preventDefault(),e.onNavigate(t))}}
    >
      <span class="nav-item__icon" aria-hidden="true">${F[n]}</span>
      <span class="nav-item__text">${e.tab.label}</span>
    </a>
  `}function u_(e,t){let n=o_(e.activeRouteId,t);return L`
    <wa-dropdown-item
      value=${t}
      class="sidebar-customize-menu__item ${n?`sidebar-customize-menu__item--active`:``}"
      aria-current=${n?`page`:I}
      @pointerenter=${n=>e.onPreloadRoute(t,n)}
      @pointerleave=${e.onCancelPreload}
      @click=${e=>{if(!x(e)){e.currentTarget.dataset.nativeNavigation=`true`;return}e.preventDefault()}}
    >
      <a href=${qr(t,e.basePath)} tabindex="-1">
        <span class="nav-item__icon" aria-hidden="true"
          >${F[rn(t)]}</span
        >
        <span class="sidebar-customize-menu__text">${Zt(t)}</span>
      </a>
    </wa-dropdown-item>
  `}function d_(e){let t=wn(e.sidebarEntries).filter(t=>e.isRouteEnabled(t));return a_({...e,className:`sidebar-customize-menu sidebar-more-menu`,label:N(`nav.more`),onSelect:n=>{if(n.dataset.nativeNavigation){delete n.dataset.nativeNavigation;return}let r=n.value;if(r===`customize`){e.onEditPinnedItems();return}let i=t.find(e=>e===r);i&&e.onNavigateRoute(i)},content:L`
      ${t.map(t=>u_(e,t))}
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${r_(`customize`,N(`nav.customize`),`penLine`)}
    `})}function f_(e){let t=[...bn.filter(t=>e.isRouteEnabled(t)).map(e=>({value:e,entry:mn({type:`route`,route:e}),icon:rn(e),label:Zt(e)})),...e.pluginNavigation.filter(e=>e.value.defaultVisible===!1).map(e=>({value:`plugin:${e.key}`,entry:`plugin:${e.key}`,icon:e.value.icon&&Object.hasOwn(F,e.value.icon)?e.value.icon:`plug`,label:e.value.label}))];return a_({...e,className:`sidebar-customize-menu sidebar-pin-editor-menu`,label:N(`nav.customize`),onSelect:({value:t})=>{if(t===`reset`)e.onReset();else if(t?.startsWith(`plugin:`)){let n=t.slice(7);e.pluginNavigation.some(e=>e.key===n)&&e.onTogglePlugin(n)}else{let n=bn.find(e=>e===t);n&&e.onToggleRoute(n)}},content:L`
      <div class="sidebar-customize-menu__title">${N(`nav.customize`)}</div>
      ${e.preferencesBrowserOnly?L`<div class="sidebar-customize-menu__provenance" role="note">
              ${N(`quickSettings.personal.browserOnly`)}
            </div>`:I}
      ${t.map(t=>L`
          <wa-dropdown-item
            class="sidebar-customize-menu__item"
            type="checkbox"
            value=${t.value}
            .checked=${e.sidebarEntries.includes(t.entry)}
          >
            <span slot="icon" class="nav-item__icon" aria-hidden="true">${F[t.icon]}</span>
            <span class="sidebar-customize-menu__text">${t.label}</span>
          </wa-dropdown-item>
        `)}
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${r_(`reset`,N(`nav.customizeReset`),`refresh`)}
    `})}function p_(e){return a_({...e,className:`sidebar-customize-menu sidebar-plugin-navigation-menu`,label:e.item.label,onSelect:({value:t})=>void e.onSelect(t),content:L`
      ${(e.item.actions??[]).map(e=>{let t=e.icon&&Object.hasOwn(F,e.icon)?F[e.icon]:I;return L`<wa-dropdown-item
          class="sidebar-customize-menu__item ${e.destructive?`session-menu__item--destructive`:``}"
          value=${e.id}
          variant=${e.destructive?`danger`:`neutral`}
        >
          <span slot="icon" class="nav-item__icon" aria-hidden="true">${t}</span>
          <span class="sidebar-customize-menu__text">${e.label}</span>
        </wa-dropdown-item>`})}
    `})}function m_(){return(m_=e((()=>{R(),qt(),cr(),k(),P(),Kp()})))()}function h_(e){let t=e.sessionOwnerFilterActive?e.sessionOwnerFilterId:null,n=t?e.sessionOwnerOptions.find(e=>e.id===t):e.sessionInvolvingMeFilterActive?dg(_r({snapshotUser:e.sessionDataContext?.gateway.snapshot.selfUser,presenceEntries:Xt(e.sessionData.presencePayload),presenceInstanceId:e.sessionData.presenceInstanceId})):void 0,r=[...t?[n?.label??t]:[],...e.sessionInvolvingMeFilterActive?[N(`sessionsView.involvingMe`)]:[],...e.sessionsStatusFilter===`snoozed`?[N(`sessionsView.snoozed`)]:e.sessionsStatusFilter===`archived`?[N(`sessionsView.archived`)]:e.sessionsStatusFilter===`all`?[N(`sessionsView.all`)]:[]],i=r.join(` · `),a=N(`chat.sidebar.showAllSessions`);return L`<button
    type="button"
    class="sidebar-session-filter-summary"
    title=${a}
    aria-label=${`${i} · ${a}`}
    @click=${()=>{e.setSessionOwnerFilter(null),e.sessionsStatusFilter!==`active`&&e.sessionOrganizer.setSessionsStatusFilter(`active`)}}
  >
    <span class="sidebar-session-filter-summary__lead" aria-hidden="true">
      <span class="sidebar-session-filter-summary__glyph"
        >${n?hg(n):F.archive}</span
      >
      <span class="sidebar-session-filter-summary__clear">${F.x}</span>
    </span>
    <span class="sidebar-session-filter-summary__label"
      >${r.map((e,t)=>L`${t>0?L`<span class="sidebar-session-filter-summary__sep" aria-hidden="true">·</span>`:I}${e}`)}</span
    >
  </button>`}function g_(e){return Number(e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive)+Number(e.sessionsStatusFilter!==`active`)}function __(e,t){let n=g_(e);return L`<button
    type="button"
    class="${t} sidebar-session-sort ${n>0?`sidebar-session-sort--filtered`:``}"
    title=${N(`chat.sidebar.sortSessions`)}
    aria-label=${N(`chat.sidebar.sortSessions`)}
    aria-description=${n>0?N(`chat.sidebar.activeFilterCount`,{count:String(n)}):I}
    aria-haspopup="dialog"
    aria-expanded=${String(e.sidebarMenus.sessionSortMenuPosition!==null)}
    @click=${t=>{t.currentTarget instanceof HTMLElement&&e.sidebarMenus.togglePositionedMenu(`sessionSort`,t.currentTarget)}}
  >
    ${F.listFilter}
  </button>`}function v_(e){let t=e.readNewSessionAccess(),n=e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive||e.sessionsStatusFilter!==`active`;return L`
    <div class="sidebar-session-toolbar">
      <span class="sidebar-recent-sessions__label-text">${N(`chat.sidebar.threads`)}</span>
      ${n?h_(e):I}
      ${__(e,`sidebar-session-toolbar__button`)}
      ${Un({basePath:e.basePath,agentId:e.expandedAgentId(),className:`sidebar-session-toolbar__button sidebar-new-session`,label:N(`agentChip.newConversation`),showShortcut:!0,disabledReason:t.allowed?void 0:t.reason,onOpen:(t,n)=>e.requestOpenNewSession(t,n)})}
    </div>
  `}function y_(e){return e.sessionData.sessionMutationError?L`
        <div
          class="sidebar-session-error callout danger callout--dismissible"
          role="alert"
          data-sidebar-session-error
        >
          <span class="callout__content">${e.sessionData.sessionMutationError}</span>
          <openclaw-tooltip .content=${N(`chat.actions.dismissError`)}>
            <button
              class="callout__dismiss"
              type="button"
              @click=${()=>e.sessionData.dismissSessionMutationError()}
              aria-label=${N(`chat.actions.dismissError`)}
            >
              ${F.x}
            </button>
          </openclaw-tooltip>
        </div>
      `:I}function b_(e,t,n){return t&&n&&e.sessionsStatusFilter===`active`&&(e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive)?L`<span class="sidebar-session-empty-hint"
        >${N(`chat.sidebar.noActiveSessionsForFilter`)}</span
      >`:I}function x_(){return(x_=e((()=>{R(),k(),P(),pr(),_g()})))()}function S_(e){let t=e.flatMap(e=>e.kind===`question`||e.kind===`approval`?e.requests:[]).toSorted((e,t)=>e.createdAtMs-t.createdAtMs||e.id.localeCompare(t.id)||e.kind.localeCompare(t.kind)),n=t[0];return n?{kind:n.kind,requests:[...new Map(t.map(e=>[`${e.kind}:${e.id}`,e])).values()]}:e.toSorted((e,t)=>ev[t.kind]-ev[e.kind])[0]??$_}function C_(e,t=0){return t===1?e.hasActiveRun:t===2?e.attention.kind!==`none`:e.visuallyActive||e.containsActiveDescendant||e.hasActiveRun||e.runningChildCount>0||e.failedChildCount>0||(e.workspaceConflictCount??0)>0||e.unread||(e.unreadChildCount??0)>0||e.attention.kind!==`none`}function w_(e){let t=Math.max(0,e.scrollHeight-e.clientHeight);return t<=1?`none`:e.scrollTop<=1?`top`:e.scrollTop>=t-1?`bottom`:`middle`}function T_(e){return`sidebar-session-meta-${encodeURIComponent(e)}`}function E_(e){return`sidebar-session-state-${encodeURIComponent(e)}`}function D_(){return Ol(T()?.getItem(nv))}function O_(){return tl(T()?.getItem(rv))}function k_(){return T()?.getItem(av)===`true`}function A_(){return T()?.getItem(iv)===`true`}function j_(){return T()?.getItem(ov)===`true`}function M_(){let e=T()?.getItem(sv);return e===`snoozed`||e===`archived`||e===`all`?e:`active`}function N_(e,t){return`${dv}${Bo(e)}:${encodeURIComponent(t)}`}function P_(e,t){try{let n=T()?.getItem(N_(e,t)),r=n?.startsWith(`owner:`)?n.slice(6).trim():``;return{ownerId:n===`involving-me`?null:r||null,involvingMe:n===`involving-me`}}catch{return{ownerId:null,involvingMe:!1}}}function F_(){let e=T()?.getItem(cv);return e===`updated`||e===`people`?e:`created`}function I_(e,t=[]){try{let n=T()?.getItem(e);if(n==null)return new Set(t);let r=JSON.parse(n);return new Set(Array.isArray(r)?r.flatMap(e=>typeof e==`string`&&e?[e]:[]):[])}catch{return new Set(t)}}function L_(){return I_(lv,[`work`])}function R_(){return I_(uv)}function z_(e,t){try{T()?.setItem(e,t)}catch{}}function B_(e){z_(nv,e)}function V_(e){T()?.setItem(rv,e)}function H_(e){z_(av,String(e))}function U_(e){z_(iv,String(e))}function W_(e){z_(ov,String(e))}function G_(e){z_(sv,e)}function K_(e,t,n){try{let r=T(),i=N_(e,t),a=n.involvingMe?`involving-me`:n.ownerId?`owner:${n.ownerId}`:null;a===null?r?.removeItem(i):r?.setItem(i,a)}catch{}}function q_(e,t){return e===`people`&&!t?`created`:e}function J_(e,t){let n=q_(e,t!==!1);return z_(cv,n),n}function Y_(e){z_(lv,JSON.stringify([...e]))}function X_(e){T()?.setItem(uv,JSON.stringify([...e])),typeof window<`u`&&window.dispatchEvent(new CustomEvent(fv))}function Z_(e,t){let n=new Set(R_());t?n.add(e):n.delete(e),X_(n)}function Q_(e,t){return`${e}\u0000${t}`}var $_,ev,tv,nv,rv,iv,av,ov,sv,cv,lv,uv,dv,fv,pv,mv;function J(){return(J=e((()=>{hl(),Rc(),$_={kind:`none`},ev={question:3,approval:3,agent:2,error:1,none:0},tv=function(e){return e[e.Any=0]=`Any`,e[e.ActiveRun=1]=`ActiveRun`,e[e.Attention=2]=`Attention`,e}({}),nv=`openclaw:sidebar:sessions:grouping`,rv=`openclaw:sidebar:sessions:catalog-grouping`,iv=`openclaw:sidebar:sessions:show-preview`,av=`openclaw:sidebar:sessions:show-cron`,ov=`openclaw:sidebar:sessions:show-system`,sv=`openclaw:sidebar:sessions:status-filter`,cv=`openclaw:sidebar:sessions:sort-mode`,lv=`openclaw:sidebar:sessions:collapsed-sections`,uv=`openclaw:sidebar:sessions:hidden-catalogs`,dv=`openclaw.control.sidebarSessionOwnerFilter.v1:`,fv=`openclaw:sidebar-hidden-catalogs-changed`,pv=[{mode:`created`,labelKey:`chat.sidebar.sortCreated`},{mode:`updated`,labelKey:`chat.sidebar.sortUpdated`},{mode:`people`,labelKey:`sessionsView.owners`}],mv=[`active`,`snoozed`,`archived`,`all`]})))()}function hv(e){return e.replace(_v,e=>e.replace(gv,``))}var gv,_v;function vv(){return(vv=e((()=>{gv=/(?:⚠️?|⛔|❌|🛠️?|✉️?)/gu,_v=/^[ \t]*(?:⚠️?|⛔|❌|🛠️?|✉️?)(?:[ \t]*(?:⚠️?|⛔|❌|🛠️?|✉️?))*/u})))()}var yv;function bv(){return(bv=e((()=>{P(),yv={hand:F.hand,key:F.key,alert:F.alertTriangle,flag:F.flag,lock:F.lock,hourglass:F.circle}})))()}function xv(e){e.stopPropagation()}function Sv(e){e.preventDefault(),e.stopPropagation()}function Cv(e){if(e.kind===`none`)return I;let t=Ev(e),n=e.kind===`question`?F.hand:e.kind===`approval`?F.shieldQuestion:e.kind===`agent`?yv[e.icon]:F.alertTriangle,r=L`<span
    class="sidebar-session-attention__icon sidebar-session-attention__icon--${e.kind}"
    data-session-attention=${e.kind}
    role=${t?`img`:I}
    aria-label=${t??I}
    aria-hidden=${t?I:`true`}
    tabindex=${t?`0`:I}
    @focusin=${t?xv:I}
    @click=${t?Sv:I}
    >${n}</span
  >`;return t?Dv(e,r):r}function wv(e){switch(e.kind){case`question`:return N(`sessionsView.waitingForAnswer`);case`approval`:return N(`sessionsView.waitingForApproval`);case`error`:return N(e.childLabel===void 0?`sessionsView.runFailedReason`:`sessionsView.childRunFailedReason`,{label:e.childLabel??``,reason:hv(e.reason)});case`agent`:return e.note;case`none`:return;default:return e}}function Tv(e){let t=wv(e);if(e.kind!==`question`&&e.kind!==`approval`)return{status:t};let n=e.requests.filter(t=>t.kind===e.kind),r=n.reduce((e,t)=>e+t.count,0);return{status:r>1?N(e.kind===`question`?`sessionsView.questionsNeedAnswer`:`sessionsView.approvalsNeedApproval`,{count:String(r)}):t,preview:n[0]?.preview,more:r>1?N(`sessionsView.attentionMore`,{count:String(r-1)}):void 0}}function Ev(e){let{status:t,preview:n,more:r}=Tv(e);return[t,n,r].filter(Boolean).join(`
`)||void 0}function Dv(e,t){let{status:n,preview:r,more:i}=Tv(e);return L`<openclaw-tooltip .content=${r?``:n} open-on-click>
    ${t}
    ${r?L`<span slot="content" class="sidebar-session-attention-tooltip">
            <strong>${n}</strong>
            <span class="sidebar-session-attention-tooltip__preview">${r}</span>
            ${i?L`<span>${i}</span>`:I}
          </span>`:I}
  </openclaw-tooltip>`}function Ov(e){if(!e.isChild)return e.unread?L`<span
          class="session-unread-dot"
          role="img"
          aria-label=${N(`sessionsView.unread`)}
        ></span>`:I;let t=e.status;if(!t)return I;let n=t===`done`?{icon:F.check,label:N(`sessionsView.statusDone`)}:t===`killed`?{icon:F.stop,label:N(`sessionsView.statusKilled`)}:t===`timeout`?{icon:F.alertTriangle,label:N(`sessionsView.statusTimeout`)}:t===`interrupted`?{icon:F.pause,label:N(`sessionsView.statusInterrupted`)}:t===`failed`?{icon:F.alertTriangle,label:N(`sessionsView.statusFailed`)}:null;return n?L`<span
        class="sidebar-child-session__status sidebar-child-session__status--${t}"
        role="img"
        aria-label=${n.label}
        title=${n.label}
        >${n.icon}</span
      >`:I}function kv(e,t,n,r=0,i){let a=S_(e.flatMap(e=>t?[e.attention]:[e.ownAttention??e.attention,...e.subagentSummary?[e.subagentSummary.attention]:[]])),o=0,s=0,c=0,l=!1;for(let n of e){let e=t?n:n.subagentSummary;o+=Number(n.hasActiveRun)+(e?.runningChildCount??0),s+=Number(n.hasActiveRun&&n.status===`queued`)+(e?.queuedChildCount??0),c+=Number(n.unread)+(e?.unreadChildCount??0),l||=n.status===`failed`||n.status===`timeout`||(e?.failedChildCount??0)>0}let u=a.kind===`none`?l?L`<span
            class="sidebar-child-session__status--failed"
            role="img"
            aria-label=${N(`sessionsView.statusFailed`)}
            >${F.alertTriangle}</span
          >`:r?L`<span
              role="img"
              aria-label=${N(`sessionsView.cloudWorkerDescendantConflicts`,{count:String(r)})}
              >${F.globe}</span
            >`:o?Am({content:I,running:!0,queued:o===s,runVisibility:i}):e.length===1&&e[0]?.isChild?Ov(e[0]):I:Cv(a);return(!t||n===0)&&c===0&&u===I?I:L`<span class="sidebar-session-team-state">
    ${t&&n>0||c>0?L`<span class="sidebar-session-team-state__counts">
            ${t&&n>0?L`<span class="sidebar-child-session-toggle__count" role="img" aria-label=${`${N(`sessionsView.childSessions`)}: ${n}`}>${n}</span>`:I}
            ${c>0?L`<span class=${c===1?`session-unread-dot`:`sidebar-agent-roster__unread`} role="img" aria-label=${N(`sessionsView.unread`)} title=${N(`sessionsView.unread`)}>${c>1?c:I}</span>`:I}
          </span>`:I}
    ${u===I?I:L`<span class="sidebar-session-team-state__status">${u}</span>`}
  </span>`}function Av(){return(Av=e((()=>{R(),k(),J(),vv(),P(),bv(),Nm()})))()}async function jv(e,t,n){let r=e.currentTarget;if(!(r instanceof HTMLButtonElement))return;let i=await ee(t);r.dataset.copied=i?`1`:`0`,r.setAttribute(`aria-label`,N(i?`aboutPage.copiedCommit`:`common.copyFailed`)),window.setTimeout(()=>{r.isConnected&&(delete r.dataset.copied,r.setAttribute(`aria-label`,n))},Lv)}function Mv(e){if(e.release||!e.commit)return null;let t=e.branch&&e.branch!==`main`?e.branch:`git`;return`${t.length>Iv?`${no(t,Iv)}…`:t}@${`${e.commit.slice(0,7)}${e.dirty===!0?`*`:``}`}`}function Nv(e){let t=Mv(e);if(!t)return null;let n=e.commitAt?Date.parse(e.commitAt):NaN;return Number.isFinite(n)?`${t} · ${Pt(n)}`:t}function Pv(e,t){let n=e.version??t,r=Mv(e);return r?[n,r].filter(e=>!!e).join(` · `):n}function Fv(e,t){let n=e.commit?.slice(0,12)??null,r=e.builtAt?Date.parse(e.builtAt):NaN,i=Number.isFinite(r)?`${S(r,{day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:`UTC`})} UTC`:null,a=N(`aboutPage.unavailable`),o=N(`aboutPage.copyCommit`);return L`
    <div class="sidebar-hover-card__server-details">
      <div class="sidebar-hover-card__summary">
        ${e.version?`v${e.version}`:a}
      </div>
      <dl class="sidebar-hover-card__metadata">
        <div class="sidebar-hover-card__metadata-row">
          <dt>${N(`aboutPage.commit`)}</dt>
          <dd class="sidebar-hover-card__metadata-value--mono sidebar-build-hover-card__commit">
            <span>${n??a}</span>
            ${n?L`<button
                    type="button"
                    class="sidebar-build-hover-card__copy"
                    aria-label=${o}
                    @click=${e=>void jv(e,n,o)}
                  >
                    <span class="sidebar-build-hover-card__copy-idle" aria-hidden="true"
                      >${F.copy}</span
                    >
                    <span class="sidebar-build-hover-card__copy-done" aria-hidden="true"
                      >${F.check}</span
                    >
                  </button>`:null}
          </dd>
        </div>
        <div class="sidebar-hover-card__metadata-row">
          <dt>${N(`aboutPage.built`)}</dt>
          <dd>${i??a}</dd>
        </div>
        <div class="sidebar-hover-card__metadata-row">
          <dt>${N(`aboutPage.gateway`)}</dt>
          <dd>
            ${t?L`<span
                      class="sidebar-build-hover-card__gateway-state"
                      aria-hidden="true"
                    ></span
                    ><span class="sr-only">${N(`common.connected`)}</span>`:null}
            ${t??a}
          </dd>
        </div>
      </dl>
    </div>
  `}var Iv,Lv;function Rv(){return(Rv=e((()=>{R(),k(),Be(),Ae(),P(),Iv=14,Lv=1500})))()}function zv(){let e=window.__OPENCLAW_NATIVE_GATEWAYS__;return!e||!Array.isArray(e.gateways)?null:e.gateways.find(t=>t.id===e.currentId)??null}function Bv(e){let{activeId:t,agent:n,agents:r,identity:i}=e.activeChipAgent();if(!n)return Vv(e);let a=r.some(n=>{let r=G(n.id);return r!==t&&e.agentUnreadCount(r)>0}),o=Xe(n,i),s=e.sessionDataContext?.gateway,c=!!(s&&(s.snapshot.hello||s.connection.token.trim()||s.connection.password.trim()));return L`
    <openclaw-sidebar-agent-card
      .agentName=${o}
      .agentId=${t}
      .avatarUrl=${rt(n,i)}
      .avatarAuthReady=${c}
      .avatarText=${ot(n,i)}
      .environment=${e.sessionDataContext?.config?.current?.environment??null}
      .menuOpen=${e.sidebarMenus.agentMenuPosition!==null}
      .menuUnread=${a}
      .switcherAvailable=${r.length>1}
      .onToggleMenu=${t=>e.sidebarMenus.toggleAgentMenu(t)}
      .onMenuPointerMove=${(t,n)=>e.sidebarMenus.scheduleAgentMenuHoverOpen(t,n)}
      .onMenuPointerLeave=${()=>e.sidebarMenus.handleAgentMenuTriggerPointerLeave()}
      @contextmenu=${t=>{if(t.preventDefault(),e.sidebarMenus.agentMenuPosition!==null)return;let n=t.currentTarget,r=n.querySelector(`.sidebar-agent-card__main`)??n;e.sidebarMenus.toggleAgentMenu(r)}}
    ></openclaw-sidebar-agent-card>
  `}function Vv(e){let t=e.sessionDataContext?.theme.branding??br(),n=zv()?.name.trim()||t.brandName,r=e.sidebarMenus.agentMenuPosition!==null;return L`
    <div class="sidebar-workspace-header">
      <button
        type="button"
        class="sidebar-workspace-header__main"
        aria-haspopup="menu"
        aria-expanded=${String(r)}
        aria-label="${n} · ${N(`agentChip.workspaceMenuLabel`)}"
        @pointermove=${t=>{t.currentTarget instanceof HTMLElement&&e.sidebarMenus.scheduleAgentMenuHoverOpen(t.currentTarget,t)}}
        @pointerleave=${()=>e.sidebarMenus.handleAgentMenuTriggerPointerLeave()}
        @pointerdown=${e=>e.stopPropagation()}
        @click=${t=>{t.stopPropagation(),t.currentTarget instanceof HTMLElement&&e.sidebarMenus.toggleAgentMenu(t.currentTarget)}}
        @contextmenu=${t=>{t.preventDefault(),!r&&t.currentTarget instanceof HTMLElement&&e.sidebarMenus.toggleAgentMenu(t.currentTarget)}}
      >
        ${t.brandIcon===`claw`?L`<span class="sidebar-workspace-header__mark" aria-hidden="true"
                >${F.lobster}</span
              >`:L`<span
                class="sidebar-workspace-header__mark sidebar-workspace-header__mark--neutral"
                aria-hidden="true"
                >${ip(F.lobster,t)}</span
              >`}
        <span class="sidebar-agent-card__text">
          <span class="sidebar-agent-card__name">
            ${Oa(n,`sidebar-agent-card__name-text`,{loop:!0,delay:300,speed:35})}
            <span class="sidebar-agent-card__chevron" aria-hidden="true"
              >${F.chevronsUpDown}</span
            >
          </span>
          ${e.sessionDataContext?.config.current.environment?L`<span class="control-ui-environment-pill"
                  >${e.sessionDataContext.config.current.environment.label}</span
                >`:I}
        </span>
      </button>
    </div>
  `}function Hv(e,t=I){let n=e.readNewSessionAccess(),r=N(`nav.collapse`);return L`
    <div class="sidebar-brand">
      ${e.sidebarAgentsMode===`roster`?Vv(e):Bv(e)}
      <div class="sidebar-brand__actions">
        <openclaw-tooltip
          .content=${`${r} (${d(xe.toggleSidebar)})`}
          .contentTemplate=${mr(r,xe.toggleSidebar)}
        >
          <button
            type="button"
            class="sidebar-brand__icon sidebar-brand__header-control sidebar-brand__desktop-control sidebar-brand__collapse"
            aria-label=${r}
            aria-expanded="true"
            ?disabled=${!e.onToggleSidebar}
            @click=${()=>e.onToggleSidebar?.()}
          >
            ${F.panelLeftClose}
          </button>
        </openclaw-tooltip>
        <openclaw-tooltip
          .content=${`${N(`chat.openCommandPalette`)} (${d(xe.commandPalette)})`}
          .contentTemplate=${mr(N(`chat.openCommandPalette`),xe.commandPalette)}
        >
          <button
            type="button"
            class="sidebar-brand__icon sidebar-brand__header-control sidebar-brand__desktop-control sidebar-brand__search"
            aria-label=${N(`chat.openCommandPalette`)}
            ?disabled=${!e.onOpenPalette}
            @click=${()=>e.onOpenPalette?.()}
          >
            ${F.search}
          </button>
        </openclaw-tooltip>
        ${e.sidebarAgentsMode===`roster`?__(e,`sidebar-brand__icon sidebar-brand__header-control`):I}
        ${e.sidebarAgentsMode===`roster`?t:Un({basePath:e.basePath,agentId:e.expandedAgentId(),className:`sidebar-brand__icon sidebar-brand__header-control sidebar-brand__new-thread`,label:N(`agentChip.newConversation`),showShortcut:!0,disabledReason:n.allowed?void 0:n.reason,onOpen:(t,n)=>e.requestOpenNewSession(t,n)})}
      </div>
    </div>
  `}function Uv(e){if(e.sidebarAgentsMode===`roster`)return I;let t=e.expandedAgentId(),n=e.selectedAgentMainSessionKey(t),r=e.mainSessionRow(t),i=r?e.projectHomeSession(r,t):null,a=i?.attention??e.resolveSessionAttention({key:n,agentId:t}),o=Ev(a),s=e.storedOutboxes?.attentionCountForSession(n)??0,c=Wr(e.activeRouteId)&&j(e.getRouteSessionKey(),n),l=e.storedOutboxes?.hasSessionDraft(n)??!1,u=r?qo(r):!1,d=(i?.runningChildCount??0)>0,f=u||d,p=u&&r?.status===`queued`&&!d,m=(r?.unread===!0||(i?.unreadChildCount??0)>0)&&!c,h=f?N(d&&(!u||r?.status===`queued`)?`sessionsView.subagentsWorking`:p?`sessionsView.statusQueued`:`sessionsView.activeRun`):``,g=m?N(`sessionsView.unread`):``,_=o||h&&g?[o,h,g].filter(Boolean).join(` · `):``,v=Am({content:a.kind===`none`?L`<span class="nav-item__icon" aria-hidden="true">${F.home}</span>`:Cv(a),running:f,queued:p,runningLabel:h,badge:m&&!f?jm():I});return L`
    <a
      href=${Fe({face:w(r),sessionKey:n,fallbackAgentId:t,basePath:e.basePath,row:r??void 0,mainKey:Ft(n)?.rest,preferenceDerivedFace:!0}).href}
      class="nav-item nav-item--home ${c?`nav-item--active`:``}"
      aria-label=${_?`${N(`nav.home`)} · ${_}`:I}
      aria-current=${c?`page`:I}
      @click=${n=>{x(n)&&(n.preventDefault(),e.openMainSession(t))}}
    >
      ${v}
      <span class="nav-item__text">${N(`nav.home`)}</span>
      ${s>0||l?L`<span class="nav-item__state sidebar-home-session-states">
              ${Rm({outboxAttentionCount:s,hasComposerDraft:l})}
            </span>`:I}
    </a>
  `}function Wv(e,t){return L`
    <div class="sidebar-nav__lead">
      ${t}
      <span class="sidebar-recent-sessions__label-text sr-only">${N(`nav.pages`)}</span>
      <span class="sidebar-nav__head-slot">
        <button
          type="button"
          class="sidebar-nav__head-action"
          aria-haspopup="menu"
          aria-expanded=${String(e.sidebarMenus.moreMenuPosition!==null)}
          aria-label=${N(`nav.customize`)}
          @click=${t=>e.sidebarMenus.togglePositionedMenu(`more`,t.currentTarget)}
        >
          ${F.penLine}
        </button>
      </span>
    </div>
  `}function Gv(e){let t=e.connectionStatus,n=e.sessionDataContext?Vr(e.sessionDataContext.gateway).displayUser:null,r=n?.name??n?.email??N(`nav.owner`),i={id:`owner`,...n,name:r,watchedSessions:[]},a=zv(),o=Nv(Sn),s=a?.isPrimary?N(`nav.gateway.primaryTag`):null,c=N(`profilePage.identity.menuButtonLabel`,{name:r}),l=t?N(`connection.${t}`):null,u=l||(a?`${a.name}${s?`, ${s}`:``}`:o),f=l??(e.connected?N(`nav.gateway.connected`):``);return L`
    <div class="sidebar-footer-bar sidebar-footer-bar--one-action">
      <button
        type="button"
        class="sidebar-identity-card"
        aria-haspopup="menu"
        aria-expanded=${String(e.sidebarMenus.identityMenuPosition!==null)}
        aria-label=${u?`${c}: ${u}`:c}
        @click=${t=>e.sidebarMenus.toggleIdentityMenu(t.currentTarget)}
      >
        <openclaw-viewer-avatar .user=${i} variant="footer"></openclaw-viewer-avatar>
        <span class="sidebar-identity-card__text">
          ${Oa(r,`sidebar-identity-card__name`,{loop:!0,delay:300,speed:35})}
          ${t?Xn({kind:t,lastError:e.lastError,announce:!1}):a?L`<span class="sidebar-identity-card__gateway" aria-hidden="true">
                    <span class="sidebar-gateway-name">${a.name}</span>
                    ${s?L`<span class="sidebar-gateway-primary">${s}</span>`:I}
                  </span>`:I}
        </span>
      </button>
      <span class="sr-only" role="status" aria-live="polite" aria-atomic="true"
        >${f}</span
      >
      <span class="sidebar-footer-actions">
        ${Hr(e.sessionDataContext?.gateway)?L`<openclaw-tooltip
                .content=${`${N(`assistantPanel.toggle`)} (${d(xe.homePanel)})`}
                .contentTemplate=${mr(N(`assistantPanel.toggle`),xe.homePanel)}
                ><button
                  type="button"
                  class="sidebar-brand__icon sidebar-footer-bar__home"
                  aria-label=${N(`assistantPanel.toggle`)}
                  @click=${()=>window.dispatchEvent(new CustomEvent(Mr))}
                >
                  ${F.home}
                </button></openclaw-tooltip
              >`:I}
        <openclaw-sidebar-attention
          .activeRouteId=${e.activeRouteId}
          .onNavigate=${e.onNavigate}
          .watchUpdateProgress=${e.watchUpdateProgress}
        ></openclaw-sidebar-attention>
      </span>
    </div>
  `}function Kv(e,t,n,r,i){let a=mn(t),o=e.sessionOrganizer.sidebarZoneDropTarget?.entry===a?e.sessionOrganizer.sidebarZoneDropTarget.position:null,s=t.type===`plugin`?r.get(t.key):void 0,c=t.type===`route`?e.sidebarMenus.renderRoute(t.route):s?qv(e,s):t.type===`plugin`?L`<openclaw-plugin-contributions
              .kind=${`navigation`}
              .navigationKey=${t.key}
              .navigationMenus=${e.sidebarMenus}
            ></openclaw-plugin-contributions>`:n.has(t.key)?e.renderPinnedSidebarSession(n.get(t.key)):I,l=t.type===`route`||t.type===`plugin`,u=t.type===`route`?Zt(t.route):t.type===`session`?n.get(t.key)?.label??t.key:s?.label??e.pluginNavigation().find(e=>e.key===t.key)?.value.label??t.key;return L`
    <div
      class="sidebar-zone-entry ${o?`sidebar-zone-entry--drop-${o}`:``} ${e.sessionOrganizer.draggingSidebarEntry===a?`sidebar-zone-entry--dragging`:``}"
      data-sidebar-entry=${a}
      draggable=${l?`true`:`false`}
      @dragstart=${t.type===`route`?n=>e.sessionOrganizer.startSidebarRouteDrag(n,t.route):t.type===`plugin`?n=>e.sessionOrganizer.startSidebarPluginDrag(n,t.key):I}
      @dragend=${l?()=>e.sessionOrganizer.finishSidebarEntryDrag():I}
      @dragover=${t=>e.sessionOrganizer.handleSidebarZoneDragOver(t,a)}
      @drop=${t=>e.sessionOrganizer.handleSidebarZoneDrop(t,a)}
    >
      ${i?Wv(e,c):c}
      ${sm({label:u,kind:`entry`,onMove:async(t,n)=>{e.sessionOrganizer.writeSidebarEntryAt(a,t,n),e.requestUpdate(),await e.updateComplete}})}
    </div>
  `}function qv(e,t){let n={pluginId:t.pluginId,id:t.id},r=h(n),i=t.placement?.startsWith(`route:`)?t.placement.slice(6):``,a=Hn(i)?i:null;return a?e.sidebarMenus.renderRoute(a):l_({tab:t,basePath:e.basePath,active:e.activeRouteId===`plugin`&&e.activePluginTabId===r,onNavigate:t=>e.onNavigate?.(`plugin`,t)})}function Jv(){return(Jv=e((()=>{R(),qt(),cr(),er(),qn(),ur(),tr(),k(),_t(),At(),ua(),fe(),je(),A(),Se(),m_(),x_(),Pr(),P(),Lr(),pr(),Br(),Av(),Nm(),zm(),Rv(),cm(),op()})))()}function Yv(){ey??=W(()=>import(`./channel-avatar-BGPmiYTL.js`),__vite__mapDeps([14,0,15,1,2,16,17,18,19,8,20,3,4,5,10,21,22]),import.meta.url)}function Xv(e){let t=jh(e);return t?L`<span class="session-glyph__icon" aria-hidden="true">${t}</span>`:L`<span class="session-glyph__emoji" aria-hidden="true">${e}</span>`}function Zv(e){return[!e.isChild&&e.forkSource?N(`sessionsView.forkedSession`):``,(e.hasActiveRun||e.runningChildCount>0)&&e.unread?N(`sessionsView.unread`):``].filter(Boolean).join(` · `)}function Qv(e,t,n,r,i,a=!1,o,s){let{participants:c,participantCount:l}=e,u=!a&&e.runningChildCount>0,d=e.hasActiveRun||u,f=e.hasActiveRun&&e.status===`queued`,p={runVisibility:s,running:d&&!a&&e.attention.kind!==`question`,queued:f&&!u,runningLabel:u&&(!e.hasActiveRun||f)?N(`sessionsView.subagentsWorking`):void 0},m=e.attention.kind!==`none`&&!a?Cv(e.attention):o??(e.icon?Xv(e.icon):I);if(m!==I)return{running:d,leadingIndicator:Am({content:m,...p,badge:e.unread&&!d&&!a?jm():I})};if(e.isChild&&!a)return e.channelAvatarUrl?(Yv(),{running:d,leadingIndicator:Am({content:L`<openclaw-channel-avatar
            .routeUrl=${e.channelAvatarUrl}
            .authTokens=${i?.authTokens??[]}
            .authReady=${i?.authReady??!1}
          ></openclaw-channel-avatar>`,...p,circular:!0,badge:e.unread&&!d?jm():I})}):{running:d,leadingIndicator:d?Am({content:I,...p}):Ov(e)};let h=t?.id?.trim()?fg(t,`row`,n,r,c,l):void 0;if(e.channelAvatarUrl)return Yv(),{running:d,leadingIndicator:Am({content:L`<openclaw-channel-avatar
          .routeUrl=${e.channelAvatarUrl}
          .authTokens=${i?.authTokens??[]}
          .authReady=${i?.authReady??!1}
          .fallback=${h??I}
        ></openclaw-channel-avatar>`,...p,badge:e.unread&&!d&&!a?jm():I,circular:!0})};if(h){let n=l??c?.length??0,r=[t?.identity,n===1?c?.[0]?.identity:void 0].filter(e=>e!==void 0),i=$v.get(e),o=i?.length===r.length&&r.every((e,t)=>e===i[t])?i:r.length?r:sg;return $v.set(e,o),{running:d,leadingIndicator:Am({content:h,...p,badge:e.unread&&!d&&!a?jm():I,circular:!0,ring:n>0?`pair`:`circle`}),renderedIdentities:o}}return{running:d,leadingIndicator:p.running?Am({content:I,...p}):e.unread&&!a?Ov(e):I}}var $v,ey;function ty(){return(ty=e((()=>{R(),k(),Av(),Nm(),Nh(),_g(),ug(),Go(),$v=new WeakMap})))()}function ny(e){let{session:t}=e;if(t.attention.kind===`question`||t.attention.kind===`error`)return{subtitle:void 0,narration:void 0};let n=wv(t.attention),r=t.hasActiveRun,i=t.activeRunIds??[],a=e=>!!(e?.runId&&i.includes(e.runId)),o=a(e.observerDigest)?e.observerDigest:void 0,s=a(t.observerDigest)?t.observerDigest:void 0,c=r?Ac(o,s):Ac(e.observerDigest,t.observerDigest),l=!!(c&&(c.health===`done`||c.health===`failed`)&&(t.lastReadAt??0)<c.updatedAt),u=r||l?c?.headline:void 0;if(!e.showPreview){let e=Qs(c?.health)?u:void 0;return{subtitle:n??e,narration:void 0}}let d=t.agentStatusNote||void 0;if(r&&e.sidebarLiveActivity&&e.toolActivity?.text&&!n&&!d&&!Qs(c?.health)){let{name:t,text:n}=e.toolActivity;return{subtitle:n,narration:void 0,toolName:t}}let f=n||d||u||!e.sidebarLiveActivity||!r?void 0:e.narrationLine,p=!e.hasDisplay&&t.subtitle&&t.workSession&&t.subtitle!==t.label?t.subtitle:void 0,m=!r&&!e.hasDisplay&&t.lastMessagePreview?.trim()||void 0;return{subtitle:n??d??u??f??m??p,narration:f}}function ry(e){if(!e.subtitle)return I;let t=e.toolName?`${N(`chat.toolCards.tool`)}: ${e.toolName}`:void 0,n=e.toolName?L`<openclaw-tooltip .content=${t} .describe=${!1}
        ><span class="sidebar-session-tool" role="img" aria-label=${t}
          >${F[la(e.toolName)]}</span
        ></openclaw-tooltip
      >`:I,r=e.narration?di(e.narration,L`<span
          class="sidebar-recent-session__subtitle sidebar-recent-session__subtitle--narration"
          >${e.subtitle}</span
        >`):L`<span class="sidebar-recent-session__subtitle">${e.subtitle}</span>`;return L`${n}${r}`}function iy(){return(iy=e((()=>{R(),ai(),k(),Sa(),P(),Av()})))()}var ay;function oy(){return(oy=e((()=>{O(),Hc(),ay=class extends o{constructor(...e){super(...e),this.polling=new _l(this,1e3,()=>this.requestUpdate(),!1,`visible`)}connectedCallback(){super.connectedCallback(),this.syncTimer()}updated(){this.syncTimer()}syncTimer(){this.isConnected&&this.ticking?this.polling.start():this.polling.stop()}shouldUpdate(e){let t=this.currentLabel(),n=t!==this.label;return this.label=t,!this.hasUpdated||e.size>0||n}}})))()}var sy;function cy(){return(cy=e((()=>{R(),B(),eo(),oy(),sy=class extends ay{constructor(...e){super(...e),this.startMs=null,this.endMs=null,this.minimumUnit=`second`,this.singleUnit=!1}get ticking(){return this.startMs!=null&&this.endMs==null}currentLabel(){let e=this.startMs;if(e==null)return;let t=this.endMs??Date.now(),n=this.minimumUnit===`minute`?6e4:1e3,r=Math.max(n,t-e);return this.singleUnit?ha(r):fa(this.minimumUnit===`minute`?Math.floor(r/6e4)*6e4:r)}render(){return this.label===void 0?I:L`${this.label}`}},U([V({type:Number})],sy.prototype,`startMs`,void 0),U([V({type:Number})],sy.prototype,`endMs`,void 0),U([V({type:String})],sy.prototype,`minimumUnit`,void 0),U([V({type:Boolean})],sy.prototype,`singleUnit`,void 0),customElements.get(`openclaw-elapsed-time`)||customElements.define(`openclaw-elapsed-time`,sy)})))()}function ly(e){return e.fullyShown?e.session.children:e.session.children.filter((e,t)=>t<my||C_(e))}function uy(e,t,n,r,i){let a=e.sidebarAgentsMode===`roster`,o=t.ownAttention??t.attention,s=e.isSessionChildrenExpanded(t),c=t.pullRequest??n?.pullRequest,l=t.worktreeId?e.sessionPullRequests.summary(t.key,t.worktreeId,c):c,u=e.sessionsStatusFilter===`archived`?`archived`:t.owner?.assignedAt===void 0?`created`:`owned`,d=e.sessionOwnershipVisibility.avatars?e.sessionsStatusFilter===`archived`?t.archivedBy:t.owner?.actor:void 0,f=d?.identity?.type===`profile`?Qc(e.sessionData.presencePayload).users.some(e=>ol(e,d.identity)&&e.watchedSessions.includes(t.key)):void 0,p=e.sessionsGrouping===`person`&&!t.pinned&&u!==`archived`,m=e.sessionDataContext?.gateway.snapshot.selfUser,h=m?.identity?.id??m?.id,g=u!==`archived`&&d?.identity?.type===`profile`&&d.identity.id===h&&(e.sessionInvolvingMeFilterActive||e.sessionOwnerFilterId===d.id)&&(t.participantCount??t.participants?.length??0)===0||!a&&p&&f!==!0?void 0:d,_=e.sessionDataContext?.gateway,v=Rr({hello:_?.snapshot.hello,settings:_?.connection,password:_?.connection.password}),y=Um(),b=i??[[t],!s,t.childSessionKeys.length,0,y],{running:x,leadingIndicator:S,renderedIdentities:C}=Qv(t,g,u,f,v,a,r,y),w=Zv(t),ee=!t.isChild&&(e.sessionsStatusFilter===`snoozed`||e.sessionsStatusFilter===`all`)&&cc(t,Date.now()),te=ee||t.isChild&&(t.runtimeMs!=null||t.startedAt!=null),ne=te?T_(t.key):void 0,re=!a&&w?E_(t.key):void 0,T=L`<span class="sidebar-session-indicator"
    >${S}
    ${t.visibility===`draft`?L`<span class="session-row-draft-indicator" title=${N(`chat.sessionSharing.draft`)}
            >👻</span
          >`:I}</span
  >`,E=L`${t.archived?L`<span class="sidebar-session__archive-glyph" role="img" aria-label=${N(`sessionsView.archived`)} title=${N(`sessionsView.archived`)}>${F.archive}</span>`:I}${t.forkSource?L`<span class="sidebar-session-fork-indicator" aria-hidden=${a||t.isChild?I:`true`} role="img" aria-label=${N(`sessionsView.forkedSession`)}>${F.gitFork}</span>`:I}`,D=te?L`<span class="session-row-trail" id=${ne}
        >${ee?N(`sessionsView.snoozeWakes`,{time:xc(t.snoozedUntil)}):t.runtimeMs==null?L`<openclaw-elapsed-time
                  .startMs=${t.startedAt}
                  .endMs=${t.endedAt??null}
                ></openclaw-elapsed-time>`:t.hasActiveRun?L`<openclaw-elapsed-time
                    .startMs=${t.runtimeSampledAt-t.runtimeMs}
                  ></openclaw-elapsed-time>`:fa(t.runtimeMs)??`0ms`}</span
      >`:I;return{running:x,stateId:re,metaId:ne,pullRequest:l,persistentIndicator:T,originIndicators:E,childrenExpanded:s,content:L` <span class="sidebar-recent-session__details-endcap">
      ${i&&(S!==I||t.visibility===`draft`)?T:I}
      <openclaw-viewer-facepile
        .presencePayload=${e.sessionData.presencePayload}
        .selfUser=${e.sessionDataContext?.gateway.snapshot.selfUser}
        .selfInstanceId=${e.sessionData.presenceInstanceId}
        .sessionKey=${t.key}
        .excludeIdentities=${C??sg}
        .maxVisible=${3}
        variant="session"
      ></openclaw-viewer-facepile>
      ${a?E:I}
      ${a&&(t.workSession||t.acpSession)&&!t.workspaceKind&&!l?L`<span class="session-row-badge" role="img" aria-label=${N(`chat.sidebar.coding`)} title=${t.subtitle??N(`chat.sidebar.coding`)}>${F.terminal}</span>`:I}
      ${a&&t.hasAutomation?L`<span class="session-row-badge" role="img" aria-label=${N(`tabs.cron`)} title=${N(`tabs.cron`)}>${F.clock}</span>`:I}
      ${Rm({isChild:t.isChild,incognito:t.incognito,placementState:t.placementState,placementProviderId:t.placementProviderId,placementProfileId:t.placementProfileId,placementMachine:t.placementMachine,diskSpaceStatus:t.diskSpaceStatus,workspaceConflictCount:t.workspaceConflictCount,outboxAttentionCount:t.outboxAttentionCount,hasComposerDraft:t.hasComposerDraft===!0,pullRequest:l,hasApproval:o.kind===`question`?o.requests.some(e=>e.kind===`approval`):!a&&o.kind===`approval`})}
      ${a?D:I} ${a?kv(...b):I}
      ${!a&&w?L`<span class="sr-only" id=${re} aria-hidden="true">${w}</span>`:I}
      ${a?I:D}
    </span>`}}function dy(e){let{host:t,session:n,display:r,listItem:i=!0,icon:a}=e,o=t.readSessionMutationAccess({method:`sessions.patch`,params:{key:n.key,pinned:!n.pinned},sessionScope:!0,session:n}),s=t.readSessionMutationAccess({method:`sessions.patch`,params:{key:n.key,archived:!n.archived},sessionScope:!0,session:n}),c=n.archived||be(n,we({agentsList:t.sessionDataContext?.agents.state.agentsList,hello:t.sessionDataContext?.gateway.snapshot.hello})),l=t.sessionDataContext?.sessions.archiveVisibility(n.key)===`pending`,u=t.sidebarAgentsMode===`roster`,d=n.ownAttention??n.attention,f=n.label,p=!u&&t.sessionsShowPreview&&n.hasActiveRun&&t.sidebarLiveActivity?t.sidebarTools.get(n.key):void 0,{subtitle:m,narration:h,toolName:g}=t.sessionProjection.resolveSubtitle({session:n,hasDisplay:r!==void 0,sidebarLiveActivity:t.sidebarLiveActivity,showPreview:t.sessionsShowPreview,narrationLine:t.sidebarNarrationLines.get(n.key),toolActivity:p,observerDigest:t.sidebarObserverDigests.get(n.key)??null}),_=uy(t,n,r,a),{running:v,stateId:y,metaId:b,pullRequest:x,persistentIndicator:S,childrenExpanded:C}=_,w=e=>ta(e,e.currentTarget.querySelector(`.sidebar-recent-session__link`),(e,i,a)=>{if(r?.catalogMenu){t.sidebarMenus.catalogMenu.open(r.catalogMenu,i,a,e??void 0);return}t.sidebarMenus.openSessionMenu(n,i,a,e)}),ee=N(n.pinned?`sessionsView.unpinSession`:`sessionsView.pinSession`),te=N(n.archived?`sessionsView.restoreSession`:`sessionsView.archiveSession`),ne=r?.catalogMenu?t.sidebarMenus.catalogMenu.isOpenFor(r.catalogMenu.key):t.sidebarMenus.sessionMenu?.session.key===n.key,re=Vi(n.color??``),T=[`sidebar-recent-session`,`session-row-host`,u?`sidebar-recent-session--team`:``,re?`sidebar-recent-session--colored`:``,n.isChild?`sidebar-recent-session--child`:``,u||!m&&!n.channelPresentation?`sidebar-recent-session--single-line`:``,n.archived?`sidebar-session--archived`:``,n.visuallyActive?`sidebar-recent-session--active`:``,t.selectedSessionKeys.has(n.key)?`sidebar-recent-session--selected`:``,n.pinned?`session-row-host--pinned`:``,v?`session-row-host--running`:``,n.visibility===`draft`?`session-row-host--draft`:``,n.visibility===`draft`?n.draftOwnedBySelf?`session-row-host--draft-owner`:`session-row-host--draft-other`:``,(u?d:n.attention).kind===`error`?`sidebar-recent-session--attention-danger`:(u?d:n.attention).kind!==`none`&&(u?d:n.attention).kind!==`question`?`sidebar-recent-session--attention-amber`:``,t.sessionOrganizer.draggingSessionKey===n.key?`sidebar-recent-session--dragging`:``].filter(Boolean).join(` `),E=t.readSessionMutationAccess({method:`sessions.groups.put`,requiredScope:`operator.write`}),D=!n.isChild&&E.allowed,ie=Oa(L`${u?I:_.originIndicators}${f}`,`sidebar-recent-session__name`),ae=r?di(JSON.stringify([f,n.archived===!0,n.forkSource!==void 0,x]),ie):ie,oe=L`
    <div
      ${r?.rowRef?ui(r.rowRef):I}
      class=${T}
      style=${re?`--session-color: var(--session-color-${re})`:I}
      data-session-key=${n.key}
      data-catalog-session-key=${r?.catalogIdentityKey??I}
      role=${yi(i?`listitem`:void 0)}
      draggable=${D?`true`:`false`}
      @dragstart=${D?e=>{e.dataTransfer&&(Sc(e.dataTransfer,n.key),t.sessionOrganizer.startSessionDrag(n))}:I}
      @dragend=${D?()=>{t.sessionOrganizer.finishSessionDrag()}:I}
      @contextmenu=${w}
      @keydown=${w}
    >
      <a
        href=${t.sidebarSessionHref(n)}
        class="sidebar-recent-session__link"
        draggable="false"
        aria-current=${n.visuallyActive?`page`:I}
        aria-describedby=${[y,b].filter(Boolean).join(` `)||I}
        @click=${e=>t.handleSessionRowClick(e,n)}
      >
        ${S}
        <span class="sidebar-recent-session__text">
          <span class="sidebar-recent-session__title-row">${ae}</span>
          <span class="sidebar-recent-session__details">
            ${n.channelPresentation?L`<span class="sidebar-recent-session__channel">
                    <span class="sr-only"
                      >${N(`sessionHovercard.linkedChannel`,{channel:n.channelPresentation.channelLabel})}</span
                    >
                    <span aria-hidden="true">${n.channelPresentation.channelLabel}</span>
                  </span>`:I}
            ${u?I:ry({subtitle:m,narration:h,toolName:g})}
            ${_.content}
          </span>
        </span>
      </a>
      ${n.childSessionKeys.length>0?L`<button
              class="sidebar-child-session-toggle ${!u&&n.runningChildCount>0?`sidebar-child-session-toggle--running`:!u&&n.failedChildCount>0?`sidebar-child-session-toggle--failed`:``}"
              type="button"
              data-child-session-toggle=${n.key}
              aria-expanded=${String(C)}
              aria-label=${N(C?`sessionsView.hideChildSessions`:`sessionsView.showChildSessions`,{count:String(n.childSessionKeys.length),session:f})}
              aria-description=${!u&&!C&&n.runningChildCount>0?N(`sessionsView.activeRun`):I}
              @click=${()=>t.toggleSessionChildren(n)}
            >
              <span class="sidebar-child-session-toggle__icon" aria-hidden="true"
                >${C?F.chevronDown:F.chevronRight}</span
              >
              ${C||u?I:L`<span class="sidebar-child-session-toggle__count"
                      >${n.childSessionKeys.length}</span
                    >`}
            </button>`:I}
      <span class="sidebar-recent-session__aside session-row-aside">
        <span class="session-row-actions">
          ${n.pinnable?L`<button
                  class="session-action session-action--pin"
                  data-sidebar-session-pin="true"
                  type="button"
                  title=${o.allowed?ee:o.reason}
                  aria-label=${ee}
                  ?disabled=${!o.allowed}
                  @click=${()=>t.toggleSessionPin(n)}
                >
                  ${F.pin}
                </button>`:I}
          <openclaw-tooltip
            .content=${s.allowed?te:s.reason}
            .describe=${!1}
          >
            <button
              class="session-action"
              data-sidebar-session-archive="true"
              type="button"
              aria-label=${`${te}: ${f}`}
              ?disabled=${!s.allowed||!c||l}
              @click=${e=>{e.stopPropagation(),n.archived?t.sessionOrganizer.patchSession(n,{archived:!1},{sessionScope:!0}):t.sessionOrganizer.archiveSessionWithUndo(n)}}
            >
              ${n.archived?F.archiveRestore:F.archive}
            </button>
          </openclaw-tooltip>
          <button
            class="session-action session-action--touch-menu"
            data-sidebar-session-menu="true"
            type="button"
            title=${N(`chat.sidebar.openSessionMenu`)}
            aria-label=${`${N(`chat.sidebar.openSessionMenu`)}: ${f}`}
            aria-haspopup="menu"
            aria-expanded=${String(ne)}
            @click=${e=>{e.stopPropagation(),t.toggleSessionMenu(n,e.currentTarget,r?.catalogMenu)}}
          >
            ${F.moreHorizontal}
          </button>
        </span>
      </span>
    </div>
  `;return di(n.key,oe)}function fy(e,t){let n=e.sessionData.childSessionErrorsByParent.get(t);return n?L`<div
    class="sidebar-session-error callout danger"
    data-child-session-error=${t}
    role="alert"
  >
    <span>${n}</span>
    <button
      class="sidebar-session-tree__show-more"
      type="button"
      data-retry-child-sessions=${t}
      @click=${()=>e.sessionData.retryChildSessions(t)}
    >
      ${N(`common.retry`)}
    </button>
  </div>`:I}function py(e){let{host:t,session:n,listItem:r=!0,icon:i}=e,a=t.isSessionChildrenExpanded(n),o=ly({session:n,fullyShown:t.isSessionChildrenFullyShown(n.key)}),s=n.children.length-o.length;return L`<div
    class="sidebar-session-tree"
    data-session-tree=${n.key}
    role=${yi(r?`listitem`:void 0)}
  >
    ${dy({host:t,session:n,listItem:!1,icon:i})}
    ${a?L`<div class="sidebar-session-tree__children">
            ${o.length>0?L`<div
                    class="sidebar-session-tree__list"
                    role=${yi(r?`list`:void 0)}
                    aria-label=${yi(r?N(`sessionsView.childSessions`):void 0)}
                  >
                    ${pi(o,e=>e.key,e=>py({host:t,session:e,listItem:r}))}
                  </div>`:I}
            ${s>0?L`<button
                    class="sidebar-session-tree__show-more"
                    type="button"
                    data-show-more-children=${n.key}
                    aria-label=${N(`sessionsView.showMoreChildren`,{count:String(s)})}
                    @click=${()=>t.showMoreChildren(n.key)}
                  >
                    ${N(`sessionsView.showMoreChildren`,{count:String(s)})}
                  </button>`:I}
            ${(n.childLoadParentKeys??[n.key]).map(e=>fy(t,e))}
            ${n.loadingChildren&&n.children.length===0?L`<span
                    class="sidebar-session-tree__loading skeleton skeleton-line skeleton-line--medium"
                    role="status"
                    aria-busy="true"
                    aria-label=${N(`common.loading`)}
                  ></span>`:I}
          </div>`:I}
  </div>`}var my;function hy(){return(hy=e((()=>{R(),ii(),ai(),$r(),vi(),bi(),Bn(),k(),eo(),ua(),Aa(),yl(),oc(),A(),ic(),J(),P(),Av(),ty(),zm(),iy(),Wm(),ug(),cy(),an(),my=4})))()}function gy(e,t){return t.size===0?e:e.map(e=>({...e,hosts:e.hosts.map(r=>({...r,sessions:r.sessions.filter(i=>!t.has(n({catalogId:e.id,hostId:r.hostId,threadId:i.threadId})))}))}))}function _y(){return{code:`PAGINATION_FAILED`,message:N(`chat.sidebar.catalogPaginationFailed`)}}function vy(){return{code:`PAGINATION_FAILED`,message:N(`chat.sidebar.catalogPageMissingHost`)}}function yy(e){return{code:e instanceof rr?e.gatewayCode:`UNAVAILABLE`,message:M(e)}}function by(e,t){let n=new Set(e.map(e=>e.threadId));return[...e,...t.filter(e=>!n.has(e.threadId))]}function xy(e){return e.error!==void 0&&e.error.code!==`DISCOVERY_TRUNCATED`}function Sy(e,t){if(!t)return e;let{sessions:n,nextCursor:r,...i}=e,{nextCursor:a,pending:o,...s}=t;return{...s,...i,...a===void 0?{}:{nextCursor:a}}}function Cy(e){let{page:t}=e;if(!t)return{catalog:{...e.current,error:vy()},advancedHostIds:[],repeatedHostIds:[]};let n=new Map(t.hosts.map(e=>[e.hostId,e])),r=[],i=[],a=e.current.hosts.map(a=>{let o=e.cursors[a.hostId],s=n.get(a.hostId);if(t.error||o===void 0||a.nextCursor!==o)return a;if(!s)return{...a,error:vy()};if(xy(s))return Sy(s,a);let{nextCursor:c,sessions:l,...u}=s,d=c===o||c!==void 0&&e.previousCursors?.get(a.hostId)?.has(c);d?i.push(a.hostId):r.push(a.hostId);let{nextCursor:f,error:p,pending:m,...h}=a;return{...h,...u,sessions:by(a.sessions,l),...c?{nextCursor:c}:{},...d?{error:_y()}:{}}}),{hosts:o,error:s,...c}=e.current,{hosts:l,error:u,...d}=t;return{catalog:{...c,...d,hosts:a,...u?{error:u}:{}},advancedHostIds:r,repeatedHostIds:i}}async function wy(e){let t=new Map(e.previousCatalogs.map(e=>[e.id,e]));return Promise.all(e.catalogs.map(async n=>{let r=new Map(t.get(n.id)?.hosts.map(e=>[e.hostId,e])??[]),i=await Promise.all(n.hosts.map(async t=>{let i=e.pageDepths.get(Q_(n.id,t.hostId))??0;if(i===0||t.pending)return t;let a=r.get(t.hostId);if(xy(t)||n.error)return Sy({...t,error:t.error??n.error},a);let o=t.sessions,s=t.nextCursor,c=t.error,l=e=>Sy({...t,error:e},a??{...t,sessions:o,nextCursor:s}),u=new Set;for(let r=0;r<i&&s;r+=1){if(!e.canRequestPage())return Sy(t,a);u.add(s);let r;try{r=await e.client.request(`sessions.catalog.list`,{agentId:e.agentId,catalogId:n.id,hostIds:[t.hostId],cursors:{[t.hostId]:s}})}catch(e){return l(yy(e))}if(!e.isCurrent())return a??t;let i=r.catalogs.find(e=>e.id===n.id),d=i?.hosts.find(e=>e.hostId===t.hostId);if(i?.error)return l(i.error);if(!d)return l(vy());if(xy(d))return Sy({...t,...d},a??t);if(o=by(o,d.sessions),s=d.nextCursor,c=d.error,s&&u.has(s))return l(_y())}let{nextCursor:d,sessions:f,error:p,...m}=t;return{...m,sessions:o,...s?{nextCursor:s}:{},...c?{error:c}:{}}}));return{...n,hosts:i}}))}function Ty(){return(Ty=e((()=>{Kt(),k(),Nt(),xt(),J()})))()}function Ey(e,t){return!t||!e?.client||!Yi(e,`sessions.catalog.list`,`operator.read`)?null:e.client}function Dy(e){let t=ls(e),n=ls(t?.catalog),r=Array.isArray(n?.hosts)?n.hosts:[],i=ls(r[0]);return!!(t&&n&&i&&typeof t.progressId==`string`&&t.progressId.length>0&&typeof t.agentId==`string`&&t.agentId.length>0&&typeof n.id==`string`&&typeof n.label==`string`&&n.capabilities!==null&&typeof n.capabilities==`object`&&r.length===1&&typeof i.hostId==`string`&&Array.isArray(i.sessions))}async function Oy(e){let{live:t,client:n,generation:r,revision:i}=e;if(t.requestGeneration===r)return;if(t.retryDelayMs>0){t.schedule(t.retryDelayMs,e.connected(),()=>void e.refresh());return}let{progressId:a,progressSequence:o,requestOwner:s}=t.beginRequest(r),c=null,l=null,u=()=>t.ownsRequest(s)&&r===e.currentGeneration()&&n===e.currentClient(),d=()=>u()&&i===e.currentRevision();try{let r=await n.request(`sessions.catalog.list`,{agentId:e.agentId,limitPerHost:40,progressId:a,allowPartialResults:!0});if(!u()||!r?.catalogs)return;c=t.beginRefetch(e.pageDepths.size>0);let i=e.catalogs(),s=await wy({catalogs:t.mergeFinal(r.catalogs,i),previousCatalogs:i,client:n,agentId:e.agentId,pageDepths:e.pageDepths,isCurrent:d,canRequestPage:()=>d()&&document.visibilityState!==`hidden`});if(!d())return;t.resetRetry(),e.applyFinal(s,new Set([...e.catalogs(),...s].map(e=>e.id))),t.markFinal({catalogs:s,progressSequence:o}),t.endRefetch(c),c=null,await e.continueRefresh()}catch(n){d()&&(l=t.retryRequest(n),t.startupPending?e.applyError(n):l===null&&(t.warnRequestError(n),e.applyError(n)))}finally{t.endRefetch(c);let n=t.ownsRequest(s);if(n&&(t.requestGeneration=null),n&&u()&&e.connected()){let n=t.refreshPending;t.refreshPending=!1;let r=l??(e.catalogChangedEvents?ky:Ay);t.schedule(r,e.connected(),()=>{e.refresh()}),n&&l===null&&t.scheduleActivation(e.refresh)}}}var ky,Ay,jy,My;function Ny(){return(Ny=e((()=>{Kt(),Nt(),_(),Zi(),Mt(),A(),go(),Ty(),J(),ky=6e5,Ay=3e4,jy=3,My=class{constructor(){this.refreshScope={},this.timer=null,this.requestGeneration=null,this.refreshPending=!1,this.discoveryPages=new Map,this.activationRefresh=null,this.eventRefresh=c({active:!0,refresh:async()=>{let e=this.activationRefresh;this.activationRefresh=null,await e?.()}}),this.refetchOwner=null,this.progressSequence=0,this.progressSequences=new Map,this.hostProgressSequences=new Map,this.knownHostKeys=new Set,this.requestChangedHostKeys=new Set,this.warnedRequestErrors=new Set,this.requestOwner=null,this.retryAttempts=0,this.retryAt=0,this.startupPending=!1}get retryDelayMs(){return Math.max(0,this.retryAt-Date.now())}resetRetry(){this.retryAttempts=0,this.retryAt=0,this.startupPending=!1}retryRequest(e){if(this.startupPending=re(e),this.startupPending){let t=Ve(e,this.retryAttempts++);return this.retryAt=Date.now()+t,t}if(!(e instanceof rr)||!e.retryable||Ct(e,null)||this.retryAttempts>=jy)return this.resetRetry(),null;let t=typeof e.retryAfterMs==`number`&&Number.isFinite(e.retryAfterMs)?e.retryAfterMs:0,n=Math.max(t,1e3*2**this.retryAttempts++);return this.retryAt=Date.now()+n,n}cancelTimer(){let e=this.timer;e!==null&&(globalThis.clearTimeout(e),this.timer=null)}clear(){this.refreshScope={},this.cancelScheduledRefreshes(),this.resetRetry(),this.requestGeneration=null,this.requestOwner=null,this.progressSequence=0,this.progressSequences.clear(),this.hostProgressSequences.clear(),this.knownHostKeys.clear(),this.requestChangedHostKeys.clear(),this.refreshPending=!1,this.discoveryPages.clear(),this.refetchOwner=null}resumeDiscovery(e){let t=new Set,n=e.map(e=>({...e,hosts:e.hosts.map(n=>{let r=Q_(e.id,n.hostId);t.add(r);let i=this.discoveryPages.get(r);return!i||n.pending||n.error||e.error?n:n.sessions.length>0||n.nextCursor!==i.headCursor?(this.discoveryPages.delete(r),n):{...n,nextCursor:i.nextCursor}})}));for(let e of this.discoveryPages.keys())t.has(e)||this.discoveryPages.delete(e);return n}mergeFinal(e,t){let n=new Map(t.flatMap(e=>e.hosts.map(t=>[Q_(e.id,t.hostId),t])));return e.map(e=>({...e,hosts:e.hosts.map(t=>{let r=Q_(e.id,t.hostId),i=n.get(r);return t.pending?this.requestChangedHostKeys.has(r)&&i&&!i.pending?i:Sy(t,i):t.error&&this.requestChangedHostKeys.has(r)&&i&&!i.error?i:t})}))}get refetching(){return this.refetchOwner!==null}get hasRequested(){return this.progressSequence>0}beginRefetch(e){if(!e)return null;let t=Symbol(`session-catalog-refetch`);return this.refetchOwner=t,t}endRefetch(e){e!==null&&this.refetchOwner===e&&(this.refetchOwner=null)}beginRequest(e){this.eventRefresh.absorb(),this.activationRefresh=null,this.requestGeneration=e;let t=Symbol(`session-catalog-request`);this.requestOwner=t,this.requestChangedHostKeys.clear();let n=Vo(),r=++this.progressSequence;return this.progressSequences.set(n,r),_o(this.progressSequences,8),{progressId:n,progressSequence:r,requestOwner:t}}ownsRequest(e){return this.requestOwner===e}warnRequestError(e){let t=`${e instanceof rr?e.gatewayCode:`UNAVAILABLE`}\u0000${M(e)}`;this.warnedRequestErrors.has(t)||(this.warnedRequestErrors.add(t),console.warn(`Session catalog refresh failed`,e))}markFinal(e){let t=new Set;for(let n of e.catalogs)for(let r of n.hosts){let i=Q_(n.id,r.hostId);t.add(i),!r.error&&this.hostProgressSequences.set(i,Math.max(this.hostProgressSequences.get(i)??-1,e.progressSequence))}for(let n of this.knownHostKeys)t.has(n)||this.hostProgressSequences.set(n,e.progressSequence);this.knownHostKeys=t}applyHost(e){if(!Dy(e.payload))return null;let t=e.payload;if(G(t.agentId)!==G(e.agentId))return null;let n=this.progressSequences.get(t.progressId),r=t.catalog.hosts[0];if(n===void 0||!r)return null;let i=Q_(t.catalog.id,r.hostId);if(n<(this.hostProgressSequences.get(i)??-1))return null;this.hostProgressSequences.set(i,n),this.requestGeneration!==null&&this.requestChangedHostKeys.add(i);let a=e.catalogs.find(e=>e.id===t.catalog.id),o,s;if(!a)s={...t.catalog,hosts:[r]},o=[...e.catalogs,s].toSorted((e,t)=>e.id.localeCompare(t.id));else{let n=a.hosts.find(e=>e.hostId===r.hostId),c=this.discoveryPages.get(i);c&&!r.pending&&!r.error&&(r.sessions.length>0||r.nextCursor!==c.headCursor)&&this.discoveryPages.delete(i);let l=r.pending||(e.pageDepths.get(i)??0)>0||this.discoveryPages.has(i)?Sy(r,n):r,u=n?a.hosts.map(e=>e.hostId===r.hostId?l:e):[...a.hosts,l];s={...t.catalog,hosts:u.toSorted((e,t)=>e.label.localeCompare(t.label))},o=e.catalogs.map(e=>e.id===t.catalog.id?s:e)}let c=a?.hosts.find(e=>e.hostId===r.hostId),l=s.hosts.find(e=>e.hostId===r.hostId);return a!==void 0&&a.label===s.label&&JSON.stringify(a.capabilities)===JSON.stringify(s.capabilities)&&JSON.stringify(a.error)===JSON.stringify(s.error)&&JSON.stringify(c)===JSON.stringify(l)?null:{catalogs:o,catalogId:t.catalog.id}}schedule(e,t,n){document.visibilityState!==`hidden`&&t&&(this.cancelTimer(),this.timer=globalThis.setTimeout(()=>{this.timer=null,n()},e))}async requestRefresh(e){e.visible&&e.connected&&(this.cancelTimer(),this.requestGeneration===e.generation&&(this.refreshPending=!0),await e.refresh())}cancelActivation(){this.eventRefresh.reset(),this.activationRefresh=null}cancelScheduledRefreshes(){this.cancelTimer(),this.cancelActivation()}scheduleActivation(e){this.activationRefresh=e,this.eventRefresh.schedule()}}})))()}function Py(){return{error:null,hasLoaded:!1,stale:!1,awaitingGateway:!1}}function Fy(e,t){return{...e,error:t?.clearError===!1?e.error:null}}function Iy(){return{error:null,hasLoaded:!0,stale:!1,awaitingGateway:!1}}function Ly(e,t,n){let r=Ct(t,n);return{error:r?null:M(t),hasLoaded:e.hasLoaded,stale:e.hasLoaded,awaitingGateway:r}}function Ry(e){let{status:t}=e;if(t.awaitingGateway)return I;let n=e.errorMessage??t.error,r=n&&M(n);if(!r&&!t.stale)return I;let i=e.className?` ${e.className}`:``;return L`
    <div
      class="callout ${r?`danger`:`warn`}${i}"
      role=${r?`alert`:`status`}
    >
      ${r?L`<span>${r}</span>`:I}
      ${r&&t.stale?L`<br />`:I}
      ${t.stale?L`<strong>${N(`common.staleData`)}</strong>`:I}
    </div>
  `}function zy(){return(zy=e((()=>{R(),k(),Nt(),_()})))()}function By(e){let t=e.sessionCatalogRefreshStatus;return!t.error&&(!Yi(e.context?.gateway.snapshot,`sessions.catalog.list`,`operator.read`)||t.hasLoaded&&!t.awaitingGateway&&e.sessionCatalogLive.requestGeneration===null&&e.loadingMoreSessionCatalogIds.size===0&&e.sessionCatalogs.every(e=>!e.error&&e.hosts.every(e=>!e.pending&&!e.error&&!e.nextCursor)))}function Vy(e){return document.visibilityState===`hidden`?null:Ey(e.context?.gateway.snapshot,e.sessionDataHostConnected)}function Hy(e){let t=e.context;if(!t)return Promise.resolve();let n=e.sessionCatalogLive.refreshScope;return t.connectionBootstrap.run(n,async()=>{e.context===t&&e.sessionCatalogLive.refreshScope===n&&e.isSessionDataHostConnected&&await e.refreshSessionCatalogs()},{background:!0})}function Uy(e){let t=e.context,n=t?.gateway.snapshot;if(n?.phase===`connected`&&!Yi(n,`sessions.catalog.list`,`operator.read`))return null;let r=t?.agents.state,i=n?.phase===`connected`&&n.client&&r?.connected&&r.client===n.client?r.agentsList:null,a=t?.agentSelection.state.selectedId,o=a?.trim()?G(a):null;if(i){if(o&&i.agents.some(e=>G(e.id)===o))return o;let e=G(i.defaultId);return i.agents.some(t=>G(t.id)===e)?e:null}if(n?.phase!==`connected`||!n.hello||!n.assistantAgentId)return null;let s=G(n.assistantAgentId);return o&&o!==s?null:s}function Wy(e){if(!Vy(e)){e.sessionCatalogLive.cancelScheduledRefreshes();return}e.sessionCatalogLive.scheduleActivation(()=>Gy(e))}function Gy(e){let t=e.context?.gateway.snapshot;return e.sessionCatalogLive.requestRefresh({visible:document.visibilityState!==`hidden`,connected:e.isSessionDataHostConnected&&e.sessionCatalogAgentId!==null&&!!Ey(t,e.sessionDataHostConnected),generation:e.sessionScopeGeneration,refresh:()=>Hy(e)})}function Ky(e){e.context&&e.synchronizeSessionScope(),Vy(e)&&!e.sessionCatalogLive.hasRequested&&e.sessionCatalogLive.requestGeneration!==e.sessionScopeGeneration&&Hy(e)}function qy(e){return e.context?.gateway.snapshot.hello?.features?.events?.includes(`sessions.catalog.changed`)===!0}function Jy(e,t){if(!qy(e))return;let n=ls(t)?.agentId;(typeof n!=`string`||G(n)===e.sessionCatalogAgentId)&&Wy(e)}function Yy(e,t){let n=e.sessionCatalogLive.applyHost({payload:t,agentId:e.sessionCatalogAgentId??``,catalogs:e.sessionCatalogs,pageDepths:e.sessionCatalogPageDepths});if(!n)return;e.sessionCatalogs=n.catalogs,e.requestSessionDataUpdate(),e.sessionCatalogRevision+=+!!e.sessionCatalogLive.refetching;let r=e.sessionCatalogRevisions.get(n.catalogId)??0;e.sessionCatalogRevisions.set(n.catalogId,r+1)}function Xy(e,t){let n=typeof t?.agentId==`string`?t.agentId.trim():``,r=n?G(n):null,i=e.sessionCatalogAgentId?G(e.sessionCatalogAgentId):null;t?.sessionKey&&r&&r===i&&(e.sessionCatalogLive.discoveryPages.clear(),e.sessionCatalogs=am(e.sessionCatalogs,t),e.requestSessionDataUpdate(),e.sessionCatalogRevision+=1,e.sessionCatalogRevisions.set(t.catalogId,(e.sessionCatalogRevisions.get(t.catalogId)??0)+1))}async function Zy(e){e.synchronizeSessionScope();let t=e.sessionCatalogAgentId,n=Vy(e);if(!n||!t)return;let r=e.sessionScopeGeneration,i=e.sessionCatalogRevision;e.requestSessionDataUpdate(),await Oy({live:e.sessionCatalogLive,client:n,agentId:t,generation:r,revision:i,currentGeneration:()=>e.sessionScopeGeneration,currentRevision:()=>e.sessionCatalogRevision,currentClient:()=>e.sessionCatalogGatewayClient(),catalogs:()=>e.sessionCatalogs,pageDepths:e.sessionCatalogPageDepths,connected:()=>e.isSessionDataHostConnected,catalogChangedEvents:qy(e),applyFinal:(t,n)=>{e.sessionCatalogs=e.sessionCatalogLive.resumeDiscovery(t),e.sessionCatalogRefreshStatus=Iy(),e.requestSessionDataUpdate();for(let t of n)e.sessionCatalogRevisions.set(t,(e.sessionCatalogRevisions.get(t)??0)+1);e.sessionCatalogRevision+=1},continueRefresh:()=>$y(e),applyError:t=>{e.sessionCatalogRefreshStatus=Ly(e.sessionCatalogRefreshStatus,t,e.context?.gateway.snapshot),e.requestSessionDataUpdate()},refresh:()=>Hy(e)}),e.requestSessionDataUpdate()}function Qy(e){let t=new Set(e.sessionCatalogIdsWithoutVisibleRows());return e.sessionCatalogs.flatMap(e=>{if(!t.has(e.id)||e.error)return[];let n=e.hosts.filter(e=>e.nextCursor&&!e.pending&&!e.error).map(e=>e.hostId);return n.length>0?[{catalogId:e.id,hostIds:n}]:[]})}async function $y(e){let t=e.sessionScopeGeneration,n=Vy(e);if(n&&e.isSessionDataHostConnected)for(;t===e.sessionScopeGeneration&&n===Vy(e)&&e.isSessionDataHostConnected;){let t=Qy(e);if(t.length===0)return;let n=e.sessionCatalogRevision;if(await Promise.all(t.map(({catalogId:t,hostIds:n})=>tb(e,t,n,!0))),n===e.sessionCatalogRevision)return}}function eb(e){e.sessionCatalogLive.clear(),e.sessionCatalogRevision+=1;for(let{id:t}of e.sessionCatalogs)e.sessionCatalogRevisions.set(t,(e.sessionCatalogRevisions.get(t)??0)+1);Gy(e)}async function tb(e,t,n,r=!1){if(e.synchronizeSessionScope(),e.loadingMoreSessionCatalogIds.has(t))return;let i=e.sessionCatalogs.find(e=>e.id===t),a=Object.fromEntries((i?.hosts??[]).flatMap(e=>e.nextCursor&&(!n||n.includes(e.hostId))?[[e.hostId,e.nextCursor]]:[]));if(!i||Object.keys(a).length===0)return;let o=e.sessionCatalogGatewayClient(),s=Uy(e);if(!o||!e.sessionDataHostConnected||!s||s!==e.sessionCatalogAgentId)return;let c=e.sessionScopeGeneration,l=e.sessionCatalogRevisions.get(t)??0;e.loadingMoreSessionCatalogIds=new Set([...e.loadingMoreSessionCatalogIds,t]),e.requestSessionDataUpdate();try{let n=await o.request(`sessions.catalog.list`,{agentId:s,catalogId:t,hostIds:Object.keys(a),cursors:a});if(!nb(e,t,o,c,l))return;let i=n.catalogs.find(e=>e.id===t),u=e.sessionCatalogs.find(e=>e.id===t);if(!u)return;let d=e.sessionCatalogLive.discoveryPages,f=Cy({current:u,page:i,cursors:a,previousCursors:new Map(u.hosts.flatMap(e=>{let n=d.get(Q_(t,e.hostId));return n?[[e.hostId,n.cursors]]:[]}))});for(let e of f.repeatedHostIds)d.delete(Q_(t,e));for(let[n,i]of Object.entries(a)){if(!f.advancedHostIds.includes(n))continue;let a=Q_(t,n),o=d.get(a),s=u.hosts.find(e=>e.hostId===n),c=f.catalog.hosts.find(e=>e.hostId===n),l=(o?.depth??e.sessionCatalogPageDepths.get(a)??0)+1;if(r&&s?.sessions.length===0&&c?.sessions.length===0&&!e.sessionCatalogPageDepths.has(a)){if(c.nextCursor){let e=o?.cursors??new Set;e.add(i),d.set(a,{headCursor:o?.headCursor??i,nextCursor:c.nextCursor,depth:l,cursors:e})}else d.delete(a)}else d.delete(a),e.sessionCatalogPageDepths.set(a,l)}e.sessionCatalogs=e.sessionCatalogs.map(e=>e.id===t?f.catalog:e),e.requestSessionDataUpdate(),e.sessionCatalogRevisions.set(t,l+1),e.sessionCatalogRevision+=1}catch(n){if(!nb(e,t,o,c,l))return;e.sessionCatalogs=e.sessionCatalogs.map(e=>e.id===t?{...e,error:yy(n)}:e),e.requestSessionDataUpdate(),e.sessionCatalogRevisions.set(t,l+1),e.sessionCatalogRevision+=1}finally{if(c===e.sessionScopeGeneration){let n=new Set(e.loadingMoreSessionCatalogIds);n.delete(t),e.loadingMoreSessionCatalogIds=n,e.requestSessionDataUpdate()}}}function nb(e,t,n,r,i){return r===e.sessionScopeGeneration&&i===(e.sessionCatalogRevisions.get(t)??0)&&n===e.sessionCatalogGatewayClient()}async function rb(e,t,r){let i=t.catalogGeneration,a=n(r);e.pendingCatalogArchives=new Set([...e.pendingCatalogArchives,a]),e.requestSessionDataUpdate();try{await t.client.request(`sessions.catalog.archive`,r),i===e.sessionScopeGeneration&&e.isSessionMutationScopeCurrent(t)&&(e.sessionCatalogs=gy(e.sessionCatalogs,new Set([a])),e.invalidateSessionCatalogs())}finally{i===e.sessionScopeGeneration&&(e.pendingCatalogArchives=new Set([...e.pendingCatalogArchives].filter(e=>e!==a)),e.requestSessionDataUpdate())}}async function ib(e,t,n){let r=()=>t.catalogGeneration===e.sessionScopeGeneration&&e.isSessionMutationScopeCurrent(t);if(!r())return null;let i=Te(t.gateway.snapshot.hello?.auth,{method:`sessions.catalog.import`,requiredScope:`operator.write`});if(!i.allowed)throw Error(i.reason);let a=await t.client.request(`sessions.catalog.import`,n);return r()?(e.refreshSidebarSessions(n.agentId),a):null}function ab(){return(ab=e((()=>{Zi(),ke(),xt(),A(),Ny(),Ty(),om(),J(),zy()})))()}function ob(e){let{host:t,section:n,personHeaders:r}=e,i=n.totalRowCount,a=n.category,o=n.personOwner,s=o?.identity,c=s?.type===`profile`?r?.presence.get(s.id):void 0,l=o&&s?.type===`profile`&&s.id!==r?.selfProfileId,u=l?Ul({id:o.id,identity:s}):void 0,d=c?Uc(c):void 0,f=c&&s?`sidebar-person-presence-${s.id}`:void 0,p=n.renderHeader&&t.collapsedSessionSections.has(n.id),m=o?s?.type===`profile`?Jc({id:s.id,name:o.label||o.id}):o.label||o.id:n.project?n.project.name:n.groups?N(`chat.sidebar.groups`):n.work?N(`chat.sidebar.coding`):a||N(`chat.sidebar.otherSessions`),h=o?`person`:n.project?`project`:n.groups?`groups`:n.work?`coding`:a?`category`:`threads`,g=p&&n.work&&n.rows.some(e=>C_(e,tv.ActiveRun)),_=p&&n.rows.some(e=>C_(e,tv.Attention)),v=t.readNewSessionAccess(),y=t.readSessionMutationAccess({method:`sessions.groups.put`,requiredScope:`operator.write`}),b=!!(o||n.project||n.id.startsWith(`agent:`)),x=y.allowed&&!b,S=[`sidebar-recent-sessions__group`,`sidebar-recent-sessions__group--zone-${h}`,p?`sidebar-recent-sessions__group--collapsed`:``,t.sessionOrganizer.draggingSidebarSection===n.id?`sidebar-recent-sessions__group--dragging`:``,t.sessionOrganizer.sessionDropTarget===n.id?`sidebar-recent-sessions__group--session-drop`:``,t.sessionOrganizer.sidebarSectionDropTarget?.sectionId===n.id?`sidebar-recent-sessions__group--section-drop-${t.sessionOrganizer.sidebarSectionDropTarget.position}`:``].filter(Boolean).join(` `),C=L`<span class="sidebar-session-group-toggle__lead" aria-hidden="true">
    <span class="sidebar-session-group-toggle__icon"
      >${p?F.chevronRight:F.chevronDown}</span
    >
  </span>`,w=o?L`<span class="sidebar-session-group-toggle__person"
        ><openclaw-viewer-avatar
          .identity=${o.identity}
          .user=${{id:o.id,name:o.label,avatarUrl:o.avatarUrl,watchedSessions:[]}}
          .markAsViewer=${!1}
          variant="session"
          aria-hidden="true"
        ></openclaw-viewer-avatar>
        ${c?L`<span
                id=${f??I}
                class="sidebar-session-group-presence ${`sidebar-session-group-presence--${c}`}"
                role="img"
                aria-label=${d}
              ></span>`:I}
      </span>`:I,ee=Oa(m,`sidebar-recent-sessions__label-text`),te=p&&i>0,ne=te||g||_?L`${te?L`<span class="sidebar-session-group-count">${i}</span>`:I}${g?L`<span
                class="session-run-spinner sidebar-session-group-running"
                role="img"
                aria-label=${N(`sessionsView.activeRun`)}
                title=${N(`sessionsView.activeRun`)}
              ></span>`:I}${_?L`<span
                class="sidebar-session-group-attention"
                role="img"
                aria-label=${N(`sessionsView.attentionRequired`)}
                title=${N(`sessionsView.attentionRequired`)}
              ></span>`:I}`:void 0;return L`
    <div
      class=${S}
      data-session-section=${n.id}
      data-zone=${h}
      @dragover=${x?e=>t.sessionOrganizer.sectionDragOver(e,n.id,a):I}
      @dragleave=${x?e=>t.sessionOrganizer.sectionDragLeave(e,n.id,a):I}
      @drop=${x?e=>t.sessionOrganizer.sectionDrop(e,n.id,a):I}
    >
      ${n.renderHeader?lm({sectionId:n.id,status:ne?{content:ne,label:m,expanded:!p,onToggle:()=>t.toggleSection(n.id)}:void 0,draggable:!b,disabledReason:y.allowed?void 0:y.reason,onStartDrag:e=>t.sessionOrganizer.startSidebarSectionDrag(e),onFinishDrag:()=>t.sessionOrganizer.finishSidebarSectionDrag(),reorder:{label:m,onMove:(e,r)=>t.sessionOrganizer.reorderSidebarSection(n.id,e,r)},onContextMenu:a?e=>{e.preventDefault(),t.sidebarMenus.openSessionGroupMenu(a,e.clientX,e.clientY,null)}:void 0,content:L`
                ${l?L`<button
                          type="button"
                          class="sidebar-session-group-toggle sidebar-session-group-toggle--lead"
                          aria-expanded=${String(!p)}
                          aria-label=${m}
                          @click=${()=>t.toggleSection(n.id)}
                        >
                          ${C}
                        </button>
                        <button
                          type="button"
                          class="sidebar-session-group-person"
                          data-person-card
                          data-person-card-key=${u}
                          aria-haspopup="dialog"
                          aria-expanded="false"
                          aria-label=${N(`presence.card.details`,{name:m})}
                          aria-describedby=${f??I}
                        >
                          ${w}${ee}
                        </button> `:L`<button
                        type="button"
                        class="sidebar-session-group-toggle"
                        aria-expanded=${String(!p)}
                        aria-label=${m}
                        title=${n.project?.path??I}
                        @click=${()=>t.toggleSection(n.id)}
                      >
                        ${C}${w}${ee}
                      </button>`}
                ${a||n.id===`ungrouped`?Un({basePath:t.basePath,agentId:t.expandedAgentId(),target:{group:a??``},className:`sidebar-session-group-actions sidebar-new-session`,label:N(`sessionsView.newSessionInGroup`,{group:m}),disabledReason:v.allowed?void 0:v.reason,onOpen:(e,n)=>t.requestOpenNewSession(e,n)}):I}
                ${a?L`
                        <button
                          type="button"
                          class="sidebar-session-group-actions"
                          title=${N(`sessionsView.groupMenu`,{group:a})}
                          aria-label=${N(`sessionsView.groupMenu`,{group:a})}
                          aria-haspopup="menu"
                          aria-expanded=${String(t.sidebarMenus.sessionGroupMenu?.group===a)}
                          @click=${e=>{e.stopPropagation();let n=e.currentTarget,r=n.getBoundingClientRect();t.sidebarMenus.openSessionGroupMenu(a,r.right,r.bottom+4,n)}}
                        >
                          ${F.moreHorizontal}
                        </button>
                      `:I}
              `}):I}
      ${p?I:L`
              ${n.rows.length>0?L`<div class="sidebar-recent-sessions__list" role="list" aria-label=${m}>
                      ${pi(n.rows,e=>e.key,e=>py({host:t,session:e}))}
                    </div>`:I}
              ${cb({host:t,section:n})}
            `}
    </div>
  `}function sb(e,t,n,r){return n?L`
    <div class="sidebar-session-pagination sidebar-session-pagination--roster">
      <button
        type="button"
        class="sidebar-session-pagination__button"
        aria-label=${N(r?`common.loading`:`chat.selectors.loadMoreRosterSessions`)}
        ?disabled=${r}
        aria-busy=${String(r)}
        @click=${()=>{e.sessionData.sessionsLoading||e.sessionData.loadMoreSidebarSessions().then(()=>{for(let n of t)e.setVisibleSessionLimit(n.id,n.visibleLimit+10)})}}
      >
        ${r?L`<span class="session-run-spinner" aria-hidden="true"></span>`:I}
        ${N(r?`common.loading`:`chat.selectors.loadMoreRosterSessions`)}
      </button>
    </div>
  `:I}function cb(e){let{host:t,section:n}=e,r=n.visibleRowCount<n.totalRowCount,i=n.visibleRowCount>30&&n.visibleRowCount>n.collapsedVisibleRowCount;return!r&&!i?I:L`
    <div class="sidebar-session-pagination">
      ${r?L`<button
              type="button"
              class="sidebar-session-pagination__button"
              aria-label=${N(`chat.selectors.loadMoreSessions`)}
              @click=${()=>{t.setVisibleSessionLimit(n.id,n.visibleLimit+10)}}
            >
              ${N(`chat.selectors.loadMoreSessions`)}
            </button>`:I}
      ${i?L`<button
              type="button"
              class="sidebar-session-pagination__button"
              aria-label=${N(`usage.details.collapse`)}
              @click=${()=>{t.clearSessionSelection(),t.setVisibleSessionLimit(n.id,10)}}
            >
              ${N(`usage.details.collapse`)}
            </button>`:I}
    </div>
  `}function lb(e){let{host:t,snapshot:n,catalog:r,renderer:i}=e,a=t.readNewSessionAccess(),o=t.readSessionMutationAccess({method:`sessions.groups.put`,requiredScope:`operator.write`});return L`
    ${i({catalogs:[r],basePath:n.basePath,routeSessionKey:n.routeSessionKey,newSessionAgentId:n.newSessionAgentId,mainKey:n.mainKey,collapsedSections:t.collapsedSessionSections,loadingMoreCatalogIds:n.loadingMoreCatalogIds,visibleSessionLimits:t.sessionData.visibleSessionLimits,projectGrouping:n.projectGrouping,liveRows:n.liveRows,renderLiveRow:(e,r)=>dy({host:t,session:n.toSidebarSession(e),display:r}),onToggleSection:e=>t.toggleSection(e),draggingSectionId:t.sessionOrganizer.draggingSidebarSection,sectionDropTarget:t.sessionOrganizer.sidebarSectionDropTarget,onSectionDragOver:(e,n)=>t.sessionOrganizer.sectionDragOver(e,n),onSectionDragLeave:(e,n)=>t.sessionOrganizer.sectionDragLeave(e,n),onSectionDrop:(e,n)=>t.sessionOrganizer.sectionDrop(e,n),onStartSectionDrag:e=>t.sessionOrganizer.startSidebarSectionDrag(e),onFinishSectionDrag:()=>t.sessionOrganizer.finishSidebarSectionDrag(),onReorderSection:(e,n,r)=>t.sessionOrganizer.reorderSidebarSection(e,n,r),viewMenuOpenCatalogId:t.sidebarMenus.catalogViewMenuPosition?.catalogId??null,ownerFilterActive:t.sessionOwnerFilterActive,onOpenViewMenu:(e,n,r)=>{if(r){t.sidebarMenus.openCatalogViewMenu(e,r.x,r.y,n);return}t.sidebarMenus.toggleCatalogViewMenu(e,n)},onLoadMore:e=>void t.sessionData.loadMoreSessionCatalog(e),onSetVisibleSessionLimit:(e,n)=>t.setVisibleSessionLimit(e,n),onOpenNewSession:(e,n)=>t.requestOpenNewSession(e,n),newSessionDisabledReason:a.allowed?void 0:a.reason,sectionDragDisabledReason:o.allowed?void 0:o.reason,onNavigate:t.onNavigate,catalogOpenTarget:n.catalogOpenTarget,terminalAvailable:n.terminalAvailable,onOpenTerminal:(e,n)=>Sl(t,e,n),onOpenMenu:(e,n,r,i)=>t.sidebarMenus.catalogMenu.open(e,n,r,i),onCatalogMenuTriggerRendered:(e,n)=>t.sidebarMenus.catalogMenu.retargetTrigger(e,n),isMenuOpen:e=>t.sidebarMenus.catalogMenu.isOpenFor(e)})}
  `}function ub(e){let{host:t}=e,n;if(t.sessionsGrouping===`person`){let e=_r({snapshotUser:t.sessionDataContext?.gateway.snapshot.selfUser,presenceEntries:Xt(t.sessionData.presencePayload),presenceInstanceId:t.sessionData.presenceInstanceId}),r=new Map;for(let n of Zc(t.sessionData.presencePayload,e,t.sessionData.presenceInstanceId))n.identity?.type===`profile`&&r.set(n.identity.id,Gc(n));n={presence:r,selfProfileId:e?.identity?.type===`profile`?e.identity.id:void 0}}let r=new Map(e.catalogs.catalogs.map(e=>[`catalog:${e.id}`,e]));return L`
    ${pi(e.sections,e=>e.id,i=>{if(i.id.startsWith(`catalog:`)){let n=r.get(i.id);return n&&e.catalogRenderer?lb({host:t,snapshot:e.catalogs,catalog:n,renderer:e.catalogRenderer}):I}return i.id===`work`&&i.totalRowCount===0||i.id===`ungrouped`&&i.totalRowCount===0&&!e.nativeSessionsHaveMore&&!t.sessionOwnershipVisibility.filters&&t.sessionsStatusFilter===`active`&&t.sessionOrganizer.draggingSessionKey===null?I:ob({host:t,section:i,personHeaders:n})})}
  `}function db(e){let{host:t}=e;return fb(t,L`
      <div class="sidebar-recent-sessions">
        ${ub(e)}
        ${sb(t,e.sections,e.nativeSessionsHaveMore,e.nativeSessionsLoading)}
        ${b_(t,e.empty&&e.sections.every(e=>e.totalRowCount===0),t.connected&&t.sessionData.sessionsResult!==null&&!t.sessionData.sessionsLoading&&!t.sessionData.sessionMutationError&&!e.nativeSessionsHaveMore&&e.catalogs.catalogs.length===0&&By(t.sessionData))}
        ${t.sessionsStatusFilter===`archived`&&e.empty?L`<span class="sidebar-session-empty-hint"
                >${N(`sessionsView.noArchivedSessions`)}</span
              >`:I}
      </div>
    `)}function fb(e,t){let n=e.sidebarAgentsMode===`roster`?null:e.mainSessionRow(),r=n?e.projectHomeSession(n,e.expandedAgentId()).childLoadParentKeys:[],i=r?.length?r:n?[n.key]:[];return L`
    <section
      class="sidebar-sessions ${e.sessionOrganizer.sessionListRemovalDrop?`sidebar-sessions--removal-drop`:``}"
      @dragover=${t=>e.sessionOrganizer.handleSessionListDragOver(t)}
      @dragleave=${t=>e.sessionOrganizer.handleSessionListDragLeave(t)}
      @drop=${t=>e.sessionOrganizer.handleSessionListDrop(t)}
    >
      ${e.sidebarAgentsMode===`roster`?I:v_(e)}
      ${e.sessionData.sessionsStartingUp?L`<div
              class="sidebar-session-empty-hint sidebar-session-empty-hint--startup"
              role="status"
              aria-live="polite"
            >
              <span class="btn__spinner" aria-hidden="true"></span> ${N(`agentStartup.short`)}
            </div>`:I}
      ${i.map(t=>fy(e,t))}
      ${y_(e)} ${t}
    </section>
  `}function pb(){return(pb=e((()=>{R(),vi(),Ml(),k(),ua(),yl(),il(),x_(),hy(),um(),J(),P(),pr(),ab()})))()}function mb(e){let t=t=>{let n=e.archiveVisibility(t);return!!e.deletionState(t,e.selectedAgentId)||n===`pending`||(e.statusFilter===`active`||e.statusFilter===`snoozed`)&&n===`archived`},n=n=>t(n.key)||e.statusFilter===`archived`&&n.archived!==!0||e.statusFilter===`active`&&cc(n,e.now)||e.statusFilter===`snoozed`&&(n.archived===!0||!cc(n,e.now)),r=G(e.selectedAgentId),i=r===G(e.sessionData.sessionsAgentId??``)?e.sessionData.sessionsResult?.sessions??[]:e.sessionData.sessionResultsByAgent[r]?.sessions??[],a=new Map([...Object.values(e.sessionData.childSessionRowsByParent).flat(),...i].map(e=>[e.key,e])),o=i.filter(e=>!n(e));return{childSessionRowsByParent:Object.fromEntries(Object.entries(e.sessionData.childSessionRowsByParent).map(([e,t])=>[e,t.filter(e=>!n(e))])),isSessionHidden:n,isChildSessionVisible:(r,i,o)=>{let s=o??a.get(i);return(s?n(s):e.statusFilter===`snoozed`||t(i))?!1:e.statusFilter!==`active`&&e.statusFilter!==`snoozed`||!e.sessionData.loadedChildSessionKeys.has(r)||e.sessionData.loadingChildSessionKeys.has(r)||e.sessionData.childSessionErrorsByParent.has(r)||e.sessionData.childSessionRowsByParent[r]?.some(e=>e.key===i)===!0},rows:o}}function hb(){return(hb=e((()=>{A(),ic()})))()}function gb(e){return!e||!Oi(e.state)||e.state===`failed`&&e.recoveryAction===`restart`?null:{method:`sessions.reclaim`,requiredScope:`operator.write`,blocksActiveRun:e.state===`active`}}function _b(){return(_b=e((()=>{Ti()})))()}function vb(e){let t,n;return(r,i)=>{let a=t??=e();if(a.sortMode!==`people`)return a.sortMode===`updated`?It(r,i):yb(r,i,a.createdOrder);let o=r.owner?.actor,s=i.owner?.actor,c=o?.id?.trim()??``,l=s?.id?.trim()??``;if(c!==l){if(!n){n=new Map;for(let e of a.owners??[])n.has(e.id)||n.set(e.id,e.label?.trim())}let e=n.get(c)||o?.label?.trim()||c,t=n.get(l)||s?.label?.trim()||l,r=e.localeCompare(t)||c.localeCompare(l);if(r!==0)return r}return yb(r,i,a.createdOrder)}}function yb(e,t,n){let r=Lo(e.createdAt)??null,i=Lo(t.createdAt)??null;if(r!==null||i!==null){if(r===null)return 1;if(i===null)return-1;let e=i-r;if(e!==0)return e}return(n.get(e.key)??2**53-1)-(n.get(t.key)??2**53-1)||e.key.localeCompare(t.key)}function bb(e,t){return e.visibility===`draft`&&(e.sharingRole===`owner`||!!(t&&e.createdActor?.id===t))}function xb(e){let{context:t}=e,n=g({agentsList:t?.agents.state.agentsList,hello:t?.gateway.snapshot.hello}),r=Ne({result:e.sessionsResult,activeSession:e.activeSession,resultAgentId:e.sessionsAgentId,sessionKey:e.routeSessionKey,assistantAgentId:t?.agentSelection.state.selectedId??t?.gateway.snapshot.assistantAgentId,hello:t?.gateway.snapshot.hello,showCron:e.showCron,showSystem:e.showSystem,archivedFilter:e.statusFilter,compareSessions:e.compareSessions});return{routeSessionKey:r.currentSessionKey,selectedAgentId:r.selectedAgentId,activeRowKey:r.activeRowKey,visibleSessionRows:r.visibleSessions,toSidebarSession:(i,o=!1)=>{let s=Tt(i.key,i.channel),c=i.runtimeSampledAt;return i.runtimeMs!=null&&c==null&&(c=e.runtimeSampledAtByRow.get(i),c??(c=Date.now(),e.runtimeSampledAtByRow.set(i,c))),{key:i.key,agentId:We(i,n),sessionId:i.sessionId,displayName:i.displayName,incognito:i.incognito===!0,createdActor:i.createdActor,owner:i.owner,participants:i.participants,expandedParticipants:i.expandedParticipants,participantCount:i.participantCount,archivedBy:i.archivedBy,label:qe(i.key,i),userLabel:i.label,renameValue:qs(i),subtitle:Et(i),workContext:St(i),active:i.key===r.activeRowKey,visuallyActive:e.highlightCurrentSession&&i.key===r.currentSessionKey,hasActiveRun:i.archived!==!0&&qo(i),gatewayHasActiveRun:i.hasActiveRun,activeRunIds:i.archived===!0?void 0:i.activeRunIds,modelSelectionLocked:i.modelSelectionLocked===!0,kind:i.kind,pinned:i.pinned===!0,pinnable:se(i),snoozedUntil:i.snoozedUntil,archived:i.archived===!0,visibility:i.visibility,sharingRole:i.sharingRole,draftOwnedBySelf:bb(i,t?.gateway.snapshot.selfUser?.id),category:yo(i.category),icon:yo(i.icon),color:yo(i.color),channelAvatarUrl:yo(i.channelAvatarUrl),boardFace:i.boardFace,channel:s.channel,channelSession:s.channelSession,channelPresentation:bl(i),workSession:!!(i.worktree||i.repository||i.execNode)||t?.sessions.isPreparedWorkSession(i.key)===!0,acpSession:a(i.key),worktreeId:i.worktree?.id,workspaceKind:i.worktree?`worktree`:i.repository?`checkout`:void 0,execNode:i.execNode,placementState:i.placement?.state,placementProviderId:i.placement&&`providerId`in i.placement?i.placement.providerId:void 0,placementProfileId:i.placement&&`profileId`in i.placement?i.placement.profileId:void 0,placementMachine:i.placement&&`machine`in i.placement?i.placement.machine:void 0,diskSpaceStatus:i.placement?.state===`active`?i.placement.diskSpace?.status:void 0,workspaceConflictCount:i.placement&&`workspaceResultConflict`in i.placement&&Math.max(i.placement.workspaceResultConflict?.paths.length??0,i.placement.workspaceResultConflict?.totalCount??0)||void 0,cloudWorkerStopAction:gb(i.placement),hasAutomation:i.hasAutomation===!0,pullRequest:t?.sessions.pullRequestSummary(i.key),outboxAttentionCount:e.outboxAttentionCountForSessionKey(i.key),hasComposerDraft:i.incognito!==!0&&e.hasSessionDraft(i.key),unread:i.archived!==!0&&i.unread===!0,hiddenFromInvolvingMe:i.hiddenFromInvolvingMe,lastMessagePreview:yo(i.lastMessagePreview),lastReadAt:i.lastReadAt,attention:i.archived===!0?$_:e.resolveAttention(i),agentStatusNote:e.resolveAgentStatusNote(i),observerDigest:i.observerDigest,spawnedBy:i.spawnedBy,forkSource:i.forkSource,status:i.status,createdAt:i.createdAt,startedAt:i.startedAt,updatedAt:i.updatedAt,endedAt:i.endedAt,runtimeMs:i.runtimeMs,runtimeSampledAt:c,childSessionKeys:i.archived===!0?[]:(i.childSessions??[]).filter(e=>!ue(e)),children:[],isChild:o,loadingChildren:e.loadingChildSessionKeys.has(i.key),containsActiveDescendant:!1,runningChildCount:0,failedChildCount:0}}}}function Sb(e){let t=e.pluginNavigation,n=new Set(e.sidebarEntries),r=new Map(s_(e.pluginTabs).filter(e=>(!e.placement||!n.has(e.placement))&&!t.some(t=>t.pluginId===e.pluginId&&t.value.page.id===e.id)).map(e=>[h(e),e])),i=new Set([...r.keys(),...t.filter(e=>!e.value.parent&&e.value.defaultVisible!==!1).toSorted((e,t)=>(e.value.order??0)-(t.value.order??0)||e.key.localeCompare(t.key)).map(e=>e.key)]),a=e.rows.filter(e=>e.pinned),o=new Set(e.rows.filter(e=>!e.pinned).map(e=>e.key));return{...jc(e.sidebarEntries,a,bn,o,new Set([...r.keys(),...t.map(e=>e.key)]),i),sessionRows:new Map(a.map(e=>[e.key,e])),pluginTabs:r,defaultPluginNavigationKeys:i}}function Cb(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),{selectedKeys:n,anchor:n.has(t)?t:null}}function wb(e){let t=e.anchor??e.rows.find(e=>e.visuallyActive||e.active)?.key??e.key,n=e.rows.findIndex(e=>e.key===t),r=e.rows.findIndex(t=>t.key===e.key);if(n===-1||r===-1)return{selectedKeys:new Set([e.key]),anchor:e.key};let[i,a]=n<=r?[n,r]:[r,n];return{selectedKeys:new Set(e.rows.slice(i,a+1).map(e=>e.key)),anchor:t}}function Tb(e){let t=new Map(e.identities.map(e=>[e.agentId,e]));return{activeId:e.activeId,agent:e.roster.find(t=>G(t.id)===e.activeId),agents:Ot(e.roster),identity:t.get(e.activeId)??null,identities:t}}function Eb(e){let{sessionData:t}=e,n=G(e.agentId),r=n===G(t.sessionsAgentId??``)?t.sessionsResult?.sessions??[]:t.sessionResultsByAgent[n]?.sessions??[];return Oe(r,{agentId:n,defaultAgentId:g({agentsList:e.context?.agents.state.agentsList,hello:e.context?.gateway.snapshot.hello}),filterByAgent:!0,archivedFilter:`active`}).reduce((e,t)=>e!==null&&It(e,t)<=0?e:t,null)}function Db(e){return new Map([...Object.values(e.childRowsByParent).flat(),...e.rows].map(e=>[e.key,e]))}function Ob(e){let t=new Set(e.scopedRoots.map(e=>e.key));return e.rows.filter(n=>!t.has(n.key)&&!ue(n.key)&&yo(n.category)!=null&&Ie(n)!=null&&Le(n,e.visibilityOptions))}function kb(e){if(e.hasLoaded)return[...e.loadedCatalogIds];let t=e.sectionOrder.flatMap(e=>e.startsWith(`catalog:`)?[e.slice(8)]:[]);return[...new Set([...e.loadedCatalogIds,...t])]}function Ab(e){let t={agentsList:e.agentsList,hello:e.hello};return me(t)?yo(De(t)?.mainSessionKey)??`global`:ts({agentId:e.agentId,mainKey:we(t)})}function jb(e,t){let n=[...e];for(let e=n.pop();e;e=n.pop()){if(t(e))return e;n.push(...e.children)}}function Mb(e){let t=e.navigationState.visibleSessionRows.find(t=>t.key===e.sessionKey);if(t)return e.navigationState.toSidebarSession(t);for(let t of Object.values(e.sessionResultsByAgent)){let n=t.sessions.find(t=>t.key===e.sessionKey);if(n)return e.navigationState.toSidebarSession(n)}}function Nb(){return(Nb=e((()=>{us(),qt(),_t(),Kc(),bt(),Fc(),Je(),A(),Nc(),Se(),m_(),J(),_b()})))()}function Pb(e,t,n){let r=new Set(e.filter(e=>!n||e.type===`human`).map(e=>sa(e.identity??{type:e.type===`human`?`profile`:`agent`,id:e.id})));return r.size>=2||!!jb(t,e=>{let t=e.participants??[];for(let e of t){let t=e.identity;if((!n||t.type===`profile`||t.type===`observation`&&t.senderKind===`human`||t.type===`legacy`&&t.actorType===`human`)&&(r.add(sa(t)),r.size>=2))return!0}return!n&&(e.participantCount??t.length)>t.length})}function Fb(e){let t=e.ownerFacet??[],n=e.self?.id,r=t.find(e=>e.id===n)?.type===`agent`?null:dg(e.self),i=r?[r,...t.filter(e=>e.id!==r.id)]:t,a={filters:Pb(i,e.projected,!1),avatars:Pb(i,e.projected,!0)},o=e.selectedOwnerId?.trim()||null,s=o&&(e.ownerFacet===void 0||i.some(e=>e.id===o))?o:null,c=e=>{let t=[];for(let n of e){let e=c(n.children);if(n.owner?.actor.id===s)t.push({...n,children:e});else for(let n of e)t.push({...n,isChild:!1})}return t};return{rows:s?c(e.projected):e.projected,ownerOptions:i,ownershipVisibility:a,activeOwnerId:s}}function Ib(){return(Ib=e((()=>{ga(),Nb(),_g()})))()}function Lb(e,t,n){let r=Ie(e)??n;if(!r||e?.createdVia!==`operator`||e.spawnDepth!==0||e.parentSessionId||e.spawnedBy||e.forkSource||e.forkedFromParent===!0||ue(e.key)||![...t].some(e=>j(e,r)))return r}function Rb(e,t){let n=new Map,r=(e,t)=>{let r=D(e),i=n.get(r)??[];i.includes(t)||(i.push(t),n.set(r,i))};for(let n of e.values())for(let i of n.childSessions??[]){let a=Lb(e.get(i),t,n.key);j(a,n.key)&&r(n.key,i)}for(let n of e.values()){let e=Lb(n,t);e&&r(e,n.key)}return n}function zb(e){return ue(e.key)&&e.archived!==!0&&e.unread===!0&&e.status!==`failed`&&e.status!==`timeout`&&!dc(e)?.attention}function Bb(e,t,n=!1){let r=new Map(e.map(e=>[e.key,e])),i=Rb(r,new Set),a=new Set([t]),o=[],s=e=>{if(!r.get(e)?.archived)for(let t of i.get(D(e))??[]){let e=r.get(t);!e||e.archived||n&&!ue(t)||a.has(t)||(a.add(t),o.push(e),s(t))}};return s(t),o}function Vb(e,t){return Bb(e,t,!0).filter(zb)}function Hb(e){let t=new Set([...e.mainSessionKeys].map(D)),n=new Set;for(let r of t)for(let i of e.childKeysByParent.get(r)??[])ue(i)?t.add(D(i)):n.add(i);return e.rows.filter(t=>n.has(t.key)&&!e.scopedRootKeys.has(t.key)&&!ue(t.key)&&ze(t,e.archivedFilter)&&(e.showCron||!Uo(t.key))&&(e.showSystem||!to(t)))}function Ub(){return(Ub=e((()=>{vo(),fl(),y(),A()})))()}function Wb(e,t,n=!1){let r=[],i=0,a=0,o=0,s=0,c=0,l=[];for(let t of e){if(n&&!ue(t.key))continue;let e=n?t.subagentSummary:t,u=n?S_([t.ownAttention??t.attention,t.subagentSummary?.attention??$_]):t.attention;r.push(u.kind===`error`&&u.childLabel===void 0?{...u,childLabel:t.label}:u),i+=Number(t.unread)+(e?.unreadChildCount??0),a+=+!!t.hasActiveRun+(e?.runningChildCount??0),o+=Number(t.status===`failed`||t.status===`timeout`)+(e?.failedChildCount??0),s+=Number(t.hasActiveRun&&t.status===`queued`)+(e?.queuedChildCount??0),c+=n?(t.ownWorkspaceConflictCount??0)+(e?.workspaceConflictCount??0):t.workspaceConflictCount??0,n&&(zb(t)&&l.push(t),l.push(...e?.unreadHiddenRuns??[]))}return{attention:S_([...r,...t]),unreadChildCount:i,runningChildCount:a,failedChildCount:o,queuedChildCount:s,workspaceConflictCount:c,...n?{unreadHiddenRuns:l}:{}}}function Gb(e){let{roots:t,mainSessionKeys:n=new Set,rowsByKey:r,loadingChildKeys:i,resolveAttention:a,toSidebarSession:o}=e,s=Rb(r,n),c=e=>typeof e?.category==`string`&&e.category.trim().length>0&&!ue(e.key),l=new Set,u=(t,n,d)=>{let f=t.archived===!0?[]:(s.get(D(t.key))??[]).filter(n=>!c(r.get(n))&&(e.isChildSessionVisible?.(t.key,n,r.get(n))??!0)),p=!d.has(t.key);d.add(t.key);let m=[],h=new Set([t.key]),g=f.flatMap(e=>{let t=r.get(e),n=t&&!d.has(e)?u(t,!0,d):null;if(m.push(...ue(e)?n?.childSessionKeys??[]:[e]),ue(e))for(let e of n?.childLoadParentKeys??[])h.add(e);return n?[n]:[]}),_=g.flatMap(e=>ue(e.key)?e.children:[e]);_.forEach(e=>l.add(e.key)),p&&d.delete(t.key);let v=o(t,n),y=f.filter(e=>!r.has(e)).map(e=>({key:e,attention:a({key:e,agentId:Ft(e)?.agentId??v.agentId})})),b=Wb(g,y.map(e=>e.attention)),x=Wb(g,y.filter(e=>ue(e.key)).map(e=>e.attention),!0),S=S_([v.attention,b.attention]),C=Math.min(2**53-1,(v.workspaceConflictCount??0)+b.workspaceConflictCount),w=t.archived!==!0&&!v.hasActiveRun&&t.hasActiveSubagentRun;return x.runningChildCount=Math.max(x.runningChildCount,w&&b.runningChildCount===0?1:0),{...v,...b,ownAttention:v.attention,ownWorkspaceConflictCount:v.workspaceConflictCount,subagentSummary:x,attention:S,childSessionKeys:m,childLoadParentKeys:f.length>0?[...h]:[],children:_,loadingChildren:[...h].some(e=>i.has(e)),containsActiveDescendant:_.some(e=>e.active||e.visuallyActive||e.containsActiveDescendant),workspaceConflictCount:C||void 0,runningChildCount:Math.max(b.runningChildCount,+!!w)}},d=new Set(t.map(e=>e.key)),f=new Set;return t.filter(e=>{if(ue(e.key))return!1;if(c(e))return!0;let t=Lb(e,n);return t&&ue(t)?(f.add(e.key),!0):!t||!d.has(t)}).map(e=>u(e,!1,new Set)).filter(e=>!f.has(e.key)||!l.has(e.key))}function Kb(){return(Kb=e((()=>{A(),Ub(),J()})))()}function qb({host:e,navigationState:t,selected:n,agentIds:r,result:i,compareSessions:a,resolveAttention:o}){let s=i!==void 0,c=g({agentsList:e.sessionDataContext?.agents.state.agentsList,hello:e.sessionDataContext?.gateway.snapshot.hello}),l=new Set(r),u=e=>!s||l.has(We(e,c)),d=e.sessionData.activeSessionLineageRoot,f=s?Db({rows:[...d?[d]:[],...t.visibleSessionRows],childRowsByParent:e.sessionData.childSessionRowsByParent}):null,p=s?new Set:nm(e.visibleSessionCatalogs()),m=G(e.sessionData.sessionsAgentId??``),h=G(t.selectedAgentId),_={agentId:n,defaultAgentId:c,filterByAgent:!s,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem,archivedFilter:e.sessionsStatusFilter},{childSessionRowsByParent:v,isSessionHidden:y,isChildSessionVisible:b,rows:x}=mb({sessionData:s?{sessionsAgentId:n,sessionsResult:i,sessionResultsByAgent:e.sessionData.sessionResultsByAgent,childSessionRowsByParent:e.sessionData.childSessionRowsByParent,loadedChildSessionKeys:e.sessionData.loadedChildSessionKeys,loadingChildSessionKeys:e.sessionData.loadingChildSessionKeys,childSessionErrorsByParent:e.sessionData.childSessionErrorsByParent}:e.sessionData,selectedAgentId:n,statusFilter:e.sessionsStatusFilter,now:Date.now(),deletionState:(t,n)=>e.sessionDataContext?.sessions.deletionState(t,s?We(f?.get(t)??{key:t},c):n),archiveVisibility:t=>e.sessionDataContext?.sessions.archiveVisibility(t)}),S=new Map(x.map(e=>[e.key,e])),C=Db({rows:x,childRowsByParent:v}),w=r.map(t=>e.selectedAgentMainSessionKey(t)),ee=e=>w.some(t=>j(e,t)),te=!s&&n===h&&n===m?t.visibleSessionRows.flatMap(e=>{let t=S.get(e.key);return t?[t]:[]}):Oe(x.filter(u),_).toSorted(a),ne=G(Ft(d?.key??``)?.agentId??``),re=t.visibleSessionRows.find(e=>(s?u(e):n===h||ne===n)&&e.key===t.activeRowKey&&!y(e)&&!p.has(e.key)&&!ee(e.key)),T=new Set(w),E=te.filter(e=>!ee(e.key)),ie=G(Ft(t.routeSessionKey)?.agentId??``);d&&!y(d)&&(j(d.key,t.routeSessionKey)||ze(d,e.sessionsStatusFilter))&&(s?u(d):ne===n||ie===n)&&!p.has(d.key)&&!ee(d.key)&&!E.some(e=>e.key===d.key)&&E.push(d);let ae=new Map([...C].filter(([t,n])=>!s||ze(n,e.sessionsStatusFilter)&&(!e.sessionInvolvingMeFilterActive||S.has(t))));if(d&&ee(d.key)&&j(d.key,t.routeSessionKey)&&![...ae.keys()].some(e=>j(e,d.key))&&ae.set(d.key,d),s){for(let e of[...E,...re?[re]:[]])ae.set(e.key,e);for(let[t,n]of ae){let r=n.childSessions?.filter(t=>ae.has(t)||!e.sessionInvolvingMeFilterActive&&!C.has(t));r&&r.length!==n.childSessions?.length&&ae.set(t,{...n,childSessions:r})}}let oe=new Set([...S.keys(),...E.map(e=>e.key),...re?[re.key]:[],...d&&j(d.key,t.routeSessionKey)?[d.key]:[]].map(D)),se=Rb(ae,T),ce=new Set(oe);for(let e of ce)for(let t of se.get(e)??[])ce.add(D(t));let le=[...ae.values()].filter(e=>u(e)&&(!s||ce.has(D(e.key)))),de=Ob({rows:le.filter(e=>!ee(e.key)),scopedRoots:E,visibilityOptions:_});E.push(...de);let O=new Set(E.map(e=>e.key)),fe=Hb({rows:le,childKeysByParent:se,archivedFilter:e.sessionsStatusFilter,mainSessionKeys:T,scopedRootKeys:O,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem});for(let e of fe)O.has(e.key)||(O.add(e.key),E.push(e));let pe=Gb({mainSessionKeys:T,roots:(fe.length>0||de.length>0?E.toSorted(a):E).filter(e=>!p.has(e.key)&&(!s||ae.has(e.key))),rowsByKey:ae,loadingChildKeys:e.sessionData.loadingChildSessionKeys,isChildSessionVisible:b,resolveAttention:o,toSidebarSession:t.toSidebarSession});return re&&!ue(re.key)&&(!s||ae.has(re.key))&&!jb(pe,e=>e.key===re.key)&&pe.unshift(t.toSidebarSession(re)),pe}function Jb({host:e,row:t,agentId:n,result:r,navigationState:i,resolveAttention:a}){let o=mb({sessionData:r===void 0?e.sessionData:{childSessionRowsByParent:e.sessionData.childSessionRowsByParent,loadedChildSessionKeys:e.sessionData.loadedChildSessionKeys,loadingChildSessionKeys:e.sessionData.loadingChildSessionKeys,childSessionErrorsByParent:e.sessionData.childSessionErrorsByParent,sessionResultsByAgent:e.sessionData.sessionResultsByAgent,sessionsAgentId:n,sessionsResult:r},selectedAgentId:n,statusFilter:e.sessionsStatusFilter,now:Date.now(),deletionState:(t,n)=>e.sessionDataContext?.sessions.deletionState(t,n),archiveVisibility:t=>e.sessionDataContext?.sessions.archiveVisibility(t)}),{rows:s,childSessionRowsByParent:c,isChildSessionVisible:l}=o,u={...t,agentId:n},d=i.toSidebarSession(u),f=Gb({roots:[u],mainSessionKeys:new Set([t.key,e.selectedAgentMainSessionKey(n)]),rowsByKey:Db({rows:[...s,u],childRowsByParent:c}),loadingChildKeys:e.sessionData.loadingChildSessionKeys,isChildSessionVisible:l,resolveAttention:a,toSidebarSession:(e,t)=>t?i.toSidebarSession(e,!0):d})[0];if(r===void 0)return{...f,metadataVisible:!0};let p=t.kind!==`unknown`&&ze(t,e.sessionsStatusFilter)&&!o.isSessionHidden(t)&&(!e.sessionInvolvingMeFilterActive||r?.sessions.some(e=>j(e.key,t.key))===!0)&&Fb({projected:[d],ownerFacet:r?.owners,selectedOwnerId:e.sessionOwnerFilterId,self:e.sessionDataContext?.gateway.snapshot.selfUser}).rows.length>0;return{...f,...f.subagentSummary,metadataVisible:p,icon:void 0,channelAvatarUrl:void 0,attention:S_([d.attention,f.subagentSummary?.attention??$_]),workspaceConflictCount:(d.workspaceConflictCount??0)+(f.subagentSummary?.workspaceConflictCount??0)||void 0}}function Yb(){return(Yb=e((()=>{Je(),A(),hb(),om(),Nb(),Ib(),Ub(),Kb(),J()})))()}var Y;function Xb(){return(Xb=e((()=>{wo(),B(),qt(),kn(),Jt(),ke(),$c(),je(),A(),O(),Y=class extends o{constructor(...e){super(...e),this.basePath=``,this.activePluginTabId=``,this.connected=!1,this.connectionStatus=null,this.lastError=null,this.terminalAvailable=!1,this.catalogOpenTarget=`viewer`,this.canPairDevice=!1,this.preferencesBrowserOnly=!1,this.sessionKey=``,this.sidebarEntries=tn,this.navigationVisible=!0,this.sidebarAgentsMode=`chip`,this.sidebarLiveActivity=!0,this.pinnedAgentIds=[],this.themeMode=`system`,this.gatewayVersion=null,this.devGitBranch=null,this.watchUpdateProgress=void 0}pluginNavigation(){return this.context?.plugins?.registrations(`navigation`)??[]}setApplicationSession(e,t){let n=this.context;n&&nn({selection:n.agentSelection,gateway:n.gateway,sessionKey:e,agentId:Ft(e)?.agentId??t})}prepareSessionNavigation(e,t){this.context&&zc(this.context.gateway,t,e)}bindLiteralSession(e,t,n){new URLSearchParams(n.search??``).has(`__openclawSessionKey`)||this.setApplicationSession(e,t)}sessionMainKey(){return we({agentsList:this.context?.agents.state.agentsList,hello:this.context?.gateway.snapshot.hello})}readNewSessionAccess(){return b(this.connected?this.context?.gateway.snapshot:null,{method:`sessions.create`,params:{},sessionScope:!0})}readSessionMutationAccess(e){return b(this.connected?this.context?.gateway.snapshot:null,e)}requestOpenNewSession(e,t){this.readNewSessionAccess().allowed&&(t?this.onOpenNewSession?.(e,t):this.onOpenNewSession?.(e))}},U([V({attribute:!1})],Y.prototype,`basePath`,void 0),U([V({attribute:!1})],Y.prototype,`activeRouteId`,void 0),U([V({attribute:!1})],Y.prototype,`router`,void 0),U([H()],Y.prototype,`contextualSidebar`,void 0),U([V({attribute:!1})],Y.prototype,`activePluginTabId`,void 0),U([V({attribute:!1})],Y.prototype,`enabledRouteIds`,void 0),U([V({attribute:!1})],Y.prototype,`connected`,void 0),U([V({attribute:!1})],Y.prototype,`connectionStatus`,void 0),U([V({attribute:!1})],Y.prototype,`lastError`,void 0),U([V({attribute:!1})],Y.prototype,`storedOutboxes`,void 0),U([V({attribute:!1})],Y.prototype,`terminalAvailable`,void 0),U([V({attribute:!1})],Y.prototype,`catalogOpenTarget`,void 0),U([V({attribute:!1})],Y.prototype,`canPairDevice`,void 0),U([V({attribute:!1})],Y.prototype,`preferencesBrowserOnly`,void 0),U([V({attribute:!1})],Y.prototype,`sessionKey`,void 0),U([V({attribute:!1})],Y.prototype,`sidebarEntries`,void 0),U([V({attribute:!1})],Y.prototype,`navigationVisible`,void 0),U([V({attribute:!1})],Y.prototype,`sidebarAgentsMode`,void 0),U([V({attribute:!1})],Y.prototype,`sidebarLiveActivity`,void 0),U([V({attribute:!1})],Y.prototype,`pinnedAgentIds`,void 0),U([V({attribute:!1})],Y.prototype,`themeMode`,void 0),U([V({attribute:!1})],Y.prototype,`gatewayVersion`,void 0),U([V({attribute:!1})],Y.prototype,`devGitBranch`,void 0),U([V({attribute:!1})],Y.prototype,`watchUpdateProgress`,void 0),U([V({attribute:!1})],Y.prototype,`onOpenPalette`,void 0),U([V({attribute:!1})],Y.prototype,`onRetryConnect`,void 0),U([V({attribute:!1})],Y.prototype,`onToggleSidebar`,void 0),U([V({attribute:!1})],Y.prototype,`onOpenNewSession`,void 0),U([V({attribute:!1})],Y.prototype,`onUpdateSidebarEntries`,void 0),U([V({attribute:!1})],Y.prototype,`onPairMobile`,void 0),U([V({attribute:!1})],Y.prototype,`onNavigate`,void 0),U([V({attribute:!1})],Y.prototype,`onPreloadRoute`,void 0),U([Co({context:vr,subscribe:!0})],Y.prototype,`context`,void 0)})))()}function Zb(e,t=e.key){let n=e.agentId?.trim();return n&&!Ft(D(t))?JSON.stringify([t,G(n)]):t}function Qb(e,t){let n=new Map;for(let r of[...Object.values(t).flat(),...e]){let e=Zb(r,D(r.key)||r.key);n.delete(e),n.set(e,r)}return new Map([...n.values()].map(e=>[Zb(e),e]))}async function $b(e){let t={},n=e.sessionKey,r=Ft(n)?.agentId??null,i=null,a=!1,o,s=new Set;try{for(let a=0;a<mx;a+=1){let c=JSON.stringify([n,r]);if(s.has(c))break;s.add(c);let l=a===0&&e.readSelected,u=l?await l():[...e.knownRows.values()].find(e=>de(e,n,r));if(!e.isCurrent())return null;if(l&&!u)break;if(!u){let t=a===0?e.captureReconcile():void 0,i=await e.sessions.describe({key:n,...!Ft(n)&&r?{agentId:r}:{}},{client:e.client});if(!e.isCurrent())return null;if(u=i?.session?{...i.session,runtimeSampledAt:i.session.runtimeSampledAt??Date.now()}:void 0,!u)break;if(t&&(o={row:u,reconcile:t},e.publishSelected)){if(u=e.publishSelected(u,t)??void 0,!e.isCurrent())return null;if(!u)break}e.knownRows.set(Zb(u),u)}i=u;let d=Ie(u);if(!d)break;t[d]=[...(t[d]??[]).filter(e=>e.key!==u.key),u],r=Ft(d)?.agentId??Ft(u.key)?.agentId??u.agentId?.trim()??r,n=d}}catch{a=!0}return{rowsByParent:t,topmostRow:i,lookupFailed:a,selectedObservation:o}}function ex(e,t){let n=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,[...t]]));for(let[e,r]of Object.entries(t)){let t=n[e]??[];for(let e of r)t.some(t=>t.key===e.key)||t.push(e);n[e]=t}return n}function tx(e,t){let n={},r=e?.trim(),i=new Set;for(;r&&!i.has(r);){i.add(r);let e=Object.entries(t).find(([,e])=>e.some(e=>j(e.key,r)));if(!e)break;n[e[0]]=e[1].filter(e=>j(e.key,r)),r=e[0]}return n}function nx(e,t,n,r){let i=tx(e,t)[n]??[];return{...t,...ex({[n]:r},{[n]:i})}}function rx(e,t){let n=t();e.retireStaleChildSessions(n);let r=e.context,i=r?.gateway.snapshot.client,a=e.childSessionScope;if(r&&i&&[...n].some(t=>e.needsChildSessionLoad(t))){let n=()=>e.context===r&&e.childSessionScope===a&&r.gateway.snapshot.client===i&&e.isSessionDataHostConnected,o;r.connectionBootstrap.run(a,async()=>{n()&&(o=t(),await Promise.all([...o].map(t=>e.loadChildSessions(t))))},{background:!0}).then(()=>{let r=o;r&&n()&&[...t()].some(e=>!r.has(e))&&e.requestSessionDataUpdate()})}}async function ix(e){let{owner:t,parentKey:n,sessions:r,initialResult:i,childRead:a}=e,o=()=>e.ownsQuery()&&a.isCurrent();try{let s=await sc({sessions:r,parentKey:n,isCurrent:o,initialResult:i});if(!s||!o())return;let c=s.flatMap(e=>{let t=a.reconcile(e);return t.status===`selected`?t.row?[t.row]:[]:[e]});if(!o())return;t.childSessionRowsByParent=nx(e.selectedKey(),t.childSessionRowsByParent,n,r.projectRows(c)),t.loadedChildSessionKeys=new Set([...t.loadedChildSessionKeys,n]);let l=new Map(t.childSessionErrorsByParent);l.delete(n),t.childSessionErrorsByParent=l}catch(e){if(!o())return;t.childSessionErrorsByParent=new Map(t.childSessionErrorsByParent).set(n,M(e))}}function ax(e,t){if(e.childSessionRowsByParent[t]?.length===0){let n={...e.childSessionRowsByParent};delete n[t],e.childSessionRowsByParent=n;let r=new Set(e.loadedChildSessionKeys);r.delete(t),e.loadedChildSessionKeys=r,e.requestSessionDataUpdate()}}function ox(e,t,n){let r=tx(t,e.childSessionRowsByParent),i={...e.childSessionRowsByParent},a=!1;for(let[t,o]of Object.entries(i)){if(e.loadedChildSessionKeys.has(t)||e.loadingChildSessionKeys.has(t)||e.childSessionErrorsByParent.has(t)||n.has(t))continue;let s=r[t];s?.length!==o.length&&(s?i[t]=s:delete i[t],a=!0)}a&&(e.childSessionRowsByParent=i,e.requestSessionDataUpdate())}function sx(e,t,n,r){let i=p(t.key)&&(t.sessionId!==n?.sessionId||G(t.agentId)!==G(n?.agentId))?void 0:n;return cx(e,r(t===i?t:m(t,i),t,i),r)}function cx(e,t,n){e.activeSessionLineageSelectedRow=t,j(e.activeSessionLineageRoot?.key,t.key)&&(!p(t.key)||G(e.activeSessionLineageRoot?.agentId)===G(t.agentId))&&(e.activeSessionLineageRoot=t);for(let[r,i]of Object.entries(e.childSessionRowsByParent)){let a=i.find(e=>j(e.key,t.key)&&(!p(t.key)||e.agentId===t.agentId&&e.sessionId===t.sessionId));if(!a||a===t)continue;let o=a.key===t.key?t:n({...t,key:a.key},t);e.childSessionRowsByParent={...e.childSessionRowsByParent,[r]:i.map(e=>e===a?o:e)}}return t}function lx(e,t,n){cx(e,t,n),e.activeSessionLineageRoot??=t}function ux(e,t,n,r){lx(e,n,r);let i=e=>j(e.key,n.key)&&e.agentId===n.agentId&&e.sessionId===n.sessionId?n:e;e.childSessionRowsByParent=ex(e.childSessionRowsByParent,Object.fromEntries(Object.entries(t.rowsByParent).map(([e,t])=>[e,t.map(i)]))),e.activeSessionLineageRoot=t.topmostRow?i(t.topmostRow):n}function dx(e,t,n,r,i){let a=e.context?.sessions;if(!i())return null;let o=n(t,e.sessionsResult?.defaults,{archivedFilter:`all`})===!0;if(!i())return null;let s=()=>a?.state.result?.sessions.find(e=>j(e.key,t.key));if(!o){let t=[s(),e.activeSessionLineageSelectedRow].find(e=>e&&i()&&a?.reconcile(e,void 0,{archivedFilter:`all`})===!0);if(!i())return null;if(!t)return e.activeSessionLineageSelectedRow}let c=s();return c?sx(e,c,e.activeSessionLineageSelectedRow??void 0,r):(e.activeSessionLineageSelectedRow=null,null)}function fx(e,t,n,r,i,a){if(!a())return;let o=e.activeSessionLineageRoot,s=e.activeSessionLineageSelectedRow,c=t=>{let n=Ft(t.key)?.agentId??t.agentId?.trim()??null,r=e=>de(e,t.key,n),a=s&&r(s)?s:o&&r(o)?o:null,c=e.sessionsResult?.sessions.find(r)??t;return i(m(c,a??void 0),c,a??void 0)},l=n.topmostRow?c(n.topmostRow):null,u=Object.fromEntries(Object.entries(n.rowsByParent).map(([e,t])=>[e,t.map(c)]));e.childSessionRowsByParent=ex(e.childSessionRowsByParent,u),e.activeSessionLineageRoot=l;let d=n.selectedObservation?.row??[l,...Object.values(u).flat(),...Qb(e.sessionsResult?.sessions??[],e.childSessionRowsByParent).values()].filter(e=>e!=null&&j(e.key,t)).reduce((e,t)=>!e||(t.updatedAt??0)>(e.updatedAt??0)?t:e,void 0);d?dx(e,d,n.selectedObservation?.reconcile??((t,n,i)=>e.context?.sessions.reconcile(t,n,{...i,sourceCanonicalListRevision:r})??!1),i,a):e.activeSessionLineageSelectedRow=n.lookupFailed?s:null}function px(e,t){if(!t)return;let n=e.context?.gateway?.snapshot.sessionKey?.trim();if(n&&j(n,t))return;let r=e.sessionsResult?.sessions.find(e=>j(e.key,t))??[e.activeSessionLineageSelectedRow,e.activeSessionLineageRoot,...Object.values(e.childSessionRowsByParent).flat()].find(e=>e!=null&&j(e.key,t));r?.archived===!0&&(e.childSessionRowsByParent=Object.fromEntries(Object.entries(e.childSessionRowsByParent).map(([e,n])=>[e,n.filter(e=>!j(e.key,t))])),e.context?.sessions.reconcile(r,e.sessionsResult?.defaults,{archivedFilter:`active`}))}var mx;function hx(){return(hx=e((()=>{Nt(),Dc(),u(),A(),ft(),mx=16})))()}function gx(e){return{assistantAgentId:e?.agentSelection.state.selectedId??e?.gateway.snapshot.assistantAgentId,agentsList:e?.agents.state.agentsList,hello:e?.gateway.snapshot.hello}}var _x;function vx(){return(vx=e((()=>{cr(),A(),hx(),_x=class{constructor(e,t,n){this.owner=e,this.route=t,this.childScope=n,this.routeKey=null,this.loaded=null,this.request=null,this.retryTimer=null,this.binding=null,this.navigation=null}selectedAgentId(){let e=this.owner.context?.agentSelection.state.selectedId?.trim();return e?G(e):null}identity(e){return Me(gx(this.owner.context),e)}scopeIsCurrent(e){let t=this.owner.context,n=this.route();return this.owner.isSessionDataHostConnected&&Wr(n.routeId)&&n.key.trim()===e.key&&this.routeKey===e.key&&this.selectedAgentId()===e.selectedAgentId&&t?.sessions===e.sessions&&t.gateway===e.gateway&&e.sessions.captureConnectionScope()!==null&&e.gateway.snapshot.phase===`connected`&&e.gateway.snapshot.client===e.client&&e.gateway.connectionRevision===e.connectionRevision}bindingIsCurrent(e){let t=this.identity(e.key);return this.binding===e&&this.scopeIsCurrent(e)&&t.sessionKey===e.target.key&&(t.agentId??e.selectedAgentId)===e.target.agentId&&(e.observation?.isCurrent()??!0)}clearRetry(){this.retryTimer!==null&&(globalThis.clearTimeout(this.retryTimer),this.retryTimer=null)}retireWalk(){this.request=null,this.loaded=null,this.clearRetry()}retire(){let e=this.binding;this.binding=null,e?.observation?.dispose(),this.retireWalk()}clearPresentation(){this.owner.activeSessionLineageRoot=null,this.owner.activeSessionLineageSelectedRow=null}evictPreviousLineage(){this.routeKey&&this.identity(this.routeKey).sessionKey!==`global`&&px(this.owner,this.routeKey)}synchronize(){let e=this.route(),t=this.owner.context,n=Wr(e.routeId)?e.key.trim():``,r=n?this.identity(n):null,i=this.selectedAgentId(),a=this.navigation;!n||!r||!t?this.navigation=null:(a?.key!==n||a.identity.sessionKey!==r.sessionKey||a.identity.agentId!==r.agentId||a.selectedAgentId!==i||a.sessions!==t.sessions||a.gateway!==t.gateway)&&(this.navigation={key:n,identity:r,selectedAgentId:i,sessions:t.sessions,gateway:t.gateway}),this.routeKey!==null&&(!Wr(e.routeId)||e.key.trim()!==this.routeKey)?(this.evictPreviousLineage(),this.retire(),this.routeKey=null,this.clearPresentation(),this.owner.requestSessionDataUpdate()):(a!==this.navigation||this.binding&&!this.bindingIsCurrent(this.binding))&&(this.retire(),this.clearPresentation(),this.owner.requestSessionDataUpdate())}reset(e){if(this.binding&&this.bindingIsCurrent(this.binding)&&(this.binding.target.key===`global`||e)){this.binding.target.key===`global`?this.publish(this.binding,this.binding.observation?.row??null):this.retireWalk();return}this.retire(),e||(this.routeKey=null,this.clearPresentation())}disconnect(){this.navigation=null,this.retire()}publish(e,t){if(!this.bindingIsCurrent(e))return;let n=this.selectedRow();t?e.target.key===`global`?lx(this.owner,t,e.sessions.inheritRow):sx(this.owner,t,n,e.sessions.inheritRow):this.clearPresentation(),e.target.key!==`global`&&!this.request?.publishingSelected&&this.retireChangedLineage(n,t)}observe(e,t){let n={...e,target:t,refreshRequested:!1};return this.binding=n,n.observation=e.sessions.observeRow(t,e=>{if(this.binding===n){if(!this.bindingIsCurrent(n)){this.synchronize();return}this.publish(n,e),!e&&this.request===null&&(this.loaded=null),this.owner.requestSessionDataUpdate()}},{onInvalidate:e=>{e===`runner-availability`&&this.bindingIsCurrent(n)&&(n.refreshRequested=!0,this.loaded=null,this.owner.requestSessionDataUpdate())}}),this.synchronize(),this.bindingIsCurrent(n)?(this.publish(n,n.observation.row),n):(n.observation.dispose(),n)}selectedRow(){return this.owner.activeSessionLineageSelectedRow??this.owner.sessionsResult?.sessions.find(e=>j(e.key,this.routeKey))}retireChangedLineage(e,t){e&&t&&(e.sessionId&&t.sessionId&&e.sessionId!==t.sessionId||D(Ie(e))!==D(Ie(t)))&&this.retireWalk()}captureChildRead(e){this.synchronize();let t=this.navigation,n=t?.key,i=this.owner.context?.sessions,a=this.owner.context?.gateway,o=i?.captureConnectionScope(),s=gx(this.owner.context),c=t?.identity.sessionKey===`global`,l=c?this.binding:null,u=l?.observation?.captureReconcile(),d=c?void 0:i?.captureReconcile(),f=d?(t,n,r)=>d(t,n,{...r,sourceListScope:e}):void 0,p=()=>this.owner.isSessionDataHostConnected&&i===this.owner.context?.sessions&&a===this.owner.context?.gateway&&!!(o&&i?.isConnectionScopeCurrent(o)),m=()=>(this.synchronize(),p()&&t!==null&&t===this.navigation);return{isCurrent:p,reconcile:e=>{if(!(c?r(s,n,e.key,e.agentId):j(e.key,n))||!m())return{status:`not-selected`};if(!c){let t=f&&i?dx(this.owner,e,f,i.inheritRow,m):null;return m()?{status:`selected`,row:t}:{status:`not-selected`}}if(!l||!u||!this.bindingIsCurrent(l))return{status:`selected`,row:null};let t=u(e);return m()?t.status===`current`?(this.publish(l,t.row),{status:`selected`,row:t.row}):t.status===`invalidated`?(this.loaded=null,this.owner.requestSessionDataUpdate(),{status:`selected`,row:l.observation?.row??null}):(this.synchronize(),{status:`selected`,row:null}):{status:`not-selected`}}}}load(e){this.synchronize();let t=e.trim();if(t!==this.routeKey&&(this.evictPreviousLineage(),this.retire(),this.routeKey=t,this.clearPresentation(),this.owner.requestSessionDataUpdate()),this.request)return this.request.promise;let{gateway:n,sessions:r}=this.owner.context??{},i=n?.snapshot.client;if(!t||this.loaded||this.retryTimer!==null||!n||!r||!i)return Promise.resolve();let a={key:t,gateway:n,sessions:r,client:i,selectedAgentId:this.selectedAgentId(),connectionRevision:n.connectionRevision};if(!this.scopeIsCurrent(a))return Promise.resolve();let o=this.identity(t);if(o.sessionKey===`global`&&!o.agentId)return Promise.resolve();let s=o.agentId??a.selectedAgentId,c=this.binding,l=s?c??this.observe(a,{key:o.sessionKey,agentId:s}):null;if(l&&!this.bindingIsCurrent(l))return Promise.resolve();let u=o.sessionKey===`global`?l:null,d=u??(l===c&&l?.observation?.row||l?.refreshRequested?l:null),f=this.childScope(),p={sourceRevision:r.canonicalListRevision,publishingSelected:!1,promise:Promise.resolve()};return this.request=p,p.promise=Promise.resolve().then(async()=>{let e=()=>p===this.request&&this.scopeIsCurrent(a)&&this.identity(t).sessionKey===o.sessionKey&&this.identity(t).agentId===o.agentId&&(u?this.bindingIsCurrent(u):f===this.childScope()),n=await $b({client:i,sessions:r,sessionKey:t,captureReconcile:r.captureReconcile,knownRows:Qb(this.owner.sessionsResult?.sessions??[],this.owner.childSessionRowsByParent),isCurrent:e,...d?{readSelected:()=>this.readDescriptor(d,e)}:{publishSelected:(t,n)=>{p.publishingSelected=!0;try{return dx(this.owner,t,n,r.inheritRow,e)}finally{p.publishingSelected=!1}}}});if(!n||!e()){p===this.request&&(this.request=null,this.synchronize());return}if(u){let e=u.observation?.row;e?ux(this.owner,n,e,r.inheritRow):this.clearPresentation()}else fx(this.owner,t,n,p.sourceRevision,r.inheritRow,e);e()&&(this.request=null,n.lookupFailed?this.retryTimer=globalThis.setTimeout(()=>{this.retryTimer=null,this.routeKey===t&&this.owner.requestSessionDataUpdate()},5e3):this.loaded=l?.refreshRequested?null:o,this.owner.requestSessionDataUpdate())}),p.promise}async readDescriptor(e,t){let n=e.observation;if(n&&t()){if(n.row&&!e.refreshRequested)return n.row;for(;t();){let r=e.refreshRequested;e.refreshRequested=!1;let i=n.captureReconcile(),a=await e.sessions.describe({key:e.key,...p(e.key)?{agentId:e.target.agentId}:{}},{client:e.client,refresh:r}).catch(t=>{throw e.refreshRequested=!0,t});if(!t())return;let o=i(a?.session?{...a.session,runtimeSampledAt:a.session.runtimeSampledAt??Date.now()}:void 0);if(o.status!==`invalidated`){if(o.status===`retired`){this.synchronize();return}return this.publish(e,o.row),o.row??void 0}}}}}})))()}function yx(e,t){return[e.activeSessionLineageSelectedRow,e.activeSessionLineageRoot,...Object.values(e.childSessionRowsByParent).flat()].find(n=>n!=null&&r(gx(e.context),t,n.key,n.agentId))}function bx(e,t,n){let r=jb(n,e=>e.key===t),i=e.getSessionNavigationState(),a=yx(e.sessionData,t),o=r??Mb({sessionKey:t,navigationState:i,sessionResultsByAgent:e.sessionData.sessionResultsByAgent})??(a?i.toSidebarSession(a,!0):void 0);return tm({catalogs:e.visibleSessionCatalogs(),sessionKey:t,liveRow:o})}function xx(e){if(e.adopted.size===0)return e.rows;let t=new Map(e.rows.map(e=>[e.key,e])),n=[...e.sessionsResult?.sessions??[],...Object.values(e.sessionResultsByAgent).flatMap(e=>e.sessions)];for(let r of n)e.adopted.has(r.key)&&!t.has(r.key)&&t.set(r.key,e.navigationState.toSidebarSession(r));return[...t.values()]}function Sx(){return(Sx=e((()=>{A(),om(),Nb(),vx()})))()}var Cx;function wx(){return(wx=e((()=>{Zi(),pc(),A(),Cx=class{constructor(e,t){this.host=e,this.options=t,this.states=new Map,this.gateway=null,this.client=null,this.agentId=null,this.store=null,this.stopStoreUpdates=null,this.connected=!1,e.addController(this)}hostConnected(){this.connected=!0}hostUpdated(){this.connected&&this.refreshVisible()}hostDisconnected(){this.connected=!1,this.releaseStore(),this.reset(!1)}summary(e,t,n){let r=this.options.getGateway();if(!r||!Yi(r.snapshot,`controlUi.sessionPullRequests.subscribe`,`operator.read`))return;let i=this.states.get(e);return i?.worktreeId===t?i.summary:n}releaseStore(){this.store?.unwatch(this),this.stopStoreUpdates?.(),this.stopStoreUpdates=null,this.store=null,this.gateway=null,this.client=null,this.agentId=null}reset(e){this.states.size!==0&&(this.states.clear(),e&&this.host.requestUpdate())}eligibleRows(){return this.options.getRows().filter(e=>!e.isChild&&e.worktreeId)}scopedKey(e){return ge(e,Ft(e)?.agentId??this.options.getSelectedAgentId())}applySnapshots(e){let t=this.store;if(!t)return;let n=!1;for(let r of e??this.eligibleRows()){if(!r.worktreeId)continue;let e=t.get(this.scopedKey(r.key));if(!e){let e=this.states.delete(r.key);if(e){let e=this.options.getSessions();e&&e.setPullRequestSummary(r.key,void 0,e.capturePullRequestEpoch(r.key))}n=e||n;continue}if(e.status!==`ready`&&e.pullRequests.length===0)continue;let i=this.states.get(r.key),a={summary:Zs(e.pullRequests,i?.summary),worktreeId:r.worktreeId};(!i||i.summary!==a.summary||i.worktreeId!==a.worktreeId)&&(this.states.set(r.key,a),n=!0)}n&&this.host.requestUpdate()}refreshVisible(){let e=this.options.getGateway();if(!e||!this.options.getConnected()||!Yi(e.snapshot,`controlUi.sessionPullRequests.subscribe`,`operator.read`)){this.releaseStore(),this.reset(!0);return}e!==this.gateway&&(this.releaseStore(),this.gateway=e,this.store=Al(e),this.stopStoreUpdates=this.store.subscribe(()=>this.applySnapshots())),e.snapshot.client!==this.client&&(this.client=e.snapshot.client,this.reset(!0));let t=this.options.getSelectedAgentId();t!==this.agentId&&(this.agentId=t,this.reset(!0));let n=this.eligibleRows(),r=new Set(n.map(e=>e.key)),i=!1;for(let e of this.states.keys())r.has(e)||(this.states.delete(e),i=!0);i&&this.host.requestUpdate(),this.store?.watch(this,n.map(e=>this.scopedKey(e.key)),{passive:!0}),this.applySnapshots(n)}}})))()}function Tx(e){return!!(wv(e.attention)||e.agentStatusNote||e.hasActiveRun&&e.status===`queued`)}var Ex,Dx,Ox;function kx(){return(kx=e((()=>{Rc(),J(),Av(),iy(),Ex=1e3,Dx=2e3,Ox=class{constructor(e=()=>Date.now(),t){this.now=e,this.host=t,this.revision=0,this.createdOrderRevision=0,this.observedResults=[],this.subtitleTimer=null,this.subtitleDeadline=1/0,this.observedOrder=new Map,this.nextCreatedOrder=0,this.stickySections=new Map,this.childModes=new Map,this.heldSubtitles=new Map,this.previousInput=null,this.previousCollapsedSections=new Set}get createdOrder(){return this.observedOrder}observeRows(e){if(e.length===this.observedResults.length&&e.every((e,t)=>Object.is(e,this.observedResults[t])))return;this.observedResults=e;let t=this.nextCreatedOrder;for(let t of e)for(let{key:e}of t.sessions)e&&!this.observedOrder.has(e)&&this.observedOrder.set(e,this.nextCreatedOrder++);if(t!==this.nextCreatedOrder&&(this.createdOrderRevision+=1,this.revision+=1),this.observedOrder.size<=Ex)return;let n=new Set(e.flatMap(e=>e.sessions.map(({key:e})=>e)));for(let e of this.observedOrder.keys()){if(this.observedOrder.size<=Ex)break;n.has(e)||this.observedOrder.delete(e)}}promoteCreatedSession(e){let t=this.observedOrder.get(e);if(t===0)return!1;for(let[n,r]of this.observedOrder)n!==e&&(t===void 0||r<t)&&(this.observedOrder.set(n,r+1),this.nextCreatedOrder=Math.max(this.nextCreatedOrder,r+2));return this.observedOrder.set(e,0),this.nextCreatedOrder=Math.max(this.nextCreatedOrder,1),this.createdOrderRevision+=1,this.revision+=1,!0}project(e){this.revision+=1,this.clearSubtitleTimer();let t=this.previousInput,n=t!==null&&(t.agentId!==e.agentId||t.connectionIdentity!==e.connectionIdentity||t.listSource!==e.listSource);(n||t!==null&&(t.grouping!==e.grouping||t.sortMode!==e.sortMode||t.statusFilter!==e.statusFilter))&&this.resetMembership(),t!==null&&(t.agentId!==e.agentId||t.connectionIdentity!==e.connectionIdentity)&&this.childModes.clear(),n&&this.heldSubtitles.clear();for(let t of e.collapsedSections)this.previousCollapsedSections.has(t)||this.resetMembership(t);this.previousInput={grouping:e.grouping,sortMode:e.sortMode,statusFilter:e.statusFilter,agentId:e.agentId,connectionIdentity:e.connectionIdentity,listSource:e.listSource},this.previousCollapsedSections=new Set(e.collapsedSections);let r=new Set([...this.childModes.keys(),...this.heldSubtitles.keys()]),i=t=>{r.delete(t.key),t.containsActiveDescendant&&!this.childModes.has(t.key)&&this.childModes.set(t.key,`expanded`),this.observeSubtitle(t,e.subtitle);for(let e of t.children)i(e)};e.rows.forEach(i);for(let e of r)this.childModes.delete(e),this.heldSubtitles.delete(e);let{grouping:a,knownGroups:o,selfOwnerId:s,sectionOrder:c,catalogIds:l}=e,u=e.emptyGroupsMode===`always`||e.emptyGroupsMode===`filtering`&&e.ownerFiltered,d=e.sections??Xc(e.rows,{grouping:a,knownGroups:o,selfOwnerId:s,sectionOrder:c,catalogIds:l}).filter(e=>e.id!==`pinned`&&!(u&&!e.id.startsWith(`catalog:`)&&e.rows.length===0)),f=new Set(d.map(e=>e.id));for(let e of this.stickySections.keys())f.has(e)||this.stickySections.delete(e);let p=e.grouping!==`none`&&d.some(e=>e.id!==`ungrouped`&&(e.id!==`work`||e.rows.length>0)),m=[],h=[];for(let t of d){let n=t.rows.length,r=!t.id.startsWith(`agent:`)&&(t.id!==`ungrouped`||p),i=(r||t.id.startsWith(`agent:`))&&e.collapsedSections.has(t.id),a=e.visibleSessionLimits.get(t.id)??10,o=t.rows.reduce((e,t)=>e+Number(t.active||t.pinned),0),s=Math.max(o,Math.min(n,10)),c=0;if(!i){let e=Math.max(0,a-o),n=a,r=this.stickySections.get(t.id);t.rows=t.rows.filter(t=>t.active||t.pinned?!0:e>0?(--e,!0):n===0||!r?.has(t.key)?!1:(--n,!0)),this.stickySections.set(t.id,new Set(t.rows.map(e=>e.key))),m.push(...t.rows),c=t.rows.length}h.push(Object.assign(t,{totalRowCount:n,visibleRowCount:c,visibleLimit:a,collapsedVisibleRowCount:s,renderHeader:r}))}return{sections:h,visibleRows:m}}resetMembership(e){this.revision+=1,e===void 0?this.stickySections.clear():this.stickySections.delete(e)}isChildrenExpanded(e){let t=this.childModes.get(e);return t===`expanded`||t===`expanded-fully`}isChildrenFullyShown(e){return this.childModes.get(e)===`expanded-fully`}toggleChildren(e){return this.revision+=1,this.isChildrenExpanded(e.key)?(this.childModes.set(e.key,`collapsed-by-user`),{expanded:!1}):(this.childModes.set(e.key,`expanded`),{expanded:!0})}showMoreChildren(e){this.isChildrenExpanded(e)&&(this.childModes.set(e,`expanded-fully`),this.revision+=1)}dispose(){this.clearSubtitleTimer(),this.revision+=1}clearSubtitleTimer(){this.subtitleTimer!==null&&globalThis.clearTimeout(this.subtitleTimer),this.subtitleTimer=null,this.subtitleDeadline=1/0}scheduleSubtitleUpdate(e){!this.host?.isConnected||this.subtitleDeadline<=e||(this.clearSubtitleTimer(),this.subtitleDeadline=e,this.subtitleTimer=globalThis.setTimeout(()=>{this.subtitleTimer=null,this.subtitleDeadline=1/0,this.revision+=1,this.host?.requestUpdate()},Math.max(0,e-this.now())))}resolveSubtitle(e){let t=e.session.hasActiveRun&&e.showPreview&&!e.toolActivity?this.heldSubtitles.get(e.session.key):void 0;return t?e.hasDisplay?t.catalogValue??ny(e):t.value:ny(e)}observeSubtitle(e,t){if(!e.hasActiveRun||!t.showPreview){this.heldSubtitles.delete(e.key);return}!t.sidebarLiveActivity&&this.heldSubtitles.get(e.key)?.value.narration&&this.heldSubtitles.delete(e.key);let n={session:e,hasDisplay:!1,sidebarLiveActivity:t.sidebarLiveActivity,showPreview:t.showPreview,narrationLine:t.narrationLines.get(e.key),observerDigest:t.observerDigests.get(e.key)??null},r=ny(n);if(!r.subtitle){(e.attention.kind===`question`||e.attention.kind===`error`)&&this.heldSubtitles.delete(e.key);return}let i=this.heldSubtitles.get(e.key),a=this.now(),o=i!==void 0&&i.value.subtitle!==r.subtitle;if(o&&a-i.shownAt<Dx&&!Tx(e)){this.scheduleSubtitleUpdate(i.shownAt+Dx);return}let s=ny({...n,hasDisplay:!0});this.heldSubtitles.set(e.key,{value:r,...s.subtitle?{catalogValue:s}:{},shownAt:i!==void 0&&!o?i.shownAt:a})}}})))()}function Ax(e){return e.sessionsStatusFilter===`archived`||e.sessionsStatusFilter===`snoozed`?[]:gy(e.sessionData.sessionCatalogs,e.sessionData.pendingCatalogArchives).filter(t=>!e.hiddenSessionCatalogIds.has(t.id))}function jx(e){return[...e.sessionsResult?.sessions??[],...Object.values(e.sessionResultsByAgent).flatMap(e=>e.sessions)]}function Mx(e,t){let n=mb({sessionData:e.sessionData,selectedAgentId:e.expandedAgentId(),statusFilter:e.sessionsStatusFilter,now:Date.now(),deletionState:(t,n)=>e.sessionDataContext?.sessions.deletionState(t,n),archiveVisibility:t=>e.sessionDataContext?.sessions.archiveVisibility(t)});return im(Ax(e),t,jx(e.sessionData),n.isSessionHidden)}function Nx(e,t,n){return[...t?.sessions??[],...jx(e),...n.visibleSessionRows,...e.activeSessionLineageRoot?[e.activeSessionLineageRoot]:[]]}function Px(){return(Px=e((()=>{hb(),Ty(),om()})))()}function Fx(e){switch(e.kind){case`standing-grant`:return e.expiresInDays===void 0?N(`execApproval.scope.standingGrant`,{automation:e.automation}):N(`execApproval.scope.standingGrantDays`,{automation:e.automation,count:String(e.expiresInDays)});case`message-send`:return N(`execApproval.scope.messageSend`,{count:String(e.recipientCount),target:e.target});case`payment`:return N(`execApproval.scope.payment`,{amount:e.amount,currency:e.currency,target:e.target});case`external-post`:return N(`execApproval.scope.externalPost`,{target:e.target})}return e}function Ix(e){let t=e.replace(/\s+/g,` `).trim();return t.length>64?`${no(t,61)}…`:t}function Lx(){return(Lx=e((()=>{k()})))()}function Rx(e){let t=e.replace(/\s+/g,` `).trim();return t.length>240?`${no(t,239)}…`:t}var zx;function Bx(){return(Bx=e((()=>{Lx(),zd(),Zi(),fl(),A(),ic(),E(),J(),zx=class{constructor(e){this.host=e,this.revision=0,this.resolverInputs=[],this.attentionGateway=null,this.attentionGatewayClient=null,this.attentionGatewayConnected=!1,this.agentStatusExpiryTimer=null,this.agentStatusExpiryAt=null,this.snoozeWakeTimer=null,this.invalidate=()=>{this.revision+=1,this.host.requestUpdate()},e.addController(this),this.attentionSubscriptions=new C(e),this.questionPromptState=bd(this.invalidate),this.attentionSubscriptions.watchStore(()=>e.sessionAttentionContext?.gateway,e=>this.synchronizeAttentionGateway(e)).effect(()=>e.sessionAttentionContext?.gateway,e=>e.subscribeEvents(e=>{Ed(this.questionPromptState,e)})).watchStore(()=>e.sessionAttentionContext?.overlays,this.invalidate)}hostDisconnected(){this.revision+=1,this.attentionGateway=null,this.attentionGatewayClient=null,this.attentionGatewayConnected=!1,this.agentStatusExpiryTimer&&(globalThis.clearTimeout(this.agentStatusExpiryTimer),this.agentStatusExpiryTimer=null,this.agentStatusExpiryAt=null),this.snoozeWakeTimer!==null&&(globalThis.clearTimeout(this.snoozeWakeTimer),this.snoozeWakeTimer=null),Nd(this.questionPromptState)}synchronizeAttentionGateway(e){let t=e.snapshot.phase===`connected`,n=t&&Xi({hello:e.snapshot.hello},`question.list`)===!0?e.snapshot.client:null;(e!==this.attentionGateway||n!==this.attentionGatewayClient||t!==this.attentionGatewayConnected)&&(this.attentionGateway=e,this.attentionGatewayClient=n,this.attentionGatewayConnected=t,this.invalidate(),Md(this.questionPromptState,n),n&&jd(this.questionPromptState,n,()=>this.host.isConnected&&this.host.sessionAttentionContext?.gateway===e&&e.snapshot.phase===`connected`&&e.snapshot.client===n))}resolveSessionAgentStatus(e){let t=dc(e);if(t)return this.scheduleAgentStatusExpiry(t.expiresAt),t}scheduleAgentStatusExpiry(e){this.host.isConnected&&(this.agentStatusExpiryAt!==null&&this.agentStatusExpiryAt<=e||(this.agentStatusExpiryTimer&&globalThis.clearTimeout(this.agentStatusExpiryTimer),this.agentStatusExpiryAt=e,this.agentStatusExpiryTimer=globalThis.setTimeout(()=>{this.agentStatusExpiryTimer=null,this.agentStatusExpiryAt=null,this.invalidate()},Math.max(0,e-Date.now()+1))))}scheduleSessionSnoozeWake(e){this.snoozeWakeTimer!==null&&(globalThis.clearTimeout(this.snoozeWakeTimer),this.snoozeWakeTimer=null);let t=mc(e,Date.now());this.host.isConnected&&t!==null&&(this.snoozeWakeTimer=globalThis.setTimeout(()=>{this.snoozeWakeTimer=null,this.invalidate()},Math.min(2147483647,Math.max(0,t-Date.now()+1))))}createResolver(){let e=this.host.sessionAttentionContext,t={hello:e?.gateway.snapshot.hello,agentsList:e?.agents.state.agentsList},n=[this.revision,t.hello,t.agentsList,e?.overlays];if(this.resolver&&n.every((e,t)=>Object.is(e,this.resolverInputs[t])))return this.resolver;this.resolverInputs=n;let i=[...Ld(this.questionPromptState).filter(e=>e.status===`pending`).map(e=>({sessionKey:e.sessionKey,agentId:e.agentId,kind:`question`,id:e.id,preview:Rx(e.questions[0]?.question??``),count:e.questions.length,createdAtMs:e.createdAtMs})),...(e?.overlays?.snapshot.approvalQueue??[]).map(e=>({sessionKey:e.request.sessionKey,agentId:e.request.agentId,kind:`approval`,id:e.id,preview:e.kind===`exec`?Ix(e.request.command):Rx(e.pluginTitle??e.request.command),count:1,createdAtMs:e.createdAtMs}))];return this.resolver=e=>{let n=S_(i.filter(n=>r(t,e.key,n.sessionKey,n.agentId,e.agentId)).map(e=>({kind:e.kind,requests:[e]})));return n.kind===`none`?(this.resolveSessionAgentStatus(e),lc(e)):n}}}})))()}function Vx(e,t){return document.addEventListener(Ue,e),document.addEventListener(`visibilitychange`,t),()=>{document.removeEventListener(Ue,e),document.removeEventListener(`visibilitychange`,t)}}function Hx(e,t,n){(n!==`list`||Qx.get(e)!==`action`)&&(e.sessionMutationError=t,t===null?Qx.delete(e):Qx.set(e,n))}function Ux(e,t){let n=new Set(t.map(G)),r=Object.entries(e.sessionResultsByAgent),i=r.filter(([e])=>n.has(e));i.length!==r.length&&(e.sessionResultsByAgent=Object.fromEntries(i)),e.sessionsAgentId&&!n.has(G(e.sessionsAgentId))&&(e.sessionsResult=null,e.sessionsAgentId=null)}function Wx(e,t,n){let r=()=>{let n=e.state.agentsList;n&&Ux(t,n.agents.map(e=>e.id))};return r(),e.subscribe(()=>{r(),n()})}function Gx(e){let{ownerId:t,involvingMe:n}=e.sidebarSessionOwnerFilter();return e.sidebarSessionStatusFilter()!==`active`||!!(t||n)}function Kx(e,t){let{ownerId:n,involvingMe:r}=e.sidebarSessionOwnerFilter();return{source:`sidebar`,excludeDock:!0,ownerId:r?void 0:n||void 0,involvingMe:r||void 0,agentId:t,archivedFilter:e.sidebarSessionStatusFilter(),limit:200,rowMode:`compact`,includeDerivedTitles:!0,includeLastMessage:!0}}function qx(e,t){if(e.sessionsResult=t.result,e.sessionsAgentId=t.agentId,e.sessionsStartupPending=t.startupPending===!0,t.result&&t.agentId){let n=G(t.agentId);e.sessionResultsByAgent[n]!==t.result&&(e.sessionResultsByAgent={...e.sessionResultsByAgent,[n]:t.result})}}function Jx(e,t,n,r){let i=t=>{r()&&(e.context?.gateway.snapshot.phase===`connected`||t.result)&&(qx(e,t),e.sessionsLoading=t.loading,Hx(e,t.error,`list`),e.requestSessionDataUpdate())},a=t.subscribeList(n,i);return i(t.listSnapshot(n)),()=>{a(),e.sessionsStartupPending=!1,Hx(e,null,`list`)}}function Yx(e,t){let n=e.context,r=t();return!n||!r?Promise.resolve():n.connectionBootstrap.run(r,async()=>{e.context===n&&t()===r&&e.isSessionDataHostConnected&&await e.refreshSidebarSessions()},{background:!0})}function Xx(e,t,n=!1){let r=e.sessionsResult,i=r?.nextOffset===void 0?r?.sessions.length:r.nextOffset;return!e.context?.sessions||!t||n&&(e.sessionsLoading||!r?.hasMore||typeof i!=`number`||G(t)!==G(e.expandedAgentId()))?Promise.resolve():e.context.sessions.refreshList({...e.sessionListQuery(t),...n&&typeof i==`number`?{offset:i,append:!0}:{},force:!0})}function Zx(e,t){return e.subscribeEvents(n=>{if(n.event===`sessions.catalog.host`){Yi(e.snapshot,`sessions.catalog.list`,`operator.read`)&&t.handleSessionCatalogHostEvent(n.payload);return}if(n.event===`sessions.catalog.changed`){Yi(e.snapshot,`sessions.catalog.list`,`operator.read`)&&t.handleSessionCatalogChanged(n.payload);return}if(n.event===`presence`){let e=Xt(n.payload);t.presencePayload=e?{presence:e}:void 0,t.requestSessionDataUpdate()}})}var Qx;function $x(){return($x=e((()=>{Zi(),xt(),A(),Qx=new WeakMap})))()}var eS;function tS(){return(tS=e((()=>{J(),eS=class{constructor(e){this.notify=e,this.state=`none`,this.element=null,this.resizeObserver=null,this.frame=null}synchronize(e){let t=e.querySelector(`.sidebar-shell__body`);t!==this.element&&(this.resizeObserver?.disconnect(),this.element=t,this.resizeObserver=null,t&&typeof ResizeObserver==`function`&&(this.resizeObserver=new ResizeObserver(()=>this.update(t)),this.resizeObserver.observe(t))),t&&this.frame===null&&(this.frame=requestAnimationFrame(()=>{this.frame=null,this.element?.isConnected&&this.update(this.element)}))}update(e){let t=w_(e);t!==this.state&&(this.state=t,this.notify())}dispose(){this.resizeObserver?.disconnect(),this.resizeObserver=null,this.element=null,this.frame!==null&&(cancelAnimationFrame(this.frame),this.frame=null)}}})))()}var nS,rS;function iS(){return(iS=e((()=>{nS={source:`sidebar`,includeOwnerSessionCounts:!0,limit:1,includeDerivedTitles:!1,includeLastMessage:!1,includeGlobal:!1,includeUnknown:!1,excludeSubagents:!0,excludeCron:!0,excludeSystem:!0,excludeDock:!0},rS=class{constructor(e){this.changed=e,this.counts=null,this.error=null,this.viewerId=null,this.observation=null,this.accept=null}synchronize(e,t,n){if(this.source===e&&(!e||this.viewerId===t))return;let r=this.source!==void 0;this.dispose();let i=e?.captureConnectionScope();if(!e||!i||!n){r&&this.changed();return}this.source=e,this.viewerId=t;let a=!1,o,s=()=>{if(o&&e.isConnectionScopeCurrent(i)){if(this.error=o.error,a&&!o.loading&&!o.error){let e=o.result?.ownerSessionCounts;this.counts=e?new Map(e.map(({profileId:e,open:t,running:n})=>[e,{open:t,running:n}])):null}this.changed()}};this.observation=e.observeList(nS,e=>{o=e,s()}),this.accept=()=>{a=!0,s()};let c=this.observation;n.run(c,async()=>{this.observation===c&&e.isConnectionScopeCurrent(i)&&await this.refresh()},{background:!0})}refresh(){let e=this.observation,t=()=>{this.observation===e&&this.accept?.()};return e?.refresh().then(t,t)??Promise.resolve()}dispose(){this.observation?.dispose(),this.observation=null,this.source=void 0,this.viewerId=null,this.accept=null,this.counts=null,this.error=null}}})))()}var aS;function oS(){return(oS=e((()=>{Nt(),_(),yl(),Dc(),A(),E(),hx(),Ny(),zy(),ab(),$x(),tS(),vx(),iS(),aS=class{constructor(e){this.host=e,this.sessionCatalogs=[],this.pendingCatalogArchives=new Set,this.sessionCatalogRefreshStatus=Py(),this.loadingMoreSessionCatalogIds=new Set,this.visibleSessionLimits=new Map,this.sessionsResult=null,this.sessionsAgentId=null,this.sessionsLoading=!1,this.sessionsStartupPending=!1,this.childSessionRowsByParent={},this.loadedChildSessionKeys=new Set,this.childSessionErrorsByParent=new Map,this.loadingChildSessionKeys=new Set,this.activeSessionLineageRoot=null,this.activeSessionLineageSelectedRow=null,this.sessionMutationError=null,this.ownerCounts=new rS(()=>this.requestSessionDataUpdate()),this.sessionResultsByAgent={},this.sessionCatalogLive=new My,this.sessionScopeGeneration=0,this.sessionCatalogAgentId=null,this.sessionCatalogRevision=0,this.sessionCatalogPageDepths=new Map,this.sessionCatalogRevisions=new Map,this.sessionScopeAgentId=null,this.sessionsSource=null,this.filteredSessionScope=null,this.unsubscribeFilteredSessions=null,this.childSessionScope={},this.childSessionCanonicalListRevision=null,this.childSessionQueries=new Map,this.cachedSessionResult=null,this.stopCatalogBrowserEvents=null,this.gatewaySource=null,this.gatewayConnectionRevision=0,this.gatewayClient=null,this.gatewayConnected=!1,this.gatewayAvailable=!1,this.sessionMutationEpoch=0,this.sessionMutationAbortController=new AbortController,this.scroll=new eS(()=>this.requestSessionDataUpdate()),this.lineage=new _x(this,()=>({routeId:this.host.activeRouteId,key:this.host.getRouteSessionKey()}),()=>this.childSessionScope),this.expandedAgentId=()=>this.host.expandedAgentId(),this.sessionCatalogIdsWithoutVisibleRows=()=>this.host.sessionCatalogIdsWithoutVisibleRows(),this.requestSessionDataUpdate=()=>this.host.requestUpdate(),this.sessionListQuery=e=>Kx(this.host,e),this.handleCatalogSessionContinued=e=>{Xy(this,e.detail)},this.handleSessionCatalogPageActivation=()=>{Wy(this)},this.invalidateSessionCatalogs=()=>eb(this),this.archiveSessionCatalog=rb.bind(null,this),this.importSessionCatalog=ib.bind(null,this),this.refreshSessionCatalogs=()=>Zy(this),this.loadMoreSessionCatalog=e=>tb(this,e),this.updateSessions=e=>{let t=e.state;this.cachedSessionResult&&!e.presentation.resultCached&&(this.sessionsResult===this.cachedSessionResult&&this.clearSessionCache(),this.cachedSessionResult=null),this.childSessionCanonicalListRevision!==e.canonicalListRevision&&(this.childSessionCanonicalListRevision=e.canonicalListRevision,this.loadedChildSessionKeys=new Set([...this.loadedChildSessionKeys].filter(e=>this.childSessionQueries.has(e))),this.lineage.reset(!0),this.requestSessionDataUpdate()),!Gx(this.host)&&(!e.presentation.result&&this.sessionsResult&&this.clearSessionCache(),qx(this,{...t,...e.presentation}),this.cachedSessionResult=e.presentation.resultCached?e.presentation.result:null,this.sessionsLoading=t.loading,this.requestSessionDataUpdate())},e.addController(this),this.subscriptions=new C({addController:()=>void 0,removeController:()=>void 0,requestUpdate:()=>e.requestUpdate(),get updateComplete(){return e.updateComplete}}),this.subscriptions.watchStore(()=>this.context?.gateway,e=>this.synchronizeGateway(e)).watchStore(()=>this.context?.sessions,e=>this.synchronizeSessions(e)).effect(()=>this.context?.sessions,t=>t.subscribeCreated(t=>e.promoteCreatedSession(t))).effect(()=>this.context?.gateway,e=>Zx(e,this)).watch(()=>this.context?.agents,(e,t)=>Wx(e,this,t)).watchStore(()=>this.context?.agentSelection,()=>this.synchronizeSessionScope())}get context(){return this.host.sessionDataContext}get isSessionDataHostConnected(){return this.host.isConnected}get sessionsStartingUp(){return this.sessionsStartupPending||this.sessionCatalogLive.startupPending}get sessionDataHostConnected(){return this.host.connected}hostConnected(){this.subscriptions.hostConnected(),this.stopCatalogBrowserEvents=Vx(this.handleCatalogSessionContinued,this.handleSessionCatalogPageActivation)}hostUpdate(){this.subscriptions.hostUpdate(),this.lineage.synchronize()}hostUpdated(){this.host.isConnected&&(this.synchronizeSessionScope(),this.synchronizeOwnerSessionCounts(),this.lineage.synchronize(),this.scroll.synchronize(this.host),Ky(this))}hostDisconnected(){this.ownerCounts.dispose(),this.resetChildSessionState(),this.retireFilteredSessions(),this.stopCatalogBrowserEvents?.(),this.stopCatalogBrowserEvents=null,this.host.dismissTransientMenus(),this.invalidateSessionMutations(),this.gatewaySource=null,this.gatewayClient=null,this.gatewayConnected=!1,this.gatewayAvailable=!1,this.retireSessionCatalogData(),this.scroll.dispose(),this.lineage.disconnect(),this.subscriptions.hostDisconnected()}sessionCatalogGatewayClient(){return Ey(this.context?.gateway.snapshot,this.host.connected)}synchronizeOwnerSessionCounts(){let e=Qc(this.presencePayload).users.some(e=>e.identity?.type===`profile`);this.ownerCounts.synchronize(this.host.connected&&e?this.context?.sessions:void 0,this.context?.gateway.snapshot.selfUser?.id??null,this.context?.connectionBootstrap)}retireSessionCatalogData(){this.sessionScopeGeneration+=1,this.pendingCatalogArchives=new Set,this.sessionsLoading=!1,this.loadingMoreSessionCatalogIds=new Set,this.sessionCatalogLive.clear()}resetSessionCatalogConnection(){this.retireSessionCatalogData(),this.sessionCatalogRevision+=1,this.sessionCatalogs=[],this.sessionCatalogRefreshStatus=Py(),this.sessionCatalogPageDepths.clear(),this.sessionCatalogRevisions.clear(),this.requestSessionDataUpdate()}synchronizeSessionScope(){let e=this.context,t=e?G(this.host.expandedAgentId()):null,n=Uy(this)??(e?.gateway.snapshot.phase===`connected`?null:this.sessionCatalogAgentId);if(t===this.sessionScopeAgentId&&n===this.sessionCatalogAgentId)return;let r=this.sessionScopeAgentId,i=this.sessionCatalogAgentId,a=r!==null&&r!==t,o=i!==null&&i!==n,s=!Gx(this.host)&&t!==null&&this.sessionsAgentId!==null&&G(this.sessionsAgentId)===t&&this.sessionsResult===e?.sessions.presentation.result;this.sessionScopeAgentId=t,this.sessionCatalogAgentId=n,this.retireSessionCatalogData(),this.sessionCatalogRevision+=1,this.sessionCatalogRefreshStatus=Py(),(a||o)&&(this.sessionCatalogs=[],this.sessionCatalogPageDepths.clear(),this.sessionCatalogRevisions.clear()),a&&!s&&this.clearSessionCache(),this.bindFilteredSessions(),this.requestSessionDataUpdate(),a&&e?.gateway.snapshot.phase===`connected`&&Gx(this.host)&&this.scheduleSidebarSessions()}handleSessionCatalogHostEvent(e){Yy(this,e)}handleSessionCatalogChanged(e){Jy(this,e)}get sessionsScrollState(){return this.scroll.state}updateSessionsScrollState(e){this.scroll.update(e)}resetChildSessionState(e=!1){for(let e of this.childSessionQueries.values())e.observation?.dispose();this.childSessionQueries.clear(),this.childSessionScope={},this.loadedChildSessionKeys=new Set,this.loadingChildSessionKeys=new Set,this.childSessionErrorsByParent=new Map,e||(this.childSessionRowsByParent={},this.activeSessionLineageRoot=null,this.activeSessionLineageSelectedRow=null),this.lineage.reset(e)}synchronizeSessions(e){let t=e!==this.sessionsSource;t&&(this.invalidateSessionMutations(),this.retireFilteredSessions(),this.clearSessionCache(),this.sessionsSource=e),this.updateSessions(e),this.context?.gateway.snapshot.phase===`connected`&&(this.context.connectionBootstrap.run(e.groupsLoad,()=>e.groupsLoad(),{background:!0}),t&&Gx(this.host)&&this.scheduleSidebarSessions())}synchronizeGateway(e){this.lineage.synchronize();let t=e.snapshot.client,n=e.snapshot.phase===`connected`,r=e!==this.gatewaySource||e.connectionRevision!==this.gatewayConnectionRevision,i=t!==this.gatewayClient,a=r||i,o=n!==this.gatewayConnected,s=te(e.snapshot),c=s&&!this.gatewayAvailable;if(this.gatewayAvailable=s,!a&&!o){this.synchronizeSessionScope(),this.synchronizeOwnerSessionCounts();let{awaitingGateway:e,error:t}=this.sessionCatalogRefreshStatus,n=this.sessionCatalogLive.requestGeneration!==null;c&&(e||t!==null||n)&&Wy(this);return}if(this.invalidateSessionMutations(),this.ownerCounts.dispose(),this.resetChildSessionState(!0),this.gatewaySource=e,this.gatewayConnectionRevision=e.connectionRevision,this.gatewayClient=t,this.gatewayConnected=n,this.presenceInstanceId=t?.instanceId,!n)this.presencePayload=void 0;else if(i||o){let t=Xt(e.snapshot.hello?.snapshot);this.presencePayload=t?{presence:t}:void 0}this.requestSessionDataUpdate(),a?(r&&this.clearSessionCache(),this.resetSessionCatalogConnection()):this.retireSessionCatalogData(),n&&this.sessionsSource&&Gx(this.host)&&this.scheduleSidebarSessions()}clearSessionCache(){this.childSessionCanonicalListRevision=null,this.cachedSessionResult=null,this.sessionsResult=null,this.sessionsAgentId=null,this.sessionsStartupPending=!1,this.sessionResultsByAgent={},this.resetChildSessionState(),this.visibleSessionLimits=new Map,this.requestSessionDataUpdate()}retireFilteredSessions(){this.unsubscribeFilteredSessions?.(),this.unsubscribeFilteredSessions=null,this.filteredSessionScope=null}bindFilteredSessions(){let e=this.context?.sessions;if(!e||!Gx(this.host)){this.retireFilteredSessions();return}let t=G(this.host.expandedAgentId()),n=this.sessionListQuery(t),r=JSON.stringify(n);this.filteredSessionScope!==r&&(this.retireFilteredSessions(),this.filteredSessionScope=r,this.unsubscribeFilteredSessions=Jx(this,e,n,()=>this.filteredSessionScope===r&&this.context?.sessions===e&&this.host.sidebarSessionStatusFilter()===n.archivedFilter&&G(this.host.expandedAgentId())===t))}refreshSidebarSessions(e){let t=this.host.expandedAgentId();return this.bindFilteredSessions(),e!==void 0&&G(e)!==G(t)?Promise.resolve():Xx(this,t)}scheduleSidebarSessions(){return this.bindFilteredSessions(),Yx(this,()=>this.unsubscribeFilteredSessions)}loadMoreSidebarSessions(){return Xx(this,this.sessionsAgentId,!0)}retireStaleChildSessions(e){for(let[t,n]of this.childSessionQueries)!e.has(t)&&!n.refresh&&!n.hydration&&(n.observation?.dispose(),this.childSessionQueries.delete(t),this.finishChildSessionLoad(t));ox(this,this.lineage.routeKey,e)}needsChildSessionLoad(e){return!this.childSessionQueries.has(e)&&!this.childSessionErrorsByParent.has(e)}async loadChildSessions(e,t=!1){let n=this.context?.sessions;if(!this.host.isConnected||!n||!n.captureConnectionScope()||!e||this.childSessionErrorsByParent.has(e))return;let r=this.childSessionQueries.get(e);if(r){await r.refresh,await r.hydration;return}let i={...kc(e),source:`sidebar`},a={};this.childSessionQueries.set(e,a);let o=()=>this.host.isConnected&&n===this.context?.sessions&&this.childSessionQueries.get(e)===a;if(a.observation=n.observeList(i,r=>{if(!o())return;if(r.loading){a.loading||(a.childRead=this.lineage.captureChildRead(i)),a.loading=!0,this.loadingChildSessionKeys=new Set([...this.loadingChildSessionKeys,e]),this.requestSessionDataUpdate();return}if(r.error){if(t&&!a.observation)return;a.loading=!1,this.childSessionErrorsByParent=new Map(this.childSessionErrorsByParent).set(e,r.error),this.finishChildSessionLoad(e);return}let s=r.result,c=a.loading||!a.result;if(a.loading=!1,s){if(!c){let t=this.childSessionRowsByParent[e];if(t){let r=n.projectRows(t);r.some((e,n)=>e!==t[n])&&(this.childSessionRowsByParent={...this.childSessionRowsByParent,[e]:r},this.requestSessionDataUpdate())}return}a.result=s,!a.hydration&&(a.hydration=ix({owner:this,parentKey:e,sessions:n,initialResult:s,childRead:a.childRead??this.lineage.captureChildRead(i),ownsQuery:o,selectedKey:()=>this.lineage.routeKey}).finally(()=>{o()&&(a.hydration=void 0,this.finishChildSessionLoad(e))}))}}),!o()){a.observation.dispose();return}a.refresh=a.observation.refresh().catch(()=>void 0).finally(()=>{a.refresh=void 0,o()&&this.requestSessionDataUpdate()}),await a.refresh,await a.hydration}finishChildSessionLoad(e){if(this.childSessionErrorsByParent.has(e)){let t=new Set(this.loadedChildSessionKeys);t.delete(e),this.loadedChildSessionKeys=t,this.childSessionQueries.get(e)?.observation?.dispose(),this.childSessionQueries.delete(e)}let t=new Set(this.loadingChildSessionKeys);t.delete(e),this.loadingChildSessionKeys=t,this.requestSessionDataUpdate()}loadActiveSessionLineage(e){return this.lineage.load(e)}setVisibleSessionLimit(e,t){this.visibleSessionLimits=new Map(this.visibleSessionLimits).set(e,t),this.requestSessionDataUpdate()}dismissSessionMutationError(){Hx(this,null,`action`),this.requestSessionDataUpdate()}resetSessionList(){this.retireFilteredSessions(),this.sessionsLoading=!1,this.visibleSessionLimits=new Map,this.resetChildSessionState(),this.sessionResultsByAgent={},!Gx(this.host)&&this.context?(this.sessionsResult=this.context.sessions.presentation.result,this.sessionsAgentId=this.context.sessions.presentation.agentId):this.context&&this.bindFilteredSessions(),this.requestSessionDataUpdate()}discardEmptyChildSessionSnapshot(e){ax(this,e)}retryChildSessions(e){let t=this.childSessionErrorsByParent.has(e);if(t){this.finishChildSessionLoad(e);let t=new Map(this.childSessionErrorsByParent);t.delete(e),this.childSessionErrorsByParent=t}this.loadChildSessions(e,t)}invalidateSessionMutations(){this.sessionMutationEpoch+=1,Hx(this,null,`action`),this.sessionMutationAbortController.abort(),this.sessionMutationAbortController=new AbortController,this.requestSessionDataUpdate()}beginSessionMutation(){let e=this.context;if(!e||!this.host.connected)return null;let t=e.gateway,n=t.snapshot.client;return t.snapshot.phase!==`connected`||!n?null:(Hx(this,null,`action`),this.requestSessionDataUpdate(),{epoch:this.sessionMutationEpoch,context:e,gateway:t,sessions:e.sessions,client:n,selectedAgentId:this.host.selectedAgentIdForSessions(),signal:this.sessionMutationAbortController.signal})}isSessionMutationScopeCurrent(e){let t=this.context,n=t?.gateway;return this.host.connected&&this.sessionMutationEpoch===e.epoch&&t===e.context&&n===e.gateway&&t.sessions===e.sessions&&n.snapshot.phase===`connected`&&n.snapshot.client===e.client}publishSessionMutationError(e,t){this.isSessionMutationScopeCurrent(e)&&(Hx(this,M(t),`action`),this.requestSessionDataUpdate())}}})))()}var sS;function cS(){return(cS=e((()=>{J(),sS=class{constructor(e,t){this.host=e,this.getContext=t,this.ownerId=null,this.involvingMe=!1,this.scope=null,this.ownerFacetResolved=!1,this.ownerOptions=[],this.pendingFacetRefresh=null,e.addController(this)}hostUpdated(){this.restore(),!this.pendingFacetRefresh&&this.ownerFacetResolved&&this.ownerId&&!this.ownerOptions.some(e=>e.id===this.ownerId)&&this.set(null)}observeOwnerFacet(e,t){this.pendingFacetRefresh||(this.ownerFacetResolved=e,this.ownerOptions=t)}set(e,t=!1){this.pendingFacetRefresh=null,this.ownerId=t?null:e?.trim()||null,this.involvingMe=t;let n=this.getContext(),r=n?.gateway.snapshot.selfUser?.id.trim();n&&r&&K_(n.gateway.connection.gatewayUrl,r,this.currentFilter()),this.host.requestUpdate(),this.host.sessionData.resetSessionList(),this.host.sessionData.refreshSidebarSessions()}restore(){let e=this.getContext(),t=e?.gateway.snapshot.selfUser?.id.trim();if(!e||!t)return;let n=e.gateway.connection.gatewayUrl,r=`${n}\0${t}`;if(r===this.scope)return;let i=this.scope;if(this.scope=r,i===null&&(this.ownerId||this.involvingMe))K_(n,t,this.currentFilter());else{let e=P_(n,t);this.ownerId=e.ownerId,this.involvingMe=e.involvingMe}if(this.host.requestUpdate(),i!==null||this.ownerId||this.involvingMe){this.ownerFacetResolved=!1,this.ownerOptions=[],this.host.sessionData.resetSessionList();let e=this.host.sessionData.scheduleSidebarSessions();this.pendingFacetRefresh=e,e.finally(()=>{this.pendingFacetRefresh===e&&(this.pendingFacetRefresh=null,this.host.requestUpdate())})}}currentFilter(){return{ownerId:this.ownerId,involvingMe:this.involvingMe}}}})))()}var lS,uS,dS;function fS(){return(fS=e((()=>{lS=`openclaw.control.sidebarEmptyGroups.v1:`,uS=`openclaw:sidebar:sessions:hide-empty-groups`,dS=class{constructor(e,t){this.host=e,this.getContext=t,this.mode=`filtering`,this.storageKey=null,this.owner=null}set(e){if(this.reconcile()){this.host.requestUpdate();return}this.mode=e;try{this.storageKey&&T()?.setItem(this.storageKey,e)}catch{}this.host.requestUpdate()}reconcile(){let e=this.getContext()?.gateway,t=e?Bo(e.connection.gatewayUrl):``,n=!e||e.snapshot.phase===`stopped`||this.owner?.gateway!==e||this.owner.revision!==e.connectionRevision||this.owner.origin!==t,r=!1;if(n&&(r=this.storageKey!==null,this.storageKey=null,this.mode=`filtering`,this.owner=e&&e.snapshot.phase!==`stopped`?{gateway:e,revision:e.connectionRevision,origin:t}:null),!e||e.snapshot.phase!==`connected`)return r;let i=e.snapshot.selfUser?.id.trim(),a=`${lS}${t}:${i?`user:${encodeURIComponent(i)}`:`browser`}`;if(a===this.storageKey)return r;this.storageKey=a,this.mode=`filtering`;try{let e=T(),t=e?.getItem(a);if(t===`filtering`||t===`always`||t===`never`)return this.mode=t,!0;let n=e?.getItem(uS);t==null&&(n===`true`||n===`false`)&&(this.mode=n===`true`?`always`:`filtering`,e?.setItem(a,this.mode),e?.removeItem(uS))}catch{}return!0}}})))()}function pS(e,t){let n=e.sessionData,r=e.sessionDataContext;return[r,t,!!(e.sidebarAgentsMode===`roster`&&e.rosterSessionSource),n.sessionsAgentId,n.sessionResultsByAgent,n.activeSessionLineageRoot,n.activeSessionLineageSelectedRow,n.childSessionRowsByParent,n.loadingChildSessionKeys,e.getRouteSessionKey(),Wr(e.activeRouteId),r?.agentSelection.state.selectedId,r?.gateway.snapshot.assistantAgentId,r?.agents.state.agentsList,r?.gateway.snapshot.hello,r?.gateway.snapshot.selfUser?.id,r?.sessions,r?.sessions.revision,e.sessionSortMode,e.sessionProjection.createdOrderRevision,e.sessionsShowCron,e.sessionsShowSystem,e.sessionsStatusFilter,e.resolveSessionAttention,e.storedOutboxes,ae.getLocale()]}function mS(e,t,n,r,i){let a=t.sessionDataContext,o=t.sidebarAgentsMode===`roster`?t.rosterSessionSource:null;return e.read(()=>[n,r,o,t.collapsedSessionSections,t.effectiveSessionsGrouping(),t.sessionsEmptyGroupsMode,i,t.sessionData.visibleSessionLimits,a?.gateway.snapshot.phase,a?.gateway.snapshot.client,t.sidebarLiveActivity,t.sessionsShowPreview,t.sidebarNarrationLines,t.sidebarObserverDigests,t.sessionProjection.revision],()=>{let e=t.effectiveSessionsGrouping(),s=o?.agentIds.map(e=>({id:`agent:${e}:recent`,rows:n.filter(n=>!n.pinned&&t.sessionNavigationAgentId(n)===e)})),c=new Set(t.collapsedSessionSections);for(let e of o?.collapsedAgentIds??[])c.add(`agent:${e}:recent`);return t.sessionProjection.project({rows:n,sections:s,grouping:e,knownGroups:e===`category`?t.knownSessionGroups():[],selfOwnerId:a?.gateway.snapshot.selfUser?.id??null,sectionOrder:t.knownSectionOrder(),catalogIds:r.map(e=>e.id),collapsedSections:c,emptyGroupsMode:t.sessionsEmptyGroupsMode,ownerFiltered:t.sessionOwnerFilterActive||t.sessionInvolvingMeFilterActive,visibleSessionLimits:o?i:t.sessionData.visibleSessionLimits,sortMode:t.effectiveSessionSortMode(),statusFilter:t.sessionsStatusFilter,agentId:o?`*`:t.expandedAgentId(),connectionIdentity:a?.gateway.snapshot.phase===`connected`?a.gateway.snapshot.client??null:null,listSource:a?.sessions??null,subtitle:{sidebarLiveActivity:t.sidebarLiveActivity,showPreview:t.sessionsShowPreview,narrationLines:t.sidebarNarrationLines,observerDigests:t.sidebarObserverDigests}})})}function hS(e,t,n,r){let i=e.sidebarAgentsMode===`roster`?e.rosterSessionSource:null,a=e.getRouteSessionKey(),o=xb({context:e.sessionDataContext,routeSessionKey:a,sessionsResult:i?.result??e.sessionData.sessionsResult,activeSession:yx(e.sessionData,a),sessionsAgentId:e.sessionData.sessionsAgentId,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem,statusFilter:e.sessionsStatusFilter,compareSessions:t,highlightCurrentSession:Wr(e.activeRouteId),runtimeSampledAtByRow:n,loadingChildSessionKeys:e.sessionData.loadingChildSessionKeys,outboxAttentionCountForSessionKey:t=>e.storedOutboxes?.attentionCountForSession(t)??0,hasSessionDraft:t=>e.storedOutboxes?.hasSessionDraft(t)??!1,resolveAttention:e.resolveSessionAttention,resolveAgentStatusNote:r});if(i){let e=i.result?.sessions??[],t=o.visibleSessionRows.find(e=>e.key===o.activeRowKey);o.visibleSessionRows=t&&!e.some(e=>e.key===t.key)?[...e,t]:[...e]}return o}function gS(e,t,n){return e.read(()=>[t.sessionDataContext,t.sessionDataContext?.sessions.revision,t.expandedAgentId(),t.resolveSessionAttention,t.sessionData.sessionCatalogs,t.sessionData.pendingCatalogArchives,t.hiddenSessionCatalogIds,t.sessionsStatusFilter,n,t.sessionData.sessionsResult,t.sessionData.sessionResultsByAgent],()=>Mx(t,n))}function _S(e,t){let n=e.sessionData;return[t,e.sidebarAgentsMode===`roster`?e.rosterSessionSource:null,e.expandedAgentId(),n.sessionsResult,n.loadedChildSessionKeys,n.childSessionErrorsByParent,n.sessionCatalogs,n.pendingCatalogArchives,e.hiddenSessionCatalogIds,e.sessionOwnerFilterId,e.sessionInvolvingMeFilterActive,e.sessionDataContext?.gateway.snapshot.selfUser]}function vS(e,t,n,r){let i=t.sidebarAgentsMode===`roster`?t.rosterSessionSource?.result:void 0,a=t.getSessionNavigationState();return e.read(()=>[n,r,i,a,t.sessionOwnerFilterId,t.sessionInvolvingMeFilterActive,t.sessionDataContext?.gateway.snapshot.selfUser,t.sessionData.loadedChildSessionKeys,t.sessionData.childSessionErrorsByParent],()=>Jb({host:t,row:n,agentId:r,result:i,navigationState:a,resolveAttention:t.resolveSessionAttention}))}var yS;function bS(){return(bS=e((()=>{cr(),k(),Yb(),Sx(),Nb(),Px(),yS=class{read(e,t){let n=e();return(!this.slots||n.length!==this.slots.length||n.some((e,t)=>!Object.is(e,this.slots[t])))&&(this.value=t(),this.slots=e()),this.value}}})))()}var xS;function SS(){return(SS=e((()=>{B(),qt(),cr(),k(),Rc(),$c(),je(),A(),Yb(),Xb(),hx(),om(),Sx(),Nb(),Ib(),wx(),kx(),Px(),J(),Bx(),oS(),cS(),fS(),bS(),xS=class extends Y{constructor(...e){super(...e),this.rosterSessionSource=null,this.rosterVisibleSessionLimits=new Map,this.sessionSortMode=F_(),this.sessionProjection=new Ox(void 0,this),this.navigationMemo=new yS,this.rowsMemo=new yS,this.catalogsMemo=new yS,this.sectionsMemo=new yS,this.homeMemos=new Map,this.sessionData=new aS(this),this.sessionPullRequests=new Cx(this,{getConnected:()=>this.connected,getRows:()=>xx({rows:[...this.visibleSessionRowsInOrder(),...this.groupedSessionSource?.agentIds.flatMap(e=>{let t=this.visibleHomeSession(e);return t?[t]:[]})??[]],adopted:nm(this.visibleSessionCatalogs()),sessionsResult:this.groupedSessionSource?.result??this.sessionData.sessionsResult,sessionResultsByAgent:this.sessionData.sessionResultsByAgent,navigationState:this.getSessionNavigationState()}),getSelectedAgentId:()=>this.selectedAgentIdForSessions(),getGateway:()=>this.context?.gateway,getSessions:()=>this.context?.sessions}),this.readSidebarSessionSortOptions=()=>({sortMode:this.effectiveSessionSortMode(),owners:this.selectedAgentSessionResult()?.owners,createdOrder:this.sessionProjection.createdOrder}),this.sessionOwnerFilter=new sS(this,()=>this.context),this.sessionOwnerOptions=[],this.activeSessionOwnerId=null,this.sessionOwnershipVisibility={filters:!1,avatars:!1},this.selectedSessionKeys=new Set,this.sessionsGrouping=D_(),this.sessionsShowCron=k_(),this.sessionsShowPreview=A_(),this.sessionsShowSystem=j_(),this.emptyGroups=new dS(this,()=>this.context),this.sessionsStatusFilter=M_(),this.hiddenSessionCatalogIds=R_(),this.visibleSessionCatalogs=()=>Ax(this),this.catalogLiveRows=()=>jx(this.sessionData),this.sidebarSessionCatalogs=()=>(this.selectedAgentSessionRows(this.getSessionNavigationState()),gS(this.catalogsMemo,this,this.activeSessionOwnerId)),this.sessionCatalogIdsWithoutVisibleRows=()=>{let e=new Set(this.sidebarSessionCatalogs().map(e=>e.id));return this.visibleSessionCatalogs().filter(t=>!e.has(t.id)).map(e=>e.id)},this.sessionSelectionAnchor=null,this.runtimeSampledAtByRow=new WeakMap,this.attention=new zx(this),this.setSessionOwnerFilter=(e,t=!1)=>this.sessionOwnerFilter.set(e,t),this.selectSession=(e,t)=>{let n=this.findSidebarSessionByKey(e),r=t!==void 0&&this.sidebarAgentsMode===`roster`,i=r?`chat`:w(n),a=t??this.sessionNavigationAgentId(n??{key:e}),o=Fe({face:i,sessionKey:e,fallbackAgentId:a,basePath:this.basePath,row:n,mainKey:this.sessionMainKey(),preferenceDerivedFace:!r,navigationKey:e});ul(this,{agentId:a,commit:()=>(this.sidebarAgentsMode===`roster`&&this.expandAgent(a),this.prepareSessionNavigation(e,o.options.pathname),this.onNavigate?.(i,o.options),this.bindLiteralSession(e,a,o.options),!0),face:i,sessionKey:e})},this.expandAgent=e=>{let t=this.context;if(!t)return;let n=G(e);if(n===G(this.expandedAgentId())){this.sidebarAgentsMode!==`roster`&&t.agentSelection.setScope(n);return}this.clearSessionSelection(),this.sidebarAgentsMode!==`roster`&&(this.sessionProjection.resetMembership(),this.sessionData.visibleSessionLimits=new Map),t.agentSelection.set(n)},this.knownSectionOrder=()=>[...this.context?.sessions.state.sectionOrder??[]],this.openMainSession=e=>{if(!this.connected){this.onNavigate?.(`appearance`);return}this.clearSessionSelection();let t=G(e);this.selectSession(this.selectedAgentMainSessionKey(t),t)}}get groupedSessionSource(){return this.sidebarAgentsMode===`roster`?this.rosterSessionSource:null}sessionPeopleSortCapability(){let e=this.selectedAgentSessionResult()?.owners;return e?e.length>=2:void 0}sessionPeopleSortAvailable(){return this.sessionPeopleSortCapability()!==!1}effectiveSessionSortMode(){return q_(this.sessionSortMode,this.sessionPeopleSortAvailable())}effectiveSessionsGrouping(){let e=this.sessionsGrouping;return e===`person`&&!this.sessionPeopleSortAvailable()?`category`:e}setSessionSortMode(e){this.sessionSortMode=J_(e,this.sessionPeopleSortCapability())}sidebarSessionOwnerFilter(){return this.sessionOwnerFilter}get sessionOwnerFilterId(){return this.sessionOwnerFilter.ownerId}get sessionInvolvingMeFilterActive(){return this.sessionOwnerFilter.involvingMe}get sessionOwnerFilterActive(){return this.sessionOwnerFilter.ownerId!==null}get sessionsEmptyGroupsMode(){return this.emptyGroups.mode}setSessionsEmptyGroupsMode(e){this.emptyGroups.set(e)}get sessionAttentionContext(){return this.context}get sessionDataContext(){return this.context}get collapsedSessionSections(){return this.sessionOrganizer.collapsedSessionSections}dismissTransientMenus(){return this.sidebarMenus.dismissTransientMenus()}promoteCreatedSession(e){this.sessionProjection.promoteCreatedSession(e)&&this.requestUpdate()}willUpdate(e){this.emptyGroups.reconcile()&&this.sidebarMenus.sessionSortMenuPosition&&this.sidebarMenus.closePositionedMenu(`sessionSort`),super.willUpdate(e)}disconnectedCallback(){this.sessionProjection.dispose(),this.homeMemos.clear(),super.disconnectedCallback()}updated(e){super.updated(e),this.sessionSortMode===`people`&&this.sessionPeopleSortCapability()===!1&&this.setSessionSortMode(`created`),Wr(this.activeRouteId)&&this.sessionData.loadActiveSessionLineage(this.getRouteSessionKey()),rx(this.sessionData,()=>this.childSessionParents())}childSessionParents(){let e=new Set,t=[...this.visibleSessionRowsInOrder()];for(let n of t)if(t.push(...n.children),n.childLoadParentKeys?.length&&(n.visuallyActive||this.isSessionChildrenExpanded(n)))for(let t of n.childLoadParentKeys)e.add(t);let n=this.groupedSessionSource,r=n?n.agentIds.filter(e=>!n.collapsedAgentIds.has(e)):[this.expandedAgentId()];for(let t of r){let n=this.mainSessionRow(t);if(n?.childSessions?.length)for(let r of this.projectHomeSession(n,t).childLoadParentKeys??[])e.add(r)}return e}applySessionOwnerFilter(e,t){let n=Fb({projected:e,ownerFacet:t,selectedOwnerId:this.sessionOwnerFilterId,self:this.context?.gateway.snapshot.selfUser});return this.sessionOwnerOptions=n.ownerOptions,this.sessionOwnershipVisibility=n.ownershipVisibility,this.activeSessionOwnerId=n.activeOwnerId,n.rows}getRouteSessionKey(){return this.sessionKey.trim()||this.context?.gateway.snapshot.sessionKey.trim()||``}getSessionNavigationState(){let e=this.sessionData,t=this.groupedSessionSource?.result??e.sessionsResult;return this.sessionProjection.observeRows([...t?[t]:[],...Object.values(e.sessionResultsByAgent)]),this.navigationMemo.read(()=>pS(this,t),()=>hS(this,vb(this.readSidebarSessionSortOptions),this.runtimeSampledAtByRow,e=>this.attention.resolveSessionAgentStatus(e)?.note))}selectedAgentIdForSessions(){return this.getSessionNavigationState().selectedAgentId}sessionNavigationAgentId(e){return this.sidebarAgentsMode===`roster`?We(e,g({agentsList:this.context?.agents.state.agentsList,hello:this.context?.gateway.snapshot.hello})):this.selectedAgentIdForSessions()}sidebarSessionHref(e){return Fe({face:w(e),sessionKey:e.key,fallbackAgentId:this.sessionNavigationAgentId(e),basePath:this.context?.basePath??``,row:e,mainKey:this.context?this.sessionMainKey():void 0,preferenceDerivedFace:!0}).href}sidebarSessionStatusFilter(){return this.sessionsStatusFilter}zonedVisibleSections(e){return mS(this.sectionsMemo,this,e,this.sidebarSessionCatalogs(),this.rosterVisibleSessionLimits)}reconciledSidebarZone(e=this.selectedAgentSessionRows(this.getSessionNavigationState())){return Sb({sidebarEntries:this.sidebarEntries,rows:e,pluginNavigation:this.pluginNavigation(),pluginTabs:this.context?.gateway.snapshot.hello?.controlUiTabs})}pruneSidebarSessionEntry(e){let t=mn({type:`session`,key:e});this.sidebarEntries.includes(t)&&this.onUpdateSidebarEntries?.(this.sidebarEntries.filter(e=>e!==t))}visibleSessionRowsInOrder(){let e=this.getSessionNavigationState(),t=this.selectedAgentSessionRows(e),{visibleRows:n}=this.zonedVisibleSections(t),{entries:r,sessionRows:i}=this.reconciledSidebarZone(t);return[...r.flatMap(e=>{let t=e.type===`session`?i.get(e.key):void 0;return t?[t]:[]}),...n]}selectedVisibleSessions(){return this.selectedSessionKeys.size===0?[]:this.visibleSessionRowsInOrder().filter(e=>this.selectedSessionKeys.has(e.key))}handleSessionRowClick(e,t){if(!(t.isChild?!x(e):e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey)){if(!t.isChild&&e.shiftKey){e.preventDefault(),this.extendSessionSelection(t.key);return}if(!t.isChild&&e.altKey){e.preventDefault(),this.toggleSessionSelected(t.key);return}e.preventDefault(),this.clearSessionSelection(),this.selectSession(t.key)}}toggleSessionSelected(e){let t=Cb(this.selectedSessionKeys,e);this.sessionSelectionAnchor=t.anchor,this.selectedSessionKeys=t.selectedKeys}extendSessionSelection(e){let t=wb({rows:this.visibleSessionRowsInOrder(),anchor:this.sessionSelectionAnchor,key:e});this.sessionSelectionAnchor=t.anchor,this.selectedSessionKeys=t.selectedKeys}clearSessionSelection(){this.sessionSelectionAnchor=null,this.selectedSessionKeys.size>0&&(this.selectedSessionKeys=new Set)}expandedAgentId(){let e=yo(this.context?.agentSelection.state.selectedId);return G(e||this.getSessionNavigationState().selectedAgentId)}activeChipAgent(){return Tb({activeId:this.expandedAgentId(),roster:this.context?.agents.state.agentsList?.agents??[],identities:this.context?.agentIdentity.entries()??[]})}agentResumeKey(e){return Eb({agentId:e,sessionData:this.sessionData,context:this.context})?.key??ts({agentId:e,mainKey:this.sessionMainKey()})}openAgentConversation(e){if(!this.connected){this.onNavigate?.(`appearance`);return}this.selectSession(this.agentResumeKey(e))}switchChipAgent(e){this.sidebarMenus.closeAgentMenu(),this.expandAgent(e),this.activeRouteId!==`skills`&&this.openAgentConversation(e)}askAgentCapabilities(e){if(this.sidebarMenus.closeAgentMenu(),!this.connected)return;let t=this.agentResumeKey(e),n=Fe({face:`chat`,sessionKey:t,fallbackAgentId:e,basePath:this.basePath,row:this.findSidebarSessionByKey(t),mainKey:this.sessionMainKey()});ul(this,{sessionKey:t,agentId:e,face:`chat`,commit:()=>(this.setApplicationSession(t,e),this.onNavigate?.(`chat`,{...n.options,search:v(N(`chat.welcome.suggestions.whatCanYouDo`))}),!0)})}knownSessionGroups(){return sl(this.context?.sessions.state.groups??[],this.sessionData.sessionsResult?.sessions??[])}knownSessionCatalogIds(){return kb({loadedCatalogIds:this.sessionData.sessionCatalogs.map(e=>e.id),hasLoaded:this.sessionData.sessionCatalogRefreshStatus.hasLoaded,sectionOrder:this.knownSectionOrder()})}findSidebarSessionByKey(e){return Mb({sessionKey:e,navigationState:this.getSessionNavigationState(),sessionResultsByAgent:this.sessionData.sessionResultsByAgent})}findSidebarMenuSessionByKey(e){return jb(this.selectedAgentSessionRows(this.getSessionNavigationState()),t=>t.key===e)??this.findSidebarSessionByKey(e)}findSidebarHovercardRowByKey(e){return bx(this,e,this.selectedAgentSessionRows(this.getSessionNavigationState()))}selectedAgentSessionRows(e){let t=this.rowsMemo.read(()=>_S(this,e),()=>{let t=this.groupedSessionSource,n=this.expandedAgentId(),r=qb({host:this,navigationState:e,selected:n,agentIds:t?.agentIds??[n],result:t?.result,compareSessions:vb(this.readSidebarSessionSortOptions),resolveAttention:this.resolveSessionAttention});return this.applySessionOwnerFilter(r,this.selectedAgentSessionResult()?.owners)});return this.attention.scheduleSessionSnoozeWake(Nx(this.sessionData,this.selectedAgentSessionResult(),e)),this.sessionOwnerFilter.observeOwnerFacet(this.selectedAgentSessionResult()?.owners!==void 0,this.sessionOwnerOptions),t}selectedAgentSessionResult(){if(this.groupedSessionSource)return this.groupedSessionSource.result;let e=this.expandedAgentId();return e===G(this.sessionData.sessionsAgentId??``)?this.sessionData.sessionsResult:this.sessionData.sessionResultsByAgent[e]??null}selectedAgentMainSessionKey(e){return Ab({agentId:e??this.expandedAgentId(),agentsList:this.context?.agents.state.agentsList,hello:this.context?.gateway.snapshot.hello})}get resolveSessionAttention(){return this.attention.createResolver()}projectHomeSession(e,t){let n=this.homeMemos.get(t);return n||(n=new yS,this.homeMemos.set(t,n)),vS(n,this,e,t)}visibleHomeSession(e){let t=this.mainSessionRow(e),n=t?this.projectHomeSession(t,e):null;return n?.metadataVisible?n:null}mainSessionRow(e){let t=G(e??this.expandedAgentId()),n=this.selectedAgentMainSessionKey(t),r=this.groupedSessionSource?.result?.sessions??(t===G(this.sessionData.sessionsAgentId??``)?this.sessionData.sessionsResult?.sessions??[]:this.sessionData.sessionResultsByAgent[t]?.sessions??[]),i=this.sessionData.activeSessionLineageRoot;return(i?[...r,i]:r).find(e=>j(e.key,n))??null}isSessionChildrenExpanded(e){return this.sessionProjection.isChildrenExpanded(e.key)}isSessionChildrenFullyShown(e){return this.sessionProjection.isChildrenFullyShown(e)}toggleSessionChildren(e){let{expanded:t}=this.sessionProjection.toggleChildren(e);for(let n of e.childLoadParentKeys??[e.key])t?this.sessionData.retryChildSessions(n):this.sessionData.discardEmptyChildSessionSnapshot(n);this.requestUpdate()}showMoreChildren(e){this.sessionProjection.showMoreChildren(e),this.requestUpdate()}agentUnreadCount(e){return(this.sessionData.sessionResultsByAgent[G(e)]?.sessions??[]).filter(e=>e.unread===!0&&e.archived!==!0).length}},U([H()],xS.prototype,`rosterSessionSource`,void 0),U([H()],xS.prototype,`sessionSortMode`,void 0),U([H()],xS.prototype,`selectedSessionKeys`,void 0),U([H()],xS.prototype,`sessionsGrouping`,void 0),U([H()],xS.prototype,`sessionsShowCron`,void 0),U([H()],xS.prototype,`sessionsShowPreview`,void 0),U([H()],xS.prototype,`sessionsShowSystem`,void 0),U([H()],xS.prototype,`sessionsStatusFilter`,void 0),U([H()],xS.prototype,`hiddenSessionCatalogIds`,void 0)})))()}var CS;function wS(){return(wS=e((()=>{R(),Jn(),CS={github:Jr,reddit:L`
    <svg viewBox="0 0 24 24" class="icon--filled" fill="currentColor" aria-hidden="true">
      <path
        d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"
      />
    </svg>
  `,discord:L`
    <svg viewBox="0 0 24 24" class="icon--filled" fill="currentColor" aria-hidden="true">
      <path
        d="M20.32 4.37a19.8 19.8 0 0 0-4.93-1.51 13.78 13.78 0 0 0-.64 1.29 18.27 18.27 0 0 0-5.5 0 12.64 12.64 0 0 0-.64-1.29 19.74 19.74 0 0 0-4.93 1.51C.53 9.05-.32 13.6.1 18.06a19.9 19.9 0 0 0 6.07 3.03c.46-.63.87-1.3 1.24-2a12.86 12.86 0 0 1-1.96-.93c.16-.12.32-.24.48-.37a14.2 14.2 0 0 0 12.14 0c.16.13.32.25.48.37-.63.37-1.28.68-1.96.93.36.7.78 1.37 1.24 2a19.84 19.84 0 0 0 6.07-3.03c.5-5.18-.84-9.68-3.58-13.69ZM8.02 15.33c-1.18 0-2.16-1.08-2.16-2.42 0-1.33.95-2.42 2.16-2.42 1.21 0 2.18 1.09 2.16 2.42 0 1.34-.95 2.42-2.16 2.42Zm7.97 0c-1.18 0-2.15-1.08-2.15-2.42 0-1.33.95-2.42 2.15-2.42 1.22 0 2.18 1.09 2.16 2.42 0 1.34-.94 2.42-2.16 2.42Z"
      />
    </svg>
  `,x:L`
    <svg viewBox="0 0 24 24" class="icon--filled" fill="currentColor" aria-hidden="true">
      <path
        d="M18.24 2.25h3.31l-7.23 8.26 8.5 11.24h-6.66l-5.21-6.82-5.97 6.82H1.67l7.73-8.84L1.25 2.25h6.83l4.71 6.23Zm-1.16 17.52h1.83L7.08 4.13H5.12Z"
      />
    </svg>
  `}})))()}function TS(e,t){return L`
    <div class="community-invite-card">
      <aside class="invite" role="complementary" aria-labelledby="community-invite-title">
        <div class="invite__header">
          <img
            class="invite__art"
            src=${An(`community-art/community-invite-${t}.webp`)}
            alt=""
            width="1024"
            height="512"
            loading="lazy"
            decoding="async"
          />
          <div class="invite__marks" dir="ltr" aria-hidden="true">
            ${ES.map(e=>e.icon)}
          </div>
          <button
            class="invite__close"
            type="button"
            aria-label=${N(`communityInvite.dismissForever`)}
            @click=${e}
          >
            ${F.x}
          </button>
        </div>
        <div class="invite__body">
          <h2 class="invite__title" id="community-invite-title">${N(`communityInvite.title`)}</h2>
          <p class="invite__text">${N(`communityInvite.body`)}</p>
          <div class="invite__links" dir="ltr">
            ${ES.map(e=>L`
                <a
                  class="invite__cta"
                  href=${e.href}
                  aria-label=${e.accessibleLabel()}
                  title=${e.accessibleLabel()}
                  target=${Ga}
                  rel=${ea()}
                >
                  ${e.icon}<span>${e.label()}</span>
                </a>
              `)}
          </div>
        </div>
      </aside>
    </div>
  `}var ES;function DS(){return(DS=e((()=>{R(),Pn(),k(),Ha(),rc(),wS(),P(),ES=[{label:()=>N(`communityInvite.join`),accessibleLabel:()=>N(`communityInvite.joinPlatform`,{platform:`Reddit`}),href:`https://www.reddit.com/r/openclaw/`,icon:CS.reddit},{label:()=>N(`communityInvite.join`),accessibleLabel:()=>N(`communityInvite.joinPlatform`,{platform:`Discord`}),href:bc,icon:CS.discord},{label:()=>N(`communityInvite.follow`),accessibleLabel:()=>N(`communityInvite.followPlatform`,{platform:`X`}),href:`https://x.com/openclaw`,icon:CS.x}]})))()}function OS(){if(jS)return!1;try{return T()?.getItem(AS)===null}catch{return!1}}function kS(){jS=!0;try{let e=T();return e?(e.setItem(AS,JSON.stringify({dismissedAtMs:Date.now()})),jS=!1,Ko(void 0)):No(`storage-unavailable`)}catch{return No(`storage-unavailable`)}}var AS,jS;function MS(){return(MS=e((()=>{AS=`openclaw:control-ui:community-invite:v2`,jS=!1})))()}var NS;function PS(){return(PS=e((()=>{qt(),k(),oc(),Rc(),J(),Go(),NS=class{constructor(e){this.host=e,this.collapsedSessionSections=L_(),this.draggingSessionKey=null,this.draggingSidebarSection=null,this.sessionDropTarget=null,this.sidebarSectionDropTarget=null,this.draggingSidebarEntry=null,this.sidebarZoneDropTarget=null,this.sessionListRemovalDrop=!1,this.patchSession=async(e,t,n={})=>{let r=this.host.sessionData.beginSessionMutation();if(!r)return`stale`;let i=await this.loadOperations(r);return i?i.patchSession(this.host,e,t,r,n):this.host.sessionData.isSessionMutationScopeCurrent(r)?`failed`:`stale`}}async loadOperations(e){try{return await W(()=>import(`./session-organizer-operations.runtime-SirMtAXt.js`),__vite__mapDeps([23,0,1,2,24,7,8,9,25,26,3,4,5,10,11,12]),import.meta.url)}catch(t){return this.host.sessionData.publishSessionMutationError(e,t),null}}async runOperation(e){let t=this.host.sessionData.beginSessionMutation();if(t){let n=await this.loadOperations(t);n&&await e(n,t)}}snoozeSessionWithUndo(e,t){return this.runOperation((n,r)=>n.snoozeSessionWithUndo(this.host,e,t,r))}archiveSessionWithUndo(e){return this.runOperation((t,n)=>t.archiveSessionWithUndo(this.host,e,n))}async runBatchSessionAction(e,t,n){if(e.kind===`new-group`){await this.createSessionGroup(t);return}await this.runOperation((r,i)=>r.runBatchSessionAction(this.host,e,t,n,i))}forkSession(e){return this.runOperation((t,n)=>t.forkSession(this.host,e,n))}stopCloudWorker(e){return this.runOperation((t,n)=>t.stopCloudWorker(this.host,e,n))}setSessionInvolvement(e,t){return this.runOperation((n,r)=>n.setSessionInvolvement(this.host,e,t,r))}assignSessionOwner(e,t){return this.runOperation((n,r)=>n.assignSessionOwner(this.host,e,t,r))}deleteSession(e){return this.runOperation((t,n)=>t.deleteSession(this.host,e,n,{offerSkip:!0}))}startSidebarRouteDrag(e,t){e.dataTransfer&&(Js(e.dataTransfer,t),this.draggingSidebarEntry=mn({type:`route`,route:t}),this.host.requestUpdate())}startSidebarPluginDrag(e,t){if(!e.dataTransfer)return;let n=mn({type:`plugin`,key:t});Js(e.dataTransfer,n),this.draggingSidebarEntry=n,this.host.requestUpdate()}finishSidebarEntryDrag(){this.draggingSidebarEntry=null,this.draggingSessionKey=null,this.sidebarZoneDropTarget=null,this.sessionListRemovalDrop=!1,this.host.requestUpdate()}startSessionDrag(e){this.draggingSessionKey=e.key,this.draggingSidebarEntry=e.pinned?`session:${e.key}`:null,this.host.requestUpdate()}finishSessionDrag(){this.sessionDropTarget=null,this.finishSidebarEntryDrag()}startSidebarSectionDrag(e){this.draggingSidebarSection=e,this.host.requestUpdate()}finishSidebarSectionDrag(){this.draggingSidebarSection=null,this.sidebarSectionDropTarget=null,this.host.requestUpdate()}draggedSidebarNavigation(e){let t=pl(e),n=un(t?`route:${t}`:null);if(n?.type===`route`)return n;let r=un(t);return r?.type===`plugin`?r:null}draggedSidebarEntry(e){let t=this.draggedSidebarNavigation(e);if(t)return mn(t);let n=fc(e);return n?mn({type:`session`,key:n}):null}handleSidebarZoneDragOver(e,t){if(!Mc(e.dataTransfer)&&!Pc(e.dataTransfer))return;if(e.preventDefault(),e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),!t){this.sidebarZoneDropTarget=null,this.host.requestUpdate();return}let n=e.currentTarget.getBoundingClientRect();this.sidebarZoneDropTarget={entry:t,position:e.clientY<n.top+n.height/2?`before`:`after`},this.host.requestUpdate()}handleSidebarZoneDragLeave(e){let t=e.currentTarget;e.relatedTarget instanceof Node&&t.contains(e.relatedTarget)||(this.sidebarZoneDropTarget=null,this.host.requestUpdate())}writeSidebarEntryAt(e,t,n){let r=this.host.reconciledSidebarZone().sidebarEntries.filter(t=>t!==e),i=t?r.indexOf(t):-1,a=+(n===`after`);r.splice(i<0?r.length:i+a,0,e),this.host.onUpdateSidebarEntries?.(r)}handleSidebarZoneDrop(e,t){let n=this.draggedSidebarEntry(e.dataTransfer);if(!n)return;if(e.preventDefault(),e.stopPropagation(),t===n){this.finishSidebarEntryDrag();return}let r=this.sidebarZoneDropTarget?.position,i=fc(e.dataTransfer),a=i?this.host.findSidebarSessionByKey(i):void 0;if(a&&!a.pinnable){this.finishSidebarEntryDrag();return}a&&!a.pinned?this.patchSession(a,{pinned:!0},{sessionScope:!0}).then(e=>{e===`completed`&&this.writeSidebarEntryAt(n,t,r)}):this.writeSidebarEntryAt(n,t,r),this.finishSidebarEntryDrag()}removeSidebarEntry(e){let t=this.host.reconciledSidebarZone().sidebarEntries.filter(t=>t!==e);this.host.onUpdateSidebarEntries?.(t)}canRemoveSidebarEntry(e){let t=un(e);return t?.type!==`plugin`||!this.host.reconciledSidebarZone().defaultPluginNavigationKeys.has(t.key)}handleSessionListDragOver(e){if(!this.canRemoveSidebarEntry(this.draggingSidebarEntry))return;let t=Mc(e.dataTransfer),n=fc(e.dataTransfer),r=n?this.host.findSidebarSessionByKey(n):void 0;(t||r?.pinned)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),this.sessionListRemovalDrop=!0,this.host.requestUpdate())}handleSessionListDragLeave(e){let t=e.currentTarget;e.relatedTarget instanceof Node&&t.contains(e.relatedTarget)||(this.sessionListRemovalDrop=!1,this.host.requestUpdate())}handleSessionListDrop(e){let t=this.draggedSidebarNavigation(e.dataTransfer);if(t){e.preventDefault();let n=mn(t);this.canRemoveSidebarEntry(n)&&this.removeSidebarEntry(n),this.finishSidebarEntryDrag();return}let n=fc(e.dataTransfer),r=n?this.host.findSidebarSessionByKey(n):void 0;r?.pinned&&(e.preventDefault(),this.patchSession(r,{pinned:!1},{sessionScope:!0})),this.finishSidebarEntryDrag()}async loadDialog(e){try{return await e}catch(e){let t=this.host.sessionData.beginSessionMutation();return t&&this.host.sessionData.publishSessionMutationError(t,e),null}}renameSession(e){return this.runOperation((t,n)=>t.renameSession(this.host,e,n))}async createSessionGroup(e=[]){await(await this.loadDialog(W(()=>import(`./input-dialog-CnAqzRxY.js`).then(e=>(e.t(),e.n)),__vite__mapDeps([25,0,3]),import.meta.url)))?.showInputDialog({title:N(`sessionsView.newGroupTitle`),label:N(`sessionsView.newGroupPrompt`),submitLabel:N(`sessionsView.newGroupCreate`),requireValue:!0,submit:t=>this.writeSessionGroup(t,e)})}async writeSessionGroup(e,t){let n=this.host.sessionData.beginSessionMutation();if(!n)return N(`sessionsView.newGroupFailed`);let r=await this.loadOperations(n);if(!r)return this.host.sessionData.isSessionMutationScopeCurrent(n)?this.sessionGroupFailure():N(`sessionsView.newGroupStale`);let i=await r.createSessionGroup(this.host,e,t,n);return i===`failed`?this.sessionGroupFailure():i===`stale`?N(`sessionsView.newGroupStale`):null}sessionGroupFailure(){return this.host.sessionData.sessionMutationError??N(`sessionsView.newGroupFailed`)}async renameSessionGroupFromMenu(e){let t=await(await this.loadDialog(W(()=>import(`./input-dialog-CnAqzRxY.js`).then(e=>(e.t(),e.n)),__vite__mapDeps([25,0,3]),import.meta.url)))?.showInputDialog({title:N(`sessionsView.renameGroupTitle`,{group:e}),label:N(`sessionsView.groupNameLabel`),defaultValue:e,requireValue:!0,requireChange:!0});t&&await this.runOperation(async(n,r)=>{if(!await n.renameSessionGroup(this.host,e,t,r))return;let i=`category:${e}`;if(this.collapsedSessionSections.has(i)){let e=new Set(this.collapsedSessionSections);e.delete(i),e.add(`category:${t}`),this.saveCollapsedSessionSections(e)}this.host.requestUpdate()})}deleteSessionGroupFromMenu(e){return this.runOperation(async(t,n)=>{if(!await t.deleteSessionGroup(this.host,e,n))return;let r=new Set(this.collapsedSessionSections);r.delete(`category:${e}`),this.saveCollapsedSessionSections(r),this.host.requestUpdate()})}async editSessionGroupDefaults(e){let t=await this.loadDialog(W(()=>import(`./session-group-defaults-dialog-BXDAWnDl.js`),__vite__mapDeps([27,0,1,2,7,8,9,3,4,5,10,11,12]),import.meta.url));if(!t)return;let n=this.host.sessionGroupDefaults(e);n&&await t.showSessionGroupDefaultsDialog({group:e,defaults:n,listDirectory:e=>this.host.listSessionGroupFolders(e),inspectRepository:e=>this.host.inspectSessionGroupRepository(e),submit:async t=>{let n=this.host.sessionData.beginSessionMutation();if(!n||!this.host.sessionGroupDefaults(e))return N(`sessionsView.groupDefaultsStale`);let r=await(await this.loadOperations(n))?.updateSessionGroupDefaults(this.host,e,{cwd:t.cwd||null,worktree:t.worktree},n);return r===`completed`?null:r===`stale`?N(`sessionsView.groupDefaultsStale`):this.host.sessionData.sessionMutationError??N(`sessionsView.groupDefaultsFailed`)}})}saveCollapsedSessionSections(e){this.collapsedSessionSections=new Set(e),this.host.requestUpdate(),Y_(e)}toggleSection(e){let t=new Set(this.collapsedSessionSections);t.has(e)?t.delete(e):t.add(e),this.saveCollapsedSessionSections(t)}reorderSidebarSection(e,t,n){return this.runOperation((r,i)=>r.reorderSidebarSection(this.host,e,t,n,i))}assignSessionCategory(e,t,n={}){return this.runOperation((r,i)=>r.assignSessionCategory(this.host,e,t,i,n))}sectionAcceptsSession(e,t,n){return e===`pinned`||this.host.sessionsGrouping===`category`&&(e===`ungrouped`||t)?!0:e===`groups`&&!!(n&&dl(n,this.host.sessionsGrouping))}sectionDragOver(e,t,n){let r=e.dataTransfer;if(Ic(r)&&this.draggingSidebarSection!==t){e.preventDefault(),r&&(r.dropEffect=`move`);let n=e.currentTarget,i=(n.querySelector(`:scope > .sidebar-recent-sessions__head`)??n).getBoundingClientRect(),a=e.clientY<i.top+i.height/2?`before`:`after`;this.sidebarSectionDropTarget={sectionId:t,position:a},this.sessionDropTarget=null,this.host.requestUpdate();return}if(!Pc(r))return;let i=this.draggingSessionKey?this.host.findSidebarSessionByKey(this.draggingSessionKey):void 0;if(!this.sectionAcceptsSession(t,n,i)){e.stopPropagation();return}e.preventDefault(),r&&(r.dropEffect=`move`),this.sessionDropTarget=t,this.sidebarSectionDropTarget=null,this.host.requestUpdate()}sectionDragLeave(e,t,n){let r=e.currentTarget;e.relatedTarget instanceof Node&&r.contains(e.relatedTarget)||(this.sessionDropTarget===t&&(this.sessionDropTarget=null,this.host.requestUpdate()),this.sidebarSectionDropTarget?.sectionId===t&&(this.sidebarSectionDropTarget=null,this.host.requestUpdate()))}sectionDrop(e,t,n){let r=uc(e.dataTransfer),i=fc(e.dataTransfer);if(!r&&!i)return;let a=i?this.host.findSidebarSessionByKey(i):void 0;if(!r&&!this.sectionAcceptsSession(t,n,a)){e.stopPropagation();return}if(e.preventDefault(),e.stopPropagation(),r&&r!==t){let e=this.sidebarSectionDropTarget?.sectionId===t?this.sidebarSectionDropTarget.position:`before`;this.reorderSidebarSection(r,t,e)}else if(a&&t===`pinned`)a.pinnable&&!a.pinned&&this.patchSession(a,{pinned:!0},{sessionScope:!0});else if(a){let e=n??null;(a.category!==e||a.pinned)&&this.assignSessionCategory(a,e,a.pinned?{pinned:!1}:{})}this.draggingSidebarSection=null,this.sessionDropTarget=null,this.sidebarSectionDropTarget=null,this.finishSidebarEntryDrag()}setSessionsGrouping(e){this.host.sessionsGrouping=e,B_(e)}setSessionsShowCron(e){this.host.sessionsShowCron=e,H_(e)}setSessionsShowPreview(e){this.host.sessionsShowPreview=e,U_(e)}setSessionsShowSystem(e){this.host.sessionsShowSystem=e,W_(e)}setSessionsStatusFilter(e){e!==this.host.sessionsStatusFilter&&(this.host.sessionsStatusFilter=e,this.host.clearSessionSelection(),this.host.sessionData.resetSessionList(),G_(e),this.host.sessionData.refreshSidebarSessions())}}})))()}function FS(e){let t=sn(e.matches[0],e.pendingMatches[0]),n=t?.module?.renderSidebar;return t&&(t.status===`success`||t.status===`pending`)&&t.error===void 0&&typeof n==`function`?{key:t.routeId,data:t.data,loaderPending:t.isFetching===`loader`,render:n}:void 0}function IS(e,t){return e?.key===t?.key&&e?.data===t?.data&&e?.loaderPending===t?.loaderPending&&e?.render===t?.render}function LS(){return(LS=e((()=>{Fn()})))()}var RS;function zS(){return(zS=e((()=>{E(),LS(),RS=class{constructor(e){this.host=e,this.positions=new Map,this.presentedKey=`sessions`,new C(e).watch(()=>e.router,(t,n)=>{let r=t.subscribeSelector(FS,n,IS);return()=>{r(),e.contextualSidebar=void 0}},t=>{e.contextualSidebar=FS(t.getState())}),e.addController(this)}hostUpdate(){if(!this.host.isConnected||this.key===this.presentedKey)return;let e=this.scroller;e&&this.positions.set(this.presentedKey,e.scrollTop)}hostUpdated(){if(!this.host.isConnected||this.key===this.presentedKey)return;this.presentedKey=this.key;let e=this.scroller;e&&(e.scrollTop=this.positions.get(this.key)??0,this.host.sessionData.updateSessionsScrollState(e))}handleScroll(e){let t=e.currentTarget;t instanceof HTMLElement&&(this.positions.set(this.presentedKey,t.scrollTop),this.host.sessionData.updateSessionsScrollState(t))}get key(){return this.host.contextualSidebar?.key??`sessions`}get scroller(){return this.host.querySelector(`.sidebar-shell__body`)}}})))()}var BS;function VS(){return(VS=e((()=>{R(),B(),k(),O(),yh(),P(),kh(),Kp(),BS=class extends pt{constructor(...e){super(...e),this.x=0,this.y=0,this.trigger=null,this.lastActive=``,this.terminalDisabled=!1,this.canDelete=!1,this.canImport=!1,this.onAction=()=>{},this.onClose=()=>{},this.menuLifecycle=new vh(this,{getTrigger:()=>this.trigger,onClose:()=>this.onClose()}),this.handleSelect=e=>{e.preventDefault();let t=e.detail.item.value;t&&this.run(t)},this.handleAfterHide=e=>{e.currentTarget instanceof Node&&e.currentTarget.isConnected&&this.onClose()}}connectedCallback(){super.connectedCallback(),Dh(this)}run(e){this.onAction(e),this.onClose()}render(){let e=140+(this.canDelete?40:0)+(this.canImport?40:0),t=Math.max(8,Math.min(this.x,window.innerWidth-240-8)),n=Math.max(8,Math.min(this.y,window.innerHeight-e-8)),r=N(`chat.catalog.sessionMenu`);return L`
      <wa-dropdown
        class="session-menu"
        .open=${!0}
        placement="bottom-start"
        .distance=${0}
        aria-label=${r}
        @wa-select=${this.handleSelect}
        @wa-after-hide=${this.handleAfterHide}
      >
        <button
          slot="trigger"
          type="button"
          tabindex="-1"
          aria-hidden="true"
          aria-label=${r}
          style="position: fixed; left: ${t}px; top: ${n}px; width: 1px; height: 1px; opacity: 0; pointer-events: none;"
        ></button>
        ${this.lastActive?L`<div class="session-menu__info">
                ${N(`sessionsView.lastActive`,{time:this.lastActive})}
              </div>`:``}
        <wa-dropdown-item class="session-menu__item" value="viewer">
          <span slot="icon" class="session-menu__icon" aria-hidden="true"
            >${F.messageSquare}</span
          >
          <span class="session-menu__text">${N(`chat.catalog.openInOpenClaw`)}</span>
        </wa-dropdown-item>
        ${this.canImport?L`<wa-dropdown-item class="session-menu__item" value="import">
                <span slot="icon" class="session-menu__icon" aria-hidden="true"
                  >${F.download}</span
                >
                <span class="session-menu__text">${N(`chat.catalog.importToOpenClaw`)}</span>
              </wa-dropdown-item>`:``}
        <wa-dropdown-item
          class="session-menu__item"
          value="terminal"
          title=${this.terminalDisabled?N(`chat.catalog.terminalUnavailable`):``}
          ?disabled=${this.terminalDisabled}
        >
          <span slot="icon" class="session-menu__icon" aria-hidden="true">${F.terminal}</span>
          <span class="session-menu__text">${N(`chat.catalog.openInTerminal`)}</span>
        </wa-dropdown-item>
        ${this.canDelete?L`<wa-dropdown-item
                class="session-menu__item session-menu__item--destructive"
                variant="danger"
                value="delete"
              >
                <span slot="icon" class="session-menu__icon" aria-hidden="true"
                  >${F.trash}</span
                >
                <span class="session-menu__text">${N(`chat.catalog.deleteSession`)}</span>
              </wa-dropdown-item>`:``}
      </wa-dropdown>
    `}},U([V({attribute:!1})],BS.prototype,`x`,void 0),U([V({attribute:!1})],BS.prototype,`y`,void 0),U([V({attribute:!1})],BS.prototype,`trigger`,void 0),U([V({attribute:!1})],BS.prototype,`lastActive`,void 0),U([V({attribute:!1})],BS.prototype,`terminalDisabled`,void 0),U([V({attribute:!1})],BS.prototype,`canDelete`,void 0),U([V({attribute:!1})],BS.prototype,`canImport`,void 0),U([V({attribute:!1})],BS.prototype,`onAction`,void 0),U([V({attribute:!1})],BS.prototype,`onClose`,void 0),customElements.get(`openclaw-catalog-session-menu`)||customElements.define(`openclaw-catalog-session-menu`,BS)})))()}function HS(e){if(e instanceof PointerEvent&&e.pointerType===`touch`)return null;for(let t of e.composedPath()){if(t instanceof HTMLElement&&t.matches(JS))return t;if(t===e.currentTarget)break}return null}function US(e){return e.matches(KS)?`horizontal`:`vertical`}var WS,GS,KS,qS,JS;function YS(){return(YS=e((()=>{WS=`a.markdown-session-link, [data-session-href]`,GS=`${WS}, [data-session-title-only]`,KS=`.sidebar-recent-session[data-session-key]`,qS=`openclaw-session-menu-open`,JS=`${WS}, ${KS}`})))()}var XS;function ZS(){return(ZS=e((()=>{R(),cr(),k(),Nt(),ke(),xt(),il(),je(),Ke(),VS(),Ef(),YS(),XS=class{constructor(e,t){this.host=e,this.beforeOpen=t,this.state=null,this.trigger=null}get isOpen(){return this.state!==null}isOpenFor(e){let t=this.state?.key;return t?.catalogId===e.catalogId&&t.hostId===e.hostId&&t.threadId===e.threadId&&t.sourceHomeId===e.sourceHomeId}open(e,t,n,r=null){r?.dispatchEvent(new CustomEvent(qS,{bubbles:!0,composed:!0})),this.beforeOpen(),this.trigger=r,this.state={...e,x:t,y:n},this.host.requestUpdate()}close(){(this.state||this.trigger)&&(this.trigger=null,this.state=null,this.host.requestUpdate())}retargetTrigger(e,t){t instanceof HTMLElement&&this.isOpenFor(e)&&queueMicrotask(()=>{t.isConnected&&!this.trigger?.isConnected&&this.isOpenFor(e)&&(this.trigger=t,this.host.requestUpdate())})}handleAction(e,t){if(t===`import`){this.canImport()&&this.importSession(e);return}if(t===`terminal`){e.canOpenTerminal&&this.host.terminalAvailable&&Sl(this.host,e.key,e.agentId);return}if(t===`delete`){e.canDelete&&this.deleteSession(e);return}this.host.onNavigate?.(e.routeId,e.navigation)}isMutationCurrent(e){return this.host.sessionData.isSessionMutationScopeCurrent(e)&&e.catalogGeneration===this.host.sessionData.sessionScopeGeneration}canImport(){let e=this.host.sessionDataContext?.gateway.snapshot;return e?.phase===`connected`&&Te(e.hello?.auth,{method:`sessions.catalog.import`,requiredScope:`operator.write`}).allowed}async importSession(e){let t=this.host.sessionData.beginSessionMutation();if(!t)return;let n={...t,catalogGeneration:this.host.sessionData.sessionScopeGeneration},r=no(e.displayName?.trim()??``,500);try{let t=await this.host.sessionData.importSessionCatalog(n,{...e.key,agentId:e.agentId,...r?{displayName:r}:{}});if(!t||!this.isMutationCurrent(n))return;jt({message:N(t.complete?t.importedItems===0?`chat.catalog.importUnchanged`:`chat.catalog.importComplete`:`chat.catalog.importIncomplete`,{count:String(t.importedItems)}),actionLabel:N(`chat.catalog.openImportedSession`),onAction:()=>{if(!this.isMutationCurrent(n))return;let r=Fe({context:n.context,face:`chat`,sessionKey:t.sessionKey,agentId:e.agentId,exactKey:!0});this.host.onNavigate?.(`chat`,{...r.options,search:``,hash:``})}})}catch(e){this.isMutationCurrent(n)&&jt({message:M(e)})}}async deleteSession(e){let t=this.host.sessionData.beginSessionMutation();if(!t)return;let n={...t,catalogGeneration:this.host.sessionData.sessionScopeGeneration};try{let t=await wf({message:N(`chat.catalog.deleteSessionConfirm`),details:e.name,confirmLabel:N(`chat.catalog.deleteSession`),danger:!0,signal:n.signal});if(!this.isMutationCurrent(n)){jt({message:N(`sessionsView.deleteSessionStale`,{session:e.name})});return}if(!t||(await this.host.sessionData.archiveSessionCatalog(n,{...e.key,agentId:e.agentId,confirmNoOtherRunner:!0}),!this.isMutationCurrent(n)))return;let r=ut(this.host.getRouteSessionKey());this.host.activeRouteId===`chat`&&r?.catalogId===e.key.catalogId&&r.hostId===e.key.hostId&&r.threadId===e.key.threadId&&this.host.onNavigate?.(`chat`,{pathname:qr(`chat`,this.host.basePath),search:``,hash:``})}catch(e){jt({message:M(e)})}}render(){let e=this.state;return e?L`
      <openclaw-catalog-session-menu
        .x=${e.x}
        .y=${e.y}
        .trigger=${this.trigger}
        .lastActive=${e.meta}
        .canDelete=${e.canDelete}
        .canImport=${this.canImport()}
        .terminalDisabled=${!e.canOpenTerminal||!this.host.terminalAvailable}
        .onAction=${t=>this.handleAction(e,t)}
        .onClose=${()=>this.close()}
      ></openclaw-catalog-session-menu>
    `:I}}})))()}function QS(){let e=Kd()?.snapshot;return e?.gateways.find(t=>t.id===e.currentId)?.kind===`local`}function $S(e,t){return t||!QS()?null:/^(?:\/|[a-z]:[\\/]|\\\\)/i.test(e.path)?e.path:e.root?`${e.root.replace(/[\\/]+$/,``)}/${e.path.replace(/^[\\/]+/,``)}`:null}function eC(e,t){new C(e).watchStore(Kd,t)}function tC(){return(tC=e((()=>{E(),Yd()})))()}function nC(e){for(let t of oC){let n=e.find(e=>e.state===t);if(n)return n.url}return null}async function rC(e){try{return nC((await e.loadPullRequests?.())?.pullRequests??[])}catch{return null}}async function iC(e){let t=e.worktreeId;if(!t||e.execNode||!QS())return null;try{return(await e.client.request(`worktrees.list`,{})).worktrees.find(e=>e.id===t&&e.removedAt===void 0)?.path??null}catch{return null}}async function aC(e){let[t,n]=await Promise.all([rC(e),iC(e)]);return{pullRequestUrl:t,worktreePath:n}}var oC;function sC(){return(sC=e((()=>{tC(),oC=[`open`,`draft`,`merged`,`closed`]})))()}function cC(e,t,n,r){return{x:Math.max(8,Math.min(e,window.innerWidth-n-8)),y:Math.max(8,Math.min(t,window.innerHeight-r-8))}}var lC,uC,dC,fC;function pC(){return(pC=e((()=>{R(),cr(),Zi(),na(),pc(),je(),A(),ZS(),m_(),sC(),YS(),Go(),lC=300,uC=200,dC=300,fC=class{constructor(e){this.host=e,this.customizeMenuPosition=null,this.moreMenuPosition=null,this.pluginNavigationMenuPosition=null,this.sessionMenu=null,this.sessionMenuWork=null,this.sessionGroupMenu=null,this.sessionSortMenuPosition=null,this.peopleFilterMenuPosition=null,this.catalogViewMenuPosition=null,this.filterMenuView=`root`,this.agentMenuPosition=null,this.agentMenuQuery=``,this.identityMenuPosition=null,this.customizeMenuTrigger=null,this.moreMenuTrigger=null,this.pluginNavigationMenuTrigger=null,this.sessionMenuTrigger=null,this.sessionMenuWorkVersion=0,this.sessionGroupMenuTrigger=null,this.sessionSortMenuTrigger=null,this.peopleFilterMenuTrigger=null,this.catalogViewMenuTrigger=null,this.agentMenuTrigger=null,this.agentMenuInteractionState=`closed`,this.identityMenuTrigger=null,this.agentMenuHoverOpenTimer=null,this.agentMenuHoverCloseTimer=null,this.agentMenuFocusBeforeHover=null,this.routePreloadTimers=new Map,this.menuRenderer=null,this.menuRendererImport=Dt(()=>W(()=>Promise.resolve().then(()=>(bM(),mM)),void 0,import.meta.url),e=>{this.menuRenderer=e,this.host.requestUpdate()}),this.pluginActionLifetime=new AbortController,this.cancelPreload=e=>{Xs(this.routePreloadTimers,e)},this.openCustomizeMenuFromContext=e=>{e.preventDefault(),this.openCustomizeMenu(e.clientX,e.clientY)},e.addController(this),this.agentMenuAvatars=new wa(e),this.catalogMenu=new XS(e,()=>{this.dismissTransientMenus()})}hostConnected(){this.pluginActionLifetime.signal.aborted&&(this.pluginActionLifetime=new AbortController),this.menuRendererImport.schedule()}hostDisconnected(){this.pluginActionLifetime.abort(),this.menuRendererImport.dispose(),this.clearAgentMenuHoverTimers();for(let e of this.routePreloadTimers.values())globalThis.clearTimeout(e);this.routePreloadTimers.clear()}updateState(e,t){this[e]=t,this.host.requestUpdate()}preloadMenuRenderer(){return this.menuRendererImport.load()}loadMenuRenderer(){this.preloadMenuRenderer().catch(()=>void 0)}closePositionedMenu(e,t={}){let n=this[`${e}MenuTrigger`];this[`${e}MenuTrigger`]=null,this.updateState(`${e}MenuPosition`,null),t.restoreFocus&&n?.focus()}dismissTransientMenus(){let e=!!(this.customizeMenuPosition||this.moreMenuPosition||this.pluginNavigationMenuPosition||this.sessionMenu||this.catalogMenu.isOpen||this.sessionGroupMenu||this.sessionSortMenuPosition||this.peopleFilterMenuPosition||this.catalogViewMenuPosition||this.agentMenuPosition||this.identityMenuPosition);return this.closePositionedMenu(`customize`),this.closePositionedMenu(`more`),this.closePositionedMenu(`pluginNavigation`),this.closeSessionMenu(),this.catalogMenu.close(),this.closePositionedMenu(`peopleFilter`),this.closeSessionGroupMenu(),this.closePositionedMenu(`sessionSort`),this.closePositionedMenu(`catalogView`),this.closeAgentMenu(),this.closePositionedMenu(`identity`),e}preloadRoute(e,t,n=!1){hc(this.routePreloadTimers,e,t,e=>this.host.onPreloadRoute?.(e),e===this.host.activeRouteId||!this.isRouteEnabled(e),n)}isRouteEnabled(e){return this.host.enabledRouteIds?.includes(e)??!0}openCustomizeMenu(e,t,n=null){this.loadMenuRenderer(),this.dismissTransientMenus(),this.customizeMenuTrigger=n,this.updateState(`customizeMenuPosition`,cC(e,t,240,420))}togglePositionedMenu(e,t){if(this[`${e}MenuPosition`]){this.closePositionedMenu(e);return}this.loadMenuRenderer();let n=t.getBoundingClientRect();this.dismissTransientMenus(),e===`peopleFilter`&&this.host.people.dismiss();let[r,i]={more:[240,420],peopleFilter:[320,160],sessionSort:[200,280]}[e];this[`${e}MenuTrigger`]=t,this.updateState(`${e}MenuPosition`,cC(e===`more`?n.left:n.right,n.bottom+4,r,i))}openPluginNavigationMenu(e,t,n,r){!e.signal.aborted&&e.value.actions?.length&&(this.loadMenuRenderer(),this.dismissTransientMenus(),this.pluginNavigationMenuTrigger=r,this.updateState(`pluginNavigationMenuPosition`,{...cC(t,n,240,e.value.actions.length*40+16),entry:e}))}openSessionMenu(e,t,n,r=null){r?.dispatchEvent(new CustomEvent(qS,{bubbles:!0,composed:!0})),this.host.selectedSessionKeys.has(e.key)||this.host.clearSessionSelection(),this.loadMenuRenderer(),this.dismissTransientMenus(),this.sessionMenuTrigger=r,this.updateState(`sessionMenu`,{session:e,x:t,y:n}),this.loadSessionMenuWork(e)}closeSessionMenu(){let e=this.host.sessionDataContext?.gateway;e&&Al(e).unwatch(this),this.sessionMenuTrigger=null,this.sessionMenuWorkVersion+=1,this.updateState(`sessionMenu`,null),this.updateState(`sessionMenuWork`,null)}loadSessionMenuWork(e){let t=++this.sessionMenuWorkVersion;if(!e.worktreeId){this.updateState(`sessionMenuWork`,null);return}this.updateState(`sessionMenuWork`,{loading:!0,pullRequestUrl:null,worktreePath:null});let n=this.host.sessionDataContext,r=n?.gateway.snapshot.client;if(!n||!r){this.updateState(`sessionMenuWork`,{loading:!1,pullRequestUrl:null,worktreePath:null});return}let{selectedAgentId:i}=this.host.getSessionNavigationState(),a=Al(n.gateway),o=ge(e.key,Ft(e.key)?.agentId??i);aC({client:r,loadPullRequests:Yi(n.gateway.snapshot,`controlUi.sessionPullRequests.subscribe`,`operator.read`)?()=>a.load(this,o):void 0,worktreeId:e.worktreeId,execNode:e.execNode}).then(e=>{t===this.sessionMenuWorkVersion&&this.updateState(`sessionMenuWork`,{loading:!1,...e})})}openSessionGroupMenu(e,t,n,r){this.loadMenuRenderer(),this.dismissTransientMenus(),this.sessionGroupMenuTrigger=r,this.updateState(`sessionGroupMenu`,{group:e,...cC(t,n,224,160)})}closeSessionGroupMenu(e={}){let t=this.sessionGroupMenuTrigger;this.sessionGroupMenuTrigger=null,this.updateState(`sessionGroupMenu`,null),e.restoreFocus&&t?.focus()}toggleCatalogViewMenu(e,t){if(this.catalogViewMenuPosition?.catalogId===e){this.closePositionedMenu(`catalogView`);return}let n=t.getBoundingClientRect();this.openCatalogViewMenu(e,n.right,n.bottom+4,t)}openCatalogViewMenu(e,t,n,r=null){this.loadMenuRenderer(),this.dismissTransientMenus(),this.catalogViewMenuTrigger=r,this.filterMenuView=`root`,this.updateState(`catalogViewMenuPosition`,{catalogId:e,...cC(t,n,200,360)})}setFilterMenuView(e){this.catalogViewMenuPosition&&(this.filterMenuView=e,this.host.requestUpdate(),this.focusFilterMenuView())}focusFilterMenuView(){this.host.updateComplete.then(()=>{let e=this.catalogViewMenuTrigger?.closest(`openclaw-app-sidebar`)?.querySelector(`.sidebar-session-sort-menu`),t=e?.shadowRoot?.querySelector(`[part="menu"]`);e&&t&&(t.scrollTop=0,e.querySelector(`wa-dropdown-item:not([disabled])`)?.focus())})}toggleAgentMenu(e){if(this.clearAgentMenuHoverTimers(),this.agentMenuInteractionState===`open-click`){this.closeAgentMenu();return}if(this.agentMenuInteractionState===`open-hover`){this.agentMenuFocusBeforeHover=null,this.updateState(`agentMenuInteractionState`,`open-click`),this.host.updateComplete.then(()=>{if(this.agentMenuInteractionState!==`open-click`||this.agentMenuTrigger!==e)return;let t=this.host.querySelector(`.sidebar-agent-menu`);t&&this.menuRenderer?.focusActiveAgentMenuItem(t)});return}this.openAgentMenu(e,`open-click`)}openAgentMenu(e,t){this.clearAgentMenuHoverTimers(),this.loadMenuRenderer();let n=dC,r=e.getBoundingClientRect();this.closePositionedMenu(`customize`),this.closePositionedMenu(`more`),this.closeSessionMenu(),this.closeSessionGroupMenu(),this.closePositionedMenu(`sessionSort`),this.closePositionedMenu(`catalogView`),this.closePositionedMenu(`identity`),this.closePositionedMenu(`peopleFilter`),this.agentMenuTrigger=e,this.agentMenuFocusBeforeHover=t===`open-hover`&&document.activeElement instanceof HTMLElement?document.activeElement:null,this.updateState(`agentMenuInteractionState`,t),this.updateState(`agentMenuPosition`,{x:Math.max(8,Math.min(r.left,window.innerWidth-n-8)),top:Math.min(r.bottom+4,window.innerHeight-8)})}scheduleAgentMenuHoverOpen(e,t){globalThis.clearTimeout(this.agentMenuHoverCloseTimer??void 0),this.agentMenuHoverCloseTimer=null,this.agentMenuInteractionState===`closed`&&t.pointerType!==`touch`&&globalThis.matchMedia(`(hover: hover) and (pointer: fine)`).matches&&(this.loadMenuRenderer(),globalThis.clearTimeout(this.agentMenuHoverOpenTimer??void 0),this.updateState(`agentMenuInteractionState`,`hover-pending`),this.agentMenuHoverOpenTimer=globalThis.setTimeout(()=>{this.agentMenuHoverOpenTimer=null,this.agentMenuInteractionState===`hover-pending`&&this.openAgentMenu(e,`open-hover`)},lC))}handleAgentMenuTriggerPointerLeave(){if(globalThis.clearTimeout(this.agentMenuHoverOpenTimer??void 0),this.agentMenuHoverOpenTimer=null,this.agentMenuInteractionState===`hover-pending`){this.updateState(`agentMenuInteractionState`,`closed`);return}this.scheduleAgentMenuHoverClose()}handleAgentMenuPointerEnter(){globalThis.clearTimeout(this.agentMenuHoverCloseTimer??void 0),this.agentMenuHoverCloseTimer=null}handleAgentMenuPointerLeave(){this.scheduleAgentMenuHoverClose()}restoreFocusAfterAgentMenuHoverOpen(){if(this.agentMenuInteractionState!==`open-hover`)return;this.host.querySelector(`.sidebar-agent-menu__agent-switch--active`)?.scrollIntoView?.({block:`nearest`});let e=this.agentMenuFocusBeforeHover;this.agentMenuFocusBeforeHover=null,e&&e!==document.body&&e.isConnected?e.focus({preventScroll:!0}):document.activeElement instanceof HTMLElement&&document.activeElement.closest(`.sidebar-agent-menu`)&&document.activeElement.blur()}setAgentMenuQuery(e){this.updateState(`agentMenuQuery`,e)}closeAgentMenu(e={}){let t=this.agentMenuTrigger;this.clearAgentMenuHoverTimers(),this.agentMenuTrigger=null,this.agentMenuQuery=``,this.agentMenuFocusBeforeHover=null,this.updateState(`agentMenuInteractionState`,`closed`),this.updateState(`agentMenuPosition`,null),e.restoreFocus&&t?.focus()}scheduleAgentMenuHoverClose(){this.agentMenuInteractionState===`open-hover`&&(globalThis.clearTimeout(this.agentMenuHoverCloseTimer??void 0),this.agentMenuHoverCloseTimer=globalThis.setTimeout(()=>{this.agentMenuHoverCloseTimer=null,this.agentMenuInteractionState===`open-hover`&&(document.activeElement?.closest(`.sidebar-agent-menu`)||this.closeAgentMenu())},uC))}clearAgentMenuHoverTimers(){globalThis.clearTimeout(this.agentMenuHoverOpenTimer??void 0),globalThis.clearTimeout(this.agentMenuHoverCloseTimer??void 0),this.agentMenuHoverOpenTimer=null,this.agentMenuHoverCloseTimer=null}toggleIdentityMenu(e){if(this.identityMenuPosition){this.closePositionedMenu(`identity`);return}this.loadMenuRenderer();let t=e.getBoundingClientRect(),n=Math.max(240,t.width);this.dismissTransientMenus(),this.identityMenuTrigger=e,this.updateState(`identityMenuPosition`,{x:Math.max(8,Math.min(t.right-n,window.innerWidth-n-8)),bottom:Math.max(8,window.innerHeight-t.top+4),width:t.width})}render(){let e=this.menuRenderer;return L`
      ${e?.renderSidebarCustomizeMenuForController(this)??I}
      ${e?.renderSidebarMoreMenuForController(this)??I}
      ${e?.renderSidebarPluginNavigationMenuForController(this)??I}
      ${this.agentMenuAvatars.withActiveRoutes(()=>e?.renderSidebarAgentMenuForController(this)??I)}
      ${e?.renderSidebarIdentityMenuForController(this)??I}
      ${e?.renderSidebarSessionMenuForController(this)??I}
      ${this.catalogMenu.render()}
      ${e?.renderSidebarSessionGroupMenuForController(this)??I}
      ${e?.renderSidebarSessionSortMenuForController(this)??I}
      ${e?.renderSidebarPeopleFilterMenuForController(this)??I}
      ${e?.renderSidebarCatalogViewMenuForController(this)??I}
    `}renderRoute(e){if(!this.isRouteEnabled(e))return I;let t=Wr(e)?this.host.getRouteSessionKey():``,n=this.host.sessionDataContext,r=Wr(e)&&t&&n?Fe({context:n,face:e,sessionKey:t}):null;return c_({routeId:e,href:r?.href??qr(e,this.host.basePath),active:o_(this.host.activeRouteId,e),onNavigate:()=>{this.host.onNavigate?.(e,r?.options)},onPreload:(t,n)=>this.preloadRoute(e,t,n),onCancelPreload:this.cancelPreload})}}})))()}function mC(e){let t=gC.get(e);return t||(t={listeners:new Set},gC.set(e,t)),t}function hC(e,t){let n=mC(e),r=e.sessions,i=r.captureConnectionScope(),a=!1,o=!1,s,c=null,l=()=>!a&&i!==null&&r.isConnectionScopeCurrent(i),u=()=>{l()&&(o&&s&&!s.loading&&!s.error&&s.readSucceeded===!0&&(c=s.result),t())};n.listeners.add(u);let d=i?r.observeList({source:`activity`,limit:200,rowMode:`compact`,includeDerivedTitles:!0,includeLastMessage:!0},e=>{s=e,o&&u()}):void 0,f=()=>{o=!0,u()};return d?.refresh().then(f,()=>{s=void 0,f()}),{get data(){return l()?{presencePayload:n.data?.presencePayload,sessionsResult:c}:void 0},dispose:()=>{a=!0,d?.dispose(),n.listeners.delete(u)}}}var gC,_C;function vC(){return(vC=e((()=>{gC=new WeakMap,_C=class{constructor(e,t,n){this.host=e,this.context=t,this.data=n}hostUpdated(){if(!this.host.isConnected)return;let e=this.context(),t=e?mC(e):void 0;if(this.source!==t&&(this.hostDisconnected(),this.source=t),t){t.data=this.data;for(let e of t.listeners)e()}}hostDisconnected(){if(this.source?.data===this.data){this.source.data=void 0;for(let e of this.source.listeners)e()}this.source=void 0}}})))()}var yC,bC;function xC(){return(xC=e((()=>{k(),yl(),Ke(),nl(),vC(),Go(),yC=[`pointerover`,`pointerout`,`focusin`,`focusout`,`click`,`keydown`],bC=class{setStatusFilter(e){this.statusFilter=e,this.host.requestUpdate()}setSortMode(e){this.sortMode=e,this.host.requestUpdate()}resetView(){this.statusFilter=`all`,this.sortMode=`presence`,this.host.requestUpdate()}constructor(e){this.host=e,this.statusFilter=`all`,this.sortMode=`presence`,this.runtime=null,this.loading=null,this.generation=0,this.pendingTarget=null,this.cancelPending=e=>{(e instanceof KeyboardEvent?e.key===`Escape`:e.target instanceof Node&&!this.pendingTarget?.contains(e.target))&&(this.generation+=1,this.clearPending())},this.handleEvent=e=>{if(e.type===`click`&&e.target instanceof Element&&e.target.closest(`a[href]`))return;if(this.runtime){this.runtime.handleEvent(e);return}let t=e.target instanceof Element?e.target.closest(`[data-person-card]`):null;if(!t||![`pointerover`,`focusin`,`click`].includes(e.type))return;let n=++this.generation;this.pendingTarget=t,document.addEventListener(`pointerdown`,this.cancelPending,!0),document.addEventListener(`keydown`,this.cancelPending,!0);let r=this.host.sessionDataContext?.gateway.snapshot.client,i=this.host.sessionDataContext?.gateway,a=i?.snapshot.hello,o=this.host.activeRouteId,s=this.host.sessionKey,c=performance.now();this.loading??=W(()=>import(`./sidebar-people.runtime-CKP5u6WU.js`),__vite__mapDeps([28,0,1,2,17,16,18,15,19,8,20,3,4,5,10,21,22]),import.meta.url),this.loading.then(l=>{n===this.generation&&this.clearPending(),n===this.generation&&this.host.isConnected&&t.isConnected&&i===this.host.sessionDataContext?.gateway&&r===i?.snapshot.client&&a===i?.snapshot.hello&&o===this.host.activeRouteId&&s===this.host.sessionKey&&(this.runtime??=new l.SidebarPeopleRuntime(this.host),this.runtime.handleEvent(e,c))},()=>{this.loading=null,n===this.generation&&this.host.isConnected&&(this.clearPending(),jt({message:N(`presence.card.loadFailed`)}))})},e.addController(this),this.activityExpiry=vc(e,()=>e.connected?Qc(e.sessionData.presencePayload).users:[]),e.addController(new _C(e,()=>e.sessionDataContext,e.sessionData))}hostConnected(){for(let e of yC)this.host.addEventListener(e,this.handleEvent)}hostUpdate(){this.activityExpiry.sync()}hostUpdated(){this.runtime?.sync()}dismiss(){return this.generation+=1,this.clearPending(),this.runtime?.dismiss()??!1}hostDisconnected(){for(let e of yC)this.host.removeEventListener(e,this.handleEvent);this.generation+=1,this.clearPending(),this.runtime?.dispose(),this.runtime=null}clearPending(){this.pendingTarget=null,document.removeEventListener(`pointerdown`,this.cancelPending,!0),document.removeEventListener(`keydown`,this.cancelPending,!0)}}})))()}var SC=t({}),CC;function wC(){return(wC=e((()=>{R(),B(),vi(),qt(),cr(),en(),k(),wg(),kg(),jg(),Zg(),xt(),$g(),an(),Ke(),E(),Qe(),yt(),n_(),Jv(),pb(),SS(),hy(),J(),DS(),MS(),P(),zy(),PS(),zS(),pC(),xC(),Go(),CC=class extends xS{sessionGroupDefaults(e){if(this.context?.sessions.groupsStatus()!==`ready`)return null;let t=this.context?.sessions.state.groupSettings.find(t=>t.name===e);return t?{cwd:t.cwd??``,worktree:t.worktree===!0}:null}async listSessionGroupFolders(e){let t=this.context?.sessions,n=t?.captureConnectionScope();if(!t||!n)throw Error(N(`sessionsView.groupDefaultsStale`));let r=await n.client.request(`fs.listDir`,e?{path:e}:{});if(this.context?.sessions!==t||!t.isConnectionScopeCurrent(n))throw Error(N(`sessionsView.groupDefaultsStale`));return r}async inspectSessionGroupRepository(e){let t=e?.trim()||this.activeChipAgent().agent?.workspace?.trim();if(!t)return`unavailable`;let n=this.context?.sessions,r=n?.captureConnectionScope();if(!n||!r)throw Error(N(`sessionsView.groupDefaultsStale`));let i=await r.client.request(`worktrees.branches`,{repoRoot:t,includeRepositoryStatus:!0});if(this.context?.sessions!==n||!n.isConnectionScopeCurrent(r))throw Error(N(`sessionsView.groupDefaultsStale`));return i.repositoryStatus===`git`||i.repositoryStatus===`not_git`?i.repositoryStatus:`unavailable`}constructor(){super(),this.teamOnlineExpanded=!1,this.sidebarNarrationLines=new Map,this.sidebarTools=new Map,this.sidebarObserverDigests=new Map,this.sessionOrganizer=new NS(this),this.sidebarMenus=new fC(this),this.people=new bC(this),this.narration=null,this.narrationLoad=null,this.sidebarContext=new RS(this),this.subscriptions=new C(this).effect(()=>this.context?.gateway,e=>e.subscribeEvents(e=>this.narration?.handleEvent(e))).watchStore(()=>this.context?.agentIdentity).watchStore(()=>this.context?.theme,()=>this.syncCommunityInviteState()).watchStore(()=>this.context?.config,()=>this.syncCommunityInviteState()).watchStore(()=>this.context?.plugins),this.nativeGatewaysChanged=()=>this.sidebarMenus.closeSessionMenu(),this.hiddenSessionCatalogsChanged=()=>{this.hiddenSessionCatalogIds=R_()},this.communityInvitePresentation=`unavailable`,this.communityInviteStorageChanged=e=>{(e.key===`openclaw:control-ui:community-invite:v2`||e.key===null)&&this.syncCommunityInviteState()},this.catalogRenderer=null,this.catalogRendererImport=Dt(()=>W(()=>Promise.resolve().then(()=>($m(),Gm)),void 0,import.meta.url),e=>{this.catalogRenderer=e.renderSessionCatalogGroups,this.isConnected&&this.requestUpdate()}),this.rosterRenderer=null,this.rosterRendererImport=Dt(()=>W(()=>import(`./sidebar-agent-roster-Bur9kdR6.js`),__vite__mapDeps([29,0,30,1,2,3,4,5,31]),import.meta.url),e=>{this.rosterRenderer=e,this.requestUpdate()}),this.catalogProjectGrouping=O_(),this.handleSidebarInteractionEnd=e=>{this.communityInvitePresentation!==`pending`||e instanceof FocusEvent&&e.relatedTarget instanceof Node&&this.contains(e.relatedTarget)||this.requestUpdate()},this.dismissCommunityInvite=()=>{let e=kS();this.syncCommunityInviteState(),e.ok||jt({message:N(`communityInvite.dismissFailed`)})},this.subscriptions}dismissTransientMenus(){let e=this.people.dismiss();return super.dismissTransientMenus()||e}disconnectedCallback(){this.rosterRendererImport.dispose(),window.removeEventListener(`openclaw:native-gateways-changed`,this.nativeGatewaysChanged),window.removeEventListener(fv,this.hiddenSessionCatalogsChanged),this.narration?.disconnect(),this.catalogRendererImport.dispose(),window.removeEventListener(`storage`,this.communityInviteStorageChanged),super.disconnectedCallback()}willUpdate(e){super.willUpdate(e),this.communityInvitePresentation===`pending`&&!this.matches(`:hover`)&&!this.contains(this.ownerDocument.activeElement)&&this.sessionOrganizer.draggingSessionKey===null&&this.sessionOrganizer.draggingSidebarSection===null&&this.sessionOrganizer.draggingSidebarEntry===null&&(this.communityInvitePresentation=`shown`);let t=this.sidebarMenus.agentMenuPosition===null?[this.expandedAgentId()]:this.activeChipAgent().agents.map(e=>e.id);this.ensureAgentIdentities(t)}ensureAgentIdentities(e){this.connected&&this.context?.agentIdentity.ensure(e)}updated(e){super.updated(e),this.narration?this.narration.sync(this.narrationSyncInput()):this.sidebarLiveActivity&&this.ensureNarrationController()}visibleNarrationRowsInOrder(){let e=[],t=n=>{e.push(n),this.isSessionChildrenExpanded(n)&&ly({session:n,fullyShown:this.isSessionChildrenFullyShown(n.key)}).forEach(t)};return this.visibleSessionRowsInOrder().forEach(t),e}narrationSyncInput(){let e=this.context?.gateway.snapshot;return{enabled:this.sidebarLiveActivity,connected:this.connected&&e?.phase===`connected`,connectionIdentity:e?.client??null,source:this.context?.sessions??null,rows:this.visibleNarrationRowsInOrder(),openSessionKey:Wr(this.activeRouteId)?this.getRouteSessionKey():``,agentId:this.selectedAgentIdForSessions()}}ensureNarrationController(){this.narration||this.narrationLoad||(this.narrationLoad=W(()=>Promise.resolve().then(()=>(_h(),sh)).then(e=>{this.narrationLoad=null,this.isConnected&&(this.narration=new e.SidebarSessionNarrationController(e=>{this.sidebarNarrationLines=e},e=>{this.sidebarObserverDigests=e},e=>{this.sidebarTools=e}),this.narration.sync(this.narrationSyncInput()))}),void 0,import.meta.url))}connectedCallback(){super.connectedCallback(),window.addEventListener(`openclaw:native-gateways-changed`,this.nativeGatewaysChanged),this.hiddenSessionCatalogsChanged(),window.addEventListener(fv,this.hiddenSessionCatalogsChanged),window.addEventListener(`storage`,this.communityInviteStorageChanged),this.syncCommunityInviteState(),this.catalogRendererImport.schedule()}syncCommunityInviteState(){this.context?.theme.branding.communityLinks===!1||this.context?.config.current.communityInvite!==!0||!OS()?this.communityInvitePresentation=`unavailable`:this.communityInvitePresentation!==`shown`&&(this.communityInvitePresentation=`pending`)}firstUpdated(){requestAnimationFrame(()=>requestAnimationFrame(()=>this.classList.add(`sidebar-r`)))}toggleSessionPin(e){this.sessionOrganizer.patchSession(e,{pinned:!e.pinned},{sessionScope:!0})}toggleSessionMenu(e,t,n){if(n){if(this.sidebarMenus.catalogMenu.isOpenFor(n.key)){this.sidebarMenus.catalogMenu.close();return}let e=t.getBoundingClientRect();this.sidebarMenus.catalogMenu.open(n,e.right,e.bottom+4,t);return}if(this.sidebarMenus.sessionMenu?.session.key===e.key){this.sidebarMenus.closeSessionMenu();return}let r=t.getBoundingClientRect();this.sidebarMenus.openSessionMenu(e,r.right,r.bottom+4,t)}toggleSection(e){this.collapsedSessionSections.has(e)||this.sessionProjection.resetMembership(e),this.sessionOrganizer.toggleSection(e)}setVisibleSessionLimit(e,t){let n=this.sidebarAgentsMode===`roster`&&e.startsWith(`agent:`);t<((n?this.rosterVisibleSessionLimits:this.sessionData.visibleSessionLimits).get(e)??10)&&this.sessionProjection.resetMembership(e),n?(this.rosterVisibleSessionLimits=new Map(this.rosterVisibleSessionLimits).set(e,t),this.requestUpdate()):this.sessionData.setVisibleSessionLimit(e,t)}preloadCatalogRenderer(){return this.catalogRendererImport.load()}setCatalogProjectGrouping(e){V_(e),this.catalogProjectGrouping=e}hideSessionCatalog(e){let t=this.sessionData.sessionCatalogs.find(t=>t.id===e)?.label??e;Z_(e,!0);let n=Ye.appearanceSidebar,r=qr(n.routeId,this.basePath)+n.search+n.hash;jt({message:L`${N(`chat.sidebar.sectionHidden`,{section:t})}
        <a
          class="session-link"
          href=${r}
          @click=${e=>{x(e)&&(e.preventDefault(),this.onNavigate?.(n.routeId,{search:n.search,hash:n.hash}))}}
          >${N(`chat.sidebar.sectionHiddenRecovery`)}</a
        >`,actionLabel:N(`common.undo`),onAction:()=>Z_(e,!1),durationMs:12e3})}renderPinnedSidebarSession(e){return this.sidebarAgentsMode===`roster`&&this.rosterRenderer?this.rosterRenderer.renderSidebarPinnedSession(this,e):py({host:this,session:e,listItem:!1})}renderSessions(){return ct(`session-list`,{sessionKey:this.sessionKey,agentId:this.getSessionNavigationState().selectedAgentId,sessions:this.context?.sessions.state.result?.sessions??[]},this.renderSessionsBody())}renderSessionsBody(){if(this.sidebarAgentsMode===`roster`)return this.rosterRenderer?this.rosterRenderer.renderSidebarAgentRoster(this,this.zonedVisibleSections(this.selectedAgentSessionRows(this.getSessionNavigationState())).sections,this.selectedAgentSessionRows(this.getSessionNavigationState()).length===0):(this.rosterRendererImport.load().catch(()=>void 0),I);let e=this.getSessionNavigationState(),t=this.selectedAgentSessionRows(e),r=this.expandedAgentId(),i=this.activeRouteId===`terminal`?tt(this.context?.router.getState().matches[0]?.location.search??``):null,a=i?n(i,r):Wr(this.activeRouteId)?this.getRouteSessionKey():``,o=this.sidebarSessionCatalogs(),{sections:s}=this.zonedVisibleSections(t);return!this.catalogRenderer&&(o.length>0||this.sessionData.sessionCatalogRefreshStatus.error!==null)&&this.preloadCatalogRenderer().catch(()=>void 0),db({host:this,empty:t.length===0,sections:s,nativeSessionsHaveMore:this.sessionData.sessionsResult?.hasMore===!0,nativeSessionsLoading:this.sessionData.sessionsLoading,catalogRenderer:this.catalogRenderer,catalogs:{catalogs:o,basePath:this.basePath,routeSessionKey:a,newSessionAgentId:r,mainKey:this.sessionMainKey(),loadingMoreCatalogIds:this.sessionData.loadingMoreSessionCatalogIds,projectGrouping:this.catalogProjectGrouping,liveRows:this.catalogLiveRows(),toSidebarSession:e.toSidebarSession,catalogOpenTarget:this.catalogOpenTarget,terminalAvailable:this.terminalAvailable}})}render(){let e=this.reconciledSidebarZone(),t=e.entries.filter(e=>e.type!==`route`||this.sidebarMenus.isRouteEnabled(e.route)),n=this.sidebarAgentsMode!==`roster`;return L`
      <aside
        class="sidebar"
        @pointerleave=${this.handleSidebarInteractionEnd}
        @focusout=${this.handleSidebarInteractionEnd}
        @contextmenu=${e=>{e.target.closest(`input, textarea, [contenteditable]`)||e.preventDefault()}}
      >
        <div class="sidebar-shell" @mousedown=${En}>
          ${Hv(this,this.sidebarAgentsMode===`roster`?this.rosterRenderer?.renderSidebarNewSessionMenu(this):I)}
          <div class="sidebar-shell__content">
            <div
              class="sidebar-shell__body sidebar-shell__body--scroll-${this.sessionData.sessionsScrollState}"
              @scroll=${e=>this.sidebarContext.handleScroll(e)}
            >
              <nav
                class="sidebar-nav"
                @contextmenu=${this.sidebarMenus.openCustomizeMenuFromContext}
              >
                <div
                  class="nav-section__items"
                  @dragover=${e=>this.sessionOrganizer.handleSidebarZoneDragOver(e)}
                  @dragleave=${e=>this.sessionOrganizer.handleSidebarZoneDragLeave(e)}
                  @drop=${e=>this.sessionOrganizer.handleSidebarZoneDrop(e)}
                >
                  ${n||t.length===0?Wv(this,Uv(this)):I}
                  <openclaw-mcp-app-catalog surface="sidebar"></openclaw-mcp-app-catalog>
                  ${pi(t,mn,(t,r)=>Kv(this,t,e.sessionRows,e.pluginTabs,!n&&r===0))}
                </div>
              </nav>
              <div class="sidebar-session-content" ?hidden=${!!this.contextualSidebar}>
                ${e_(this)} ${this.renderSessions()}
              </div>
              ${this.contextualSidebar?.render(this.contextualSidebar.data,this.contextualSidebar.loaderPending,!0)??I}
            </div>
            ${this.contextualSidebar||this.sessionsStatusFilter===`archived`?I:Ry({status:this.sessionData.sessionCatalogRefreshStatus,className:`sidebar-session-error sidebar-session-catalog-error`})}
          </div>
          <div class="sidebar-shell__invite">
            ${this.communityInvitePresentation===`shown`?TS(this.dismissCommunityInvite,this.context?.theme.resolvedMode??`dark`):I}
          </div>
          <div class="sidebar-shell__footer">
            ${this.devGitBranch?L`<openclaw-tooltip .content=${this.devGitBranch}>
                    <div class="sidebar-footer-branch">
                      <span class="sidebar-footer-branch__icon" aria-hidden="true"
                        >${F.gitBranch}</span
                      >
                      <span class="sidebar-footer-branch__name">${this.devGitBranch}</span>
                    </div>
                  </openclaw-tooltip>`:I}
            ${Gv(this)}
          </div>
        </div>
        ${this.sidebarMenus.render()}
      </aside>
    `}},U([H()],CC.prototype,`teamOnlineExpanded`,void 0),U([H()],CC.prototype,`sidebarNarrationLines`,void 0),U([H()],CC.prototype,`sidebarTools`,void 0),U([H()],CC.prototype,`sidebarObserverDigests`,void 0),U([H()],CC.prototype,`communityInvitePresentation`,void 0),U([H()],CC.prototype,`catalogProjectGrouping`,void 0),customElements.get(`openclaw-app-sidebar`)||customElements.define(`openclaw-app-sidebar`,CC)})))()}var TC,EC;function DC(){return(DC=e((()=>{_i(),ri(),TC=class extends Qr{constructor(...e){super(...e),this.state=`loading`}render(e,t){e!==this.source&&(this.state=`loading`,this.source=e);let n=()=>{let n=e&&this.state!==`failed`?e:null;return t(n,i,{loading:!!(n&&this.state===`loading`),onLoad:r})},r=()=>{this.isConnected&&this.source===e&&this.state===`loading`&&(this.state=`ready`,this.setValue(n()))},i=()=>{this.isConnected&&this.source===e&&(this.state=`failed`,this.setValue(n()))};return n()}},EC=ti(TC)})))()}function OC(e,t,n,r={}){let i=n===`picker`?`tile`:n;return L`${EC(r.pluginIconUrl,(a,o)=>{let[s,c]=a?[``,``]:Tc(e),l=`${n===`picker`?`--channels-art-size:24px;`:``}${a?``:`--channels-art-a:${s};--channels-art-b:${c}`}`,u=n===`cover`&&r.pluginIconUrl?` channels-cover--icon`:``;return L`<span
      class=${`channels-${i}${u}${a?``:` channels-${i}--fallback`}`}
      style=${l}
      aria-hidden="true"
    >
      ${a?L`<img src=${a} alt="" loading="lazy" decoding="async" @error=${o} />`:L`<span>${tc(t)}</span>`}
    </span>`})}`}function kC(){return(kC=e((()=>{R(),Tl(),DC()})))()}function AC(e,t,n={}){let r=e.querySelector(`:scope > summary`),i=e.querySelector(`:scope > wa-popup[data-anchored-overlay]`);r&&i&&(jC(i,n.anchor??r,t,n.alignment),i.active=e.open)}function jC(e,t,n,r=`start`){e.anchor=t,e.placement=`${n}-${r}`,e.boundary=`viewport`;let i=t.closest(`.shell`);e.flipBoundary=i??[],e.shiftBoundary=i??[],e.autoSizeBoundary=i??[],e.distance=6,e.flip=!0,e.flipPadding=MC,e.shift=!0,e.shiftPadding=i&&Number.parseFloat(getComputedStyle(i).getPropertyValue(`--shell-popup-inline-gutter`))||NC,e.autoSize=`vertical`,e.autoSizePadding=MC}var MC,NC;function PC(){return(PC=e((()=>{bs(),MC=8,NC=12})))()}function FC(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();r.top<n.top?e.scrollTop-=n.top-r.top:r.bottom>n.bottom&&(e.scrollTop+=r.bottom-n.bottom)}function IC(e,t=!1){let n=t?e.scrollWidth:e.scrollHeight,r=t?e.clientWidth:e.clientHeight,i=t?e.scrollLeft:e.scrollTop,a=n>r+1;e.dataset.scrollable=String(a),e.dataset.atStart=String(!a||i<=1),e.dataset.atEnd=String(!a||i+r>=n-1)}var LC,RC;function zC(){return(zC=e((()=>{R(),_i(),ri(),LC=class extends Qr{constructor(...e){super(...e),this.horizontal=!1,this.trackScroll=!0,this.pending=!1,this.sync=()=>{let e=this.element;this.isConnected&&e?.isConnected&&IC(e,this.horizontal)},this.observer=typeof ResizeObserver>`u`?void 0:new ResizeObserver(this.sync)}render(e=!1,t=!0){return I}update(e,[t=!1,n=!0]){return this.element=e.element instanceof HTMLElement?e.element:void 0,this.horizontal=t,this.trackScroll=n,this.schedule(),I}schedule(){!this.pending&&this.isConnected&&(this.pending=!0,queueMicrotask(()=>{this.pending=!1;let e=this.element;this.isConnected&&e?.isConnected&&(this.observer?.observe(e),this.trackScroll?e.addEventListener(`scroll`,this.sync):e.removeEventListener(`scroll`,this.sync),this.sync())}))}disconnected(){this.observer?.disconnect(),this.element?.removeEventListener(`scroll`,this.sync)}reconnected(){this.schedule()}},RC=ti(LC)})))()}var BC=t({SelectPicker:()=>WC});function VC(){return UC+=1,`openclaw-picker-${UC}`}function HC(e){return L`<openclaw-select-picker
    class=${`settings-select picker-select ${e.variant===`submenu`?`picker-select--submenu`:``} ${e.sheet?`picker-select--sheet`:``} ${e.className??``}`}
    style="width:100%;min-width:min(138px,100%)"
    .params=${e}
  ></openclaw-select-picker>`}var UC,WC;function GC(){return(GC=e((()=>{bs(),R(),B(),li(),vi(),k(),O(),PC(),P(),zC(),UC=0,WC=class extends pt{constructor(...e){super(...e),this.mode=`closed`,this.query=``,this.activeValue=null,this.keyboard=!1,this.collapsedGroups=new Set,this.listboxId=VC(),this.typeahead=``,this.typeaheadAt=0,this.renderedSections=[],this.sheetScroll=null,this.hoverOpened=!1,this.syncScrollFade=()=>{let e=this.querySelector(`.picker-select__options`);e&&(e.toggleAttribute(`data-fade-start`,e.scrollTop>0),e.toggleAttribute(`data-fade-end`,e.scrollTop+e.clientHeight<e.scrollHeight-1))},this.handleOutsidePointer=e=>{e.composedPath().includes(this)||this.closeMenu()},this.handleFocusOut=e=>{(!(e.relatedTarget instanceof Node)||!this.contains(e.relatedTarget))&&this.closeMenu()},this.handleHover=e=>{if(this.params.variant!==`submenu`||this.params.sheet||e.pointerType!==`mouse`)return;clearTimeout(this.hoverTimer);let t=e.type===`pointerenter`;t!==(this.mode!==`closed`)&&(this.hoverTimer=setTimeout(()=>{t?(this.keyboard=!1,this.hoverOpened=this.openMenu(!1,!1)!==void 0):this.closeMenu(this.contains(this.ownerDocument.activeElement))},t?120:150))},this.handleTriggerClick=()=>{clearTimeout(this.hoverTimer),this.keyboard=!1,this.mode===`closed`?this.openMenu():this.hoverOpened?this.hoverOpened=!1:this.closeMenu()},this.handleKeydown=e=>{let t=e.target instanceof HTMLInputElement,n=e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey,r=this.params.variant===`submenu`,i=this.submenuSide===`right`?`ArrowRight`:`ArrowLeft`,a=i===`ArrowRight`?`ArrowLeft`:`ArrowRight`,o=[`ArrowDown`,`ArrowUp`,`Enter`,` `].includes(e.key)||r&&e.key===i;if(this.mode===`closed`&&!o&&!n||(e.key===`Enter`||e.key===` `)&&e.target instanceof Element&&e.target.matches(`.picker-select__back`)||((!t||!(n||e.key===`Backspace`||e.key===`Delete`))&&(this.keyboard=!0),e.stopPropagation(),e.isComposing||this.params.disabled))return;let s=performance.now(),c=s-this.typeaheadAt<1e3?this.typeahead:``;if(this.mode===`closed`){if(o){e.preventDefault(),this.openMenu(e.key===`ArrowUp`);return}if(e.preventDefault(),this.openMenu()===`search`){this.query=e.key,this.activeValue=null;return}}if(e.key===`Escape`&&this.query&&this.params.searchable===`always`){e.preventDefault(),this.query=``;return}if(e.key===`Tab`&&this.params.groupBy)return;if(e.key===`Escape`||e.key===`Tab`||r&&!t&&e.key===a){e.key!==`Tab`&&e.preventDefault(),this.closeMenu(!0);return}if(e.target instanceof Element&&e.target.closest(`.picker-select__group-toggle`))return;if(e.key===`Enter`||e.key===` `&&!t&&!c){e.preventDefault(),this.commit(this.activeValue);return}if(t&&e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let l=this.rows().filter(e=>!e.disabled),u=l.findIndex(e=>e.value===this.activeValue);e.key===`ArrowDown`||e.key===`ArrowUp`?(e.preventDefault(),u+=e.key===`ArrowDown`?1:-1,u<0&&(u=l.length-1),u>=l.length&&(u=0)):!t&&(e.key===`Home`||e.key===`End`)?(e.preventDefault(),u=e.key===`Home`?0:l.length-1):!t&&(n||e.key===`Backspace`)&&(e.preventDefault(),this.typeahead=e.key===`Backspace`?c.slice(0,-1):c+e.key.toLocaleLowerCase(),this.typeaheadAt=s,u=l.findIndex(e=>e.label.toLocaleLowerCase().startsWith(this.typeahead)));let d=l[u];d&&(this.activeValue=d.value)}}options(){let{value:e,options:t}=this.params;return e===null||e===``||t.some(t=>t.value===e)?t:[...t,{value:e,label:e}]}sections(){let e=this.query.trim().toLocaleLowerCase().split(/\s+/u),t={options:[],expanded:!0},n=new Map;for(let r of this.options()){let i=this.params.groupBy?.(r),a=[r.label,r.value,r.description,i?.label].join(` `).toLocaleLowerCase();if(!e.every(e=>a.includes(e)))continue;if(!i){t.options.push(r);continue}let o=n.get(i.id);o||(o={group:i,options:[],expanded:!!this.query.trim()||!this.collapsedGroups.has(i.id)},n.set(i.id,o)),o.options.push(r)}return[t,...n.values()]}rows(e=this.sections()){return e.flatMap(e=>e.expanded?e.options:[])}get trigger(){return this.querySelector(`.picker-select__trigger`)}closeMenu(e=!1){clearTimeout(this.hoverTimer),this.sheetScroll&&=(this.sheetScroll.root.scrollTop=this.sheetScroll.top,null),this.hoverOpened=!1,this.mode=`closed`,this.query=``,this.collapsedGroups=new Set,this.activeValue=null,this.typeahead=``,this.ownerDocument.removeEventListener(`pointerdown`,this.handleOutsidePointer,!0),this.querySelectorAll(`[data-picker-focus]`).forEach(e=>{e.tabIndex=-1}),e&&this.trigger?.focus()}openMenu(e=!1,t=!0){if(this.params.disabled||this.mode!==`closed`)return;let{searchable:n}=this.params;this.mode=n===`always`||n&&(this.params.groupBy||this.options().length>8)?`search`:`compact`;let r=this.rows().filter(e=>!e.disabled);return this.activeValue=r.find(e=>e.value===this.params.value)?.value??(e?r.at(-1):r[0])?.value??null,this.ownerDocument.addEventListener(`pointerdown`,this.handleOutsidePointer,!0),this.params.onOpen?.(),this.updateComplete.then(()=>{if(this.mode===`closed`)return;let e=this.querySelector(`.picker-select__menu`)?.offsetParent;this.params.sheet&&e&&(this.sheetScroll={root:e,top:e.scrollTop},e.scrollTop=0);let n=this.params.sheet&&!this.keyboard?`.picker-select__back`:`[data-picker-focus]`;t&&this.querySelector(n)?.focus({preventScroll:!0}),requestAnimationFrame(this.syncScrollFade)}),this.mode}disconnectedCallback(){this.closeMenu(),super.disconnectedCallback()}willUpdate(){if(this.params.disabled&&this.mode!==`closed`&&this.closeMenu(),this.renderedSections=this.sections(),this.mode!==`closed`){let e=this.rows(this.renderedSections).filter(e=>!e.disabled);e.some(e=>e.value===this.activeValue)||(this.activeValue=e[0]?.value??null)}}updated(e){if(this.configurePopup(),this.syncScrollFade(),this.mode===`closed`||!e.has(`activeValue`)&&!e.has(`query`))return;let t=this.querySelector(`.picker-select__options`),n=t?.querySelector(`[data-active]`);t&&n&&FC(t,n)}commit(e){let t=this.rows().find(t=>t.value===e);this.mode===`closed`||this.params.disabled||!t||t.disabled||(this.closeMenu(!0),this.params.onChangeTarget?this.params.onChangeTarget(t.value,this):this.params.onChange(t.value))}get submenuSide(){return getComputedStyle(this).direction===`rtl`?`left`:`right`}configurePopup(){let e=this.querySelector(`wa-popup`);e instanceof Ps&&this.trigger&&(this.params.variant===`submenu`&&e.setAttribute(`flip-fallback-placements`,`${this.submenuSide===`right`?`left`:`right`}-start bottom-start top-start`),jC(e,this.trigger,this.params.variant===`submenu`?this.submenuSide:this.params.placement??`bottom`))}leading(e){let t=e&&this.params.renderLeading?.(e);return t==null||t===I?I:L`<span class="picker-select__leading">${t}</span>`}optionId(e){return`${this.listboxId}-option-${encodeURIComponent(JSON.stringify(e))}`}renderOption(e,t,n=!1){return L`
      <div
        class="picker-select__option"
        role="option"
        id=${this.optionId(e.value)}
        data-value=${e.value}
        ?hidden=${n}
        title=${this.params.showOptionTooltips===!1?I:e.value}
        aria-selected=${String(e.value===this.params.value)}
        aria-disabled=${String(!!e.disabled)}
        ?data-active=${e.value===this.activeValue}
        @mousedown=${e=>e.preventDefault()}
        @mousemove=${()=>{this.keyboard=!1,e.disabled||(this.activeValue=e.value)}}
        @click=${()=>this.commit(e.value)}
      >
        ${t?I:this.leading(e)}
        <span class="picker-select__copy">
          <span class="picker-select__label" style=${e.labelStyle??I}
            >${e.label}</span
          >
          ${e.description?L`<span class="picker-select__description">${e.description}</span>`:I}
        </span>
        <span class="picker-select__check" aria-hidden="true"
          >${e.value===this.params.value?F.check:I}</span
        >
      </div>
    `}render(){let e=this.renderedSections,t=this.rows(e),n=e.map((e,t)=>`${this.listboxId}-group-${t}`),r=this.params.groupBy?n.join(` `):this.listboxId,i=this.options(),a=new Set(t.map(e=>e.value)),o=i.find(e=>e.value===this.params.value),s=t.find(e=>e.value===this.activeValue),c=this.mode!==`closed`,l=L`<div
      class=${`picker-select__menu ${this.params.groupBy?`picker-select__menu--grouped`:``}`}
    >
      ${this.params.sheet?L`<div class="picker-select__page-header">
              <button
                type="button"
                class="picker-select__back"
                aria-label=${N(`common.back`)}
                @click=${()=>this.closeMenu(!0)}
              >
                ${F.chevronLeft}
              </button>
              <span>${this.params.label}</span>
            </div>`:I}
      ${this.mode===`search`?L` <input
              class="picker-select__search settings-input"
              type="search"
              role="combobox"
              data-picker-focus
              tabindex="0"
              autocomplete="off"
              spellcheck="false"
              aria-label=${N(`common.search`)}
              placeholder=${this.params.searchPlaceholder??N(`common.search`)}
              aria-autocomplete="list"
              aria-expanded="true"
              aria-controls=${r}
              aria-invalid=${this.params.invalid?`true`:I}
              aria-describedby=${this.params.describedBy??I}
              aria-activedescendant=${s?this.optionId(s.value):I}
              .value=${mi(this.query)}
              @input=${e=>{this.query=e.currentTarget.value,this.activeValue=null}}
            />`:I}
      <div
        class="picker-select__options"
        role=${this.params.groupBy?I:`listbox`}
        @scroll=${this.syncScrollFade}
        id=${this.params.groupBy?I:this.listboxId}
        aria-label=${this.params.groupBy?I:this.params.label}
        ?data-picker-focus=${this.mode===`compact`}
        tabindex=${this.mode===`compact`?0:-1}
        aria-activedescendant=${this.mode===`compact`&&s?this.optionId(s.value):I}
      >
        ${e.map((e,t)=>{let r=e.expanded?pi(this.params.groupBy?e.options:i,e=>e.value,t=>this.renderOption(t,!!e.group,!a.has(t.value))):I,o=e.group,s=n[t];return o?L`<div class="picker-select__group" role="group" aria-label=${o.label}>
            <button
              class="picker-select__group-toggle"
              type="button"
              tabindex=${c?0:-1}
              aria-expanded=${String(e.expanded)}
              aria-controls=${s}
              ?disabled=${!!this.query.trim()}
              @click=${()=>{let e=new Set(this.collapsedGroups);e.has(o.id)?e.delete(o.id):e.add(o.id),this.collapsedGroups=e}}
            >
              ${o.leading??I}<span class="picker-select__group-label"
                >${o.label}</span
              >
              <span>${e.options.length}</span
              ><span class="picker-select__chevron" aria-hidden="true">${F.chevronDown}</span>
            </button>
            <div
              id=${s}
              class="picker-select__group-options"
              role="listbox"
              aria-label=${o.label}
            >
              ${r}
            </div>
          </div>`:this.params.groupBy?L`<div id=${s} role="listbox" aria-label=${this.params.label}>
                  ${r}
                </div>`:r})}
      </div>
      <div
        class="picker-select__empty"
        role="status"
        ?hidden=${e.some(e=>e.options.length>0)}
      >
        ${N(`common.pickerNoMatches`)}
      </div>
    </div>`;return L`
      <div
        @focusout=${this.handleFocusOut}
        @keydown=${this.handleKeydown}
        @pointerenter=${this.handleHover}
        @pointerleave=${this.handleHover}
        ?data-keyboard=${this.keyboard}
      >
        <button
          id=${this.params.id??I}
          class="picker-select__trigger"
          type="button"
          aria-label=${o?`${this.params.label}: ${[o.label,this.params.showSelectedDescription&&o.description].filter(Boolean).join(` · `)}`:this.params.label}
          aria-haspopup="listbox"
          aria-expanded=${String(c)}
          aria-controls=${r}
          aria-invalid=${this.params.invalid?`true`:I}
          aria-describedby=${this.params.describedBy??I}
          title=${this.params.title??I}
          ?disabled=${this.params.disabled}
          @click=${this.handleTriggerClick}
        >
          ${this.params.variant===`submenu`?L`<span class="picker-select__name">${this.params.label}</span>`:I}
          ${this.leading(o)}
          <span class="picker-select__copy">
            <span class="picker-select__label">${o?.label??this.params.label}</span>
            ${this.params.showSelectedDescription&&o?.description?L`<span class="picker-select__description">${o.description}</span>`:I}
          </span>
          <span class="picker-select__chevron" aria-hidden="true"
            >${this.params.variant===`submenu`||this.params.sheet?F.chevronRight:F.chevronDown}</span
          >
        </button>
        ${this.params.sheet?c?l:I:L`<wa-popup
                ?active=${c}
                sync=${this.params.variant===`submenu`?I:`width`}
                >${l}</wa-popup
              >`}
      </div>
    `}},U([V({attribute:!1})],WC.prototype,`params`,void 0),U([H()],WC.prototype,`mode`,void 0),U([H()],WC.prototype,`query`,void 0),U([H()],WC.prototype,`activeValue`,void 0),U([H()],WC.prototype,`keyboard`,void 0),U([H()],WC.prototype,`collapsedGroups`,void 0),customElements.get(`openclaw-select-picker`)||customElements.define(`openclaw-select-picker`,WC)})))()}function KC(e){return HC({...e,className:`channel-picker`,renderLeading:e=>e.kind===`neutral`?I:OC(e.value,e.label,`picker`)})}function qC(){return(qC=e((()=>{R(),kC(),GC()})))()}function JC(){return N(`chat.actions.copyAsMarkdown`)}function YC(e){return e.querySelector(`[data-copy-label]`)?.textContent??e.getAttribute(`aria-label`)}function XC(e,t,n=!1){let r=e.parentElement?.querySelector(`[data-copy-feedback]`);r&&(r.hidden=!n,r.textContent=t);let i=e.querySelector(`[data-copy-label]`)?.lastChild;i?.nodeType===Node.TEXT_NODE?i.nodeValue=t:e.setAttribute(`aria-label`,t)}async function ZC(e,t,n){let r=e.currentTarget;if(!r||r.dataset.copyState===`copying`)return!1;let i=String(Number(r.dataset.copyAttempt??`0`)+1);r.dataset.copyAttempt=i,r.dataset.copyState=`copying`,r.setAttribute(`aria-busy`,`true`),r.disabled=!0,XC(r,n);let a=()=>r.isConnected&&r.dataset.copyAttempt===i,o=await ee(t,a);if(delete r.dataset.copyState,r.removeAttribute(`aria-busy`),r.disabled=!1,!a())return!1;r.dataset.copyState=o?`copied`:`error`;let s=YC(r)??n,c=N(o?`common.copied`:`common.copyFailed`);XC(r,c,!0);let l=o?ew:tw;return window.setTimeout(()=>{if(!a())return;delete r.dataset.copyState;let e=YC(r);XC(r,e&&e!==c?e:s)},l),o}function QC(e,t=JC(),n=!1){return L`${di(e,L`
      <openclaw-tooltip .content=${t}>
        <button
          class=${n?`chat-copy-btn`:`btn btn--xs chat-copy-btn`}
          type="button"
          aria-label=${t}
          @click=${n=>void ZC(n,e,t)}
        >
          <span class="chat-copy-btn__icon" aria-hidden="true">
            <span class="chat-copy-btn__icon-copy">${F.copy}</span>
            <span class="chat-copy-btn__icon-check">${F.check}</span>
          </span>
        </button>
        <span data-copy-feedback role="status" hidden></span>
      </openclaw-tooltip>
    `)}`}function $C(e){return QC(e,JC(),!0)}var ew,tw;function nw(){return(nw=e((()=>{R(),ai(),k(),Be(),P(),an(),ew=1500,tw=2e3})))()}function rw(e){return`<code class="assistant-transcript-role">${K(e)}</code>`}function iw(e){let t=lw.get(e);if(t)return t;let n=new Set,r=0;for(let t=0;t<e.length;t+=1){let i=e[t]?.type;i===`link_open`?r+=1:i===`link_close`?r=Math.max(0,r-1):i===`image`&&r>0&&n.add(t)}return lw.set(e,n),n}function aw(e,t){let n=``,r=0;for(let i of t){let t=Math.max(r,Math.min(i.start,e.length)),a=Math.max(t,Math.min(i.end,e.length));n+=K(e.slice(r,t)),a>t&&(n+=rw(e.slice(t,a))),r=a}return n+K(e.slice(r))}function ow(e){e.use(zi,{isStructuralHtmlInline:e=>e.meta?.taskListPlugin===!0}),e.renderer.rules[Wi]=(e,t)=>{let n=e[t];return n?rw(n.content):``},e.renderer.rules.image=(e,t,n,r)=>{let i=e[t];if(!i)return``;let a=String(i.attrGet(`src`)??``).trim(),o=i.content.trim()||`image`,s=i.meta?.assistantTranscriptRoleImage,c=iw(e).has(t);if(!/^data:image\/[a-z0-9.+-]+;base64,/i.test(a)&&r?.remoteImages!==!0){let e=s?aw(s.text,s.spans):K(o),t=URL.parse(a);return!t||t.protocol!==`https:`&&t.protocol!==`http:`?e:`<span class="markdown-external-image">${`<span>${K(N(`chat.externalImage.notLoaded`))}: ${e}</span>`}${c?``:` <a href="${K(a)}">${K(N(`chat.externalImage.open`))}</a>`}</span>`}let l=`<img class="markdown-inline-image" src="${K(a)}" alt="${K(o)}">`,u=c||r?.interactiveImages!==!0?l:`<button class="markdown-inline-image-button" type="button" aria-label="${K(N(`chat.imageLightbox.open`,{title:i.content.trim()?o:N(`chat.imageLightbox.untitled`)}))}">${l}</button>`;return s?`${rw(`${N(`sessionsView.assistant`)}:`)} ${u}`:u}}function sw(e){return e.replace(/\r\n?/g,`
`).replace(/\0/g,``)}function cw(e,t){let n=document.createElement(`div`);if(n.className=`markdown-plain-text-fallback`,!t)return n.textContent=sw(e),n;let r=document.createElement(`code`);r.className=`assistant-transcript-role`,r.textContent=sw(`${N(`sessionsView.assistant`)}:`);let i=document.createElement(`span`);return i.className=`markdown-plain-text-source`,i.textContent=sw(e),n.append(r,`
`,i),n}var lw;function uw(){return(uw=e((()=>{Ui(),k(),lw=new WeakMap})))()}function dw(e,t,n,r,i=()=>!0){let a=(fw.get(e)??0)+1;fw.set(e,a);let o=()=>e.isConnected&&fw.get(e)===a&&n();ee(t,()=>o()&&i()).then(t=>{o()&&(r(t),clearTimeout(pw.get(e)),pw.set(e,setTimeout(()=>{r(void 0),pw.delete(e)},t?1500:2e3)))})}var fw,pw;function mw(){return(mw=e((()=>{Be(),fw=new WeakMap,pw=new WeakMap})))()}function hw(e={}){return{assistantTranscriptRoleHeaders:e.assistantTranscriptRoleHeaders??!1,codeBlockChrome:e.codeBlockChrome??`copy`,codeBlockInteraction:e.codeBlockInteraction??`static`,fileLinks:e.fileLinks??!1,githubRepo:e.githubRepo??null,humanMentions:e.humanMentions??[],githubRepositories:e.githubRepositories??[],interactiveImages:e.interactiveImages??!1,linkFavicons:e.linkFavicons??!1,progressBars:e.progressBars??!1,mode:e.mode??`message`,remoteImages:e.remoteImages??e.mode===`document`,sessionLinks:e.sessionLinks??!1,tableInteractions:e.tableInteractions??`none`}}function gw(){return(gw=e((()=>{})))()}function _w(e){if(e.length>4e4)return null;let t=e.trim();if(!/^(?:\{[\s\S]*\}|\[[\s\S]*\])$/.test(t))return null;if(e.length>bw)return{text:e};let n=Rs(e,!0),r=0,i=0;for(n.scan();n.getTokenLength()>0;n.scan()){let t=e[n.getTokenOffset()];if((t===`{`||t===`[`)&&(r+=1),(t===`}`||t===`]`)&&--r,r>xw||++i>Sw)try{return JSON.parse(e),{text:e}}catch{return null}}let a=[],o=Ls(e,a,{disallowComments:!0,allowTrailingComma:!1});return o&&a.length===0?{text:e,root:o}:null}function vw({text:e,root:t}){if(!t)return``;let n=t=>K(e.slice(t.offset,t.offset+t.length)),r=(e,t,i=``,a=``)=>{let o=e.children??[],s=e.type,c=s===`array`;if(s!==`object`&&!c||o.length===0)return`${i}<span class="code-block-json-value--${s===`string`||s===`null`?s:`literal`}">${n(e)}</span>${a}`;let l=c?`[`:`{`,u=c?`]`:`}`,d=N(c?o.length===1?`chat.codeBlock.jsonArrayItem`:`chat.codeBlock.jsonArrayItems`:`chat.codeBlock.jsonObjectKeys`,{count:String(o.length)}),f=o.map((e,i)=>{let a=e.type===`property`,s=a?e.children?.[0]:void 0,c=a?e.children?.[1]:e;if(!c)return``;let l=s?`<span class="code-block-json-key">${n(s)}</span>: `:``;return`<div class="code-block-json-row">${r(c,t+1,l,i+1<o.length?`,`:``)}</div>`}).join(``);return`<details class="code-block-json-node"${t<2?` open`:``}><summary>${i}<span class="code-block-json-node-opening">${l}</span><span class="code-block-json-node-summary">${K(d)}${a}</span></summary><div class="code-block-json-children">${f}</div><span class="code-block-json-bracket">${u}${a}</span></details>`};return`<div class="code-block-json-tree" data-markdown-key="json-tree">${r(t,0)}</div>`}function yw(){return`<div class="code-block-json-modes" data-markdown-key="json-modes" role="group" aria-label="${K(N(`chat.codeBlock.jsonView`))}">${[`tree`,`raw`].map(e=>`<button type="button" class="code-block-json-mode" data-json-mode="${e}" aria-pressed="${e===`tree`}">${K(N(e===`tree`?`chat.codeBlock.jsonTree`:`chat.codeBlock.jsonRaw`))}</button>`).join(``)}</div>`}var bw,xw,Sw;function Cw(){return(Cw=e((()=>{ms(),k(),Ya(),gw(),Qa(),bw=2e4,xw=64,Sw=4e3})))()}function ww(e){return!e.includes(`\r`)&&!e.includes(`\u2028`)&&!e.includes(`\u2029`)?e:e.replace(/\r\n?|[\u2028\u2029]/g,`
`)}function Tw(e){if(!Dw.test(e))return!1;let t=ww(e).split(`
`).filter(e=>e.trim().length>0);if(t.length<2)return!1;let n=0;for(let e of t){if(!Ew.test(e)||!Dw.test(e))return!1;n+=Array.from(e).filter(e=>Dw.test(e)).length}return n>=8}var Ew,Dw;function Ow(){return(Ow=e((()=>{Ew=/^[\t \u00a0▀▄█]+$/u,Dw=/[▀▄█]/u})))()}function kw(e){let t=JSON.stringify(e).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`);return`${Uw}${t}`}function Aw(e,t){if(t!==Ww||!e.startsWith(Uw))return e;try{let t=JSON.parse(e.slice(24));return typeof t==`string`?t:e}catch{return e}}function jw(e){return Aw(e.dataset.code??``,e.dataset.codeEncoding)}function Mw(e){let t=e.target;if(!(t instanceof Element))return;Nw(t);let n=t.closest(`.code-block-copy`);if(!n)return;let r=jw(n);dw(n,r,()=>jw(n)===r,e=>{e===void 0?(n.classList.remove(`copied`,`copy-failed`),n.setAttribute(`aria-label`,N(`common.copyCode`))):(n.classList.toggle(`copied`,e),n.classList.toggle(`copy-failed`,!e),n.setAttribute(`aria-label`,N(e?`common.copied`:`common.copyFailed`)))})}function Nw(e){let t=e.closest(`.code-block-wrapper`);if(!t)return;let n=e.closest(`.code-block-expand`);n&&(t.classList.add(`is-expanded`),n.setAttribute(`aria-expanded`,`true`));let r=e.closest(`.code-block-json-mode`);if(r){t.classList.toggle(`is-json-raw`,r.dataset.jsonMode===`raw`);for(let e of t.querySelectorAll(`.code-block-json-mode`))e.setAttribute(`aria-pressed`,String(e===r));Pw(t)}let i=e.closest(`.code-block-wrap`);if(!i)return;let a=t.classList.toggle(`is-wrapped`),o=N(a?`chat.codeBlock.disableWrap`:`chat.codeBlock.enableWrap`);i.setAttribute(`aria-pressed`,String(a)),i.setAttribute(`aria-label`,o),i.title=o,Pw(t)}function Pw(e){let t=e.querySelector(`.code-block-viewport`),n=t?.querySelector(`code`);if(!t||!n)return;let r=!e.classList.contains(`is-wrapped`)&&n.scrollWidth>t.clientWidth+1;e.classList.toggle(`has-horizontal-overflow`,r)}function Fw(e,t){let n=t.trim().toLowerCase();try{if(n&&ou.getLanguage(n))return ou.highlight(e,{language:n,ignoreIllegals:!0}).value;if(!n&&e.trim()){let t=ou.highlightAuto(e);if(t.relevance>=2)return t.value}}catch{}return K(e)}function Iw(e){return Fw(e,`json`)}function Lw(e,t){let n=[t.includes(`hljs-`)?`hljs`:``,e?`language-${e}`:``].filter(Boolean);return n.length>0?` class="${K(n.join(` `))}"`:``}function Rw(e,t){return`<div class="code-block-header" data-markdown-key="header"><span class="code-block-lang">${K(e||N(`chat.codeBlock.languageFallback`))}</span><div class="code-block-actions">${t}</div></div>`}function zw(e){return`<button type="button" class="code-block-copy" data-markdown-key="copy" data-code="${K(kw(e))}" data-code-encoding="${Ww}" aria-label="${K(N(`common.copyCode`))}"><span class="code-block-copy__idle" aria-hidden="true"></span><span class="code-block-copy__done" aria-hidden="true"></span><span class="code-block-copy__failed" aria-hidden="true">!</span></button>`}function Bw(e,t,n,r={}){let i=r.blockArt||Tw(e),a=r.highlight,o=i||a===!1?K(e):Fw(e,t),s=`<pre><code${i?` class="markdown-block-art"`:Lw(t,o)}>${o}</code></pre>`,c=n,l=c?.codeBlockChrome!==`none`,u=c?.codeBlockInteraction===`interactive`;if(!l&&!u)return s;let d=l?zw(r.copyText??e):``;if(!u)return`<div class="code-block-wrapper">${Rw(t,d)}${s}</div>`;let f=!i&&a!==!1&&(!t||t.toLowerCase()===`json`)?r.json??_w(e):null,p=f?vw(f):``,m=[`text`,`md`,`markdown`].includes(t.trim().toLowerCase())?0:Math.max(0,Vw(e)-Gw),h={count:String(m)},g=N(m===1?`chat.codeBlock.showHiddenLine`:`chat.codeBlock.showHiddenLines`,h),_=N(m===1?`chat.codeBlock.hiddenLine`:`chat.codeBlock.hiddenLines`,h),v=m?`<button type="button" class="code-block-expand" data-markdown-key="expand" aria-label="${K(g)}" aria-expanded="false"><span class="code-block-chevron" aria-hidden="true"></span><span>${K(_)}</span></button>`:``,y=K(N(`chat.codeBlock.enableWrap`)),b=`<button type="button" class="code-block-wrap" data-markdown-key="wrap" aria-label="${y}" title="${y}" aria-pressed="false"><span class="code-block-wrap__enable" aria-hidden="true"></span><span class="code-block-wrap__disable" aria-hidden="true"></span></button>`,x=Rw(t,`${p?yw():``}${b}${d}`);return`<div class="code-block-wrapper${p?` code-block-wrapper--json`:``}${m?` is-collapsible`:``}">${x}${p}<div class="code-block-viewport" data-markdown-key="viewport">${s}</div>${v}</div>`}function Vw(e){let t=1,n=-1;for(;(n=e.indexOf(`
`,n+1))>=0&&n<e.length-1;)t+=1;return t}function Hw(e){return e.endsWith(`
`)?e.slice(0,-1):e}var Uw,Ww,Gw;function Kw(){return(Kw=e((()=>{Gl(),pu(),Ql(),ru(),uu(),$l(),k(),Ya(),mw(),Cw(),Ow(),Qa(),Uw=`openclaw:block-art-code:`,Ww=`block-art-json`,Gw=7;for(let[e,t]of Object.entries({bash:ql,cpp:Zl,css:Kl,diff:mu,go:hu,java:fu,javascript:nu,json:su,markdown:tu,python:du,rust:eu,typescript:lu,xml:iu,yaml:cu}))ou.registerLanguage(e,t);ou.registerAliases(`shell`,{languageName:`bash`})})))()}function qw(e,t=tT){let n=`${t}\\.${e}`,r=`(?:~\\/|\\.\\.\\/|\\.\\/|\\/)(?:${t}\\/)*${n}`,i=`(?![\\p{L}\\p{M}\\p{N}-]+(?:\\.[\\p{L}\\p{M}\\p{N}-]+)*\\.(?:[\\p{L}\\p{M}]{2,}|[xX][nN]--[A-Za-z0-9-]+)\\/)${t}(?:\\/${t})*\\/${n}`,a=`[A-Za-z]:[\\\\/](?:${t}[\\\\/])*${n}`,o=`(?!\\.?[\\p{L}\\p{M}\\p{N}_])`,s=`(?:${r}|${a}|${i})(?:${aT})?${o}`,c=`${n}${aT}${o}`;return{scan:RegExp(`${s}|${c}`,`gu`),exact:RegExp(`^(?:${s}|${c})$`,`u`),bare:RegExp(`^${t}\\.(${rT})$`,`u`)}}function Jw(e){let t=e.target;if(!(t instanceof Element))return null;let n=t.closest(`a[data-file-path]`),r=n?.dataset.filePath;if(!r)return null;let i=n.dataset.fileLine,a=n.closest(`[data-file-session-key]`)?.dataset.fileSessionKey;return{path:r,line:i?Number.parseInt(i,10):null,...a?{sessionKey:a}:{}}}function Yw(e){if(e.key!==`Enter`&&e.key!==` `)return null;let t=Jw(e);return t&&e.preventDefault(),t}function Xw(e){let t=lT.exec(e),n=t?.[1];return t&&n?{path:e.slice(0,t.index),line:Number.parseInt(n,10)}:{path:e,line:null}}function Zw(e,t){if(e.includes(`/`)||e.includes(`\\`))return!1;let n=t.exec(e);return!!(n?.[1]&&uT.has(n[1].toLowerCase()))}function Qw(e,t){let n=e.trim(),r=t?.authored?sT:oT;return!r.exact.test(n)&&!Zw(n,r.bare)?null:Xw(n)}function $w(e){return eT.test(e.trim())}var eT,tT,nT,rT,iT,aT,oT,sT,cT,lT,uT;function dT(){return(dT=e((()=>{eT=/^(?:~\/|\/(?:Users|home|tmp|private\/tmp|var\/folders|private\/var\/folders)\/|\/[A-Za-z]:\/|[A-Za-z]:[\\/])/,tT=`[\\p{L}\\p{M}\\p{N}_.@#+-]+`,nT=`[^/\\\\:?\\p{Cc}]+`,rT=`[A-Za-z][A-Za-z0-9]{0,7}`,iT=`[A-Za-z0-9]{1,8}`,aT=`:\\d{1,6}(?:[-:]\\d{1,6})?`,oT=qw(rT),sT=qw(iT,nT),cT=oT.scan,lT=/:(\d{1,6})(?:[-:]\d{1,6})?$/,uT=new Set(`astro.bash.c.cc.cfg.cjs.conf.cpp.cs.css.csv.diff.fish.go.h.hpp.htm.html.ini.java.js.json.jsonc.jsx.kt.kts.less.lock.log.markdown.md.mdx.mjs.patch.plist.proto.py.rb.rs.scss.sh.sql.svelte.svg.swift.toml.ts.tsx.txt.vue.xml.yaml.yml.zsh`.split(`.`))})))()}function fT(e=[],t){let n=new Map;for(let r of[...e,...t?[{...t,aliases:[]}]:[]]){let e=r.owner&&r.repo?{owner:r.owner.toLowerCase(),repo:r.repo.toLowerCase()}:null;for(let t of[...r.aliases,...e?[e.repo]:[]]){let r=t.trim().toLowerCase();if(!r)continue;let i=n.get(r);n.set(r,i===void 0||i?.owner===e?.owner&&i?.repo===e?.repo?e:null)}}return[...n].toSorted(([e],[t])=>e<t?-1:+(e>t))}function pT(e,t){return JSON.stringify(fT(e,t))}function mT(){return(mT=e((()=>{})))()}function hT(e,t,n){let r=Ia(e,t),i=[];if(!r)return{source:e,tokens:i};let a=Li(e),o=n(e),s=0,c;do c=`openclawhumanmention`+s+++`x`;while(o.includes(n(c)));let l=0,u=``;for(let t of r){if(a.some(([e,n])=>t.start<n&&t.end>e&&(e<t.start||n>t.end)))continue;let n=c+i.length+`end`;i.push({marker:n,profileId:t.profileId,label:e.slice(t.start,t.end)}),u+=e.slice(l,t.start)+n,l=t.end}return{source:u+e.slice(l),tokens:i}}function gT(e,t=[]){let n=e;for(let e of t)n=n.replaceAll(e.marker,()=>e.label);return n}function _T(e){e.core.ruler.before(`inline`,`human-mention-references`,t=>{let n=t.env.humanMentionTokens,r=t.env.references;if(!n?.length||!r)return;let i=e.utils.normalizeReference,a=n.map(({marker:e,label:t})=>({marker:i(e),label:t})),o=e=>{let t=e;for(let{marker:e,label:n}of a)t=t.replaceAll(e,()=>n);return i(t)},s=new Map;for(let[e,t]of Object.entries(r)){let n=o(e);s.has(n)||s.set(n,t)}t.env.references=new Proxy(r,{get(e,t){return typeof t==`string`?s.get(o(t)):Reflect.get(e,t)}})}),e.core.ruler.after(`file-links`,`human-mentions`,e=>{let t=e.env?.humanMentionTokens;if(!t?.length)return;let n=e=>gT(e,t),r=e=>{e.content=n(e.content),e.attrs=e.attrs?.map(([e,t])=>[e,typeof t==`string`?n(t):t])??null,e.children?.forEach(r)};for(let i of e.tokens){if(i.type!==`inline`||!i.children){r(i);continue}let a=0;i.children=i.children.flatMap(n=>{if(n.type===`link_open`?a+=1:n.type===`link_close`&&(a=Math.max(0,a-1)),n.type!==`text`||a>0)return r(n),[n];let i=t.flatMap(e=>{let t=n.content.indexOf(e.marker);return t<0?[]:[{...e,index:t}]}).toSorted((e,t)=>e.index-t.index);if(!i.length)return[n];let o=[],s=0;for(let t of i){let r=new e.Token(`text`,``,0);r.content=n.content.slice(s,t.index);let i=new e.Token(`human_mention`,``,0);i.content=t.label,i.attrSet(`profile-id`,t.profileId),o.push(r,i),s=t.index+t.marker.length}let c=new e.Token(`text`,``,0);return c.content=n.content.slice(s),[...o,c]}),i.content=n(i.content)}}),e.renderer.rules.human_mention=(e,t)=>{let n=e[t],r=n?.attrGet(`profile-id`);return n&&typeof r==`string`&&r?`<openclaw-person-reference profile-id="${K(r)}" label="${K(n.content)}">${K(n.content)}</openclaw-person-reference>`:``}}function vT(){return(vT=e((()=>{Hi(),Fa()})))()}function yT(e){let t=(e.split(TT).at(-1)??e).toLowerCase();if(Object.hasOwn(CT,t))return CT[t];let n=t.lastIndexOf(`.`),r=n>0?t.slice(n+1):``;return Object.hasOwn(wT,r)?wT[r]:`file`}function bT(e,t){let n=e;for(let e=t.length-1;e>=0;e--){let r=t[e],i=n.children.get(r);i||(i={pathCount:0,children:new Map},n.children.set(r,i)),n=i,n.pathCount+=1}}function xT(e,t){let n=e;for(let e=1;e<=t.length;e++)if(n=n.children.get(t[t.length-e])??n,n.pathCount===1||e===t.length)return e;return t.length}function ST(e){let t=[...new Set(e)],n=new Map(t.map(e=>[e,e.split(TT)])),r={pathCount:0,children:new Map};for(let e of n.values())bT(r,e);let i=new Map;for(let[e,t]of n){let n=xT(r,t);i.set(e,t.slice(-n).join(e.includes(`\\`)?`\\`:`/`))}return i}var CT,wT,TT;function ET(){return(ET=e((()=>{CT={"bun.lock":`package`,"package-lock.json":`package`,"package.json":`package`,"pnpm-lock.yaml":`package`,"skill.md":`skill`,"yarn.lock":`package`},wT={astro:`component`,avif:`image`,bash:`shell`,c:`code`,cc:`code`,cfg:`data`,cjs:`code`,conf:`data`,cpp:`code`,cs:`code`,css:`code`,cts:`code`,fish:`shell`,gif:`image`,go:`code`,h:`code`,hpp:`code`,htm:`code`,html:`code`,ico:`image`,ini:`data`,java:`code`,jpeg:`image`,jpg:`image`,js:`code`,json:`data`,jsonc:`data`,jsx:`component`,kt:`code`,kts:`code`,less:`code`,lock:`data`,markdown:`markdown`,md:`markdown`,mdx:`markdown`,mjs:`code`,mts:`code`,php:`code`,plist:`data`,png:`image`,proto:`data`,py:`code`,rb:`code`,rs:`code`,scss:`code`,sh:`shell`,sql:`code`,svelte:`component`,svg:`image`,swift:`code`,toml:`data`,ts:`code`,tsx:`component`,vue:`component`,webp:`image`,xml:`data`,yaml:`data`,yml:`data`,zsh:`shell`},TT=/[\\/]/})))()}function DT(e,t){let n=0;for(let r=t-1;r>=0&&e.charAt(r)===`\\`;--r)n+=1;return n%2==1}function OT(e,t){return t.some(([t,n])=>e>=t&&e<n)}function kT(e){let t=VT.exec(e);return t?t[1]?`details_open_expanded`:`details_open`:HT.test(e)?`details_close`:UT.test(e)?`summary_open`:WT.test(e)?`summary_close`:null}function AT(e,t,n=0){if(!/^[ \t]*<\/?(?:details|summary)(?=[\s>])/i.exec(e))return null;let r=t??Li(e),i=[];for(let t of e.matchAll(BT)){let a=t.index??0;DT(e,a)||OT(n+a,r)||i.push({end:a+t[0].length,raw:t[0],start:a})}return i.length>0?i:null}function jT(e,t,n,r=`paragraph`){if(r===`paragraph`&&!t.trim())return;let i=r===`paragraph`?`p`:`summary`,a=e.push(`${r}_open`,i,1);a.map=[n,n+1];let o=e.push(`inline`,``,0);o.content=t,o.map=[n,n+1],o.children=[],e.push(`${r}_close`,i,-1)}function MT(e,t,n={}){let r=e.map(e=>kT(e.raw)),i=Array.from({length:e.length},()=>-1),a=-1;for(let t=e.length-1;t>=0;--t)i[t]=a,r[t]===`summary_close`&&(a=t);for(let a=0;a<e.length;a+=1){let o=e[a];if(!o)continue;let s=r[a];if((s===`details_open`||s===`details_open_expanded`)&&t.length<zT)n.onOpen?.(o,s===`details_open_expanded`),t.push({hasSummary:!1});else if(s===`details_close`&&t.length>0)n.onClose?.(o),t.pop();else if(s===`summary_open`){let r=t.at(-1);if(!r||r.hasSummary)continue;let s=i[a]??-1,c=s>=0?e[s]:void 0;if(c)n.onSummary?.(o,c),r.hasSummary=!0,a=s;else if(n.allowPendingSummary)return!0}}return!1}function NT(e,t,n,r,i){let a=0,o=(r,i=r.end)=>{jT(e,t.slice(a,r.start),n),a=i};MT(i,r,{onOpen(t,n){o(t);let r=e.push(`details_open`,`details`,1);n&&r.attrSet(`open`,``)},onClose(t){o(t),e.push(`details_close`,`details`,-1)},onSummary(r,i){o(r,i.end),jT(e,t.slice(r.end,i.start),n,`summary`)}}),jT(e,t.slice(a),n)}function PT(e,t,n,r){if((e.sCount[t]??0)-e.blkIndent>=4)return!1;let i=(e.bMarks[t]??0)+(e.tShift[t]??0),a=e.eMarks[t]??e.src.length,o=e.src.slice(i,a),s=AT(o);return s?r?!0:(NT(e,o,t,e[GT]??=[],s),e.line=t+1,!0):!1}function FT(e){let t=e.trimStart();if(t.startsWith(`<!--`))return`-->`;if(t.startsWith(`<?`))return`?>`;if(t.startsWith(`<![CDATA[`))return`]]>`;if(/^<![A-Za-z]/.test(t))return`>`;let n=/^<(pre|script|style|textarea)(?=[\s>]|$)/i.exec(t)?.[1];return n?`</${n.toLowerCase()}>`:null}function IT(e,t,n=[],r=0){let i=t.context??FT(e);if(!i)return!1;let a=e.length-e.trimStart().length;return!t.context&&OT(r+a,n)?!1:(t.context=(i.startsWith(`</`)?e.toLowerCase():e).includes(i)?null:i,!0)}function LT(e,t){let n=[];t.block.parse(e,t,{},n);let r=[0];for(let t of e.matchAll(/\n/g))r.push(t.index+1);let i=[];for(let t of n){if(t.type!==`html_block`||!t.map)continue;let n={context:null},a=t.content.split(`
`);for(let o=t.map[0];o<t.map[1];o+=1){if(!IT(a[o-t.map[0]]??``,n))continue;let s=r[o]??e.length,c=r[o+1]??e.length,l=i.at(-1);l?.[1]===s?l[1]=c:i.push([s,c])}}return i}function RT(e){e.block.ruler.before(`html_block`,`details_block`,PT,{alt:[`paragraph`,`reference`,`blockquote`]}),e.core.ruler.after(`block`,`details_balance`,e=>{let t=[],n=[];for(let r of e.tokens){if(r.type===`details_open`)n.push({hasSummary:!1});else if(r.type===`summary_open`){let e=n.at(-1);e&&(e.hasSummary=!0)}else r.type===`details_close`&&n.pop();if(r.type!==`html_block`||n.length===0){t.push(r);continue}let i={push(n,r,i){let a=new e.Token(n,r,i);return a.block=!0,t.push(a),a}},a=r.content.split(`
`),o=``,s={context:null},c=()=>{if(!o)return;let e=i.push(`html_block`,``,0);e.content=o,e.map=r.map,o=``};for(let[e,t]of a.entries()){let l=e<a.length-1,u=IT(t,s)?null:AT(t);if(!u){o+=t+(l?`
`:``);continue}c(),NT(i,t,(r.map?.[0]??0)+e,n,u)}c()}for(;n.length>0;){let r=new e.Token(`details_close`,`details`,-1);r.block=!0,t.push(r),n.pop()}let r=0;for(let e of t)e.nesting<0&&--r,e.level=r,e.nesting>0&&(r+=1);e.tokens=t}),e.renderer.rules.details_open=(e,t)=>e[t]?.attrGet(`open`)===null?`<details>`:`<details open>`,e.renderer.rules.details_close=()=>`</details>
`,e.renderer.rules.summary_open=()=>`<summary>`,e.renderer.rules.summary_close=()=>`</summary>`}var zT,BT,VT,HT,UT,WT,GT;function KT(){return(KT=e((()=>{Hi(),zT=32,BT=/<\/?(?:details|summary)(?=[\s>])[^>]*>/gi,VT=/^<details( open)?>$/i,HT=/^<\/details>$/i,UT=/^<summary>$/i,WT=/^<\/summary>$/i,GT=Symbol(`markdownDetailsStack`)})))()}function qT(e,t,n){let r=e[t-1],i=e[n];return(r===void 0||/\s/.test(r)||`([{<"'\``.includes(r))&&(i===void 0||/\s/.test(i)||`.,;:!?)]}>"'`.includes(i))}function*JT(e){for(let t of e)t.type===`inline`&&t.children&&(yield t.children)}function YT(e,t,n,r,i){let a=t[n].content,o=[],s=0,c=t=>{if(t){let n=new e.Token(`text`,``,0);n.content=t,o.push(n)}};for(let e of a.matchAll(r)){let t=i(e);t&&(c(a.slice(s,e.index)),o.push(...t),s=e.index+e[0].length)}return s?(c(a.slice(s)),t.splice(n,1,...o),n+o.length-1):n}function XT(e){let t=/(?:^|[\s([{"'])([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/.exec(e);return!t||[t[1],t[2]].some(e=>e===`.`||e===`..`)?null:{repository:{owner:t[1],repo:t[2]},length:t[1].length+t[2].length+1}}function ZT(e,t,n=e.length){let r=e.toLowerCase(),i=e.slice(0,n).toLowerCase().length;return t.filter(([e])=>{let t=r.lastIndexOf(e);return t>=0&&t<=i&&/^[,:\])]*$/u.test(r.slice(t+e.length))&&!/[\p{L}\p{N}_./-]/u.test(r[t-1]??``)}).toSorted(([e],[t])=>t.length-e.length)[0]}function QT(e,t,n){let r=e.trimEnd(),i=r.replace(/[,:\])]+$/u,``).trimEnd(),a=/(?:^|[\s([{])(?:"(.*)"|'(.*)'|“(.*)”|‘(.*)’)$/u.exec(i)?.slice(1).find(e=>e!==void 0),o=/\b(?:repo(?:sitory)?|project)\s*[:=]?\s+([^;!?]+)$/iu.exec(r)?.[1],s=a??o,c=(s??i).trim(),l=XT(c);if(l&&(s===void 0||l.length===c.length))return l.repository;let u=ZT(r,t,a===void 0?o===void 0?r.length:r.length-o.length:i.length-a.length-2);if(u)return u[1];if(s!==void 0)return t.find(([e])=>e===c.toLowerCase())?.[1]??null;let d=c.match(/[^\s([{]+$/u)?.[0]??``;return/[a-z][A-Z]|\w[._]\w|\/|["'’”]$/u.test(d)?null:n}function $T(e){let t=new Map,n={content:``,scannedTo:0},r=0;for(let i of e)i.type===`link_open`?r++:i.type===`link_close`&&r--,r===0&&i.type===`text`?(t.set(i,{run:n,offset:n.content.length}),n.content+=i.content):/^(?:em|strong)_(?:open|close)$/.test(i.type)||(n={content:``,scannedTo:0});return t}function eE(e){let t=new Map;for(let n of e){if(n.type!==`link_open`)continue;let e=n.attrGet(`href`),r=typeof e==`string`?af(e):null;if(!r)continue;let i=`${r.kind}:${r.number}`,a={owner:r.owner.toLowerCase(),repo:r.repo.toLowerCase()},o=t.get(i);t.set(i,o===void 0||o?.owner===a.owner&&o.repo===a.repo?a:null)}return t}function tE(e){e.core.ruler.before(`web-link-classes`,`github-item-refs`,e=>{let t=e.env,n=fT(t?.githubRepositories,t?.githubRepo),r=!1;for(let i of e.tokens){i.type===`heading_open`?r=!0:i.type===`heading_close`&&(r=!1);let a=i.children;if(r||i.type!==`inline`||!a)continue;let o=$T(a),s=eE(a);for(let r=0;r<a.length;r++){let i=a[r];if(!i)continue;let c=o.get(i);c&&(r=YT(e,a,r,nE,r=>{let i=r[1];if(!i)return null;let a=r.index+r[0].length,o=r.index,l=c.offset+o,u=c.offset+a,d=c.run.content,f=d.slice(c.run.scannedTo,l),p=XT(f),m=p?l-p.length:l,h=d.slice(c.run.scannedTo,m).match(rE);c.run.scannedTo=u;let g=h&&qT(d,m-h[0].length,u)?h[1]:void 0;if(!g&&!p&&i.length<4||!qT(d,m,u)||/^[.-]\w/.test(d.slice(u)))return null;let _=g&&/^(?:pr|pull)/i.test(g)?`pull`:`issue`,v=`${_}:${i}`,y=s.has(v)?s.get(v):t?.githubRepo,b=p?.repository??(g?QT(f.slice(0,-h[0].length),n,y):y);if(!b)return null;let x=`https://github.com/${encodeURIComponent(b.owner)}/${encodeURIComponent(b.repo)}`,S=_===`pull`?`pull`:`issues`,C=new e.Token(`link_open`,`a`,1);C.attrSet(`href`,`${x}/${S}/${i}`);let w=new e.Token(`text`,``,0);return w.content=`#${i}`,[C,w,new e.Token(`link_close`,`a`,-1)]}))}}})}var nE,rE;function iE(){return(iE=e((()=>{of(),nE=/#([1-9]\d{0,9})(?!\w|[.-]\w)/g,rE=/(PR|pull request|pull|issue|fixes|closes|resolves)\s+$/i})))()}function aE(e){let t=e.trim(),n=Ft(t);return!n||`agent:${n.agentId}:${n.rest}`!==t.toLowerCase()?null:{sessionKey:t,agentId:n.agentId}}function oE(e,t,n){if(!/^(?:https?:\/\/|\/)/i.test(e.trim()))return null;try{let r=new URL(e,globalThis.location.href),i=Po(r.pathname,t??fn(globalThis.location.pathname)[0],n);return i&&(r.protocol===`http:`||r.protocol===`https:`)?{url:r,target:i}:null}catch{return null}}function sE(e,t={}){let n=oE(e,t.basePath,t.mainKey);return n&&(n.url.origin===globalThis.location.origin||n.url.origin===t.publicOrigin)?n:null}function cE(e){e.core.ruler.before(`file-links`,`session-links`,e=>{if(e.env?.sessionLinks!==!0)return;let t=(e,t)=>{let n=aE(t),r=n?null:oE(t);if(!n&&!r)return!1;if(r){if(e.attrSet(`data-session-href`,t),r.url.origin!==globalThis.location.origin)return!1;e.attrSet(`href`,t)}else n&&e.attrSet(`data-session-key`,n.sessionKey);return e.attrJoin(`class`,`markdown-session-link`),e.attrSet(`role`,`link`),e.attrSet(`tabindex`,`0`),!0};for(let n of JT(e.tokens)){let r=0;for(let i=0;i<n.length;i++){let a=n[i];if(a){if(a.type===`link_open`)t(a,String(a.attrGet(`href`)??``)),r++;else if(a.type===`link_close`)r--;else if(r===0&&a.type===`code_inline`){let r=new e.Token(`link_open`,`a`,1);t(r,a.content)?(n.splice(i,1,r,a,new e.Token(`link_close`,`a`,-1)),i+=2):r.attrGet(`data-session-href`)&&a.attrSet(`data-session-href`,a.content)}else r===0&&a.type===`text`&&(i=YT(e,n,i,pE,n=>{let r=n.index+n[0].length,i=new e.Token(`link_open`,`a`,1);if(!qT(a.content,n.index,r)||!t(i,n[0]))return null;let o=new e.Token(`text`,``,0);return o.content=n[0],[i,o,new e.Token(`link_close`,`a`,-1)]}))}}}})}function lE(e){let t=e?.runtimeConfig?.state.configSnapshot?.runtimeConfig;return Vt({gateway:{publicOrigin:ao(ss(t?.gateway)?.publicOrigin)}})}function uE(e,t){let n=e.target instanceof Element?e.target.closest(`a, [data-session-href]`):null,r=n?.dataset.sessionKey;if(r&&!n.dataset.sessionHref)return aE(r);let i=n?.closest(`openclaw-session-progress-hovercard-provider`)?.context,a=n?.getAttribute(`href`)??n?.dataset.sessionHref,o=a?sE(a,{basePath:t??i?.basePath,publicOrigin:lE(i)}):null;if(!o)return null;let{url:s,target:c}=o;return{namespace:c.namespace,pathname:s.pathname,...s.search?{search:s.search}:{},...s.hash?{hash:s.hash}:{}}}function dE(e,t){if(e.key!==`Enter`&&e.key!==` `)return null;let n=uE(e,t);return n&&e.preventDefault(),n}function fE(e,t){if(`pathname`in t){let{namespace:n,...r}=t;e.navigate(n,r);return}let n=Fe({context:e,face:`chat`,sessionKey:t.sessionKey,agentId:t.agentId,exactKey:!0,preferenceDerivedFace:!0});e.navigate(`chat`,n.options)}var pE;function mE(){return(mE=e((()=>{Kn(),on(),je(),A(),pE=/agent:[^\s<>"'`]*[^\s<>"'`.,;:!?)}\]]/g})))()}function hE(e){return typeof e==`object`&&!!e&&`tableInteractions`in e&&e.tableInteractions===`enabled`}function gE(e){let t=e.renderer.rules.table_open,n=e.renderer.rules.table_close;e.renderer.rules.table_open=(e,n,r,i,a)=>hE(i)?`<div class="markdown-table" data-table-interactions><div class="markdown-table__viewport"><table>`:t?.(e,n,r,i,a)??`<table>
`,e.renderer.rules.table_close=(e,t,r,i,a)=>hE(i)?`</table></div><div class="markdown-table__actions"><button type="button" class="markdown-table__expand" aria-label="${K(N(`common.expandTable`))}"></button><button type="button" class="markdown-table__copy" aria-label="${K(N(`common.copyTable`))}"></button></div></div>`:n?.(e,t,r,i,a)??`</table>
`}function _E(e){return[...e.rows].map(e=>[...e.cells].map(e=>e.textContent?.trim()??``).join(`	`)).join(`
`)}function vE(e){let t=e.querySelector(TE);if(!t)return;let{scrollWidth:n,clientWidth:r,scrollLeft:i}=t,a=n-r>1;e.classList.toggle(`markdown-table--can-scroll-left`,a&&i>1),e.classList.toggle(`markdown-table--can-scroll-right`,a&&i+r<n-1)}function yE(e){if(EE.has(e))return;let t=e.querySelector(TE),n=e.querySelector(`.markdown-table__expand`),r=e.querySelector(`.markdown-table__copy`);t&&n&&r&&(EE.add(e),ei(L`${Qn.maximize}<span>${N(`common.expandTable`)}</span>`,n),ei(F.copy,r),t.addEventListener(`scroll`,()=>vE(e),{passive:!0}))}function bE(e){let t=DE.get(e);if(!t){let n=new Set,r=typeof ResizeObserver==`function`?new ResizeObserver(e=>{let t=new Set(e.map(e=>e.target.closest(wE)));for(let e of t)e&&vE(e)}):null,i=t=>{for(let i of t)if(e.contains(i)){yE(i),r||vE(i);for(let e of i.querySelectorAll(`${TE}, table`))n.has(e)||(n.add(e),r?.observe(e))}},a=new MutationObserver(t=>{let a=new Set;for(let i of t){let t=i.target instanceof Element?i.target:i.target.parentElement,o=t?.closest(wE);o&&(t===o||t?.closest(TE))&&a.add(o);for(let e of i.addedNodes)if(e instanceof HTMLElement){e.matches(wE)&&a.add(e);for(let t of e.querySelectorAll(wE))a.add(t)}for(let t of i.removedNodes){if(!(t instanceof HTMLElement)||e.contains(t))continue;let i=[t,...t.querySelectorAll(`${TE}, table`)];for(let e of i)n.delete(e)&&r?.unobserve(e)}}i(a)});t={release:()=>{a.disconnect(),r?.disconnect()}},DE.set(e,t),i(e.querySelectorAll(wE)),a.observe(e,{childList:!0,subtree:!0,characterData:!0})}return t}function xE(e){let t=DE.get(e);DE.delete(e),t?.release(),t?.closeDialog?.()}async function SE(e,t,n){let r=DE.get(n)??bE(n);if(r.closeDialog)return;let i,a=()=>{r.closeDialog===a&&delete r.closeDialog,i?.remove()};r.closeDialog=a;try{if(await W(()=>import(`./control-ui-core-DtLivg_r.js`).then(e=>(e.qr(),e.Jr)),__vite__mapDeps([0,3]),import.meta.url),r.closeDialog!==a||!n.isConnected||!t.isConnected)return;i=document.createElement(`openclaw-modal-dialog`),i.className=`markdown-table-modal`,i.label=N(`common.expandedTable`),i.setReturnFocusTarget(t);let o=e=>{let t=ve(e);!t||e instanceof KeyboardEvent&&e.key!==`Enter`&&e.key!==` `||setTimeout(()=>{(e.type===`click`||e.defaultPrevented||e instanceof MouseEvent&&e.button===1&&t.hasAttribute(`href`))&&a()},0)};i.addEventListener(`modal-cancel`,a),ei(L`
        <div
          class="markdown-table-dialog chat-text"
          dir=${getComputedStyle(e).direction}
          @click=${o}
          @auxclick=${o}
          @keydown=${o}
        >
          <button
            type="button"
            class="markdown-table-dialog__close"
            aria-label=${N(`common.closeTable`)}
            autofocus
            @click=${a}
          >
            ${F.x}
          </button>
          ${e.cloneNode(!0)}
        </div>
      `,i),n.append(i)}finally{i||a()}}function CE(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(wE);if(!n)return;yE(n);let r=n.querySelector(`table`);if(!r)return;let i=t.closest(`.markdown-table__expand`);if(i&&e.currentTarget instanceof HTMLElement){SE(r,i,e.currentTarget);return}let a=t.closest(`.markdown-table__copy`);if(a){let e=_E(r);dw(a,e,()=>r.isConnected&&n.querySelector(`table`)===r&&_E(r)===e,e=>{e===void 0?(ei(F.copy,a),a.setAttribute(`aria-label`,N(`common.copyTable`))):(a.setAttribute(`aria-label`,N(e?`common.copied`:`common.copyFailed`)),ei(e?F.check:F.copy,a))})}}var wE,TE,EE,DE;function OE(){return(OE=e((()=>{R(),k(),yr(),P(),mw(),Go(),wE=`.chat-text .markdown-table[data-table-interactions]`,TE=`.markdown-table__viewport`,EE=new WeakSet,DE=new WeakMap})))()}function kE(e,t,n,r){let i=e[t];if(!i)return``;let a=i.content;return n?VE.test(a.trim())?a:``:/^<br\s*\/?>$/iu.test(a.trim())?r?`<br>
`:`<br>`:K(a)+(r?`
`:``)}function AE(e,t){let n=``;for(let r=t+1;r<e.length;r++){let t=e[r];if(!t||t.type===`link_close`)break;(t.type===`text`||t.type===`code_inline`)&&(n+=t.content)}return n.trim()}function jE(e,t){e.attrJoin(`class`,`markdown-file-link`),e.attrSet(`role`,`button`),e.attrSet(`tabindex`,`0`),e.attrSet(`data-file-path`,t.path),e.attrSet(`data-file-kind`,yT(t.path)),t.line!==null&&e.attrSet(`data-file-line`,String(t.line))}function ME(e){let t=URL.parse(e);return t?.protocol===`https:`||t?.protocol===`http:`?t:null}function NE(e){let t=e.pathname.split(`/`).filter(Boolean);if(t.length===2)return t.map(e=>tf(e)??e).join(`/`);if((t[2]===`blob`||t[2]===`tree`)&&t.length>4){let e=tf(t.at(-1)??``);if(e)return t[2]===`tree`?`${t.slice(0,2).map(e=>tf(e)??e).join(`/`)}/…/${e}`:e}return[`github.com`,...t.map(e=>tf(e)??e)].join(`/`)}function PE(){let e=new Yl({html:!0,breaks:!0,linkify:!0});return e.use(Ws),e.enable(`strikethrough`),ow(e),RT(e),gE(e),e.linkify.set({fuzzyLink:!1}),e.linkify.add(`www`,{validate(e,t){let n=e.slice(t),r=n.match(/^\.(?:[a-zA-Z0-9-]+\.?)+[^\s<\u2E80-\u2FFF\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFF60]*/);if(!r)return 0;let i=r[0].length,a={")":`(`,"]":`[`,"}":`{`,'"':`"`,"'":`'`},o={};for(let[e,t]of Object.entries(a)){o[e]=0;for(let r=0;r<i;r++){let i=n.charAt(r);t===e?i===t&&(o[e]=+(o[e]===0)):i===t?o[e]=(o[e]??0)+1:i===e&&(o[e]=(o[e]??0)-1)}}for(;i>0;){let e=n.charAt(i-1);if(/[?!.,:*_~]/.test(e)){i--;continue}if(e===`;`){let e=i-2;for(;e>=0&&/[a-zA-Z0-9]/.test(n.charAt(e));)e--;if(e>=0&&n.charAt(e)===`&`&&e<i-2){i=e;continue}break}let t=a[e];if(t!==void 0){if(t===e){if((o[e]??0)!==0){o[e]=0,i--;continue}}else if((o[e]??0)<0){o[e]=(o[e]??0)+1,i--;continue}}break}return i},normalize(e){e.url=`http://`+e.url}}),e.validateLink=()=>!0,e.core.ruler.after(`linkify`,`disallowed-link-schemes`,e=>{for(let t of JT(e.tokens)){let e=!1;for(let n of t)n.type===`link_open`&&FE.test(String(n.attrGet(`href`)??``))?(n.hidden=!0,e=!0):n.type===`link_close`&&e&&(n.hidden=!0,e=!1)}}),e.core.ruler.after(`linkify`,`linkify-cjk-trim`,e=>{for(let t of JT(e.tokens))for(let n=t.length-1;n>=0;n--){let r=t[n];if(!r||r.type!==`link_open`||r.markup!==`linkify`)continue;let i=t[n+1];if(!i||i.type!==`text`)continue;let a=i.content,o=a.length;for(;o>0&&IE.test(a.charAt(o-1));)o--;if(o<=0||o===a.length)continue;let s=a.slice(0,o),c=a.slice(o),l=String(r.attrGet(`href`)??``),u=l.indexOf(a),d=u>0?l.slice(0,u):``;r.attrSet(`href`,d+s),i.content=s;for(let r=n+1;r<t.length;r++)if(t[r]?.type===`link_close`){let n=new e.Token(`text`,``,0);n.content=c,t.splice(r+1,0,n);break}}}),e.core.ruler.after(`linkify-cjk-trim`,`file-links`,e=>{if(e.env?.fileLinks!==!0)return;let t=[],n=(n,r,i)=>{let a=new e.Token(`link_open`,`a`,1),o=new e.Token(`link_close`,`a`,-1);return a.markup=`file-link`,o.markup=`file-link`,jE(a,r),t.push({path:r.path,reference:i,applyLabel:e=>{n.content=e,e!==i&&a.attrSet(`title`,i)}}),[a,n,o]};for(let t of JT(e.tokens)){let r=0;for(let i=0;i<t.length;i++){let a=t[i];if(a){if(a.type===`link_open`){let e=String(a.attrGet(`href`)??``);if(e&&!a.attrGet(`data-session-href`)){let n=e;try{n=decodeURIComponent(e)}catch{}if(!n.includes(`://`)){let e=Qw(n,{authored:!0})??($w(n)?Xw(n.trim()):null);if(e){a.attrs=a.attrs?.filter(([e])=>e!==`href`)??null,jE(a,e);let r=n.trim();AE(t,i)!==r&&a.attrSet(`title`,r)}}}r+=1;continue}if(a.type===`link_close`){r=Math.max(0,r-1);continue}if(!(r>0)){if(a.type===`code_inline`){let e=Qw(a.content);e&&(t.splice(i,1,...n(a,e,a.content.trim())),i+=2);continue}a.type===`text`&&(cT.lastIndex=0,i=YT(e,t,i,cT,t=>{let r=t.index,i=t[0],o=r+i.length;if(!qT(a.content,r,o))return null;let s=Qw(i);if(!s)return null;let c=new e.Token(`text`,``,0);return n(c,s,i)}))}}}}let r=ST(t.map(e=>e.path));for(let e of t){let t=r.get(e.path)??e.path;e.applyLabel(t+e.reference.slice(e.path.length))}}),cE(e),e.core.ruler.after(`linkify`,`web-link-classes`,e=>{for(let t of JT(e.tokens)){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(i?.type===`link_close`){n=Math.max(0,n-1);continue}if(i?.type===`code_inline`&&n===0){let n=i.content,a=BE.test(n)?null:ME(n);if(!a||!hn(a.hostname))continue;let o=new e.Token(`text`,``,0);o.content=n,i=new e.Token(`link_open`,`a`,1),i.markup=zE,i.attrSet(`href`,o.content),t.splice(r,1,i,o,new e.Token(`link_close`,`a`,-1))}if(i?.type!==`link_open`)continue;n+=1;let a=String(i.attrGet(`href`)??``),o=a?ME(a):null;if(!o)continue;let s=i.markup===`linkify`||i.markup===`autolink`||i.markup===zE,c=o.hostname.toLowerCase(),l=hn(c),u=l?af(a):null;s&&i.attrJoin(`class`,RE);let d=null;for(let e=r+1;e<t.length;e++){let n=t[e];if(!n||n.type===`link_close`)break;if((n.type===`text`||n.type===`code_inline`)&&n.content.trim()!==``){d=n;break}}if(l&&d){i.attrJoin(`class`,LE);let e=u??rf(o),n=d.type===`text`&&t[r+1]===d&&t[r+2]?.type===`link_close`?d.content:null,c=e&&(s||n===`#${e.number}`||n===`${e.owner}/${e.repo}#${e.number}`);c&&(i.attrJoin(`class`,`markdown-github-item`),i.attrSet(`data-github-kind`,e.kind)),s&&(d.content=e?`#${e.number}`:NE(o)),!u&&(s||c)&&i.attrSet(`title`,a)}if(!l&&d&&e.env.linkFavicons){let n=new e.Token(`link_favicon`,`img`,0);n.meta={hostname:c},t.splice(r+1,0,n),r+=1}}}}),tE(e),e.core.ruler.after(`inline`,`task-lists`,e=>{for(let[t,n]of e.tokens.entries()){let r=e.tokens[t-2],i=n.children,a=i?.[0];if(n.type!==`inline`||e.tokens[t-1]?.type!==`paragraph_open`||r?.type!==`list_item_open`||!/^\[[ xX]\] /.test(n.content)||!i||!a)continue;let o=new e.Token(`html_inline`,``,0);o.content=`<input class="task-list-item-checkbox"${n.content[1]===` `?``:` checked=""`} disabled="" type="checkbox">`,o.meta={taskListPlugin:!0},a.content=a.content.slice(3),i.unshift(o),n.content=n.content.slice(3),r.attrSet(`class`,`task-list-item`);for(let n=t-3;n>=0;n--){let t=e.tokens[n];if(t?.level===r.level-1){t.attrSet(`class`,`contains-task-list`);break}}}}),e.renderer.rules.html_block=(e,t,n,r)=>kE(e,t,r?.progressBars===!0,!0),e.renderer.rules.html_inline=(e,t,n,r)=>{let i=e[t];return i?.meta?.taskListPlugin===!0?i.content:kE(e,t,r?.progressBars===!0,!1)},e.renderer.rules.link_favicon=(e,t)=>{let n=e[t]?.meta?.hostname;return typeof n==`string`?`<img class="markdown-link-favicon" data-link-favicon-host="${K(n)}" alt="" role="presentation">`:``},e.renderer.rules.fence=e.renderer.rules.code_block=(e,t,n,r)=>{let i=e[t];if(!i)return``;let a=i.type===`fence`,o=a&&i.info.trim().split(/\s+/)[0]||``,s=a&&r?.streamingOpenFence===!0&&e.findLastIndex(({nesting:e})=>e!==-1)===t,c=Bw(i.content,o,r,{copyText:Hw(i.content),highlight:!s});return o.toLowerCase()===`mermaid`&&!s?`<div class="markdown-mermaid">${c}</div>`:c},_T(e),e}var FE,IE,LE,RE,zE,BE,VE;function HE(){return(HE=e((()=>{Xl(),Vs(),ET(),of(),uw(),Kw(),KT(),dT(),iE(),vT(),mE(),OE(),FE=/^(?!(?:https?|mailto):)[a-z][a-z0-9+.-]*:/i,IE=RegExp(`[\\u2E80-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\uF900-\\uFAFF\\uFF01-\\uFF60]`),LE=`markdown-github-link`,RE=`markdown-bare-url`,zE=`code-span-url`,BE=/[\s\p{Cc}]/u,VE=/^(?:<progress(?:\s[^<>]*)?>\s*(?:<\/progress>)?|<\/progress>)$/iu})))()}function UE(e,t,n){let r=t+1,i=e[r]===`/`;i&&(r+=1);let a=GE.find(t=>{let n=r+t.name.length;return t.pattern.test(e.slice(r,n))&&!KE.test(e[n]??``)});if(!a)return null;let o=a.name,s=r+o.length;if(i){for(let t=s;t<n;t+=1)if(!qE.test(e[t]??``))return null}return{start:t,end:n+1,isClosing:i,name:o}}function WE(e){let t=[],n=0,r=e.indexOf(`>`);for(;n<e.length;){let i=e.indexOf(`<`,n);if(i===-1)break;for(;r!==-1&&r<i;)r=e.indexOf(`>`,r+1);if(r===-1)break;let a=UE(e,i,r);a&&t.push(a),n=i+1}let i=new Map;for(let e of t)if(e.isClosing){let t=i.get(e.name)??[];t.push(e),i.set(e.name,t)}let a=``,o=0;for(let n of t){if(n.isClosing||n.start<o)continue;let t=i.get(n.name);if(!t)continue;let r=0,s=t.length;for(;r<s;){let e=r+Math.floor((s-r)/2);t[e].start>=n.end?s=e:r=e+1}let c=t[r];c&&(a+=e.slice(o,n.start),o=c.end)}return o===0?e:a+e.slice(o)}var GE,KE,qE;function JE(){return(JE=e((()=>{GE=[{name:`script`,pattern:/^script$/iu},{name:`style`,pattern:/^style$/iu},{name:`iframe`,pattern:/^iframe$/iu},{name:`object`,pattern:/^object$/iu},{name:`template`,pattern:/^template$/iu}],KE=/^\w$/iu,qE=/^\s$/u})))()}function YE(e){let t=e,n=0;for(let e=0;e<8;e+=1){let e=cD.exec(t)?.[0];if(!e)return{content:t,offset:n};t=t.slice(e.length),n+=e.length}return{content:t,offset:n}}function XE(e){let{content:t,offset:n}=YE(e),r=sD.exec(t),i=r?.[1];return!r||!i||i.startsWith("`")&&t.slice(r[0].length).includes("`")?null:{length:i.length,marker:i.startsWith("`")?"`":`~`,container:n>0}}function ZE(e,t){let n=(t.container?YE(e).content:e).replace(/[ \t]+$/u,``),r=sD.exec(n),i=r?.[1];return!r||!i?!1:i.charAt(0)===t.marker&&i.length>=t.length&&n.length===r[0].length}function QE(e,t,n,r,i){let a=YE(e),o=AT(a.content,r,i+a.offset);return o?MT(o,t,{allowPendingSummary:n}):!1}function $E(e){if(!e)return;let t=mD.get(e)??{};return mD.delete(e),mD.set(e,t),_o(mD,fD),t}function eD(e,t){return Li(e.slice(t)).map(([e,n])=>[e+t,n+t])}function tD(e,t){let n=e.slice(t,e.lastIndexOf(`
`)+1);if(n.includes(`<`))return;let r=hD??=PE(),i=[];r.block.parse(n,r,{},i);let a=i.filter(e=>e.level===0&&e.map),o=a[0],s=a.at(-1);if(!o||!pD.has(o.type)||!s?.map||o===s)return;let c=t;for(let t=0;t<s.map[0];t++)c=e.indexOf(`
`,c)+1;return{boundary:c,containerOffset:pD.has(s.type)?c:null}}function nD(e,t,n){let r,i=0;return(a,o)=>{let s=YE(a);!r&&s.content.trimStart().startsWith(`<`)&&IT(s.content,{context:null},n(),o+s.offset)&&(r=LT(e.slice(t),hD??=PE()).map(([e,n])=>[e+t,n+t]));let c=r?.[i];for(;c&&c[1]<=o;)i+=1,c=r?.[i];return c&&c[0]<=o&&o<c[1]?c:void 0}}function rD(e,t={boundary:0,containerOffset:null,hasLinkReferenceDefinition:!1,index:0,lastLiteralOffset:0,lineMode:null,openFence:null}){let{boundary:n,containerOffset:r,hasLinkReferenceDefinition:i,index:a,lastLiteralOffset:o}=t,s=t.lineMode,c=t.openFence,l=[],u=t.openFence?0:Math.min(t.lastLiteralOffset,t.containerOffset??t.lastLiteralOffset),d=e.slice(u),f=/ {4}|\t/u.test(d)?Ki(d).map(e=>({start:e.start+u,end:e.end+u,block:e.block})):[],p=f.length?f.map(({start:e,end:t})=>[e,t]):void 0,m=nD(e,Math.min(t.boundary,t.containerOffset??t.boundary),()=>p??=eD(e,r??n)),h=t,g=!1;for(;a<e.length;){let t=e.indexOf(`
`,a),u=t===-1?e.length:t+1;if(s){a=u,s=t===-1?s:null,h={boundary:n,containerOffset:r,hasLinkReferenceDefinition:i,index:a,lastLiteralOffset:o,lineMode:s,openFence:c};continue}let d=e.slice(a,t===-1?u:t),f=c,_=!1;if(c)ZE(d,c)&&(c=null,o=u,l.length===0&&(n=u));else{let s=YE(d),f=m(d,a);if(_=f!==void 0,r===null&&lD.test(d)&&(!f||f[0]===a)&&(r=n),_){o=u;let e=s.content.trimStart();g=t===-1&&e.length>0&&!e.startsWith(`<`)}else{let t=XE(d);t?(c=t,o=u):(dD.test(s.content)&&QE(d,l,!1,p??=eD(e,r??n),a),l.length===0&&(uD.test(s.content)&&(i=!0),/^[ \t]*$/u.test(d)&&(n=u)))}}a=u,l.length===0&&!_&&(t!==-1||iD(d,f))&&(s=t===-1?f?`fence`:`plain`:null,h={boundary:n,containerOffset:r,hasLinkReferenceDefinition:i,index:a,lastLiteralOffset:o,lineMode:s,openFence:c})}if(r!==null&&!i){let t=tD(e,r);t&&(r=t.containerOffset,n=Math.max(n,t.boundary),h={...h,containerOffset:r,boundary:Math.max(h.boundary,t.boundary)})}i?n=0:r!==null&&(n=Math.min(n,r));let _=o;for(let e of f)e.block&&(e.start<n&&n<e.end&&(n=e.start),_=Math.max(_,e.end));return{cursor:h,rawTail:g,result:{boundary:n,tailRepairStart:c?null:Math.max(n,_)}}}function iD(e,t){let n=YE(e).content.charAt(0);return n?t?n!==t.marker:!/[\s`~<[\]*+\-\d>]/u.test(n):!1}function aD(e,t,n=e.length){let r=$E(t);if(!r)return rD(e).result;let i=e.slice(0,n),a=r.split,o=a&&i.startsWith(a.markdown),s=o&&a.rawTail&&!/[\r\n]/u.test(i.slice(a.markdown.length))?{cursor:a.cursor,rawTail:!0,result:{boundary:a.result.boundary,tailRepairStart:i.length}}:rD(i,o?a.cursor:void 0);return r.split={...s,markdown:i},n===e.length?s.result:rD(e,s.cursor).result}function oD(e,t){if(t===e.length)return e;let n=e.slice(0,t)+Gs(e.slice(t),gD);if(!n.includes(`<`))return n;let r=[],i=Li(n),a=nD(e.slice(0,t),0,()=>i),o=null,s=!1,c=0;for(;c<n.length;){let e=n.indexOf(`
`,c),t=e===-1?n.length:e+1,l=n.slice(c,e===-1?t:e);o?ZE(l,o)&&(o=null):a(l,c)||(o=XE(l),o||(s=QE(l,r,e===-1,i,c))),c=t}return s?`${n}</summary>`:n}var sD,cD,lD,uD,dD,fD,pD,mD,hD,gD;function _D(){return(_D=e((()=>{Hs(),Hi(),KT(),HE(),sD=/^[ \t]{0,3}(`{3,}|~{3,})/,cD=/^[ \t]{0,3}(?:(?:>\s?)|(?:(?:[-+*]|\d{1,9}[.)])[ \t]+))/,lD=/^[ \t]{0,3}(?:[-+*]|\d{1,9}[.)])[ \t]+/u,uD=/^[ \t]*\[/u,dD=/^[ \t]*<\/?(?:details|summary)(?=[\s>])/iu,fD=8,pD=new Set([`bullet_list_open`,`ordered_list_open`,`blockquote_open`]),mD=new Map,gD={katex:!1,linkMode:`text-only`}})))()}function vD(e,t){let n=Wl(e),r=$E(t),i=r?.input,a;if(i&&n.startsWith(i.source)){let e=n.slice(i.source.length),t=ww(e);a=i.source.endsWith(`\r`)&&e.startsWith(`
`)?`${i.normalized.slice(0,-1)}${t}`:`${i.normalized}${t}`}else a=ww(n);return r&&(r.input=n.length<=BD?{source:n,normalized:a}:void 0),a}function yD(e){if(yn(e)!==null)return!0;let t=bD();return!t||e!==t&&!e.startsWith(`${t}/`)?!1:yn(e,t)!==null}function bD(){return typeof window>`u`?``:fn(window.location.pathname)[0]}function xD(e){return e.split(`/`).filter(Boolean)}function SD(e){let t=xD(e),n=xD(bD());return n.length===0||n.some((e,n)=>t[n]!==e)?t:t.slice(n.length)}function CD(e){if(e.includes(`__openclaw__`)||e.includes(`__openclaw`))return!0;let t=e[0];return!t||KD.has(t)?!0:qD.some(t=>t.every((t,n)=>e[n]===t))}function wD(e,t){if(GD.has(e))return!0;let n=t[0];return n?WD.has(n):!1}function TD(e){let t=e.trim();if(!t.startsWith(`/`)||t.startsWith(`//`))return e;try{let n=new URL(t,UD);if(n.origin!==UD)return e;let r=n.pathname.replace(/\/+$/,``)||`/`;if(yD(r))return e;let i=xD(r);return CD(SD(r))?e:wD(r,i)?n.href:e}catch{return e}}function ED(e){if(e.nodeType===Node.TEXT_NODE)return!!e.textContent?.trim();if(!(e instanceof Element)||e.getAttribute(`aria-hidden`)?.trim().toLowerCase()===`true`)return!1;if(e.matches(`img[alt]`))return!!e.getAttribute(`alt`)?.trim();if(e.matches(`progress`)){let t=e.getAttribute(`aria-valuetext`);return t===null?e.hasAttribute(`value`)||e.hasAttribute(`aria-valuenow`)||!!(e.getAttribute(`aria-label`)?.trim()||e.getAttribute(`title`)?.trim()):!!t.trim()}return[...e.childNodes].some(ED)}function DD(e=LD){let t=zD.get(e);if(t)return t;let n=Jl(window);return n.setConfig(e),n.addHook(`afterSanitizeAttributes`,e=>{if(!(e instanceof HTMLAnchorElement))return;let t=e.getAttribute(`href`);if(!t)return;if($w(t)){e.removeAttribute(`href`);return}let n=TD(t);n!==t&&e.setAttribute(`href`,n);try{let t=new URL(n,document.baseURI);if(t.protocol!==`http:`&&t.protocol!==`https:`&&t.protocol!==`mailto:`){e.removeAttribute(`href`);return}if(af(t.href))for(let t of[e,...e.querySelectorAll(`[title]`)]){let e=t.getAttribute(`title`),n=!t.matches(`progress`)&&ED(t);e&&!n&&!t.getAttribute(`aria-label`)?.trim()&&t.setAttribute(`aria-label`,e),t.removeAttribute(`title`)}if(t.origin===window.location.origin&&yD(t.pathname)){e.removeAttribute(`rel`),e.removeAttribute(`target`);return}}catch{}e.setAttribute(`rel`,`noreferrer noopener`),e.setAttribute(`target`,`_blank`)}),zD.set(e,n),n}function OD(e){let t=e.truncated?`\n\n${N(`chat.markdown.truncated`,{total:String(e.total),shown:String(e.text.length)})}`:``;return`${e.text}${t}`}function kD(e,t,n){let r=DD(t.progressBars?RD:LD),i=t.mode===`document`,a=i?{text:e,truncated:!1,total:e.length}:ne(e,BD),o=t.progressBars?WE(OD(a)):OD(a);if(n??Tw(a.text))return r.sanitize(Bw(o,``,t,{blockArt:!0}));if(!i&&a.text.length>4e4)return r.sanitize(ND(o,t));let s;try{s=YD.render(o,t)}catch(e){console.warn(`[markdown] md.render failed, falling back to plain text:`,e),s=ND(o,t)}return r.sanitize(s)}function AD(e,t){return DD().sanitize(Bw(e.text,`json`,hw(t),{json:e}).replaceAll(`\r`,`&#13;`)).replaceAll(`\r`,`&#13;`)}function jD(e,t={}){let n=hw(t),r=n.mode===`document`||e.length<=4e4?hT(e,n.humanMentions,YD.utils.normalizeReference):{source:e,tokens:[]};n.humanMentionTokens=r.tokens;let i=ww(Wl(r.source));if(!i.trim())return``;if(i.length>HD)return kD(i,n);let a=`${MD(n)}\0${i}`,o=JD.get(a)??kD(i,n);return JD.delete(a),JD.set(a,o),_o(JD,VD),o}function MD(e){return`${ae.getLocale()}\0${e.assistantTranscriptRoleHeaders}\0${e.codeBlockChrome}\0${e.codeBlockInteraction}\0${e.fileLinks}\0${JSON.stringify(e.githubRepo?[e.githubRepo.owner,e.githubRepo.repo]:null)}\0${pT(e.githubRepositories,e.githubRepo)}\0${e.interactiveImages}\0${e.linkFavicons}\0${e.progressBars}\0${e.mode}\0${e.remoteImages}\0${e.sessionLinks}\0${e.tableInteractions}\0${JSON.stringify(e.humanMentionTokens??[])}`}function ND(e,t){return cw(gT(ww(e),t.humanMentionTokens),t.assistantTranscriptRoleHeaders)}function PD(e,t={},n){let r=hw(t);if(r.humanMentions.length)return[jD(e,t),``];let i=vD(e,n);if(Tw(i))return[``,kD(i,r)];if(!i.trim())return[``,``];let a=ne(i,BD),o=OD(a),{boundary:s,tailRepairStart:c}=aD(o,n,a.text.length),l=o.slice(0,s),u=o.slice(s),d=$E(n),f=d?.rendered,p=MD(r),m=f?.options===p&&l.startsWith(f.markdown)&&(f.markdown===l||f.markdown.endsWith(`
`)&&!/^(?: {4}| {0,3}[\t>])/mu.test(l)&&!/^ {0,3}(?:[-+*]|\d{1,9}[.)])$/mu.test(l)&&!l.includes(`<`)&&!Tw(l)&&!f.html.includes(`class="markdown-block-art"`)&&(r.mode===`document`||s<=4e4)),h=m?f.html:``,g=l.slice(m?f.markdown.length:0);if(g){let e=kD(g,{...r});h=h.length>0&&Tw(g)||r.fileLinks&&h.includes(`class="markdown-file-link"`)&&e.includes(`class="markdown-file-link"`)?kD(l,{...r}):h+e}if(d&&(d.rendered={options:p,markdown:l,html:h}),!u.trim())return[h,``];let _=kD(c===null?u:oD(u,c-s),c===null?{...r,streamingOpenFence:!0}:r,!1);return[h,_]}var FD,ID,LD,RD,zD,BD,VD,HD,UD,WD,GD,KD,qD,JD,YD;function XD(){return(XD=e((()=>{au(),ro(),zl(),cr(),on(),k(),Ae(),of(),uw(),Kw(),dT(),vT(),HE(),JE(),gw(),_D(),Ow(),FD=`a.b.blockquote.br.button.code.del.details.div.em.h1.h2.h3.h4.hr.i.input.li.ol.openclaw-person-reference.p.pre.s.span.strong.summary.table.tbody.td.th.thead.tr.ul.img`.split(`.`),ID=`checked.profile-id.label.class.disabled.href.open.rel.target.tabindex.title.start.src.alt.data-code.data-code-encoding.data-file-kind.data-file-line.data-file-path.data-link-favicon-host.data-session-key.data-session-href.data-table-interactions.type.aria-expanded.aria-label.aria-pressed.role`.split(`.`),LD={ALLOWED_TAGS:FD,ALLOWED_ATTR:ID,ADD_DATA_URI_TAGS:[`img`]},RD={...LD,ALLOWED_TAGS:[...FD,`progress`],ALLOWED_ATTR:[...ID,`value`,`max`]},zD=new Map,BD=14e4,VD=500,HD=5e4,UD=`https://docs.openclaw.ai`,WD=new Set(`agent-runtime-architecture.announcements.auth-credential-semantics.automation.brave-search.channels.ci.clawhub.cli.concepts.date-time.debug.diagnostics.gateway.help.index.install.logging.maturity-scorecard.network.nodes.openclaw-agent-runtime.perplexity.plan.platforms.plugins.prose.providers.refactor.reference.security.specs.start.tools.tts.vps.web`.split(`.`)),GD=new Set(`/AGENTS.default,/RELEASING,/agent,/agent-loop,/agent-send,/agent-workspace,/android,/anthropic,/architecture,/audio,/auth-monitoring,/azure,/background-process,/bash,/bonjour,/browser,/browser-linux-troubleshooting,/bun,/camera,/clawd,/clawdhub,/compaction,/configuration,/context,/context-engine,/control-ui,/cron,/cron-jobs,/cron-vs-heartbeat,/dashboard,/device-models,/discord,/discovery,/docker,/doctor,/duckduckgo-search,/elevated,/exa-search,/experiments/plans/cron-add-hardening,/experiments/plans/group-policy-hardening,/faq,/gateway-lock,/gcp,/gemini-search,/getting-started,/glm,/gmail-pubsub,/grammy,/grok-search,/group-messages,/groups,/health,/heartbeat,/hubs,/images,/imessage,/ios,/kimi-search,/line,/linux,/location,/location-command,/lore,/mac/bun,/mac/canvas,/mac/child-process,/mac/dev-setup,/mac/health,/mac/icon,/mac/logging,/mac/menu-bar,/mac/peekaboo,/mac/permissions,/mac/release,/mac/remote,/mac/signing,/mac/skills,/mac/voice-overlay,/mac/voicewake,/mac/webchat,/mac/xpc,/macos,/mattermost,/mcp,/message,/messages,/minimax,/mistral,/model,/model-failover,/models,/moonshot,/multi-agent,/nix,/northflank,/oauth,/onboarding,/openai,/opencode,/opencode-go,/openrouter,/pairing,/pi,/pi-dev,/plugin,/podman,/poll,/presence,/provider-routing,/qianfan,/queue,/quickstart,/railway,/remote,/remote-gateway-readme,/render,/rpc,/sandbox,/sandboxing,/session,/session-tool,/sessions,/setup,/showcase,/signal,/skill-workshop,/skills,/skills-config,/slack,/slash-commands,/subagents,/tailscale,/talk,/telegram,/templates/AGENTS,/templates/BOOT,/templates/BOOTSTRAP,/templates/HEARTBEAT,/templates/IDENTITY,/templates/SOUL,/templates/TOOLS,/templates/USER,/test,/thinking,/timezone,/troubleshooting,/tui,/typebox,/updating,/voicewake,/web-fetch,/webchat,/webhook,/whatsapp,/windows,/wizard,/xiaomi,/zai`.split(`,`)),KD=new Set([`__openclaw`,`__openclaw__`,`_next`,`api`,`assets`,`avatar`,`manifest.json`,`media`,`res`,`socket.io`,`static`,`ws`,...fs]),qD=[[`plugins`,`diffs`],[`plugins`,`diffs-language-pack`]],JD=new Map,YD=PE()})))()}function ZD(e){let t=JSON.parse(e),n=Object.create(null);if(t.avatars&&typeof t.avatars==`object`&&!Array.isArray(t.avatars))for(let[e,r]of Object.entries(t.avatars)){let t=yo(e),i=yo(r);t&&i&&(n[t]=i)}return n}function QD(e){let t=yo(e?.agentId);if(!t)return{avatar:null};let n=T();try{let e=n?.getItem(eO);return e?{avatar:ZD(e)[t]??null}:{avatar:null}}catch{return{avatar:null}}}async function $D(e,t){let n=await wt(e,t);if(!n)return null;let r=at(n),i=QD({agentId:r.agentId}).avatar;return i?{...r,avatar:i,avatarSource:i,avatarStatus:`data`,avatarReason:null}:r}var eO;function tO(){return(tO=e((()=>{lt(),st(),eO=`openclaw.control.assistant.v1`})))()}function nO(e,t=``,n,r,i){let a=new URLSearchParams({source:e}),o=n?.trim();return o&&a.set(`mediaTicket`,o),r?.sessionKey&&a.set(`sessionKey`,r.sessionKey),r?.agentId&&a.set(`agentId`,r.agentId),i&&a.set(`filename`,i),`${bo(t)}/__openclaw__/assistant-media?${a.toString()}`}function rO(){return(rO=e((()=>{po()})))()}function iO(e,t){e instanceof Ts&&e.updateComplete.then(()=>{let n=e.shadowRoot?.querySelector(`[role="tablist"]`);e.isConnected&&n instanceof HTMLElement&&n.setAttribute(`aria-label`,t)})}function aO(){return(aO=e((()=>{Es(),ks(),js()})))()}function oO(e){e.currentTarget instanceof Element&&e.currentTarget.previousElementSibling?.setAttribute(`aria-expanded`,String(e.type===`wa-show`))}function sO(e){if(!(e instanceof ws)||cO.has(e))return;cO.add(e);let t=()=>{let t=e.dialog;if(!e.isConnected||!t)return;let n=e.ariaLabelledByElements,r=e.getAttribute(`aria-label`)?.trim();t.ariaLabel=r||null,t.ariaLabelledByElements=n?.length?n:!r&&e.anchor?[e.anchor]:null},n=new MutationObserver(t);e.addController({hostConnected(){n.observe(e,{attributes:!0,attributeFilter:[`aria-label`,`aria-labelledby`]}),e.updateComplete.then(t)},hostUpdated:t,hostDisconnected(){n.disconnect()}}),t()}var cO;function lO(){return(lO=e((()=>{Is(),cO=new WeakSet})))()}function uO(e,t){let n=e,r=t;for(;r!==0;)[n,r]=[r,n%r];return n}function dO(e,t,n){let r=he(`${e}:offset`)%n,i=n===1?0:1+he(`${e}:stride`)%(n-1);for(;uO(i,n)!==1;)i=i%(n-1)+1;return(r+t*i)%n}var fO,pO,mO,hO;function gO(){return(gO=e((()=>{R(),B(),k(),oy(),fO=[`shelling`,`scuttling`,`clawing`,`pinching`,`molting`,`bubbling`,`tiding`,`reefing`,`cracking`,`sifting`,`brining`,`nautiling`,`krilling`,`barnacling`,`lobstering`,`tidepooling`,`pearling`,`snapping`,`surfacing`],pO=3e4,mO=45e3,hO=class extends ay{constructor(...e){super(...e),this.startMs=null,this.seed=``}get ticking(){return this.startMs!=null&&this.phrases?.length!==0}currentLabel(){if(this.startMs==null||this.phrases?.length===0)return;let e=Date.now()-this.startMs;if(e<pO)return;let t=e-pO,n=Math.floor(t/mO),r=dO(this.seed,n,this.phrases?.length??fO.length);return this.phrases?this.phrases[r]:N(`chat.progressLabels.${fO[r]}`)}render(){return this.label===void 0?I:L`<span>·</span> ${this.label}…`}},U([V({type:Number})],hO.prototype,`startMs`,void 0),U([V()],hO.prototype,`seed`,void 0),U([V({attribute:!1})],hO.prototype,`phrases`,void 0),customElements.get(`openclaw-working-phrase`)||customElements.define(`openclaw-working-phrase`,hO)})))()}function _O(){return{floatOffset:0,antennaDegrees:0,antennaDroop:0,leftClawDegrees:0,rightClawDegrees:0,eyeGlowOpacity:1,glowScale:1,leftEyeOpenness:1,rightEyeOpenness:1,happyEyes:0,gaze:{x:0,y:0},mouthCurve:0,mouthOpen:0,mouthRound:0,hardHat:0,bodyTilt:0,bodyStretch:1,effect:`none`,effectPhase:0}}function X(e,t=0,n=1){return Math.min(Math.max(e,t),n)}function vO(e){let t=X(e);return t*t*(3-2*t)}function yO(e){let t=X(e);return vO(t<.5?t*2:(1-t)*2)}function bO(e){return e.floatOffset=X(e.floatOffset,-12,2),e.antennaDegrees=X(e.antennaDegrees,-14,14),e.antennaDroop=X(e.antennaDroop,0,1),e.leftClawDegrees=X(e.leftClawDegrees,-45,45),e.rightClawDegrees=X(e.rightClawDegrees,-45,45),e.eyeGlowOpacity=X(e.eyeGlowOpacity,0,1),e.glowScale=X(e.glowScale,.5,1.6),e.leftEyeOpenness=X(e.leftEyeOpenness,0,1),e.rightEyeOpenness=X(e.rightEyeOpenness,0,1),e.happyEyes=X(e.happyEyes,0,1),e.gaze.x=X(e.gaze.x,-1.2,1.2),e.gaze.y=X(e.gaze.y,-1.2,1.2),e.mouthCurve=X(e.mouthCurve,-1,1),e.mouthOpen=X(e.mouthOpen,0,1),e.mouthRound=X(e.mouthRound,0,1),e.hardHat=X(e.hardHat,0,1),e.bodyTilt=X(e.bodyTilt,-8,8),e.bodyStretch=X(e.bodyStretch,.86,1.05),e}function xO(e){let t=_O();switch(e){case`idle`:case`curious`:case`attentive`:break;case`thinking`:t.gaze={x:.3,y:-.5};break;case`working`:t.hardHat=1,t.rightClawDegrees=-28,t.gaze={x:.4,y:.35},t.mouthCurve=.15,t.bodyTilt=2;break;case`happy`:t.mouthCurve=.6,t.happyEyes=.4;break;case`celebrating`:t.mouthCurve=.9,t.mouthOpen=.4,t.happyEyes=.8,t.leftClawDegrees=30,t.rightClawDegrees=-30;break;case`sad`:t.antennaDroop=.75,t.mouthCurve=-.55,t.eyeGlowOpacity=.6,t.gaze={x:0,y:.5};break;case`sleepy`:t.leftEyeOpenness=.25,t.rightEyeOpenness=.25,t.eyeGlowOpacity=.5,t.antennaDroop=.35}return t}function SO(e){return e?wO:CO}var CO,wO;function TO(){return(TO=e((()=>{CO={gradientTop:`#ff4d4d`,gradientBottom:`#991b1b`,antenna:`#ff4d4d`},wO={gradientTop:`#ff7079`,gradientBottom:`#ea4c59`,antenna:`#ef4b58`}})))()}function Z(e,t){let n=e/t%1;return n<0?n+1:n}function EO(e,t,n){let r=X(e);return r<t?vO(r/t):r>n?vO((1-r)/(1-n)):1}var DO,OO,kO,Q,AO,jO,MO,NO,PO;function FO(){return(FO=e((()=>{TO(),DO=(1n<<64n)-1n,OO=11400714819323198485n,kO=2685821657736338717n,Q=Math.PI*2,AO=.16,jO={wave:1.5,hop:.7,celebrate:2.4,sigh:1.8,yawn:2,wipeBrow:2,clawSnap:.6,donHardHat:1},MO={idle:null,curious:null,thinking:null,attentive:null,happy:`hop`,celebrating:`celebrate`,sad:`sigh`,sleepy:`yawn`,working:`donHardHat`},NO=class{constructor(e){let t=BigInt.asUintN(64,BigInt(e));this.state=t===0n?OO:t}next(){return this.state^=this.state>>12n,this.state=BigInt.asUintN(64,this.state),this.state^=this.state<<25n,this.state=BigInt.asUintN(64,this.state),this.state^=this.state>>27n,this.state=BigInt.asUintN(64,this.state),this.state*kO&DO}unit(){return Number(this.next()>>11n)/9007199254740992}},PO=class{constructor(e=BigInt(Date.now())){this.currentMood=`idle`,this.startTime=null,this.lastPoseTime=0,this.activeGesture=null,this.activeGestureStart=0,this.pendingGesture=null,this.pendingGestureAt=0,this.nextBlinkAt=0,this.pendingDoubleBlink=!1,this.blinkStarts=[],this.nextGlanceAt=0,this.gazeHoldUntil=0,this.gazeTarget={x:0,y:0},this.currentGaze={x:0,y:0},this.nextClawSnapAt=0,this.nextMoodBeatAt=0,this.teaseActive=!1,this.teaseChangedAt=0,this.rng=new NO(e)}setMood(e,t){if(e===this.currentMood)return;this.currentMood=e,this.pendingGesture=null,this.activeGesture=null,this.rescheduleMoodBeat(t);let n=MO[e];n&&this.startGesture(n,t)}setTease(e,t){this.teaseActive=e,this.teaseChangedAt=t}poseAt(e){this.startTime===null&&this.begin(e);let t=X(e-this.lastPoseTime,0,.1);this.lastPoseTime=e,this.advanceSchedules(e);let n=this.basePose(this.currentMood,e);if(this.applyGaze(n,this.currentMood,e,t),this.applyBlinks(n,e),this.activeGesture){let t=(e-this.activeGestureStart)/jO[this.activeGesture];t>=1?this.activeGesture=null:this.applyGesture(this.activeGesture,n,t)}return this.teaseActive&&e>=this.teaseChangedAt&&(n.mouthRound=Math.max(n.mouthRound,.5),n.gaze={x:0,y:.6}),bO(n)}begin(e){this.startTime=e,this.lastPoseTime=e,this.nextBlinkAt=e+this.random(.8,2.4),this.nextGlanceAt=e+this.random(1.5,4),this.nextClawSnapAt=e+this.random(2,5),this.rescheduleMoodBeat(e),(this.currentMood===`idle`||this.currentMood===`curious`||this.currentMood===`happy`)&&(this.pendingGesture=`wave`,this.pendingGestureAt=e+.9)}advanceSchedules(e){if(e>=this.nextBlinkAt&&(this.blinkStarts.push(e),this.pendingDoubleBlink?(this.pendingDoubleBlink=!1,this.nextBlinkAt=e+this.blinkInterval()):this.random(0,1)<.14?(this.pendingDoubleBlink=!0,this.nextBlinkAt=e+.34):this.nextBlinkAt=e+this.blinkInterval()),this.blinkStarts=this.blinkStarts.filter(t=>e-t<=AO),e>=this.nextGlanceAt?(this.gazeTarget=this.randomGlanceTarget(),this.gazeHoldUntil=e+this.random(.7,1.9),this.nextGlanceAt=this.gazeHoldUntil+this.glanceInterval()):e>=this.gazeHoldUntil&&(this.gazeTarget={x:0,y:0}),e>=this.nextClawSnapAt&&(this.activeGesture===null&&this.currentMood!==`sad`&&this.currentMood!==`working`&&this.startGesture(`clawSnap`,e),this.nextClawSnapAt=e+this.random(4,9)),e>=this.nextMoodBeatAt&&(this.activeGesture===null&&(this.currentMood===`sad`?this.startGesture(`sigh`,e):this.currentMood===`sleepy`?this.startGesture(`yawn`,e):this.currentMood===`working`&&this.startGesture(`wipeBrow`,e)),this.rescheduleMoodBeat(e)),this.pendingGesture&&e>=this.pendingGestureAt&&this.activeGesture===null){let t=this.pendingGesture;this.pendingGesture=null,this.startGesture(t,e)}}basePose(e,t){let n=_O();switch(e){case`idle`:n.floatOffset=-4.8*(1-Math.cos(Q*Z(t,4))),n.antennaDegrees=-3*Math.sin(Q*Z(t,2));break;case`curious`:n.floatOffset=-4.2*(1-Math.cos(Q*Z(t,3.4))),n.antennaDegrees=-4*Math.sin(Q*Z(t,1.7)),n.bodyTilt=1.6*Math.sin(Q*Z(t,5.2));break;case`thinking`:n.floatOffset=-3.2*(1-Math.cos(Q*Z(t,5))),n.antennaDegrees=-5*Math.sin(Q*Z(t,1.3)),n.bodyTilt=2*Math.sin(Q*Z(t,6)),n.eyeGlowOpacity=.9+.1*Math.sin(Q*Z(t,.8));break;case`working`:{let e=Z(t,.95);if(e<.05)n.rightClawDegrees=-6;else if(e<.6)n.rightClawDegrees=-6-28*vO((e-.05)/.55);else if(e<.72){let t=X((e-.6)/.12);n.rightClawDegrees=-34+46*t*t}else n.rightClawDegrees=12-18*vO((e-.72)/.28);n.leftClawDegrees=4+2*Math.sin(Q*e);let r=yO(X((e-.72)/.14));if(n.floatOffset=-2*(1-Math.cos(Q*Z(t,3.8)))+.8*r,n.bodyStretch=1-.03*r,n.bodyTilt=2.2+.6*Math.sin(Q*Z(t,5)),e>=.72){let t=X((e-.72)/.28);n.antennaDegrees=6*(1-t)*Math.sin(t*3*Math.PI)}n.leftEyeOpenness=.85,n.rightEyeOpenness=.85,n.mouthCurve=.18,n.hardHat=1,n.effect=`sparks`;let i=(e-.72)%1;n.effectPhase=i<0?i+1:i;break}case`happy`:n.floatOffset=-6*(1-Math.cos(Q*Z(t,3))),n.antennaDegrees=-4.5*Math.sin(Q*Z(t,1.6)),n.mouthCurve=.55+.1*Math.sin(Q*Z(t,3)),n.happyEyes=.35;break;case`celebrating`:{let e=Math.abs(Math.sin(Q*Z(t,1.6)));n.floatOffset=-9*e,n.bodyStretch=1+.03*e,n.antennaDegrees=-6*Math.sin(Q*Z(t,.8));let r=Math.sin(Q*Z(t,.9));n.leftClawDegrees=20+8*r,n.rightClawDegrees=-20+8*r,n.mouthCurve=.9,n.mouthOpen=.35,n.happyEyes=.7,n.glowScale=1.1,n.effect=`sparkles`,n.effectPhase=Z(t,2.2);break}case`sad`:n.floatOffset=-2.4*(1-Math.cos(Q*Z(t,5.5))),n.antennaDegrees=-1.5*Math.sin(Q*Z(t,3)),n.antennaDroop=.75,n.mouthCurve=-.55,n.eyeGlowOpacity=.6;break;case`sleepy`:n.floatOffset=-2*(1-Math.cos(Q*Z(t,6))),n.antennaDroop=.35,n.leftEyeOpenness=.22+.08*Math.sin(Q*Z(t,3)),n.rightEyeOpenness=n.leftEyeOpenness,n.eyeGlowOpacity=.5,n.mouthRound=.15,n.bodyTilt=2.5*Math.sin(Q*Z(t,6)),n.effect=`zzz`,n.effectPhase=Z(t,3);break;case`attentive`:n.floatOffset=-3*(1-Math.cos(Q*Z(t,4))),n.antennaDegrees=-2.5*Math.sin(Q*Z(t,2)),n.mouthCurve=.25}return n}applyGaze(e,t,n,r){let i=this.gazeTarget;switch(t){case`thinking`:i={x:.4*Math.sin(Q*Z(n,3.8)),y:-.55};break;case`working`:i={x:.55+.04*Math.sin(Q*Z(n,4.6)),y:.45+.02*Math.cos(Q*Z(n,3.9))};break;case`attentive`:i={x:i.x*.5,y:.35};break;case`sad`:i={x:i.x*.3,y:.5};break;case`sleepy`:i={x:0,y:.4}}let a=1-Math.exp(-r*9);this.currentGaze.x+=(i.x-this.currentGaze.x)*a,this.currentGaze.y+=(i.y-this.currentGaze.y)*a,e.gaze={...this.currentGaze}}applyBlinks(e,t){if(!(e.happyEyes>=.6))for(let n of this.blinkStarts){let r=(t-n)/AO;if(r<0||r>1)continue;let i=yO(r);e.leftEyeOpenness=Math.min(e.leftEyeOpenness,1-i),e.rightEyeOpenness=Math.min(e.rightEyeOpenness,1-i),e.eyeGlowOpacity*=Math.max(.3,1-i)}}applyGesture(e,t,n){let r=X(n);switch(e){case`wave`:{let e=EO(r,.18,.82);t.rightClawDegrees+=e*(-28+9*Math.sin(r*6*Math.PI)),t.bodyTilt+=-2*e,t.mouthCurve=Math.max(t.mouthCurve,.5*e);break}case`hop`:{let e=yO(X((r-.2)/.6));t.floatOffset+=-9*e,t.bodyStretch+=.045*e-.1*yO(X(r/.2))-.06*yO(X((r-.82)/.18)),t.mouthCurve=Math.max(t.mouthCurve,.4*e);break}case`celebrate`:{let e=EO(r,.12,.88),n=Math.abs(Math.sin(r*4*Math.PI));t.floatOffset+=-11*n*e,t.bodyStretch+=.035*n*e,t.leftClawDegrees+=38*e,t.rightClawDegrees+=-38*e,t.happyEyes=Math.max(t.happyEyes,e),t.mouthCurve=Math.max(t.mouthCurve,e),t.mouthOpen=Math.max(t.mouthOpen,.6*yO(r)),t.antennaDroop=0,t.glowScale=Math.max(t.glowScale,1+.2*e),t.effect=`sparkles`,t.effectPhase=r;break}case`sigh`:{let e=vO(X(r/.3)),n=vO(X((r-.3)/.45));t.bodyStretch+=.025*e-.08*n*(1-X((r-.85)/.15)),t.gaze={x:t.gaze.x,y:.5*n},t.antennaDroop=Math.min(1,t.antennaDroop+.15*n);break}case`yawn`:{let e=EO(r,.3,.75);t.mouthRound=Math.max(t.mouthRound,.9*e),t.leftEyeOpenness=Math.min(t.leftEyeOpenness,1-.9*e),t.rightEyeOpenness=Math.min(t.rightEyeOpenness,1-.9*e),t.bodyStretch+=.03*e,t.bodyTilt+=-2*e;break}case`clawSnap`:t.leftClawDegrees+=-8*yO(X(r/.7)),t.rightClawDegrees+=-8*yO(X((r-.25)/.7));break;case`donHardHat`:{let e=vO(X(r/.55));t.hardHat=Math.min(t.hardHat,e),r<.55&&(t.gaze={x:0,y:-.9*(1-r)}),t.bodyStretch-=.04*yO(X((r-.5)/.2));let n=yO(X((r-.7)/.3));t.leftClawDegrees+=-8*n,t.rightClawDegrees+=8*n;break}case`wipeBrow`:{let e=EO(r,.2,.8);t.leftClawDegrees*=1-e,t.rightClawDegrees*=1-e,t.leftClawDegrees+=38*e*(.9+.1*Math.sin(r*5*Math.PI)),t.bodyTilt*=1-e,t.bodyStretch+=.02*e,t.happyEyes=Math.max(t.happyEyes,.7*e),t.mouthCurve=Math.max(t.mouthCurve,.5*e),t.gaze={x:t.gaze.x*(1-e),y:t.gaze.y*(1-e)},t.effect=`sweat`,t.effectPhase=r;break}}}startGesture(e,t){this.activeGesture=e,this.activeGestureStart=t}random(e,t){return e+(t-e)*this.rng.unit()}blinkInterval(){return this.currentMood===`attentive`?this.random(1.8,4):this.random(2.2,5.5)}glanceInterval(){return this.currentMood===`curious`?this.random(1.6,4):this.currentMood===`thinking`?this.random(1.2,3):this.random(3,8)}randomGlanceTarget(){let e=this.random(.5,1),t=this.random(0,Q);return{x:Math.cos(t)*e,y:Math.sin(t)*e*.6}}rescheduleMoodBeat(e){this.nextMoodBeatAt=e+this.random(6,12)}}})))()}function IO(){return tk||(tk={body:{path:new Path2D(`M60 10 C30 10 15 35 15 55 C15 75 30 95 45 100 L45 110 L55 110 L55 100 C55 100 60 102 65 100 L65 110 L75 110 L75 100 C90 95 105 75 105 55 C105 35 90 10 60 10 Z`),bounds:{minX:15,minY:10,maxX:105,maxY:110}},leftClaw:{path:new Path2D(`M20 45 C5 40 0 50 5 60 C10 70 20 65 25 55 C28 48 25 45 20 45 Z`),bounds:{minX:3.125,minY:43.67006838144548,maxX:26.196938456699073,maxY:65.45084971874738}},rightClaw:{path:new Path2D(`M100 45 C115 40 120 50 115 60 C110 70 100 65 95 55 C92 48 95 45 100 45 Z`),bounds:{minX:93.80306154330093,minY:43.67006838144548,maxX:116.875,maxY:65.45084971874738}},leftAntenna:new Path2D(`M45 15 Q35 5 30 8`),rightAntenna:new Path2D(`M75 15 Q85 5 90 8`)},tk)}function LO(e,t,n){let{bounds:r}=t,i=e.createLinearGradient(r.minX,r.minY,r.maxX,r.maxY);return i.addColorStop(0,n.gradientTop),i.addColorStop(1,n.gradientBottom),i}function RO(e){return e*Math.PI/180}function zO(e,t,n,r){e.save(),e.translate(n.x,n.y),e.rotate(RO(t)),e.translate(-n.x,-n.y),r(),e.restore()}function BO(e,t,n){let r=new Path2D;return r.ellipse(e.x,e.y,t,n,0,0,YO),r}function VO(e,t,n,r){let i={x:t.x+r.gaze.x*2,y:t.y+r.gaze.y*1.5};if(r.happyEyes<1){let t=Math.max(1.2,12*n*(1-.6*r.happyEyes));e.save(),e.globalAlpha*=1-r.happyEyes,e.fillStyle=XO,e.fill(BO({x:i.x,y:i.y-6+(12-t)*.65+t/2},6,t/2)),e.restore()}if(r.happyEyes>0){let t=new Path2D;t.moveTo(i.x-6,i.y+2),t.quadraticCurveTo(i.x,i.y-5.5,i.x+6,i.y+2),e.save(),e.globalAlpha*=r.happyEyes,e.strokeStyle=XO,e.lineWidth=2.6,e.lineCap=`round`,e.stroke(t),e.restore()}let a=r.eyeGlowOpacity*n*(1-r.happyEyes);if(a<=.01)return;let o=2*r.glowScale,s={x:i.x+1+r.gaze.x*1.2,y:i.y-1+r.gaze.y*.9};e.save(),e.globalAlpha*=a,e.fillStyle=ZO,e.fill(BO(s,o,o)),e.restore()}function HO(e,t){if(e.fillStyle=XO,e.strokeStyle=XO,e.lineCap=`round`,t.mouthRound>.05){let n=1+3.2*t.mouthRound,r=1+4.2*t.mouthRound;e.fill(BO({x:60,y:51},n,r));return}if(t.mouthOpen>.05){let n=new Path2D;n.moveTo(52.5,48.5),n.quadraticCurveTo(60,48.5+14*t.mouthOpen,67.5,48.5),n.closePath(),e.fill(n);return}if(Math.abs(t.mouthCurve)<=.05)return;let n=new Path2D;n.moveTo(52.5,49),n.quadraticCurveTo(60,49+8*t.mouthCurve,67.5,49),e.lineWidth=2.2,e.stroke(n)}function UO(e,t){if(t<=.01)return;let n=new Path2D(`M45 15 C47 7 54 3 60 3 C66 3 73 7 75 15 L45 15 Z`),r=new Path2D(`M43 14 L77 14 Q79 14 79 16 L79 17 Q79 19 77 19 L43 19 Q41 19 41 17 L41 16 Q41 14 43 14 Z`);e.save(),e.globalAlpha*=t,e.translate(60,15-14*(1-t)),e.rotate(RO(-5)),e.translate(-60,-15);let i=e.createLinearGradient(60,3,60,16);i.addColorStop(0,$O),i.addColorStop(1,QO),e.fillStyle=i,e.fill(n),e.strokeStyle=ek,e.lineWidth=.8,e.stroke(n),e.fillStyle=QO,e.fill(r),e.stroke(r),e.restore()}function WO(e,t){let n=new Path2D;n.moveTo(e.x,e.y-t);for(let[r,i]of[[1,0],[0,1],[-1,0],[0,-1]])n.quadraticCurveTo(e.x,e.y,e.x+t*r,e.y+t*i);return n.closePath(),n}function GO(e,t,n,r){let i=new Path2D,a=n*.62,o=n*.78;i.moveTo(t.x-a/2,t.y-o/2),i.lineTo(t.x+a/2,t.y-o/2),i.lineTo(t.x-a/2,t.y+o/2),i.lineTo(t.x+a/2,t.y+o/2),e.save(),e.globalAlpha*=r*.9,e.strokeStyle=ZO,e.lineWidth=Math.max(1.2,n*.16),e.lineCap=`round`,e.lineJoin=`round`,e.stroke(i),e.restore()}function KO(e,t,n){switch(t.effect){case`none`:return;case`sparkles`:for(let r=0;r<6;r+=1){let i=yO((t.effectPhase+r*.37)%1);if(i<=.05)continue;let a=Math.PI+Math.PI*(r+.5)/6,o={x:60+Math.cos(a)*(50+r%3*4),y:55+Math.sin(a)*(40+r*5%3*4)};e.save(),e.globalAlpha*=i,e.fillStyle=r%2==0?ZO:n.antenna,e.fill(WO(o,2.5+2*i)),e.restore()}return;case`zzz`:for(let n=0;n<3;n+=1){let r=(t.effectPhase+n*.33)%1,i=r<.2?r/.2:1-(r-.2)/.8;i<=.05||GO(e,{x:86+14*r+2*Math.sin(r*4*Math.PI),y:24-20*r},6+4*r,i)}return;case`sparks`:for(let n=0;n<5;n+=1){let r=t.effectPhase-n*.025;if(r<0||r>=.45)continue;let i=r<.08?r/.08:1-(r-.08)/.37,a=RO(-160+n*35),o=5+12*r/.45,s=2.2+n%3*.8,c={x:X(106+Math.cos(a)*o,s,JO-s),y:X(66+Math.sin(a)*o,s,JO-s)};e.save(),e.globalAlpha*=i,e.fillStyle=n%2==0?ZO:QO,e.fill(WO(c,s)),e.restore()}return;case`sweat`:{let n=yO(t.effectPhase);if(n<=.02)return;let r={x:42,y:24+7*t.effectPhase},i=new Path2D;i.moveTo(r.x,r.y-3),i.bezierCurveTo(r.x-4,r.y+1,r.x-2,r.y+3,r.x,r.y+3),i.bezierCurveTo(r.x+2,r.y+3,r.x+4,r.y+1,r.x,r.y-3),e.save(),e.globalAlpha*=n,e.fillStyle=`#80d4ff`,e.fill(i),e.restore()}}}function qO(e,t,n,r){let i=IO();if(n.save(),n.scale(r/JO,r/JO),e.bodyStretch!==1){let t=X(1+(1-e.bodyStretch)*.5,.97,1.03);n.translate(60,110),n.scale(t,e.bodyStretch),n.translate(-60,-110)}e.bodyTilt!==0&&(n.translate(60,60),n.rotate(RO(e.bodyTilt)),n.translate(-60,-60)),n.fillStyle=LO(n,i.body,t),n.fill(i.body.path),zO(n,e.leftClawDegrees,{x:26,y:53},()=>{n.fillStyle=LO(n,i.leftClaw,t),n.fill(i.leftClaw.path)}),zO(n,e.rightClawDegrees,{x:94,y:53},()=>{n.fillStyle=LO(n,i.rightClaw,t),n.fill(i.rightClaw.path)});let a=e.antennaDegrees*(1-e.antennaDroop);n.strokeStyle=t.antenna,n.lineWidth=2,n.lineCap=`round`,zO(n,-e.antennaDroop*40,{x:45,y:15},()=>{zO(n,a,{x:37.5,y:11},()=>n.stroke(i.leftAntenna))}),zO(n,e.antennaDroop*40,{x:75,y:15},()=>{zO(n,a,{x:82.5,y:11},()=>n.stroke(i.rightAntenna))}),UO(n,e.hardHat),VO(n,{x:45,y:35},e.leftEyeOpenness,e),VO(n,{x:75,y:35},e.rightEyeOpenness,e),HO(n,e),KO(n,e,t),n.restore()}var JO,YO,XO,ZO,QO,$O,ek,tk;function nk(){return(nk=e((()=>{TO(),JO=120,YO=Math.PI*2,XO=`#050810`,ZO=`#00e5cc`,QO=`#f2a833`,$O=`#ffd659`,ek=`rgba(184, 115, 31, 0.7)`,tk=null})))()}function rk(){return performance.now()/1e3}var ik,ak,ok;function sk(){return(sk=e((()=>{R(),B(),ur(),FO(),nk(),TO(),ar(),op(),ik=120,ak=new Set([`idle`,`curious`,`thinking`,`working`,`happy`,`celebrating`,`sad`,`sleepy`,`attentive`]),ok=class extends ko{constructor(...e){super(...e),this.mood=`idle`,this.size=ik,this.tease=!1,this.animator=new PO,this.animationFrame=0,this.visible=!0,this.reducedMotion=!1,this.intersectionObserver=null,this.themeObserver=null,this.motionQuery=null,this.handleVisibilityChange=()=>this.syncPlayback(),this.handleMotionChange=e=>{this.reducedMotion=e.matches,this.syncPlayback()},this.renderAnimationFrame=e=>{this.animationFrame=0,this.shouldAnimate&&(this.drawCurrentFrame(e/1e3),this.animationFrame=window.requestAnimationFrame(this.renderAnimationFrame))}}static{this.styles=fi`
    :host {
      display: inline-block;
      width: var(--openclaw-mascot-size, 120px);
      height: var(--openclaw-mascot-size, 120px);
      overflow: visible;
      contain: layout style;
      pointer-events: none;
      line-height: 0;
    }

    canvas {
      display: block;
      width: 100%;
      height: 100%;
      will-change: transform;
    }

    .openclaw-mascot--neutral,
    .openclaw-mascot--neutral svg {
      display: block;
      width: 100%;
      height: 100%;
    }
  `}connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-hidden`,`true`),this.stopBranding=sr(()=>this.requestUpdate()),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),this.motionQuery=window.matchMedia?.(`(prefers-reduced-motion: reduce)`)??null,this.reducedMotion=this.motionQuery?.matches??!1,this.motionQuery?.addEventListener(`change`,this.handleMotionChange),typeof IntersectionObserver<`u`&&(this.intersectionObserver=new IntersectionObserver(e=>{this.visible=e.some(e=>e.isIntersecting),this.syncPlayback()}),this.intersectionObserver.observe(this)),typeof MutationObserver<`u`&&(this.themeObserver=new MutationObserver(()=>this.requestUpdate()),this.themeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme-mode`,`data-theme-mascot`]}))}disconnectedCallback(){this.stopAnimation(),this.stopBranding?.(),this.stopBranding=void 0,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),this.motionQuery?.removeEventListener(`change`,this.handleMotionChange),this.motionQuery=null,this.intersectionObserver?.disconnect(),this.intersectionObserver=null,this.themeObserver?.disconnect(),this.themeObserver=null,super.disconnectedCallback()}firstUpdated(){this.animator.setMood(this.resolvedMood,rk()),this.animator.setTease(this.tease,rk()),this.drawCurrentFrame(rk()),this.syncPlayback()}updated(e){e.has(`size`)&&this.style.setProperty(`--openclaw-mascot-size`,`${this.resolvedSize}px`),e.has(`mood`)&&this.animator.setMood(this.resolvedMood,rk()),e.has(`tease`)&&this.animator.setTease(this.tease,rk()),this.drawCurrentFrame(rk()),this.syncPlayback()}render(){return br().brandIcon===`claw`?L`<canvas></canvas>`:L`<span class="openclaw-mascot--neutral"
          >${ip(Or,br(),Or)}</span
        >`}get resolvedMood(){return ak.has(this.mood)?this.mood:`idle`}get resolvedSize(){return Number.isFinite(this.size)&&this.size>0?this.size:ik}get shouldAnimate(){return this.isConnected&&br().brandIcon===`claw`&&this.visible&&!this.reducedMotion&&document.visibilityState!==`hidden`}syncPlayback(){let e=this.renderRoot.querySelector(`canvas`);if(!e||this.reducedMotion||!this.shouldAnimate){this.stopAnimation(),e&&this.reducedMotion&&this.drawPose(xO(this.resolvedMood));return}this.animationFrame===0&&(this.animationFrame=window.requestAnimationFrame(this.renderAnimationFrame))}stopAnimation(){this.animationFrame!==0&&(window.cancelAnimationFrame(this.animationFrame),this.animationFrame=0)}drawCurrentFrame(e){this.drawPose(this.reducedMotion?xO(this.resolvedMood):this.animator.poseAt(e))}drawPose(e){let t=this.renderRoot.querySelector(`canvas`);if(!(t instanceof HTMLCanvasElement)||typeof Path2D>`u`)return;let n=t.getContext(`2d`);if(!n)return;let r=this.resolvedSize,i=Math.max(1,window.devicePixelRatio||1),a=Math.round(r*i);(t.width!==a||t.height!==a)&&(t.width=a,t.height=a),n.setTransform(i,0,0,i,0,0),n.clearRect(0,0,r,r),qO(e,SO(document.documentElement.dataset.themeMode===`light`),n,r),t.style.transform=`translate3d(0, ${e.floatOffset*r/120}px, 0)`}},U([V({reflect:!0})],ok.prototype,`mood`,void 0),U([V({type:Number})],ok.prototype,`size`,void 0),U([V({type:Boolean})],ok.prototype,`tease`,void 0),customElements.get(`openclaw-mascot`)||customElements.define(`openclaw-mascot`,ok)})))()}function ck(e){let{snapshot:t,session:n,batchRows:r=null,cloudWorkerStopAction:i}=e,a=e=>{let n=b(t,e);return n.allowed?void 0:n.reason},o=a({method:`sessions.setInvolvement`,requiredScope:`operator.read`}),s=(e,t=!1)=>a({method:`sessions.patch`,params:{key:n.key,...e},sessionScope:t,session:n}),c=s({label:null},!0),l=s({pinned:!0},!0),u=s({icon:null}),d=s({color:null}),f=r?Pe(r):n,p=(e,t=!1)=>r?a({method:`sessions.patchMany`,sessionScope:t,session:f,params:{patch:e}}):s(e,t),m=p({unread:!0}),h=p({category:null}),g=(r??[n]).some(e=>!e.sessionId?.trim())?`Session lifecycle action requires a durable session identity.`:p({archived:!0},!0),_=n.sessionId?.trim()?s({snoozedUntil:null},!0):`Session lifecycle action requires a durable session identity.`,v=a({method:`sessions.groups.put`,requiredScope:`operator.write`}),y=(r??[n]).map(e=>a({method:`sessions.delete`,params:{key:e.key,...e.sessionId?{expectedSessionId:e.sessionId}:{},...e.archived?{archivedOnly:!0}:{}}})).find(e=>!!e),x=r?void 0:a({method:`sessions.create`,params:{parentSessionKey:n.key,fork:!0}}),S=i?a(i):void 0;return{...l?{"toggle-pin":l}:{},..._?{snooze:_,wake:_}:{},...c?{rename:c}:{},...u?{"set-icon":u}:{},...d?{"set-color":d}:{},...n.pinnable===!1?{"toggle-pin":N(`sessionsView.pinRootSessionsOnly`)}:{},...m?{"toggle-unread":m}:{},...o?{"toggle-involving-me":o}:{},...h?{"move-to-group":h}:{},...g?{"toggle-archived":g}:{},...v||h?{"new-group":v??h}:{},...x?{fork:x}:{},...S?{"stop-cloud-worker":S}:{},...y?{delete:y}:{}}}function lk(){return(lk=e((()=>{k(),ke()})))()}function uk(e){if(e.querySelector(`.agent-chat__composer-combobox`))return{cancel:()=>void 0,ready:Promise.resolve()};let{promise:t,resolve:n}=cs(),r=()=>n();return e.addEventListener(oe,r,{once:!0}),{cancel:()=>e.removeEventListener(oe,r),ready:t}}async function dk(e){let{document:t,navigate:n,prefersReducedMotion:r,router:i,signal:a,to:o}=e,s=t.querySelector(`openclaw-router-outlet`),c=uk(t),l=!1,u,{promise:d,resolve:f}=cs(),p=()=>{l||(l=!0,u?.cancel(),f())},m=()=>{};a?.addEventListener(`abort`,p,{once:!0});try{if(a?.aborted)return;let e=n(),t=i.getState().location.pathname,f=()=>{let e=i.getState();((e.pendingMatches[0]??e.matches[0])?.routeId!==o||e.location.pathname!==t)&&p()};if(m=i.subscribe(f),f(),await Promise.race([(async()=>{await e,await s?.updateComplete,await c.ready})(),d]),l||r)return;u=s?.animate?.(pk,mk),await Promise.race([u?.finished.catch(()=>void 0),d])}finally{m(),a?.removeEventListener(`abort`,p),c.cancel()}}async function fk(e){let{from:t,navigate:n,to:r}=e;return t!==`new-session`||r!==`chat`?n():dk(e)}var pk,mk;function hk(){return(hk=e((()=>{xo(),f(),pk=[{transform:`translateY(5px) scale(0.997)`},{transform:`none`}],mk={duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`}})))()}function gk(e,t={}){let n=[`settings-page`,t.wide?`settings-page--wide`:``,t.carapace?`oc-app-surface`:``].filter(Boolean).join(` `);return L`<div
    class=${n}
    ${Ir({settingsPage:!0,settingsWide:t.wide})}
  >
    ${e}
  </div>`}function _k(e,t){return L`<a href=${e} target=${Ga} rel=${ea()}
    >${t}</a
  >`}function vk(e){let t=e.icon===`info`?F.info:F.circleQuestionMark;return L`
    <openclaw-tooltip .content=${e.tooltip}>
      <button
        id=${e.id}
        type="button"
        class="settings-section__help-button"
        aria-label=${e.label}
        aria-controls=${e.popoverId}
        aria-haspopup="dialog"
      >
        <span aria-hidden="true">${t}</span>
      </button>
    </openclaw-tooltip>
  `}function yk(e){return L`<a
    class="learn-more-link"
    href=${e}
    target=${Ga}
    rel=${ea()}
    >${N(`common.learnMore`)}</a
  >`}function bk(e){return L`
    <section
      class="content-header content-header--settings"
      ${Ir({toolbarHeader:!0})}
    >
      <div>
        <h1 class="page-title">${e.title}</h1>
        ${e.subtitle?L`<div class="page-subtitle">${e.subtitle}</div>`:I}
      </div>
      ${e.actions&&e.actions!==I?L`<div class="page-header-actions">${e.actions}</div>`:I}
    </section>
  `}function xk(e,t){let n=e.description?L`<p class="settings-section__desc">${e.description}</p>`:I,r=e.title||e.description?L`
          <div
            class="settings-section__copy ${e.carapace?`oc-settings-section-heading`:``}"
          >
            ${e.title?L`
                    <h2
                      class="settings-section__heading ${e.carapace?`oc-settings-section-title`:``}"
                    >
                      ${e.title}${e.count===void 0?I:L` <span class="settings-count">${e.count}</span>`}
                    </h2>
                  `:I}
            ${n}
          </div>
        `:I,i=r||e.actions?L`
          <div
            class="settings-section__header ${e.carapace?`oc-settings-section-header`:``}"
          >
            ${r}
            ${e.actions?L`<div class="settings-section__actions">${e.actions}</div>`:I}
          </div>
        `:I;return L`
    <section class="settings-section ${e.carapace?`oc-settings-section`:``}">
      ${i} ${e.notice??I} ${Ck(t,e)}
    </section>
  `}function Sk(e){return L`<dl class="settings-summary">
    ${e.map(e=>L`<div class="settings-group settings-summary__tile">
        <dt>${e.label}</dt>
        <dd>${e.value}</dd>
      </div>`)}
  </dl>`}function Ck(e,t={}){let n=[`settings-group`,t.danger?`settings-group--danger`:``,t.carapace?`oc-settings-group`:``].filter(Boolean).join(` `);return L`<div class=${n}>${e}</div>`}function wk(e,t,n=!1){return L`
    <div class="settings-row__text ${n?`oc-settings-row-content`:``}">
      <span class="settings-row__title ${n?`oc-settings-row-title`:``}">${e}</span>
      ${t?L`<span class="settings-row__desc ${n?`oc-settings-row-description`:``}"
              >${t}</span
            >`:I}
    </div>
  `}function Tk(e){let t=[`settings-row`,e.stacked?`settings-row--stacked`:``,e.stackedOnNarrow?`settings-row--stacked-on-narrow`:``,e.carapace?`oc-settings-row${e.stacked?` oc-settings-row-stacked`:``}`:``].filter(Boolean).join(` `);return L`
    <div class=${t} role=${e.role??I}>
      ${wk(e.title,e.description,e.carapace)}
      ${e.control!==void 0&&e.control!==I?L`<div
              class="settings-row__control ${e.carapace?`oc-settings-row-control`:``}"
            >
              ${e.control}
            </div>`:I}
    </div>
  `}function Ek(e){return L`
    <button type="button" class="settings-row settings-row--nav" @click=${e.onClick}>
      ${wk(e.title,e.description)}
      <div class="settings-row__control">
        ${e.control??I}
        <span class="settings-row__chevron">${F.chevronRight}</span>
      </div>
    </button>
  `}function Dk(e){return L`
    <wa-switch
      class="settings-toggle"
      size="s"
      .checked=${mi(e.checked)}
      ?disabled=${e.disabled??!1}
      aria-disabled="false"
      @change=${t=>{let n=t.currentTarget;e.onChange(n.checked)===!1&&(n.checked=e.checked)}}
    >
      <span class="settings-control__sr-label">${e.ariaLabel}</span>
    </wa-switch>
  `}function Ok(e){let t=t=>{if(!t.composedPath().some(e=>e instanceof HTMLInputElement)||t instanceof KeyboardEvent&&t.key!==`ArrowLeft`&&t.key!==`ArrowRight`)return;let n=t.currentTarget.checked;n!==e.checked&&e.onAct?.(n)};return L`
    <div
      class="settings-row settings-row--toggle"
      @click=${t=>{let n=t.target;if(e.disabled||n instanceof Element&&n.closest(`wa-switch`)!==null)return;let r=!e.checked;e.onAct?.(r),e.onChange(r)}}
    >
      ${e.icon??I} ${wk(e.title,e.description)}
      <div class="settings-row__control">
        <wa-switch
          class="settings-toggle"
          size="s"
          .checked=${mi(e.checked)}
          ?disabled=${e.disabled??!1}
          @click=${t}
          @keydown=${t}
          @change=${t=>{let n=t.currentTarget;e.onChange(n.checked)===!1&&(n.checked=e.checked)}}
        >
          <span class="settings-control__sr-label">${e.ariaLabel??e.title}</span>
        </wa-switch>
      </div>
    </div>
  `}function kk(e,t){return t?L`${N(`configForm.defaultValue`,{value:e})}`:void 0}function Ak(e){return e.mode===`buttons`?L`<div
      class="settings-segmented ${e.variant?`settings-segmented--${e.variant}`:``} ${e.className??``}"
      role=${e.ariaLabel?`group`:I}
      aria-label=${e.ariaLabel??I}
    >
      ${e.options.map(t=>L`<button
          type="button"
          class="settings-segmented__btn ${t.value===e.value?`settings-segmented__btn--active`:``} ${e.variant===`accent`?`btn btn--sm`:``}"
          aria-pressed=${e.ariaPressed===!1?I:String(t.value===e.value)}
          aria-label=${t.ariaLabel??I}
          data-compact-label=${t.compactLabel??I}
          data-test-id=${t.testId??I}
          title=${t.title??I}
          ?disabled=${e.disabled||t.disabled}
          @click=${n=>{e.onClick?.(n,t.value),!(n.defaultPrevented||e.disabled||t.disabled)&&(t.value===e.value?e.onReselect?.(t.value):e.onChange(t.value))}}
        >
          ${t.label}
        </button>`)}
    </div>`:L`
    <wa-radio-group
      class="settings-segmented  ${e.className??``}"
      size="s"
      aria-describedby=${e.descriptionId??I}
      orientation="horizontal"
      .value=${mi(e.value)}
      ?disabled=${mi(e.disabled??!1)}
      @change=${t=>{let n=t.currentTarget,r=n.value;if(r!==void 0){let t=[...n.querySelectorAll(`wa-radio`)].find(e=>e.getAttribute(`value`)===r);e.onChange(r,t??n)===!1&&(n.value=e.value)}}}
    >
      ${e.ariaLabel?L`<span slot="label" class="settings-control__sr-label">${e.ariaLabel}</span>`:I}
      ${e.options.map(t=>L`
          <wa-radio
            class="settings-segmented__btn  ${t.value===e.value?`settings-segmented__btn--active`:``}"
            appearance="button"
            value=${t.value}
            .checked=${mi(t.value===e.value)}
            ?disabled=${mi(t.disabled??!1)}
            title=${t.title??I}
            data-test-id=${t.testId??I}
            @click=${n=>{t.value===e.value&&n.currentTarget instanceof HTMLElement&&e.onReselect?.(t.value,n.currentTarget)}}
          >
            ${t.label}
          </wa-radio>
        `)}
    </wa-radio-group>
  `}function jk(e){let t=e.kind===`muted`?``:` settings-status--${e.kind}`;return L`
    <span
      class="settings-status${t}${e.carapace?` oc-status ${Ik[e.kind]}`:``}"
    >
      ${e.dot===!1?I:L`<span
              class="settings-status__dot ${e.carapace?`oc-status-indicator`:``}"
            ></span>`}
      <span class=${e.carapace?`oc-status-label`:``}>${e.label}</span>
    </span>
  `}function Mk(e,t={}){let n=t.mono?`settings-row__value settings-row__value--mono`:`settings-row__value`;return L`<span class=${n}>${e}</span>`}function Nk(e,t={}){return t.carapace?L`<div class="settings-empty oc-empty">
        <div class="oc-empty-content"><p class="oc-empty-description">${e}</p></div>
      </div>`:L`<div class="settings-empty">${e}</div>`}function Pk(e={}){let t=Math.max(1,e.rows??3);return L`
    <div
      class="settings-loading-skeleton"
      role="status"
      aria-busy="true"
      aria-label=${e.label??N(`common.loading`)}
    >
      <div class="settings-loading-skeleton__rows" aria-hidden="true">
        ${Array.from({length:t},(t,n)=>L`
            <div
              class="settings-row settings-loading-skeleton__row ${e.carapace?`oc-settings-row`:``}"
            >
              <div class="settings-row__text ${e.carapace?`oc-settings-row-content`:``}">
                <span
                  class="skeleton settings-loading-skeleton__title ${e.carapace?`oc-skeleton-line oc-skeleton-line-short`:``}"
                ></span>
                <span
                  class="skeleton settings-loading-skeleton__description ${e.carapace?`oc-skeleton-line`:``}"
                ></span>
              </div>
              <div class="settings-row__control">
                <span
                  class="skeleton settings-loading-skeleton__control ${n%2==0?`settings-loading-skeleton__control--wide`:``}"
                ></span>
              </div>
            </div>
          `)}
      </div>
    </div>
  `}function Fk(e){return L`
    <span class="settings-secret">
      <input
        class="settings-input"
        type=${e.visible?`text`:`password`}
        aria-label=${e.ariaLabel}
        autocomplete="off"
        spellcheck="false"
        .value=${e.value}
        placeholder=${e.placeholder??``}
        ?disabled=${e.disabled??!1}
        @input=${t=>e.onInput(t.target.value)}
      />
      <openclaw-tooltip .content=${e.visible?e.hideLabel:e.showLabel}>
        <button
          type="button"
          class="settings-secret__toggle"
          aria-label=${e.toggleLabel}
          aria-pressed=${e.visible}
          ?disabled=${e.disabled??!1}
          @click=${e.onToggle}
        >
          ${e.visible?F.eye:F.eyeOff}
        </button>
      </openclaw-tooltip>
    </span>
  `}var Ik;function Lk(){return(Lk=e((()=>{Ns(),Ds(),Ms(),R(),li(),Dr(),k(),Ha(),P(),an(),Ik={accent:`oc-status-info`,danger:`oc-status-error`,muted:``,ok:`oc-status-success`,warn:`oc-status-warning`}})))()}function Rk(){return typeof window<`u`&&window.event!==void 0}function zk(e){return e.connected&&e.directComposerSend&&!e.isCommand&&(e.message.trim().length>0||e.hasAttachments)}function Bk(e){try{e.setItem(Hk,`1`)}catch{}}function Vk(e){let t;try{if(t=localStorage,t.getItem(Hk)!==null)return}catch{return}let n=e.nativeNotifications;if(n){if(n.snapshot.permission!==`notDetermined`)return;Bk(t);try{n.requestPermission()}catch{}return}let r=e.webPush.snapshot;if(r.supported&&r.permission==="default"&&r.subscription!==`registered`&&r.subscription!==`vapid-mismatch`&&!r.loading){Bk(t);try{Notification.requestPermission().then(t=>{t===`granted`&&e.webPush.run({kind:`enable`})}).catch(()=>{})}catch{}}}var Hk;function Uk(){return(Uk=e((()=>{Hk=`openclaw.control.notificationsAutoPrompt.v1`})))()}function Wk(e,t){if(e.key===`Escape`)return e.preventDefault(),t.close(),!0;if(![`ArrowDown`,`ArrowUp`,`Home`,`End`,`Enter`,`Tab`].includes(e.key)||[`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey)||t.count===0&&!t.consumeEmpty)return!1;if(e.preventDefault(),t.count>0){if(e.key===`Home`||e.key===`End`)qk(t.move(e.key===`Home`?0:t.count-1));else if(e.key===`ArrowDown`||e.key===`ArrowUp`){let n=e.key===`ArrowDown`?1:t.count-1;qk(t.move((t.index+n)%t.count))}else(e.key===`Enter`||e.key===`Tab`)&&t.select(e.key)}return!0}function Gk(e){return L`<div
    id=${e.id}
    class="slash-menu ${e.className??``}"
    role="listbox"
    aria-label=${e.label}
    ${Yk(e.activeId)}
  >
    <div class="slash-menu__scroll" ${RC(!1,e.trackScroll)}>
      ${e.content}
    </div>
  </div>`}function Kk(e){return L`<div
    id=${e.id}
    class="slash-menu-item ${e.active?`slash-menu-item--active`:``}"
    role="option"
    aria-selected=${e.active}
    @mousedown=${e.preserveFocus===!1?I:e=>e.preventDefault()}
    @click=${e.select}
    @pointermove=${t=>{!e.active&&t.pointerType!==`touch`&&e.hover()}}
  >
    <span class="slash-menu-icon" aria-hidden=${e.iconHidden?`true`:I}
      >${e.icon}</span
    >
    <span class="slash-menu-copy">
      <span class="slash-menu-name">${e.name}</span>
      <span class="slash-menu-desc">${e.description}</span>
    </span>
  </div>`}function qk(e){e&&requestAnimationFrame(()=>{let t=document.getElementById(e),n=t?.closest(`.slash-menu__scroll`);t&&n&&FC(n,t)})}var Jk,Yk;function Xk(){return(Xk=e((()=>{R(),ri(),zC(),Jk=class extends ni{render(e){return I}update(e,[t]){return t!==this.activeId&&(this.activeId=t,qk(t??null)),I}},Yk=ti(Jk)})))()}var Zk,Qk;function $k(){return($k=e((()=>{PC(),Zk=[`direction`,`font-family`,`font-size`,`font-size-adjust`,`font-style`,`font-weight`,`font-stretch`,`font-variant`,`font-kerning`,`font-feature-settings`,`font-variation-settings`,`line-height`,`letter-spacing`,`word-spacing`,`tab-size`,`text-align`,`text-indent`,`text-transform`,`padding-top`,`padding-right`,`padding-bottom`,`padding-left`,`white-space`,`overflow-wrap`,`word-break`],Qk=class{constructor(e){this.onOutOfView=e,this.popup=null,this.textarea=null,this.start=0,this.value=``,this.range=null,this.mirror=null,this.prefix=null,this.suffix=null,this.anchor=null,this.resizeObserver=null,this.frame=null,this.stylesDirty=!0,this.lineHeight=0,this.invalidateStyles=()=>{this.stylesDirty=!0,this.schedule()},this.schedule=()=>{let e=this.textarea?.ownerDocument.defaultView;e&&this.frame===null&&(this.frame=e.requestAnimationFrame(this.measure))},this.measure=()=>{this.frame=null;let{textarea:e,popup:t,mirror:n,prefix:r,suffix:i,anchor:a}=this;if(!e?.isConnected||!t?.isConnected||!n||!r||!i||!a){this.close();return}if(this.stylesDirty){let t=e.ownerDocument.defaultView.getComputedStyle(e);for(let e of Zk)n.style.setProperty(e,t.getPropertyValue(e));n.style.whiteSpace=e.wrap===`off`?`pre`:`pre-wrap`,this.lineHeight=Number.parseFloat(t.lineHeight)||Number.parseFloat(t.fontSize)*1.2,this.stylesDirty=!1}n.style.width=`${e.clientWidth}px`;let o=Math.max(0,Math.min(this.start,e.value.length)),s=e.value.slice(0,o),c=e.value.indexOf(`
`,o),l=e.value.slice(o,c<0?void 0:c)||`​`;if(r.data!==s&&(r.data=s),i.textContent!==l&&(i.textContent=l),!i.firstChild||!this.range)return;this.range.setStart(i.firstChild,0),this.range.collapse(!0);let u=this.range.getClientRects()[0];if(!u)return;let d=e.getBoundingClientRect(),f=n.getBoundingClientRect(),p=e.offsetWidth?d.width/e.offsetWidth:1,m=e.offsetHeight?d.height/e.offsetHeight:1,h=d.left+(e.clientLeft+u.left-f.left-e.scrollLeft)*p,g=d.top+(e.clientTop+u.top-f.top-(this.lineHeight-u.height)/2-e.scrollTop)*m,_=d.left+e.clientLeft*p,v=d.top+e.clientTop*m;if(h<_||h>_+e.clientWidth*p||g+this.lineHeight*m<=v||g>=v+e.clientHeight*m){this.onOutOfView();return}a.style.left=`${h}px`,a.style.top=`${g}px`,a.style.height=`${this.lineHeight*m}px`,t.active=!0,t.reposition()}}update(e,t,n){if(this.popup!==e||this.textarea!==t){this.close(),this.popup=e,this.textarea=t;let n=t.ownerDocument;this.mirror=n.createElement(`div`),this.mirror.setAttribute(`aria-hidden`,`true`),this.mirror.style.cssText=`position:fixed;left:0;top:0;visibility:hidden;pointer-events:none;box-sizing:border-box;border:0;margin:0;height:auto;min-height:0;overflow:hidden;contain:layout style paint;`,this.prefix=n.createTextNode(``),this.suffix=n.createElement(`span`),this.range=n.createRange(),this.mirror.append(this.prefix,this.suffix),this.anchor=n.createElement(`span`),this.anchor.setAttribute(`aria-hidden`,`true`),this.anchor.style.cssText=`position:fixed;left:0;top:0;width:0;visibility:hidden;pointer-events:none;`,n.body.append(this.mirror,this.anchor),jC(e,this.anchor,`top`,`start`),this.resizeObserver=new ResizeObserver(this.invalidateStyles),this.resizeObserver.observe(t),n.addEventListener(`scroll`,this.schedule,!0),n.defaultView?.addEventListener(`resize`,this.invalidateStyles),n.defaultView?.visualViewport?.addEventListener(`resize`,this.invalidateStyles),n.defaultView?.visualViewport?.addEventListener(`scroll`,this.schedule)}let r=t.value;(this.value!==r||this.start!==n||this.stylesDirty)&&(this.value=r,this.start=n,this.schedule())}close(){let e=this.textarea?.ownerDocument,t=e?.defaultView;this.frame!==null&&(t?.cancelAnimationFrame(this.frame),this.frame=null),this.resizeObserver?.disconnect(),this.resizeObserver=null,e?.removeEventListener(`scroll`,this.schedule,!0),t?.removeEventListener(`resize`,this.invalidateStyles),t?.visualViewport?.removeEventListener(`resize`,this.invalidateStyles),t?.visualViewport?.removeEventListener(`scroll`,this.schedule),this.popup&&(this.popup.active=!1),this.mirror?.remove(),this.anchor?.remove(),this.popup=null,this.textarea=null,this.mirror=null,this.prefix=null,this.suffix=null,this.anchor=null,this.value=``,this.range=null,this.stylesDirty=!0}}})))()}function eA(e){e.currentTarget.querySelector(`.chat-copy-btn`)?.click()}function tA(e,t=`inline`){let n=N(`connection.help.copyCommand`);return L`
    <openclaw-tooltip .content=${n}>
      <div
        class=${t===`hero`?`login-gate__command login-gate__command--hero`:`login-gate__command`}
        role="button"
        tabindex="0"
        aria-label=${N(`connection.help.copyCommandAria`,{command:e})}
        @click=${e=>{e.target?.closest(`.chat-copy-btn`)||eA(e)}}
        @keydown=${e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),eA(e))}}
      >
        <code translate="no">${e}</code>
        ${QC(e,n)}
      </div>
    </openclaw-tooltip>
  `}function nA(){return(nA=e((()=>{R(),k(),nw(),an()})))()}function rA(e,t){return e>t?N(`execApproval.expiresIn`,{time:pe(e,t,!0)}):N(`execApproval.expired`)}function iA(e,t,n){return t?L`<div class="exec-approval-meta-row">
    <span>${e}</span><span>${n?.path?Ht(t):t}</span>
  </div>`:I}function aA(e){let t=Vl([...e.commandSpans??[]],e.command.length)??[],n=[],r=0;for(let i of t)i.startIndex>r&&n.push(e.command.slice(r,i.startIndex)),n.push(L`<mark class="exec-approval-command-span"
        >${e.command.slice(i.startIndex,i.endIndex)}</mark
      >`),r=i.endIndex;return r<e.command.length&&n.push(e.command.slice(r)),L`<div class="exec-approval-command mono">${n}</div>`}function oA(e){return L`<details class="exec-approval-details">
    <summary>${N(`execApproval.details`)}</summary>
    <div class="exec-approval-meta">${e}</div>
  </details>`}function sA(e,t){return t?L`<span class="exec-approval-chip mono" data-approval-chip=${e}>${t}</span>`:I}function cA(e,t){return L` ${aA(e)}
    ${e.scope?L`<div class="exec-approval-scope">${Fx(e.scope)}</div>`:I}
    <div class="exec-approval-meta">
      ${iA(N(`execApproval.labels.host`),e.host)}
      ${iA(N(`execApproval.labels.cwd`),e.cwd,{path:!0})}
    </div>
    ${oA(L`
      ${iA(N(`execApproval.labels.resolved`),e.resolvedPath,{path:!0})}
      ${iA(N(`execApproval.labels.security`),e.security)}
      ${iA(N(`execApproval.labels.ask`),e.ask)}
      ${t===`modal`?iA(N(`execApproval.labels.session`),e.sessionKey):I}
    `)}`}function lA(e,t){return L` ${e.pluginDescription?L`<pre class="exec-approval-command mono">${e.pluginDescription}</pre>`:I}
  ${e.pluginDetail?L`<pre class="exec-approval-command mono" dir="ltr">${e.pluginDetail}</pre>`:I}
  ${t===`modal`&&e.request.sessionKey?oA(L`${iA(N(`execApproval.labels.session`),e.request.sessionKey)}`):I}`}function uA(e,t){if(t.kind===`plugin`&&Array.isArray(t.pluginActions)){for(let n of t.pluginActions)if(as(n)&&n.kind===`decision`&&n.decision===e){let e=yo(n.label);if(e)return e}}return N(e===`allow-once`?`execApproval.allowOnce`:e===`allow-always`?t.kind===`exec`?`execApproval.alwaysAllowHere`:`execApproval.alwaysAllow`:`execApproval.deny`)}function dA(e){return e===`allow-once`?`btn primary`:e===`deny`?`btn danger`:`btn`}function fA(e){return e===`allow-once`?`Ctrl/Cmd+Enter`:e===`allow-always`?`Ctrl/Cmd+Shift+Enter`:`Ctrl/Cmd+D`}function pA(e){return e.request.allowedDecisions?.length?e.request.allowedDecisions:e.kind===`exec`&&e.request.ask===`always`?[`allow-once`,`deny`]:_A}function mA(e){return e.kind===`exec`?N(`execApproval.execApprovalNeeded`):e.pluginTitle??N(`execApproval.pluginApprovalNeeded`)}function hA(e){let t=e.approval,n=Date.now(),r=t.expiresAtMs<=n,i=Ix(t.request.command),a=t.request.sessionKey?.trim(),o=e.sessionTitle??(a?qe(a):mA(t)),s=r||t.expiresAtMs-n<12e4,c=rA(t.expiresAtMs,n),l=N(`execApproval.reviewOnly`),u=!e.canGrant&&e.error===l;return L`<article
    class="sidebar-approval-row sidebar-issues-panel__details--warning"
    data-attention-kind="pendingApproval"
    data-approval-id=${t.id}
  >
    <span class="sidebar-issues-panel__icon sidebar-approval-row__icon" aria-hidden="true"
      >${F.shieldQuestion}</span
    >
    <div class="sidebar-approval-row__content">
      <div class="sidebar-approval-row__header" data-issue-row-focus tabindex="-1">
        <span class="sidebar-issues-panel__entity" title=${o}>${o}</span>
        <openclaw-approval-countdown
          class="sidebar-approval-row__timer ${s?`sidebar-approval-row__timer--urgent`:``}"
          role="timer"
          aria-label=${c}
          title=${c}
          .expiresAtMs=${t.expiresAtMs}
          .compact=${!0}
        ></openclaw-approval-countdown>
      </div>
      <div class="sidebar-approval-row__command mono" title=${t.request.command}>
        <span aria-hidden="true">$ </span>${i}
      </div>
      ${t.request.scope?L`<div class="exec-approval-scope">
              ${Fx(t.request.scope)}
            </div>`:I}
      <div
        class="sidebar-approval-row__actions"
        role="group"
        aria-label=${N(`approvalPage.actionsLabel`)}
      >
        ${pA(t).map(n=>{let a=uA(n,t);return L`<button
            type="button"
            class="btn btn--xs ${n===`deny`?`btn--ghost`:``} sidebar-approval-row__action sidebar-approval-row__action--${n}"
            aria-label=${N(`execApproval.decisionRequest`,{decision:a,command:i})}
            ?disabled=${e.busy||!e.canGrant||r}
            @click=${r=>e.onDecision(r,t.id,n)}
          >
            ${a}
          </button>`})}
        ${e.openSessionHref&&e.onOpenSession?L`<a
                class="sidebar-approval-row__open-session"
                href=${e.openSessionHref}
                aria-label=${N(`sessionsView.openSession`)}
                title=${N(`sessionsView.openSession`)}
                @click=${e.onOpenSession}
              >
                ${F.arrowUpRight}
              </a>`:I}
      </div>
      ${e.canGrant?I:L`<div class="sidebar-approval-row__message" role=${u?`alert`:`note`}>
              ${l}
            </div>`}
      ${e.error&&!u?L`<div
              class="sidebar-approval-row__message sidebar-approval-row__message--error"
              role="alert"
            >
              ${e.error}
            </div>`:I}
    </div>
  </article>`}function gA(e){let t=e.approval,n=pA(t),r=N(`execApproval.reviewOnly`),i=!e.canGrant&&e.error===r,a=t.pluginSeverity?.trim().toLowerCase(),o=t.kind===`exec`||a===`warning`||a===`warn`?`warning`:a===`danger`||a===`critical`||a===`error`?`danger`:`info`,s=t.kind===`plugin`?t.pluginId?.trim():null,c=e.variant===`modal`?t.request.agentId?.trim():null;return L` <div
    class="exec-approval-card exec-approval-card--${e.variant} exec-approval-card--severity-${o}"
    data-approval-id=${t.id}
  >
    <div class="exec-approval-header">
      <div>
        <div class="exec-approval-title">${mA(t)}</div>
        ${s||c?L`<div class="exec-approval-chips">
                ${sA(`plugin`,s)} ${sA(`agent`,c)}
              </div>`:I}
        <openclaw-approval-countdown
          class="exec-approval-sub exec-approval-countdown"
          role="timer"
          .expiresAtMs=${t.expiresAtMs}
        ></openclaw-approval-countdown>
      </div>
      ${(e.queueCount??0)>1?L`<div class="exec-approval-queue">
              ${N(`execApproval.pending`,{count:String(e.queueCount)})}
            </div>`:I}
    </div>
    ${e.variant===`inline`&&t.sourceSessionKey?L`<div class="exec-approval-warning" role="note">
            ${N(`execApproval.requestedBySession`,{session:qe(t.sourceSessionKey,e.sourceSession)})}
          </div>`:I}
    ${t.kind===`exec`?cA(t.request,e.variant):lA(t,e.variant)}
    ${t.kind===`exec`&&!n.includes(`allow-always`)?L`<div class="exec-approval-warning">${N(`execApproval.allowAlwaysUnavailable`)}</div>`:I}
    ${e.canGrant?I:L`<div
            class=${i?`exec-approval-error`:`exec-approval-warning`}
            role=${i?`alert`:`note`}
          >
            ${r}
          </div>`}
    ${e.error&&!i?L`<div class="exec-approval-error" role="alert">${e.error}</div>`:I}
    <div class="exec-approval-actions">
      ${n.map(n=>{let r=uA(n,t);return L`<button
          class=${dA(n)}
          type="button"
          aria-label=${r}
          ?disabled=${e.busy||!e.canGrant}
          title=${e.variant===`modal`&&e.canGrant?`${r} (${fA(n)})`:r}
          @click=${()=>e.onDecision(t.id,n)}
        >
          <span>${r}</span>
        </button>`})}
    </div>
  </div>`}var _A,vA;function yA(){return(yA=e((()=>{R(),B(),Lx(),k(),Ae(),bt(),O(),Hc(),P(),_A=[`allow-once`,`allow-always`,`deny`],vA=class extends o{constructor(...e){super(...e),this.expiresAtMs=0,this.compact=!1,this.polling=new _l(this,1e3,()=>{this.requestUpdate(),this.compact||this.closest(`openclaw-modal-dialog`)?.setAttribute(`description`,rA(this.expiresAtMs,Date.now()))},!1)}connectedCallback(){super.connectedCallback(),this.polling.start()}render(){let e=Date.now();return L`${this.compact?pe(this.expiresAtMs,e,!0):rA(this.expiresAtMs,e)}`}},U([V({type:Number})],vA.prototype,`expiresAtMs`,void 0),U([V({type:Boolean})],vA.prototype,`compact`,void 0),customElements.get(`openclaw-approval-countdown`)||customElements.define(`openclaw-approval-countdown`,vA)})))()}async function bA(e){if(!e||e.kind===`video`)return e;let t=new Image;t.referrerPolicy=`no-referrer`,t.src=e.src;try{return await t.decode(),e}catch{return e.release?.(),null}}function xA(e,t){let n=e?.getRootNode();if(!e||document.fullscreenElement||n instanceof ShadowRoot&&n.fullscreenElement)return!1;if(!t.composedPath().includes(e))return!0;let r=e.getBoundingClientRect();return t.clientY<r.bottom-Math.min(80,r.height/2)}function SA(e,t){return e?.matches(`:fullscreen`)?(t.preventDefault(),t.stopPropagation(),e.ownerDocument.exitFullscreen().catch(()=>void 0),!0):!1}function CA(e,t){if(e.key!==`Tab`)return;let n=[...t].filter(e=>!(e instanceof HTMLButtonElement&&e.disabled)),r=n[0],i=n.at(-1);if(!r||!i)return;let a=e.composedPath()[0];e.shiftKey&&a===r?(e.preventDefault(),i.focus()):!e.shiftKey&&a===i&&(e.preventDefault(),r.focus())}var wA;function TA(){return(TA=e((()=>{wA=class{constructor(e){this.notify=e,this.index=0,this.busy=!1,this.failed=!1,this.videoStatus=`preparing`,this.videoRetryable=!0,this.generation=0,this.images=new Map}get count(){return this.gallery?.items.length??0}reset(e,t){this.dispose(),this.gallery=e,this.index=e?.index??0,this.current=t;let n={...t,release:void 0};t.loadFullResolution?this.upgrade(this.index,n,t.loadFullResolution):this.images.set(this.index,Promise.resolve(n)),this.preloadNeighbors()}upgrade(e,t,n){let r=this.generation,i=Promise.resolve().then(()=>r===this.generation?n():null).then(bA).catch(()=>null).then(n=>(n&&r===this.generation&&this.images.get(e)===i&&this.index===e&&(this.current=n,this.notify()),n??t));this.images.set(e,i)}dispose(){this.stopPlayer(),this.generation+=1;for(let e of this.images.values())e.then(e=>e?.release?.());this.images.clear(),this.gallery=void 0,this.current=void 0,this.busy=!1,this.failed=!1}canMove(e){let t=this.index+e;return this.count>1&&t>=0&&t<this.count}async move(e){if(this.busy||!this.canMove(e))return!1;let t=this.generation,n=this.index+e;this.busy=!0,this.failed=!1,this.notify();let r=await this.load(n,!0);return t===this.generation&&(this.busy=!1,this.failed=!r,r&&(this.stopPlayer(),this.index=n,this.current=r,this.preloadNeighbors()),this.notify(),r!==null)}connectPlayer(e,t=!1){let n=this.current;e&&n?.kind===`video`&&this.video!==e&&(this.stopPlayer(),this.video=e,this.videoStatus=`preparing`,n.connectVideo?this.disconnectVideo=n.connectVideo(e,(t,r=!0)=>{this.video===e&&this.current===n&&(this.videoStatus=t===`ready`&&e.readyState<2?`preparing`:t,this.videoRetryable=r,this.notify())},t):e.src=n.src)}updateVideoStatus(e){this.videoStatus=e,this.notify()}stopPlayer(){this.disconnectVideo?.(),this.disconnectVideo=void 0,this.video?.hasAttribute(`src`)&&(this.video.pause(),this.video.removeAttribute(`src`),this.video.load()),this.video=void 0}retryVideo(){let e=this.video;this.stopPlayer(),this.connectPlayer(e,!0)}load(e,t=!1){let n=this.images.get(e);if(n)return n;let r=this.gallery?.items[e];if(!r)return Promise.resolve(null);let i=this.generation,a=Promise.resolve().then(()=>i===this.generation?r(t):null).then(bA).catch(()=>null);return this.images.set(e,a),a.then(t=>{!t&&this.images.get(e)===a&&this.images.delete(e)}),a}preloadNeighbors(){for(let[e,t]of this.images)Math.abs(e-this.index)>1&&(this.images.delete(e),t.then(e=>e?.release?.()));if(this.current?.kind!==`video`)for(let e of[this.index-1,this.index+1])e>=0&&e<this.count&&this.load(e)}}})))()}function EA(e,t){let n=OA.find(({combo:t})=>ht(t,e));if(!n)return!1;let r=t?.getScale()??1;if(t&&r>1){e.preventDefault(),e.stopPropagation();let i=DA/r;t.pan(n.x*i,n.y*i,{relative:!0,animate:!1})}return!0}var DA,OA;function kA(){return(kA=e((()=>{fe(),DA=48,OA=[{combo:xe.imagePanLeft,x:-1,y:0},{combo:xe.imagePanRight,x:1,y:0},{combo:xe.imagePanUp,x:0,y:-1},{combo:xe.imagePanDown,x:0,y:1}]})))()}var AA;function jA(){return(jA=e((()=>{R(),AA=fi`
  :host {
    --image-lightbox-control-background: rgba(12, 16, 24, 0.64);
    --image-lightbox-control-background-hover: rgba(12, 16, 24, 0.78);
    display: contents;
  }

  :host-context([data-theme-mode="dark"]) {
    --image-lightbox-control-background: rgba(255, 255, 255, 0.16);
    --image-lightbox-control-background-hover: rgba(255, 255, 255, 0.22);
  }

  openclaw-modal-dialog {
    --openclaw-modal-width: 100vw;
    --openclaw-modal-max-width: 100vw;
    --openclaw-modal-max-height: 100dvh;
    --openclaw-modal-backdrop-filter: none;
  }

  .lightbox {
    width: 100vw;
    height: 100dvh;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
  }

  .header {
    display: contents;
  }

  .actions {
    position: fixed;
    z-index: 1;
    top: max(16px, calc(12px + var(--safe-area-top, 0px)));
    right: max(16px, calc(12px + var(--safe-area-right, 0px)));
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }

  .actions .action,
  .action.zoom-control {
    color: var(--media-foreground);
    background-color: var(--image-lightbox-control-background);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
    backdrop-filter: blur(16px) saturate(140%);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
  }

  .actions .action {
    border-radius: 999px;
    transition: background-color 180ms ease;
  }

  .actions .action:hover,
  .zoom-control:hover:not([aria-disabled="true"]) {
    background-color: var(--image-lightbox-control-background-hover);
  }

  .title {
    display: none;
  }

  .action {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85);
  }

  .action:hover {
    background: color-mix(in srgb, var(--text) 10%, transparent);
  }

  .action:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  .action:focus:not(:focus-visible) {
    outline: none;
  }

  .open-original {
    min-height: 44px;
  }

  .open-original-icon {
    display: none;
  }

  .close {
    width: 44px;
    height: 44px;
    padding: 0;
    color: rgba(255, 255, 255, 0.82);
  }

  .close svg {
    width: 17px;
    height: 17px;
  }

  .stage {
    min-height: 0;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    padding: 20px 20px 72px;
    overflow: hidden;
  }

  .stage--gallery {
    touch-action: none;
  }

  .stage.stage--video {
    padding: calc(76px + var(--safe-area-top, 0px)) calc(64px + var(--safe-area-right, 0px))
      calc(76px + var(--safe-area-bottom, 0px)) calc(64px + var(--safe-area-left, 0px));
    touch-action: pan-y;
  }

  .slide {
    container-type: size;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    display: grid;
    place-items: center;
  }

  .navigation {
    position: fixed;
    z-index: 1;
    top: 50%;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    transform: translateY(-50%);
    color: var(--media-foreground);
    background: var(--image-lightbox-control-background);
  }

  .navigation:hover:not([aria-disabled="true"]) {
    background: var(--image-lightbox-control-background-hover);
  }

  .navigation[aria-disabled="true"] {
    opacity: 0.35;
  }

  .previous {
    inset-inline-start: max(12px, var(--safe-area-left, 0px));
  }

  .next {
    inset-inline-end: max(12px, var(--safe-area-right, 0px));
  }

  .navigation svg {
    width: 20px;
    height: 20px;
  }

  .navigation:dir(rtl) svg {
    transform: scaleX(-1);
  }

  .gallery-counter,
  .gallery-error {
    position: fixed;
    z-index: 1;
    margin: 0;
    padding: 6px 12px;
    border-radius: 999px;
    color: var(--media-foreground);
    background: var(--image-lightbox-control-background);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
  }

  .gallery-counter {
    top: max(24px, calc(20px + var(--safe-area-top, 0px)));
    inset-inline-start: max(16px, calc(12px + var(--safe-area-left, 0px)));
  }

  .gallery-error {
    bottom: max(68px, calc(64px + var(--safe-area-bottom, 0px)));
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100vw - 48px);
  }

  @media (hover: hover) and (pointer: fine) {
    .navigation {
      opacity: 0;
      transition: opacity 180ms ease;
    }

    .lightbox:hover .navigation,
    .lightbox:focus-within .navigation {
      opacity: 1;
    }

    .lightbox:hover .navigation[aria-disabled="true"],
    .lightbox:focus-within .navigation[aria-disabled="true"] {
      opacity: 0.35;
    }
  }

  .image,
  .video {
    display: block;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    object-fit: contain;
  }

  .image {
    width: auto;
    cursor: zoom-in;
    -webkit-user-drag: none;
  }

  .video {
    width: min(1280px, 100%);
    background: var(--media-bg);
  }

  .image.zoomed {
    cursor: grab;
  }

  .zoom-controls {
    position: fixed;
    z-index: 1;
    bottom: max(14px, calc(10px + var(--safe-area-bottom, 0px)));
    left: 50%;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transform: translateX(-50%);
  }

  .zoom-control {
    min-width: 40px;
    min-height: 40px;
    padding: 0 10px;
    border: 0;
    font-size: 15px;
  }

  .zoom-control[aria-disabled="true"] {
    color: rgba(255, 255, 255, 0.8);
  }

  .zoom-level {
    min-width: 58px;
    font-size: 11px;
  }

  @media (max-width: 768px),
    (max-width: 932px) and (max-height: 500px) and (orientation: landscape) {
    .stage {
      padding: calc(68px + var(--safe-area-top, 0px)) calc(12px + var(--safe-area-right, 0px))
        calc(64px + var(--safe-area-bottom, 0px)) calc(12px + var(--safe-area-left, 0px));
    }

    .open-original {
      width: 44px;
      padding: 0;
    }

    .open-original-label {
      display: none;
    }

    .open-original-icon {
      display: inline-flex;
    }

    .open-original-icon svg {
      width: 17px;
      height: 17px;
    }

    .zoom-control {
      min-width: 44px;
      min-height: 44px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    openclaw-modal-dialog {
      --show-duration: 0ms;
      --hide-duration: 0ms;
    }

    .actions .action,
    .navigation {
      transition: none;
    }
  }
`})))()}function MA(e){return e.split(`;`,1)[0]?.trim().toLowerCase()??``}function NA(e){let t=/^data:([^,]*)/i.exec(e)?.[1];return t===void 0?void 0:MA(t)}function PA(e,t,n,r,i){return L`<button
    class=${`action `+e}
    type="button"
    aria-label=${N(t)}
    aria-disabled=${n}
    @click=${r}
  >
    ${i}
  </button>`}var FA,IA,LA,RA,zA,BA,$;function VA(){return(VA=e((()=>{As(),R(),B(),Bl(),k(),O(),P(),TA(),kA(),jA(),Ar(),FA=4,IA=2.5,LA=56,RA=8,zA=180,BA=[`src`,`originalSrc`,`gallery`,`loadFullResolution`,`connectVideo`,`imageWidth`,`imageHeight`,`mediaKind`],$=class extends ce{constructor(...e){super(...e),this.mediaKind=`image`,this.src=``,this.originalSrc=``,this.imageTitle=``,this.openOriginalUrl=``,this.resolvingOriginal=!1,this.originalBlobUrl=``,this.originalUrlRequest=0,this.scale=1,this.galleryController=new wA(()=>this.requestUpdate()),this.displayedIndex=0,this.displayedSource=``,this.touchPointers=new Set,this.suppressDoubleClick=!1,this.handleImageLoad=e=>{let t=e.currentTarget;t instanceof HTMLImageElement&&t===this.image&&this.initializePanzoom(t)},this.handleImageError=e=>{e.currentTarget===this.image&&(this.destroyPanzoom(),this.scale=1)},this.handlePanzoomChange=e=>{if(!(e instanceof CustomEvent))return;let t=e.detail;typeof t==`object`&&t&&`scale`in t&&typeof t.scale==`number`&&(this.scale=t.scale)},this.handleWheel=e=>{this.panzoom&&(e.preventDefault(),this.panzoom.zoomWithWheel(e))},this.handleDoubleClick=e=>{if(this.panzoom&&!this.suppressDoubleClick){if(e.preventDefault(),this.scale>1){this.resetZoom();return}this.panzoom?.zoomToPoint(IA,e)}},this.handleStagePointerDown=e=>{if(e.pointerType===`touch`&&(this.touchPointers.add(e.pointerId),this.touchPointers.size>1)){this.cancelSwipe(),this.backdropPointer=void 0;return}this.suppressDoubleClick=!1;let t=e.currentTarget;if(e.button!==0||!e.isPrimary||!(t instanceof HTMLElement)){this.backdropPointer=void 0;return}let n=e.target===t||e.target===this.slide;this.backdropPointer=n?{pointerId:e.pointerId,clientX:e.clientX,clientY:e.clientY}:void 0,e.pointerType===`touch`&&this.hasGallery&&!this.galleryController.busy&&this.scale<=1&&(this.mediaKind!==`video`||xA(this.video,e))?(this.slideAnimation?.cancel(),this.swipe={pointerId:e.pointerId,x:e.clientX,y:e.clientY,offset:0,horizontal:!1},this.mediaKind!==`video`&&t.setPointerCapture(e.pointerId)):n&&t.setPointerCapture?.(e.pointerId)},this.handleStagePointerMove=e=>{let t=this.swipe;if(!t||t.pointerId!==e.pointerId)return;if(this.scale>1||this.touchPointers.size!==1){this.cancelSwipe();return}let n=e.clientX-t.x,r=e.clientY-t.y;if(!t.horizontal){if(Math.max(Math.abs(n),Math.abs(r))<RA)return;if(this.backdropPointer=void 0,this.suppressDoubleClick=!0,Math.abs(r)>=Math.abs(n)){this.cancelSwipe();return}t.horizontal=!0,this.stage?.setPointerCapture(e.pointerId)}let i=n*this.direction<0?1:-1;t.offset=this.galleryController.canMove(i)?n:n*.2,this.slide&&(this.slide.style.transform=`translateX(${t.offset}px)`)},this.handleStagePointerUp=e=>{this.touchPointers.delete(e.pointerId);let t=this.swipe;if(t?.pointerId===e.pointerId&&(this.swipe=void 0,t.horizontal)){this.backdropPointer=void 0;let e=t.offset*this.direction<0?1:-1;Math.abs(t.offset)>=LA&&this.scale<=1&&this.galleryController.canMove(e)?this.navigate(e,t.offset):this.animateSlide(t.offset);return}let n=this.backdropPointer;this.backdropPointer=void 0;let r=this.shadowRoot?.elementFromPoint?.(e.clientX,e.clientY);e.button===0&&e.isPrimary&&n?.pointerId===e.pointerId&&(r===this.stage||r===this.slide)&&Math.hypot(e.clientX-n.clientX,e.clientY-n.clientY)<=4&&this.emitClose()},this.handleStagePointerCancel=e=>{this.touchPointers.delete(e.pointerId),this.backdropPointer=void 0,this.cancelSwipe()},this.handleMotionPreferenceChange=e=>{this.panzoom?.setOptions({duration:e.matches?0:200}),e.matches&&this.slideAnimation?.cancel()},this.zoomIn=()=>this.panzoom?.zoomIn(),this.zoomOut=()=>this.panzoom?.zoomOut(),this.resetZoom=()=>this.panzoom?.reset({animate:!1}),this.handleKeydown=e=>{if(e.key===`Escape`&&SA(this.video,e)||EA(e,this.panzoom))return;let t=e.composedPath().some(e=>e instanceof HTMLVideoElement);if(this.hasGallery&&!t&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)){e.preventDefault(),e.stopPropagation(),this.navigate((e.key===`ArrowRight`?1:-1)*this.direction);return}let n=e.key===`+`||e.key===`=`?this.zoomIn:e.key===`-`?this.zoomOut:e.key===`0`?this.resetZoom:void 0;if(this.panzoom&&n){e.preventDefault(),n();return}CA(e,this.focusables)},this.emitClose=e=>{e?.type===`modal-cancel`&&SA(this.video,e)||(this.galleryController.stopPlayer(),this.dispatchEvent(new CustomEvent(`image-lightbox-close`,{bubbles:!0,composed:!0})))}}get currentImage(){return this.galleryController.current}get hasGallery(){return this.galleryController.count>1}get direction(){return getComputedStyle(this).direction===`rtl`?-1:1}static{this.styles=AA}connectedCallback(){super.connectedCallback(),this.motionQuery=globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`),this.motionQuery?.addEventListener(`change`,this.handleMotionPreferenceChange),this.hasUpdated&&(this.resetGallery(),this.requestUpdate(),this.resolveOriginalUrl(),this.updateComplete.then(()=>{if(!this.isConnected)return;let e=this.image;e?.complete&&e.naturalWidth>0&&this.initializePanzoom(e)}))}disconnectedCallback(){this.galleryController.dispose(),this.cancelSwipe(),this.touchPointers.clear(),this.slideAnimation?.cancel(),this.motionQuery?.removeEventListener(`change`,this.handleMotionPreferenceChange),this.motionQuery=void 0,this.destroyPanzoom(),this.originalUrlRequest+=1,this.revokeOriginalBlobUrl(),super.disconnectedCallback()}resetGallery(){this.galleryController.reset(this.gallery,{kind:this.mediaKind,connectVideo:this.connectVideo,src:this.src,originalSrc:this.originalSrc,title:this.imageTitle,width:this.imageWidth,height:this.imageHeight,loadFullResolution:this.loadFullResolution})}willUpdate(e){this.isConnected&&BA.some(t=>e.has(t))&&(this.cancelSwipe(),this.resetGallery())}updated(e){if(!this.isConnected)return;let t=BA.some(t=>e.has(t))||this.displayedIndex!==this.galleryController.index;t&&(this.displayedIndex=this.galleryController.index,this.destroyPanzoom(),this.scale=1),this.galleryController.connectPlayer(this.video);let n=this.video?.getAttribute(`src`)??this.currentImage?.src??this.src;(t||this.displayedSource!==n)&&(this.displayedSource=n,this.resolveOriginalUrl(),this.image?.complete&&this.image.naturalWidth>0&&this.initializePanzoom(this.image))}render(){let e=(this.hasGallery?this.currentImage?.title??this.imageTitle:this.imageTitle).trim()||N(`chat.imageLightbox.untitled`),t=this.mediaKind===`video`?N(`chat.mediaPlayer.videoPreview`,{title:e}):N(`chat.imageLightbox.label`,{title:e}),n=this.mediaKind===`video`?N(`chat.mediaPlayer.closeVideoPreview`):N(`chat.imageLightbox.close`),r=this.panzoom!==void 0,i=this.currentImage?.width,a=this.currentImage?.height,o=Number.isFinite(i)&&i>0&&Number.isFinite(a)&&a>0?`width: min(${i}px, 100cqw, calc(100cqh * ${i/a}))`:I;return L`
      <openclaw-modal-dialog
        class="mobile-edge-to-edge viewport-edge-to-edge"
        label=${t}
        @modal-cancel=${this.emitClose}
        @keydown=${{handleEvent:this.handleKeydown,capture:!0}}
      >
        <section class="lightbox">
          <header class="header">
            <strong class="title">${e}</strong>
            <div class="actions">
              ${this.openOriginalUrl||this.hasGallery&&this.resolvingOriginal?L`
                      <a
                        class="action open-original"
                        href=${this.openOriginalUrl||I}
                        aria-disabled=${!this.openOriginalUrl}
                        tabindex=${this.openOriginalUrl?0:-1}
                        target="_blank"
                        rel="noreferrer"
                        aria-label=${N(`chat.imageLightbox.openOriginal`)}
                      >
                        <span class="open-original-label">
                          ${N(`chat.imageLightbox.openOriginal`)}
                        </span>
                        <span class="open-original-icon" aria-hidden="true">
                          ${F.externalLink}
                        </span>
                      </a>
                    `:I}
              <button
                class="action close"
                type="button"
                autofocus
                aria-label=${n}
                @click=${this.emitClose}
              >
                ${F.x}
              </button>
            </div>
          </header>
          <div
            class=${this.mediaKind===`video`?`stage stage--video`:this.hasGallery?`stage stage--gallery`:`stage`}
            @pointerdown=${{handleEvent:this.handleStagePointerDown,capture:!0}}
            @pointermove=${this.handleStagePointerMove}
            @pointerup=${this.handleStagePointerUp}
            @pointercancel=${this.handleStagePointerCancel}
            @dblclick=${this.handleDoubleClick}
          >
            ${this.mediaKind===`video`?L`<video
                    class="video"
                    @loadeddata=${()=>this.galleryController.updateVideoStatus(`ready`)}
                    @playing=${()=>this.galleryController.updateVideoStatus(`ready`)}
                    @error=${()=>this.galleryController.updateVideoStatus(`unavailable`)}
                    aria-label=${e}
                    controls
                    autoplay
                    playsinline
                    tabindex="0"
                  ></video>`:L`<div class="slide">
                    <img
                      class=${this.scale>1?`image zoomed`:`image`}
                      style=${o}
                      src=${this.currentImage?.src??this.src}
                      alt=${e}
                      referrerpolicy="no-referrer"
                      @load=${this.handleImageLoad}
                      @error=${this.handleImageError}
                      @dragstart=${e=>e.preventDefault()}
                    />
                  </div>`}
          </div>
          ${this.hasGallery?L`
                  ${PA(`navigation previous`,this.mediaKind===`video`?`common.previous`:`chat.imageLightbox.previous`,!this.galleryController.canMove(-1)||this.galleryController.busy,()=>this.navigate(-1),F.chevronLeft)}
                  ${PA(`navigation next`,this.mediaKind===`video`?`common.next`:`chat.imageLightbox.next`,!this.galleryController.canMove(1)||this.galleryController.busy,()=>this.navigate(1),F.chevronRight)}
                  <p
                    class="gallery-counter"
                    dir="ltr"
                    role="status"
                    aria-live="polite"
                    aria-atomic="true"
                  >
                    ${N(`chat.imageLightbox.position`,{current:String(this.galleryController.index+1),total:String(this.galleryController.count)})}
                  </p>
                  ${this.galleryController.failed?L`<p class="gallery-error" role="alert">${N(`chat.imageLightbox.loadFailed`)}</p>`:I}
                `:I}
          ${this.mediaKind===`video`&&this.galleryController.videoStatus!==`ready`?L`<p class="gallery-error" role="status">
                  ${this.galleryController.videoStatus===`preparing`?N(`chat.mediaPlayer.preparing`):N(`chat.attachments.previewUnavailable`)}
                  ${this.galleryController.videoStatus===`unavailable`&&this.galleryController.videoRetryable?L`<button class="action" @click=${()=>this.galleryController.retryVideo()}>${N(`common.retry`)}</button>`:I}
                </p>`:I}
          ${this.mediaKind===`image`?L`<div class="zoom-controls">
                  ${PA(`zoom-control`,`chat.imageLightbox.zoomOut`,!r||this.scale<=1,this.zoomOut,`−`)}
                  ${PA(`zoom-control zoom-level`,`chat.imageLightbox.resetZoom`,!r||this.scale===1,this.resetZoom,L`${Math.round(this.scale*100)}%`)}
                  ${PA(`zoom-control`,`chat.imageLightbox.zoomIn`,!r||this.scale>=FA,this.zoomIn,`+`)}
                </div>`:I}
        </section>
      </openclaw-modal-dialog>
    `}initializePanzoom(e){let t=this.stage;this.isConnected&&e.isConnected&&t&&e===this.image&&(e!==this.panzoomImage||t!==this.panzoomStage)&&(this.destroyPanzoom(),this.panzoomImage=e,this.panzoomStage=t,this.panzoom=Fs(e,{duration:this.motionQuery?.matches?0:200,maxScale:FA,minScale:1,panOnlyWhenZoomed:!0}),e.addEventListener(`panzoomchange`,this.handlePanzoomChange),t.addEventListener(`wheel`,this.handleWheel,{passive:!1}))}destroyPanzoom(){let e=this.panzoomImage;e?.removeEventListener(`panzoomchange`,this.handlePanzoomChange),this.panzoomStage?.removeEventListener(`wheel`,this.handleWheel),this.panzoom?.destroy(),this.panzoom?.resetStyle(),e?.style.removeProperty(`transform`),e?.style.removeProperty(`transition`),this.panzoom=void 0,this.panzoomImage=void 0,this.panzoomStage=void 0}cancelSwipe(){let e=this.swipe?.offset??0;this.swipe=void 0,this.animateSlide(e)}animateSlide(e){this.slideAnimation?.cancel();let t=this.slide;t&&(t.style.removeProperty(`transform`),e&&!this.motionQuery?.matches&&this.isConnected&&(this.slideAnimation=t.animate([{transform:`translateX(${e}px)`},{transform:`translateX(0)`}],{duration:zA,easing:`ease-out`})))}async navigate(e,t=0){if(!this.hasGallery||!this.galleryController.canMove(e)){this.animateSlide(t);return}this.video?.pause();let n=await this.galleryController.move(e);this.isConnected&&(await this.updateComplete,this.animateSlide(n?e*this.direction*(this.stage?.clientWidth??0):t))}revokeOriginalBlobUrl(){this.originalBlobUrl&&=(URL.revokeObjectURL(this.originalBlobUrl),``)}async resolveOriginalUrl(){let e=++this.originalUrlRequest;if(this.revokeOriginalBlobUrl(),this.resolvingOriginal=!1,this.currentImage?.loadFullResolution){this.openOriginalUrl=``;return}let t=this.currentImage,n=(t?.connectVideo?this.video?.getAttribute(`src`)??``:t?.originalSrc||t?.src||this.originalSrc||this.src).trim();if(!n){this.openOriginalUrl=``;return}let r=n.slice(0,5).toLowerCase(),i=r===`data:`,a=r===`blob:`;if(!i&&!a){this.openOriginalUrl=n;return}this.openOriginalUrl=``;let o=i?NA(n):void 0;if(!i||o&&Hl.has(o)){this.resolvingOriginal=!0;try{let t=await(await fetch(n)).blob();if(!this.isConnected||e!==this.originalUrlRequest||!Hl.has(MA(t.type)))return;if(a){this.openOriginalUrl=n;return}this.originalBlobUrl=URL.createObjectURL(t),this.openOriginalUrl=this.originalBlobUrl}catch{}finally{e===this.originalUrlRequest&&(this.resolvingOriginal=!1)}}}},U([V({attribute:!1})],$.prototype,`connectVideo`,void 0),U([V({attribute:!1})],$.prototype,`gallery`,void 0),U([V({attribute:!1})],$.prototype,`loadFullResolution`,void 0),U([V()],$.prototype,`mediaKind`,void 0),U([V()],$.prototype,`src`,void 0),U([V()],$.prototype,`originalSrc`,void 0),U([V({attribute:!1})],$.prototype,`imageTitle`,void 0),U([V({attribute:!1})],$.prototype,`imageWidth`,void 0),U([V({attribute:!1})],$.prototype,`imageHeight`,void 0),U([oi(`.slide`)],$.prototype,`slide`,void 0),U([oi(`.stage`)],$.prototype,`stage`,void 0),U([oi(`.video`)],$.prototype,`video`,void 0),U([oi(`.image`)],$.prototype,`image`,void 0),U([Zr(`.action, video[controls]`)],$.prototype,`focusables`,void 0),U([H()],$.prototype,`openOriginalUrl`,void 0),U([H()],$.prototype,`resolvingOriginal`,void 0),U([H()],$.prototype,`scale`,void 0),U([H()],$.prototype,`panzoom`,void 0),customElements.get(`openclaw-image-lightbox`)||customElements.define(`openclaw-image-lightbox`,$)})))()}var HA=t({});function UA(e){for(let t of e)for(let e of t.addedNodes)if(e instanceof Element&&(e.matches(GS)||e.querySelector(GS))){qA.define();return}}async function WA(e,t){if(t===`pointer`&&(e instanceof PointerEvent&&e.pointerType===`touch`||!globalThis.matchMedia?.(`(hover: hover)`).matches))return;let n=HS(e);if(!n||!qA.providerFor(n))return;await qA.define();let r=e.target;r instanceof EventTarget&&n.isConnected&&Nn(n,t,!0)&&r.dispatchEvent(new Event(t===`pointer`?`pointerover`:`focusin`,{bubbles:!0,composed:!0}))}var GA,KA,qA;function JA(){return(JA=e((()=>{ln(),YS(),Go(),GA=`openclaw-session-progress-hovercard-provider`,KA=null,qA=new Qt({tag:GA,load:async()=>(await W(async()=>{let{SessionProgressHovercardProvider:e}=await import(`./session-progress-hovercard.runtime-CGFOHb0n.js`);return{SessionProgressHovercardProvider:e}},__vite__mapDeps([32,0,1,2,18,16,15,17,19,8,20,33,34,7,9,3,4,5,10,21,22,11,12,35,36]),import.meta.url)).SessionProgressHovercardProvider,onDefined:()=>{KA?.disconnect(),KA=null}}),qA.install(WA),customElements.get(GA)||(KA=new MutationObserver(UA),KA.observe(document,{childList:!0,subtree:!0}),document.querySelector(GS)&&qA.define())})))()}var YA;function XA(){return(XA=e((()=>{R(),B(),cr(),tr(),k(),O(),Rv(),an(),YA=class extends o{constructor(...e){super(...e),this.basePath=``,this.gatewayVersion=null,this.updateAttentionDismissed=!1,this.variant=`identity`}render(){let e=this.variant===`settings`||this.updateAttentionDismissed?Pv(Sn,this.gatewayVersion):Nv(Sn);return!e&&!this.updateAttentionDismissed?I:L`
      <openclaw-tooltip class="sidebar-hover-tooltip" .delay=${600} .closeDelay=${300}>
        <a
          class="sidebar-footer-build"
          href=${qr(`about`,this.basePath)}
          role=${this.variant===`identity`?`menuitem`:I}
          aria-label=${this.updateAttentionDismissed?`${N(`aboutPage.artifactDetails`)}. ${N(`updates.sidebar.availableTitle`)}`:N(`aboutPage.artifactDetails`)}
          @click=${e=>{x(e)&&(e.preventDefault(),this.onNavigate?.(`about`))}}
          >${e?L`<span class="sidebar-footer-build__text">${e}</span>`:I}
          ${this.updateAttentionDismissed?L`<span class="agent-select__badge sidebar-footer-build__update"
                  >${N(`updates.sidebar.availableTitle`)}</span
                >`:I}</a
        >
        <div slot="content" class="sidebar-hover-card sidebar-build-hover-card">
          ${Fv(Sn,this.gatewayVersion)}
        </div>
      </openclaw-tooltip>
    `}},U([V({attribute:!1})],YA.prototype,`basePath`,void 0),U([V({attribute:!1})],YA.prototype,`gatewayVersion`,void 0),U([V({attribute:!1})],YA.prototype,`updateAttentionDismissed`,void 0),U([V({attribute:!1})],YA.prototype,`onNavigate`,void 0),U([V({attribute:!1})],YA.prototype,`variant`,void 0),globalThis.customElements&&!customElements.get(`openclaw-sidebar-build-chip`)&&customElements.define(`openclaw-sidebar-build-chip`,YA)})))()}function ZA(e,t,n){if(!n||tj?.hubId!==e||tj.tab!==t)return;let r=tj;if(Date.now()-r.at>$A){tj=null;return}window.setTimeout(()=>{if(tj!==r)return;tj=null;let e=document.activeElement;n.isConnected&&Date.now()-r.at<=$A&&(e===r.source||e===document.body||e===document.documentElement)&&n.focus()},0)}function QA(e){let t=e.variant??`primary`,n=e.requestedActive??e.active,r=`hub-tabs hub-tabs--${t} ${e.id}-hub-tabs${e.carapace?` oc-segmented`:``}${e.className?` ${e.className}`:``}`,i=e.active===null?e.tabs.find(e=>!e.disabled)?.value:null;return L`
    <wa-tab-group
      class=${r}
      aria-label=${e.ariaLabel}
      .active=${e.active??ej}
      activation="manual"
      without-scroll-controls
      ${ui(t=>iO(t,e.ariaLabel))}
    >
      ${e.tabs.map(t=>{let r=e.active===t.value;return L`
          <wa-tab
            id=${`${e.id}-tab-${t.value}`}
            panel=${t.value}
            aria-controls=${e.panelId}
            class="hub-tab ${e.carapace?`oc-segmented-item`:``}"
            ?active=${r}
            ?disabled=${t.disabled}
            .tabIndex=${r||t.value===i?0:-1}
            aria-selected=${r?`true`:`false`}
            data-test-id=${t.testId??I}
            @click=${r=>{let i=r.currentTarget;i instanceof HTMLElement&&!t.disabled&&(r.detail>0||r.isTrusted)&&t.value!==n&&(e.onSelect(t.value),e.onActivate?.(i))}}
            @keydown=${r=>{let i=r.currentTarget;i instanceof HTMLElement&&!t.disabled&&!r.repeat&&(r.key===`Enter`||r.key===` `)&&t.value!==n&&(r.preventDefault(),tj={hubId:e.id,tab:t.value,at:Date.now(),source:i},e.onSelect(t.value),e.onActivate?.(i))}}
            ${r?ui(n=>ZA(e.id,t.value,n)):I}
          >
            ${t.label}${t.count==null?I:L`<span class="hub-tab__badge hub-tab__badge--count">${t.count}</span>`}${t.badge==null?I:L`<span class="hub-tab__badge">${t.badge}</span>`}
          </wa-tab>
        `})}
    </wa-tab-group>
  `}var $A,ej,tj;function nj(){return(nj=e((()=>{R(),$r(),aO(),$A=2e3,ej=`__openclaw-hub-tabs-no-active__`,tj=null})))()}var rj;function ij(){return(ij=e((()=>{us(),R(),B(),Ae(),O(),Hc(),rj=class extends pt{constructor(...e){super(...e),this.timestampMs=null,this.polling=new _l(this,6e4,()=>this.requestUpdate(),!1,`visible`)}connectedCallback(){super.connectedCallback(),this.polling.start(),this.requestUpdate()}render(){let e=Mo(this.timestampMs);return e===void 0?I:L`<time
          datetime=${new Date(e).toISOString()}
          title=${S(e)}
          >${Pt(e)}</time
        >`}},U([V({attribute:!1})],rj.prototype,`timestampMs`,void 0),customElements.get(`openclaw-relative-time`)||customElements.define(`openclaw-relative-time`,rj)})))()}function aj(e,t,n){if(!t)return I;let r=N(`attention.dismissItem`,{item:e});return L`<button
    type="button"
    class="sidebar-issues-panel__dismiss"
    aria-label=${r}
    aria-busy=${n?`true`:I}
    title=${n?N(`attention.mentions.dismissing`):r}
    ?disabled=${n}
    @click=${e=>{e.preventDefault(),e.stopPropagation(),t()}}
  >
    ${F.x}
  </button>`}function oj(e){return L`<details
    class="sidebar-issues-panel__details ${e.severity?`sidebar-issues-panel__details--${e.severity}`:``}"
  >
    <summary class="sidebar-issues-panel__summary" data-issue-row-focus>
      <span
        class="sidebar-issues-panel__icon ${e.critical?`sidebar-issues-panel__icon--critical`:``}"
        aria-hidden="true"
        >${e.icon}</span
      >
      <span class="sidebar-issues-panel__content">
        <span class="sidebar-issues-panel__entity" title=${e.title}>${e.title}</span>
        <span class="sidebar-issues-panel__state-row sidebar-issues-panel__notification-meta">
          <span class="sidebar-issues-panel__state" title=${e.detail}>${e.detail}</span>
          ${e.timestampMs==null?I:L`
                  <span aria-hidden="true">·</span>
                  <openclaw-relative-time
                    class="sidebar-issues-panel__age"
                    .timestampMs=${e.timestampMs}
                  ></openclaw-relative-time>
                `}
        </span>
      </span>
      ${aj(e.title,e.onDismiss,e.dismissing)}
      <span class="sidebar-issues-panel__chevron" aria-hidden="true">${F.chevronRight}</span>
    </summary>
    <div class="sidebar-issues-panel__body ${e.bodyClass??``}">${e.body}</div>
  </details>`}function sj(){return(sj=e((()=>{R(),k(),P(),ij()})))()}function cj(e){let{mention:t,context:n}=e,r={id:t.senderProfileId,identity:{type:`profile`,id:t.senderProfileId},name:t.senderLabel,avatarUrl:t.senderAvatarUrl,watchedSessions:[]},i=N(`attention.mentions.from`,{sender:t.senderLabel}),a=Fe({face:`chat`,sessionKey:t.sessionKey,fallbackAgentId:t.agentId,basePath:n.basePath,row:{key:t.sessionKey,displayName:t.sessionTitle},exactKey:!0});return L`<article
    class="sidebar-mention-row"
    data-attention-kind="mention"
    data-mention-id=${t.id}
    aria-label=${i}
  >
    ${di(t.id,oj({title:t.sessionTitle,detail:i,timestampMs:t.createdAt,icon:L`<openclaw-viewer-avatar
          .user=${r}
          .markAsViewer=${!1}
          variant="footer"
        ></openclaw-viewer-avatar>`,onDismiss:e.onDismiss,dismissing:e.dismissing,body:L`
          ${t.excerpt?L`<p class="sidebar-mention-row__excerpt">${t.excerpt}</p>`:I}
          <div class="sidebar-issues-panel__actions sidebar-mention-row__actions">
            <a
              class="sidebar-issues-panel__action sidebar-issues-panel__action--primary"
              href=${a.href}
              @click=${t=>{x(t)&&(t.preventDefault(),e.onNavigate(`chat`,a.options))}}
              >${N(`attention.mentions.open`)}</a
            >
          </div>
        `}))}
  </article>`}function lj(e){let t=e.context,n=t.overlays.snapshot,r=e.approval.request.sessionKey?.trim(),i=r?t.sessions.state.result?.sessions.find(e=>j(e.key,r)):void 0,a=r?Fe({context:t,face:`chat`,sessionKey:r}):null;return hA({approval:e.approval,busy:n.approvalBusy,canGrant:n.approvalCanGrant,error:n.approvalErrors.get(e.approval.id)??null,openSessionHref:a?.href,sessionTitle:i?.displayName?.trim()||i?.label?.trim(),onDecision:e.onDecision,onOpenSession:a?t=>{x(t)&&(t.preventDefault(),e.onNavigate(`chat`,a.options))}:void 0})}function uj(e){let t=e.context,n=t.overlays.snapshot,r=t.gateway.snapshot;return L`<openclaw-sidebar-update-card
    class="sidebar-issues-panel__update"
    data-attention-kind="updateAvailable"
    .compact=${!0}
    .updateAvailable=${n.updateAvailable}
    .updateSchedule=${n.updateSchedule}
    .heldUpdateCampaignId=${n.heldUpdateCampaignId}
    .updateBusy=${n.updateRunning||n.updateReconciliationPending}
    .updateRun=${n.updateRun}
    .updateRunAcknowledged=${n.updateRunAcknowledged}
    .connected=${r.phase===`connected`}
    .onAcknowledge=${()=>t.overlays.acknowledgeUpdateRun()}
    .onCheckStatus=${()=>t.overlays.refreshUpdateStatus()}
    .statusBanner=${n.updateStatusBanner}
    .watchUpdateProgress=${e.watchUpdateProgress}
    .canUpdate=${Yi(r,`update.run`,`operator.admin`)}
    .canHoldUpdate=${Yi(r,`update.hold`,`operator.admin`)}
    .onUpdate=${()=>void t.overlays.runUpdate()}
    .refreshRequired=${!1}
    .onHoldUpdate=${()=>t.overlays.holdUpdate()}
    .onReviewUpdate=${e.onNavigate}
    .onDismiss=${e.onDismiss}
  ></openclaw-sidebar-update-card>`}function dj(e){switch(e.phase){case`guidance`:return N(`connection.scopeUpgrade.guidance`);case`available`:return N(`connection.scopeUpgrade.limited`);case`requesting`:return N(`connection.scopeUpgrade.requesting`);case`pending`:return N(`connection.scopeUpgrade.pending`,{command:`openclaw devices approve ${e.requestId}`});case`rejected`:return N(e.expired?`connection.scopeUpgrade.expired`:`connection.scopeUpgrade.rejected`);case`error`:return N(`connection.scopeUpgrade.error`,{error:e.message})}return e}function fj(e){let t=dj(e.state),n=N(`connection.scopeUpgrade.inboxState`),r=e.state.phase===`error`?e.state.retryable:e.state.phase===`pending`||e.state.phase===`rejected`;return L`<details
    class="sidebar-issues-panel__details sidebar-issues-panel__details--${e.state.phase===`error`||e.state.phase===`rejected`?`error`:`warning`}"
    data-attention-kind="scopeUpgrade"
  >
    <summary class="sidebar-issues-panel__summary" data-issue-row-focus>
      <span class="sidebar-issues-panel__icon" aria-hidden="true">${F.shieldQuestion}</span>
      <span class="sidebar-issues-panel__content">
        <span class="sidebar-issues-panel__entity">${N(`connection.scopeUpgrade.status`)}</span>
        <span class="sidebar-issues-panel__state" title=${n}>${n}</span>
      </span>
      ${aj(N(`connection.scopeUpgrade.status`),e.onDismiss)}
      <span class="sidebar-issues-panel__chevron" aria-hidden="true">${F.chevronRight}</span>
    </summary>
    <div class="sidebar-issues-panel__body" role="status" aria-live="polite">
      <div>${t}</div>
      ${e.state.phase===`available`||e.state.phase===`requesting`?L`<div class="sidebar-issues-panel__actions">
              <button
                type="button"
                class="sidebar-issues-panel__action sidebar-issues-panel__action--primary"
                ?disabled=${e.state.phase===`requesting`}
                @click=${e.state.phase===`available`?e.onRequest:I}
              >
                ${N(e.state.phase===`available`?`connection.scopeUpgrade.request`:`connection.scopeUpgrade.requestingAction`)}
              </button>
            </div>`:r||e.state.phase===`error`?L`<div class="sidebar-issues-panel__actions">
                ${r?L`<button
                        type="button"
                        class="sidebar-issues-panel__action sidebar-issues-panel__action--primary"
                        @click=${e.onRetry}
                      >
                        ${N(`connection.scopeUpgrade.retry`)}
                      </button>`:I}
                <button
                  type="button"
                  class="sidebar-issues-panel__action"
                  @click=${e.onCancel}
                >
                  ${N(`connection.scopeUpgrade.cancel`)}
                </button>
              </div>`:I}
    </div>
  </details>`}function pj(e){return e.meta?L`<span class="sidebar-issues-panel__state-row" title=${e.detail}>
    ${e.meta.context?L`<span class="sidebar-issues-panel__meta-context">${e.meta.context}</span>
            <span aria-hidden="true">·</span>`:I}
    <span class="sidebar-issues-panel__meta-status">${e.meta.status}</span>
    <span aria-hidden="true">·</span>
    <span class="sidebar-issues-panel__meta-time">${e.meta.time}</span>
  </span>`:L`<span class="sidebar-issues-panel__state" title=${e.detail}
      >${e.detail}</span
    >`}function mj(e,t){let n=e.action.kind===`navigate`,r=L`
    <span
      class=${n?`sidebar-issues-panel__icon`:`sidebar-issues-panel__icon ${e.kind===`modelAuthExpired`?`sidebar-issues-panel__icon--critical`:``}`}
      aria-hidden="true"
      >${F[e.icon]}</span
    >
    <span class="sidebar-issues-panel__content">
      <span class="sidebar-issues-panel__entity" title=${e.label}>${e.label}</span>
      ${pj(e)}
    </span>
  `;if(e.action.kind===`navigate`){let n=e.action.routeId;return L`<div
      class="sidebar-issues-panel__details sidebar-issues-panel__details--${e.severity}"
      data-attention-kind=${e.kind}
    >
      <div class="sidebar-issues-panel__summary sidebar-issues-panel__summary--navigation">
        <a
          class="sidebar-issues-panel__navigation-link"
          href=${qr(n,t.basePath)}
          data-issue-row-focus
          @click=${e=>{x(e)&&(e.preventDefault(),t.onNavigate(n))}}
        >
          ${r}
        </a>
        ${aj(e.label,t.onDismiss)}
        <span class="sidebar-issues-panel__chevron" aria-hidden="true">${F.chevronRight}</span>
      </div>
    </div>`}let i=e.action.alert.facts.filter(t=>t!==e.label),a=e.inlineAction;return L`<details
    class="sidebar-issues-panel__details sidebar-issues-panel__details--${e.severity}"
    data-attention-kind=${e.kind}
  >
    <summary class="sidebar-issues-panel__summary" data-issue-row-focus>
      ${r} ${aj(e.label,t.onDismiss)}
      <span class="sidebar-issues-panel__chevron" aria-hidden="true">${F.chevronRight}</span>
    </summary>
    <div class="sidebar-issues-panel__body">
      ${i.length?L`<ul class="sidebar-issues-panel__facts">
              ${i.map(e=>L`<li>${e}</li>`)}
            </ul>`:I}
      <div class="sidebar-issues-panel__actions">
        ${a?L`<button
                type="button"
                class="sidebar-issues-panel__action sidebar-issues-panel__action--primary"
                @click=${()=>t.onNavigate(a.routeId)}
              >
                ${a.label}
              </button>`:I}
        <button
          type="button"
          class="sidebar-issues-panel__action ${a?``:`sidebar-issues-panel__action--primary`}"
          @click=${()=>t.onOpen(e)}
        >
          ${zn()}
        </button>
      </div>
    </div>
  </details>`}function hj(){return(hj=e((()=>{R(),ai(),cr(),k(),Ea(),Zi(),je(),A(),yA(),P(),sj(),Cn(),gu(),ug(),oa()})))()}var gj;function _j(){return(_j=e((()=>{gj=[`all`,`approvals`,`mentions`,`automations`,`system`]})))()}function vj(e){let{entry:t,context:n}=e,r=n.gateway.connectionRevision,i=n.gateway.snapshot.client?.recoveryScope,a=Ce(n,t.sessionKey,t.agentId),o=mt(a?.displayName?.trim()||a?.label?.trim()||N(`attention.outbox.conversation`),100),s=n.agents.state.agentsList?.agents.find(e=>e.id===t.agentId),c=s?`${mt(Xe(s),60)} · ${o}`:o,l=N(t.command?t.unconfirmed?`attention.outbox.commandUnconfirmed`:`attention.outbox.commandFailed`:t.unconfirmed?`attention.outbox.unconfirmed`:`attention.outbox.failed`),u=Fe({context:n,face:`chat`,sessionKey:t.sessionKey,agentId:t.agentId,exactKey:!0,focusComposer:!0}),d=n.gateway.snapshot.phase!==`connected`,f=[N(t.unconfirmed?t.command?`attention.outbox.checkCommandBeforeRetry`:`attention.outbox.checkBeforeRetry`:`attention.outbox.reviewHint`),...d?[N(`attention.outbox.offlineHint`)]:[]].join(` `);return L`<article
    class="sidebar-issues-panel__details sidebar-issues-panel__details--${t.severity}"
    data-attention-kind="outbox"
    data-outbox-id=${t.id}
  >
    <div class="sidebar-issues-panel__summary sidebar-outbox-row">
      <span
        class="sidebar-issues-panel__icon sidebar-outbox-row__icon sidebar-outbox-row__icon--${t.severity}"
        aria-hidden="true"
        >${F.alertTriangle}</span
      >
      <div class="sidebar-issues-panel__content">
        <span class="sidebar-issues-panel__entity">${l}</span>
        <span class="sidebar-outbox-row__meta">
          <span class="sidebar-issues-panel__state" title=${c}>${c}</span>
          ${d?L`<span class="sidebar-outbox-row__offline"><span aria-hidden="true">·</span> ${N(`attention.outbox.offline`)}</span>`:I}
        </span>
      </div>
      <openclaw-tooltip .content=${f}>
        <a
          class="sidebar-issues-panel__action sidebar-outbox-row__review"
          href=${u.href}
          aria-label=${N(`attention.outbox.review`)}
          data-issue-row-focus
          @click=${a=>{x(a)&&(a.preventDefault(),n.gateway.connectionRevision===r&&n.gateway.snapshot.client?.recoveryScope===i&&n.sidebarAttention.entries.some(e=>e.type===`outbox`&&e.id===t.id&&e.sessionKey===t.sessionKey&&e.agentId===t.agentId)&&(e.onNavigate(`chat`,u.options),t.dismissal&&n.sidebarAttention.dismiss(t.dismissal)))}}
          >${N(`attention.outbox.reviewShort`)}</a
        >
      </openclaw-tooltip>
    </div>
  </article>`}function yj(){return(yj=e((()=>{R(),k(),Ea(),_t(),Ae(),je(),P(),an(),oa()})))()}var bj;function xj(){return(xj=e((()=>{Kt(),Nt(),Xr(),bj=class{constructor(e,t){this.onChange=t,this.operation=null,this.value={phase:`hidden`},this.current=e,this.sync(e)}get state(){return this.value}sync(e){this.current=e;let t=e.client,n=$t(e);if(!t||n.phase!==`available`){this.retireOperation(),this.setState(n);return}this.operation&&this.operation.client!==t&&(this.retireOperation(),this.setState({phase:`available`})),(this.value.phase===`hidden`||this.value.phase===`guidance`)&&this.setState({phase:`available`})}request(){this.start(!1)}retry(){this.start(!0)}cancel(){this.retireOperation(),this.setState($t(this.current))}dispose(){this.retireOperation()}start(e){let t=this.current.client;if(!t||$t(this.current).phase!==`available`)return;if(this.operation){if(!e)return;this.retireOperation()}let n={client:t};this.operation=n,this.setState({phase:`requesting`}),t.requestScopeUpgrade({onPending:e=>{this.isCurrent(n)&&this.setState({phase:`pending`,requestId:e})}}).then(e=>{this.isCurrent(n)&&e.status!==`approved`&&this.setState({phase:`rejected`,requestId:e.requestId,expired:e.status===`expired`})}).catch(e=>{!this.isCurrent(n)||e instanceof Error&&e.name===`AbortError`||this.setState({phase:`error`,message:M(e),retryable:!(e instanceof rr)||e.retryable})}).finally(()=>{this.isCurrent(n)&&(this.operation=null)})}isCurrent(e){return this.operation===e&&this.current.client===e.client}retireOperation(){let e=this.operation;this.operation=null,e?.client.cancelScopeUpgrade()}setState(e){JSON.stringify(this.value)!==JSON.stringify(e)&&(this.value=e,this.onChange())}}})))()}var Sj=t({ScopeUpgradeController:()=>bj,renderSidebarAttentionPanel:()=>Cj});function Cj(e){let{anchor:t}=e.panelPosition,n=e.panelPosition.anchor===`top`?e.panelPosition.top:e.panelPosition.bottom,r=`left:${e.panelPosition.left}px;${t}:${n}px;--sidebar-issues-panel-${t}:${n}px`,i=e.entries.filter(t=>Pg(t,e.selectedTab)),a=i.flatMap(e=>e.dismissal?[e.dismissal]:[]),o=e.mentions.snapshot,s=i.flatMap(e=>e.type===`mention`?[e.mention.id]:[]),c=s.filter(e=>!o.dismissing.includes(e)),l=a.length>0||s.length>0,u=a.length>0||c.length>0,d=e.selectedTab===`mentions`,f=e.context.gateway.snapshot.phase===`connected`&&(d||e.selectedTab===`all`)&&(o.error!==null||o.phase===`loading`||d&&o.phase===`unavailable`),p=Fg(e.entries);return L`<button
      type="button"
      class="sidebar-issues-panel__backdrop"
      aria-label=${N(`common.close`)}
      @click=${()=>e.onClose()}
    ></button>
    <openclaw-menu-surface>
      <section
        id="sidebar-issues-panel"
        class="sidebar-issues-panel"
        role="dialog"
        aria-modal=${Dn()?`true`:I}
        aria-labelledby="sidebar-issues-panel-heading"
        style=${r}
        @keydown=${e.onKeydown}
      >
        <div class="sidebar-issues-panel__grabber" aria-hidden="true"></div>
        <header class="sidebar-issues-panel__header">
          <h2 id="sidebar-issues-panel-heading" class="sidebar-issues-panel__heading">
            <span class="sidebar-issues-panel__heading-icon" aria-hidden="true"
              >${F.inbox}</span
            >
            ${N(`attention.issues`)}
          </h2>
          <div class="sidebar-issues-panel__header-actions">
            <button
              type="button"
              class="btn btn--xs btn--ghost sidebar-issues-panel__dismiss-shown"
              style=${l?I:`visibility:hidden`}
              ?disabled=${!u}
              aria-hidden=${l?I:`true`}
              @click=${()=>{for(let t of a)e.onDismiss(t);c.length>0&&e.mentions.dismiss(c)}}
            >
              ${N(`attention.dismissShown`)}
            </button>
            <openclaw-tooltip .content=${N(`attention.mentions.notifications`)}>
              <a
                class="sidebar-brand__icon"
                aria-label=${N(`attention.mentions.notifications`)}
                href=${qr(`notifications`,e.context.basePath)}
                @click=${t=>{x(t)&&(t.preventDefault(),e.onNavigate(`notifications`))}}
                >${F.settings}</a
              >
            </openclaw-tooltip>
            <button
              type="button"
              class="sidebar-brand__icon sidebar-issues-panel__mobile-close"
              aria-label=${N(`common.close`)}
              @click=${()=>e.onClose()}
            >
              ${F.x}
            </button>
          </div>
        </header>
        ${QA({id:`sidebar-issues`,active:e.selectedTab,tabs:gj.map(e=>({value:e,label:N(`attention.tabs.${e}`),count:p[e]>0?p[e]:null})),ariaLabel:N(`attention.tabs.label`),panelId:`sidebar-issues-tabpanel`,className:`sidebar-issues-panel__tabs`,variant:`sub`,onSelect:e.onSelectTab})}
        <div class="sidebar-issues-panel__list-wrap">
          <div
            id="sidebar-issues-tabpanel"
            class="sidebar-issues-panel__list"
            role="tabpanel"
            aria-labelledby=${`sidebar-issues-tab-${e.selectedTab}`}
            tabindex="0"
            @scroll=${e.onScroll}
          >
            ${f?L`<div class="sidebar-issues-panel__mentions-note" role="status">
                    <span
                      >${N(o.error===null?o.phase===`loading`?`attention.mentions.loading`:`attention.mentions.unavailable`:`attention.mentions.error`)}</span
                    >
                    ${o.error===null?I:L`<span>${o.error}</span>
                            <button
                              type="button"
                              class="sidebar-issues-panel__action"
                              ?disabled=${o.phase===`loading`}
                              @click=${()=>void e.mentions.refresh()}
                            >
                              ${N(`attention.mentions.refresh`)}
                            </button>`}
                  </div>`:I}
            ${i.length===0&&!f?L`<div class="sidebar-issues-panel__empty">
                    <span class="sidebar-issues-panel__empty-icon" aria-hidden="true"
                      >${F.inbox}</span
                    >
                    <strong
                      >${N(d?`attention.mentions.emptyTitle`:`attention.emptyTitle`)}</strong
                    >
                    <span
                      >${N(d?`attention.mentions.emptyBody`:`attention.emptyBody`)}</span
                    >
                  </div>`:I}
            ${i.map(t=>{let n=t.dismissal,r=n?()=>e.onDismiss(n):void 0;switch(t.type){case`outbox`:return vj({entry:t,context:e.context,onNavigate:e.onNavigate});case`approval`:return lj({approval:t.approval,context:e.context,onNavigate:e.onNavigate,onDecision:e.onApprovalDecision});case`attention`:return mj(t,{basePath:e.context.basePath,onDismiss:r,onNavigate:e.onNavigate,onOpen:e.onOpen});case`mention`:return cj({mention:t.mention,context:e.context,dismissing:o.dismissing.includes(t.mention.id),onDismiss:()=>void e.mentions.dismiss([t.mention.id]),onNavigate:e.onNavigate});case`scopeUpgrade`:return fj({state:t.state,onCancel:()=>e.context.scopeUpgrade.cancel(),onDismiss:r,onRequest:()=>e.context.scopeUpgrade.request(),onRetry:()=>e.context.scopeUpgrade.retry()});case`update`:return uj({context:e.context,onDismiss:r,onNavigate:()=>e.onNavigate(`updates`),watchUpdateProgress:e.watchUpdateProgress})}return t})}
          </div>
          <div
            class="sidebar-issues-panel__overflow-cue sidebar-issues-panel__overflow-cue--top"
            ?hidden=${!e.overflowAbove}
            aria-hidden="true"
          ></div>
          <div
            class="sidebar-issues-panel__overflow-cue sidebar-issues-panel__overflow-cue--bottom"
            ?hidden=${!e.overflowBelow}
            aria-hidden="true"
          ></div>
        </div>
        ${d?L`<footer class="sidebar-issues-panel__mentions-note">
                <span>${N(`attention.mentions.retention`)}</span>
              </footer>`:I}
      </section>
    </openclaw-menu-surface>`}function wj(){return(wj=e((()=>{R(),cr(),Gr(),k(),Ea(),nj(),P(),Ig(),hj(),_j(),yj(),kh(),xj(),oa()})))()}function Tj(e){let{agents:t}=e,n=new Set(e.pinnedAgentIds.map(G));return t.toSorted((e,t)=>+!n.has(G(e.id))-!n.has(G(t.id)))}function Ej(e,t){let n=G(e.id),r=t.identities.get(n)??null,i=rt(e,r);return qp({value:n,label:Xe(e,r),agent:e},r,i?t.resolveAvatarUrl(i):null,i?t.avatarErrorHandler(i):void 0)}function Dj(e,t){let n=e.slice(0,e.length>4?3:4),r=e.length-n.length;return L`
    <span
      class="sidebar-agent-menu__agent-avatar sidebar-agent-menu__avatar-group ${e.length===2?`sidebar-agent-menu__avatar-group--pair`:e.length===3?`sidebar-agent-menu__avatar-group--triple`:``}"
      aria-hidden="true"
    >
      ${n.map(e=>L`<span class="sidebar-agent-menu__group-item"
          >${Ej(e,t)}</span
        >`)}
      ${r>0?L`<span class="sidebar-agent-menu__group-item sidebar-agent-menu__group-count"
              >${r}+</span
            >`:I}
    </span>
  `}function Oj(e,t,n,r){let i=G(e.id),a=t.identities.get(i)??null,o=Xe(e,a),s=i===t.activeId&&!t.allAgentsScope,c=t.pinnedAgentIds.includes(i),l=N(c?`agents.unpinFromSwitcher`:`agents.pinToSwitcher`),u=i===t.activeId?0:t.agentUnreadCount(i),d={value:i,label:o,agent:e,description:r?i:void 0},f=[o,d.description,u>0?N(`sessionsView.unread`):null].filter(Boolean).join(` `);return L`
    <wa-dropdown-item
      class="sidebar-customize-menu__item sidebar-agent-menu__agent-switch agent-select__option ${s?`sidebar-agent-menu__agent-switch--active`:``}"
      value=${`${Aj}${encodeURIComponent(i)}`}
      aria-label=${f}
      aria-current=${s?`true`:I}
      ?autofocus=${n}
    >
      <span class="sidebar-agent-menu__agent-row">
        <span class="sidebar-agent-menu__agent-avatar"> ${Ej(e,t)} </span>
        ${Jp(d)}
        <span class="sidebar-agent-menu__agent-status">
          ${t.agents.length>3?L`<button
                  type="button"
                  class="sidebar-agent-menu__pin"
                  aria-label=${`${l}: ${o}`}
                  title=${l}
                  aria-pressed=${String(c)}
                  tabindex="-1"
                  @click=${async e=>{e.stopPropagation();let n=e.currentTarget;if(!(n instanceof HTMLButtonElement))return;let r=n===document.activeElement;await t.onTogglePinnedAgent(i),r&&n.isConnected&&n.focus({preventScroll:!0})}}
                >
                  ${F.pin}
                </button>`:I}
          ${u>0?L`<span
                  class="session-unread-dot"
                  role="img"
                  aria-label=${N(`sessionsView.unread`)}
                ></span>`:I}
        </span>
      </span>
    </wa-dropdown-item>
  `}function kj(e){let t=Tj(e),n=e.query.trim().toLocaleLowerCase(),r=new Map;for(let n of t){let t=Xe(n,e.identities.get(G(n.id)));r.set(t,(r.get(t)??0)+1)}let i=t.filter(t=>{let r=Xe(t,e.identities.get(G(t.id)));return!n||r.toLocaleLowerCase().includes(n)||t.id.toLocaleLowerCase().includes(n)}),a=e.openMode===`click`&&e.allAgentsScope&&t.length>1,o=e.openMode===`click`&&!a?t.find(t=>G(t.id)===e.activeId)??t[0]:void 0;return L`
    ${e.agents.length>0?L`
            <div class="sidebar-agent-menu__agent-list">
              ${e.agents.length>1&&!n?L`
                      <wa-dropdown-item
                        class="sidebar-customize-menu__item sidebar-agent-menu__agent-switch ${e.allAgentsScope?`sidebar-agent-menu__agent-switch--active`:``}"
                        value="scope:all"
                        aria-current=${e.allAgentsScope?`true`:I}
                        ?autofocus=${a}
                      >
                        <span class="sidebar-agent-menu__agent-row">
                          ${Dj(t,e)}
                          <span class="agent-select__option-copy"
                            ><span class="agent-select__option-label"
                              >${N(`agentChip.showAll`)}</span
                            ></span
                          >
                        </span>
                      </wa-dropdown-item>
                    `:I}
              ${pi(i,e=>e.id,t=>Oj(t,e,t===o,(r.get(Xe(t,e.identities.get(G(t.id))))??0)>1))}
              ${i.length===0?L`<div class="sidebar-agent-menu__empty" role="status">${N(`agentChip.noMatches`)}</div>`:I}
            </div>
          `:I}
  `}var Aj;function jj(){return(jj=e((()=>{R(),vi(),k(),_t(),At(),A(),Xp(),P(),Aj=`agent:`})))()}function Mj(e){return[...e?.querySelectorAll(`:scope > wa-dropdown-item:not([disabled]), :scope > .sidebar-agent-menu__agent-list > wa-dropdown-item:not([disabled])`)??[]]}function Nj(e,t){e.forEach(e=>e.active=e===t),t.focus({preventScroll:!0}),t.scrollIntoView?.({block:`nearest`})}function Pj(e,t){e.target===e.currentTarget&&t(Fp(e))}function Fj(e,t){e.preventDefault();let n=e.detail.item;if(n.dataset.nativeNavigation){delete n.dataset.nativeNavigation,t(!1);return}let r=n.value;if(r&&(t(!1),r.startsWith(Wj))){Ze(decodeURIComponent(r.slice(5)));return}return r}function Ij(e){if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)||e.target instanceof HTMLInputElement&&(e.key===`Home`||e.key===`End`))return!1;let t=e.currentTarget.closest(`wa-dropdown`),n=Mj(t),r=t?.querySelector(`.sidebar-identity-menu__footer`),i=t?.querySelector(`.sidebar-agent-menu__filter`),a=[...i?[i]:[],...n,...r?.querySelectorAll(`a[href], button:not([disabled])`)??[]],o=e.target instanceof HTMLElement?e.target.closest(`wa-dropdown-item`)??e.target:null,s=o?a.indexOf(o):-1;if(r&&s<0)return!1;let c=e.key===`ArrowDown`?1:-1,l=e.key===`Home`?n[0]:e.key===`End`?n.at(-1):s<0?n.at(c===1?0:-1):a[(s+c+a.length)%a.length];return!l||r&&!r.contains(o)&&!r.contains(l)?!1:(e.preventDefault(),e.stopPropagation(),Nj(n,l),!0)}function Lj(e){if(e.key.length!==1||e.metaKey||e.ctrlKey||e.altKey)return!1;let t=e.currentTarget;if(!(t instanceof HTMLElement))return!1;let n=Gj.get(t);if(e.key===` `&&!n?.query)return!1;e.preventDefault(),e.stopPropagation(),n&&clearTimeout(n.timeout);let r=`${n?.query??``}${e.key}`.trim().toLowerCase(),i=setTimeout(()=>Gj.delete(t),1e3);Gj.set(t,{query:r,timeout:i});let a=Mj(t),o=a.find(e=>(e.textContent??``).trim().toLowerCase().startsWith(r));return o&&Nj(a,o),!0}function Rj(e){let t=Mj(e),n=t.find(e=>e.hasAttribute(`autofocus`))??t[0];n&&Nj(t,n)}function zj(){return L`
    ${Hj.map(e=>L`
        <wa-dropdown-item
          slot="submenu"
          class="sidebar-customize-menu__item"
          value=${`${Wj}${encodeURIComponent(e.href)}`}
          data-new-tab-action
          @click=${e=>{e.target instanceof Element&&e.target.closest(`a`)&&(e.currentTarget.dataset.nativeNavigation=`true`)}}
        >
          <a
            href=${e.href}
            target=${Ga}
            rel=${ea()}
            tabindex="-1"
          >
            <span slot="icon" class="nav-item__icon" aria-hidden="true">${F[e.icon]}</span>
            <span class="sidebar-customize-menu__text">${e.label()}</span>
          </a>
        </wa-dropdown-item>
      `)}
  `}function Bj(){return br().communityLinks?L`
    <wa-dropdown-item
      class="sidebar-customize-menu__item sidebar-identity-menu__help"
      value="command:help"
    >
      <span slot="icon" class="nav-item__icon" aria-hidden="true">${F.circleQuestionMark}</span>
      <span class="sidebar-customize-menu__text">${N(`agentChip.help`)}</span>
      ${zj()}
    </wa-dropdown-item>
  `:I}function Vj(e){let t=e.position,{activeId:n,activeName:r}=e,i=N(e.rosterMode?`agentChip.workspaceMenuLabel`:`agentChip.menuLabel`);return L`
    <wa-dropdown
      class="sidebar-customize-menu sidebar-agent-menu"
      data-chat-autotype-exempt
      .open=${!0}
      placement="bottom-start"
      .distance=${0}
      aria-label=${i}
      @pointerenter=${e.onPointerEnter}
      @pointerleave=${e.onPointerLeave}
      @wa-select=${t=>{let r=Fj(t,n=>e.onClose(n||t.detail.item.value===`scope:all`&&e.rosterMode));if(r){if(r.startsWith(`agent:`)){e.onSwitchAgent(decodeURIComponent(r.slice(Aj.length)));return}switch(r){case`scope:all`:e.rosterMode||e.onToggleRoster();break;case`${Uj}agents-directory`:e.onNavigate(`agents-home`);break;case`${Uj}new-agent`:e.onNavigate(`custodian`,{search:`?intent=new-agent`});break;case`${Uj}capabilities`:e.onAskCapabilities(n);break;case`${Uj}agent-settings`:e.onNavigate(`agents`,{pathname:Yn(n,null,e.basePath)})}}}}
      @wa-after-show=${e.onAfterShow}
      @keydown=${t=>{let n=t.target,r=n instanceof HTMLElement?n.closest(`.sidebar-agent-menu__agent-switch`):null,i=r?.querySelector(`.sidebar-agent-menu__pin`);if(i&&n===i&&(t.key===`Enter`||t.key===` `)){t.stopPropagation();return}if(t.key===`Tab`&&r&&i&&(n===r&&!t.shiftKey||n===i&&t.shiftKey)){t.preventDefault(),t.stopPropagation(),(t.shiftKey?r:i).focus();return}if(t.target instanceof HTMLInputElement&&(t.isComposing||![`ArrowDown`,`ArrowUp`,`Escape`,`Tab`].includes(t.key))){t.stopPropagation();return}if(Ij(t)||Lj(t))return;let a=t.target instanceof HTMLElement?t.target.closest(`.sidebar-agent-menu__agent-list > wa-dropdown-item:not([disabled])`):null;if((t.key===`Enter`||t.key===` `)&&a){t.preventDefault(),t.stopPropagation(),a.click();return}t.key===`Escape`&&t.preventDefault(),Pp(t,e.onTabAway)}}
      @wa-after-hide=${t=>Pj(t,e.onClose)}
    >
      ${i_({x:t.x,y:t.top},i)}
      ${e.agents.length>0?L`<div class="sidebar-customize-menu__title">${N(`agentChip.agents`)}</div>`:I}
      ${e.agents.length>6?L`
              <input
                class="sidebar-agent-menu__filter"
                type="search"
                aria-label=${N(`agentChip.search`)}
                placeholder=${N(`agentChip.search`)}
                .value=${e.query}
                @input=${t=>{let n=t.currentTarget;e.onQueryChange(n.value)}}
              />
            `:I}
      ${kj({...e,allAgentsScope:e.rosterMode&&e.agents.length>1})}
      ${e.agents.length>0?L`<div class="sidebar-customize-menu__separator" role="separator"></div>`:I}
      ${r_(`command:new-agent`,N(`custodian.newAgent`),`userPlus`)}
      ${r_(`command:agents-directory`,N(`agentChip.seeAllAgents`),`list`)}
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${n?r_(`command:capabilities`,N(`agentChip.whatCanAgentDo`,{name:r}),`circleQuestionMark`,{disabled:!e.connected}):I}
      ${r_(`command:agent-settings`,n?N(`agentChip.namedSettings`,{name:r}):N(`agentChip.agentSettings`),`settings`,{disabled:!n})}
    </wa-dropdown>
  `}var Hj,Uj,Wj,Gj;function Kj(){return(Kj=e((()=>{R(),cr(),ur(),k(),Ha(),kt(),m_(),P(),jj(),Kp(),Hj=[{href:`https://docs.openclaw.ai`,icon:`book`,label:()=>N(`common.docs`)},{href:`https://docs.openclaw.ai/help`,icon:`messageSquare`,label:()=>N(`agentChip.getHelp`)},{href:`https://discord.gg/clawd`,icon:`users`,label:()=>N(`agentChip.discord`)},{href:`https://docs.openclaw.ai/releases`,icon:`scrollText`,label:()=>N(`agentChip.viewChangelog`)}],Uj=`command:`,Wj=`link:`,Gj=new WeakMap})))()}function qj(e){let t=Kd();if(!t)return I;let n=t.snapshot,r=n?.gateways.find(e=>e.id===n.currentId);return L`
    <div class="sidebar-customize-menu__title">${N(`nav.gateway.sectionLabel`)}</div>
    ${n?.gateways.map((r,i)=>{let a=r.id===n.currentId,o={ok:N(`nav.gateway.connected`),error:N(`nav.gateway.unreachable`),unknown:N(`nav.gateway.unknown`)}[r.health],s=n=>{(n.metaKey||n.ctrlKey)&&(n.preventDefault(),n.stopPropagation(),t.openWindow(r.id),e(!1))};return L`<wa-dropdown-item
        class="sidebar-customize-menu__item"
        value=${`gateway:${encodeURIComponent(r.id)}`}
        role="menuitemradio"
        aria-checked=${String(a)}
        ${ui(e=>Ip(e,a))}
        @click=${s}
        @contextmenu=${s}
      >
        <span
          slot="icon"
          class="sidebar-gateway-health"
          data-health=${r.health}
          role="img"
          aria-label=${o}
        ></span>
        <span class="sidebar-customize-menu__text">${r.name}</span>
        <span slot="details" class="sidebar-gateway-details">
          ${r.isPrimary?L`<span class="sidebar-gateway-primary">${N(`nav.gateway.primaryTag`)}</span>`:I}
          ${!a&&i<9?Sr([`⌘`,String(i+1)],{className:`session-menu__shortcut`,ariaHidden:!0}):I}
          ${a?L`<span class="sidebar-gateway-check" aria-hidden="true">${F.check}</span>`:I}
        </span>
      </wa-dropdown-item>`})}
    ${r?.canPromote?r_(`command:gateway-set-primary`,N(`nav.gateway.setPrimary`),`star`):I}
    ${r_(`command:gateway-settings`,N(`nav.gateway.openSettings`),`server`)}
    <div class="sidebar-customize-menu__separator" role="separator"></div>
  `}function Jj(e){let t=e.position,n=e.profileViewer?.name??e.profileViewer?.email??N(`nav.owner`),r={id:`owner`,watchedSessions:[],...e.profileViewer,name:n},i=e.profileViewer?.email&&e.profileViewer.email!==n?e.profileViewer.email:null;return L`
    <wa-dropdown
      class="sidebar-customize-menu sidebar-identity-menu"
      style=${`--sidebar-identity-menu-min-width: ${e.triggerWidth}px`}
      .open=${!0}
      placement="top-start"
      .distance=${0}
      aria-label=${N(`profilePage.identity.menuLabel`)}
      @wa-select=${t=>{let n=Fj(t,e.onClose);if(!n)return;let r=Kd();if(n.startsWith(`gateway:`)){let e=decodeURIComponent(n.slice(8));e!==r?.snapshot?.currentId&&r?.select(e);return}switch(n){case`${Uj}gateway-set-primary`:{let e=r?.snapshot?.gateways.find(e=>e.id===r.snapshot?.currentId);e?.canPromote&&r?.setPrimary(e.id);break}case`${Uj}gateway-settings`:r?.openSettings();break;case`${Uj}profile`:e.onNavigate(`profile`,{hash:`#settings-profile-identity`});break;case`${Uj}settings`:e.onNavigate(`appearance`);break;case`${Uj}usage`:e.onNavigate(`usage`);break;case`${Uj}pair-mobile`:e.onPairMobile();break;case`${Uj}apps`:e.onNavigate(`apps`);break;case`${Uj}debug-overlay`:Lc();break;case`${Uj}retry-connect`:e.onRetryConnect?.()}}}
      @keydown=${t=>{Ij(t)||Pp(t,e.onTabAway)}}
      @wa-after-hide=${t=>Pj(t,e.onClose)}
    >
      ${i_({x:t.x,y:t.bottom},N(`profilePage.identity.menuLabel`),`bottom`)}
      <wa-dropdown-item
        class="sidebar-customize-menu__item sidebar-identity-menu__header"
        value="command:profile"
      >
        <span slot="icon" class="sidebar-identity-menu__avatar" aria-hidden="true">
          <openclaw-viewer-avatar .user=${r} variant="footer"></openclaw-viewer-avatar>
        </span>
        <span class="sidebar-identity-menu__identity">
          <span class="sidebar-identity-menu__name" title=${n}>${n}</span>
          ${i?L`<span class="sidebar-identity-menu__email" title=${i}
                  >${i}</span
                >`:I}
        </span>
      </wa-dropdown-item>
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${qj(e.onClose)}
      ${r_(`command:settings`,N(`nav.settings`),`settings`,{details:jr(xe.appearanceSettings,{slot:`details`,className:`session-menu__shortcut`,ariaHidden:!0})})}
      ${r_(`command:usage`,Zt(`usage`),`coins`)}
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${r_(`command:pair-mobile`,N(`devices.pairing.button`),`smartphone`,{className:`sidebar-pair-mobile`,disabled:!e.canPairDevice,title:e.canPairDevice?void 0:N(`devices.pairing.adminRequired`)})}
      ${r_(`command:apps`,N(`agentChip.getApps`),`layoutGrid`)}
      ${r_(`command:debug-overlay`,N(`debug.overlay.title`),`activity`,{details:jr(xe.debugOverlay,{slot:`details`,className:`session-menu__shortcut`,ariaHidden:!0})})}

      <div class="sidebar-customize-menu__separator" role="separator"></div>
      ${Bj()}
      ${e.canRetryConnection?L`<div class="sidebar-customize-menu__separator" role="separator"></div>
              <wa-dropdown-item
                class="sidebar-customize-menu__item sidebar-identity-menu__retry"
                value="command:retry-connect"
              >
                <span class="sidebar-customize-menu__text">${N(`connection.retryNow`)}</span>
              </wa-dropdown-item>`:I}
      <div class="sidebar-customize-menu__separator" role="separator"></div>
      <div class="sidebar-identity-menu__footer">
        <openclaw-sidebar-build-chip
          .variant=${`identity`}
          .basePath=${e.basePath}
          .gatewayVersion=${e.gatewayVersion}
          .updateAttentionDismissed=${e.updateAttentionDismissed}
          .onNavigate=${t=>{e.onClose(),e.onNavigate(t)}}
        ></openclaw-sidebar-build-chip>
        <span class="sidebar-mode-switch">
          <openclaw-theme-mode-toggle
            .mode=${e.themeMode}
            .menuItem=${!0}
          ></openclaw-theme-mode-toggle>
        </span>
      </div>
    </wa-dropdown>
  `}function Yj(){return(Yj=e((()=>{R(),$r(),qt(),Yd(),k(),fe(),Yc(),Kj(),m_(),P(),Lr(),XA(),ug(),Kp()})))()}function Xj(e,t){let n=[...e.querySelectorAll(Zj)].filter(e=>e.tabIndex>=0&&e.checkVisibility()),r=t.shiftKey?n[0]:n.at(-1),i=t.shiftKey?n.at(-1):n[0],a=e.ownerDocument.activeElement;(!i||a===e||a===r)&&(t.preventDefault(),i?.focus({preventScroll:!0}))}var Zj,Qj;function $j(){return($j=e((()=>{bs(),R(),B(),Gr(),k(),it(),O(),PC(),kh(),Zj=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]`,Qj=class extends o{constructor(...e){super(...e),this.anchor=null,this.label=``,this.initialFocusSelector=`#sidebar-sessions-owner, #sidebar-sessions-status .settings-segmented__btn--active`,this.content=I,this.onClose=()=>{},this.focused=!1,this.handleOutsidePointer=e=>{let t=e.composedPath();!t.includes(this)&&(!this.anchor||!t.includes(this.anchor))&&this.onClose(!1)},this.handleKeydown=e=>{e.key===`Escape`&&!e.defaultPrevented?(e.preventDefault(),e.stopPropagation(),this.onClose(!0)):e.key===`Tab`&&!e.defaultPrevented&&Dn()&&e.currentTarget instanceof HTMLElement&&Xj(e.currentTarget,e)},this.handleFocusOut=e=>{e.relatedTarget instanceof Node&&!this.contains(e.relatedTarget)&&e.relatedTarget!==this.anchor&&this.onClose(!1)},this.focusInitialControl=()=>{this.focused||(this.focused=!0,this.querySelector(this.initialFocusSelector)?.focus({preventScroll:!0}))}}connectedCallback(){super.connectedCallback(),Ge(this),this.ownerDocument.addEventListener(`pointerdown`,this.handleOutsidePointer,!0)}disconnectedCallback(){this.ownerDocument.removeEventListener(`pointerdown`,this.handleOutsidePointer,!0),super.disconnectedCallback()}updated(){let e=this.querySelector(`wa-popup`);e&&this.anchor?jC(e,this.anchor,`bottom`):requestAnimationFrame(this.focusInitialControl)}render(){let e=Dn(),t=L`<div
      class="sidebar-session-filter-panel"
      tabindex="-1"
      role="dialog"
      aria-label=${this.label}
      aria-modal=${e?`true`:I}
      @keydown=${this.handleKeydown}
      @focusout=${this.handleFocusOut}
    >
      <div class="sidebar-session-filter-panel__grabber" aria-hidden="true"></div>
      ${this.content}
    </div>`;return e?L`<button
            type="button"
            class="sidebar-session-filter-panel__backdrop"
            tabindex="-1"
            aria-label=${N(`common.close`)}
            @click=${()=>this.onClose(!0)}
          ></button>
          <openclaw-menu-surface>${t}</openclaw-menu-surface>`:L`<wa-popup active @wa-reposition=${this.focusInitialControl}>${t}</wa-popup>`}},U([V({attribute:!1})],Qj.prototype,`anchor`,void 0),U([V({attribute:!1})],Qj.prototype,`label`,void 0),U([V({attribute:!1})],Qj.prototype,`initialFocusSelector`,void 0),U([V({attribute:!1})],Qj.prototype,`content`,void 0),U([V({attribute:!1})],Qj.prototype,`onClose`,void 0),customElements.define(`openclaw-sidebar-session-filter-popover`,Qj)})))()}function eM(e){return L`
    <wa-dropdown-item
      slot=${e.submenu?`submenu`:I}
      class="sidebar-session-sort-menu__item"
      value=${e.value}
      role="menuitemradio"
      aria-label=${e.label}
      aria-checked=${String(e.checked)}
      ${ui(t=>Ip(t,e.checked))}
    >
      <span slot="details" class="session-menu__check" aria-hidden="true"
        >${e.checked?F.check:I}</span
      >
      <span class="row session-menu__label">
        ${e.owner?fg(e.owner,`row`,`owned`):I}
        <span class="session-menu__text">${e.label}</span>
      </span>
    </wa-dropdown-item>
  `}function tM(e){return e.owners.map(t=>eM({value:`owner:${t.id}`,checked:e.ownerFilterId===t.id,label:t.id===e.selfOwnerId?N(`sessionsView.ownerYou`,{name:t.label??t.id}):t.label??t.id,owner:t,submenu:e.submenu}))}function nM(e){let{owners:t,ownerFilterId:n,involvingMe:r}=e;if(t.length===0&&n===null&&!r)return I;let i=t.find(e=>e.id===n),a=i?.label??i?.id,o=a?N(`sessionsView.specificOwnerSelected`,{name:a}):N(`sessionsView.specificOwnerAvailable`,{count:String(t.length)}),s=i?L`${hg(i)}
        <span class="sidebar-session-owner-selection__name">${a}</span>`:L`<span class="sidebar-session-owner-count">${t.length}</span>`;return L`
    <div class="session-menu__separator" role="separator"></div>
    <div class="sidebar-session-sort-menu__title">${N(`sessionsView.owners`)}</div>
    ${eM({value:`owner:`,checked:n===null&&!r,label:N(`sessionsView.allOwners`)})}
    ${eM({value:`involving-me`,checked:r,label:N(`sessionsView.involvingMe`)})}
    ${t.length>0?e.compact?qh({value:`compact:open-specific-owner`,label:N(`sessionsView.specificOwner`),icon:F.users,details:L`<span class="session-menu__shortcut sidebar-session-owner-selection"
                >${s}</span
              >`,accessibleLabel:o}):L`<wa-dropdown-item
              class="sidebar-session-sort-menu__item sidebar-session-owner-submenu sidebar-session-choice-submenu"
              aria-label=${o}
            >
              <span class="session-menu__text">${N(`sessionsView.specificOwner`)}</span>
              <span
                slot="details"
                class="session-menu__shortcut sidebar-session-owner-selection"
                aria-hidden="true"
                >${s}</span
              >
              ${tM({...e,submenu:!0})}
            </wa-dropdown-item>`:I}
  `}function rM(e){return e===`compact:open-specific-owner`?`specific-owner`:e===`compact:back`?`root`:null}function iM(e){let{host:t}=e,n=e.sessionGroupMenu;if(!n)return I;let r=e.sessionGroupMenuTrigger,i=t.sessionDataContext?.sessions.groupsStatus()??`idle`,a=Object.fromEntries(Object.entries({"group-defaults":`sessions.groups.update`,"rename-group":`sessions.groups.rename`,"new-group":`sessions.groups.put`,"delete-group":`sessions.groups.delete`}).flatMap(([e,n])=>{let r=b(t.sessionDataContext?.gateway.snapshot,{method:n,requiredScope:`operator.write`});return r.allowed?e===`group-defaults`&&i!==`ready`&&i!==`unavailable`?[[e,N(`common.loading`)]]:[]:[[e,r.reason]]})),o=(e,n,r)=>L`<wa-dropdown-item
    class=${`session-menu__item${e===`delete-group`?` session-menu__item--destructive`:``}`}
    value=${e}
    variant=${e===`delete-group`?`danger`:I}
    ?disabled=${!t.connected||!!a[e]}
    title=${a[e]??I}
  >
    <span slot="icon" class="session-menu__icon" aria-hidden="true">${r}</span>
    <span class="session-menu__text">${n}</span>
  </wa-dropdown-item>`;return di(n,a_({position:n,className:`session-menu sidebar-session-group-menu`,label:N(`sessionsView.groupMenu`,{group:n.group}),onSelect:({value:r})=>{if((r===`group-defaults`||r===`rename-group`||r===`new-group`||r===`delete-group`)&&!a[r])switch(e.closeSessionGroupMenu({restoreFocus:!0}),r){case`group-defaults`:if(i===`unavailable`){t.sessionDataContext?.sessions.groupsInvalidate(),t.sessionDataContext?.sessions.groupsLoad();break}t.sessionOrganizer.editSessionGroupDefaults(n.group);break;case`rename-group`:t.sessionOrganizer.renameSessionGroupFromMenu(n.group);break;case`new-group`:t.sessionOrganizer.createSessionGroup();break;case`delete-group`:t.sessionOrganizer.deleteSessionGroupFromMenu(n.group)}},onTabAway:()=>r?.focus(),onClose:t=>{e.sessionGroupMenu===n&&e.closeSessionGroupMenu({restoreFocus:t})},content:L`
        ${o(`group-defaults`,i===`unavailable`?`${N(`common.retry`)}: ${N(`sessionsView.groupDefaultsMenu`)}`:N(`sessionsView.groupDefaultsMenu`),F.settings)}
        ${o(`rename-group`,N(`sessionsView.renameGroupMenu`),F.edit)}
        ${o(`new-group`,N(`sessionsView.newGroup`),F.folder)}
        <div class="session-menu__separator" role="separator"></div>
        ${o(`delete-group`,N(`sessionsView.deleteGroupMenu`),F.trash)}
      `}))}function aM(e){let{host:t}=e,n=e.catalogViewMenuPosition;if(!n)return I;let r=e.catalogViewMenuTrigger,i={owners:t.sessionOwnershipVisibility.filters?t.sessionOwnerOptions:[],ownerFilterId:t.sessionOwnerFilterActive?t.sessionOwnerFilterId:null,involvingMe:t.sessionInvolvingMeFilterActive,selfOwnerId:t.sessionDataContext?.gateway.snapshot.selfUser?.id??null,compact:Dn()},a=(n,r=!1)=>{t.setSessionOwnerFilter(n,r),e.closePositionedMenu(`catalogView`,{restoreFocus:!0})},o=[{grouping:`project`,label:N(`chat.sidebar.catalogGroupByProject`)},{grouping:`person`,label:N(`chat.sidebar.catalogGroupByPerson`)},{grouping:`none`,label:N(`sessionsView.groupByNone`)}];return di(`${n.catalogId}:${n.x}:${n.y}`,a_({position:n,className:`sidebar-session-sort-menu sidebar-catalog-view-menu${i.compact?` session-menu--compact`:``}`,label:N(`chat.sidebar.catalogViewOptions`),onSelect:({value:r})=>{let i=rM(r);i?e.setFilterMenuView(i):r?.startsWith(`grouping:`)?(t.setCatalogProjectGrouping(r.slice(9)),e.closePositionedMenu(`catalogView`,{restoreFocus:!0})):r?.startsWith(`owner:`)?a(r.slice(6)||null):r===`involving-me`?a(null,!0):r===`hide-catalog`&&e.catalogViewMenuPosition===n&&(t.hideSessionCatalog(n.catalogId),e.closePositionedMenu(`catalogView`))},onTabAway:()=>r?.focus(),onClose:t=>{e.catalogViewMenuPosition===n&&e.closePositionedMenu(`catalogView`,{restoreFocus:t})},content:L`
        ${i.compact&&e.filterMenuView===`specific-owner`?Jh(L`${tM({...i,submenu:!1})}`):L`<div class="sidebar-session-sort-menu__title">${N(`sessionsView.groupBy`)}</div>
                ${o.map(e=>eM({value:`grouping:${e.grouping}`,checked:t.catalogProjectGrouping===e.grouping,label:e.label}))}
                ${nM(i)}
                <div class="session-menu__separator" role="separator"></div>
                <wa-dropdown-item class="sidebar-session-sort-menu__item" value="hide-catalog">
                  <span class="session-menu__text">${N(`chat.sidebar.hideFromSidebar`)}</span>
                </wa-dropdown-item>`}
      `}))}function oM(e){let{host:t}=e,n=e.sessionSortMenuPosition;if(!n)return I;let r=Ye.sessionSources,i=t.sidebarAgentsMode===`roster`,a=t.effectiveSessionsGrouping(),o=t.sessionOwnershipVisibility.filters?t.sessionOwnerOptions:[],s=t.sessionOwnerFilterActive?t.sessionOwnerFilterId:null,c=t.sessionInvolvingMeFilterActive,l=t.sessionDataContext?.gateway.snapshot.selfUser?.id??null,u=t.sessionPeopleSortAvailable(),d=g_(t)>0||t.sessionsShowCron||t.sessionsShowSystem||t.sessionsShowPreview||t.effectiveSessionSortMode()!==`created`||!i&&(a!==`category`||t.sessionsEmptyGroupsMode!==`filtering`),f=o.length>0||s!==null||c,p=Dn(),m=c?`involving-me`:s===null?`all`:`owner:${s}`,h=(e,t,n,r,i)=>L`<div id=${e} class="sidebar-session-menu-row">
    <span aria-hidden="true" title=${t}>${t}</span>
    ${Ak({value:n,options:r.map(e=>({...e,title:e.label})),ariaLabel:t,className:`sidebar-session-menu-segmented`,onChange:i})}
  </div>`,g=(e,t,n,r)=>L`<button
    type="button"
    role="switch"
    id=${e}
    aria-checked=${String(n)}
    class="sidebar-session-menu-switch"
    @click=${()=>r(!n)}
  >
    <span>${t}</span
    ><span inert aria-hidden="true">
      <wa-switch size="s" .checked=${n} tabindex="-1"></wa-switch>
    </span>
  </button>`;return di(n,L`<openclaw-sidebar-session-filter-popover
      class="sidebar-session-sort-menu"
      .anchor=${e.sessionSortMenuTrigger}
      .label=${N(`chat.sidebar.sortSessions`)}
      .onClose=${t=>{e.sessionSortMenuPosition===n&&e.closePositionedMenu(`sessionSort`,{restoreFocus:t})}}
      .content=${L`
        <section
          class="sidebar-session-menu-section"
          aria-labelledby="sidebar-sessions-filters-label"
        >
          <div class="sidebar-session-menu-heading">
            <h3 id="sidebar-sessions-filters-label">${N(`chat.sidebar.menuFilters`)}</h3>
            ${d?L`<button
                    type="button"
                    id="sidebar-sessions-reset"
                    class="sidebar-session-menu-reset"
                    @click=${e=>{e.currentTarget.closest(`.sidebar-session-filter-panel`)?.querySelector(`#sidebar-sessions-status wa-radio[value="active"]`)?.focus(),t.setSessionOwnerFilter(null),t.sessionOrganizer.setSessionsStatusFilter(`active`),t.sessionOrganizer.setSessionsShowCron(!1),t.sessionOrganizer.setSessionsShowSystem(!1),t.sessionOrganizer.setSessionsShowPreview(!1),t.setSessionSortMode(`created`),i||(a!==`category`&&t.sessionOrganizer.setSessionsGrouping(`category`),t.setSessionsEmptyGroupsMode(`filtering`))}}
                  >
                    ${N(`common.reset`)}
                  </button>`:I}
          </div>
          ${f?L`<div class="sidebar-session-menu-row">
                  <label for="sidebar-sessions-owner">${N(`sessionsView.owners`)}</label>
                  ${HC({id:`sidebar-sessions-owner`,label:N(`sessionsView.owners`),value:m,searchable:`always`,sheet:p,showOptionTooltips:!1,renderLeading:e=>{let t=o.find(t=>`owner:${t.id}`===e.value);return t?hg(t):I},options:[{value:`all`,label:N(`sessionsView.allOwners`)},{value:`involving-me`,label:N(`sessionsView.involvingMe`)},...o.map(e=>({value:`owner:${e.id}`,label:e.id===l?N(`sessionsView.ownerYou`,{name:e.label??e.id}):e.label??e.id})),...s!==null&&!o.some(e=>e.id===s)?[{value:`owner:${s}`,label:s}]:[]],onChange:e=>t.setSessionOwnerFilter(e.startsWith(`owner:`)?e.slice(6):null,e===`involving-me`)})}
                </div>`:I}
          ${h(`sidebar-sessions-status`,N(`sessionsView.status`),t.sessionsStatusFilter,mv.map(e=>({value:e,label:N(e===`active`?`common.active`:e===`snoozed`?`sessionsView.snoozed`:e===`archived`?`sessionsView.archived`:`sessionsView.all`)})),e=>t.sessionOrganizer.setSessionsStatusFilter(e))}
          ${g(`sidebar-sessions-cron`,N(`sessionsView.showCronSessions`),t.sessionsShowCron,e=>t.sessionOrganizer.setSessionsShowCron(e))}
          ${g(`sidebar-sessions-system`,N(`sessionsView.showSystemSessions`),t.sessionsShowSystem,e=>t.sessionOrganizer.setSessionsShowSystem(e))}
        </section>
        <section
          class="sidebar-session-menu-section"
          aria-labelledby="sidebar-sessions-display-label"
        >
          <div class="sidebar-session-menu-heading">
            <h3 id="sidebar-sessions-display-label">${N(`chat.sidebar.menuDisplay`)}</h3>
          </div>
          ${i?I:HC({id:`sidebar-sessions-group`,label:N(`sessionsView.groupBy`),value:a,variant:`submenu`,sheet:p,showOptionTooltips:!1,options:[{value:`category`,label:N(`sessionsView.groupByCategory`)},{value:`project`,label:N(`chat.sidebar.catalogGroupByProject`)},...u?[{value:`person`,label:N(`sessionsView.groupByPerson`)}]:[],{value:`none`,label:N(`sessionsView.groupByNone`)}],onChange:e=>t.sessionOrganizer.setSessionsGrouping(e)})}
          ${HC({id:`sidebar-sessions-sort`,label:N(`chat.sidebar.sortBy`),value:t.effectiveSessionSortMode(),variant:`submenu`,sheet:p,showOptionTooltips:!1,options:pv.filter(e=>e.mode!==`people`||u).map(e=>({value:e.mode,label:N(e.labelKey)})),onChange:e=>{let n=pv.find(t=>t.mode===e);n&&t.setSessionSortMode(n.mode)}})}
          ${i?I:HC({id:`sidebar-sessions-empty`,label:N(`sessionsView.hideEmptyGroups`),value:t.sessionsEmptyGroupsMode,variant:`submenu`,sheet:p,showOptionTooltips:!1,options:sM.map(e=>({value:e.mode,label:N(e.labelKey)})),onChange:r=>{let i=sM.find(e=>e.mode===r);i&&e.sessionSortMenuPosition===n&&t.setSessionsEmptyGroupsMode(i.mode)}})}
          ${g(`sidebar-sessions-preview`,N(`sessionsView.showSessionPreview`),t.sessionsShowPreview,e=>t.sessionOrganizer.setSessionsShowPreview(e))}
        </section>
        <footer class="sidebar-session-menu-footer">
          <a
            id="sidebar-sessions-sources"
            class="sidebar-session-filter-footer"
            href=${qr(r.routeId,t.basePath)+r.search+r.hash}
            @click=${n=>{x(n)&&(n.preventDefault(),e.closePositionedMenu(`sessionSort`),t.onNavigate?.(r.routeId,{search:r.search,hash:r.hash}))}}
          >
            <span aria-hidden="true">${F.settings}</span>${N(`chat.sidebar.sessionSources`)}
          </a>
        </footer>
      `}
    ></openclaw-sidebar-session-filter-popover>`)}var sM;function cM(){return(cM=e((()=>{R(),ai(),$r(),cr(),Gr(),k(),ke(),Qe(),m_(),x_(),J(),Ms(),P(),GC(),Xh(),$j(),_g(),Lk(),Kp(),sM=[{mode:`filtering`,labelKey:`sessionsView.emptyGroupsWhenFiltering`},{mode:`always`,labelKey:`sessionsView.emptyGroupsAlways`},{mode:`never`,labelKey:`sessionsView.emptyGroupsNever`}]})))()}function lM(e){let t=e.pluginNavigationMenuPosition;if(!t||t.entry.signal.aborted)return I;let{entry:n}=t,r=e.pluginNavigationMenuTrigger,i=n.value.actions??[];return p_({position:t,item:n.value,onSelect:async a=>{if(e.pluginNavigationMenuPosition!==t)return;let o=i.find(e=>e.id===a);if(e.closePositionedMenu(`pluginNavigation`,{restoreFocus:!0}),o&&!n.signal.aborted&&r?.isConnected)try{await o.run()}catch(t){n.signal.aborted||(e.host.sessionDataContext?.plugins.reportError(n.pluginId,t),jt({message:t instanceof Error?t.message:String(t)}))}},onTabAway:()=>r?.focus(),onClose:n=>{e.pluginNavigationMenuPosition===t&&e.closePositionedMenu(`pluginNavigation`,{restoreFocus:n})}})}function uM(){return(uM=e((()=>{R(),Ke(),m_()})))()}function dM(e){let t=e.peopleFilterMenuPosition;if(!t)return I;let n=e.host.people,r=n=>{e.peopleFilterMenuPosition===t&&(n(),e.closePositionedMenu(`peopleFilter`,{restoreFocus:!0}))},i=Dn(),a=n.statusFilter!==`all`||n.sortMode!==`presence`;return di(t,L`<openclaw-sidebar-session-filter-popover
      class="sidebar-session-sort-menu sidebar-people-filter-menu"
      .anchor=${e.peopleFilterMenuTrigger}
      .label=${N(`presence.filters.label`)}
      .initialFocusSelector=${`#sidebar-people-status`}
      .onClose=${n=>{e.peopleFilterMenuPosition===t&&e.closePositionedMenu(`peopleFilter`,{restoreFocus:n})}}
      .content=${L`
        <div class="sidebar-session-menu-section">
          ${HC({id:`sidebar-people-status`,label:N(`sessionsView.status`),value:n.statusFilter,variant:`submenu`,sheet:i,showOptionTooltips:!1,options:[{value:`all`,label:N(`sessionsView.all`)},{value:`running`,label:N(`common.running`)}],onChange:e=>{(e===`all`||e===`running`)&&r(()=>n.setStatusFilter(e))}})}
          ${HC({id:`sidebar-people-sort`,label:N(`chat.sidebar.sortBy`),value:n.sortMode,variant:`submenu`,sheet:i,showOptionTooltips:!1,options:fM.map(e=>({value:e.value,label:N(e.labelKey)})),onChange:e=>{let t=fM.find(t=>t.value===e);t&&r(()=>n.setSortMode(t.value))}})}
        </div>
        ${a?L`<footer class="sidebar-session-menu-footer">
                <button
                  type="button"
                  id="sidebar-people-reset"
                  class="sidebar-session-filter-footer"
                  @click=${()=>r(()=>n.resetView())}
                >
                  ${N(`presence.filters.reset`)}
                </button>
              </footer>`:I}
      `}
    ></openclaw-sidebar-session-filter-popover>`)}var fM;function pM(){return(pM=e((()=>{R(),ai(),Gr(),k(),GC(),$j(),fM=[{value:`presence`,labelKey:`presence.filters.presence`},{value:`running`,labelKey:`presence.filters.running`},{value:`open`,labelKey:`presence.filters.total`},{value:`name`,labelKey:`presence.filters.name`}]})))()}var mM=t({focusActiveAgentMenuItem:()=>Rj,renderSidebarAgentMenuForController:()=>gM,renderSidebarCatalogViewMenuForController:()=>aM,renderSidebarCustomizeMenuForController:()=>hM,renderSidebarIdentityMenuForController:()=>_M,renderSidebarMoreMenuForController:()=>yM,renderSidebarPeopleFilterMenuForController:()=>dM,renderSidebarPluginNavigationMenuForController:()=>lM,renderSidebarSessionGroupMenuForController:()=>iM,renderSidebarSessionMenuForController:()=>vM,renderSidebarSessionSortMenuForController:()=>oM});function hM(e){let{host:t}=e,n=e.customizeMenuPosition;if(!n)return I;let r=e.customizeMenuTrigger,i=e=>{let n=t.reconciledSidebarZone().sidebarEntries;t.onUpdateSidebarEntries?.(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return f_({position:n,sidebarEntries:t.sidebarEntries,preferencesBrowserOnly:t.preferencesBrowserOnly,isRouteEnabled:t=>e.isRouteEnabled(t),pluginNavigation:t.pluginNavigation(),onTabAway:()=>r?.focus(),onClose:t=>{e.customizeMenuPosition===n&&e.closePositionedMenu(`customize`,{restoreFocus:t})},onToggleRoute:e=>i(mn({type:`route`,route:e})),onTogglePlugin:e=>i(mn({type:`plugin`,key:e})),onReset:()=>{let n=t.reconciledSidebarZone().sidebarEntries.filter(e=>e.startsWith(`session:`));t.onUpdateSidebarEntries?.([...tn,...n]),e.closePositionedMenu(`customize`,{restoreFocus:!0})}})}function gM(e){let{host:t}=e,n=e.agentMenuPosition;if(!n)return I;let r=e.agentMenuTrigger,{activeId:i,agent:a,agents:o,identity:s,identities:c}=t.activeChipAgent();return Vj({position:n,basePath:t.basePath,activeId:a?i:``,activeName:a?Xe(a,s):``,agents:o,identities:c,pinnedAgentIds:t.pinnedAgentIds,onTogglePinnedAgent:async e=>{t.sessionDataContext&&(or(t.sessionDataContext.navigation,e),await t.updateComplete)},query:e.agentMenuQuery,onQueryChange:t=>e.setAgentMenuQuery(t),rosterMode:t.sidebarAgentsMode===`roster`,onToggleRoster:()=>{t.sidebarAgentsMode=t.sidebarAgentsMode===`roster`?`chip`:`roster`,Kr({sidebarAgentsMode:t.sidebarAgentsMode}),t.updateComplete.then(()=>{t.querySelector(`.sidebar-workspace-header__main, .sidebar-agent-card__main`)?.focus()})},connected:t.connected,resolveAvatarUrl:t=>e.agentMenuAvatars.resolve(t),avatarErrorHandler:t=>e.agentMenuAvatars.imageErrorHandler(t),openMode:e.agentMenuInteractionState===`open-hover`?`hover`:`click`,agentUnreadCount:e=>t.agentUnreadCount(e),onPointerEnter:()=>e.handleAgentMenuPointerEnter(),onPointerLeave:()=>e.handleAgentMenuPointerLeave(),onAfterShow:()=>e.restoreFocusAfterAgentMenuHoverOpen(),onSwitchAgent:e=>{t.sidebarAgentsMode===`roster`&&(t.sidebarAgentsMode=`chip`,Kr({sidebarAgentsMode:`chip`})),t.switchChipAgent(e)},onAskCapabilities:e=>t.askAgentCapabilities(e),onTabAway:()=>r?.focus(),onClose:t=>{e.agentMenuPosition===n&&e.closeAgentMenu({restoreFocus:t})},onNavigate:(e,n)=>t.onNavigate?.(e,n)})}function _M(e){let{host:t}=e,n=e.identityMenuPosition;if(!n)return I;let r=e.identityMenuTrigger,i=t.sessionDataContext?Vr(t.sessionDataContext.gateway).displayUser:null,a=t.sessionDataContext,o=a?.overlays.snapshot,s=hr({gatewayBootId:a?.gateway.snapshot.hello?.server?.bootId,updateAvailable:o?.updateAvailable,updateSchedule:o?.updateSchedule}),c=!!(a&&s&&lr(o?.updateAvailable,o?.updateSchedule,!!(o?.updateRunning||o?.updateReconciliationPending))&&!o?.updateRunning&&!o?.updateReconciliationPending&&o?.updateSchedule?.campaign?.state!==`applying`&&!Wt(o?.updateStatusBanner?.tone)&&xn(ir(Nr(a.gateway)),s));return Jj({position:n,canPairDevice:t.canPairDevice,basePath:t.basePath,gatewayVersion:t.gatewayVersion,updateAttentionDismissed:c,profileViewer:i?{...i,watchedSessions:[]}:void 0,canRetryConnection:Tr(t.connectionStatus),themeMode:t.themeMode,triggerWidth:n.width,onTabAway:()=>r?.focus(),onClose:t=>{e.identityMenuPosition===n&&e.closePositionedMenu(`identity`,{restoreFocus:t})},onNavigate:(e,n)=>t.onNavigate?.(e,n),onPairMobile:()=>t.onPairMobile?.(),onRetryConnect:t.onRetryConnect})}function vM(e){let{host:t}=e,n=e.sessionMenu;if(!n)return I;let r=t.sessionDataContext,i=e.pluginActionLifetime.signal,a=t.findSidebarMenuSessionByKey(n.session.key),o=()=>t.sessionData.sessionsResult?.sessions.find(e=>e.key===n.session.key&&e.sessionId===n.session.sessionId),s=o(),c=a&&a.sessionId===n.session.sessionId?a:n.session,u=we({agentsList:t.sessionDataContext?.agents.state.agentsList,hello:t.sessionDataContext?.gateway.snapshot.hello}),d=t.selectedVisibleSessions(),f=d.length>1&&d.some(e=>e.key===c.key)?d:null,p=f??[c],m=p.every(e=>be(e,u)),h=l(p,u),g=p.flatMap(e=>e.subagentSummary?.unreadHiddenRuns??[]),_=p.every(e=>e.unread||(e.subagentSummary?.unreadHiddenRuns?.length??0)>0),v=p.every(e=>e.archived===!0),y=p.every(e=>(e.category??null)===(p[0]?.category??null))?p[0]?.category??null:null,b=c.cloudWorkerStopAction,x=!(f||!b||b.blocksActiveRun&&c.hasActiveRun||!r||Xi(r.gateway.snapshot,b.method)!==!0),S=r?.gateway.snapshot.selfUser??null,C=t.readSessionMutationAccess({method:`sessions.assignOwner`,params:{key:c.key,owner:{type:`human`,id:S?.id??`profile`}},requiredScope:`operator.write`}),w={...ck({snapshot:r?.gateway.snapshot,session:c,batchRows:f,cloudWorkerStopAction:c.cloudWorkerStopAction}),...C.allowed?{}:{"assign-owner":C.reason}};return di(n,L`
      <openclaw-session-menu
        .session=${{label:c.label,sessionId:c.sessionId??null,isChild:c.isChild,pinned:c.pinned,pinnable:c.pinnable,unread:_,hiddenFromInvolvingMe:c.hiddenFromInvolvingMe,archived:v,snoozedUntil:c.snoozedUntil??null,archiving:p.some(e=>r?.sessions.archiveVisibility(e.key)===`pending`),category:f?y:c.category??null,icon:f?null:c.icon??null,color:f?null:c.color??null,categoryClearReturnsToGroups:y!==null&&p.every(e=>dl(e,t.sessionsGrouping))}}
        .selectionCount=${p.length}
        .compact=${Dn()}
        .lastActive=${f?``:$p(c.updatedAt)}
        .anchor=${n}
        .trigger=${e.sessionMenuTrigger}
        .disabled=${!t.connected}
        .actionDisabledReasons=${w}
        .navigationAllowed=${!!r}
        .copyMarkdownAllowed=${Dl(r?.gateway.snapshot)}
        .splitAllowed=${wc()}
        .forkDisabled=${t.sessionData.sessionsLoading||c.modelSelectionLocked}
        .forkFromLastCompleted=${c.gatewayHasActiveRun??c.hasActiveRun}
        .snoozeAllowed=${!0}
        .archiveAllowed=${m}
        .deleteAllowed=${h}
        .cloudWorkerStopAllowed=${x}
        .groups=${t.knownSessionGroups()}
        .currentOwner=${c.owner?.actor??null}
        .work=${f?null:e.sessionMenuWork}
        .pluginActions=${!f&&r?.plugins&&s?Vc(r.plugins,s):[]}
        .onClose=${()=>{e.sessionMenu===n&&e.closeSessionMenu()}}
        .onAction=${e=>{if(f){t.sessionOrganizer.runBatchSessionAction(e,f,_);return}switch(e.kind){case`open-pr`:Ze(e.url);break;case`open-in`:xa(e.editor,e.path);break;case`copy-session-id`:case`copy-session-link`:case`copy-session-preview-link`:case`copy-markdown`:case`open-new-tab`:case`open-new-window`:case`split-right`:case`split-below`:if(r){let n=t.getSessionNavigationState().selectedAgentId;wl(e.kind,{context:r,session:c,agentId:n,isCurrent:()=>t.sessionDataContext===r&&t.getSessionNavigationState().selectedAgentId===n})}break;case`toggle-pin`:t.sessionOrganizer.patchSession(c,{pinned:!c.pinned},{sessionScope:!0});break;case`toggle-involving-me`:t.sessionOrganizer.setSessionInvolvement(c,!c.hiddenFromInvolvingMe);break;case`toggle-unread`:g.length>0?t.sessionOrganizer.runBatchSessionAction(e,p,_):t.sessionOrganizer.patchSession(c,{unread:!c.unread});break;case`rename`:t.sessionOrganizer.renameSession(c);break;case`set-color`:t.sessionOrganizer.patchSession(c,{color:e.color});break;case`set-icon`:t.sessionOrganizer.patchSession(c,{icon:e.icon});break;case`reset-appearance`:t.sessionOrganizer.patchSession(c,{icon:null,color:null});break;case`assign-owner`:t.sessionOrganizer.assignSessionOwner(c,e.owner);break;case`fork`:t.sessionOrganizer.forkSession(c);break;case`plugin`:r?.plugins&&rl({runtime:r.plugins,id:e.id,placement:`session`,sessionKey:n.session.key,session:o(),signal:i}).catch(e=>{i.aborted||jt({message:e instanceof Error?e.message:String(e)})});break;case`move-to-group`:(e.category===null||c.category!==e.category)&&t.sessionOrganizer.assignSessionCategory(c,e.category);break;case`new-group`:t.sessionOrganizer.createSessionGroup([c]);break;case`snooze`:t.sessionOrganizer.snoozeSessionWithUndo(c,e.snoozedUntil);break;case`wake`:t.sessionOrganizer.patchSession(c,{snoozedUntil:null},{sessionScope:!0});break;case`toggle-archived`:c.archived?t.sessionOrganizer.patchSession(c,{archived:!1},{sessionScope:!0}):t.sessionOrganizer.archiveSessionWithUndo(c);break;case`stop-cloud-worker`:t.sessionOrganizer.stopCloudWorker(c);break;case`delete`:t.sessionOrganizer.deleteSession(c)}}}
      ></openclaw-session-menu>
    `)}function yM(e){let{host:t}=e,n=e.moreMenuPosition;if(!n)return I;let r=e.moreMenuTrigger;return d_({position:n,basePath:t.basePath,activeRouteId:t.activeRouteId,sidebarEntries:t.sidebarEntries,isRouteEnabled:t=>e.isRouteEnabled(t),onTabAway:()=>r?.focus(),onClose:t=>{e.moreMenuPosition===n&&e.closePositionedMenu(`more`,{restoreFocus:t})},onNavigateRoute:n=>{e.closePositionedMenu(`more`,{restoreFocus:!0}),t.onNavigate?.(n)},onPreloadRoute:(t,n)=>e.preloadRoute(t,n),onCancelPreload:t=>e.cancelPreload(t),onEditPinnedItems:()=>{let t=e.moreMenuPosition,n=e.moreMenuTrigger;t&&e.openCustomizeMenu(t.x,t.y,n)}})}function bM(){return(bM=e((()=>{R(),ai(),qt(),$n(),er(),Gr(),dr(),fr(),_t(),va(),Zi(),kt(),Rc(),A(),$s(),Ke(),gl(),Kj(),Yj(),m_(),om(),Pr(),lk(),Rn(),cM(),uM(),pM()})))()}function xM(e,t={}){let n=t.fillHeight?`settings-workspace settings-workspace--fill-height`:`settings-workspace`;return L`
    <section
      class=${n}
      ${Ir({settingsWorkspace:!0})}
      id=${yi(t.id)}
    >
      <div class="settings-workspace__body">${e}</div>
    </section>
  `}function SM(){return(SM=e((()=>{R(),ii(),Dr()})))()}function CM(e){return L`<openclaw-agent-row-chip .agentId=${e}></openclaw-agent-row-chip>`}var wM;function TM(){return(TM=e((()=>{wo(),R(),B(),Jt(),_t(),At(),na(),A(),O(),E(),Np(),wM=class extends pt{constructor(){super(),this.avatars=new wa(this),new C(this).watchStore(()=>this.context?.agents).watchStore(()=>this.context?.agentIdentity).watchStore(()=>this.context?.gateway)}render(){let e=this.context?.agents.state.agentsList,t=this.agentId?.trim()||g({agentsList:e,hello:this.context?.gateway.snapshot.hello}),n=e?.agents.find(e=>e.id===t)??{id:t},r=this.context?.agentIdentity.get(t),i=Xe(n,r),a=i===t?`agent:${t}`:`${i} (agent:${t})`,o=rt(n,r);return this.avatars.withActiveRoutes(()=>{let e=o?this.avatars.resolve(o):null;return L`<span
        class="agent-row-chip"
        data-agent-id=${t}
        role="img"
        aria-label=${a}
        title=${a}
      >
        ${Tp({id:t,avatar:e,textAvatar:ot(n,r)},`agent-row-chip__avatar`)}
        <span class="agent-row-chip__name">${i}</span>
      </span>`})}},U([Co({context:vr,subscribe:!0}),V({attribute:!1})],wM.prototype,`context`,void 0),U([V({attribute:!1})],wM.prototype,`agentId`,void 0),customElements.get(`openclaw-agent-row-chip`)||customElements.define(`openclaw-agent-row-chip`,wM)})))()}function EM(e){let t=`__openclaw_custom_model__`,n=new Set([e.value,...e.options.map(e=>e.value)]);for(;n.has(t);)t+=`_`;let r=[...e.options.map(e=>({...e,description:e.detail})),...e.custom?[{value:t,label:e.custom.label}]:[]],i=r.findIndex(t=>t.value===e.value);i>0&&r.unshift(...r.splice(i,1));let a=t=>{t.type===`change`==(e.custom?.commit===`change`)&&e.onChange(t.currentTarget.value)},o=e=>xm(e,{className:`model-picker__provider-icon`});return L`
    <div class="model-picker">
      ${HC({id:e.id,label:e.label,value:e.value,options:r,disabled:e.disabled,title:e.title,placement:e.placement,searchable:!0,searchPlaceholder:e.searchPlaceholder,groupBy:e.groupByProvider?e=>e.provider?{id:e.provider,label:fm(e.provider),leading:o(e.provider)}:void 0:void 0,showOptionTooltips:!1,showSelectedDescription:e.showSelectedDetail,className:`model-picker__select `,onOpen:e.onOpen,renderLeading:e=>e.provider?o(e.provider):I,onChange:e.onChange,onChangeTarget:(n,r)=>{let i=r.closest(`.model-picker`)?.querySelector(`.model-picker__custom`);if(n===t&&i){i.hidden=!1,queueMicrotask(()=>i.focus());return}i&&(i.hidden=!0),e.onChange(n)}})}
      ${e.custom?L`<input
              id=${e.custom.id??I}
              class="settings-input model-picker__custom"
              aria-label=${e.custom.label}
              aria-invalid=${e.custom.invalid?`true`:`false`}
              aria-describedby=${e.custom.describedBy??I}
              placeholder=${e.custom.placeholder??``}
              .value=${e.value}
              ?hidden=${i>=0}
              ?disabled=${e.disabled}
              @input=${a}
              @change=${a}
            />`:I}
    </div>
  `}function DM(){return(DM=e((()=>{R(),Om(),GC()})))()}function OM(e){return L`
    <div class="cron-table__footer">
      <span class="muted">
        ${N(`cron.list.shownOf`,{shown:String(e.jobsShown),total:String(Math.max(e.jobsTotal,e.jobsShown))})}
      </span>
      ${e.hasMore?L`
              <button
                class="btn btn--sm cron-load-more"
                ?disabled=${e.loading||e.loadingMore}
                @click=${e.onLoadMore}
              >
                ${e.loadingMore?N(`cron.list.loading`):N(`cron.list.loadMore`)}
              </button>
            `:I}
    </div>
  `}function kM(){return(kM=e((()=>{R(),k(),qa(),Ka()})))()}function AM(e){let t=e.selectedId??e.selection.state.scopeId??``,n=t?G(t):``,r=e.allowAll!==!1,i=t=>e.agents.some(e=>e.kind===`system`&&G(e.id)===t),a=Ot(e.agents);if(a.length<=1)return I;let o=new Map(a.map(e=>{let t=G(e.id);return[t,t===e.id?e:{...e,id:t}]}));for(let t of e.additionalAgentIds??[]){if(!t.trim())continue;let e=G(t);!i(e)&&!o.has(e)&&o.set(e,{id:e})}n&&!i(n)&&!o.has(n)&&o.set(n,{id:n});let s=[...o.values()].toSorted((e,t)=>Xe(e).localeCompare(Xe(t))),c=i(n)?r?``:s[0]?.id??``:n,l=[...r?[{value:``,label:N(`agentScope.allAgents`),icon:F.users}]:[],...s.map(e=>({value:e.id,label:Xe(e),agent:e}))];return L`
    <div class="agent-scope-control">
      <openclaw-agent-select
        .options=${l}
        .value=${c}
        .accessibleLabel=${N(`agentScope.label`)}
        .menuLabel=${N(`agentScope.label`)}
        .onSelect=${t=>r?e.selection.setScope(t||null):e.selection.set(t||null)}
      ></openclaw-agent-select>
    </div>
  `}function jM(){return(jM=e((()=>{R(),k(),_t(),A(),Qp(),P()})))()}export{Dk as $,Jf as $i,Fy as $n,jh as $r,_w as $t,Gk as A,Fd as Aa,Xp as Ai,tC as An,wg as Ar,uE as At,Nk as B,_p as Bi,wS as Bn,eg as Br,dT as Bt,pA as C,bd as Ca,fm as Ci,DC as Cn,Zg as Cr,HE as Ct,$k as D,Ld as Da,vm as Di,hC as Dn,kg as Dr,_E as Dt,Qk as E,zd as Ea,bm as Ei,vC as En,Wg as Er,OE as Et,zk as F,Ku as Fa,Np as Fi,GS as Fn,hg as Fr,yT as Ft,gk as G,up as Gi,Vb as Gn,Kh as Gr,Iw as Gt,vk as H,gp as Hi,Lx as Hn,ng as Hr,Yw as Ht,Lk as I,_u as Ia,Ep as Ii,YS as In,fg as Ir,ET as It,Fk as J,cp as Ji,_b as Jn,qh as Jr,Pw as Jt,bk as K,lp as Ki,Ub as Kn,Xh as Kr,Kw as Kt,_k as L,Tu as La,Tp as Li,US as Ln,pg as Lr,ST as Lt,Vk as M,ed as Ma,Kp as Mi,$S as Mn,Sg as Mr,lE as Mt,Rk as N,Fu as Na,Ip as Ni,eC as Nn,Cg as Nr,fE as Nt,Wk as O,jd as Oa,Zp as Oi,aC as On,Eg as Or,xE as Ot,Uk as P,Ou as Pa,Op as Pi,qS as Pn,_g as Pr,sE as Pt,Sk as Q,np as Qi,ob as Qn,Nh as Qr,Cw as Qt,yk as R,Cp as Ri,HS as Rn,ug as Rr,mT as Rt,gA as S,Id as Sa,Om as Si,EC as Sn,b_ as Sr,PE as St,tA as T,Ed as Ta,xm as Ti,wC as Tn,Kg as Tr,CE as Tt,Pk as U,yp as Ui,Fx as Un,tg as Ur,Mw as Ut,Ck as V,hp as Vi,Ix as Vn,$h as Vr,Jw as Vt,Ek as W,dp as Wi,Bb as Wn,rg as Wr,Fw as Wt,Ak as X,ip as Xi,pb as Xn,Hh as Xr,Tw as Xt,xk as Y,op as Yi,gb as Yn,Gh as Yr,Ow as Yt,jk as Z,rp as Zi,fb as Zn,zh as Zr,ww as Zt,HA as _,Zd as _a,Fm as _i,jC as _n,fv as _r,QD as _t,DM as a,bf as aa,bh as ai,ZC as an,hy as ar,ck as at,mA as b,Bd as ba,dm as bi,kC as bn,Z_ as br,jD as bt,CM as c,_f as ca,vh as ci,QC as cn,uy as cr,lO as ct,sj as d,sf as da,_h as di,GC as dn,kv as dr,aO as dt,Df as ea,kh as ei,gw as en,Iy as er,Ok as et,oj as f,of as fa,oh as fi,HC as fn,wv as fr,iO as ft,JA as g,ef as ga,zm as gi,RC as gn,vv as gr,tO as gt,XA as h,$d as ha,Um as hi,FC as hn,hv as hr,$D as ht,OM as i,xf as ia,wh as ii,JC as in,Ry as ir,lk as it,Kk as j,rd as ja,qp as ji,QS as jn,xg as jr,dE as jt,Xk as k,Md as ka,Qp as ki,sC as kn,Dg as kr,mE as kt,SM as l,ff as la,yh as li,qC as ln,cy as lr,oO as lt,QA as m,Qd as ma,Wm as mi,zC as mn,bv as mr,rO as mt,AM as n,wf as na,Th as ni,dw as nn,Ly as nr,hk as nt,EM as o,yf as oa,Ch as oi,nw as on,fy as or,sk as ot,nj as p,af as pa,ah as pi,BC as pn,yv as pr,nO as pt,Tk as q,sp as qi,Lb as qn,Jh as qr,jw as qt,kM as r,Sf as ra,Eh as ri,mw as rn,zy as rr,fk as rt,TM as s,vf as sa,Sh as si,$C as sn,py as sr,gO as st,jM as t,Ef as ta,Dh as ti,hw as tn,Py as tr,Mk as tt,xM as u,df as ua,gh as ui,KC as un,Av as ur,sO as ut,VA as v,Yd as va,Pm as vi,PC as vn,J as vr,XD as vt,nA as w,Nd as wa,pm as wi,SC as wn,Yg as wr,bE as wt,yA as x,Hd as xa,hm as xi,OC as xn,x_ as xr,PD as xt,rA as y,Ud as ya,_m as yi,AC as yn,R_ as yr,AD as yt,kk as z,bp as zi,CS as zn,ig as zr,pT as zt};