openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
4,041 lines • 643 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./session-snapshot-database-BurLa_ut.js","./plugin-contracts-runtime-CNCaYops.js","./config-runtime-BecGLziM.js","./control-ui-core-yIvVj14Y.css","./control-ui-boot-shared-styles-DKyMAG_6.css","./control-ui-boot-shared-CXHNz0Bh.css","./custodian-alert-store-DMTYYmJp.js","./channel-avatar-BaIeGNgy.js","./control-ui-boot-chat-C8hdsB2M.js","./control-ui-boot-chat-VeeaXyJz.js","./control-ui-boot-chat-Ck7W_FPO.js","./control-ui-boot-chat-DxoNF0Ad.js","./chat-transcript-styles-Dzr3t9kA.js","./control-ui-boot-chat-styles-BRrYkFSc.js","./chat-transcript-styles-B_dd5Ueo.css","./control-ui-boot-chat-styles-C_Ls1c0m.css","./control-ui-boot-chat-mLz7NUiY.css","./session-organizer-operations.runtime-RnGN66Ok.js","./session-workspace-recovery.runtime-sCzaBa0p.js","./input-dialog-OAeQnraY.js","./cloud-worker-stop.runtime-BR0jZ8bp.js","./session-group-defaults-dialog-DyFBnTbt.js","./control-ui-boot-new-CxgnwT6A.js","./control-ui-boot-new-styles-Bb6Ub5D3.js","./control-ui-boot-new-styles-u1aN_ui5.css","./control-ui-boot-new-D-SpiTTi.css","./sidebar-people.runtime-CjaRkl17.js","./sidebar-agent-roster-pYXMLzrS.js","./roster-element-CaNgUr5l.js","./sidebar-agent-roster-C0Gti9Fd.css","./session-progress-hovercard.runtime-oAnqBSz3.js","./control-ui-boot-chat-XcDaYmck.js","./control-ui-boot-chat-BPMc7uzL.js","./control-ui-boot-chat-Dh5vtL-G.css","./session-progress-hovercard-CWlzJYa-.css"])))=>i.map(i=>d[i]);
import{n as e,r as t}from"./rolldown-runtime-8BhlS34s.js";import{$i as n,$s as r,$t as i,Ac as a,Ao as o,B as s,Ba as c,Bo as l,Bs as u,Cl as d,Co as f,Cu as p,Dl as m,Ds as h,Ec as g,El as _,Eu as v,Fc as y,Fl as b,Fs as x,Gl as S,Gr as ee,Ha as C,Hl as te,Ho as ne,Hr as w,Hs as re,Hu as T,I as ie,Ic as ae,Il as oe,Io as se,Jo as ce,K as le,Kc as ue,Lc as de,Ll as fe,Mo as pe,Nl as me,Oc as he,Oo as ge,P as _e,Qs as ve,Ro as ye,Rs as be,Rt as xe,Ru as E,Sl as D,Su as Se,Tc as Ce,Tl as we,Tr as Te,Tu as O,Uc as Ee,Ul as De,Ur as Oe,V as ke,Vc as Ae,Vs as je,Vu as Me,W as Ne,Wc as Pe,Wl as Fe,Wr as Ie,Xr as Le,Xs as Re,Yc as ze,Yr as Be,Ys as Ve,Zc as He,_l as k,_u as Ue,al as We,bu as Ge,cl as Ke,cs as qe,cu as Je,dn as Ye,dt as Xe,du as A,ec as Ze,en as Qe,fn as $e,fu as et,i as tt,il as nt,iu as rt,jl as it,js as at,ju as j,k as ot,kc as st,kl as ct,ku as lt,lc as ut,lt as dt,lu as ft,n as pt,na as mt,nc as ht,nl as gt,nu as _t,os as vt,pu as M,qc as yt,qo as bt,ra as xt,rc as St,rl as Ct,su as wt,uc as Tt,uu as Et,vl as Dt,vu as Ot,wc as kt,wl as At,wr as jt,wu as Mt,xr as Nt,xu as Pt,yl as Ft,z as It,zs as Lt,zt as Rt}from"./control-ui-core-BncvAZjR.js";import{C as zt,S as Bt,T as Vt,dt as Ht,r as Ut,w as Wt}from"./control-ui-boot-shared-Dfs-gZII.js";import{$ as Gt,$i as Kt,$n as qt,Aa as Jt,Ai as Yt,At as Xt,Ba as Zt,C as Qt,Cn as $t,Da as en,Ea as tn,Fr as nn,Gt as rn,Ha as an,Hr as on,Ht as sn,Ia as cn,Ir as ln,Ji as un,Lr as dn,Ma as fn,Oi as pn,Oo as mn,Pr as hn,Q as gn,Qi as _n,Qr as vn,Ra as yn,Ri as bn,Rr as xn,Rt as Sn,Sa as Cn,So as wn,Ta as Tn,Ti as En,Ua as Dn,Ui as On,Ut as kn,Va as An,Vr as jn,Wa as Mn,Wr as Nn,Wt as Pn,X as Fn,Xi as In,Xn as Ln,Xt as Rn,Y as zn,Yi as Bn,Yr as Vn,Z as Hn,Zi as Un,Zn as Wn,a as Gn,ai as Kn,an as qn,bi as Jn,c as Yn,ca as Xn,cn as Zn,cr as Qn,do as $n,ea as er,en as tr,et as nr,fa as rr,ga as ir,go as ar,ha as or,ho as sr,ht as cr,i as lr,ia as ur,in as dr,ir as fr,it as pr,ja as mr,jo as hr,ka as gr,kt as _r,la as vr,ln as yr,lt as br,mn as xr,mo as Sr,mt as Cr,na as N,nr as wr,nt as Tr,o as Er,oa as Dr,pa as Or,pt as kr,qi as Ar,ra as P,rr as jr,rt as Mr,s as Nr,sa as Pr,sr as Fr,tt as Ir,ua as Lr,va as Rr,vo as zr,w as Br,wa as Vr,wi as Hr,xa as Ur,xi as Wr,ya as Gr,zr as Kr,zt as qr}from"./control-ui-core-9qYjK5B2.js";import{$ as F,B as Jr,C as Yr,F as Xr,I as Zr,M as Qr,Q as $r,R as ei,S as ti,T as ni,X as I,Y as L,Z as ri,a as ii,at as ai,c as oi,ct as R,d as si,g as ci,h as li,i as ui,it as di,mt as fi,nt as z,p as pi,s as mi,tt as B,u as hi,ut as V,v as gi,y as _i,z as vi}from"./lit-runtime-B8uOr6OX.js";import{$n as yi,An as bi,Bt as xi,En as Si,Ht as Ci,It as wi,Lt as Ti,On as Ei,Qn as Di,Tn as Oi,Vt as ki,Xt as Ai,Yt as ji,_t as Mi,dt as Ni,er as Pi,gt as Fi,h as Ii,ht as Li,kn as Ri,lt as zi,m as Bi,nr as Vi,p as Hi,tr as Ui,ut as Wi,vt as Gi,w as Ki}from"./control-ui-boot-shared-umGE-sEP.js";import{c as H,d as qi,l as Ji}from"./gateway-runtime-Cr51Pi7N.js";import{$a as Yi,$r as Xi,Ar as Zi,Br as Qi,Cr as $i,Dr as ea,Ea as ta,Er as na,Fn as ra,Fo as ia,In as aa,Io as oa,Jr as sa,Kr as ca,Lo as la,Mn as ua,Mo as da,Mr as fa,Nn as pa,Nr as ma,On as ha,Or as ga,Pn as _a,Qr as va,Sn as ya,Sr as ba,Tr as xa,Un as Sa,Ur as Ca,Vn as wa,Vr as Ta,Wr as Ea,Xr as Da,Yr as Oa,Zr as ka,_r as Aa,ai as ja,bn as Ma,br as Na,c as Pa,cr as Fa,ei as Ia,fn as La,gn as Ra,gr as za,hn as Ba,ii as Va,jo as Ha,kn as Ua,l as Wa,lr as Ga,mn as Ka,ni as qa,nn as Ja,no as Ya,pn as Xa,qr as Za,ri as Qa,si as $a,ti as eo,tn as to,va as no,vr as ro,wn as io,wr as ao,xn as oo,xr as so,yn as co,yr as lo,zn as uo,zo as fo,zr as po}from"./control-ui-boot-shared-DJkUdZmL.js";import{$ as mo,$t as ho,Aa as go,C as _o,Do as vo,Ei as yo,Er as bo,Ft as xo,Jt as So,Ki as Co,Mn as wo,Mo as To,Nn as Eo,No as Do,Oo,Pn as ko,Pt as Ao,Qt as jo,Sa as Mo,Si as No,Ta as Po,Ti as Fo,To as Io,Tr as Lo,Xa as Ro,Xr as zo,Xt as Bo,Yi as Vo,Yr as Ho,Zi as Uo,Zr as Wo,Zt as Go,_a as Ko,_t as qo,ao as Jo,ca as Yo,cn as Xo,da as Zo,ei as Qo,en as $o,fa as es,h as ts,hn as ns,ht as rs,i as is,ia as as,ii as U,ja as os,ji as ss,m as cs,ma as ls,n as us,o as ds,oa as W,qi as fs,r as ps,ra as ms,ro as G,sa as hs,so as gs,ti as _s,tt as vs,u as ys,w as bs,yi as xs,yn as Ss}from"./ui-DuRgK6kL.js";import{A as Cs,C as ws,F as Ts,I as Es,L as Ds,M as Os,N as ks,O as As,T as js,d as Ms,et as Ns,g as Ps,h as Fs,i as Is,k as Ls,m as Rs,n as zs,p as Bs,r as Vs,s as Hs,t as Us,u as Ws,w as Gs,x as Ks}from"./control-ui-boot-shared-em9-jnbz.js";import{a as qs,b as Js,h as Ys,i as Xs,o as Zs,r as Qs,s as $s,v as ec}from"./control-ui-boot-shared-Sj2zqjOr.js";import{$c as tc,$i as nc,$s as rc,Ac as ic,Cc as ac,Ec as oc,Gc as sc,Hc as cc,Hf as lc,Jc as uc,Jf as dc,Js as fc,Kc as pc,Kf as mc,Lc as hc,Li as gc,Mc as _c,Nc as vc,Nd as yc,Qc as bc,Qi as xc,Qs as Sc,Rf as Cc,Ri as wc,Sc as Tc,Tc as Ec,Uc as Dc,Uf as Oc,Wc as kc,Wf as Ac,Xc as jc,Xf as Mc,Xs as Nc,Ys as Pc,Zc as Fc,Zi as Ic,_c as Lc,ac as Rc,al as zc,bc as Bc,cc as Vc,cl as Hc,dc as Uc,dl as Wc,ea as Gc,el as Kc,fc as qc,fl as Jc,gc as Yc,hc as Xc,ic as Zc,il as Qc,jd as $c,kc as el,l as tl,ll as nl,nc as rl,nl as il,oc as al,ol,pc as sl,qc as cl,rl as ll,sc as ul,sl as dl,tl as fl,u as pl,wc as ml,xc as hl,zi as gl}from"./control-ui-boot-shared-D3oo_6Fq.js";import{B as _l,C as vl,D as yl,E as bl,G as xl,H as Sl,L as Cl,U as wl,b as Tl,c as El,i as Dl,s as Ol,v as K,w as kl,x as Al}from"./control-ui-boot-shared-D4XEBdOG.js";import{A as jl,C as Ml,D as Nl,M as Pl,N as Fl,P as Il,T as Ll,_ as Rl,a as zl,c as Bl,f as Vl,g as Hl,h as Ul,i as Wl,j as Gl,k as Kl,m as ql,n as Jl,o as Yl,p as Xl,u as Zl,v as Ql,w as $l,x as eu,y as tu}from"./markdown-runtime-ORQpioyT.js";import"./control-ui-boot-shared-styles-BaQ2sAfZ.js";import{t as nu}from"./sidebar-update-runtime-DonYLwN5.js";var ru=t({createCanvasSurfaceLease:()=>iu});function iu(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))},Go(e,{minMs:su})))},u=e=>{if(!s(e))return;i+=1;let t=Math.min(lu*2**(i-1),uu);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=au(r);if(!o){u(n);return}i=0,t=o.canvasUrl,e.onChange(t);let c=o.expiresAtMs===void 0?cu:Math.max(su,o.expiresAtMs-Date.now()-ou);l(c,n)}).catch(e=>{e instanceof jo&&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 au(e){if(!e||typeof e!=`object`)return;let t=e;if(t.surface!==`canvas`)return;let n=t.pluginSurfaceUrls;if(!Ko(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 ou,su,cu,lu,uu;function du(){return(du=e((()=>{$o(),Bo(),ou=15e3,su=1e3,cu=6e4,lu=1e3,uu=3e5})))()}var fu=t({applyControlUiPresentation:()=>pu,invalidateControlUiFaviconPalette:()=>mu,syncControlUiFavicon:()=>vu});function pu(e){mu(),Zn(e.seamColor);let t=document.documentElement,n=e.environment;if(!n){let e=t.getAttribute(Mo);if(e){let t=` · ${JSON.parse(e).label}`;document.title.endsWith(t)&&(document.title=document.title.slice(0,-t.length))}t.removeAttribute(Mo),t.style.removeProperty(`--control-ui-environment-color`),t.style.removeProperty(`--control-ui-environment-ink`),document.querySelector(`.control-ui-environment-stripe`)?.remove(),vu();return}if(t.setAttribute(Mo,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}`),vu()}function mu(){Su=void 0}function hu(e){xu!==e&&(xu=e,mu()),vu()}function gu(e,t){for(let[n,r]of[[`href`,t[0]],[`type`,t[1]]])r===null?e.removeAttribute(n):e.setAttribute(n,r)}function _u(){let e=document.documentElement,t=getComputedStyle(e),n=e.getAttribute(Mo),r=n?JSON.parse(n):null,i=r?t.getPropertyValue(`--control-ui-environment-${r.color}`).trim():``,a=Lr().mascot===`none`?vr({fill:t.getPropertyValue(`--primary`).trim(),glyph:t.getPropertyValue(`--primary-foreground`).trim()}):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,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:``}[xu];return{baseSvg:o,color:c?t.getPropertyValue(c).trim():``,ring:t.getPropertyValue(`--bg`).trim()}}function vu(){let{baseSvg:e,color:t,ring:n}=Su??=_u();t||Cu.clear();for(let r of document.querySelectorAll(`link[rel="icon"]`)){if(!e&&!t){wu.delete(r),r.dataset.openclawOriginalFavicon&&(gu(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=e??i[0],o=e?`image/svg+xml`:i[1],s=JSON.stringify([a,o,t,n]);if(wu.get(r)?.signature===s)continue;let c={signature:s};if(wu.set(r,c),!t||!a){gu(r,[a,o]);continue}bu(a,o,t,n).then(e=>{r.isConnected&&wu.get(r)===c&&(r.href=e.href,r.type=e.type)},e=>{wu.get(r)===c&&(wu.delete(r),gu(r,[a,o]),console.warn(`[openclaw] favicon status could not be composed`,e))})}}async function yu(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!==Tu)throw Error(`Invalid SVG favicon`);return{svg:r}}let n=new Image;return n.src=e,await n.decode(),{image:n}}async function bu(e,t,n,r){let i=await Yo(Cu,JSON.stringify([e,t]),()=>yu(e,t),{cacheRejections:!1});if(`svg`in i){let e=new DOMParser().parseFromString(`<svg xmlns="${Tu}" 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 a=document.importNode(i.svg,!0);return a.setAttribute(`x`,`0`),a.setAttribute(`y`,`0`),a.setAttribute(`width`,`32`),a.setAttribute(`height`,`32`),e.prepend(a),{href:`data:image/svg+xml,${encodeURIComponent(new XMLSerializer().serializeToString(e))}`,type:`image/svg+xml`}}let a=document.createElement(`canvas`);a.width=32,a.height=32;let o=a.getContext(`2d`);if(!o)throw Error(`Favicon canvas unavailable`);return o.drawImage(i.image,0,0,32,32),o.beginPath(),o.arc(25.5,25.5,5,0,Math.PI*2),o.fillStyle=n,o.fill(),o.strokeStyle=r,o.lineWidth=2,o.stroke(),{href:a.toDataURL(`image/png`),type:`image/png`}}var xu,Su,Cu,wu,Tu;function Eu(){return(Eu=e((()=>{Po(),Pr(),yr(),xu=`idle`,Cu=new Map,wu=new WeakMap,Tu=`http://www.w3.org/2000/svg`})))()}function Du(e){Mu.delete(e)}function Ou(e,t){let n=Nu.get(e);n||(n=new Set,Nu.set(e,n)),n.add(t)}function ku(e,t){let n=Nu.get(e);n&&(n.delete(t),n.size===0&&(Nu.delete(e),Du(e)))}function Au(e,t){Du(e);let n=Nu.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 ju(e,t,n,r){let i=r===void 0?So:Math.min(So,Math.max(0,r-Date.now()));if(t!==`question.list`)return e.request(t,n,{timeoutMs:i});let a=Mu.get(e);return a||(a=e.request(t,n,{timeoutMs:i}),Mu.set(e,a),a.catch(()=>{Mu.get(e)===a&&Mu.delete(e)})),a}var Mu,Nu;function Pu(){return(Pu=e((()=>{Bo(),Mu=new WeakMap,Nu=new WeakMap})))()}function Fu(e){if(!Ko(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 Iu(e){if(!Ko(e))return null;let t=Fo(e.updatedAtMs,{min:0}),n=e.updatedBy===void 0?void 0:Io(e.updatedBy);return t===void 0||e.updatedBy!==void 0&&!n?null:{updatedAtMs:t,...n?{updatedBy:n}:{}}}function Lu(e){if(e.isSecret!==void 0&&typeof e.isSecret!=`boolean`)return null;let t=e.secretStore===void 0?void 0:Fu(e.secretStore),n=e.secretStoreExisting===void 0?void 0:Iu(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 Ru(e,t){for(let n of e)n.isSecret&&t.delete(n.questionId)}function zu(e,t){if(!Ko(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 Bu(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 Vu(){return(Vu=e((()=>{yo()})))()}function Hu(e){if(!Ko(e))return null;let t=Io(e.questionId),n=typeof e.header==`string`?e.header:null,r=Io(e.question);if(!t||!/^[a-z][a-z0-9_]*$/.test(t)||n===null||!r)return null;let i=T(n,Uu);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(!Ko(e))return[];let t=Io(e.label);if(!t||e.description!==void 0&&typeof e.description!=`string`||e.thumbnail!==void 0&&!Di(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:Pi(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=Io(e.url);if(e.url!==void 0){if(!o||!Ui(o))return null;try{let e=new URL(o);if(e.username||e.password)return null}catch{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:yi(e.resource);if(e.resource!==void 0&&(!c||e.presentation!==`form`))return null;let l=Lu(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 Uu;function Wu(){return(Wu=e((()=>{Vi(),Me(),Vu(),Uu=12})))()}function Gu(e){return Fo(e,{min:0})??null}function Ku(e){if(!Ko(e)||!Ko(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 qu(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 Ju(e){if(!Ko(e))return null;let t=Io(e.id),n=Gu(e.createdAtMs),r=Gu(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(Hu);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:Io(e.agentId),o=e.sessionKey===void 0?void 0:Io(e.sessionKey),s=e.runId===void 0?void 0:Io(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=Xu(e);return l?{...c,...l}:null}function Yu(e){let t=Ju(e);return t?.status===`pending`?t:null}function Xu(e){if(!Ko(e))return null;let t=Io(e.id);if(!t)return null;if(e.status===`answered`){let n=Ku(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 Zu(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 Qu(e){e.expiryTimer&&=(globalThis.clearTimeout(e.expiryTimer),null);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`,Ru(r.questions,r.drafts),r.locallyExpired=!0,r.submitting=!1,r.error=null,r.revision=++e.revision,n=!0);Qu(e),n&&e.onChange()},ss(t-Date.now(),0,0)))}function $u(e,t,n,r){let i=++e.revision,a=r?.drafts??new Map;n.status!==`pending`&&Ru(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),ed(e,o,s)),e.prompts.set(t,o)}function ed(e,t,n){t.status=n.status,Ru(t.questions,t.drafts),t.answers=n.status===`answered`?n.answers:void 0;let r=n.status===`answered`&&qu(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&&Du(e.client);let n=e.prompts.get(t.id);n?(ed(e,n,t),Qu(e)):(e.unmatchedResolutions.set(t.id,t),e.revision+=1),e.onChange()}function nd(e,t){if(t.event===`question.requested`){let n=Yu(t.payload);if(!n)return!1;e.client&&Du(e.client);let r=e.prompts.get(n.id);return r&&r.status!==`pending`?!0:($u(e,n.id,n,r),Qu(e),e.onChange(),!0)}if(t.event!==`question.resolved`)return!1;let n=Xu(t.payload);return n?(td(e,n),!0):!1}function rd(e){if(!Ko(e)||!Array.isArray(e.questions))return null;let t=e.questions.map(Yu);return t.every(e=>e!==null)?t:null}function id(e){return e instanceof Ln&&Ko(e.details)&&e.details.reason===`QUESTION_NOT_FOUND`}function ad(e,t){t.status=`unavailable`,Ru(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 od(e,t,n=()=>e.client===t){let r=e.revision,i=rd(await ju(t,`question.list`,{}));if(!i)return Du(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)&&$u(e,t.id,t,n)}Qu(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 ju(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 id(i.error)?(a&&(ad(e,a),Qu(e)),e.unmatchedResolutions.delete(r.id),e.onChange(),!0):!1;let o=Ko(i.value)?Ju(i.value.question):null;return o?($u(e,r.id,o,a),Qu(e),e.onChange(),!0):!1}));return n()&&c.every(Boolean)}function sd(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 od(e,t,i)}catch{n=!1}if(n||!i())return;let r=md[a];a=Math.min(a+1,md.length-1),e.refreshRetryTimer=globalThis.setTimeout(()=>{e.refreshRetryTimer=null,o()},r)};o()}function cd(e,t){if(e.refreshRetryTimer&&=(globalThis.clearTimeout(e.refreshRetryTimer),null),e.client===t)return;e.client&&ku(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,Ou(t,e)),n){let t=e.prompts.size>0||e.unmatchedResolutions.size>0;e.expiryTimer&&=(globalThis.clearTimeout(e.expiryTimer),null),e.prompts.clear(),e.unmatchedResolutions.clear(),t&&(e.revision+=1,e.onChange());return}t&&Qu(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 ld(e){e.client&&ku(e.client,e),e.expiryTimer&&=(globalThis.clearTimeout(e.expiryTimer),null),e.refreshRetryTimer&&=(globalThis.clearTimeout(e.refreshRetryTimer),null),e.clientGeneration+=1,e.client=null}async function ud(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=j(`chat.questions.disconnected`),r.revision=++e.revision,e.onChange();return}r.submitting=!0;let o=Bu(t,r.questions,n,r.secretStoreAllowedHostsDraft);r.submittedAnswers=o.submittedAnswers,r.error=null,r.revision=++e.revision,e.onChange();try{let n=zu(await ju(i,`question.resolve`,o.requestParams,r.expiresAtMs),Ku);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)}Au(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=A(n):r.status===`answered`&&!r.localResolutionConfirmed&&(r.answeredElsewhere=!qu(r.submittedAnswers,r.answers)),r.revision=++e.revision,e.onChange()}}async function dd(e,t,n){await ud(e,t,{answers:n})}async function fd(e,t){await ud(e,t,{cancel:!0})}function pd(e){return[...e.prompts.values()].toSorted((e,t)=>e.createdAtMs-t.createdAtMs||e.id.localeCompare(t.id))}var md;function hd(){return(hd=e((()=>{yo(),Wn(),v(),M(),Pu(),Wu(),Vu(),md=[1e3,2e3,4e3]})))()}var gd=t({connectControlUiFavicon:()=>_d});function _d(e,t,n=Date.now()){mu();let r=n,i=!1,a=!1,o=t.gateway.snapshot.client,s=t.agentSelection.state.selectedId,c=Fr(t.gateway),l=new Map,u=new WeakSet,d=Zu(()=>p());function f(){let e=t.gateway.snapshot,n=Fr(t.gateway),i=t.agentSelection.state.selectedId;(c!==n||e.client&&d.ownerClient&&e.client!==d.ownerClient)&&(ld(d),d=Zu(()=>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??it(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),hu(t.overlays.snapshot.approvalQueue.length>0||pd(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`&&qi({hello:e.hello},`question.list`)?e.client:null;d.client!==n&&(cd(d,n),n&&sd(d,n,()=>!i&&t.gateway.snapshot.client===n&&t.gateway.snapshot.phase===`connected`)),p()}let h=[t.gateway.subscribe(m),t.gateway.subscribeEvents(e=>nd(d,e)),t.overlays.subscribe(p),t.agentSelection.subscribe(p),t.sessions.subscribe(p)],_=new MutationObserver(()=>{mu(),p()});return _.observe(document.documentElement,{attributes:!0,attributeFilter:[`style`,`data-theme`,`data-theme-mode`,`data-theme-mascot`]}),document.addEventListener(`visibilitychange`,p),e.addEventListener(g,p),e.addEventListener(kt,p),m(),()=>{i=!0,h.forEach(e=>e()),_.disconnect(),document.removeEventListener(`visibilitychange`,p),e.removeEventListener(g,p),e.removeEventListener(kt,p),ld(d),hu(`idle`)}}function vd(){return(vd=e((()=>{Ji(),D(),he(),Eu(),Qn(),hd()})))()}var yd=t({nativeGatewaysCapability:()=>Sd});function bd(e){if(!e||typeof e!=`object`)return null;let t=e;return Array.isArray(t.gateways)&&typeof t.currentId==`string`?t:null}function xd(){if(typeof window>`u`)return null;let e=window,t=Rr()?.webkit?.messageHandlers?.openclawGateways;if(!t?.postMessage)return null;let n=t.postMessage.bind(t),r=bd(e.__OPENCLAW_NATIVE_GATEWAYS__),i=new Set;return window.addEventListener(Cd,e=>{let t=bd(e.detail);t&&(r=t,i.forEach(e=>e(t)))}),{get snapshot(){return r},subscribe:e=>Ho(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 Sd(){return wd===void 0&&(wd=xd()),wd}var Cd,wd;function Td(){return(Td=e((()=>{Cd=`openclaw:native-gateways-changed`})))()}function Ed(e,t=128){return typeof e==`string`&&e.length>0&&e.length<=t&&e.trim()===e}function Dd(e){let t=es(e);if(!Ed(t?.targetId)||!Ed(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`&&Ed(t.node,256))return{...n,target:`node`,node:t.node}}function Od(e){return JSON.stringify([e?.target,e?.node,e?.profile])}function kd(e){return JSON.stringify([e.target,e.node,e.profile,e.targetId])}function Ad(){return(Ad=e((()=>{})))()}function jd(e){try{let t=decodeURIComponent(e);return t&&t!==`.`&&t!==`..`?t:null}catch{return null}}function Md([e,t,n,r]){return{kind:n?`issue`:`pull`,number:Number(n??r),owner:e,repo:t}}function Nd(e){let t=nn(e);return t?Md(t):null}function Pd(e){let t=URL.parse(e),n=t?ln(t):null;return n&&t?{...Md(n),href:t.href}:null}function Fd(){return(Fd=e((()=>{})))()}var Id=t({default:()=>Rd});function Ld(e){return zd.has(e)}function Rd(e){let t=new Set,r=new Map,i=n(e.gateway.snapshot),a=()=>{for(let e of t)e()},o=e=>{for(let[t,n]of r)if(k(t,e))return{key:t,entry:n};return null},s=e=>o(e.owner.sessionKey)?.entry===e,c=t=>{let n=e.gateway.snapshot;return!!(t.retainsConnection()&&i.isCurrent(t.scope)&&n.client?.recoveryScopeReady)},l=e=>{let t=e.persistRecovery?dc(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 n=o(e.owner.sessionKey);n?.entry===e&&(r.delete(n.key),t&&a())},f=(t,n,r,i)=>{let a=$c(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}=mc(t,n,e.persistRecovery);e.work={kind:`paused`,recovery:r},a()},m=(t,n,i)=>{let o=n;Wc({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:()=>lc(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(n=>{if(!l(t)||!t.retainsConnection()){d(t);return}if(n.status===`paused`){t.work={kind:`paused`,recovery:n.recovery},a(),g(e.gateway.snapshot);return}if(n.status===`cancelled`&&n.cleanupError){p(t,o,n.cleanupError),g(e.gateway.snapshot);return}if(n.status===`cancelled`&&!t.persistRecovery){t.work={kind:`cancelled`,recovery:o};let e=[...r.values()].filter(e=>e.work.kind===`cancelled`);for(let t of e.slice(0,-32))d(t,!1);a();return}if(!c(t)){n.status===`started`||n.status===`accepted`?(t.work={kind:`checking`,recovery:o},g(e.gateway.snapshot)):n.status!==`interrupted`&&d(t);return}(n.status===`started`||n.status===`accepted`)&&f(t,o,n.status===`started`?n.messageId:t.owner.messageId,n.status===`accepted`?n.consumedByEventId:void 0),d(t)}).catch(e=>{u(t)&&p(t,o,A(e))}).finally(()=>{u(t)&&t.work.kind!==`cancelled`&&e.sessions.invalidate()})},h=t=>{if(t.recovery.phase===`creating`)return;i.transition(e.gateway.snapshot);let n=o(t.recovery.sessionKey)?.entry;if(n&&n.owner.messageId===t.recovery.messageId&&n.retainsConnection()&&(n.work.kind===`cancelled`||u(n)&&(n.work.kind!==`paused`||t.recovery.phase===`paused`)))return;n&&d(n,!1);let s=i.capture();if(!s)return;let c={sessionKey:t.recovery.sessionKey,messageId:t.recovery.messageId,gatewayUrl:t.recovery.gatewayUrl,recoveryScope:t.recovery.recoveryScope},l={work:t.recovery.phase===`paused`?{kind:`paused`,recovery:t.recovery}:{kind:t.recovery.phase===`sending`?`checking`:`running`,recovery:t.recovery},owner:c,attachments:t.displayAttachments??Qe(t.recovery.attachments),persistRecovery:t.persistRecovery,createdAt:n?.owner.messageId===c.messageId?n.createdAt:t.createdAt,scope:s,retainsConnection:sn(e.gateway,c)};r.set(c.sessionKey,l),a(),t.recovery.phase!==`paused`&&m(l,t.recovery,t.mode)},g=t=>{if(i.transition(t),t.phase===`connected`&&t.client?.recoveryScopeReady&&t.client.recoveryScope){for(let e of r.values())(e.work.kind===`paused`||e.work.kind===`checking`)&&!c(e)&&e.retainsConnection()&&l(e)&&h({recovery:e.work.recovery,persistRecovery:e.persistRecovery,mode:`recover`,createdAt:e.createdAt});for(let n of Ac(e.gateway.connection.gatewayUrl,t.client.recoveryScope))h({recovery:n,persistRecovery:!0,mode:`recover`,createdAt:Date.now()})}};return{resumeRecovery:()=>g(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?j(`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=>k(e.key,n.owner.sessionKey)))?.placement?.state;t&&Ld(t)&&(s=t)}return{sessionKey:n.owner.sessionKey,targetKind:n.work.recovery.target.kind,phase:s,startedAt:n.createdAt,initialTurn:Pn({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}=mc(n.work.recovery,t,n.persistRecovery);n.work={kind:`paused`,recovery:r},d(n,!1),h({recovery:r,persistRecovery:n.persistRecovery,mode:`recover`,createdAt:n.createdAt})},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`?Ao():i.messageId};if(t.persistRecovery&&!Mc(s,i.messageId)){p(t,t.work.recovery,`placement recovery storage is unavailable`);return}h({recovery:s,persistRecovery:t.persistRecovery,mode:`retry`,createdAt:t.createdAt})},subscribe:e=>Ho(t,e),dispose(){i.dispose(),r.clear(),t.clear()}}}var zd;function Bd(){return(Bd=e((()=>{v(),ia(),M(),D(),Oc(),Jc(),xo(),i(),yc(),rn(),kn(),oa(),zd=new Set([`requested`,`provisioning`,`syncing`,`starting`,`active`])})))()}var Vd=t({refreshControlUiServiceWorker:()=>Gd});function Hd(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 Ud(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 Wd(e){for(;e.active;){let t=e.active,n=await Ud(t);if(e.active!==t)continue;if(!un(n))return!1;let r=await On({canReload:()=>e.active===t});if(r||e.active===t)return r}return!1}async function Gd(){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 Wd(t))return!0;throw e}n=t.installing??t.waiting}return n&&await Hd(n),Wd(t)}function Kd(){return(Kd=e((()=>{Bn(),bn()})))()}function qd(e,t){let n=kr(e,t);return n?F`<div class="update-git-revisions">
<span class="update-git-revisions__range" dir="ltr">
${n.currentSha?F`<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?F`<a href=${n.compareUrl} target="_blank" rel="noopener noreferrer"
>${j(`updates.target.viewChanges`)} <span aria-hidden="true">↗</span></a
>`:I}
</div>`:I}function Jd(){return(Jd=e((()=>{L(),Cr(),v()})))()}function Yd(e){return e.replace(/^(?:diagnostic|warning):(.+?)(?::\d+)?$/u,`$1`)}function Xd(e,t=!0){let n=e.status!==`running`,r=e.target.installationMethod===`ocm`,i=ps(e),a=ds.indexOf(e.phase),o=ds.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:j(`updates.run.phase.${t}`)}]}),s=e.steps.filter(e=>!e.step.startsWith(`notice:`)&&!e.step.startsWith(`diagnostic:`)&&!ds.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=Yd(t.step),n=l.get(e)??[];n.push(t.detail),l.set(e,n)}let u=new Map(Array.from(l,([e,t])=>[e,Co(t.join(`
`),-4096).split(/\r?\n/u).slice(-80).join(`
`)])),d=c?u.get(Yd(c.step))??``:``,f=e.verification,p=is(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:ts(e),headline:!t&&!n&&(e.phase===`activating`||e.phase===`restarting`||e.phase===`verifying`)?j(`updates.run.restarting`):i.headline,compactLabel:r?``:j(`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(Yd(e))})),detailStep:c?.step,details:d,oracles:r?[]:h}}function Zd(){return(Zd=e((()=>{ys(),cs(),us(),v()})))()}function Qd(e){return qn({signal:e.signal,value:!1},({render:t,finish:n})=>{let r=!1,i=!e.requiredAcknowledgement,a=e.title??j(`common.confirm`),o=()=>F`
<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?F`<div class="exec-approval-command mono">${e.details}</div>`:I}
${e.requiredAcknowledgement?F`<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?F`<label class="field checkbox exec-approval-skip">
<input
type="checkbox"
@change=${e=>{r=e.target.checked}}
/>
<span>${j(`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??j(`common.confirm`)}
</button>
<button type="button" class="btn" autofocus @click=${()=>n(!1)}>
${e.cancelLabel??j(`common.cancel`)}
</button>
</div>
</div>
</openclaw-modal-dialog>
`;t(o)})}function $d(e){return e.skipPreference?.skipped&&!e.requiredAcknowledgement?Promise.resolve(!0):ef?Promise.resolve(!1):(ef=!0,Qd(e).finally(()=>{ef=!1}))}var ef;function tf(){return(tf=e((()=>{L(),v(),dr(),ef=!1})))()}var nf=t({createWebPushCapabilityRuntime:()=>hf});function rf(e){let t=e?.pushManager;return t&&typeof t.getSubscription==`function`?t:null}function af(e){let t=rf(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 of(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 sf(){return`serviceWorker`in navigator?await rf(await navigator.serviceWorker.getRegistration())?.getSubscription()??null:null}async function cf(e){let{vapidPublicKey:t}=await e.request(`push.web.vapidPublicKey`,{});if(!t)throw Error(`Failed to retrieve VAPID public key`);return of(t)}function lf(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 uf(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 df(e,t,n){return lf(t,n)?(await e.request(`push.web.subscribe`,uf(t)),{state:`registered`}):(await e.request(`push.web.unsubscribe`,{endpoint:t.endpoint}).catch(()=>void 0),{state:`vapid-mismatch`,error:Sf})}async function ff(e,t){return{subscription:t.state,preferences:t.state===`registered`?await yf(e):null,error:t.state===`vapid-mismatch`?t.error:null}}async function pf(e){let t=await sf();return await ff(e,t?await df(e,t,await cf(e)):{state:`missing`})}function mf(e){let t=null,n=0,r=!1,i=async(t,i)=>{let a;try{a=await pf(t)}catch(e){a={error:A(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(Cf)&&i(a,++n)});return a(e.gateway.snapshot),()=>{r=!0,n+=1,o(),s()}}function hf(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 bf(r,n);i()&&e.publish(t)}).catch(t=>{i()&&e.publish({error:A(t)})}).finally(()=>{t===a&&(t=null,e.publish({loading:!1,permission:`Notification`in window?Notification.permission:`unsupported`}))});return t=a,a},dispose:mf(e)}}async function gf(e){let t=await Notification.requestPermission();if(t!==`granted`)throw Error(`Notification permission ${t}`);let n=af(await Uo(()=>navigator.serviceWorker.ready,xf,()=>{throw Error(`Service worker not ready (timed out)`)})),r=await cf(e),i=await n.getSubscription();if(i)return await df(e,i,r);let a=await n.subscribe({userVisibleOnly:!0,applicationServerKey:r.buffer});try{return await df(e,a,r)}catch(e){try{await a.unsubscribe()}catch{}throw e}}async function _f(e){let t=await sf();if(t){try{await e.request(`push.web.unsubscribe`,{endpoint:t.endpoint})}catch{}await t.unsubscribe()}}async function vf(){let e=await sf();if(!e)throw Error(`Enable notifications before changing notification preferences.`);return e}async function yf(e){let t=await vf();return await e.request(`push.web.preferences.get`,{endpoint:t.endpoint})}async function bf(e,t){switch(t.kind){case`enable`:return await ff(e,await gf(e));case`disable`:return await _f(e),{subscription:`missing`,preferences:null};case`test`:return await e.request(`push.web.test`,{}),{};case`set`:{let n=await vf();return await e.request(`push.web.preferences.set`,{endpoint:n.endpoint,scope:t.scope,preferences:t.preferences}),{preferences:await yf(e)}}default:return t}}var xf,Sf,Cf;function wf(){return(wf=e((()=>{Vo(),M(),xf=1e4,Sf=`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.`,Cf=`notifications.web.v1`})))()}var Tf=t({renderAgentAvatarFace:()=>Ef});function Ef(e){let t=h(e),n=Df[t%Df.length],r=`hsl(${n} 58% 62%)`,i=`hsl(${n} 65% 90%)`,a=`hsl(${n} 55% 18%)`,o=[B`<circle cx="11" cy="13.5" r="1.6" /><circle cx="21" cy="13.5" r="1.6" />`,B`<ellipse cx="11" cy="13" rx="1.5" ry="2" /><ellipse cx="21" cy="13" rx="1.5" ry="2" />`,B`<path d="M9 14q2-3 4 0m6 0q2-3 4 0" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,B`<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=[B`<path d="M11.5 20q4.5 4.5 9 0" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,B`<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} />`,B`<path d="M12 22q5 2 8-1" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`,B`<path d="M13.5 22.5h5" fill="none" stroke=${a} stroke-width="1.6" stroke-linecap="round" />`],c=Math.floor(t/Df.length),l=Math.floor(c/o.length),u=Math.floor(l/s.length)%2==1;return F`<svg
class="identity-avatar__agent-face"
viewBox="0 0 32 32"
width="100%"
height="100%"
aria-hidden="true"
>
${B`<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 Df;function Of(){return(Of=e((()=>{L(),Df=[8,32,48,82,142,174,202,232,272,322]})))()}function kf(e,t){return!t.avatarHat||yl(e)?null:((h(e)^Af)>>>0)%6==0?t.avatarHat:null}var Af;function jf(){return(jf=e((()=>{bl(),Af=Math.trunc(Math.random()*4294967295)})))()}function Mf(e,t){return Ts(W(async()=>{let{fetchPluginThemeArtworkBlobUrl:e}=await import(`./control-ui-boot-shared-D3oo_6Fq.js`).then(e=>(e.fs(),e.ds));return{fetchPluginThemeArtworkBlobUrl:e}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).then(({fetchPluginThemeArtworkBlobUrl:t})=>t({url:e})).then(e=>e?F`<img class=${t} alt="" src=${e} />`:I).catch(()=>I),I)}function Nf(){return(Nf=e((()=>{L(),$s(),hs()})))()}var Pf;function Ff(){return(Ff=e((()=>{L(),Pf={crown:B`
<path
d="M46 12 L46 2 L53 8 L60 0 L67 8 L74 2 L74 12 Q60 8 46 12 Z"
fill="#f6c945"
/>
`,santa:B`
<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:B`
<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:B`
<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 If(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 Lf(e,t){return B`
<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})">
${Pf[e]}
</g>
</svg>
`}var Rf,zf,Bf,Vf,Hf,Uf;function Wf(){return(Wf=e((()=>{L(),Ff(),Rf=B`
<svg
class="lobster-pet__svg"
viewBox="0 0 120 105"
preserveAspectRatio="none"
aria-hidden="true"
>
<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>
</svg>
`,zf=B`
<svg
class="lobster-pet__svg"
viewBox="0 0 120 105"
preserveAspectRatio="none"
aria-hidden="true"
>
<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" />
</svg>
`,Bf={penguin:Rf,fedora:zf},Vf={penguin:`on loan from the kernel`,fedora:`a hat. nobody underneath`},Hf={penguin:13e3,fedora:9e3},Uf={fedora:B`
<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:Lf(`crown`,11),santa:Lf(`santa`,10.5),party:Lf(`party`,11),pumpkin:Lf(`pumpkin`,12)}})))()}function Gf(e){let t=Va(e),n=t.kind===`initials`?t:ja(e),r=t.kind===`profile`?eo(t.url):null;return{fallback:n,imageUrl:r,sourceUrl:t.kind===`profile`?t.url:void 0,pending:r!==null&&typeof r!=`string`}}function Kf(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 qf(e,t,n){let r=e.currentTarget;if(!(r instanceof HTMLImageElement))return;let i=r.closest(t);i&&Kf(i,n?`failed`:`loaded`)}function Jf({view:e,fallbackSelector:t,className:n,alt:r=``,ariaHidden:i=!1,onImageError:a}){return e.imageUrl?F`<img
class=${n??I}
src=${ep(e.imageUrl,e.sourceUrl,t)}
alt=${r}
aria-hidden=${i?`true`:I}
referrerpolicy="no-referrer"
@error=${e=>{qf(e,t,!0),a?.()}}
@load=${e=>qf(e,t,!1)}
/>`:I}function Yf(e,t=``,n){let r=Lr();if(yl(e.id))return r.mascot===`none`?F`<span
class=${`identity-avatar--agent identity-avatar--neutral ${t}`}
role=${e.name?`img`:I}
aria-label=${e.name??I}
aria-hidden=${e.name?I:`true`}
>${N.mark}</span
>`:F`<img
class=${`identity-avatar--agent ${t}`}
src=${An(`favicon.svg`)}
alt=${e.name??``}
aria-hidden=${e.name?I:`true`}
/>`;let i=e.avatar&&!e.pending?eo(e.avatar)??e.avatar:null,a={imageUrl:i,sourceUrl:e.avatar??void 0,pending:e.pending??i!==null};return F`<span
class=${Qf(`identity-avatar--agent ${t}`,a)}
role=${e.name?`img`:I}
aria-label=${e.name??I}
aria-hidden=${e.name?I:`true`}
>
${Jf({view:a,fallbackSelector:`.identity-avatar--agent`,className:`identity-avatar__image`,onImageError:n})}
<span class="identity-avatar__fallback">
${oi([e.id,e.textAvatar],()=>Ts(e.textAvatar?F`<span class="identity-avatar__text" data-avatar=${e.textAvatar}></span>`:W(async()=>{let{renderAgentAvatarFace:e}=await Promise.resolve().then(()=>(Of(),Tf));return{renderAgentAvatarFace:e}},void 0,import.meta.url).then(({renderAgentAvatarFace:t})=>t(e.id)),I))}
</span>
${e.pending?I:Xf(e.id,r)}
</span>`}function Xf(e,t=Lr()){let n=kf(e,t);if(!n)return I;let r=t.artwork?.hats?.[n],i=bs(n)?Uf[n]:r?Mf(r.url,`identity-avatar__hat-img`):I;return F`<span class=${`identity-avatar__hat identity-avatar__hat--${n}`} aria-hidden="true"
>${i}</span
>`}var Zf,Qf,$f,ep;function tp(){return(tp=e((()=>{L(),Jr(),mi(),$s(),_o(),bl(),an(),xe(),Ia(),Qa(),jf(),P(),Pr(),Nf(),Wf(),hs(),Zf=class extends vi{constructor(...e){super(...e),this.hasImage=!1}render(e,t){return e}update(e,[t,n]){n.imageUrl?this.hasImage||Kf(e.element,`pending`):Kf(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`:``}`}},Qf=ei(Zf),$f=class extends ks{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?$a(i,Rt().origin):null,o=a&&t===i?eo(a):t;if(this.part=e,this.fallbackSelector=r,this.sourceUrl=a??void 0,o!==this.imageUrl||!this.release){let e=this.isConnected?qa(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===$r||!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&&Kf(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&&Kf(e,`loaded`)}})}disconnected(){super.disconnected(),this.release?.(),this.release=void 0}reconnected(){if(this.part){let e=this.sourceUrl?eo(this.sourceUrl):this.imageUrl;this.setValue(this.update(this.part,[e,this.sourceUrl,this.fallbackSelector]))}super.reconnected()}},ep=ei($f)})))()}function np(e,t){if(e.key===`Tab`){t?.();return}e.key===`Escape`&&e.currentTarget&&fp.add(e.currentTarget)}function rp(e){let t=e.currentTarget;return t!==null&&fp.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 ap(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 op(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 sp(e){e.querySelectorAll(`wa-dropdown-item`).forEach(op)}function cp(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&&op(t)})}function lp(e){let t=e.composedPath()[0];if(!(t instanceof HTMLElement)||t.localName!==`wa-dropdown`||(queueMicrotask(()=>{!e.defaultPrevented&&t.open&&Tt(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`),ap(t),sp(t),pp.get(t)?.disconnect(),typeof MutationObserver>`u`))return;let n=new MutationObserver(()=>{ap(t),sp(t)});n.observe(t,{attributes:!0,attributeFilter:[`aria-label`],childList:!0,characterData:!0,subtree:!0}),pp.set(t,n)}function up(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 dp(e){let t=e.composedPath()[0];t instanceof HTMLElement&&t.localName===`wa-dropdown`&&(pp.get(t)?.disconnect(),pp.delete(t))}var fp,pp;function mp(){return(mp=e((()=>{Ds(),Es(),ut(),fp=new WeakSet,pp=new WeakMap,typeof document<`u`&&(document.addEventListener(`wa-show`,lp),document.addEventListener(`submenu-opening`,e=>{e instanceof CustomEvent&&cp(e)},!0),document.addEventListener(`wa-hide`,up),document.addEventListener(`wa-after-hide`,dp))})))()}function hp(e,t=null,n,r){let i=n===void 0&&e.agent?rt(e.agent,t):n??null;return e.icon&&!i?F`<span class="agent-select__avatar agent-select__avatar--icon" aria-hidden="true"
>${e.icon}</span
>`:Yf({id:e.agent?.id??e.value,avatar:i,textAvatar:e.agent?Ke(e.agent,t):null},`agent-select__avatar`,r)}function gp(e){return F`
<span class="agent-select__option-copy">
<span class="agent-select__option-heading">
<span class="agent-select__option-label">${e.label}</span>
${e.badge?F`<span class="agent-select__badge">${e.badge}</span>`:I}
</span>
${e.description?F`<span class="agent-select__option-description">${e.description}</span>`:I}
</span>
`}var _p;function vp(){return(vp=e((()=>{Ds(),Es(),L(),z(),Qr(),v(),gt(),_t(),Ia(),O(),P(),tp(),mp(),_p=class extends p{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 Xi(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 hp(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=e??t,r=this.disabled||this.options.length===0&&!this.onCreateAgent,i=n?.label??(this.placeholder||j(`agents.noAgents`)),a=e?.badge,o=a?`${i}, ${a}`:i;return F`
<wa-dropdown
class="agent-select ${this.variant===`compact`?`agent-select--compact`:``}"
placement="bottom-start"
aria-label=${this.accessibleLabel||i}
@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}: ${o}`:o}
?disabled=${r}
>
${n?this.renderAvatar(n):I}
<span class="agent-select__label">${i}</span>
${a?F`<span class="agent-select__badge">${a}</span>`:I}
<span class="agent-select__chevron" aria-hidden="true">${N.chevronDown}</span>
</button>
${this.menuLabel?F`<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 F`
<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}
${Xr(e=>ip(e,t))}
>
<span slot="icon">${this.renderAvatar(e)}</span>
${gp(e)}
<span slot="details" class="agent-select__option-state" aria-hidden="true">
${t?F`<span class="agent-select__option-check">${N.check}</span>`:I}
</span>
</wa-dropdown-item>
`})}
${this.onCreateAgent?F`
${this.options.length>0?F`<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"
>${N.users}</span
>
<span class="agent-select__option-label">${j(`custodian.newAgent`)}</span>
</wa-dropdown-item>
`:I}
</wa-dropdown>
`}},U([V({attribute:!1})],_p.prototype,`options`,void 0),U([V({attribute:!1})],_p.prototype,`value`,void 0),U([V({attribute:!1})],_p.prototype,`placeholder`,void 0),U([V({attribute:!1})],_p.prototype,`accessibleLabel`,void 0),U([V({attribute:!1})],_p.prototype,`menuLabel`,void 0),U([V({attribute:!1})],_p.prototype,`identityById`,void 0),U([V({attribute:!1})],_p.prototype,`disabled`,void 0),U([V({attribute:!1})],_p.prototype,`variant`,void 0),U([V({attribute:!1})],_p.prototype,`onSelect`,void 0),U([V({attribute:!1})],_p.prototype,`onCreateAgent`,void 0)})))()}var yp=t({});function bp(){return(bp=e((()=>{vp(),customElements.get(`openclaw-agent-select`)||customElements.define(`openclaw-agent-select`,_p)})))()}function xp(e){let t=Date.now();return e!=null&&Number.isFinite(e)&&e<=t&&t-e<6e4?j(`common.now`):It(e,{fallback:``,suffix:e!=null&&e>t})}function Sp(e){return e!==void 0&&e<0xe8d4a51000?e*1e3:e}function Cp(e){let t=He(e.sessionKey);for(let n of e.catalogs)for(let r of n.hosts)for(let i of r.sessions){let a=i.sessionKey??ue({catalogId:n.id,hostId:r.hostId,threadId:i.threadId}),o=t?.catalogId===n.id&&t.hostId===r.hostId&&t.threadId===i.threadId;if(a!==e.sessionKey&&!o)continue;let s=vo(i.cwd),c=vo(i.gitBranch);return{...e.liveRow,hasActiveRun:e.liveRow?.hasActiveRun===!0,hasAutomation:e.liveRow?.hasAutomation===!0,label:e.liveRow?.label??(i.name||i.threadId),color:e.liveRow?e.liveRow.color:i.color,createdActor:e.liveRow?.createdActor??i.createdActor,createdAt:e.liveRow?.createdAt??Sp(i.createdAt),updatedAt:e.liveRow?.updatedAt??Sp(i.updatedAt),workContext:s?c||i.pullRequest?{kind:`project`,name:ht(s),path:s,...c?{branch:c}:{}}:{kind:`workspace`,name:ht(s),path:s}:e.liveRow?.workContext}}return e.liveRow}function wp(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 Tp(e){let t=new Set,n=e=>{e&&t.add(A(`[${e.code}] ${e.message}`))};n(e.error);for(let t of e.hosts)t.error?.code!==`NODE_OFFLINE`&&n(t.error);return[...t]}function Ep(e,t,n,r){let i=new Map(n.toReversed().map(e=>[e.key,e]));return e.flatMap(e=>{let n=Dp(e.hosts,t,i,r);return n.length>0?[{...e,visibleHosts:n}]:[]})}function Dp(e,t,n,r){let i=[];for(let a of e){let e=a.sessions.filter(e=>{let i=e.sessionKey?n.get(e.sessionKey):void 0;return e.sessionKey&&r?.(i??{key:e.sessionKey})?!1:!t||(i?i.owner?.actor.id:e.createdActor?.id)===t});e.length>0&&i.push(e.length===a.sessions.length?a:{...a,sessions:e})}return i}function Op(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 kp(){return(kp=e((()=>{v(),M(),Ne(),ze()})))()}function Ap(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=j(`chat.sidebar.reorderItem`,{item:e.label});return F`
<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}
>
${N.gripVertical}
</button>
<wa-dropdown-item value="before">
<span slot="icon" aria-hidden="true">${N.arrowUp}</span>
${j(`chat.sidebar.moveUp`)}
</wa-dropdown-item>
<wa-dropdown-item value="after">
<span slot="icon" aria-hidden="true">${N.arrowDown}</span>
${j(`chat.sidebar.moveDown`)}
</wa-dropdown-item>
</wa-dropdown>
`}function jp(){return(jp=e((()=>{L(),v(),P(),mp()})))()}function Mp(e){let t=e.draggable!==!1&&!e.disabledReason;return F`
<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&&(zc(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?Ap({...e.reorder,kind:`section`}):I}
${e.status?F`<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 Np(){return(Np=e((()=>{L(),jc(),jp()})))()}function Pp(e){return e.split(/[-_]+/u).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}function Fp(e){return qp[e]??Pp(e)}function Ip(e){let t=e.indexOf(`/`);return(t>0?e.slice(0,t).trim().toLowerCase():``)||null}function Lp(e){let t=e.trim().toLowerCase(),n=Kp[t]??t;return Gp.has(n)?n:null}function Rp(e){return Lp(e)!==null}function zp(e){let t=(e?.providerDisplayId??e?.providerId??``).trim().toLowerCase();return Yp.get(t)??t}function Bp(e,t){return Number(Jp.has(zp(t)))-Number(Jp.has(zp(e)))||e.id.localeCompare(t.id)}function Vp(e){let t=zp(e),n=Jp.get(t),r=n?.label??(e?.providerDisplayId??e?.providerId??``).trim().toLowerCase(),i=n?.brand?Hp(An(`cloud-provider-icons/${n.brand}.svg`),n.brand,`cloud-provider-icon`):t===`machine0`||t===`incus`?N.server:t===`local-container`?N.box:N.cloud;return{label:r,icon:F`<span class="cloud-profile-icon" aria-hidden="true">${i}</span>`}}function Hp(e,t,n=``){return F`<span
class="provider-brand-icon ${n}"
data-provider-icon=${t}
style=${`--provider-icon-url: url("${e}")`}
aria-hidden="true"
></span>`}function Up(e,t){let n=t?.className?` ${t.className}`:``,r=T(e.trim().toUpperCase(),1)||`?`;return F`
<span
class="provider-brand-icon provider-brand-icon--fallback${n}"
aria-hidden="true"
>
${r}
</span>
`}function Wp(e,t){let n=t?.className?` ${t.className}`:``,r=Lp(e);return r?Hp(An(`provider-icons/ProviderIcon-${r}.svg`),r,n.trim()):Up(e,t)}var Gp,Kp,qp,Jp,Yp;function Xp(){return(Xp=e((()=>{L(),an(),Me(),P(),Gp=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(`.`)),Kp={"acp-copilot":`copilot`,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`},qp={"acp-copilot":`GitHub Copilot CLI`,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`,zai:`Z.AI`},Jp=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`}]]),Yp=new Map([[`google`,`gcp`],[`google-cloud`,`gcp`],[`docker`,`local-container`],[`local-docker`,`local-container`],[`podman`,`local-container`],[`local-podman`,`local-container`]])})))()}function Zp(e,t,n,r){return e===`pair`?F`<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=${em}></path>
<path
class="session-glyph__trace-run"
d=${em}
pathLength="100"
${r??I}
></path>
</svg>`:F`<span
class="session-glyph__ring${t?` session-glyph__ring--queued`:``}"
role="img"
aria-label=${n}
${r??I}
></span>`}function Qp(e){let{content:t,running:n,queued:r=!1,runningLabel:i,circular:a=!1,badge:o=I,ring:s=`circle`}=e,c=F`<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?Zp(s,r,i??j(r?`sessionsView.statusQueued`:`sessionsView.activeRun`),e.runVisibility):I}
${o}
</span>`;return n&&i?F`<openclaw-tooltip .content=${i} .describe=${!1}
>${c}</openclaw-tooltip
>`:c}function $p(){return F`<span
class="session-glyph__badge session-glyph__badge--unread"
role="img"
aria-label=${j(`sessionsView.unread`)}
></span>`}var em;function tm(){return(tm=e((()=>{L(),v(),Yt(),em=`M0,-9.798A11,11 0 1 1 0,9.798A11,11 0 1 1 0,-9.798Z`})))()}function nm(e){return[e?.osLabel||e?.os||``,e?.class||``,e?.cpu?j(`sessionHovercard.machineCpu`,{cpu:String(e.cpu)}):``,e?.memoryGb?j(`sessionHovercard.machineMemory`,{memory:String(e.memoryGb)}):``]}function rm(){return(rm=e((()=>{v()})))()}function im(e){return`${e.numbers.map(e=>`#${e}`).join(`, `)} · ${j(`chat.pullRequests.${e.state}`)}`}function am(e,t,n=``,r=0,i,a,o,s=0){return F`<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?F`<span aria-hidden="true">${r}</span>`:I}</span
>
</openclaw-tooltip>`}function om(e){let t=e.pullRequest?im(e.pullRequest):void 0,n=e.pullRequest?.state,r=e.isChild?void 0:e.placementState,i=Ti(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`?j(`sessionsView.cloudWorkerDiskCritical`):l===`warning`?j(`sessionsView.cloudWorkerDiskWarning`):``,d=Math.max(0,Math.floor(e.outboxAttentionCount??0)),f=d>0?j(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,...nm(e.placementMachine),s].filter(Boolean).join(` · `):j(`sessionsView.cloudWorkerPlacement`,{state:s}):``,m=[c?s?j(a===1?`sessionsView.placementWorkspaceConflict`:`sessionsView.placementWorkspaceConflicts`,{placement:p,count:String(a)}):j(a===1?`sessionsView.cloudWorkerDescendantConflict`:`sessionsView.cloudWorkerDescendantConflicts`,{count:String(a)}):p,u].filter(Boolean).join(` · `);return F`<span class="session-row-badges">
${e.incognito?am(j(`sessionsView.incognito`),N.lock,`session-row-badge--incognito`):I}
${t?am(t,n===`merged`?N.gitMerge:N.gitPullRequest,`session-row-badge--pull-request`,0,n):I}
${e.hasApproval?am(j(`sessionsView.approvalNeeded`),N.alertTriangle,`session-row-badge--approval`):I}
${d>0?am(f,N.alertTriangle,`session-row-badge--attention`,d):I}
${e.hasComposerDraft?am(j(`sessionsView.unsentDraft`),N.pencil,`session-row-badge--draft`):I}
${s||c?am(m,N.globe,`session-row-badge--cloud`,0,void 0,s,l,c?a:0):I}
</span>`}function sm(){return(sm=e((()=>{L(),wi(),v(),P(),rm()})))()}function cm(e){let t=lm.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},lm.set(e,t)}return t}var lm,um,dm;function fm(){return(fm=e((()=>{L(),ci(),Jr(),lm=new WeakMap,um=class extends Zr{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=cm(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(),lm.delete(e)),this.observation=void 0}reconnected(){this.schedule()}},dm=ei(um)})))()}var pm=t({renderSessionCatalogGroups:()=>gm});function mm(e,t,n,r,i){let a=document.activeElement instanceof HTMLElement?document.activeElement:null,o=a?.closest(`[data-session-key]`),s=bm.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 hm(e,t){return e?F`<span
class="session-run-spinner"
role="img"
aria-label=${j(`sessionsView.activeRun`)}
title=${j(`sessionsView.activeRun`)}
></span>`:t?F`<span
class="session-unread-dot"
role="img"
aria-label=${j(`sessionsView.unread`)}
></span>`:I}function gm(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=Rp(n.id),u=e.loadingMoreCatalogIds.has(n.id),d=n.hosts.some(e=>!!e.nextCursor),f=n.capabilities.startTerminal===!0,p=Tp(n),m=p.length>0,h=p.join(`; `),g=j(`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 F`
<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)}
>
${Mp({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:F`<span
class="sidebar-session-group-count ${m?`sidebar-session-group-count--error`:``}"
data-session-catalog-error=${m?n.id:I}
aria-hidden="true"
>${m?N.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:F`
<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?Wp(n.id,{className:`sidebar-session-catalog-provider-icon`}):I}
<span class="sidebar-session-group-toggle__icon"
>${i?N.chevronRight:N.chevronDown}</span
>
</span>
${va(n.label,`sidebar-recent-sessions__label-text`)}
${hm(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=${j(`chat.sidebar.catalogViewOptions`)}
aria-label=${j(`chat.sidebar.catalogViewOptions`)}
aria-haspopup="menu"
aria-expanded=${String(e.viewMenuOpenCatalogId===n.id)}
@click=${t=>{t.stopPropagation(),e.onOpenViewMenu(n.id,t.currentTarget)}}
>
${N.listFilter}
</button>
${f?Gn({basePath:e.basePath,agentId:e.newSessionAgentId,target:{catalogId:n.id},className:`sidebar-session-group-actions sidebar-session-new sidebar-session-catalog-new`,label:`${j(`chat.runControls.newSession`)} — ${n.label}`,disabledReason:e.newSessionDisabledReason,onOpen:e.onOpenNewSession}):I}
`})}
${i?I:F`<div class="sidebar-recent-sessions__list">
${n.visibleHosts.map(r=>_m(n,r,t,e))}
</div>
${d?F`<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)}
>
${j(`chat.selectors.loadMoreSessions`)}
</button>`:I}`}
</div>
`})}function _m(e,t,n,r){let i=t.error?A(`[${t.error.code}] ${t.error.message}`):void 0,a=r.projectGrouping===`project`?dl(t.sessions):r.projectGrouping===`person`?ol(t.sessions):null,o=(i,a,o=!1)=>{let s=(r.visibleSessionLimits.get(a)??ym)>ym;return ii(s?i:i.slice(0,ym),n=>ue({catalogId:e.id,hostId:t.hostId,threadId:n.threadId}),i=>vm(e,t,i,n,r,o))},s=(e,t)=>{if(e.length<=ym)return I;let n=(r.visibleSessionLimits.get(t)??ym)>ym,i=j(n?`chat.messages.showLess`:`chat.messages.showMore`);return F`<div class="sidebar-session-pagination sidebar-session-pagination--catalog">
<button
type="button"
class="sidebar-session-pagination__button"
aria-label=${i}
@click=${()=>r.onSetVisibleSessionLimit(t,n?ym:e.length)}
>
${i}
</button>
</div>`},c=a?.ungrouped??t.sessions,l=a?`catalog-${r.projectGrouping}-ungrouped:${e.id}:${t.hostId}`:`catalog-host:${e.id}:${t.hostId}`,u=t.kind!==`gateway`;return F`
<section class="sidebar-session-catalog-host" data-session-catalog-host=${t.hostId}>
${u?F`<div
class="sidebar-session-catalog-host__head"
aria-label=${i?`${t.label}: ${i}`:t.label}
title=${i??t.label}
>
<span class="sidebar-session-group-toggle__lead" aria-hidden="true">
<span class="sidebar-session-group-toggle__icon">${N.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?N.alertTriangle:t.sessions.length}</span
>
</div>`:I}
<div class="sidebar-session-catalog-host__sessions" role="list" aria-label=${t.label}>
${a?ii(a.groups,e=>e.key,n=>{let i=`catalog-${n.kind}:${e.id}:${t.hostId}:${n.key}`,a=n.legacySectionKey?`catalog-project:${e.id}:${t.hostId}:${n.legacySectionKey}`:null,c=r.collapsedSections.has(i)?i:a&&r.collapsedSections.has(a)?a:null,l=c!==null;return F`
<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=${()=>r.onToggleSection(c??i)}
>
<span class="sidebar-session-catalog-project__icon" aria-hidden="true"
>${l?N.chevronRight:N.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:F`<div
class="sidebar-session-catalog-project__sessions"
role="list"
aria-label=${`${t.label}: ${n.label}`}
>
${o(n.sessions,i,!0)}
</div>
${s(n.sessions,i)}`}
</div>
`}):I}
${o(c,l)}
</div>
${s(c,l)}
</section>
`}function vm(e,t,n,r,i,a=!1){let o=Sp(n.recencyAt??n.updatedAt??n.createdAt),s={catalogId:e.id,hostId:t.hostId,threadId:n.threadId,...n.sourceHomeId?{sourceHomeId:n.sourceHomeId}:{}},c=ue(s),l=n.sessionKey??ue(s,i.newSessionAgentId),u=n.name||n.threadId,d=xp(o),f=`chat`,{href:p,options:m}=Ee({face:f,sessionKey:l,fallbackAgentId:i.newSessionAgentId,basePath:i.basePath,mainKey:i.mainKey}),h={key:s,agentId:i.newSessionAgentId,routeId:f,navigation:m,canOpenTerminal:n.canOpenTerminal===!0,canDelete:n.canArchive&&e.capabilities.archive,name:n.name??n.threadId,displayName:n.name,meta:d},g=i.isMenuOpen(s),_=mm(c,l,s,g,i),v=n.sessionKey?r.get(n.sessionKey):void 0;if(v)return i.renderLiveRow(v,{catalogIdentityKey:c,catalogMenu:h,..._?{rowRef:_}:{},...n.pullRequest?{pullRequest:n.pullRequest}:{}});let y=Ri(n.color??``),b=l===i.routeSessionKey,S=n.status===`active`||n.status===`running`,ee=n.canOpenTerminal===!0&&i.terminalAvailable,C=()=>i.onOpenTerminal(s,i.newSessionAgentId),te=(e,t,n)=>i.onOpenMenu(h,e,t,n),ne=e=>Oa(e,e instanceof KeyboardEvent?e.currentTarget.querySelector(`[data-catalog-session-menu]`):null,(e,t,n)=>te(t,n,e??void 0)),w=si(JSON.stringify([u,n.status,n.pullRequest]),va(u,`sidebar-recent-session__name`));return F`
<div
${_?Xr(_):I}
class="sidebar-recent-session session-row-host sidebar-recent-session--single-line ${y?`sidebar-recent-session--colored`:``} ${b?`sidebar-recent-session--active`:``} ${a?`sidebar-recent-session--catalog-project-child`:``} ${S?`session-row-host--running`:``}"
style=${y?`--session-color: var(--session-color-${y})`:I}
data-session-key=${l}
data-catalog-session-key=${c}
data-session-row-action-count="1"
role="listitem"
@contextmenu=${ne}
@keydown=${ne}
>
<a
href=${p}
class="sidebar-recent-session__link"
aria-current=${b?`page`:I}
@click=${e=>{x(e)&&(e.preventDefault(),i.catalogOpenTarget===`terminal`&&ee?C():i.onNavigate?.(f,m))}}
>
<span class="sidebar-session-indicator">
${S?Qp({content:I,running:S,runVisibility:dm()}):I}
</span>
<span class="sidebar-recent-session__text">
<span class="sidebar-recent-session__title-row"> ${w} </span>
<span class="sidebar-recent-session__details">
<span class="sidebar-recent-session__details-endcap">
${om({pullRequest:n.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=${j(`chat.sidebar.openSessionMenu`)}
aria-label=${j(`chat.sidebar.openSessionMenu`)}
aria-haspopup="menu"
aria-expanded=${String(g)}
@click=${e=>{e.stopPropagation();let t=e.currentTarget,n=t.getBoundingClientRect();te(n.right,n.bottom+4,t)}}
>
${N.moreHorizontal}
</button>
</span>
</span>
</div>
`}var ym,bm;function xm(){return(xm=e((()=>{L(),hi(),Qr(),ui(),Ei(),v(),M(),ka(),Da(),ze(),Hc(),de(),kp(),Np(),P(),lr(),Xp(),tm(),sm(),fm(),ym=5,bm=[`.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 Sm(e){let t=Vt(Gi(_l(e).text)),n=Zi(t);return!t||Wt(t)||zt(t)||n.shouldSkip?null:n.text}function Cm(e){let t=Sm(e);if(!t)return``;let n=t.replace(/```[\s\S]*?```/g,` `).split(/\n\s*\n/),r=``;for(let e=n.length-1;e>=0&&(r=Ki(n[e]??``),!r);--e);if(!r)return``;let i=r.match(/[^.!?…]+(?:[.!?…]+(?=\s|$)|$)/g)?.map(e=>e.trim()).findLast(e=>!!e)??r;return ot(i,Em)}function wm(e){let t=[Li,Fi];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 Tm(e,t){let n=`${e.delimiterTail}${t}`;e.delimiterTail=``;let r=e.internalDepth,i=0,a=``;for(;i<n.length;){let e=n.indexOf(Li,i),t=n.indexOf(Fi,i);if(r===0){if(e===-1&&t===-1){a+=n.slice(i);break}if(t!==-1&&(e===-1||t<e)){i=t+Fi.length;continue}a+=n.slice(i,e),r=1,i=e+Li.length;continue}if(e===-1&&t===-1)break;if(e!==-1&&(t===-1||e<t)){r+=1,i=e+Li.length;continue}--r,i=t+Fi.length}let o=wm(n);return o&&(e.delimiterTail=o,r===0&&a.endsWith(o)&&(a=a.slice(0,-o.length))),e.internalDepth=r,a}var Em;function Dm(){return(Dm=e((()=>{Mi(),Bt(),Cl(),ga(),Ne(),Em=120})))()}function Om(e,t,n){if(e!==`tool`&&e!==`item`)return;let r=Zo(t),i=e===`item`?ec(ji,{...r}):void 0,a=Js(ji,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?Cm(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 km(){return(km=e((()=>{Ys(),Ai(),Dm()})))()}var Am=t({SidebarSessionNarrationController:()=>zm});function jm(){return{retryWindowMs:Lm,retryAt:0,timer:null}}function Mm(e){return e.startedAt??e.updatedAt??0}function Nm(e,t){return typeof t!=`string`||!t.trim()||G(t)===G(e)}var Pm,Fm,Im,Lm,Rm,zm;function Bm(){return(Bm=e((()=>{$o(),Bo(),Ys(),Ci(),xl(),D(),Cc(),Dm(),km(),Pm=6,Fm=2e3,Im=16384,Lm=500,Rm=3e4,zm=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.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){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))||Mm(t)-Mm(e))){let e=k(t.key,i);!e&&o>=Pm||(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()}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),...jm()};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 ho)&&(!(t instanceof jo)||!t.retryable))return;let n=t instanceof jo?t.retryAfterMs:void 0,r=Go((typeof n==`number`&&Number.isFinite(n)?Math.max(0,n):0)+Math.random()*e.retryWindowMs);e.retryWindowMs=Math.min(e.retryWindowMs*2,Rm),e.retryAt=Date.now()+r,e.timer=globalThis.setTimeout(()=>{e.timer=null,e.retryAt=0,this.input&&this.sync(this.input)},r)}cancelRetry(e){e.timer!==null&&(globalThis.clearTimeout(e.timer),e.timer=null)}subscriptionAgentId(e){return m(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)??jm();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.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(k(n,e)&&(!m(n)||Nm(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?Sl(wl(i)??``):null,s=this.streams.get(n)?.consumedLength??0;if(t.replace===!0){let e=o??a;this.publishText(n,{streamLength:e.length,fragment:e,reset:!0,immediate:r});return}if(a){if(o!==null){let e=s>0&&o.length-a.length===s;this.publishText(n,{streamLength:o.length,fragment:e?a:o,reset:!e,immediate:r})}else s>0&&this.publishText(n,{streamLength:s+a.length,fragment:a,reset:!1,immediate:r});return}if(o!==null)this.publishText(n,{streamLength:o.length,fragment:o,reset:!0,immediate:r});else if(r){let e=this.throttles.get(n)?.pending;e!=null&&this.publishImmediate(n,e)}}handleNarrationEvent(e){if(!Js(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=Tm(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>Im?Co(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=Om(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(!Js(ki,i))return;this.observeRun(n,r);let a=this.observerDigests.get(n);a&&ma(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>=Fm){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))},Fm-(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=Cm(t);if(n){this.lines.get(e)!==n&&(this.lines.set(e,n),this.onLinesChanged(new Map(this.lines)));return}this.lines.delete(e)&&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 Vm;function Hm(){return(Hm=e((()=>{Yt(),mp(),Vm=class{constructor(e,t){this.host=e,this.options=t,this.generation=0,this.handleDocumentKeydown=e=>{if(!(e.defaultPrevented||pn(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))&&np(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 Um(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 Wm,Gm;function Km(){return(Km=e((()=>{L(),ci(),pi(),v(),na(),ea(),Wm=class extends Zr{constructor(...e){super(...e),this.rows=[],this.query=``,this.onInput=e=>{this.query=e.currentTarget.value,this.setValue(this.content())},this.onKeydown=e=>{if(Um(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 F`
<div
slot=${this.slot??I}
class="people-menu__search"
@click=${e=>e.stopPropagation()}
>
<input
type="search"
autocomplete="off"
aria-label=${j(`sessionsView.searchPeople`)}
placeholder=${j(`sessionsView.searchPeople`)}
.value=${li(this.query)}
@input=${this.onInput}
@keydown=${this.onKeydown}
/>
</div>
${t.map(e=>e.render())}
${t.length===0?F`<div slot=${this.slot??I} class="people-menu__status" role="status">
${j(`sessionsView.noPeopleMatch`)}
</div>`:I}
`}},Gm=ei(Wm)})))()}function qm(e,t){let n=e.length===1?e.toUpperCase():e;return F`<span slot="details" class="session-menu__shortcut" aria-hidden="true"
>${Un(n,{inline:!0})}${t?F` / ${_n(t,{inline:!0})}`:``}</span
>`}function Jm(e,t){if(Um(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=ms(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 Ym(){return(Ym=e((()=>{L(),Da(),In(),Km()})))()}function Xm(e){if(Tt(e),e.setAttribute(`popover`,`manual`),typeof e.showPopover==`function`)try{e.showPopover();return}catch{}e.removeAttribute(`popover`)}var Zm;function Qm(){return(Qm=e((()=>{ut(),Zm=class extends HTMLElement{connectedCallback(){Xm(this)}},customElements.get(`openclaw-menu-surface`)||customElements.define(`openclaw-menu-surface`,Zm)})))()}function $m(e){return Si.some(t=>t===e)}function eh(e){return e.startsWith(`data:image/svg+xml,`)?F`<img src=${e} alt="" aria-hidden="true" />`:$m(e)?th[e]:null}var th;function nh(){return(nh=e((()=>{L(),Ei(),P(),th={braces:N.braces,book:N.book,monitor:N.monitor,bot:N.bot,kanban:N.kanban,coins:N.coins}})))()}function rh(e){return e.archiveShortcut&&e.selectionCount===1&&!e.session.archived?Ue.archiveSession:void 0}function ih(e){return F`
${ba.map(t=>F`
<wa-dropdown-item
slot=${e.inline?I:`submenu`}
class="session-menu__item"
value=${`open-in:${t}`}
?disabled=${e.disabled}
>
<span class="session-menu__text">${$i[t]}</span>
</wa-dropdown-item>
`)}
`}function ah(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 F`
<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?Xr(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?F`<span slot="details" class="session-menu__check" aria-hidden="true"
>${N.check}</span
>`:I}
${o?qm(o):I}
</wa-dropdown-item>
`};return F`
${e.groups.map(t=>r(t,e.category===t,`move-to-group:${encodeURIComponent(t)}`))}
${e.category?r(j(e.categoryClearReturnsToGroups?`sessionsView.moveBackToGroups`:`sessionsView.removeFromGroup`),!1,`move-to-group:`,!1):I}
${r(j(`sessionsView.newGroup`),!1,`new-group`,!1)}
`}function oh(e){let t=Ri(e.color??``);return F`<div
class="session-menu__colors"
role="group"
aria-label=${j(`sessionsView.setColorMenu`)}
>
${(e.allowDefault===!1?Oi:[null,...Oi]).map(n=>{let r=j(n?`sessionsView.colors.${n}`:`sessionsView.noColor`),i=t===n&&(n!==null||!e.color);return F`<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?N.circleX:i?N.check:I}</span
>
</button>`})}
</div>`}function sh(){return(sh=e((()=>{L(),Qr(),Ei(),v(),ao(),Ge(),P(),Ym(),mp()})))()}function ch(){let e=globalThis.navigator?.platform??``;return/Mac|iPhone|iPad|iPod/u.test(e)?[`⌃`,`⌘`,`Space`]:/Win/u.test(e)?[`Win`,`+`,`.`]:null}function lh(e){let t=bi(e.customIconValue),n=t&&(e.allowSvg||!t.startsWith(`data:image/svg+xml,`)),r=ch();return F`
<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=${j(`common.back`)}
@click=${e.onBack}
>
${N.arrowLeft}
</button>
<span
>${j(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=${j(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}
>
${j(`sessionsView.customEmojiSet`)}
</button>
</div>
<div class="session-menu__icon-custom-hint">
${r?er(j(e.allowSvg?`sessionsView.customIconHint`:`sessionsView.customEmojiHint`,{shortcut:`{shortcut}`}),Un(r,{inline:!0})):j(e.allowSvg?`sessionsView.customIconHintNoShortcut`:`sessionsView.customEmojiHintNoShortcut`)}
</div>
</div>
`}function uh(e){let t=e.clearable!==!1&&e.currentIcon===null?null:[...ph,...Si].find(t=>t===e.currentIcon)??ph[0],n=(n,r=!1)=>F`
<button
type="button"
class=${`session-menu__icon-choice${r?` session-menu__icon-choice--glyph`:``}`}
aria-label=${r?n??j(`sessionsView.noIcon`):I}
aria-pressed=${String(e.currentIcon===n)}
tabindex=${n===t?`0`:`-1`}
?disabled=${e.disabled}
title=${e.disabledReason??(n===null?j(`sessionsView.noIcon`):I)}
@click=${t=>e.onSelect(t,n)}
>
${n===null?N.circleX:r?eh(n):n}
</button>
`;return F`
<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=${j(`sessionsView.setIconMenu`)}
@keydown=${e.onGridKeydown}
>
<div class="session-menu__icon-section-label">${j(`sessionsView.iconEmojiSection`)}</div>
<div class="session-menu__icon-grid">
${ph.map(e=>n(e))}
<button
type="button"
class="session-menu__icon-choice session-menu__icon-choice--custom"
aria-label=${j(e.allowSvg?`sessionsView.customIconCell`:`sessionsView.customEmojiCell`)}
aria-pressed="false"
tabindex="-1"
?disabled=${e.disabled}
title=${e.disabledReason??I}
@click=${e.onShowCustom}
>
${N.moreHorizontal}
</button>
</div>
<div class="session-menu__icon-section-label">${j(`sessionsView.iconGlyphSection`)}</div>
<div class="session-menu__icon-grid">
${e.clearable===!1?I:n(null,!0)}
${Si.map(e=>n(e,!0))}
</div>
</div>
${lh(e)}
</div>
`}function dh(e){return F`<div slot=${e.inline?I:`submenu`} class="session-menu__appearance">
<div class="session-menu__icon-section-label">${j(`sessionsView.setColorMenu`)}</div>
${oh({color:e.currentColor,allowDefault:e.clearable!==!1,disabled:e.colorDisabled,disabledReason:e.colorDisabledReason,onSelect:e.onSelectColor})}
${uh(e)}
${e.clearable===!1?I:F`<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}
>
${j(`sessionsView.resetAppearance`)}
</button>`}
</div>`}function fh(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 ph;function mh(){return(mh=e((()=>{L(),Ei(),v(),P(),In(),nh(),sh(),ph=[`🦞`,`🚀`,`🐛`,`✅`,`🔥`,`📦`,`🧪`,`📝`,`🔍`,`⚡`,`🎯`]})))()}function hh(e){return vh[e]??null}function gh(e){return F`
<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?F`<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"
>${N.chevronRight}</span
>
</wa-dropdown-item>
`}function _h(e){return F`
<wa-dropdown-item class="session-menu__item session-menu__back" value="compact:back">
<span slot="icon" class="session-menu__icon" aria-hidden="true">${N.arrowLeft}</span>
<span class="session-menu__text">${j(`common.back`)}</span>
</wa-dropdown-item>
<div class="session-menu__separator" role="separator"></div>
${e}
`}var vh;function yh(){return(yh=e((()=>{L(),v(),P(),vh={"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 bh;function xh(){return(xh=e((()=>{L(),v(),Ne(),sc(),P(),bh=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 pc({snoozedUntil:e??void 0},Date.now())?this.host.renderItem(`wake`,`${j(`sessionsView.wakeSession`)} · ${kc(e)}`,N.clock):this.host.renderSubmenu(`snooze`,j(`sessionsView.snooze`),N.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 F`${uc(t).map(({id:r,snoozedUntil:i})=>{let a=r===`next-week`?kc(i,t):ke(i);return F`
<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">${j(n[r])} · ${a}</span></wa-dropdown-item
>
`})}`}}})))()}function Sh(e,t){return{basePath:e.basePath,navigate:(n,r)=>{t?.(),e.navigate(`activity`,$n(n,e.basePath,r))}}}function Ch(e,t,n){let r=e?.trim();return!r||!t?null:{href:$n(r,t.basePath,n).href,open:e=>{x(e)&&(e.preventDefault(),t.navigate(r,n))}}}function wh(e,t,n){return t?F`<a class="${n} person-activity-link" href=${t.href} @click=${t.open}
>${e}</a
>`:F`<span class=${n}>${e}</span>`}function Th(e,t){return t?F`<a
class="person-activity-avatar-link"
href=${t.href}
tabindex="-1"
aria-hidden="true"
@click=${t.open}
>${e}</a
>`:e}function Eh(e,t){return t?F`<a class="person-activity-avatar-link" href=${t.href} @click=${t.open}
>${e}</a
>`:e}function Dh(){return(Dh=e((()=>{L(),Sr()})))()}function Oh(e){let t=F`<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 e.imageUrl?F`${Jf({view:e,fallbackSelector:`.viewer-avatar`})}${t}`:t}function kh(e,t,n){let r=Va({identity:t,id:e.id,name:e.name,profileAvatarUrl:e.avatarUrl});return F`<span
class="viewer-avatar viewer-avatar--session"
aria-label=${Ea(e)}
data-viewer-id=${n?e.id:I}
>${Yf({id:t.id,avatar:r.kind===`profile`?r.url:null})}</span
>`}var Ah,jh,Mh;function Nh(){return(Nh=e((()=>{Qo(),L(),z(),En(),v(),Qa(),po(),O(),a(),tp(),Dh(),Yt(),Ah=Object.freeze([]),jh=class extends Se{constructor(){super(),this.context=new _s(this,{context:Hr,subscribe:!0}),this.user=null,this.variant=`session`,this.markAsViewer=!0,new st(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:Ea(e),n=Gf({identity:this.identity??e.identity,id:e.id,name:e.name,username:e.email,profileAvatarUrl:e.avatarUrl?.trim()||this.selfAvatarUrl});return F`<span
class=${Qf(`viewer-avatar viewer-avatar--${this.variant}`,n)}
data-viewer-id=${this.markAsViewer?e.id:I}
aria-label=${t}
>
${Oh(n)}
</span>`}},U([V({attribute:!1})],jh.prototype,`user`,void 0),U([V()],jh.prototype,`variant`,void 0),U([V({attribute:!1})],jh.prototype,`identity`,void 0),U([V({type:Boolean,attribute:!1})],jh.prototype,`markAsViewer`,void 0),Mh=class extends Se{constructor(...e){super(...e),this.excludeIdentities=Ah,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??sa(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(Ea).join(`
`):j(`sessionHovercard.moreParticipantsLabel`,{count:String(r)});return F`<span
class="viewer-facepile viewer-facepile--session"
data-viewer-count=${Math.max(e.length,this.totalCount??0)}
aria-label=${e.map(Ea).join(`, `)}
>
${t.map(e=>F`<openclaw-tooltip .content=${Ea(e)}>
<span class="viewer-facepile__tooltip-anchor">
${Eh(e.identity?.type===`agent`?kh(e,e.identity,!this.staticParticipants):F`<openclaw-viewer-avatar
.user=${e}
.identity=${e.identity}
.markAsViewer=${!this.staticParticipants}
variant="session"
></openclaw-viewer-avatar>`,e.identity?.type===`profile`?Ch(e.identity.id,this.personActivity,Ea(e)):null)}
</span>
</openclaw-tooltip>`)}
${r>0?F`<openclaw-tooltip .content=${i}>
<span class="viewer-avatar viewer-avatar--overflow" aria-label=${i}
>+${r}</span
>
</openclaw-tooltip>`:I}
</span>`}},U([V({attribute:!1})],Mh.prototype,`presencePayload`,void 0),U([V({attribute:!1})],Mh.prototype,`selfUser`,void 0),U([V({attribute:!1})],Mh.prototype,`selfInstanceId`,void 0),U([V({attribute:!1})],Mh.prototype,`sessionKey`,void 0),U([V({attribute:!1})],Mh.prototype,`excludeIdentities`,void 0),U([V({attribute:!1})],Mh.prototype,`staticParticipants`,void 0),U([V({attribute:!1})],Mh.prototype,`staticUsers`,void 0),U([V({type:Number,attribute:`max-visible`})],Mh.prototype,`maxVisible`,void 0),U([V({type:Number,attribute:!1})],Mh.prototype,`totalCount`,void 0),U([V({attribute:!1})],Mh.prototype,`personActivity`,void 0),globalThis.customElements&&(customElements.get(`openclaw-viewer-avatar`)||customElements.define(`openclaw-viewer-avatar`,jh),customElements.get(`openclaw-viewer-facepile`)||customElements.define(`openclaw-viewer-facepile`,Mh))})))()}function Ph(e){return e?{type:`human`,id:e.id,identity:{type:`profile`,id:e.id},label:e.name,avatarUrl:e.avatarUrl}:null}function Fh(e,t,n=`created`,r,i,a){return e?.id?F`<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 Ih(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?T(e,1):``;return(r(n[0])+r(n[1])).toUpperCase()||r(t).toUpperCase()}function Lh(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 Rh(e){if(e.identity?.type===`agent`){let t=Va({id:e.id,identity:e.identity,name:e.label,profileAvatarUrl:e.avatarUrl});return F`<span
class="viewer-avatar viewer-avatar--session"
aria-label=${e.label||e.id}
>
${Yf({id:e.identity.id,avatar:t.kind===`profile`?t.url:null})}
</span>`}return F`<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 zh;function Bh(){return(Bh=e((()=>{L(),z(),v(),Me(),Qa(),O(),tp(),Nh(),zh=class extends p{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=Ih(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=j(r,{name:n}),a=this.viewingNow?`${i} · ${j(`sessionsView.viewingNow`)}`:i,o=Va({id:e.id,identity:e.identity,name:e.label,profileAvatarUrl:e.avatarUrl}),s=this.size===`row`&&this.participantCount>0,c=F`
<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: ${Lh(e.id)}"
role="img"
aria-label=${a}
title=${a}
>${e.identity?.type===`agent`||o.kind===`profile`?Rh({...e,id:e.id}):F`<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} · ${j(`sessionsView.withParticipant`,{name:u})}`:`${a} · ${j(`sessionsView.withMoreParticipants`,{count:String(this.participantCount)})}`;return F`<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?Rh({...l,id:l.identity.id}):F`<span class="session-owner-stack__overflow"
><span class="session-owner-stack__count">+${this.participantCount}</span></span
>`}
</span>
${c}
</span>`}},U([V({attribute:!1})],zh.prototype,`owner`,void 0),U([V({type:String})],zh.prototype,`size`,void 0),U([V({type:String})],zh.prototype,`attribution`,void 0),U([V({attribute:!1})],zh.prototype,`viewingNow`,void 0),U([V({attribute:!1})],zh.prototype,`participants`,void 0),U([V({type:Number})],zh.prototype,`participantCount`,void 0),customElements.get(`openclaw-session-owner-chip`)||customElements.define(`openclaw-session-owner-chip`,zh)})))()}var Vh;function Hh(){return(Hh=e((()=>{Qo(),As(),L(),Qr(),vs(),En(),v(),gt(),_t(),M(),Dc(),P(),Km(),Bh(),mp(),Vh=class{constructor(e){this.opened=!1,this.searchGeneration=0,this.load=()=>{this.searchGeneration+=1,this.opened=!0,this.profiles.run()},this.context=new _s(e,{context:Hr,subscribe:!0});let t=new cc(e,{getGateway:()=>this.context.value?.gateway,invalidateRequests:()=>{this.searchGeneration+=1}});this.profiles=new Ls(e,{args:()=>[t.epoch,this.opened,t.capture()?.client],task:([,e,t])=>e&&t?t.request(`users.list`,{}):Cs})}render(e,t=!1){let n=this.context.value,r=Ph(n?.gateway.snapshot.selfUser),i=e.currentOwner,a=i?.identity?.id??i?.id,o=this.profiles.status===Os.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:mo(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:We(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 F`
${Gm(o.map(t=>({text:[t.label,t.id,t.type,t===r?j(`sessionsView.assignToMe`):``].join(` `),render:()=>{let n=t.type===i?.type&&t.id===a;return F`<wa-dropdown-item
slot=${s}
class="session-menu__item"
value=${`assign-owner:${t.type}:${encodeURIComponent(t.id)}`}
role="menuitemradio"
aria-checked=${String(n)}
${Xr(e=>ip(e,n))}
?disabled=${e.disabled||n}
title=${e.disabledReason??I}
>
<span slot="icon" class="session-menu__avatar" aria-hidden="true"
>${Rh(t)}</span
>
<span class="session-menu__text"
>${t===r?j(`sessionsView.assignToMe`):t.label??t.id}</span
>
${n?F`<span slot="details" class="session-menu__check" aria-hidden="true"
>${N.check}</span
>`:I}
</wa-dropdown-item>`}})),this.searchGeneration,t?void 0:`submenu`)}
${this.profiles.render({pending:()=>F`<wa-dropdown-item slot=${s} disabled>${j(`common.loading`)}</wa-dropdown-item>`,error:e=>F`
<div slot=${s} class="session-menu__info" role="alert">
${A(e,j(`common.failed`))}
</div>
<wa-dropdown-item slot=${s} class="session-menu__item" value="reload-owners"
>${j(`common.retry`)}</wa-dropdown-item
>
`})}
`}}})))()}var Uh,Wh,Gh;function Kh(){return(Kh=e((()=>{Qo(),L(),Ei(),En(),v(),ao(),a(),P(),Ym(),mh(),yh(),sh(),xh(),Hh(),Uh=[`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`],Wh={label:``,sessionId:null,pinned:!1,unread:!1,archived:!1,snoozedUntil:null,category:null,icon:null,color:null,categoryClearReturnsToGroups:!1},Gh=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 bh({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=bi(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 _s(e,{context:Hr,subscribe:!0}),new st(e).watchStore(()=>this.context.value?.gateway),this.ownerMenu=new Vh(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=Uh.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=ba.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`?rh(i):void 0;return F`<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?qm(r.shortcut,a):I}
</wa-dropdown-item>`}renderSubmenu(e,t,n,r=!1,i){if(this.readState().compact)return gh({value:`compact:open-${e}`,label:t,icon:n,disabled:r,title:i});let a=e===`icon`?`i`:e===`copy`?`c`:void 0;return F`<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?qm(a):I} ${this.renderSubmenuBody(e)}
</wa-dropdown-item>`}renderPrimaryActions(){let{session:e,selectionCount:t}=this.readState(),n=t>1,r=String(t);return F`
${n||e.pinnable===!1||e.isChild?I:this.renderItem(`toggle-pin`,j(e.pinned?`sessionsView.unpinSession`:`sessionsView.pinSession`),e.pinned?N.pinOff:N.pin,{shortcut:`p`})}
${n?I:this.renderItem(`rename`,j(`sessionsView.renameSessionMenu`),N.edit,{shortcut:`r`})}
${this.renderItem(`toggle-unread`,j(n?e.unread?`sessionsView.markReadCount`:`sessionsView.markUnreadCount`:e.unread?`sessionsView.markRead`:`sessionsView.markUnread`,{count:r}),e.unread?N.eye:N.circle,{shortcut:`u`})}
${this.involvementAvailable&&!n&&e.hiddenFromInvolvingMe!==void 0?this.renderItem(`toggle-involving-me`,j(e.hiddenFromInvolvingMe?`sessionsView.showInInvolvingMe`:`sessionsView.hideFromInvolvingMe`),e.hiddenFromInvolvingMe?N.eye:N.eyeOff):I}
${this.snoozeMenu.renderAction()}
${this.renderItem(`toggle-archived`,j(e.archiving?`sessionsView.archiving`:n?e.archived?`sessionsView.restoreSessionCount`:`sessionsView.archiveSessionCount`:e.archived?`sessionsView.restoreSession`:`sessionsView.archiveSession`,{count:r}),e.archived?N.archiveRestore:N.archive,{shortcut:`a`})}
`}renderOrganizationActions(){let e=this.readState(),t=e.selectionCount>1;return F`
${t?I:this.renderSubmenu(`icon`,j(`sessionsView.setIconColorMenu`),N.palette,this.actionDisabled(`set-icon`)&&this.actionDisabled(`set-color`))}
${this.renderGroupAction()}
${t?I:this.renderSubmenu(`assign-owner`,j(`sessionsView.assignTo`),N.users,this.actionDisabled(`assign-owner`),e.actionDisabledReasons[`assign-owner`])}
`}renderTransferActions(){let e=this.readState();return e.selectionCount>1?I:F`
${this.renderItem(`fork`,j(`sessionsView.forkSession`),N.copy,{shortcut:`f`,title:e.forkFromLastCompleted?j(`sessionsView.forkFromLastCompleted`):void 0})}
${this.renderSubmenu(`copy`,j(`common.copy`),N.copy)}
${e.navigationAllowed||e.worktreePath||e.renderOpenInExtra?this.renderSubmenu(`open-in`,j(`sessionsView.openInEditorMenu`),N.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?j(`sessionsView.moveToGroupMenuCount`,{count:n}):j(`sessionsView.moveToGroupMenu`);return this.renderSubmenu(`group`,r,N.folder,this.actionDisabled(`move-to-group`),e.actionDisabledReasons[`move-to-group`])}renderDeleteAction(){let e=this.readState(),t=e.selectionCount>1?j(`sessionsView.deleteSessionCount`,{count:String(e.selectionCount)}):j(`sessionsView.deleteSessionMenu`);return this.renderItem(`delete`,t,N.trash,{shortcut:`d`})}renderCompactView(e){return e===`root`?I:_h(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 F`
${t.navigationAllowed?[[`copy-session-link`,`sessionsView.copySessionLink`],[`copy-session-preview-link`,`sessionsView.copySessionPreviewLink`]].map(([t,n])=>this.renderItem(t,j(n),N.link,{inline:e})):I}
${this.renderItem(`copy-markdown`,j(`sessionsView.copyMarkdown`),N.fileText,{inline:e})}
${this.renderItem(`copy-session-id`,j(`sessionsView.copySessionId`),N.copy,{inline:e})}
`}renderOpenSubmenu(e=!1){let t=this.readState();return F`
${t.navigationAllowed?[[`open-new-tab`,`sessionsView.openNewTab`,N.externalLink],[`open-new-window`,`sessionsView.openNewWindow`,N.monitor]].map(([t,n,r])=>this.renderItem(t,j(n),r,{inline:e})):I}
${t.splitAllowed?[[`split-right`,`chat.splitView.splitRight`,N.columns2],[`split-below`,`sessionsView.splitBelow`,N.panelBottomOpen]].map(([t,n,r])=>this.renderItem(t,j(n),r,{inline:e})):I}
${t.renderOpenInExtra?.(e)??I}
${t.worktreePath?F`
<div slot=${e?I:`submenu`} class="session-menu__info">
${j(`sessionsView.workspaceEditors`)}
</div>
${ih({inline:e,disabled:this.actionDisabled(`open-in`)})}
`:I}
`}renderGroupSubmenu(e=!1){let t=this.readState();return ah({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 dh({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,onGridKeydown:fh})}}})))()}var q;function qh(){return(qh=e((()=>{L(),z(),hi(),v(),O(),Hm(),P(),Ym(),Qm(),Kh(),yh(),q=class extends p{constructor(...e){super(...e),this.session=Wh,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 Gh(this,()=>this,e=>this.onAction(e),()=>this.onClose()),this.menuLifecycle=new Vm(this,{getTrigger:()=>this.trigger,onClose:()=>this.onClose(),onKeydown:e=>{this.managementActions.handleKeydown(e)||Jm(this,e)}}),this.handleSelect=e=>{e.preventDefault();let t=e.detail.item.value;if(!t)return;let n=hh(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(),Xm(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?F`
<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"
>${N.gitPullRequest}</span
>
<span class="session-menu__text">${j(`sessionsView.openPullRequest`)}</span>
${qm(`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?j(`chat.sidebar.sessionMenuMany`,{count:i}):j(`chat.sidebar.sessionMenu`,{session:n.label});return si(this.anchor,F`<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):F`
${!r&&this.lastActive?F`<div class="session-menu__info">
${j(`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=>F`
<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"
>${N.plug}</span
>
<span class="session-menu__text">${e.label}</span>
</wa-dropdown-item>
`)}
${r?I:F`
<div class="session-menu__separator" role="separator"></div>
${this.managementActions.renderTransferActions()} ${this.renderWorkItems()}
`}
<div class="session-menu__separator" role="separator"></div>
${!r&&this.cloudWorkerStopAllowed?F`
<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"
>${N.stop}</span
>
<span class="session-menu__text"
>${j(`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([R()],q.prototype,`compactView`,void 0),customElements.get(`openclaw-session-menu`)||customElements.define(`openclaw-session-menu`,q)})))()}function Jh(e,t){return!e.dispatchEvent(new CustomEvent(Yh,{detail:t,bubbles:!0,composed:!0,cancelable:!0}))}var Yh;function Xh(){return(Xh=e((()=>{Yh=`openclaw-mcp-app-open`})))()}var Zh;function Qh(){return(Qh=e((()=>{Wo(),L(),z(),En(),v(),Na(),M(),lo(),la(),de(),xo(),O(),P(),Xh(),so(),Zh=class extends p{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 ro(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)&&Di(e.src));return r?F`<img class="mcp-app-icon" src=${r.src} alt="" referrerpolicy="no-referrer" />`:N.puzzle}open(e,t,n=!1,r=!1){if(this.context){if(this.error=null,this.surface===`sidebar`||this.surface===`global`){let i=fo({kind:`server`,serverName:e.serverName,toolName:t.toolName,deepLink:`/`});this.context.navigate(`apps`,{search:`${i}${n?`&settings=1`:``}${r?`&quickAction=1`:``}`});return}Jh(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=j(`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:Ao()}),!this.isConnected||t.gateway.snapshot.client!==n)return;let i=Ee({context:t,sessionKey:r.sessionKey,agentId:r.agentId,face:`chat`});t.navigate(`chat`,i.options)}catch(e){t.gateway.snapshot.client===n&&(this.error=A(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`?F`${e.map(({server:e,entry:t})=>F`<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:F`<section class="mcp-app-catalog ${t?`mcp-app-catalog--compact`:``}">
${t?F`<button
class="btn btn--sm"
type="button"
aria-expanded=${String(this.expanded)}
@click=${()=>{this.expanded=!this.expanded}}
>
${N.puzzle}
${j(this.surface===`file`?`mcpApp.openWith`:`mcpApp.threadApps`)}
</button>`:F`<h2>${j(`mcpApp.catalogTitle`)}</h2>
<p class="muted">${j(`mcpApp.catalogDescription`)}</p>`}
${!t||this.expanded?F`<div class="mcp-app-catalog__entries">
${this.catalog.loading?F`<p role="status">${j(`mcpApp.loading`)}</p>`:I}
${this.catalog.error?F`<p role="alert">${this.catalog.error}</p>
<button class="btn" @click=${()=>void this.catalog.refresh()}>
${j(`mcpApp.retry`)}
</button>`:I}
${!this.catalog.loading&&!this.catalog.error&&!e.length?F`<p>${j(`mcpApp.empty`)}</p>`:I}
${e.map(({server:e,entry:t})=>F`<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?F`<button class="btn btn--sm" type="button" @click=${()=>this.open(e,t,!1,!0)}>${t.entrypoint.quickAction.title}</button>`:I}${e.settings?F`<button type="button" class="btn btn--sm" @click=${()=>this.open(e,t,!0)}>${j(`mcpApp.settings`)}</button>`:I}
</div>`)}
${this.surface===`file`?I:this.catalog.servers.filter(e=>e.settings&&!this.entries(e).length).map(e=>F`<button class="btn" type="button" @click=${()=>this.open(e,{toolName:e.settings.readTool,title:e.label,resourceUri:``,entrypoint:{type:`settings`}},!0)}>${e.label} · ${j(`mcpApp.settings`)}</button>`)}
${this.catalog.onboarding.map(e=>F`<button class="btn" type="button" ?disabled=${this.onboardingBusy} @click=${()=>void this.onboard(e.pluginId)}>${j(`mcpApp.onboarding`)} · ${e.title}</button>`)}
${t?I:F`<button class="btn btn--sm" @click=${()=>this.context?.navigate(`mcp`)}>${j(`mcpApp.configure`)}</button>`}
</div>`:I}
${this.error?F`<p role="alert">${this.error}</p>`:I}
</section>`}},U([zo({context:Hr,subscribe:!0})],Zh.prototype,`context`,void 0),U([V({attribute:!1})],Zh.prototype,`sessionKey`,void 0),U([V({attribute:!1})],Zh.prototype,`agentId`,void 0),U([V()],Zh.prototype,`surface`,void 0),U([V({attribute:!1})],Zh.prototype,`filePath`,void 0),U([R()],Zh.prototype,`expanded`,void 0),U([R()],Zh.prototype,`error`,void 0),U([R()],Zh.prototype,`onboardingBusy`,void 0),customElements.get(`openclaw-mcp-app-catalog`)||customElements.define(`openclaw-mcp-app-catalog`,Zh)})))()}var $h;function eg(){return(eg=e((()=>{L(),z(),v(),ka(),Ia(),O(),P(),tp(),$h=class extends Se{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 Xi(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?j(`agentChip.switchAgent`):j(`agentChip.menuLabel`);return F`
<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`:``}"
>
${Yf({id:this.agentId,avatar:n,textAvatar:this.avatarText,pending:t},``,e?this.avatarLoader.imageErrorHandler(e):void 0)}
${this.menuUnread&&!this.menuOpen?F`<span
class="session-unread-dot sidebar-agent-card__menu-unread"
role="img"
aria-label=${j(`sessionsView.unread`)}
></span>`:I}
</span>
<span class="sidebar-agent-card__text">
<span class="sidebar-agent-card__name">
${va(this.agentName,`sidebar-agent-card__name-text`,{loop:!0,delay:300,speed:35})}
<span class="sidebar-agent-card__chevron" aria-hidden="true"
>${N.chevronsUpDown}</span
>
</span>
${this.environment?F`<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})],$h.prototype,`agentId`,void 0),U([V({attribute:!1})],$h.prototype,`agentName`,void 0),U([V({attribute:!1})],$h.prototype,`avatarUrl`,void 0),U([V({attribute:!1})],$h.prototype,`avatarAuthReady`,void 0),U([V({attribute:!1})],$h.prototype,`avatarText`,void 0),U([V({attribute:!1})],$h.prototype,`environment`,void 0),U([V({attribute:!1})],$h.prototype,`menuOpen`,void 0),U([V({attribute:!1})],$h.prototype,`menuUnread`,void 0),U([V({attribute:!1})],$h.prototype,`switcherAvailable`,void 0),U([V({attribute:!1})],$h.prototype,`onToggleMenu`,void 0),U([V({attribute:!1})],$h.prototype,`onMenuPointerMove`,void 0),U([V({attribute:!1})],$h.prototype,`onMenuPointerLeave`,void 0),customElements.get(`openclaw-sidebar-agent-card`)||customElements.define(`openclaw-sidebar-agent-card`,$h)})))()}function tg(e){return e.state.phase===`hidden`?null:{type:`scopeUpgrade`,category:`system`,dismissal:Ir(e),requiresAction:!0,severity:e.state.phase===`error`||e.state.phase===`rejected`?`error`:`warning`,state:e.state}}function ng(e){return e.visible?{type:`update`,category:`system`,dismissal:e.canDismiss&&!e.forced?e.dismissal:null,requiresAction:e.requiresAction,severity:e.severity}:null}function rg(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 ig(e,t){return t===`all`||e.category===t}function ag(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 og(){return(og=e((()=>{Fn()})))()}function sg(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&&H(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 Ln&&(t.gatewayCode===`FORBIDDEN`||qt(t)===ns.AUTHENTICATED_PROFILE_UNAVAILABLE);n&&(r=null),o({phase:`error`,error:A(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||!H(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=Ko(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)||!H(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=>Ho(a,e),dispose(){i=!0,r=null,p(),f(),a.clear()}}}function cg(){return(cg=e((()=>{Ss(),Wn(),M(),Ji()})))()}function lg(e,t){return t!==!1&&e.enabled&&!Ua(e)&&e.state?.nextRunAtMs!=null?e.state.nextRunAtMs+dg:1/0}function ug(e){let t=[],n=(e,t)=>({...e,type:`attention`,category:t,dismissal:{kind:e.kind,signature:e.signature},requiresAction:!0}),r=_a(e.modelAuthStatus?.providers??[]).filter(pa).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?j(`attention.modelAuthExpiredWithScope`,{scope:o,time:c}):j(`attention.modelAuthExpiredState`,{time:c}),u=j(`attention.modelAuthExpired`,{providers:i.displayName});t.push(n({kind:`modelAuthExpired`,severity:`error`,icon:`plug`,label:i.displayName,detail:l,meta:{...o?{context:o}:{},status:j(`attention.authExpired`),time:c},inlineAction:{label:j(`attention.reconnect`),routeId:`model-providers`},signature:r,action:{kind:`askCustodian`,alert:{id:`modelAuthExpired:${r}`,title:u,facts:[a],question:ot(j(`attention.alerts.modelAuthExpiredQuestion`,{facts:a}),fg),action:{label:j(`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?ha(t):e.now>lg(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:j(i?`attention.automationFailed`:`attention.automationOverdue`,{time:o}),meta:{...l?{context:l}:{},status:j(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 dg,fg;function pg(){return(pg=e((()=>{v(),za(),Ne(),ua(),Aa(),dg=3e5,fg=1e3})))()}function mg(e,t,n=Date.now()){return!!(e&&(e.status===`running`||!t&&e.finishedAtMs!==null&&n-e.finishedAtMs<864e5))}function hg(e){let t=e.overlays.snapshot,n=t.updateSchedule?.campaign,r=t.updateRun,i=mg(r,t.updateRunAcknowledged),a=r?null:t.updateStatusBanner,o=t.updateRunning||t.updateReconciliationPending||n?.state===`applying`,s=H(e.gateway.snapshot,`update.run`,`operator.admin`),c=H(e.gateway.snapshot,`update.status`,`operator.admin`),l=n&&!t.updateCampaignStatusHydrated&&c,u=cr(t.updateAvailable,t.updateSchedule,o),d=!!(i||t.updateReconciliationPending||a||(l?t.updateRunning:u));return{actionable:u,busy:o,canUpdate:s,dismissal:i&&r?.status!==`running`?{kind:`updateAvailable`,signature:JSON.stringify([`run`,r?.runId])}:Mr({gatewayBootId:e.gateway.snapshot.hello?.server?.bootId,updateAvailable:t.updateAvailable,updateSchedule:t.updateSchedule}),forced:o||gn(a?.tone),present:d}}function gg(){return(gg=e((()=>{Cr(),Ji(),Fn()})))()}var _g;function vg(){return(vg=e((()=>{cg(),gt(),no(),wa(),Fa(),dt(),ua(),D(),Fn(),og(),pg(),gg(),hs(),_g=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=sg(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():Xe(e)&&this.load(!0,!1)}),e.agentSelection.subscribe(()=>this.synchronizeGateway()),e.agents.subscribe(t),e.overlays.subscribe(t),this.mentions.subscribe(t),ta(t)],W(()=>import(`./control-ui-boot-shared-D3oo_6Fq.js`).then(e=>(e.of(),e.af)).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||!Hn(this.dismissed,e.dismissal)&&!(e.dismissal.kind===`outbox`&&this.reviewedOutbox.has(e.dismissal.signature)))}owner(){return{connectionRevision:this.sources.gateway.connectionRevision,dismissalKey:Tr(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||this.sources.gateway.snapshot.phase!==`connected`||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(lg(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),nt(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=hg(this.sources),i=ng({canDismiss:r.canUpdate,dismissal:r.dismissal,forced:r.forced,requiresAction:r.forced||r.canUpdate&&r.actionable,severity:n.updateStatusBanner?.tone===`danger`?`error`:`warning`,visible:r.present}),a=tg({scopes:e.hello?.auth?.scopes,state:this.sources.scopeUpgrade.state}),o=ug({cronJobs:this.cronJobs,cronSchedulerEnabled:this.cronSchedulerEnabled,cronOwnerByJobId:this.cronOwnerByJobId(),modelAuthStatus:this.modelAuthStatus,modelAuthAgentId:this.modelAuthAgentId,now:Date.now()});return rg({approvals:n.approvalQueue,attention:o,outbox:t,mentions:this.mentions.snapshot.items,scopeUpgrade:a,update:i})}reconcileDismissals(e){this.dismissalKey&&(this.dismissed=nr({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(n.phase!==`connected`||!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&&this.sources.gateway.snapshot.phase===`connected`&&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=uo({client:r,connected:!0});for(n.canRefresh=t,n.cronAgentId=a.scopeId,await Promise.all([Ga(n),Sa(n)]);t()&&n.cronJobsHasMore&&!n.cronJobsError&&!e.requested;)await Ga(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 ra(r,{agentId:t}).catch(()=>null);s()&&(this.modelAuthStatus=n,this.modelAuthAgentId=t,this.modelAuthRefreshAt=n?aa(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=Tr(this.sources.gateway);if(t!==this.dismissalKey&&(this.dismissalKey=t,this.dismissed=Gt(t)),e.phase!==`connected`||!e.client){this.loadGeneration+=1,this.loadedOwner=null,this.loadedClient=null,this.clearHealth(),this.onChange();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=Gt(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=zn(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({}),bg;function xg(){return(xg=e((()=>{Wo(),L(),z(),En(),v(),za(),Ji(),O(),a(),P(),Kn(),og(),vg(),Yt(),hs(),Aa(),bg=class extends p{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=St(()=>W(()=>Promise.resolve().then(()=>(BA(),RA)),void 0,import.meta.url)),this.panelGeneration=0,this.subscriptions=new st(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(_g)??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([6]),import.meta.url);t.present(e.action.alert);let n=this.context?.gateway.snapshot;H(n,`openclaw.chat`,`operator.admin`)?window.dispatchEvent(new CustomEvent(Vn,{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=ag(e).all,n=j(t===1?`attention.issueCount`:`attention.issueCountPlural`,{count:String(t)});return F`
<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">${N.inbox}</span>
${t>0?F`<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:e=>this.closePanel(e),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([zo({context:Hr,subscribe:!0})],bg.prototype,`context`,void 0),U([R()],bg.prototype,`panelOpen`,void 0),U([R()],bg.prototype,`panelPosition`,void 0),U([R()],bg.prototype,`selectedTab`,void 0),U([R()],bg.prototype,`overflowAbove`,void 0),U([R()],bg.prototype,`overflowBelow`,void 0),U([V({attribute:!1})],bg.prototype,`activeRouteId`,void 0),U([V({attribute:!1})],bg.prototype,`onNavigate`,void 0),U([V({attribute:!1})],bg.prototype,`watchUpdateProgress`,void 0),customElements.get(`openclaw-sidebar-attention`)||customElements.define(`openclaw-sidebar-attention`,bg)})))()}var Sg;function Cg(){return(Cg=e((()=>{L(),z(),v(),O(),P(),Yt(),Sg=class extends Se{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=j(e),n=j(`common.colorModeOption`,{mode:t});return F`
<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`?N.monitor:this.mode===`light`?N.sun:N.moon}
</button>
</openclaw-tooltip>
`}},U([V({attribute:!1})],Sg.prototype,`mode`,void 0),U([V({attribute:!1})],Sg.prototype,`menuItem`,void 0),customElements.get(`openclaw-theme-mode-toggle`)||customElements.define(`openclaw-theme-mode-toggle`,Sg)})))()}function wg(e){let t=`online`,n=e.sidebarAgentsMode===`roster`,r=n?!e.teamOnlineExpanded:e.collapsedSessionSections.has(t),i=j(`presence.rosterTitle`),a=ca(e.sessionData.presencePayload),o=Tg.get(e);if(o?.length===a.length&&a.every((e,t)=>e===o[t])?a=o:Tg.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[Ca(t,l)]-u[Ca(n,l)]||d(n)-d(t):e.people.sortMode===`name`?0:(c(n)?.[e.people.sortMode]??-1)-(c(t)?.[e.people.sortMode]??-1))||Ea(t).localeCompare(Ea(n),void 0,{sensitivity:`base`})),m=Sh({basePath:e.basePath,navigate:(t,n)=>e.onNavigate?.(t,n)},()=>e.dismissTransientMenus());return F`
<section class="sidebar-online" aria-label=${i} data-session-section=${t}>
${Mp({sectionId:t,draggable:!1,onStartDrag:()=>void 0,onFinishDrag:()=>void 0,content:F`
<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?N.chevronRight:N.chevronDown}</span
>
</span>
${va(i,`sidebar-recent-sessions__label-text`)}
${r?F`<span class="sidebar-online__facepile">
<openclaw-viewer-facepile
.staticUsers=${a}
.maxVisible=${2}
></openclaw-viewer-facepile>
</span>`:I}
</button>
<button
type="button"
class="sidebar-session-toolbar__button sidebar-online__filter-toggle sidebar-session-sort ${f?`sidebar-session-sort--filtered`:``}"
aria-label=${j(`presence.filters.label`)}
title=${j(`presence.filters.label`)}
aria-haspopup="dialog"
aria-expanded=${String(e.sidebarMenus.peopleFilterMenuPosition!==null)}
@click=${t=>{t.currentTarget instanceof HTMLElement&&e.sidebarMenus.togglePeopleFilterMenu(t.currentTarget)}}
>
${N.listFilter}
</button>
`})}
${r?I:F`<div class="sidebar-online__list">
${p.length===0?F`<span class="sidebar-session-empty-hint">${j(s===null?`presence.sessions.unavailable`:`presence.filters.noMatches`)}</span>`:I}
${ii(p,kl,e=>{let t=Ca(e),n=c(e),r=n?j(`presence.sessions.counts`,{open:String(n.open),running:String(n.running)}):j(`presence.sessions.unavailable`),i=Ch(e.identity?.id,m,Ea(e)),a=i?_i`a`:_i`button`;return ti`<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=${`${Qi(t)} · ${r}`}
title=${n?I:j(`presence.sessions.unavailable`)}
data-person-card-key=${kl(e)}
data-person-card-trigger
aria-haspopup="dialog"
aria-expanded="false"
aria-label=${j(i?`presence.card.ariaLabel`:`presence.card.details`,{name:Ea(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">${Ea(e)}</span>
${n&&(n.open>0||n.running>0)?F`<span class="sidebar-online__counts" aria-hidden="true">
${n.running>0?F`<span
class="sidebar-online__running"
data-session-count="running"
title=${j(`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?F`<span
class="sidebar-online__open"
data-session-count="open"
title=${j(`presence.sessions.openCount`,{count:String(n.open)})}
><span class="sidebar-online__open-icon"
>${N.messageCircle}</span
><span class="sidebar-online__count"
>${n.open}</span
></span
>`:I}
</span>`:I}
</${a}>
</div>`})}
</div>
${e.sessionData.ownerCounts.error?F`<button
type="button"
class="sidebar-online__retry"
@click=${()=>e.sessionData.ownerCounts.refresh()}
>
${j(`presence.sessions.retry`)}
</button>`:I}`}
</section>
`}var Tg;function Eg(){return(Eg=e((()=>{L(),ui(),gi(),vl(),v(),ka(),po(),Np(),P(),Dh(),Tg=new WeakMap})))()}function Dg(e,t,n,r={}){return F`<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">${N[n]}</span>
<span class="sidebar-customize-menu__text">${t}</span>
${r.details??I}
</wa-dropdown-item>`}function Og(e,t,n=`top`){return F`<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 kg(e,t){return e===void 0?!1:t===`config`?en(e):t===`plugins`?Tn(e):t===`sessions`?tn(e):e===t}function Ag(e){let t=e??[];return[`chat`,`control`,`agent`,`settings`].flatMap(e=>t.filter(t=>(t.group??`control`)===e))}function jg(e){return F`
<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"
>${N[gr(e.routeId)]}</span
>
<span class="nav-item__text">${yn(e.routeId)}</span>
</a>
`}function Mg(e){let t=mn(e.tab,e.basePath),n=Object.hasOwn(N,e.tab.icon)?e.tab.icon:`plug`;return F`
<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">${N[n]}</span>
<span class="nav-item__text">${e.tab.label}</span>
</a>
`}function Ng(e,t){let n=kg(e.activeRouteId,t);return F`
<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=${wn(t,e.basePath)} tabindex="-1">
<span class="nav-item__icon" aria-hidden="true"
>${N[gr(t)]}</span
>
<span class="sidebar-customize-menu__text">${yn(t)}</span>
</a>
</wa-dropdown-item>
`}function Pg(e){let t=e.position,n=cn(e.sidebarEntries).filter(t=>e.isRouteEnabled(t));return F`
<wa-dropdown
class="sidebar-customize-menu sidebar-more-menu"
.open=${!0}
placement="bottom-start"
.distance=${0}
aria-label=${j(`nav.more`)}
@wa-select=${t=>{t.preventDefault();let r=t.detail.item;if(r.dataset.nativeNavigation){delete r.dataset.nativeNavigation;return}let i=r.value;if(i===`customize`){e.onEditPinnedItems();return}let a=n.find(e=>e===i);a&&e.onNavigateRoute(a)}}
@keydown=${t=>np(t,e.onTabAway)}
@wa-after-hide=${t=>e.onClose(rp(t))}
>
${Og(t,j(`nav.more`))}
${n.map(t=>Ng(e,t))}
<div class="sidebar-customize-menu__separator" role="separator"></div>
${Dg(`customize`,j(`nav.customize`),`penLine`)}
</wa-dropdown>
`}function Fg(e){let t=e.position,n=[...Ur.filter(t=>e.isRouteEnabled(t)).map(e=>({value:e,entry:fn({type:`route`,route:e}),icon:gr(e),label:yn(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(N,e.value.icon)?e.value.icon:`plug`,label:e.value.label}))];return F`
<wa-dropdown
class="sidebar-customize-menu sidebar-pin-editor-menu"
.open=${!0}
placement="bottom-start"
.distance=${0}
aria-label=${j(`nav.customize`)}
@wa-select=${t=>{t.preventDefault();let n=t.detail.item.value;if(n===`reset`)e.onReset();else if(n?.startsWith(`plugin:`)){let t=n.slice(7);e.pluginNavigation.some(e=>e.key===t)&&e.onTogglePlugin(t)}else{let t=Ur.find(e=>e===n);t&&e.onToggleRoute(t)}}}
@keydown=${t=>np(t,e.onTabAway)}
@wa-after-hide=${t=>e.onClose(rp(t))}
>
${Og(t,j(`nav.customize`))}
<div class="sidebar-customize-menu__title">${j(`nav.customize`)}</div>
${e.preferencesBrowserOnly?F`<div class="sidebar-customize-menu__provenance" role="note">
${j(`quickSettings.personal.browserOnly`)}
</div>`:I}
${n.map(t=>F`
<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">${N[t.icon]}</span>
<span class="sidebar-customize-menu__text">${t.label}</span>
</wa-dropdown-item>
`)}
<div class="sidebar-customize-menu__separator" role="separator"></div>
${Dg(`reset`,j(`nav.customizeReset`),`refresh`)}
</wa-dropdown>
`}function Ig(){return(Ig=e((()=>{L(),Vr(),Sr(),v(),P(),mp()})))()}function Lg(e){let t=e.sessionOwnerFilterActive?e.sessionOwnerFilterId:null,n=t?e.sessionOwnerOptions.find(e=>e.id===t):e.sessionInvolvingMeFilterActive?Ph(Xt({snapshotUser:e.sessionDataContext?.gateway.snapshot.selfUser,presenceEntries:_r(e.sessionData.presencePayload),presenceInstanceId:e.sessionData.presenceInstanceId})):void 0,r=[...t?[n?.label??t]:[],...e.sessionInvolvingMeFilterActive?[j(`sessionsView.involvingMe`)]:[],...e.sessionsStatusFilter===`snoozed`?[j(`sessionsView.snoozed`)]:e.sessionsStatusFilter===`archived`?[j(`sessionsView.archived`)]:e.sessionsStatusFilter===`all`?[j(`sessionsView.all`)]:[]],i=r.join(` · `),a=j(`chat.sidebar.showAllSessions`);return F`<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?Rh(n):N.archive}</span
>
<span class="sidebar-session-filter-summary__clear">${N.x}</span>
</span>
<span class="sidebar-session-filter-summary__label"
>${r.map((e,t)=>F`${t>0?F`<span class="sidebar-session-filter-summary__sep" aria-hidden="true">·</span>`:I}${e}`)}</span
>
</button>`}function Rg(e){return Number(e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive)+Number(e.sessionsStatusFilter!==`active`)}function zg(e,t){let n=Rg(e);return F`<button
type="button"
class="${t} sidebar-session-sort ${n>0?`sidebar-session-sort--filtered`:``}"
title=${j(`chat.sidebar.sortSessions`)}
aria-label=${j(`chat.sidebar.sortSessions`)}
aria-description=${n>0?j(`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.toggleSessionSortMenu(t.currentTarget)}}
>
${N.listFilter}
</button>`}function Bg(e){let t=e.readNewSessionAccess(),n=e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive||e.sessionsStatusFilter!==`active`;return F`
<div class="sidebar-session-toolbar">
<span class="sidebar-recent-sessions__label-text">${j(`chat.sidebar.threads`)}</span>
${n?Lg(e):I}
${zg(e,`sidebar-session-toolbar__button`)}
${Gn({basePath:e.basePath,agentId:e.expandedAgentId(),className:`sidebar-session-toolbar__button sidebar-new-session`,label:j(`agentChip.newConversation`),showShortcut:!0,disabledReason:t.allowed?void 0:t.reason,onOpen:(t,n)=>e.requestOpenNewSession(t,n)})}
</div>
`}function Vg(e){return e.sessionData.sessionMutationError?F`
<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=${j(`chat.actions.dismissError`)}>
<button
class="callout__dismiss"
type="button"
@click=${()=>e.sessionData.dismissSessionMutationError()}
aria-label=${j(`chat.actions.dismissError`)}
>
${N.x}
</button>
</openclaw-tooltip>
</div>
`:I}function Hg(e,t,n){return t&&n&&e.sessionsStatusFilter===`active`&&(e.sessionOwnerFilterActive||e.sessionInvolvingMeFilterActive)?F`<span class="sidebar-session-empty-hint"
>${j(`chat.sidebar.noActiveSessionsForFilter`)}</span
>`:I}function Ug(){return(Ug=e((()=>{L(),v(),P(),lr(),Bh()})))()}function Wg(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)=>S_[t.kind]-S_[e.kind])[0]??x_}function Gg(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 Kg(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 qg(e){return`sidebar-session-meta-${encodeURIComponent(e)}`}function Jg(e){return`sidebar-session-state-${encodeURIComponent(e)}`}function Yg(){return hc(E()?.getItem(w_))}function Xg(){return nl(E()?.getItem(T_))}function Zg(){return E()?.getItem(D_)===`true`}function Qg(){return E()?.getItem(E_)===`true`}function $g(){return E()?.getItem(O_)===`true`}function e_(){let e=E()?.getItem(k_);return e===`snoozed`||e===`archived`||e===`all`?e:`active`}function t_(e,t){return`${N_}${Xo(e)}:${encodeURIComponent(t)}`}function n_(e,t){try{let n=E()?.getItem(t_(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 r_(){let e=E()?.getItem(A_);return e===`updated`||e===`people`?e:`created`}function i_(e,t=[]){try{let n=E()?.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 a_(){return i_(j_,[`work`])}function o_(){return i_(M_)}function s_(e,t){try{E()?.setItem(e,t)}catch{}}function c_(e){s_(w_,e)}function l_(e){E()?.setItem(T_,e)}function u_(e){s_(D_,String(e))}function d_(e){s_(E_,String(e))}function f_(e){s_(O_,String(e))}function p_(e){s_(k_,e)}function m_(e,t,n){try{let r=E(),i=t_(e,t),a=n.involvingMe?`involving-me`:n.ownerId?`owner:${n.ownerId}`:null;a===null?r?.removeItem(i):r?.setItem(i,a)}catch{}}function h_(e,t){return e===`people`&&!t?`created`:e}function g_(e,t){let n=h_(e,t!==!1);return s_(A_,n),n}function __(e){s_(j_,JSON.stringify([...e]))}function v_(e){E()?.setItem(M_,JSON.stringify([...e])),typeof window<`u`&&window.dispatchEvent(new CustomEvent(P_))}function y_(e,t){let n=new Set(o_());t?n.add(e):n.delete(e),v_(n)}function b_(e,t){return`${e}\u0000${t}`}var x_,S_,C_,w_,T_,E_,D_,O_,k_,A_,j_,M_,N_,P_,F_,I_;function J(){return(J=e((()=>{Hc(),vc(),x_={kind:`none`},S_={question:3,approval:3,agent:2,error:1,none:0},C_=function(e){return e[e.Any=0]=`Any`,e[e.ActiveRun=1]=`ActiveRun`,e[e.Attention=2]=`Attention`,e}({}),w_=`openclaw:sidebar:sessions:grouping`,T_=`openclaw:sidebar:sessions:catalog-grouping`,E_=`openclaw:sidebar:sessions:show-preview`,D_=`openclaw:sidebar:sessions:show-cron`,O_=`openclaw:sidebar:sessions:show-system`,k_=`openclaw:sidebar:sessions:status-filter`,A_=`openclaw:sidebar:sessions:sort-mode`,j_=`openclaw:sidebar:sessions:collapsed-sections`,M_=`openclaw:sidebar:sessions:hidden-catalogs`,N_=`openclaw.control.sidebarSessionOwnerFilter.v1:`,P_=`openclaw:sidebar-hidden-catalogs-changed`,F_=[{mode:`created`,labelKey:`chat.sidebar.sortCreated`},{mode:`updated`,labelKey:`chat.sidebar.sortUpdated`},{mode:`people`,labelKey:`sessionsView.owners`}],I_=[`active`,`snoozed`,`archived`,`all`]})))()}function L_(e){return e.replace(z_,e=>e.replace(R_,``))}var R_,z_;function B_(){return(B_=e((()=>{R_=/(?:⚠️?|⛔|❌|🛠️?|✉️?)/gu,z_=/^[ \t]*(?:⚠️?|⛔|❌|🛠️?|✉️?)(?:[ \t]*(?:⚠️?|⛔|❌|🛠️?|✉️?))*/u})))()}var V_;function H_(){return(H_=e((()=>{P(),V_={hand:N.hand,key:N.key,alert:N.alertTriangle,flag:N.flag,lock:N.lock,hourglass:N.circle}})))()}function U_(e){e.stopPropagation()}function W_(e){e.preventDefault(),e.stopPropagation()}function G_(e,t=!1){if(e.kind===`none`)return I;let n=t?J_(e):void 0,r=e.kind===`question`?N.hand:e.kind===`approval`?N.shieldQuestion:e.kind===`agent`?V_[e.icon]:N.alertTriangle,i=F`<span
class="sidebar-session-attention__icon sidebar-session-attention__icon--${e.kind}"
data-session-attention=${e.kind}
role=${n?`img`:I}
aria-label=${n??I}
aria-hidden=${n?I:`true`}
tabindex=${n?`0`:I}
@focusin=${n?U_:I}
@click=${n?W_:I}
>${r}</span
>`;return t&&n?Y_(e,i):i}function K_(e){switch(e.kind){case`question`:return j(`sessionsView.waitingForAnswer`);case`approval`:return j(`sessionsView.waitingForApproval`);case`error`:return j(e.childLabel===void 0?`sessionsView.runFailedReason`:`sessionsView.childRunFailedReason`,{label:e.childLabel??``,reason:L_(e.reason)});case`agent`:return e.note;case`none`:return;default:return e}}function q_(e){let t=K_(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?j(e.kind===`question`?`sessionsView.questionsNeedAnswer`:`sessionsView.approvalsNeedApproval`,{count:String(r)}):t,preview:n[0]?.preview,more:r>1?j(`sessionsView.attentionMore`,{count:String(r-1)}):void 0}}function J_(e){let{status:t,preview:n,more:r}=q_(e);return[t,n,r].filter(Boolean).join(`
`)||void 0}function Y_(e,t){let{status:n,preview:r,more:i}=q_(e);return F`<openclaw-tooltip .content=${r?``:n} open-on-click>
${t}
${r?F`<span slot="content" class="sidebar-session-attention-tooltip">
<strong>${n}</strong>
<span class="sidebar-session-attention-tooltip__preview">${r}</span>
${i?F`<span>${i}</span>`:I}
</span>`:I}
</openclaw-tooltip>`}function X_(e){if(!e.isChild)return e.unread?F`<span
class="session-unread-dot"
role="img"
aria-label=${j(`sessionsView.unread`)}
></span>`:I;let t=e.status;if(!t)return I;let n=t===`done`?{icon:N.check,label:j(`sessionsView.statusDone`)}:t===`killed`?{icon:N.stop,label:j(`sessionsView.statusKilled`)}:t===`timeout`?{icon:N.alertTriangle,label:j(`sessionsView.statusTimeout`)}:t===`interrupted`?{icon:N.pause,label:j(`sessionsView.statusInterrupted`)}:t===`failed`?{icon:N.alertTriangle,label:j(`sessionsView.statusFailed`)}:null;return n?F`<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 Z_(e,t,n,r=0,i){let a=Wg(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&&a.kind!==`none`?G_(a,!0):l?F`<span
class="sidebar-child-session__status--failed"
role="img"
aria-label=${j(`sessionsView.statusFailed`)}
>${N.alertTriangle}</span
>`:r?F`<span
role="img"
aria-label=${j(`sessionsView.cloudWorkerDescendantConflicts`,{count:String(r)})}
>${N.globe}</span
>`:o?Qp({content:I,running:!0,queued:o===s,runVisibility:i}):e.length===1&&e[0]?.isChild?X_(e[0]):I;return(!t||n===0)&&c===0&&u===I?I:F`<span class="sidebar-session-team-state">
${t&&n>0||c>0?F`<span class="sidebar-session-team-state__counts">
${t&&n>0?F`<span class="sidebar-child-session-toggle__count" role="img" aria-label=${`${j(`sessionsView.childSessions`)}: ${n}`}>${n}</span>`:I}
${c>0?F`<span class=${c===1?`session-unread-dot`:`sidebar-agent-roster__unread`} role="img" aria-label=${j(`sessionsView.unread`)} title=${j(`sessionsView.unread`)}>${c>1?c:I}</span>`:I}
</span>`:I}
${u===I?I:F`<span class="sidebar-session-team-state__status">${u}</span>`}
</span>`}function Q_(){return(Q_=e((()=>{L(),v(),J(),B_(),P(),H_(),tm()})))()}async function $_(e,t,n){let r=e.currentTarget;if(!(r instanceof HTMLButtonElement))return;let i=await Be(t);r.dataset.copied=i?`1`:`0`,r.setAttribute(`aria-label`,j(i?`aboutPage.copiedCommit`:`common.copyFailed`)),window.setTimeout(()=>{r.isConnected&&(delete r.dataset.copied,r.setAttribute(`aria-label`,n))},sv)}function ev(e){return!e||e===`main`?``:`${e.length>ov?`${fs(e,ov)}…`:e}@`}function tv(e){return e.commit?`${ev(e.branch)}${`${e.commit.slice(0,7)}${e.dirty===!0?`*`:``}`}`:null}function nv(e){if(e.release)return null;let t=tv(e);return t?e.branch&&e.branch!==`main`?t:`git@${t}`:null}function rv(e){let t=nv(e);if(!t)return null;let n=e.commitAt?Date.parse(e.commitAt):NaN;return Number.isFinite(n)?`${t} · ${It(n)}`:t}function iv(e,t){let n=e.version??t,r=nv(e);return r?[n,r].filter(e=>!!e).join(` · `):n}function av(e,t){let n=e.commit?.slice(0,12)??null,r=e.builtAt?Date.parse(e.builtAt):NaN,i=Number.isFinite(r)?`${ie(r,{day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:`UTC`})} UTC`:null,a=j(`aboutPage.unavailable`),o=j(`aboutPage.copyCommit`);return F`
<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>${j(`aboutPage.commit`)}</dt>
<dd class="sidebar-hover-card__metadata-value--mono sidebar-build-hover-card__commit">
<span>${n??a}</span>
${n?F`<button
type="button"
class="sidebar-build-hover-card__copy"
aria-label=${o}
@click=${e=>void $_(e,n,o)}
>
<span class="sidebar-build-hover-card__copy-idle" aria-hidden="true"
>${N.copy}</span
>
<span class="sidebar-build-hover-card__copy-done" aria-hidden="true"
>${N.check}</span
>
</button>`:null}
</dd>
</div>
<div class="sidebar-hover-card__metadata-row">
<dt>${j(`aboutPage.built`)}</dt>
<dd>${i??a}</dd>
</div>
<div class="sidebar-hover-card__metadata-row">
<dt>${j(`aboutPage.gateway`)}</dt>
<dd>
${t?F`<span
class="sidebar-build-hover-card__gateway-state"
aria-hidden="true"
></span
><span class="sr-only">${j(`common.connected`)}</span>`:null}
${t??a}
</dd>
</div>
</dl>
</div>
`}var ov,sv;function cv(){return(cv=e((()=>{L(),v(),Le(),Ne(),P(),ov=14,sv=1500})))()}function lv(){let e=window.__OPENCLAW_NATIVE_GATEWAYS__;return!e||!Array.isArray(e.gateways)?null:e.gateways.find(t=>t.id===e.currentId)??null}function uv(e){let{activeId:t,agent:n,agents:r,identity:i}=e.activeChipAgent();if(!n)return dv(e);let a=r.some(n=>{let r=G(n.id);return r!==t&&e.agentUnreadCount(r)>0}),o=nt(n,i),s=e.sessionDataContext?.gateway,c=!!(s&&(s.snapshot.hello||s.connection.token.trim()||s.connection.password.trim()));return F`
<openclaw-sidebar-agent-card
.agentName=${o}
.agentId=${t}
.avatarUrl=${rt(n,i)}
.avatarAuthReady=${c}
.avatarText=${Ke(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 dv(e){let t=lv()?.name.trim()||`OpenClaw`,n=e.sidebarMenus.agentMenuPosition!==null;return F`
<div class="sidebar-workspace-header">
<button
type="button"
class="sidebar-workspace-header__main"
aria-haspopup="menu"
aria-expanded=${String(n)}
aria-label="${t} · ${j(`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(),!n&&t.currentTarget instanceof HTMLElement&&e.sidebarMenus.toggleAgentMenu(t.currentTarget)}}
>
${e.sessionDataContext?.theme.branding.mascot===`none`?F`<span
class="sidebar-workspace-header__mark sidebar-workspace-header__mark--neutral"
aria-hidden="true"
>${N.mark}</span
>`:F`<img
class="sidebar-workspace-header__mark"
src=${Zt(`favicon.svg`,e.basePath)}
alt=""
aria-hidden="true"
/>`}
<span class="sidebar-agent-card__text">
<span class="sidebar-agent-card__name">
${va(t,`sidebar-agent-card__name-text`,{loop:!0,delay:300,speed:35})}
<span class="sidebar-agent-card__chevron" aria-hidden="true"
>${N.chevronsUpDown}</span
>
</span>
${e.sessionDataContext?.config.current.environment?F`<span class="control-ui-environment-pill"
>${e.sessionDataContext.config.current.environment.label}</span
>`:I}
</span>
</button>
</div>
`}function fv(e,t=I){let n=e.readNewSessionAccess(),r=j(`nav.collapse`);return F`
<div class="sidebar-brand">
${e.sidebarAgentsMode===`roster`?dv(e):uv(e)}
<div class="sidebar-brand__actions">
<openclaw-tooltip
.content=${`${r} (${Ot(Ue.toggleSidebar)})`}
.contentTemplate=${Kt(r,Ue.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?.()}
>
${N.panelLeftClose}
</button>
</openclaw-tooltip>
<openclaw-tooltip
.content=${`${j(`chat.openCommandPalette`)} (${Ot(Ue.commandPalette)})`}
.contentTemplate=${Kt(j(`chat.openCommandPalette`),Ue.commandPalette)}
>
<button
type="button"
class="sidebar-brand__icon sidebar-brand__header-control sidebar-brand__desktop-control sidebar-brand__search"
aria-label=${j(`chat.openCommandPalette`)}
?disabled=${!e.onOpenPalette}
@click=${()=>e.onOpenPalette?.()}
>
${N.search}
</button>
</openclaw-tooltip>
${e.sidebarAgentsMode===`roster`?zg(e,`sidebar-brand__icon sidebar-brand__header-control`):I}
${e.sidebarAgentsMode===`roster`?t:Gn({basePath:e.basePath,agentId:e.expandedAgentId(),className:`sidebar-brand__icon sidebar-brand__header-control sidebar-brand__new-thread`,label:j(`agentChip.newConversation`),showShortcut:!0,disabledReason:n.allowed?void 0:n.reason,onOpen:(t,n)=>e.requestOpenNewSession(t,n)})}
</div>
</div>
`}function pv(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=J_(a),s=e.storedOutboxes?.attentionCountForSession(n)??0,c=ar(e.activeRouteId)&&k(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?j(d&&(!u||r?.status===`queued`)?`sessionsView.subagentsWorking`:p?`sessionsView.statusQueued`:`sessionsView.activeRun`):``,g=m?j(`sessionsView.unread`):``,_=o||h&&g?[o,h,g].filter(Boolean).join(` · `):``,v=Qp({content:a.kind===`none`?F`<span class="nav-item__icon" aria-hidden="true">${N.home}</span>`:G_(a,!0),running:f,queued:p,runningLabel:h,badge:m&&!f?$p():I});return F`
<a
href=${Ee({face:Ae(r),sessionKey:n,fallbackAgentId:t,basePath:e.basePath,row:r??void 0,mainKey:it(n)?.rest,preferenceDerivedFace:!0}).href}
class="nav-item nav-item--home ${c?`nav-item--active`:``}"
aria-label=${_?`${j(`nav.home`)} · ${_}`:I}
aria-current=${c?`page`:I}
@click=${n=>{x(n)&&(n.preventDefault(),e.openMainSession(t))}}
>
${v}
<span class="nav-item__text">${j(`nav.home`)}</span>
${s>0||l?F`<span class="nav-item__state sidebar-home-session-states">
${om({outboxAttentionCount:s,hasComposerDraft:l})}
</span>`:I}
</a>
`}function mv(e){return F`
<div class="sidebar-nav__head">
<span class="sidebar-recent-sessions__label-text sr-only">${j(`nav.pages`)}</span>
<button
type="button"
class="sidebar-nav__head-action"
aria-haspopup="menu"
aria-expanded=${String(e.sidebarMenus.moreMenuPosition!==null)}
aria-label=${j(`nav.customize`)}
@click=${t=>e.sidebarMenus.toggleMoreMenu(t.currentTarget)}
>
${N.penLine}
</button>
</div>
`}function hv(e){let t=e.connectionStatus,n=e.sessionDataContext?Fr(e.sessionDataContext.gateway).displayUser:null,r=n?.name??n?.email??j(`nav.owner`),i={id:`owner`,...n,name:r,watchedSessions:[]},a=lv(),o=rv(Ar),s=a?.isPrimary?j(`nav.gateway.primaryTag`):null,c=j(`profilePage.identity.menuButtonLabel`,{name:r}),l=t?j(`connection.${t}`):null,u=l||(a?`${a.name}${s?`, ${s}`:``}`:o),d=l??(e.connected?j(`nav.gateway.connected`):``);return F`
<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">
${va(r,`sidebar-identity-card__name`,{loop:!0,delay:300,speed:35})}
${t?Yn({kind:t,lastError:e.lastError,announce:!1}):a?F`<span class="sidebar-identity-card__gateway" aria-hidden="true">
<span class="sidebar-gateway-name">${a.name}</span>
${s?F`<span class="sidebar-gateway-primary">${s}</span>`:I}
</span>`:I}
</span>
</button>
<span class="sr-only" role="status" aria-live="polite" aria-atomic="true"
>${d}</span
>
<span class="sidebar-footer-actions">
${br(e.sessionDataContext?.gateway)?F`<openclaw-tooltip
.content=${`${j(`assistantPanel.toggle`)} (${Ot(Ue.homePanel)})`}
.contentTemplate=${Kt(j(`assistantPanel.toggle`),Ue.homePanel)}
><button
type="button"
class="sidebar-brand__icon sidebar-footer-bar__home"
aria-label=${j(`assistantPanel.toggle`)}
@click=${()=>window.dispatchEvent(new CustomEvent(vn))}
>
${N.home}
</button></openclaw-tooltip
>`:I}
<openclaw-sidebar-attention
.activeRouteId=${e.activeRouteId}
.onNavigate=${e.onNavigate}
.watchUpdateProgress=${e.watchUpdateProgress}
></openclaw-sidebar-attention>
</span>
</div>
`}function gv(e,t,n,r){if(t.type===`route`&&!e.sidebarMenus.isRouteEnabled(t.route))return I;let i=fn(t),a=e.sessionOrganizer.sidebarZoneDropTarget?.entry===i?e.sessionOrganizer.sidebarZoneDropTarget.position:null,o=t.type===`plugin`?r.get(t.key):void 0,s=t.type===`route`?e.sidebarMenus.renderRoute(t.route):o?_v(e,o):t.type===`plugin`?F`<openclaw-plugin-contributions
.kind=${`navigation`}
.navigationKey=${t.key}
></openclaw-plugin-contributions>`:n.has(t.key)?e.renderPinnedSidebarSession(n.get(t.key)):I,c=t.type===`route`||t.type===`plugin`,l=t.type===`route`?yn(t.route):t.type===`session`?n.get(t.key)?.label??t.key:o?.label??e.pluginNavigation().find(e=>e.key===t.key)?.value.label??t.key;return F`
<div
class="sidebar-zone-entry ${a?`sidebar-zone-entry--drop-${a}`:``} ${e.sessionOrganizer.draggingSidebarEntry===i?`sidebar-zone-entry--dragging`:``}"
data-sidebar-entry=${i}
draggable=${c?`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=${c?()=>e.sessionOrganizer.finishSidebarEntryDrag():I}
@dragover=${t=>e.sessionOrganizer.handleSidebarZoneDragOver(t,i)}
@drop=${t=>e.sessionOrganizer.handleSidebarZoneDrop(t,i)}
>
${s}
${Ap({label:l,kind:`entry`,onMove:async(t,n)=>{e.sessionOrganizer.writeSidebarEntryAt(i,t,n),e.requestUpdate(),await e.updateComplete}})}
</div>
`}function _v(e,t){let n={pluginId:t.pluginId,id:t.id},r=C(n),i=t.placement?.startsWith(`route:`)?t.placement.slice(6):``,a=sr(i)?i:null;return a?e.sidebarMenus.renderRoute(a):Mg({tab:t,basePath:e.basePath,active:e.activeRouteId===`plugin`&&e.activePluginTabId===r,onNavigate:t=>e.onNavigate?.(`plugin`,t)})}function vv(){return(vv=e((()=>{L(),Vr(),Sr(),Qn(),pr(),an(),Bn(),v(),gt(),_t(),ka(),Ge(),de(),D(),c(),Ig(),Ug(),Nr(),P(),In(),lr(),Kn(),Q_(),tm(),sm(),cv(),jp()})))()}function yv(){wv??=W(()=>import(`./channel-avatar-BaIeGNgy.js`),__vite__mapDeps([7,0,8,1,2,9,10,11,12,13,3,4,5,14,15,16]),import.meta.url)}function bv(e){let t=eh(e);return t?F`<span class="session-glyph__icon" aria-hidden="true">${t}</span>`:F`<span class="session-glyph__emoji" aria-hidden="true">${e}</span>`}function xv(e){return[!e.isChild&&e.forkSource?j(`sessionsView.forkedSession`):``,(e.hasActiveRun||e.runningChildCount>0)&&e.unread?j(`sessionsView.unread`):``].filter(Boolean).join(` · `)}function Sv(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)?j(`sessionsView.subagentsWorking`):void 0},m=e.attention.kind!==`none`&&!a?G_(e.attention,!0):o??(e.icon?bv(e.icon):I);if(m!==I)return{running:d,leadingIndicator:Qp({content:m,...p,badge:e.unread&&!d&&!a?$p():I})};if(e.isChild&&!a)return e.channelAvatarUrl?(yv(),{running:d,leadingIndicator:Qp({content:F`<openclaw-channel-avatar
.routeUrl=${e.channelAvatarUrl}
.authTokens=${i?.authTokens??[]}
.authReady=${i?.authReady??!1}
></openclaw-channel-avatar>`,...p,circular:!0,badge:e.unread&&!d?$p():I})}):{running:d,leadingIndicator:d?Qp({content:I,...p}):X_(e)};let h=t?.id?.trim()?Fh(t,`row`,n,r,c,l):void 0;if(e.channelAvatarUrl)return yv(),{running:d,leadingIndicator:Qp({content:F`<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?$p():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=Cv.get(e),o=i?.length===r.length&&r.every((e,t)=>e===i[t])?i:r.length?r:Ah;return Cv.set(e,o),{running:d,leadingIndicator:Qp({content:h,...p,badge:e.unread&&!d&&!a?$p():I,circular:!0,ring:n>0?`pair`:`circle`}),renderedIdentities:o}}return{running:d,leadingIndicator:p.running?Qp({content:I,...p}):e.unread&&!a?X_(e):I}}var Cv,wv;function Tv(){return(Tv=e((()=>{L(),v(),Q_(),tm(),nh(),Bh(),Nh(),hs(),Cv=new WeakMap})))()}function Ev(e){let{session:t}=e;if(t.attention.kind===`question`||t.attention.kind===`error`)return{subtitle:void 0,narration:void 0};let n=K_(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?ma(o,s):ma(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=fa(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&&!fa(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 Dv(e){if(!e.subtitle)return I;let t=e.toolName?`${j(`chat.toolCards.tool`)}: ${e.toolName}`:void 0,n=e.toolName?F`<openclaw-tooltip .content=${t} .describe=${!1}
><span class="sidebar-session-tool" role="img" aria-label=${t}
>${N[Ma(e.toolName)]}</span
></openclaw-tooltip
>`:I,r=e.narration?si(e.narration,F`<span
class="sidebar-recent-session__subtitle sidebar-recent-session__subtitle--narration"
>${e.subtitle}</span
>`):F`<span class="sidebar-recent-session__subtitle">${e.subtitle}</span>`;return F`${n}${r}`}function Ov(){return(Ov=e((()=>{L(),hi(),v(),co(),P(),Q_()})))()}var kv;function Av(){return(Av=e((()=>{L(),z(),io(),O(),ml(),kv=class extends Se{constructor(...e){super(...e),this.startMs=null,this.endMs=null,this.minimumUnit=`second`,this.singleUnit=!1,this.polling=new ac(this,1e3,()=>this.requestUpdate(),!1,`visible`)}connectedCallback(){super.connectedCallback(),this.syncTimer()}updated(){this.syncTimer()}syncTimer(){this.isConnected&&this.startMs!=null&&this.endMs==null?this.polling.start():this.polling.stop()}shouldUpdate(e){let t=this.currentDuration(),n=t!==this.duration;return this.duration=t,!this.hasUpdated||e.size>0||n}currentDuration(){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?ya(r):oo(this.minimumUnit===`minute`?Math.floor(r/6e4)*6e4:r)}render(){return this.duration===void 0?I:F`${this.duration}`}},U([V({type:Number})],kv.prototype,`startMs`,void 0),U([V({type:Number})],kv.prototype,`endMs`,void 0),U([V({type:String})],kv.prototype,`minimumUnit`,void 0),U([V({type:Boolean})],kv.prototype,`singleUnit`,void 0),customElements.get(`openclaw-elapsed-time`)||customElements.define(`openclaw-elapsed-time`,kv)})))()}function jv(e){return e.fullyShown?e.session.children:e.session.children.filter((e,t)=>t<Iv||Gg(e))}function Mv(e,t,n,r){let i=e.sidebarAgentsMode===`roster`,a=t.ownAttention??t.attention,o=e.isSessionChildrenExpanded(t),s=t.pullRequest??n?.pullRequest,c=t.worktreeId?e.sessionPullRequests.summary(t.key,t.worktreeId,s):s,l=e.sessionsStatusFilter===`archived`?`archived`:t.owner?.assignedAt===void 0?`created`:`owned`,u=e.sessionOwnershipVisibility.avatars?e.sessionsStatusFilter===`archived`?t.archivedBy:t.owner?.actor:void 0,d=u?.identity?.type===`profile`?Za(e.sessionData.presencePayload).users.some(e=>Ta(e,u.identity)&&e.watchedSessions.includes(t.key)):void 0,f=e.sessionsGrouping===`person`&&!t.pinned&&l!==`archived`,p=e.sessionDataContext?.gateway.snapshot.selfUser,m=p?.identity?.id??p?.id,h=l!==`archived`&&u?.identity?.type===`profile`&&u.identity.id===m&&(e.sessionInvolvingMeFilterActive||e.sessionOwnerFilterId===u.id)&&(t.participantCount??t.participants?.length??0)===0||!i&&f&&d!==!0?void 0:u,g=e.sessionDataContext?.gateway,_=tr({hello:g?.snapshot.hello,settings:g?.connection,password:g?.connection.password}),v=dm(),{running:y,leadingIndicator:b,renderedIdentities:x}=Sv(t,h,l,d,_,i,r,v),S=xv(t),ee=!t.isChild&&(e.sessionsStatusFilter===`snoozed`||e.sessionsStatusFilter===`all`)&&pc(t,Date.now()),C=ee||t.isChild&&(t.runtimeMs!=null||t.startedAt!=null),te=C?qg(t.key):void 0,ne=!i&&S?Jg(t.key):void 0,w=F`<span class="sidebar-session-indicator"
>${b}
${t.visibility===`draft`?F`<span class="session-row-draft-indicator" title=${j(`chat.sessionSharing.draft`)}
>👻</span
>`:I}</span
>`,re=F`${t.archived?F`<span class="sidebar-session__archive-glyph" role="img" aria-label=${j(`sessionsView.archived`)} title=${j(`sessionsView.archived`)}>${N.archive}</span>`:I}${t.forkSource?F`<span class="sidebar-session-fork-indicator" aria-hidden=${i||t.isChild?I:`true`} role="img" aria-label=${j(`sessionsView.forkedSession`)}>${N.gitFork}</span>`:I}`,T=C?F`<span class="session-row-trail" id=${te}
>${ee?j(`sessionsView.snoozeWakes`,{time:kc(t.snoozedUntil)}):t.runtimeMs==null?F`<openclaw-elapsed-time
.startMs=${t.startedAt}
.endMs=${t.endedAt??null}
></openclaw-elapsed-time>`:t.hasActiveRun?F`<openclaw-elapsed-time
.startMs=${t.runtimeSampledAt-t.runtimeMs}
></openclaw-elapsed-time>`:oo(t.runtimeMs)??`0ms`}</span
>`:I;return{running:y,stateId:ne,metaId:te,pullRequest:c,persistentIndicator:w,originIndicators:re,childrenExpanded:o,content:F` <span class="sidebar-recent-session__details-endcap">
<openclaw-viewer-facepile
.presencePayload=${e.sessionData.presencePayload}
.selfUser=${e.sessionDataContext?.gateway.snapshot.selfUser}
.selfInstanceId=${e.sessionData.presenceInstanceId}
.sessionKey=${t.key}
.excludeIdentities=${x??Ah}
.maxVisible=${3}
variant="session"
></openclaw-viewer-facepile>
${i?re:I}
${i&&(t.workSession||t.acpSession)&&!t.workspaceKind&&!c?F`<span class="session-row-badge" role="img" aria-label=${j(`chat.sidebar.coding`)} title=${t.subtitle??j(`chat.sidebar.coding`)}>${N.terminal}</span>`:I}
${i&&t.hasAutomation?F`<span class="session-row-badge" role="img" aria-label=${j(`tabs.cron`)} title=${j(`tabs.cron`)}>${N.clock}</span>`:I}
${om({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:c,hasApproval:a.kind===`question`?a.requests.some(e=>e.kind===`approval`):!i&&a.kind===`approval`})}
${i?T:I}
${i?Z_([t],!o,t.childSessionKeys.length,0,v):I}
${!i&&S?F`<span class="sr-only" id=${ne} aria-hidden="true">${S}</span>`:I}
${i?I:T}
</span>`}}function Nv(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||Dt(n,b({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}),_=Mv(t,n,r,a),{running:v,stateId:y,metaId:x,pullRequest:S,persistentIndicator:ee,childrenExpanded:C}=_,te=e=>Oa(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)}),ne=j(n.pinned?`sessionsView.unpinSession`:`sessionsView.pinSession`),w=j(n.archived?`sessionsView.restoreSession`:`sessionsView.archiveSession`),re=r?.catalogMenu?t.sidebarMenus.catalogMenu.isOpenFor(r.catalogMenu.key):t.sidebarMenus.sessionMenu?.session.key===n.key,T=Ri(n.color??``),ie=[`sidebar-recent-session`,`session-row-host`,u?`sidebar-recent-session--team`:``,T?`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(` `),ae=t.readSessionMutationAccess({method:`sessions.groups.put`,requiredScope:`operator.write`}),oe=!n.isChild&&ae.allowed,se=va(F`${u?I:_.originIndicators}${f}`,`sidebar-recent-session__name`),ce=r?si(JSON.stringify([f,n.archived===!0,n.forkSource!==void 0,S]),se):se,le=F`
<div
${r?.rowRef?Xr(r.rowRef):I}
class=${ie}
style=${T?`--session-color: var(--session-color-${T})`:I}
data-session-key=${n.key}
data-catalog-session-key=${r?.catalogIdentityKey??I}
role=${ni(i?`listitem`:void 0)}
draggable=${oe?`true`:`false`}
@dragstart=${oe?e=>{e.dataTransfer&&(ll(e.dataTransfer,n.key),t.sessionOrganizer.startSessionDrag(n))}:I}
@dragend=${oe?()=>{t.sessionOrganizer.finishSessionDrag()}:I}
@contextmenu=${te}
@keydown=${te}
>
<a
href=${t.sidebarSessionHref(n)}
class="sidebar-recent-session__link"
draggable="false"
aria-current=${n.visuallyActive?`page`:I}
aria-describedby=${[y,x].filter(Boolean).join(` `)||I}
@click=${e=>t.handleSessionRowClick(e,n)}
>
${ee}
<span class="sidebar-recent-session__text">
<span class="sidebar-recent-session__title-row">${ce}</span>
<span class="sidebar-recent-session__details">
${n.channelPresentation?F`<span class="sidebar-recent-session__channel">
<span class="sr-only"
>${j(`sessionHovercard.linkedChannel`,{channel:n.channelPresentation.channelLabel})}</span
>
<span aria-hidden="true">${n.channelPresentation.channelLabel}</span>
</span>`:I}
${u?I:Dv({subtitle:m,narration:h,toolName:g})}
${_.content}
</span>
</span>
</a>
${n.childSessionKeys.length>0?F`<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=${j(C?`sessionsView.hideChildSessions`:`sessionsView.showChildSessions`,{count:String(n.childSessionKeys.length),session:f})}
aria-description=${!u&&!C&&n.runningChildCount>0?j(`sessionsView.activeRun`):I}
@click=${()=>t.toggleSessionChildren(n)}
>
<span class="sidebar-child-session-toggle__icon" aria-hidden="true"
>${C?N.chevronDown:N.chevronRight}</span
>
${C||u?I:F`<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?F`<button
class="session-action session-action--pin"
data-sidebar-session-pin="true"
type="button"
title=${o.allowed?ne:o.reason}
aria-label=${ne}
?disabled=${!o.allowed}
@click=${()=>t.toggleSessionPin(n)}
>
${N.pin}
</button>`:I}
<openclaw-tooltip
.content=${s.allowed?w:s.reason}
.describe=${!1}
>
<button
class="session-action"
data-sidebar-session-archive="true"
type="button"
aria-label=${`${w}: ${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?N.archiveRestore:N.archive}
</button>
</openclaw-tooltip>
<button
class="session-action session-action--touch-menu"
data-sidebar-session-menu="true"
type="button"
title=${j(`chat.sidebar.openSessionMenu`)}
aria-label=${`${j(`chat.sidebar.openSessionMenu`)}: ${f}`}
aria-haspopup="menu"
aria-expanded=${String(re)}
@click=${e=>{e.stopPropagation(),t.toggleSessionMenu(n,e.currentTarget,r?.catalogMenu)}}
>
${N.moreHorizontal}
</button>
</span>
</span>
</div>
`;return si(n.key,le)}function Pv(e,t){let n=e.sessionData.childSessionErrorsByParent.get(t);return n?F`<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)}
>
${j(`common.retry`)}
</button>
</div>`:I}function Fv(e){let{host:t,session:n,listItem:r=!0,icon:i}=e,a=t.isSessionChildrenExpanded(n),o=jv({session:n,fullyShown:t.isSessionChildrenFullyShown(n.key)}),s=n.children.length-o.length;return F`<div
class="sidebar-session-tree"
data-session-tree=${n.key}
role=${ni(r?`listitem`:void 0)}
>
${Nv({host:t,session:n,listItem:!1,icon:i})}
${a?F`<div class="sidebar-session-tree__children">
${o.length>0?F`<div
class="sidebar-session-tree__list"
role=${ni(r?`list`:void 0)}
aria-label=${ni(r?j(`sessionsView.childSessions`):void 0)}
>
${ii(o,e=>e.key,e=>Fv({host:t,session:e,listItem:r}))}
</div>`:I}
${s>0?F`<button
class="sidebar-session-tree__show-more"
type="button"
data-show-more-children=${n.key}
aria-label=${j(`sessionsView.showMoreChildren`,{count:String(s)})}
@click=${()=>t.showMoreChildren(n.key)}
>
${j(`sessionsView.showMoreChildren`,{count:String(s)})}
</button>`:I}
${(n.childLoadParentKeys??[n.key]).map(e=>Pv(t,e))}
${n.loadingChildren&&n.children.length===0?F`<span
class="sidebar-session-tree__loading skeleton skeleton-line skeleton-line--medium"
role="status"
aria-busy="true"
aria-label=${j(`common.loading`)}
></span>`:I}
</div>`:I}
</div>`}var Iv;function Lv(){return(Lv=e((()=>{L(),Yr(),hi(),Qr(),ui(),Ei(),Rn(),v(),io(),ka(),Da(),po(),jc(),D(),sc(),J(),P(),Q_(),Tv(),sm(),Ov(),fm(),Nh(),Av(),Yt(),Iv=4})))()}function Rv(e,t){return t.size===0?e:e.map(e=>({...e,hosts:e.hosts.map(n=>({...n,sessions:n.sessions.filter(r=>!t.has(ue({catalogId:e.id,hostId:n.hostId,threadId:r.threadId})))}))}))}function zv(){return{code:`PAGINATION_FAILED`,message:j(`chat.sidebar.catalogPaginationFailed`)}}function Bv(){return{code:`PAGINATION_FAILED`,message:j(`chat.sidebar.catalogPageMissingHost`)}}function Vv(e){return{code:e instanceof Ln?e.gatewayCode:`UNAVAILABLE`,message:A(e)}}function Hv(e,t){let n=new Set(e.map(e=>e.threadId));return[...e,...t.filter(e=>!n.has(e.threadId))]}function Uv(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 Wv(e){let{page:t}=e;if(!t)return{catalog:{...e.current,error:Bv()},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:Bv()};if(s.error)return Uv(s,a);let{nextCursor:c,sessions:l,error:u,...d}=s,f=c===o||c!==void 0&&e.previousCursors?.get(a.hostId)?.has(c);f?i.push(a.hostId):r.push(a.hostId);let{nextCursor:p,error:m,pending:h,...g}=a;return{...g,...d,sessions:Hv(a.sessions,l),...c?{nextCursor:c}:{},...f?{error:zv()}:{}}}),{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 Gv(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(b_(n.id,t.hostId))??0;if(i===0||t.pending)return t;let a=r.get(t.hostId);if(t.error||n.error)return Uv({...t,error:t.error??n.error},a);let o=t.sessions,s=t.nextCursor,c=e=>Uv({...t,error:e},a??{...t,sessions:o,nextCursor:s}),l=new Set;for(let r=0;r<i&&s;r+=1){if(!e.canRequestPage())return Uv(t,a);l.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 c(Vv(e))}if(!e.isCurrent())return a??t;let i=r.catalogs.find(e=>e.id===n.id),u=i?.hosts.find(e=>e.hostId===t.hostId);if(i?.error)return c(i.error);if(!u)return c(Bv());if(u.error)return Uv({...t,...u},a??t);if(o=Hv(o,u.sessions),s=u.nextCursor,s&&l.has(s))return c(zv())}let{nextCursor:u,sessions:d,...f}=t;return{...f,sessions:o,...s?{nextCursor:s}:{}}}));return{...n,hosts:i}}))}function Kv(){return(Kv=e((()=>{Wn(),v(),M(),ze(),J()})))()}function qv(e,t){return!t||!e?.client||!H(e,`sessions.catalog.list`,`operator.read`)?null:e.client}function Jv(e){let t=es(e),n=es(t?.catalog),r=Array.isArray(n?.hosts)?n.hosts:[],i=es(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 Yv(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 Gv({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?Xv:Zv);t.schedule(r,e.connected(),()=>{e.refresh()}),n&&l===null&&t.scheduleActivation(e.refresh)}}}var Xv,Zv,Qv,$v;function ey(){return(ey=e((()=>{Wn(),M(),be(),Ji(),Te(),D(),xo(),Kv(),J(),Xv=6e5,Zv=3e4,Qv=3,$v=class{constructor(){this.refreshScope={},this.timer=null,this.requestGeneration=null,this.refreshPending=!1,this.discoveryPages=new Map,this.activationRefresh=null,this.eventRefresh=jt({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=Lt(e),this.startupPending){let t=re(e,this.retryAttempts++);return this.retryAt=Date.now()+t,t}if(!(e instanceof Ln)||!e.retryable||u(e,null)||this.retryAttempts>=Qv)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=b_(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=>[b_(e.id,t.hostId),t])));return e.map(e=>({...e,hosts:e.hosts.map(t=>{let r=b_(e.id,t.hostId),i=n.get(r);return t.pending?this.requestChangedHostKeys.has(r)&&i&&!i.pending?i:Uv(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=Ao(),r=++this.progressSequence;if(this.progressSequences.set(n,r),this.progressSequences.size>8){let e=this.progressSequences.keys().next().value;e&&this.progressSequences.delete(e)}return{progressId:n,progressSequence:r,requestOwner:t}}ownsRequest(e){return this.requestOwner===e}warnRequestError(e){let t=`${e instanceof Ln?e.gatewayCode:`UNAVAILABLE`}\u0000${A(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=b_(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(!Jv(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=b_(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)?Uv(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 ty(){return{error:null,hasLoaded:!1,stale:!1,awaitingGateway:!1}}function ny(e,t){return{...e,error:t?.clearError===!1?e.error:null}}function ry(){return{error:null,hasLoaded:!0,stale:!1,awaitingGateway:!1}}function iy(e,t,n){let r=u(t,n);return{error:r?null:A(t),hasLoaded:e.hasLoaded,stale:e.hasLoaded,awaitingGateway:r}}function ay(e){let{status:t}=e;if(t.awaitingGateway)return I;let n=e.errorMessage??t.error,r=n&&A(n);if(!r&&!t.stale)return I;let i=e.className?` ${e.className}`:``;return F`
<div
class="callout ${r?`danger`:`warn`}${i}"
role=${r?`alert`:`status`}
>
${r?F`<span>${r}</span>`:I}
${r&&t.stale?F`<br />`:I}
${t.stale?F`<strong>${j(`common.staleData`)}</strong>`:I}
</div>
`}function oy(){return(oy=e((()=>{L(),v(),M(),be()})))()}function sy(e){let t=e.sessionCatalogRefreshStatus;return!t.error&&(!H(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 cy(e){return document.visibilityState===`hidden`?null:qv(e.context?.gateway.snapshot,e.sessionDataHostConnected)}function ly(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,t=e.expandedAgentId()){let n=e.context,r=n?.gateway.snapshot;if(r?.phase===`connected`&&!H(r,`sessions.catalog.list`,`operator.read`))return null;let i=n?.agents.state,a=r?.phase===`connected`&&r.client&&i?.connected&&i.client===r.client?i.agentsList:null;if(a){let e=n?n.agentSelection.state.selectedId:t,r=e?.trim()?G(e):null;if(r&&a.agents.some(e=>G(e.id)===r))return r;let i=G(a.defaultId);return a.agents.some(e=>G(e.id)===i)?i:null}if(r?.phase!==`connected`||!r.hello||!r.assistantAgentId)return null;let o=G(r.assistantAgentId),s=n?.agentSelection.state.selectedId,c=s?.trim()?G(s):null;return c&&c!==o?null:o}function dy(e){if(!cy(e)){e.sessionCatalogLive.cancelScheduledRefreshes();return}e.sessionCatalogLive.scheduleActivation(()=>fy(e))}function fy(e){let t=e.context?.gateway.snapshot;return e.sessionCatalogLive.requestRefresh({visible:document.visibilityState!==`hidden`,connected:e.isSessionDataHostConnected&&e.sessionCatalogAgentId!==null&&!!qv(t,e.sessionDataHostConnected),generation:e.sessionScopeGeneration,refresh:()=>ly(e)})}function py(e){e.context&&e.synchronizeSessionScope(),cy(e)&&!e.sessionCatalogLive.hasRequested&&e.sessionCatalogLive.requestGeneration!==e.sessionScopeGeneration&&ly(e)}function my(e){return e.context?.gateway.snapshot.hello?.features?.events?.includes(`sessions.catalog.changed`)===!0}function hy(e,t){if(!my(e))return;let n=es(t)?.agentId;(typeof n!=`string`||G(n)===e.sessionCatalogAgentId)&&dy(e)}function gy(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 _y(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=Op(e.sessionCatalogs,t),e.requestSessionDataUpdate(),e.sessionCatalogRevision+=1,e.sessionCatalogRevisions.set(t.catalogId,(e.sessionCatalogRevisions.get(t.catalogId)??0)+1))}async function vy(e){e.synchronizeSessionScope();let t=e.sessionCatalogAgentId,n=cy(e);if(!n||!t)return;let r=e.sessionScopeGeneration,i=e.sessionCatalogRevision;e.requestSessionDataUpdate(),await Yv({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:my(e),applyFinal:(t,n)=>{e.sessionCatalogs=e.sessionCatalogLive.resumeDiscovery(t),e.sessionCatalogRefreshStatus=ry(),e.requestSessionDataUpdate();for(let t of n)e.sessionCatalogRevisions.set(t,(e.sessionCatalogRevisions.get(t)??0)+1);e.sessionCatalogRevision+=1},continueRefresh:()=>by(e),applyError:t=>{e.sessionCatalogRefreshStatus=iy(e.sessionCatalogRefreshStatus,t,e.context?.gateway.snapshot),e.requestSessionDataUpdate()},refresh:()=>ly(e)}),e.requestSessionDataUpdate()}function yy(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 by(e){let t=e.sessionScopeGeneration,n=cy(e);if(n&&e.isSessionDataHostConnected)for(;t===e.sessionScopeGeneration&&n===cy(e)&&e.isSessionDataHostConnected;){let t=yy(e);if(t.length===0)return;let n=e.sessionCatalogRevision;if(await Promise.all(t.map(({catalogId:t,hostIds:n})=>Sy(e,t,n,!0))),n===e.sessionCatalogRevision)return}}function xy(e){e.sessionCatalogLive.clear(),e.sessionCatalogRevision+=1;for(let{id:t}of e.sessionCatalogs)e.sessionCatalogRevisions.set(t,(e.sessionCatalogRevisions.get(t)??0)+1);fy(e)}async function Sy(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(!Cy(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=Wv({current:u,page:i,cursors:a,previousCursors:new Map(u.hosts.flatMap(e=>{let n=d.get(b_(t,e.hostId));return n?[[e.hostId,n.cursors]]:[]}))});for(let e of f.repeatedHostIds)d.delete(b_(t,e));for(let[n,i]of Object.entries(a)){if(!f.advancedHostIds.includes(n))continue;let a=b_(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(!Cy(e,t,o,c,l))return;e.sessionCatalogs=e.sessionCatalogs.map(e=>e.id===t?{...e,error:Vv(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 Cy(e,t,n,r,i){return r===e.sessionScopeGeneration&&i===(e.sessionCatalogRevisions.get(t)??0)&&n===e.sessionCatalogGatewayClient()}async function wy(e,t,n){let r=t.catalogGeneration,i=ue(n);e.pendingCatalogArchives=new Set([...e.pendingCatalogArchives,i]),e.requestSessionDataUpdate();try{await t.client.request(`sessions.catalog.archive`,n),r===e.sessionScopeGeneration&&e.isSessionMutationScopeCurrent(t)&&(e.sessionCatalogs=Rv(e.sessionCatalogs,new Set([i])),e.invalidateSessionCatalogs())}finally{r===e.sessionScopeGeneration&&(e.pendingCatalogArchives=new Set([...e.pendingCatalogArchives].filter(e=>e!==i)),e.requestSessionDataUpdate())}}async function Ty(e,t,n){let r=()=>t.catalogGeneration===e.sessionScopeGeneration&&e.isSessionMutationScopeCurrent(t);if(!r())return null;let i=Ie(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 Ey(){return(Ey=e((()=>{Ji(),w(),ze(),D(),ey(),Kv(),kp(),J(),oy()})))()}function Dy(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?kl({id:o.id,identity:s}):void 0,d=c?Qi(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`?Ea({id:s.id,name:o.label||o.id}):o.label||o.id:n.project?n.project.name:n.groups?j(`chat.sidebar.groups`):n.work?j(`chat.sidebar.coding`):a||j(`chat.sidebar.otherSessions`),h=o?`person`:n.project?`project`:n.groups?`groups`:n.work?`coding`:a?`category`:`threads`,g=t.sessionOwnerFilterActive&&t.sessionOwnerFilterId===o?.id,_=g?j(`chat.sidebar.showEveryone`):j(`chat.sidebar.showOnlyPerson`,{name:m}),v=p&&n.work&&n.rows.some(e=>Gg(e,C_.ActiveRun)),y=p&&n.rows.some(e=>Gg(e,C_.Attention)),b=t.readNewSessionAccess(),x=t.readSessionMutationAccess({method:`sessions.groups.put`,requiredScope:`operator.write`}),S=!!(o||n.project||n.id.startsWith(`agent:`)),ee=x.allowed&&!S,C=[`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(` `),te=F`<span class="sidebar-session-group-toggle__lead" aria-hidden="true">
<span class="sidebar-session-group-toggle__icon"
>${p?N.chevronRight:N.chevronDown}</span
>
</span>`,ne=o?F`<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?F`<span
id=${f??I}
class="sidebar-session-group-presence ${`sidebar-session-group-presence--${c}`}"
role="img"
aria-label=${d}
></span>`:I}
</span>`:I,w=va(m,`sidebar-recent-sessions__label-text`),re=p&&i>0,T=re||v||y?F`${re?F`<span class="sidebar-session-group-count">${i}</span>`:I}${v?F`<span
class="session-run-spinner sidebar-session-group-running"
role="img"
aria-label=${j(`sessionsView.activeRun`)}
title=${j(`sessionsView.activeRun`)}
></span>`:I}${y?F`<span
class="sidebar-session-group-attention"
role="img"
aria-label=${j(`sessionsView.attentionRequired`)}
title=${j(`sessionsView.attentionRequired`)}
></span>`:I}`:void 0;return F`
<div
class=${C}
data-session-section=${n.id}
data-zone=${h}
@dragover=${ee?e=>t.sessionOrganizer.sectionDragOver(e,n.id,a):I}
@dragleave=${ee?e=>t.sessionOrganizer.sectionDragLeave(e,n.id,a):I}
@drop=${ee?e=>t.sessionOrganizer.sectionDrop(e,n.id,a):I}
>
${n.renderHeader?Mp({sectionId:n.id,status:T?{content:T,label:m,expanded:!p,onToggle:()=>t.toggleSection(n.id)}:void 0,draggable:!S,disabledReason:x.allowed?void 0:x.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:F`
${l?F`<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)}
>
${te}
</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=${j(`presence.card.details`,{name:m})}
aria-describedby=${f??I}
>
${ne}${w}
</button> `:F`<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)}
>
${te}${ne}${w}
</button>`}
${o&&t.sessionOwnershipVisibility.filters&&t.sessionOwnerOptions.some(e=>e.id===o.id)?F`<button
type="button"
class="sidebar-session-group-actions sidebar-session-person-filter ${g?`sidebar-session-sort--filtered`:``}"
aria-pressed=${g}
title=${_}
aria-label=${_}
@click=${e=>{e.stopPropagation(),t.setSessionOwnerFilter(g?null:o.id)}}
>
${N.listFilter}
</button>`:I}
${a||n.id===`ungrouped`?Gn({basePath:t.basePath,agentId:t.expandedAgentId(),target:{group:a??``},className:`sidebar-session-group-actions sidebar-new-session`,label:j(`sessionsView.newSessionInGroup`,{group:m}),disabledReason:b.allowed?void 0:b.reason,onOpen:(e,n)=>t.requestOpenNewSession(e,n)}):I}
${a?F`
<button
type="button"
class="sidebar-session-group-actions"
title=${j(`sessionsView.groupMenu`,{group:a})}
aria-label=${j(`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)}}
>
${N.moreHorizontal}
</button>
`:I}
`}):I}
${p?I:F`
${n.rows.length>0?F`<div class="sidebar-recent-sessions__list" role="list" aria-label=${m}>
${ii(n.rows,e=>e.key,e=>Fv({host:t,session:e}))}
</div>`:I}
${ky({host:t,section:n})}
`}
</div>
`}function Oy(e,t,n,r){return n?F`
<div class="sidebar-session-pagination sidebar-session-pagination--roster">
<button
type="button"
class="sidebar-session-pagination__button"
aria-label=${j(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?F`<span class="session-run-spinner" aria-hidden="true"></span>`:I}
${j(r?`common.loading`:`chat.selectors.loadMoreRosterSessions`)}
</button>
</div>
`:I}function ky(e){let{host:t,section:n}=e,r=n.visibleRowCount<n.totalRowCount,i=n.visibleRowCount>30&&n.visibleRowCount>n.collapsedVisibleRowCount;return!r&&!i?I:F`
<div class="sidebar-session-pagination">
${r?F`<button
type="button"
class="sidebar-session-pagination__button"
aria-label=${j(`chat.selectors.loadMoreSessions`)}
@click=${()=>{t.setVisibleSessionLimit(n.id,n.visibleLimit+10)}}
>
${j(`chat.selectors.loadMoreSessions`)}
</button>`:I}
${i?F`<button
type="button"
class="sidebar-session-pagination__button"
aria-label=${j(`usage.details.collapse`)}
@click=${()=>{t.clearSessionSelection(),t.setVisibleSessionLimit(n.id,10)}}
>
${j(`usage.details.collapse`)}
</button>`:I}
</div>
`}function Ay(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 F`
${i({catalogs:[r],connected:t.connected,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)=>Nv({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)=>oc(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 jy(e){let{host:t}=e,n;if(t.sessionsGrouping===`person`){let e=Xt({snapshotUser:t.sessionDataContext?.gateway.snapshot.selfUser,presenceEntries:_r(t.sessionData.presencePayload),presenceInstanceId:t.sessionData.presenceInstanceId}),r=new Map;for(let n of sa(t.sessionData.presencePayload,e,t.sessionData.presenceInstanceId))n.identity?.type===`profile`&&r.set(n.identity.id,Ca(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 F`
${ii(e.sections,e=>e.id,i=>{if(i.id.startsWith(`catalog:`)){let n=r.get(i.id);return n&&e.catalogRenderer?Ay({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:Dy({host:t,section:i,personHeaders:n})})}
`}function My(e){let{host:t}=e;return Ny(t,F`
<div class="sidebar-recent-sessions">
${jy(e)}
${Oy(t,e.sections,e.nativeSessionsHaveMore,e.nativeSessionsLoading)}
${Hg(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&&sy(t.sessionData))}
${t.sessionsStatusFilter===`archived`&&e.empty?F`<span class="sidebar-session-empty-hint"
>${j(`sessionsView.noArchivedSessions`)}</span
>`:I}
</div>
`)}function Ny(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 F`
<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:Bg(e)}
${e.sessionData.sessionsStartingUp?F`<div
class="sidebar-session-empty-hint sidebar-session-empty-hint--startup"
role="status"
aria-live="polite"
>
<span class="btn__spinner" aria-hidden="true"></span> ${j(`agentStartup.short`)}
</div>`:I}
${i.map(t=>Pv(e,t))}
${Vg(e)} ${t}
</section>
`}function Py(){return(Py=e((()=>{L(),ui(),vl(),v(),ka(),po(),Ec(),Ug(),Lv(),Np(),J(),P(),lr(),Ey()})))()}function Fy(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`&&pc(n,e.now)||e.statusFilter===`snoozed`&&(n.archived===!0||!pc(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 Iy(){return(Iy=e((()=>{D(),sc()})))()}function Ly(e){return!e||!Ti(e.state)||e.state===`failed`&&e.recoveryAction===`restart`?null:{method:`sessions.reclaim`,requiredScope:`operator.write`,blocksActiveRun:e.state===`active`}}function Ry(){return(Ry=e((()=>{wi()})))()}function zy(e){let t,n;return(r,i)=>{let a=t??=e();if(a.sortMode!==`people`)return a.sortMode===`updated`?se(r,i):By(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 By(r,i,a.createdOrder)}}function By(e,t,n){let r=No(e.createdAt)??null,i=No(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 Vy(e,t){return e.visibility===`draft`&&(e.sharingRole===`owner`||!!(t&&e.createdActor?.id===t))}function Hy(e){let{context:t}=e,n=fe({agentsList:t?.agents.state.agentsList,hello:t?.gateway.snapshot.hello}),i=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:i.currentSessionKey,selectedAgentId:i.selectedAgentId,activeRowKey:i.activeRowKey,visibleSessionRows:i.visibleSessions,toSidebarSession:(a,o=!1)=>{let s=Re(a.key,a.channel),c=a.runtimeSampledAt;return a.runtimeMs!=null&&c==null&&(c=e.runtimeSampledAtByRow.get(a),c??(c=Date.now(),e.runtimeSampledAtByRow.set(a,c))),{key:a.key,agentId:De(a,n),sessionId:a.sessionId,displayName:a.displayName,incognito:a.incognito===!0,createdActor:a.createdActor,owner:a.owner,participants:a.participants,expandedParticipants:a.expandedParticipants,participantCount:a.participantCount,archivedBy:a.archivedBy,label:ve(a.key,a),userLabel:a.label,renameValue:Xc(a),subtitle:Ze(a),workContext:r(a),active:a.key===i.activeRowKey,visuallyActive:e.highlightCurrentSession&&a.key===i.currentSessionKey,hasActiveRun:a.archived!==!0&&qo(a),gatewayHasActiveRun:a.hasActiveRun,activeRunIds:a.archived===!0?void 0:a.activeRunIds,modelSelectionLocked:a.modelSelectionLocked===!0,kind:a.kind,pinned:a.pinned===!0,pinnable:At(a),snoozedUntil:a.snoozedUntil,archived:a.archived===!0,visibility:a.visibility,sharingRole:a.sharingRole,draftOwnedBySelf:Vy(a,t?.gateway.snapshot.selfUser?.id),category:vo(a.category),icon:vo(a.icon),color:vo(a.color),channelAvatarUrl:vo(a.channelAvatarUrl),boardFace:a.boardFace,channel:s.channel,channelSession:s.channelSession,channelPresentation:Lc(a),workSession:!!(a.worktree||a.repository||a.execNode)||t?.sessions.isPreparedWorkSession(a.key)===!0,acpSession:d(a.key),worktreeId:a.worktree?.id,workspaceKind:a.worktree?`worktree`:a.repository?`checkout`:void 0,execNode:a.execNode,placementState:a.placement?.state,placementProviderId:a.placement&&`providerId`in a.placement?a.placement.providerId:void 0,placementProfileId:a.placement&&`profileId`in a.placement?a.placement.profileId:void 0,placementMachine:a.placement&&`machine`in a.placement?a.placement.machine:void 0,diskSpaceStatus:a.placement?.state===`active`?a.placement.diskSpace?.status:void 0,workspaceConflictCount:a.placement&&`workspaceResultConflict`in a.placement&&Math.max(a.placement.workspaceResultConflict?.paths.length??0,a.placement.workspaceResultConflict?.totalCount??0)||void 0,cloudWorkerStopAction:Ly(a.placement),hasAutomation:a.hasAutomation===!0,pullRequest:t?.sessions.pullRequestSummary(a.key),outboxAttentionCount:e.outboxAttentionCountForSessionKey(a.key),hasComposerDraft:a.incognito!==!0&&e.hasSessionDraft(a.key),unread:a.archived!==!0&&a.unread===!0,hiddenFromInvolvingMe:a.hiddenFromInvolvingMe,lastMessagePreview:vo(a.lastMessagePreview),lastReadAt:a.lastReadAt,attention:a.archived===!0?x_:e.resolveAttention(a),agentStatusNote:e.resolveAgentStatusNote(a),observerDigest:a.observerDigest,spawnedBy:a.spawnedBy,forkSource:a.forkSource,status:a.status,createdAt:a.createdAt,startedAt:a.startedAt,updatedAt:a.updatedAt,endedAt:a.endedAt,runtimeMs:a.runtimeMs,runtimeSampledAt:c,childSessionKeys:a.archived===!0?[]:(a.childSessions??[]).filter(e=>!we(e)),children:[],isChild:o,loadingChildren:e.loadingChildSessionKeys.has(a.key),containsActiveDescendant:!1,runningChildCount:0,failedChildCount:0}}}}function Uy(e){let t=e.pluginNavigation,n=new Set(e.sidebarEntries),r=new Map(Ag(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=>[C(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{...qc(e.sidebarEntries,a,Ur,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 Wy(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 Gy(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 Ky(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:Ct(e.roster),identity:t.get(e.activeId)??null,identities:t}}function qy(e){let{sessionData:t}=e,n=G(e.agentId),r=n===G(t.sessionsAgentId??``)?t.sessionsResult?.sessions??[]:t.sessionResultsByAgent[n]?.sessions??[];return ye(r,{agentId:n,defaultAgentId:fe({agentsList:e.context?.agents.state.agentsList,hello:e.context?.gateway.snapshot.hello}),filterByAgent:!0,archivedFilter:`active`}).reduce((e,t)=>e!==null&&se(e,t)<=0?e:t,null)}function Jy(e){return new Map([...Object.values(e.childRowsByParent).flat(),...e.rows].map(e=>[e.key,e]))}function Yy(e){let t=new Set(e.scopedRoots.map(e=>e.key));return e.rows.filter(n=>!t.has(n.key)&&!we(n.key)&&vo(n.category)!=null&&te(n)!=null&&ce(n,e.visibilityOptions))}function Xy(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 Zy(e){let t={agentsList:e.agentsList,hello:e.hello};return _(t)?vo(me(t)?.mainSessionKey)??`global`:Ro({agentId:e.agentId,mainKey:b(t)})}function Qy(e,t){let n=[...e];for(let e=n.pop();e;e=n.pop()){if(t(e))return e;n.push(...e.children)}}function $y(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 eb(){return(eb=e((()=>{yo(),Vr(),gt(),Yc(),Ve(),sl(),Nt(),D(),Uc(),c(),Ig(),J(),Ry()})))()}function tb(e,t,n){let r=te(e)??n;if(!r||e?.createdVia!==`operator`||e.spawnDepth!==0||e.parentSessionId||e.spawnedBy||e.forkSource||e.forkedFromParent===!0||we(e.key)||![...t].some(e=>k(e,r)))return r}function nb(e,t){let n=new Map,r=(e,t)=>{let r=ct(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=tb(e.get(i),t,n.key);k(a,n.key)&&r(n.key,i)}for(let n of e.values()){let e=tb(n,t);e&&r(e,n.key)}return n}function rb(e){let t=new Set([...e.mainSessionKeys].map(ct)),n=new Set;for(let r of t)for(let i of e.childKeysByParent.get(r)??[])we(i)?t.add(ct(i)):n.add(i);return e.rows.filter(t=>n.has(t.key)&&!e.scopedRootKeys.has(t.key)&&!we(t.key)&&bt(t,e.archivedFilter)&&(e.showCron||!Eo(t.key))&&(e.showSystem||!ko(t)))}function ib(){return(ib=e((()=>{wo(),l(),D()})))()}function ab(e,t,n=!1){let r=[],i=0,a=0,o=0,s=0,c=0;for(let t of e){if(n&&!we(t.key))continue;let e=n?t.subagentSummary:t,l=n?Wg([t.ownAttention??t.attention,t.subagentSummary?.attention??x_]):t.attention;r.push(l.kind===`error`&&l.childLabel===void 0?{...l,childLabel:t.label}:l),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}return{attention:Wg([...r,...t]),unreadChildCount:i,runningChildCount:a,failedChildCount:o,queuedChildCount:s,workspaceConflictCount:c}}function ob(e){let{roots:t,mainSessionKeys:n=new Set,rowsByKey:r,loadingChildKeys:i,resolveAttention:a,toSidebarSession:o}=e,s=nb(r,n),c=e=>typeof e?.category==`string`&&e.category.trim().length>0&&!we(e.key),l=new Set,u=(t,n,d)=>{let f=t.archived===!0?[]:(s.get(ct(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(...we(e)?n?.childSessionKeys??[]:[e]),we(e))for(let e of n?.childLoadParentKeys??[])h.add(e);return n?[n]:[]}),_=g.flatMap(e=>we(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:it(e)?.agentId??v.agentId})})),b=ab(g,y.map(e=>e.attention)),x=ab(g,y.filter(e=>we(e.key)).map(e=>e.attention),!0),S=Wg([v.attention,b.attention]),ee=Math.min(2**53-1,(v.workspaceConflictCount??0)+b.workspaceConflictCount),C=t.archived!==!0&&!v.hasActiveRun&&t.hasActiveSubagentRun;return x.runningChildCount=Math.max(x.runningChildCount,C&&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:ee||void 0,runningChildCount:Math.max(b.runningChildCount,+!!C)}},d=new Set(t.map(e=>e.key)),f=new Set;return t.filter(e=>{if(we(e.key))return!1;if(c(e))return!0;let t=tb(e,n);return t&&we(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 sb(){return(sb=e((()=>{D(),ib(),J()})))()}function cb({host:e,navigationState:t,selected:n,agentIds:r,result:i,compareSessions:a,resolveAttention:o}){let s=i!==void 0,c=fe({agentsList:e.sessionDataContext?.agents.state.agentsList,hello:e.sessionDataContext?.gateway.snapshot.hello}),l=new Set(r),u=e=>!s||l.has(De(e,c)),d=e.sessionData.activeSessionLineageRoot,f=s?Jy({rows:[...d?[d]:[],...t.visibleSessionRows],childRowsByParent:e.sessionData.childSessionRowsByParent}):null,p=s?new Set:wp(e.visibleSessionCatalogs()),m=G(e.sessionData.sessionsAgentId??``),h=G(t.selectedAgentId),g={agentId:n,defaultAgentId:c,filterByAgent:!s,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem,archivedFilter:e.sessionsStatusFilter},{childSessionRowsByParent:_,isSessionHidden:v,isChildSessionVisible:y,rows:b}=Fy({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?De(f?.get(t)??{key:t},c):n),archiveVisibility:t=>e.sessionDataContext?.sessions.archiveVisibility(t)}),x=new Map(b.map(e=>[e.key,e])),S=Jy({rows:b,childRowsByParent:_}),ee=r.map(t=>e.selectedAgentMainSessionKey(t)),C=e=>ee.some(t=>k(e,t)),te=!s&&n===h&&n===m?t.visibleSessionRows.flatMap(e=>{let t=x.get(e.key);return t?[t]:[]}):ye(b.filter(u),g).toSorted(a),ne=G(it(d?.key??``)?.agentId??``),w=t.visibleSessionRows.find(e=>(s?u(e):n===h||ne===n)&&e.key===t.activeRowKey&&!v(e)&&!p.has(e.key)&&!C(e.key)),re=new Set(ee),T=te.filter(e=>!C(e.key)),ie=G(it(t.routeSessionKey)?.agentId??``);d&&!v(d)&&(k(d.key,t.routeSessionKey)||bt(d,e.sessionsStatusFilter))&&(s?u(d):ne===n||ie===n)&&!p.has(d.key)&&!C(d.key)&&!T.some(e=>e.key===d.key)&&T.push(d);let ae=new Map([...S].filter(([t,n])=>!s||bt(n,e.sessionsStatusFilter)&&(!e.sessionInvolvingMeFilterActive||x.has(t))));if(d&&C(d.key)&&k(d.key,t.routeSessionKey)&&![...ae.keys()].some(e=>k(e,d.key))&&ae.set(d.key,d),s){for(let e of[...T,...w?[w]:[]])ae.set(e.key,e);for(let[t,n]of ae){let r=n.childSessions?.filter(t=>ae.has(t)||!e.sessionInvolvingMeFilterActive&&!S.has(t));r&&r.length!==n.childSessions?.length&&ae.set(t,{...n,childSessions:r})}}let oe=new Set([...x.keys(),...T.map(e=>e.key),...w?[w.key]:[],...d&&k(d.key,t.routeSessionKey)?[d.key]:[]].map(ct)),se=nb(ae,re),ce=new Set(oe);for(let e of ce)for(let t of se.get(e)??[])ce.add(ct(t));let le=[...ae.values()].filter(e=>u(e)&&(!s||ce.has(ct(e.key)))),ue=Yy({rows:le.filter(e=>!C(e.key)),scopedRoots:T,visibilityOptions:g});T.push(...ue);let de=new Set(T.map(e=>e.key)),pe=rb({rows:le,childKeysByParent:se,archivedFilter:e.sessionsStatusFilter,mainSessionKeys:re,scopedRootKeys:de,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem});for(let e of pe)de.has(e.key)||(de.add(e.key),T.push(e));let me=ob({mainSessionKeys:re,roots:(pe.length>0||ue.length>0?T.toSorted(a):T).filter(e=>!p.has(e.key)&&(!s||ae.has(e.key))),rowsByKey:ae,loadingChildKeys:e.sessionData.loadingChildSessionKeys,isChildSessionVisible:y,resolveAttention:o,toSidebarSession:t.toSidebarSession});return w&&!we(w.key)&&(!s||ae.has(w.key))&&!Qy(me,e=>e.key===w.key)&&me.unshift(t.toSidebarSession(w)),me}function lb({host:e,row:t,agentId:n,result:r,navigationState:i,resolveAttention:a}){let{rows:o,childSessionRowsByParent:s,isChildSessionVisible:c}=Fy({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)}),l={...t,agentId:n},u=i.toSidebarSession(l),d=ob({roots:[l],mainSessionKeys:new Set([t.key,e.selectedAgentMainSessionKey(n)]),rowsByKey:Jy({rows:[...o,l],childRowsByParent:s}),loadingChildKeys:e.sessionData.loadingChildSessionKeys,isChildSessionVisible:c,resolveAttention:a,toSidebarSession:(e,t)=>t?i.toSidebarSession(e,!0):u})[0];return r===void 0?d:{...d,...d.subagentSummary,attention:Wg([u.attention,d.subagentSummary?.attention??x_]),workspaceConflictCount:(u.workspaceConflictCount??0)+(d.subagentSummary?.workspaceConflictCount??0)||void 0}}function ub(){return(ub=e((()=>{Nt(),D(),Iy(),kp(),eb(),ib(),sb(),J()})))()}var Y;function db(){return(db=e((()=>{Wo(),z(),Vr(),Jn(),En(),w(),Bc(),de(),D(),O(),Y=class extends Se{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=Gr,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&&Wr({selection:n.agentSelection,gateway:n.gateway,sessionKey:e,agentId:it(e)?.agentId??t})}prepareSessionNavigation(e,t){this.context&&hl(this.context.gateway,t,e)}bindLiteralSession(e,t,n){new URLSearchParams(n.search??``).has(`__openclawSessionKey`)||this.setApplicationSession(e,t)}sessionMainKey(){return b({agentsList:this.context?.agents.state.agentsList,hello:this.context?.gateway.snapshot.hello})}readNewSessionAccess(){return Oe(this.connected?this.context?.gateway.snapshot:null,{method:`sessions.create`,params:{},sessionScope:!0})}readSessionMutationAccess(e){return Oe(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([R()],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([zo({context:Hr,subscribe:!0})],Y.prototype,`context`,void 0)})))()}function fb(e,t=e.key){let n=e.agentId?.trim();return n&&!it(ct(t))?JSON.stringify([t,G(n)]):t}function pb(e,t){let n=new Map;for(let r of[...Object.values(t).flat(),...e]){let e=fb(r,ct(r.key)||r.key);n.delete(e),n.set(e,r)}return new Map([...n.values()].map(e=>[fb(e),e]))}async function mb(e){let t={},n=e.sessionKey,r=it(n)?.agentId??null,i=null,a=!1,s,c=new Set;try{for(let a=0;a<kb;a+=1){let l=JSON.stringify([n,r]);if(c.has(l))break;c.add(l);let u=a===0&&e.readSelected,d=u?await u():[...e.knownRows.values()].find(e=>o(e,n,r));if(!e.isCurrent())return null;if(u&&!d)break;if(!d){let t=a===0?e.captureReconcile():void 0,i=await e.sessions.describe({key:n,...!it(n)&&r?{agentId:r}:{}},{client:e.client});if(!e.isCurrent())return null;if(d=i?.session?{...i.session,runtimeSampledAt:i.session.runtimeSampledAt??Date.now()}:void 0,!d)break;if(t&&(s={row:d,reconcile:t},e.publishSelected)){if(d=e.publishSelected(d,t)??void 0,!e.isCurrent())return null;if(!d)break}e.knownRows.set(fb(d),d)}i=d;let f=te(d);if(!f)break;t[f]=[...(t[f]??[]).filter(e=>e.key!==d.key),d],r=it(f)?.agentId??it(d.key)?.agentId??d.agentId?.trim()??r,n=f}}catch{a=!0}return{rowsByParent:t,topmostRow:i,lookupFailed:a,selectedObservation:s}}function hb(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 gb(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=>k(e.key,r)));if(!e)break;n[e[0]]=e[1].filter(e=>k(e.key,r)),r=e[0]}return n}function _b(e,t,n,r){let i=gb(e,t)[n]??[];return{...t,...hb({[n]:r},{[n]:i})}}function vb(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 yb(e){let{owner:t,parentKey:n,sessions:r,initialResult:i,childRead:a}=e,o=()=>e.ownsQuery()&&a.isCurrent();try{let s=await ul({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=_b(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,A(e))}}function bb(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 xb(e,t,n){let r=gb(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 Sb(e,t,n,r){let i=m(t.key)&&(t.sessionId!==n?.sessionId||G(t.agentId)!==G(n?.agentId))?void 0:n;return Cb(e,r(t===i?t:pe(t,i),t,i),r)}function Cb(e,t,n){e.activeSessionLineageSelectedRow=t,k(e.activeSessionLineageRoot?.key,t.key)&&(!m(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=>k(e.key,t.key)&&(!m(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 wb(e,t,n){Cb(e,t,n),e.activeSessionLineageRoot??=t}function Tb(e,t,n,r){wb(e,n,r);let i=e=>k(e.key,n.key)&&e.agentId===n.agentId&&e.sessionId===n.sessionId?n:e;e.childSessionRowsByParent=hb(e.childSessionRowsByParent,Object.fromEntries(Object.entries(t.rowsByParent).map(([e,t])=>[e,t.map(i)]))),e.activeSessionLineageRoot=t.topmostRow?i(t.topmostRow):n}function Eb(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=>k(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?Sb(e,c,e.activeSessionLineageSelectedRow??void 0,r):(e.activeSessionLineageSelectedRow=null,null)}function Db(e,t,n,r,i,a){if(!a())return;let s=e.activeSessionLineageRoot,c=e.activeSessionLineageSelectedRow,l=t=>{let n=it(t.key)?.agentId??t.agentId?.trim()??null,r=e=>o(e,t.key,n),a=c&&r(c)?c:s&&r(s)?s:null,l=e.sessionsResult?.sessions.find(r)??t;return i(pe(l,a??void 0),l,a??void 0)},u=n.topmostRow?l(n.topmostRow):null,d=Object.fromEntries(Object.entries(n.rowsByParent).map(([e,t])=>[e,t.map(l)]));e.childSessionRowsByParent=hb(e.childSessionRowsByParent,d),e.activeSessionLineageRoot=u;let f=n.selectedObservation?.row??[u,...Object.values(d).flat(),...pb(e.sessionsResult?.sessions??[],e.childSessionRowsByParent).values()].filter(e=>e!=null&&k(e.key,t)).reduce((e,t)=>!e||(t.updatedAt??0)>(e.updatedAt??0)?t:e,void 0);f?Eb(e,f,n.selectedObservation?.reconcile??((t,n,i)=>e.context?.sessions.reconcile(t,n,{...i,sourceCanonicalListRevision:r})??!1),i,a):e.activeSessionLineageSelectedRow=n.lookupFailed?c:null}function Ob(e,t){if(!t)return;let n=e.context?.gateway?.snapshot.sessionKey?.trim();if(n&&k(n,t))return;let r=e.sessionsResult?.sessions.find(e=>k(e.key,t))??[e.activeSessionLineageSelectedRow,e.activeSessionLineageRoot,...Object.values(e.childSessionRowsByParent).flat()].find(e=>e!=null&&k(e.key,t));r?.archived===!0&&(e.childSessionRowsByParent=Object.fromEntries(Object.entries(e.childSessionRowsByParent).map(([e,n])=>[e,n.filter(e=>!k(e.key,t))])),e.context?.sessions.reconcile(r,e.sessionsResult?.defaults,{archivedFilter:`active`}))}var kb;function Ab(){return(Ab=e((()=>{M(),Vc(),f(),D(),ge(),kb=16})))()}function jb(e){return{assistantAgentId:e?.agentSelection.state.selectedId??e?.gateway.snapshot.assistantAgentId,agentsList:e?.agents.state.agentsList,hello:e?.gateway.snapshot.hello}}var Mb;function Nb(){return(Nb=e((()=>{Sr(),D(),Ab(),Mb=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 oe(jb(this.owner.context),e)}scopeIsCurrent(e){let t=this.owner.context,n=this.route();return this.owner.isSessionDataHostConnected&&ar(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`&&Ob(this.owner,this.routeKey)}synchronize(){let e=this.route(),t=this.owner.context,n=ar(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&&(!ar(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`?wb(this.owner,t,e.sessions.inheritRow):Sb(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=>k(e.key,this.routeKey))}retireChangedLineage(e,t){e&&t&&(e.sessionId&&t.sessionId&&e.sessionId!==t.sessionId||ct(te(e))!==ct(te(t)))&&this.retireWalk()}captureChildRead(e){this.synchronize();let t=this.navigation,n=t?.key,r=this.owner.context?.sessions,i=this.owner.context?.gateway,a=r?.captureConnectionScope(),o=jb(this.owner.context),s=t?.identity.sessionKey===`global`,c=s?this.binding:null,l=c?.observation?.captureReconcile(),u=s?void 0:r?.captureReconcile(),d=u?(t,n,r)=>u(t,n,{...r,sourceListScope:e}):void 0,f=()=>this.owner.isSessionDataHostConnected&&r===this.owner.context?.sessions&&i===this.owner.context?.gateway&&!!(a&&r?.isConnectionScopeCurrent(a)),p=()=>(this.synchronize(),f()&&t!==null&&t===this.navigation);return{isCurrent:f,reconcile:e=>{if(!(s?S(o,n,e.key,e.agentId):k(e.key,n))||!p())return{status:`not-selected`};if(!s){let t=d&&r?Eb(this.owner,e,d,r.inheritRow,p):null;return p()?{status:`selected`,row:t}:{status:`not-selected`}}if(!c||!l||!this.bindingIsCurrent(c))return{status:`selected`,row:null};let t=l(e);return p()?t.status===`current`?(this.publish(c,t.row),{status:`selected`,row:t.row}):t.status===`invalidated`?(this.loaded=null,this.owner.requestSessionDataUpdate(),{status:`selected`,row:c.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 mb({client:i,sessions:r,sessionKey:t,captureReconcile:r.captureReconcile,knownRows:pb(this.owner.sessionsResult?.sessions??[],this.owner.childSessionRowsByParent),isCurrent:e,...d?{readSelected:()=>this.readDescriptor(d,e)}:{publishSelected:(t,n)=>{p.publishingSelected=!0;try{return Eb(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?Tb(this.owner,n,e,r.inheritRow):this.clearPresentation()}else Db(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,...m(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 Pb(e,t){return[e.activeSessionLineageSelectedRow,e.activeSessionLineageRoot,...Object.values(e.childSessionRowsByParent).flat()].find(n=>n!=null&&S(jb(e.context),t,n.key,n.agentId))}function Fb(e,t,n){let r=Qy(n,e=>e.key===t),i=e.getSessionNavigationState(),a=Pb(e.sessionData,t),o=r??$y({sessionKey:t,navigationState:i,sessionResultsByAgent:e.sessionData.sessionResultsByAgent})??(a?i.toSidebarSession(a,!0):void 0);return Cp({catalogs:e.visibleSessionCatalogs(),sessionKey:t,liveRow:o})}function Ib(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 Lb(){return(Lb=e((()=>{D(),kp(),eb(),Nb()})))()}function Rb(e,t,n){let r=new Set(e.filter(e=>!n||e.type===`human`).map(e=>Ya(e.identity??{type:e.type===`human`?`profile`:`agent`,id:e.id})));return r.size>=2||!!Qy(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(Ya(t)),r.size>=2))return!0}return!n&&(e.participantCount??t.length)>t.length})}function zb(e){let t=e.ownerFacet??[],n=e.self?.id,r=t.find(e=>e.id===n)?.type===`agent`?null:Ph(e.self),i=r?[r,...t.filter(e=>e.id!==r.id)]:t,a={filters:Rb(i,e.projected,!1),avatars:Rb(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 Bb(){return(Bb=e((()=>{Yi(),eb(),Bh()})))()}var Vb;function Hb(){return(Hb=e((()=>{Ji(),rl(),D(),Vb=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||!H(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 Fe(e,it(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:Rc(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()||!H(e.snapshot,`controlUi.sessionPullRequests.subscribe`,`operator.read`)){this.releaseStore(),this.reset(!0);return}e!==this.gateway&&(this.releaseStore(),this.gateway=e,this.store=Zc(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 Ub(e){return!!(K_(e.attention)||e.agentStatusNote||e.hasActiveRun&&e.status===`queued`)}var Wb,Gb,Kb;function qb(){return(qb=e((()=>{vc(),J(),Q_(),Ov(),Wb=1e3,Gb=2e3,Kb=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<=Wb)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<=Wb)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??_c(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??Ev(e):t.value:Ev(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=Ev(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<Gb&&!Ub(e)){this.scheduleSubtitleUpdate(i.shownAt+Gb);return}let s=Ev({...n,hasDisplay:!0});this.heldSubtitles.set(e.key,{value:r,...s.subtitle?{catalogValue:s}:{},shownAt:i!==void 0&&!o?i.shownAt:a})}}})))()}function Jb(e){return e.sessionsStatusFilter===`archived`||e.sessionsStatusFilter===`snoozed`?[]:Rv(e.sessionData.sessionCatalogs,e.sessionData.pendingCatalogArchives).filter(t=>!e.hiddenSessionCatalogIds.has(t.id))}function Yb(e){return[...e.sessionsResult?.sessions??[],...Object.values(e.sessionResultsByAgent).flatMap(e=>e.sessions)]}function Xb(e,t){let n=Fy({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 Ep(Jb(e),t,Yb(e.sessionData),n.isSessionHidden)}function Zb(e,t,n){return[...t?.sessions??[],...Yb(e),...n.visibleSessionRows,...e.activeSessionLineageRoot?[e.activeSessionLineageRoot]:[]]}function Qb(){return(Qb=e((()=>{Iy(),Kv(),kp()})))()}function $b(e){switch(e.kind){case`standing-grant`:return e.expiresInDays===void 0?j(`execApproval.scope.standingGrant`,{automation:e.automation}):j(`execApproval.scope.standingGrantDays`,{automation:e.automation,count:String(e.expiresInDays)});case`message-send`:return j(`execApproval.scope.messageSend`,{count:String(e.recipientCount),target:e.target});case`payment`:return j(`execApproval.scope.payment`,{amount:e.amount,currency:e.currency,target:e.target});case`external-post`:return j(`execApproval.scope.externalPost`,{target:e.target})}return e}function ex(e){let t=e.replace(/\s+/g,` `).trim();return t.length>64?`${fs(t,61)}…`:t}function tx(){return(tx=e((()=>{v()})))()}function nx(e){let t=e.replace(/\s+/g,` `).trim();return t.length>240?`${fs(t,239)}…`:t}var rx;function ix(){return(ix=e((()=>{tx(),hd(),v(),M(),Ji(),D(),sc(),a(),J(),rx=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 st(e),this.questionPromptState=Zu(this.invalidate),this.attentionSubscriptions.watchStore(()=>e.sessionAttentionContext?.gateway,e=>this.synchronizeAttentionGateway(e)).effect(()=>e.sessionAttentionContext?.gateway,e=>e.subscribeEvents(e=>{nd(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),ld(this.questionPromptState)}synchronizeAttentionGateway(e){let t=e.snapshot.phase===`connected`,n=t&&qi({hello:e.snapshot.hello},`question.list`)===!0&&typeof e.snapshot.client?.request==`function`?e.snapshot.client:null;(e!==this.attentionGateway||n!==this.attentionGatewayClient||t!==this.attentionGatewayConnected)&&(this.attentionGateway=e,this.attentionGatewayClient=n,this.attentionGatewayConnected=t,this.invalidate(),cd(this.questionPromptState,n),n&&sd(this.questionPromptState,n,()=>this.host.isConnected&&this.host.sessionAttentionContext?.gateway===e&&e.snapshot.phase===`connected`&&e.snapshot.client===n))}resolveSessionAgentStatus(e){let t=e.agentStatus;if(!(!t||t.expiresAt<=Date.now()||!t.note.trim()))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=cl(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 r=[...pd(this.questionPromptState).filter(e=>e.status===`pending`).map(e=>({sessionKey:e.sessionKey,agentId:e.agentId,kind:`question`,id:e.id,preview:nx(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`?ex(e.request.command):nx(e.pluginTitle??e.request.command),count:1,createdAtMs:e.createdAtMs}))];return this.resolver=e=>{let n=Wg(r.filter(n=>S(t,e.key,n.sessionKey,n.agentId,e.agentId)).map(e=>({kind:e.kind,requests:[e]})));if(n.kind!==`none`)return n;let i=this.resolveSessionAgentStatus(e);if(i?.attention)return{kind:`agent`,note:i.note,icon:i.attention};let a=e.endedAt??e.updatedAt??0;return e.status!==`failed`&&e.status!==`timeout`||e.lastReadAt!=null&&a<=e.lastReadAt?x_:{kind:`error`,reason:et(e.lastRunError)||j(e.status===`timeout`?`sessionsView.runErrorTimedOut`:`sessionsView.runErrorUnknown`)}}}}})))()}function ax(e,t){return document.addEventListener(Pe,e),document.addEventListener(`visibilitychange`,t),()=>{document.removeEventListener(Pe,e),document.removeEventListener(`visibilitychange`,t)}}function ox(e,t,n){(n!==`list`||gx.get(e)!==`action`)&&(e.sessionMutationError=t,t===null?gx.delete(e):gx.set(e,n))}function sx(e,t){let n=new Set(t.map(G));for(let t of Object.keys(e.sessionResultsByAgent))if(!n.has(t)){let n={...e.sessionResultsByAgent};delete n[t],e.sessionResultsByAgent=n}e.sessionsAgentId&&!n.has(G(e.sessionsAgentId))&&(e.sessionsResult=null,e.sessionsAgentId=null)}function cx(e,t,n){let r=()=>{let n=e.state.agentsList;n&&sx(t,n.agents.map(e=>e.id))};return r(),e.subscribe(()=>{r(),n()})}function lx(e){let{ownerId:t,involvingMe:n}=e.sidebarSessionOwnerFilter();return e.sidebarSessionStatusFilter()!==`active`||!!(t||n)}function ux(e,t){let{ownerId:n,involvingMe:r}=e.sidebarSessionOwnerFilter();return{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 dx(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 fx(e,t,n,r){let i=t=>{r()&&(e.context?.gateway.snapshot.phase===`connected`||t.result)&&(dx(e,t),e.sessionsLoading=t.loading,ox(e,t.error,`list`),e.requestSessionDataUpdate())},a=t.subscribeList(n,i);return i(t.listSnapshot(n)),()=>{a(),e.sessionsStartupPending=!1,ox(e,null,`list`)}}function px(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 mx(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 hx(e,t){return e.subscribeEvents(n=>{if(n.event===`sessions.catalog.host`){H(e.snapshot,`sessions.catalog.list`,`operator.read`)&&t.handleSessionCatalogHostEvent(n.payload);return}if(n.event===`sessions.catalog.changed`){H(e.snapshot,`sessions.catalog.list`,`operator.read`)&&t.handleSessionCatalogChanged(n.payload);return}if(n.event===`presence`){let e=_r(n.payload);t.presencePayload=e?{presence:e}:void 0,t.requestSessionDataUpdate()}})}var gx;function _x(){return(_x=e((()=>{Ji(),ze(),D(),gx=new WeakMap})))()}var vx;function yx(){return(yx=e((()=>{J(),vx=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=Kg(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 bx,xx;function Sx(){return(Sx=e((()=>{bx={includeOwnerSessionCounts:!0,limit:1,includeDerivedTitles:!1,includeLastMessage:!1,includeGlobal:!1,includeUnknown:!1,excludeSubagents:!0,excludeCron:!0,excludeSystem:!0},xx=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(bx,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 Cx;function wx(){return(wx=e((()=>{M(),be(),po(),Vc(),D(),a(),Ab(),ey(),oy(),Ey(),_x(),yx(),Nb(),Sx(),Cx=class{constructor(e){this.host=e,this.sessionCatalogs=[],this.pendingCatalogArchives=new Set,this.sessionCatalogRefreshStatus=ty(),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 xx(()=>this.requestSessionDataUpdate()),this.sessionResultsByAgent={},this.sessionCatalogLive=new $v,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 vx(()=>this.requestSessionDataUpdate()),this.lineage=new Mb(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=>ux(this.host,e),this.handleCatalogSessionContinued=e=>{_y(this,e.detail)},this.handleSessionCatalogPageActivation=()=>{dy(this)},this.invalidateSessionCatalogs=()=>xy(this),this.archiveSessionCatalog=wy.bind(null,this),this.importSessionCatalog=Ty.bind(null,this),this.refreshSessionCatalogs=()=>vy(this),this.loadMoreSessionCatalog=e=>Sy(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()),!lx(this.host)&&(!e.presentation.result&&this.sessionsResult&&this.clearSessionCache(),dx(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 st({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=>hx(e,this)).watch(()=>this.context?.agents,(e,t)=>cx(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=ax(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),py(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 qv(this.context?.gateway.snapshot,this.host.connected)}synchronizeOwnerSessionCounts(){let e=Za(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=ty(),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=!lx(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=ty(),(a||o)&&(this.sessionCatalogs=[],this.sessionCatalogPageDepths.clear(),this.sessionCatalogRevisions.clear()),a&&!s&&this.clearSessionCache(),this.bindFilteredSessions(),this.requestSessionDataUpdate(),a&&e?.gateway.snapshot.phase===`connected`&&lx(this.host)&&this.scheduleSidebarSessions()}handleSessionCatalogHostEvent(e){gy(this,e)}handleSessionCatalogChanged(e){hy(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&&lx(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=je(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)&&dy(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=_r(e.snapshot.hello?.snapshot);this.presencePayload=t?{presence:t}:void 0}this.requestSessionDataUpdate(),a?(r&&this.clearSessionCache(),this.resetSessionCatalogConnection()):this.retireSessionCatalogData(),n&&this.sessionsSource&&lx(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||!lx(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=fx(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():mx(this,t)}scheduleSidebarSessions(){return this.bindFilteredSessions(),px(this,()=>this.unsubscribeFilteredSessions)}loadMoreSidebarSessions(){return mx(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));xb(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=al(e),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=yb({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(){ox(this,null,`action`),this.requestSessionDataUpdate()}resetSessionList(){this.retireFilteredSessions(),this.sessionsLoading=!1,this.visibleSessionLimits=new Map,this.resetChildSessionState(),this.sessionResultsByAgent={},!lx(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){bb(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,ox(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:(ox(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)&&(ox(this,A(t),`action`),this.requestSessionDataUpdate())}}})))()}var Tx;function Ex(){return(Ex=e((()=>{J(),Tx=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&&m_(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))m_(n,t,this.currentFilter());else{let e=n_(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 Dx,Ox,kx;function Ax(){return(Ax=e((()=>{Dx=`openclaw.control.sidebarEmptyGroups.v1:`,Ox=`openclaw:sidebar:sessions:hide-empty-groups`,kx=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&&E()?.setItem(this.storageKey,e)}catch{}this.host.requestUpdate()}reconcile(){let e=this.getContext()?.gateway,t=e?Xo(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=`${Dx}${t}:${i?`user:${encodeURIComponent(i)}`:`browser`}`;if(a===this.storageKey)return r;this.storageKey=a,this.mode=`filtering`;try{let e=E(),t=e?.getItem(a);if(t===`filtering`||t===`always`||t===`never`)return this.mode=t,!0;let n=e?.getItem(Ox);t==null&&(n===`true`||n===`false`)&&(this.mode=n===`true`?`always`:`filtering`,e?.setItem(a,this.mode),e?.removeItem(Ox))}catch{}return!0}}})))()}function jx(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(),ar(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,lt.getLocale()]}function Mx(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 Nx(e,t,n,r){let i=e.sidebarAgentsMode===`roster`?e.rosterSessionSource:null,a=e.getRouteSessionKey(),o=Hy({context:e.sessionDataContext,routeSessionKey:a,sessionsResult:i?.result??e.sessionData.sessionsResult,activeSession:Pb(e.sessionData,a),sessionsAgentId:e.sessionData.sessionsAgentId,showCron:e.sessionsShowCron,showSystem:e.sessionsShowSystem,statusFilter:e.sessionsStatusFilter,compareSessions:t,highlightCurrentSession:ar(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 Px(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],()=>Xb(t,n))}function Fx(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 Ix(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.sessionData.loadedChildSessionKeys,t.sessionData.childSessionErrorsByParent],()=>lb({host:t,row:n,agentId:r,result:i,navigationState:a,resolveAttention:t.resolveSessionAttention}))}var Lx;function Rx(){return(Rx=e((()=>{Sr(),v(),ub(),Lb(),eb(),Qb(),Lx=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 zx;function Bx(){return(Bx=e((()=>{z(),Vr(),Sr(),v(),vc(),Bc(),de(),D(),ub(),db(),Ab(),kp(),Lb(),eb(),Bb(),Hb(),qb(),Qb(),J(),ix(),wx(),Ex(),Ax(),Rx(),zx=class extends Y{constructor(...e){super(...e),this.rosterSessionSource=null,this.rosterVisibleSessionLimits=new Map,this.sessionSortMode=r_(),this.sessionProjection=new Kb(void 0,this),this.navigationMemo=new Lx,this.rowsMemo=new Lx,this.catalogsMemo=new Lx,this.sectionsMemo=new Lx,this.homeMemos=new Map,this.sessionData=new Cx(this),this.sessionPullRequests=new Vb(this,{getConnected:()=>this.connected,getRows:()=>Ib({rows:this.visibleSessionRowsInOrder(),adopted:wp(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 Tx(this,()=>this.context),this.sessionOwnerOptions=[],this.activeSessionOwnerId=null,this.sessionOwnershipVisibility={filters:!1,avatars:!1},this.selectedSessionKeys=new Set,this.sessionsGrouping=Yg(),this.sessionsShowCron=Zg(),this.sessionsShowPreview=Qg(),this.sessionsShowSystem=$g(),this.emptyGroups=new kx(this,()=>this.context),this.sessionsStatusFilter=e_(),this.hiddenSessionCatalogIds=o_(),this.visibleSessionCatalogs=()=>Jb(this),this.catalogLiveRows=()=>Yb(this.sessionData),this.sidebarSessionCatalogs=()=>(this.selectedAgentSessionRows(this.getSessionNavigationState()),Px(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 rx(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`:Ae(n),a=t??this.sessionNavigationAgentId(n??{key:e}),o=Ee({face:i,sessionKey:e,fallbackAgentId:a,basePath:this.basePath,row:n,mainKey:this.sessionMainKey(),preferenceDerivedFace:!r,navigationKey:e});Tc(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 h_(this.sessionSortMode,this.sessionPeopleSortAvailable())}effectiveSessionsGrouping(){let e=this.sessionsGrouping;return e===`person`&&!this.sessionPeopleSortAvailable()?`category`:e}setSessionSortMode(e){this.sessionSortMode=g_(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`),ar(this.activeRouteId)&&this.sessionData.loadActiveSessionLineage(this.getRouteSessionKey()),vb(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??0)>0&&(n.visuallyActive||this.isSessionChildrenExpanded(n)))for(let t of n.childLoadParentKeys??[n.key])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=zb({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(()=>jx(this,t),()=>Nx(this,zy(this.readSidebarSessionSortOptions),this.runtimeSampledAtByRow,e=>this.attention.resolveSessionAgentStatus(e)?.note))}selectedAgentIdForSessions(){return this.getSessionNavigationState().selectedAgentId}sessionNavigationAgentId(e){return this.sidebarAgentsMode===`roster`?De(e,fe({agentsList:this.context?.agents.state.agentsList,hello:this.context?.gateway.snapshot.hello})):this.selectedAgentIdForSessions()}sidebarSessionHref(e){return Ee({face:Ae(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,t=this.sidebarSessionCatalogs()){return Mx(this.sectionsMemo,this,e,t,this.rosterVisibleSessionLimits)}reconciledSidebarZone(e=this.selectedAgentSessionRows(this.getSessionNavigationState())){return Uy({sidebarEntries:this.sidebarEntries,rows:e,pluginNavigation:this.pluginNavigation(),pluginTabs:this.context?.gateway.snapshot.hello?.controlUiTabs})}pruneSidebarSessionEntry(e){let t=fn({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.preventDefault(),this.clearSessionSelection(),this.selectSession(t.key);return}if(!(t.isChild||e.defaultPrevented||e.button!==0)&&!(e.metaKey||e.ctrlKey)){if(e.shiftKey){e.preventDefault(),this.extendSessionSelection(t.key);return}if(e.altKey){e.preventDefault(),this.toggleSessionSelected(t.key);return}e.preventDefault(),this.clearSessionSelection(),this.selectSession(t.key)}}toggleSessionSelected(e){let t=Wy(this.selectedSessionKeys,e);this.sessionSelectionAnchor=t.anchor,this.selectedSessionKeys=t.selectedKeys}extendSessionSelection(e){let t=Gy({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=vo(this.context?.agentSelection.state.selectedId);return G(e||this.getSessionNavigationState().selectedAgentId)}activeChipAgent(){return Ky({activeId:this.expandedAgentId(),roster:this.context?.agents.state.agentsList?.agents??[],identities:this.context?.agentIdentity.entries()??[]})}agentResumeKey(e){return qy({agentId:e,sessionData:this.sessionData,context:this.context})?.key??Ro({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=Ee({face:`chat`,sessionKey:t,fallbackAgentId:e,basePath:this.basePath,row:this.findSidebarSessionByKey(t),mainKey:this.sessionMainKey()});Tc(this,{sessionKey:t,agentId:e,face:`chat`,commit:()=>(this.setApplicationSession(t,e),this.onNavigate?.(`chat`,{...n.options,search:y(j(`chat.welcome.suggestions.whatCanYouDo`))}),!0)})}knownSessionGroups(){return ic(this.context?.sessions.state.groups??[],this.sessionData.sessionsResult?.sessions??[])}knownSessionCatalogIds(){return Xy({loadedCatalogIds:this.sessionData.sessionCatalogs.map(e=>e.id),hasLoaded:this.sessionData.sessionCatalogRefreshStatus.hasLoaded,sectionOrder:this.knownSectionOrder()})}findSidebarSessionByKey(e){return $y({sessionKey:e,navigationState:this.getSessionNavigationState(),sessionResultsByAgent:this.sessionData.sessionResultsByAgent})}findSidebarHovercardRowByKey(e){return Fb(this,e,this.selectedAgentSessionRows(this.getSessionNavigationState()))}selectedAgentSessionRows(e){let t=this.rowsMemo.read(()=>Fx(this,e),()=>{let t=this.groupedSessionSource,n=this.expandedAgentId(),r=cb({host:this,navigationState:e,selected:n,agentIds:t?.agentIds??[n],result:t?.result,compareSessions:zy(this.readSidebarSessionSortOptions),resolveAttention:this.resolveSessionAttention});return this.applySessionOwnerFilter(r,this.selectedAgentSessionResult()?.owners)});return this.attention.scheduleSessionSnoozeWake(Zb(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 Zy({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 Lx,this.homeMemos.set(t,n)),Ix(n,this,e,t)}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=>k(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([R()],zx.prototype,`rosterSessionSource`,void 0),U([R()],zx.prototype,`sessionSortMode`,void 0),U([R()],zx.prototype,`selectedSessionKeys`,void 0),U([R()],zx.prototype,`sessionsGrouping`,void 0),U([R()],zx.prototype,`sessionsShowCron`,void 0),U([R()],zx.prototype,`sessionsShowPreview`,void 0),U([R()],zx.prototype,`sessionsShowSystem`,void 0),U([R()],zx.prototype,`sessionsStatusFilter`,void 0),U([R()],zx.prototype,`hiddenSessionCatalogIds`,void 0)})))()}var Vx;function Hx(){return(Hx=e((()=>{L(),Or(),Vx={github:rr,reddit:F`
<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:F`
<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:F`
<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 Ux(e,t){return F`
<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">
${Wx.map(e=>e.icon)}
</div>
<button
class="invite__close"
type="button"
aria-label=${j(`communityInvite.dismissForever`)}
@click=${e}
>
${N.x}
</button>
</div>
<div class="invite__body">
<h2 class="invite__title" id="community-invite-title">${j(`communityInvite.title`)}</h2>
<p class="invite__text">${j(`communityInvite.body`)}</p>
<div class="invite__links" dir="ltr">
${Wx.map(e=>F`
<a
class="invite__cta"
href=${e.href}
aria-label=${e.accessibleLabel()}
title=${e.accessibleLabel()}
target=${Ka}
rel=${Ba()}
>
${e.icon}<span>${e.label()}</span>
</a>
`)}
</div>
</div>
</aside>
</div>
`}var Wx;function Gx(){return(Gx=e((()=>{L(),an(),v(),Ra(),Xa(),Hx(),P(),Wx=[{label:()=>j(`communityInvite.join`),accessibleLabel:()=>j(`communityInvite.joinPlatform`,{platform:`Reddit`}),href:`https://www.reddit.com/r/openclaw/`,icon:Vx.reddit},{label:()=>j(`communityInvite.join`),accessibleLabel:()=>j(`communityInvite.joinPlatform`,{platform:`Discord`}),href:La,icon:Vx.discord},{label:()=>j(`communityInvite.follow`),accessibleLabel:()=>j(`communityInvite.followPlatform`,{platform:`X`}),href:`https://x.com/openclaw`,icon:Vx.x}]})))()}function Kx(){if(Yx)return!1;try{return E()?.getItem(Jx)===null}catch{return!1}}function qx(){Yx=!0;try{let e=E();return e?(e.setItem(Jx,JSON.stringify({dismissedAtMs:Date.now()})),Yx=!1,gs(void 0)):Jo(`storage-unavailable`)}catch{return Jo(`storage-unavailable`)}}var Jx,Yx;function Xx(){return(Xx=e((()=>{Jx=`openclaw:control-ui:community-invite:v2`,Yx=!1})))()}var Zx;function Qx(){return(Qx=e((()=>{Vr(),v(),jc(),vc(),J(),hs(),Zx=class{constructor(e){this.host=e,this.collapsedSessionSections=a_(),this.draggingSessionKey=null,this.draggingSidebarSection=null,this.sessionDropTarget=null,this.sidebarSectionDropTarget=null,this.draggingSidebarEntry=null,this.sidebarZoneDropTarget=null,this.sessionListRemovalDrop=!1,this.operationsLoad=null,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){let t=this.operationsLoad??=W(()=>import(`./session-organizer-operations.runtime-RnGN66Ok.js`),__vite__mapDeps([17,0,1,2,18,8,9,10,11,12,13,19,20,3,4,5,14,15,16]),import.meta.url);try{return await t}catch(n){return this.operationsLoad===t&&(this.operationsLoad=null),this.host.sessionData.publishSessionMutationError(e,n),null}}async runOperation(e){let t=this.host.sessionData.beginSessionMutation();if(t){let n=await this.loadOperations(t);n&&await e(n,t)}}async snoozeSessionWithUndo(e,t){await this.runOperation((n,r)=>n.snoozeSessionWithUndo(this.host,e,t,r))}async archiveSessionWithUndo(e){await 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))}async forkSession(e){await this.runOperation((t,n)=>t.forkSession(this.host,e,n))}async stopCloudWorker(e){await this.runOperation((t,n)=>t.stopCloudWorker(this.host,e,n))}async setSessionInvolvement(e,t){await this.runOperation((n,r)=>n.setSessionInvolvement(this.host,e,t,r))}async assignSessionOwner(e,t){await this.runOperation((n,r)=>n.assignSessionOwner(this.host,e,t,r))}async deleteSession(e){await this.runOperation((t,n)=>t.deleteSession(this.host,e,n,{offerSkip:!0}))}startSidebarRouteDrag(e,t){e.dataTransfer&&(Qc(e.dataTransfer,t),this.draggingSidebarEntry=fn({type:`route`,route:t}),this.host.requestUpdate())}startSidebarPluginDrag(e,t){if(!e.dataTransfer)return;let n=fn({type:`plugin`,key:t});Qc(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=bc(e),n=Jt(t?`route:${t}`:null);if(n?.type===`route`)return n;let r=Jt(t);return r?.type===`plugin`?r:null}draggedSidebarEntry(e){let t=this.draggedSidebarNavigation(e);if(t)return fn(t);let n=Fc(e);return n?fn({type:`session`,key:n}):null}handleSidebarZoneDragOver(e,t){if(!fl(e.dataTransfer)&&!Kc(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=Jt(e);return t?.type!==`plugin`||!this.host.reconciledSidebarZone().defaultPluginNavigationKeys.has(t.key)}handleSessionListDragOver(e){if(!this.canRemoveSidebarEntry(this.draggingSidebarEntry))return;let t=fl(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=fn(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}}async renameSession(e){await this.runOperation((t,n)=>t.renameSession(this.host,e,n))}async createSessionGroup(e=[]){await(await this.loadDialog(W(()=>import(`./input-dialog-OAeQnraY.js`).then(e=>(e.t(),e.n)),__vite__mapDeps([19,0,3]),import.meta.url)))?.showInputDialog({title:j(`sessionsView.newGroupTitle`),label:j(`sessionsView.newGroupPrompt`),submitLabel:j(`sessionsView.newGroupCreate`),requireValue:!0,submit:t=>this.writeSessionGroup(t,e)})}async writeSessionGroup(e,t){let n=this.host.sessionData.beginSessionMutation();if(!n)return j(`sessionsView.newGroupFailed`);let r=await this.loadOperations(n);if(!r)return this.host.sessionData.isSessionMutationScopeCurrent(n)?this.sessionGroupFailure():j(`sessionsView.newGroupStale`);let i=await r.createSessionGroup(this.host,e,t,n);return i===`failed`?this.sessionGroupFailure():i===`stale`?j(`sessionsView.newGroupStale`):null}sessionGroupFailure(){return this.host.sessionData.sessionMutationError??j(`sessionsView.newGroupFailed`)}async renameSessionGroupFromMenu(e){let t=await(await this.loadDialog(W(()=>import(`./input-dialog-OAeQnraY.js`).then(e=>(e.t(),e.n)),__vite__mapDeps([19,0,3]),import.meta.url)))?.showInputDialog({title:j(`sessionsView.renameGroupTitle`,{group:e}),label:j(`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()})}async deleteSessionGroupFromMenu(e){await 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-DyFBnTbt.js`),__vite__mapDeps([21,0,1,2,22,12,23,3,4,5,14,24,25]),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 j(`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`?j(`sessionsView.groupDefaultsStale`):this.host.sessionData.sessionMutationError??j(`sessionsView.groupDefaultsFailed`)}})}saveCollapsedSessionSections(e){this.collapsedSessionSections=new Set(e),this.host.requestUpdate(),__(e)}toggleSection(e){let t=new Set(this.collapsedSessionSections);t.has(e)?t.delete(e):t.add(e),this.saveCollapsedSessionSections(t)}async reorderSidebarSection(e,t,n){await this.runOperation((r,i)=>r.reorderSidebarSection(this.host,e,t,n,i))}async assignSessionCategory(e,t,n={}){await 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&&el(n,this.host.sessionsGrouping))}sectionDragOver(e,t,n){let r=e.dataTransfer;if(il(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(!Kc(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=tc(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,c_(e)}setSessionsShowCron(e){this.host.sessionsShowCron=e,u_(e)}setSessionsShowPreview(e){this.host.sessionsShowPreview=e,d_(e)}setSessionsShowSystem(e){this.host.sessionsShowSystem=e,f_(e)}setSessionsStatusFilter(e){e!==this.host.sessionsStatusFilter&&(this.host.sessionsStatusFilter=e,this.host.clearSessionSelection(),this.host.sessionData.resetSessionList(),p_(e),this.host.sessionData.refreshSidebarSessions())}}})))()}function $x(e){let t=on(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 eS(e,t){return e?.key===t?.key&&e?.data===t?.data&&e?.loaderPending===t?.loaderPending&&e?.render===t?.render}function tS(){return(tS=e((()=>{jn()})))()}var nS;function rS(){return(rS=e((()=>{a(),tS(),nS=class{constructor(e){this.host=e,this.positions=new Map,this.presentedKey=`sessions`,new st(e).watch(()=>e.router,(t,n)=>{let r=t.subscribeSelector($x,n,eS);return()=>{r(),e.contextualSidebar=void 0}},t=>{e.contextualSidebar=$x(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 iS;function aS(){return(aS=e((()=>{L(),z(),v(),O(),Hm(),P(),Qm(),mp(),iS=class extends p{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 Vm(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(),Xm(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=j(`chat.catalog.sessionMenu`);return F`
<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?F`<div class="session-menu__info">
${j(`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"
>${N.messageSquare}</span
>
<span class="session-menu__text">${j(`chat.catalog.openInOpenClaw`)}</span>
</wa-dropdown-item>
${this.canImport?F`<wa-dropdown-item class="session-menu__item" value="import">
<span slot="icon" class="session-menu__icon" aria-hidden="true"
>${N.download}</span
>
<span class="session-menu__text">${j(`chat.catalog.importToOpenClaw`)}</span>
</wa-dropdown-item>`:``}
<wa-dropdown-item
class="session-menu__item"
value="terminal"
title=${this.terminalDisabled?j(`chat.catalog.terminalUnavailable`):``}
?disabled=${this.terminalDisabled}
>
<span slot="icon" class="session-menu__icon" aria-hidden="true">${N.terminal}</span>
<span class="session-menu__text">${j(`chat.catalog.openInTerminal`)}</span>
</wa-dropdown-item>
${this.canDelete?F`<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"
>${N.trash}</span
>
<span class="session-menu__text">${j(`chat.catalog.deleteSession`)}</span>
</wa-dropdown-item>`:``}
</wa-dropdown>
`}},U([V({attribute:!1})],iS.prototype,`x`,void 0),U([V({attribute:!1})],iS.prototype,`y`,void 0),U([V({attribute:!1})],iS.prototype,`trigger`,void 0),U([V({attribute:!1})],iS.prototype,`lastActive`,void 0),U([V({attribute:!1})],iS.prototype,`terminalDisabled`,void 0),U([V({attribute:!1})],iS.prototype,`canDelete`,void 0),U([V({attribute:!1})],iS.prototype,`canImport`,void 0),U([V({attribute:!1})],iS.prototype,`onAction`,void 0),U([V({attribute:!1})],iS.prototype,`onClose`,void 0),customElements.get(`openclaw-catalog-session-menu`)||customElements.define(`openclaw-catalog-session-menu`,iS)})))()}function oS(e){if(e instanceof PointerEvent&&e.pointerType===`touch`)return null;for(let t of e.composedPath()){if(t instanceof HTMLElement&&t.matches(fS))return t;if(t===e.currentTarget)break}return null}function sS(e){return e.matches(uS)?`horizontal`:`vertical`}var cS,lS,uS,dS,fS;function pS(){return(pS=e((()=>{cS=`a.markdown-session-link, [data-session-href]`,lS=`${cS}, [data-session-title-only]`,uS=`.sidebar-recent-session[data-session-key]`,dS=`openclaw-session-menu-open`,fS=`${cS}, ${uS}`})))()}var mS;function hS(){return(hS=e((()=>{L(),Sr(),v(),M(),w(),ze(),Ec(),de(),ft(),aS(),tf(),pS(),mS=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(dS,{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&&oc(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`&&Ie(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=fs(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;Et({message:j(t.complete?t.importedItems===0?`chat.catalog.importUnchanged`:`chat.catalog.importComplete`:`chat.catalog.importIncomplete`,{count:String(t.importedItems)}),actionLabel:j(`chat.catalog.openImportedSession`),onAction:()=>{if(!this.isMutationCurrent(n))return;let r=Ee({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)&&Et({message:A(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 $d({message:j(`chat.catalog.deleteSessionConfirm`),details:e.name,confirmLabel:j(`chat.catalog.deleteSession`),danger:!0,signal:n.signal});if(!this.isMutationCurrent(n)){Et({message:j(`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=He(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:wn(`chat`,this.host.basePath),search:``,hash:``})}catch(e){Et({message:A(e)})}}render(){let e=this.state;return e?F`
<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 gS(){let e=Sd()?.snapshot;return e?.gateways.find(t=>t.id===e.currentId)?.kind===`local`}function _S(e,t){return t||!gS()?null:/^(?:\/|[a-z]:[\\/]|\\\\)/i.test(e.path)?e.path:e.root?`${e.root.replace(/[\\/]+$/,``)}/${e.path.replace(/^[\\/]+/,``)}`:null}function vS(e,t){new st(e).watchStore(Sd,t)}function yS(){return(yS=e((()=>{a(),Td()})))()}function bS(e){for(let t of wS){let n=e.find(e=>e.state===t);if(n)return n.url}return null}async function xS(e){try{return bS((await e.loadPullRequests?.())?.pullRequests??[])}catch{return null}}async function SS(e){let t=e.worktreeId;if(!t||e.execNode||!gS())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 CS(e){let[t,n]=await Promise.all([xS(e),SS(e)]);return{pullRequestUrl:t,worktreePath:n}}var wS;function TS(){return(TS=e((()=>{yS(),wS=[`open`,`draft`,`merged`,`closed`]})))()}function ES(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 DS,OS,kS,AS;function jS(){return(jS=e((()=>{L(),Vr(),Sr(),Ji(),Ia(),rl(),de(),D(),hS(),Ig(),TS(),pS(),hs(),DS=300,OS=200,kS=264,AS=class{constructor(e){this.host=e,this.customizeMenuPosition=null,this.moreMenuPosition=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.identityMenuPosition=null,this.customizeMenuTrigger=null,this.moreMenuTrigger=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=St(()=>W(()=>Promise.resolve().then(()=>(Mj(),Cj)),void 0,import.meta.url),e=>{this.menuRenderer=e,this.host.requestUpdate()}),this.pluginActionLifetime=new AbortController,this.cancelPreload=e=>{Cn(this.routePreloadTimers,e)},this.openCustomizeMenuFromContext=e=>{e.preventDefault(),this.openCustomizeMenu(e.clientX,e.clientY)},e.addController(this),this.agentMenuAvatars=new Xi(e),this.catalogMenu=new mS(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.sessionMenu||this.catalogMenu.isOpen||this.sessionGroupMenu||this.sessionSortMenuPosition||this.peopleFilterMenuPosition||this.catalogViewMenuPosition||this.agentMenuPosition||this.identityMenuPosition);return this.closePositionedMenu(`customize`),this.closePositionedMenu(`more`),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){mr(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`,ES(e,t,240,420))}toggleMoreMenu(e){if(this.moreMenuPosition){this.closePositionedMenu(`more`);return}this.loadMenuRenderer();let t=e.getBoundingClientRect();this.dismissTransientMenus(),this.moreMenuTrigger=e,this.updateState(`moreMenuPosition`,ES(t.left,t.bottom+4,240,420))}openSessionMenu(e,t,n,r=null){r?.dispatchEvent(new CustomEvent(dS,{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&&Zc(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=Zc(n.gateway),o=Fe(e.key,it(e.key)?.agentId??i);CS({client:r,loadPullRequests:H(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,...ES(t,n,224,160)})}closeSessionGroupMenu(e={}){let t=this.sessionGroupMenuTrigger;this.sessionGroupMenuTrigger=null,this.updateState(`sessionGroupMenu`,null),e.restoreFocus&&t?.focus()}togglePeopleFilterMenu(e){if(this.peopleFilterMenuPosition){this.closePositionedMenu(`peopleFilter`);return}this.loadMenuRenderer();let t=e.getBoundingClientRect();this.dismissTransientMenus(),this.host.people.dismiss(),this.peopleFilterMenuTrigger=e,this.updateState(`peopleFilterMenuPosition`,ES(t.right,t.bottom+4,320,160))}toggleSessionSortMenu(e){if(this.sessionSortMenuPosition){this.closePositionedMenu(`sessionSort`);return}this.loadMenuRenderer();let t=e.getBoundingClientRect();this.dismissTransientMenus(),this.sessionSortMenuTrigger=e,this.updateState(`sessionSortMenuPosition`,ES(t.right,t.bottom+4,200,280))}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,...ES(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`);return}this.openAgentMenu(e,`open-click`)}openAgentMenu(e,t){this.clearAgentMenuHoverTimers(),this.loadMenuRenderer();let n=kS,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`)},DS))}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;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()}closeAgentMenu(e={}){let t=this.agentMenuTrigger;this.clearAgentMenuHoverTimers(),this.agentMenuTrigger=null,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())},OS))}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 F`
${e?.renderSidebarCustomizeMenuForController(this)??I}
${e?.renderSidebarMoreMenuForController(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=ar(e)?this.host.getRouteSessionKey():``,n=this.host.sessionDataContext,r=ar(e)&&t&&n?Ee({context:n,face:e,sessionKey:t}):null;return jg({routeId:e,href:r?.href??wn(e,this.host.basePath),active:kg(this.host.activeRouteId,e),onNavigate:()=>{this.host.onNavigate?.(e,r?.options)},onPreload:(t,n)=>this.preloadRoute(e,t,n),onCancelPreload:this.cancelPreload})}}})))()}function MS(e){let t=PS.get(e);return t||(t={listeners:new Set},PS.set(e,t)),t}function NS(e,t){let n=MS(e);return n.listeners.add(t),{get data(){return n.data},dispose:()=>{n.listeners.delete(t)}}}var PS,FS;function IS(){return(IS=e((()=>{PS=new WeakMap,FS=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?MS(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 LS,RS;function zS(){return(zS=e((()=>{v(),po(),ft(),rc(),IS(),hs(),LS=[`pointerover`,`pointerout`,`focusin`,`focusout`,`click`,`keydown`],RS=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-CjaRkl17.js`),__vite__mapDeps([26,0,1,2,8,9,10,11,12,13,3,4,5,14,15,16]),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(),Et({message:j(`presence.card.loadFailed`)}))})},e.addController(this),this.activityExpiry=Sc(e,()=>e.connected?Za(e.sessionData.presencePayload).users:[]),e.addController(new FS(e,()=>e.sessionDataContext,e.sessionData))}hostConnected(){for(let e of LS)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 LS)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 BS=t({}),VS;function HS(){return(HS=e((()=>{L(),z(),ui(),Vr(),Sr(),ir(),v(),qh(),Qh(),eg(),xg(),ze(),Cg(),Yt(),ft(),a(),qe(),pt(),Eg(),vv(),Py(),Bx(),Lv(),J(),Gx(),Xx(),P(),oy(),Qx(),rS(),jS(),zS(),hs(),VS=class extends zx{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(j(`sessionsView.groupDefaultsStale`));let r=await n.client.request(`fs.listDir`,e?{path:e}:{});if(this.context?.sessions!==t||!t.isConnectionScopeCurrent(n))throw Error(j(`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(j(`sessionsView.groupDefaultsStale`));let i=await r.client.request(`worktrees.branches`,{repoRoot:t,includeRepositoryStatus:!0});if(this.context?.sessions!==n||!n.isConnectionScopeCurrent(r))throw Error(j(`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 Zx(this),this.sidebarMenus=new AS(this),this.people=new RS(this),this.narration=null,this.narrationLoad=null,this.sidebarContext=new nS(this),this.subscriptions=new st(this).effect(()=>this.context?.gateway,e=>e.subscribeEvents(e=>this.narration?.handleEvent(e))).watchStore(()=>this.context?.agentIdentity).watchStore(()=>this.context?.theme).watchStore(()=>this.context?.config,()=>this.syncCommunityInviteState()).watchStore(()=>this.context?.plugins),this.nativeGatewaysChanged=()=>this.sidebarMenus.closeSessionMenu(),this.hiddenSessionCatalogsChanged=()=>{this.hiddenSessionCatalogIds=o_()},this.communityInvitePresentation=`unavailable`,this.communityInviteStorageChanged=e=>{(e.key===`openclaw:control-ui:community-invite:v2`||e.key===null)&&this.syncCommunityInviteState()},this.catalogRenderer=null,this.catalogRendererImport=St(()=>W(()=>Promise.resolve().then(()=>(xm(),pm)),void 0,import.meta.url),e=>{this.catalogRenderer=e.renderSessionCatalogGroups,this.isConnected&&this.requestUpdate()}),this.rosterRenderer=null,this.rosterRendererImport=St(()=>W(()=>import(`./sidebar-agent-roster-pYXMLzrS.js`),__vite__mapDeps([27,0,28,1,2,3,4,5,29]),import.meta.url),e=>{this.rosterRenderer=e,this.requestUpdate()}),this.catalogProjectGrouping=Xg(),this.handleSidebarInteractionEnd=e=>{this.communityInvitePresentation!==`pending`||e instanceof FocusEvent&&e.relatedTarget instanceof Node&&this.contains(e.relatedTarget)||this.requestUpdate()},this.dismissCommunityInvite=()=>{let e=qx();this.syncCommunityInviteState(),e.ok||Et({message:j(`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(P_,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)&&jv({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:ar(this.activeRouteId)?this.getRouteSessionKey():``,agentId:this.selectedAgentIdForSessions()}}ensureNarrationController(){this.narration||this.narrationLoad||(this.narrationLoad=W(()=>Promise.resolve().then(()=>(Bm(),Am)).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(P_,this.hiddenSessionCatalogsChanged),window.addEventListener(`storage`,this.communityInviteStorageChanged),this.syncCommunityInviteState(),this.catalogRendererImport.schedule()}syncCommunityInviteState(){this.context?.config.current.communityInvite!==!0||!Kx()?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){l_(e),this.catalogProjectGrouping=e}hideSessionCatalog(e){let t=this.sessionData.sessionCatalogs.find(t=>t.id===e)?.label??e;y_(e,!0);let n=vt.appearanceSidebar,r=wn(n.routeId,this.basePath)+n.search+n.hash;Et({message:F`${j(`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}))}}
>${j(`chat.sidebar.sectionHiddenRecovery`)}</a
>`,actionLabel:j(`common.undo`),onAction:()=>y_(e,!1),durationMs:12e3})}renderPinnedSidebarSession(e){return this.sidebarAgentsMode===`roster`&&this.rosterRenderer?this.rosterRenderer.renderSidebarPinnedSession(this,e):Fv({host:this,session:e,listItem:!1})}renderSessions(){return tt(`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),n=this.expandedAgentId(),r=this.activeRouteId===`terminal`?yt(this.context?.router.getState().matches[0]?.location.search??``):null,i=r?ue(r,n):ar(this.activeRouteId)?this.getRouteSessionKey():``,a=this.sidebarSessionCatalogs(),{sections:o}=this.zonedVisibleSections(t);return!this.catalogRenderer&&(a.length>0||this.sessionData.sessionCatalogRefreshStatus.error!==null)&&this.preloadCatalogRenderer().catch(()=>void 0),My({host:this,empty:t.length===0,sections:o,nativeSessionsHaveMore:this.sessionData.sessionsResult?.hasMore===!0,nativeSessionsLoading:this.sessionData.sessionsLoading,catalogRenderer:this.catalogRenderer,catalogs:{catalogs:a,basePath:this.basePath,routeSessionKey:i,newSessionAgentId:n,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();return F`
<aside
class="sidebar"
@pointerleave=${this.handleSidebarInteractionEnd}
@focusout=${this.handleSidebarInteractionEnd}
@contextmenu=${e=>{e.target.closest(`input, textarea, [contenteditable]`)||e.preventDefault()}}
>
<div class="sidebar-shell" @mousedown=${or}>
${fv(this,this.sidebarAgentsMode===`roster`?this.rosterRenderer?.renderSidebarNewSessionMenu(this,`sidebar-brand__icon sidebar-brand__header-control sidebar-brand__new-thread`):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}
>
${mv(this)}
<div
class="nav-section__items"
@dragover=${e=>this.sessionOrganizer.handleSidebarZoneDragOver(e)}
@dragleave=${e=>this.sessionOrganizer.handleSidebarZoneDragLeave(e)}
@drop=${e=>this.sessionOrganizer.handleSidebarZoneDrop(e)}
>
${pv(this)}
<openclaw-mcp-app-catalog surface="sidebar"></openclaw-mcp-app-catalog>
${ii(e.entries,fn,t=>gv(this,t,e.sessionRows,e.pluginTabs))}
</div>
</nav>
<div class="sidebar-session-content" ?hidden=${!!this.contextualSidebar}>
${wg(this)} ${this.renderSessions()}
</div>
${this.contextualSidebar?.render(this.contextualSidebar.data,this.contextualSidebar.loaderPending,!0)??I}
</div>
${this.contextualSidebar||this.sessionsStatusFilter===`archived`?I:ay({status:this.sessionData.sessionCatalogRefreshStatus,className:`sidebar-session-error sidebar-session-catalog-error`})}
</div>
<div class="sidebar-shell__invite">
${this.communityInvitePresentation===`shown`?Ux(this.dismissCommunityInvite,this.context?.theme.resolvedMode??`dark`):I}
</div>
<div class="sidebar-shell__footer">
${this.devGitBranch?F`<openclaw-tooltip .content=${this.devGitBranch}>
<div class="sidebar-footer-branch">
<span class="sidebar-footer-branch__icon" aria-hidden="true"
>${N.gitBranch}</span
>
<span class="sidebar-footer-branch__name">${this.devGitBranch}</span>
</div>
</openclaw-tooltip>`:I}
${hv(this)}
</div>
</div>
${this.sidebarMenus.render()}
</aside>
`}},U([R()],VS.prototype,`teamOnlineExpanded`,void 0),U([R()],VS.prototype,`sidebarNarrationLines`,void 0),U([R()],VS.prototype,`sidebarTools`,void 0),U([R()],VS.prototype,`sidebarObserverDigests`,void 0),U([R()],VS.prototype,`communityInvitePresentation`,void 0),U([R()],VS.prototype,`catalogProjectGrouping`,void 0),customElements.get(`openclaw-app-sidebar`)||customElements.define(`openclaw-app-sidebar`,VS)})))()}var US,WS;function GS(){return(GS=e((()=>{ci(),Jr(),US=class extends Zr{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()}},WS=ei(US)})))()}function KS(e,t,n,r={}){let i=n===`picker`?`tile`:n;return F`${WS(r.pluginIconUrl,(a,o)=>{let[s,c]=a?[``,``]:Pc(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 F`<span
class=${`channels-${i}${u}${a?``:` channels-${i}--fallback`}`}
style=${l}
aria-hidden="true"
>
${a?F`<img src=${a} alt="" loading="lazy" decoding="async" @error=${o} />`:F`<span>${Nc(t)}</span>`}
</span>`})}`}function qS(){return(qS=e((()=>{L(),fc(),GS()})))()}function JS(e,t,n={}){let r=e.querySelector(`:scope > summary`),i=e.querySelector(`:scope > wa-popup[data-anchored-overlay]`);r&&i&&(YS(i,n.anchor??r,t,n.alignment),i.active=e.open)}function YS(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=XS,e.shift=!0,e.shiftPadding=i&&Number.parseFloat(getComputedStyle(i).getPropertyValue(`--shell-popup-inline-gutter`))||ZS,e.autoSize=`vertical`,e.autoSizePadding=XS}var XS,ZS;function QS(){return(QS=e((()=>{js(),XS=8,ZS=12})))()}function $S(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 eC(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 tC,nC;function rC(){return(rC=e((()=>{L(),ci(),Jr(),tC=class extends Zr{constructor(...e){super(...e),this.horizontal=!1,this.trackScroll=!0,this.pending=!1,this.sync=()=>{let e=this.element;this.isConnected&&e?.isConnected&&eC(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()}},nC=ei(tC)})))()}var iC=t({SelectPicker:()=>cC});function aC(){return sC+=1,`openclaw-picker-${sC}`}function oC(e){return F`<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 sC,cC;function lC(){return(lC=e((()=>{js(),L(),z(),pi(),ui(),v(),O(),QS(),P(),rC(),sC=0,cC=class extends p{constructor(...e){super(...e),this.mode=`closed`,this.query=``,this.activeValue=null,this.keyboard=!1,this.collapsedGroups=new Set,this.listboxId=aC(),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(!n)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&&$S(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 Ns&&this.trigger&&(this.params.variant===`submenu`&&e.setAttribute(`flip-fallback-placements`,`${this.submenuSide===`right`?`left`:`right`}-start bottom-start top-start`),YS(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:F`<span class="picker-select__leading">${t}</span>`}optionId(e){return`${this.listboxId}-option-${encodeURIComponent(JSON.stringify(e))}`}renderOption(e,t,n=!1){return F`
<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?F`<span class="picker-select__description">${e.description}</span>`:I}
</span>
<span class="picker-select__check" aria-hidden="true"
>${e.value===this.params.value?N.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=F`<div
class=${`picker-select__menu ${this.params.groupBy?`picker-select__menu--grouped`:``}`}
>
${this.params.sheet?F`<div class="picker-select__page-header">
<button
type="button"
class="picker-select__back"
aria-label=${j(`common.back`)}
@click=${()=>this.closeMenu(!0)}
>
${N.chevronLeft}
</button>
<span>${this.params.label}</span>
</div>`:I}
${this.mode===`search`?F` <input
class="picker-select__search settings-input"
type="search"
role="combobox"
data-picker-focus
tabindex="0"
autocomplete="off"
spellcheck="false"
aria-label=${j(`common.search`)}
placeholder=${this.params.searchPlaceholder??j(`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=${li(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?ii(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?F`<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">${N.chevronDown}</span>
</button>
<div
id=${s}
class="picker-select__group-options"
role="listbox"
aria-label=${o.label}
>
${r}
</div>
</div>`:this.params.groupBy?F`<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)}
>
${j(`common.pickerNoMatches`)}
</div>
</div>`;return F`
<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`?F`<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?F`<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?N.chevronRight:N.chevronDown}</span
>
</button>
${this.params.sheet?c?l:I:F`<wa-popup
?active=${c}
sync=${this.params.variant===`submenu`?I:`width`}
>${l}</wa-popup
>`}
</div>
`}},U([V({attribute:!1})],cC.prototype,`params`,void 0),U([R()],cC.prototype,`mode`,void 0),U([R()],cC.prototype,`query`,void 0),U([R()],cC.prototype,`activeValue`,void 0),U([R()],cC.prototype,`keyboard`,void 0),U([R()],cC.prototype,`collapsedGroups`,void 0),customElements.get(`openclaw-select-picker`)||customElements.define(`openclaw-select-picker`,cC)})))()}function uC(e){return oC({...e,className:`channel-picker`,renderLeading:e=>e.kind===`neutral`?I:KS(e.value,e.label,`picker`)})}function dC(){return(dC=e((()=>{L(),qS(),lC()})))()}function fC(){return j(`chat.actions.copyAsMarkdown`)}function pC(e){return e.querySelector(`[data-copy-label]`)?.textContent??e.getAttribute(`aria-label`)}function mC(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 hC(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,mC(r,n);let a=()=>r.isConnected&&r.dataset.copyAttempt===i,o=await Be(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=pC(r)??n,c=j(o?`common.copied`:`common.copyFailed`);mC(r,c,!0);let l=o?vC:yC;return window.setTimeout(()=>{if(!a())return;delete r.dataset.copyState;let e=pC(r);mC(r,e&&e!==c?e:s)},l),o}function gC(e,t=fC(),n=!1){return F`${si(e,F`
<openclaw-tooltip .content=${t}>
<button
class=${n?`chat-copy-btn`:`btn btn--xs chat-copy-btn`}
type="button"
aria-label=${t}
@click=${n=>void hC(n,e,t)}
>
<span class="chat-copy-btn__icon" aria-hidden="true">
<span class="chat-copy-btn__icon-copy">${N.copy}</span>
<span class="chat-copy-btn__icon-check">${N.check}</span>
</span>
</button>
<span data-copy-feedback role="status" hidden></span>
</openclaw-tooltip>
`)}`}function _C(e){return gC(e,fC(),!0)}var vC,yC;function bC(){return(bC=e((()=>{L(),hi(),v(),Le(),P(),Yt(),vC=1500,yC=2e3})))()}function xC(e){return`<code class="assistant-transcript-role">${K(e)}</code>`}function SC(e){let t=DC.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 DC.set(e,n),n}function CC(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+=xC(e.slice(t,a))),r=a}return n+K(e.slice(r))}function wC(e){e.use(Ii,{isStructuralHtmlInline:e=>e.meta?.taskListPlugin===!0}),e.renderer.rules[Hi]=(e,t)=>{let n=e[t];return n?xC(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=SC(e).has(t);if(!/^data:image\/[a-z0-9.+-]+;base64,/i.test(a)&&r?.remoteImages!==!0){let e=s?CC(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(j(`chat.externalImage.notLoaded`))}: ${e}</span>`}${c?``:` <a href="${K(a)}">${K(j(`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(j(`chat.imageLightbox.open`,{title:i.content.trim()?o:j(`chat.imageLightbox.untitled`)}))}">${l}</button>`;return s?`${xC(`${j(`sessionsView.assistant`)}:`)} ${u}`:u}}function TC(e){return e.replace(/\r\n?/g,`
`).replace(/\0/g,``)}function EC(e,t){let n=document.createElement(`div`);if(n.className=`markdown-plain-text-fallback`,!t)return n.textContent=TC(e),n;let r=document.createElement(`code`);r.className=`assistant-transcript-role`,r.textContent=TC(`${j(`sessionsView.assistant`)}:`);let i=document.createElement(`span`);return i.className=`markdown-plain-text-source`,i.textContent=TC(e),n.append(r,`
`,i),n}var DC;function OC(){return(OC=e((()=>{Bi(),v(),DC=new WeakMap})))()}function kC(e,t,n,r){let i=(AC.get(e)??0)+1;AC.set(e,i);let a=()=>e.isConnected&&AC.get(e)===i&&n();Be(t,a).then(t=>{a()&&(r(t),clearTimeout(jC.get(e)),jC.set(e,setTimeout(()=>{r(void 0),jC.delete(e)},t?1500:2e3)))})}var AC,jC;function MC(){return(MC=e((()=>{Le(),AC=new WeakMap,jC=new WeakMap})))()}function NC(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 PC(){return(PC=e((()=>{})))()}function FC(e){if(e.length>4e4)return null;let t=e.trim();if(!/^(?:\{[\s\S]*\}|\[[\s\S]*\])$/.test(t))return null;if(e.length>RC)return{text:e};let n=Ks(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>zC||++i>BC)try{return JSON.parse(e),{text:e}}catch{return null}}let a=[],o=Gs(e,a,{disallowComments:!0,allowTrailingComma:!1});return o&&a.length===0?{text:e,root:o}:null}function IC({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=j(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 LC(){return`<div class="code-block-json-modes" data-markdown-key="json-modes" role="group" aria-label="${K(j(`chat.codeBlock.jsonView`))}">${[`tree`,`raw`].map(e=>`<button type="button" class="code-block-json-mode" data-json-mode="${e}" aria-pressed="${e===`tree`}">${K(j(e===`tree`?`chat.codeBlock.jsonTree`:`chat.codeBlock.jsonRaw`))}</button>`).join(``)}</div>`}var RC,zC,BC;function VC(){return(VC=e((()=>{ws(),v(),to(),PC(),Ja(),RC=2e4,zC=64,BC=4e3})))()}function HC(e){return!e.includes(`\r`)&&!e.includes(`\u2028`)&&!e.includes(`\u2029`)?e:e.replace(/\r\n?|[\u2028\u2029]/g,`
`)}function UC(e){if(!GC.test(e))return!1;let t=HC(e).split(`
`).filter(e=>e.trim().length>0);if(t.length<2)return!1;let n=0;for(let e of t){if(!WC.test(e)||!GC.test(e))return!1;n+=Array.from(e).filter(e=>GC.test(e)).length}return n>=8}var WC,GC;function KC(){return(KC=e((()=>{WC=/^[\t \u00a0▀▄█]+$/u,GC=/[▀▄█]/u})))()}function qC(e){let t=JSON.stringify(e).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`);return`${sw}${t}`}function JC(e,t){if(t!==cw||!e.startsWith(sw))return e;try{let t=JSON.parse(e.slice(24));return typeof t==`string`?t:e}catch{return e}}function YC(e){return JC(e.dataset.code??``,e.dataset.codeEncoding)}function XC(e){let t=e.target;if(!(t instanceof Element))return;ZC(t);let n=t.closest(`.code-block-copy`);if(!n)return;let r=YC(n);kC(n,r,()=>YC(n)===r,e=>{e===void 0?(n.classList.remove(`copied`,`copy-failed`),n.setAttribute(`aria-label`,j(`common.copyCode`))):(n.classList.toggle(`copied`,e),n.classList.toggle(`copy-failed`,!e),n.setAttribute(`aria-label`,j(e?`common.copied`:`common.copyFailed`)))})}function ZC(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));QC(t)}let i=e.closest(`.code-block-wrap`);if(!i)return;let a=t.classList.toggle(`is-wrapped`),o=j(a?`chat.codeBlock.disableWrap`:`chat.codeBlock.enableWrap`);i.setAttribute(`aria-pressed`,String(a)),i.setAttribute(`aria-label`,o),i.title=o,QC(t)}function QC(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 $C(e,t){let n=t.trim().toLowerCase();try{if(n&&Kl.getLanguage(n))return Kl.highlight(e,{language:n,ignoreIllegals:!0}).value;if(!n&&e.trim()){let t=Kl.highlightAuto(e);if(t.relevance>=2)return t.value}}catch{}return K(e)}function ew(e){return $C(e,`json`)}function tw(e,t){let n=[t.includes(`hljs-`)?`hljs`:``,e?`language-${e}`:``].filter(Boolean);return n.length>0?` class="${K(n.join(` `))}"`:``}function nw(e,t){return`<div class="code-block-header" data-markdown-key="header"><span class="code-block-lang">${K(e||j(`chat.codeBlock.languageFallback`))}</span><div class="code-block-actions">${t}</div></div>`}function rw(e){return`<button type="button" class="code-block-copy" data-markdown-key="copy" data-code="${K(qC(e))}" data-code-encoding="${cw}" aria-label="${K(j(`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 iw(e,t,n,r={}){let i=r.blockArt||UC(e),a=r.highlight,o=i||a===!1?K(e):$C(e,t),s=`<pre><code${i?` class="markdown-block-art"`:tw(t,o)}>${o}</code></pre>`,c=n,l=c?.codeBlockChrome!==`none`,u=c?.codeBlockInteraction===`interactive`;if(!l&&!u)return s;let d=l?rw(r.copyText??e):``;if(!u)return`<div class="code-block-wrapper">${nw(t,d)}${s}</div>`;let f=!i&&a!==!1&&(!t||t.toLowerCase()===`json`)?r.json??FC(e):null,p=f?IC(f):``,m=[`text`,`md`,`markdown`].includes(t.trim().toLowerCase())?0:Math.max(0,aw(e)-lw),h={count:String(m)},g=j(m===1?`chat.codeBlock.showHiddenLine`:`chat.codeBlock.showHiddenLines`,h),_=j(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(j(`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=nw(t,`${p?LC():``}${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 aw(e){let t=1,n=-1;for(;(n=e.indexOf(`
`,n+1))>=0&&n<e.length-1;)t+=1;return t}function ow(e){return e.endsWith(`
`)?e.slice(0,-1):e}var sw,cw,lw;function uw(){return(uw=e((()=>{jl(),$l(),Rl(),Ul(),Xl(),zl(),v(),to(),MC(),VC(),KC(),Ja(),sw=`openclaw:block-art-code:`,cw=`block-art-json`,lw=7;for(let[e,t]of Object.entries({bash:Nl,cpp:Ll,css:Ml,diff:eu,go:tu,java:Ql,javascript:Hl,json:ql,markdown:Vl,python:Zl,rust:Bl,typescript:Yl,xml:Wl,yaml:Jl}))Kl.registerLanguage(e,t);Kl.registerAliases(`shell`,{languageName:`bash`})})))()}function dw(e,t=yw){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})(?:${Cw})?${o}`,c=`${n}${Cw}${o}`;return{scan:RegExp(`${s}|${c}`,`gu`),exact:RegExp(`^(?:${s}|${c})$`,`u`),bare:RegExp(`^${t}\\.(${xw})$`,`u`)}}function fw(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 pw(e){if(e.key!==`Enter`&&e.key!==` `)return null;let t=fw(e);return t&&e.preventDefault(),t}function mw(e){let t=Dw.exec(e),n=t?.[1];return t&&n?{path:e.slice(0,t.index),line:Number.parseInt(n,10)}:{path:e,line:null}}function hw(e,t){if(e.includes(`/`)||e.includes(`\\`))return!1;let n=t.exec(e);return!!(n?.[1]&&Ow.has(n[1].toLowerCase()))}function gw(e,t){let n=e.trim(),r=t?.authored?Tw:ww;return!r.exact.test(n)&&!hw(n,r.bare)?null:mw(n)}function _w(e){return vw.test(e.trim())}var vw,yw,bw,xw,Sw,Cw,ww,Tw,Ew,Dw,Ow;function kw(){return(kw=e((()=>{vw=/^(?:~\/|\/(?:Users|home|tmp|private\/tmp|var\/folders|private\/var\/folders)\/|\/[A-Za-z]:\/|[A-Za-z]:[\\/])/,yw=`[\\p{L}\\p{M}\\p{N}_.@#+-]+`,bw=`[^/\\\\:?\\p{Cc}]+`,xw=`[A-Za-z][A-Za-z0-9]{0,7}`,Sw=`[A-Za-z0-9]{1,8}`,Cw=`:\\d{1,6}(?:[-:]\\d{1,6})?`,ww=dw(xw),Tw=dw(Sw,bw),Ew=ww.scan,Dw=/:(\d{1,6})(?:[-:]\d{1,6})?$/,Ow=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 Aw(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 jw(e,t){return JSON.stringify(Aw(e,t))}function Mw(){return(Mw=e((()=>{})))()}function Nw(e,t,n){let r=da(e,t),i=[];if(!r)return{source:e,tokens:i};let a=Ni(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 Pw(e,t=[]){let n=e;for(let e of t)n=n.replaceAll(e.marker,()=>e.label);return n}function Fw(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=>Pw(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 Iw(){return(Iw=e((()=>{zi(),Ha()})))()}function Lw(e){let t=(e.split(Uw).at(-1)??e).toLowerCase();if(Object.hasOwn(Vw,t))return Vw[t];let n=t.lastIndexOf(`.`),r=n>0?t.slice(n+1):``;return Object.hasOwn(Hw,r)?Hw[r]:`file`}function Rw(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 zw(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 Bw(e){let t=[...new Set(e)],n=new Map(t.map(e=>[e,e.split(Uw)])),r={pathCount:0,children:new Map};for(let e of n.values())Rw(r,e);let i=new Map;for(let[e,t]of n){let n=zw(r,t);i.set(e,t.slice(-n).join(e.includes(`\\`)?`\\`:`/`))}return i}var Vw,Hw,Uw;function Ww(){return(Ww=e((()=>{Vw={"bun.lock":`package`,"package-lock.json":`package`,"package.json":`package`,"pnpm-lock.yaml":`package`,"skill.md":`skill`,"yarn.lock":`package`},Hw={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`},Uw=/[\\/]/})))()}function Gw(e,t){let n=0;for(let r=t-1;r>=0&&e.charAt(r)===`\\`;--r)n+=1;return n%2==1}function Kw(e,t){return t.some(([t,n])=>e>=t&&e<n)}function qw(e){let t=oT.exec(e);return t?t[1]?`details_open_expanded`:`details_open`:sT.test(e)?`details_close`:cT.test(e)?`summary_open`:lT.test(e)?`summary_close`:null}function Jw(e,t,n=0){if(!/^[ \t]*<\/?(?:details|summary)(?=[\s>])/i.exec(e))return null;let r=t??Ni(e),i=[];for(let t of e.matchAll(aT)){let a=t.index??0;Gw(e,a)||Kw(n+a,r)||i.push({end:a+t[0].length,raw:t[0],start:a})}return i.length>0?i:null}function Yw(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 Xw(e,t,n={}){let r=e.map(e=>qw(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<iT)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 Zw(e,t,n,r,i){let a=0,o=(r,i=r.end)=>{Yw(e,t.slice(a,r.start),n),a=i};Xw(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),Yw(e,t.slice(r.end,i.start),n,`summary`)}}),Yw(e,t.slice(a),n)}function Qw(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=Jw(o);return s?r?!0:(Zw(e,o,t,e[uT]??=[],s),e.line=t+1,!0):!1}function $w(e){let t=e.trimStart();if(t.startsWith(`<!--`))return`comment`;if(t.startsWith(`<?`))return`processing_instruction`;if(t.startsWith(`<![CDATA[`))return`cdata`;if(/^<![A-Za-z]/.test(t))return`declaration`;let n=/^<(pre|script|style|textarea)(?=[\s>]|$)/i.exec(t)?.[1];return n?{element:n.toLowerCase()}:null}function eT(e,t){return typeof e==`object`?t.toLowerCase().includes(`</${e.element}>`):e===`comment`?t.includes(`-->`):e===`processing_instruction`?t.includes(`?>`):e===`declaration`?t.includes(`>`):t.includes(`]]>`)}function tT(e,t,n=[],r=0){let i=t.context??$w(e);if(!i)return!1;let a=e.length-e.trimStart().length;return!t.context&&Kw(r+a,n)?!1:(t.context=eT(i,e)?null:i,!0)}function nT(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(!tT(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`,Qw,{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=tT(t,s)?null:Jw(t);if(!u){o+=t+(l?`
`:``);continue}c(),Zw(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 iT,aT,oT,sT,cT,lT,uT;function dT(){return(dT=e((()=>{zi(),iT=32,aT=/<\/?(?:details|summary)(?=[\s>])[^>]*>/gi,oT=/^<details( open)?>$/i,sT=/^<\/details>$/i,cT=/^<summary>$/i,lT=/^<\/summary>$/i,uT=Symbol(`markdownDetailsStack`)})))()}function fT(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 pT(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 mT(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 hT(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 gT(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=mT(c);if(l&&(s===void 0||l.length===c.length))return l.repository;let u=hT(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 vT(e){e.core.ruler.before(`web-link-classes`,`github-item-refs`,e=>{let t=e.env,n=Aw(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);for(let r=0;r<a.length;r++){let i=a[r];if(!i)continue;let s=o.get(i);s&&(r=pT(e,a,r,yT,r=>{let i=r[1];if(!i)return null;let a=r.index+r[0].length,o=r.index,c=s.offset+o,l=s.offset+a,u=s.run.content,d=u.slice(s.run.scannedTo,c),f=mT(d),p=f?c-f.length:c,m=u.slice(s.run.scannedTo,p).match(bT);s.run.scannedTo=l;let h=m&&fT(u,p-m[0].length,l)?m[1]:void 0;if(!h&&!f&&i.length<4||!fT(u,p,l)||/^[.-]\w/.test(u.slice(l)))return null;let g=f?.repository??(h?gT(d.slice(0,-m[0].length),n,t?.githubRepo):t?.githubRepo);if(!g)return null;let _=`https://github.com/${encodeURIComponent(g.owner)}/${encodeURIComponent(g.repo)}`,v=h&&/^(?:pr|pull)/i.test(h)?`pull`:`issues`,y=new e.Token(`link_open`,`a`,1);y.attrSet(`href`,`${_}/${v}/${i}`);let b=new e.Token(`text`,``,0);return b.content=`#${i}`,[y,b,new e.Token(`link_close`,`a`,-1)]}))}}})}var yT,bT;function xT(){return(xT=e((()=>{yT=/#([1-9]\d{0,9})(?!\w|[.-]\w)/g,bT=/(PR|pull request|pull|issue|fixes|closes|resolves)\s+$/i})))()}function ST(e){let t=e.trim(),n=it(t);return!n||`agent:${n.agentId}:${n.rest}`!==t.toLowerCase()?null:{sessionKey:t,agentId:n.agentId}}function CT(e,t,n){if(!/^(?:https?:\/\/|\/)/i.test(e.trim()))return null;try{let r=new URL(e,globalThis.location.href),i=rs(r.pathname,t??Mn(globalThis.location.pathname)[0],n);return i&&(r.protocol===`http:`||r.protocol===`https:`)?{url:r,target:i}:null}catch{return null}}function wT(e,t={}){let n=CT(e,t.basePath,t.mainKey);return n&&(n.url.origin===globalThis.location.origin||n.url.origin===t.publicOrigin)?n:null}function TT(e){e.core.ruler.before(`file-links`,`session-links`,e=>{if(e.env?.sessionLinks!==!0)return;let t=(e,t)=>{let n=ST(t),r=n?null:CT(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 e.tokens){let r=n.children;if(n.type!==`inline`||!r)continue;let i=0;for(let n=0;n<r.length;n++){let a=r[n];if(a){if(a.type===`link_open`)t(a,String(a.attrGet(`href`)??``)),i++;else if(a.type===`link_close`)i--;else if(i===0&&a.type===`code_inline`){let i=new e.Token(`link_open`,`a`,1);t(i,a.content)?(r.splice(n,1,i,a,new e.Token(`link_close`,`a`,-1)),n+=2):i.attrGet(`data-session-href`)&&a.attrSet(`data-session-href`,a.content)}else i===0&&a.type===`text`&&(n=pT(e,r,n,AT,n=>{let r=n.index+n[0].length,i=new e.Token(`link_open`,`a`,1);if(!fT(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 ET(e){let t=e?.runtimeConfig?.state.configSnapshot?.runtimeConfig;return Ht({gateway:{publicOrigin:Oo(ls(t?.gateway)?.publicOrigin)}})}function DT(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 ST(r);let i=n?.closest(`openclaw-session-progress-hovercard-provider`)?.context,a=n?.getAttribute(`href`)??n?.dataset.sessionHref,o=a?wT(a,{basePath:t??i?.basePath,publicOrigin:ET(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 OT(e,t){if(e.key!==`Enter`&&e.key!==` `)return null;let n=DT(e,t);return n&&e.preventDefault(),n}function kT(e,t){if(`pathname`in t){let{namespace:n,...r}=t;e.navigate(n,r);return}let n=Ee({context:e,face:`chat`,sessionKey:t.sessionKey,agentId:t.agentId,exactKey:!0,preferenceDerivedFace:!0});e.navigate(`chat`,n.options)}var AT;function jT(){return(jT=e((()=>{wr(),Dn(),de(),D(),AT=/agent:[^\s<>"'`]*[^\s<>"'`.,;:!?)}\]]/g})))()}function MT(e){return typeof e==`object`&&!!e&&`tableInteractions`in e&&e.tableInteractions===`enabled`}function NT(e){let t=e.renderer.rules.table_open,n=e.renderer.rules.table_close;e.renderer.rules.table_open=(e,n,r,i,a)=>MT(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)=>MT(i)?`</table></div><div class="markdown-table__actions"><button type="button" class="markdown-table__expand" aria-label="${K(j(`common.expandTable`))}"></button><button type="button" class="markdown-table__copy" aria-label="${K(j(`common.copyTable`))}"></button></div></div>`:n?.(e,t,r,i,a)??`</table>
`}function PT(e){return[...e.rows].map(e=>[...e.cells].map(e=>e.textContent?.trim()??``).join(` `)).join(`
`)}function FT(e){let t=e.querySelector(HT);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 IT(e){if(UT.has(e))return;let t=e.querySelector(HT),n=e.querySelector(`.markdown-table__expand`),r=e.querySelector(`.markdown-table__copy`);t&&n&&r&&(UT.add(e),ri(F`${Dr.maximize}<span>${j(`common.expandTable`)}</span>`,n),ri(N.copy,r),t.addEventListener(`scroll`,()=>FT(e),{passive:!0}))}function LT(e){let t=WT.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(VT)));for(let e of t)e&&FT(e)}):null,i=t=>{for(let i of t)if(e.contains(i)){IT(i),r||FT(i);for(let e of i.querySelectorAll(`${HT}, 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(VT);o&&(t===o||t?.closest(HT))&&a.add(o);for(let e of i.addedNodes)if(e instanceof HTMLElement){e.matches(VT)&&a.add(e);for(let t of e.querySelectorAll(VT))a.add(t)}for(let t of i.removedNodes){if(!(t instanceof HTMLElement)||e.contains(t))continue;let i=[t,...t.querySelectorAll(`${HT}, table`)];for(let e of i)n.delete(e)&&r?.unobserve(e)}}i(a)});t={release:()=>{a.disconnect(),r?.disconnect()}},WT.set(e,t),i(e.querySelectorAll(VT)),a.observe(e,{childList:!0,subtree:!0,characterData:!0})}return t}function RT(e){let t=WT.get(e);WT.delete(e),t?.release(),t?.closeDialog?.()}async function zT(e,t,n){let r=WT.get(n)??LT(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-9qYjK5B2.js`).then(e=>(e.Wr(),e.Gr)),__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=j(`common.expandedTable`),i.setReturnFocusTarget(t);let o=e=>{let t=at(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),ri(F`
<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=${j(`common.closeTable`)}
autofocus
@click=${a}
>
${N.x}
</button>
${e.cloneNode(!0)}
</div>
`,i),n.append(i)}finally{i||a()}}function BT(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(VT);if(!n)return;IT(n);let r=n.querySelector(`table`);if(!r)return;let i=t.closest(`.markdown-table__expand`);if(i&&e.currentTarget instanceof HTMLElement){zT(r,i,e.currentTarget);return}let a=t.closest(`.markdown-table__copy`);if(a){let e=PT(r);kC(a,e,()=>r.isConnected&&n.querySelector(`table`)===r&&PT(r)===e,e=>{e===void 0?(ri(N.copy,a),a.setAttribute(`aria-label`,j(`common.copyTable`))):(a.setAttribute(`aria-label`,j(e?`common.copied`:`common.copyFailed`)),ri(e?N.check:N.copy,a))})}}var VT,HT,UT,WT;function GT(){return(GT=e((()=>{L(),v(),ur(),P(),MC(),hs(),VT=`.chat-text .markdown-table[data-table-interactions]`,HT=`.markdown-table__viewport`,UT=new WeakSet,WT=new WeakMap})))()}function KT(e,t,n,r){let i=e[t];if(!i)return``;let a=i.content;return n?rE.test(a.trim())?a:``:/^<br\s*\/?>$/iu.test(a.trim())?r?`<br>
`:`<br>`:K(a)+(r?`
`:``)}function qT(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 JT(e){let t=URL.parse(e);return t?.protocol===`https:`||t?.protocol===`http:`?t:null}function YT(e){let t=e.pathname.split(`/`).filter(Boolean);if(t.length===2)return t.map(e=>jd(e)??e).join(`/`);if((t[2]===`blob`||t[2]===`tree`)&&t.length>4){let e=jd(t.at(-1)??``);if(e)return t[2]===`tree`?`${t.slice(0,2).map(e=>jd(e)??e).join(`/`)}/…/${e}`:e}return[`github.com`,...t.map(e=>jd(e)??e)].join(`/`)}function XT(){let e=new Fl({html:!0,breaks:!0,linkify:!0});e.use(Zs);let t=e.renderer.rules.code_inline;return e.enable(`strikethrough`),wC(e),rT(e),NT(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 e.tokens){let e=t.children;if(t.type!==`inline`||!e)continue;let n=!1;for(let t of e)t.type===`link_open`&&ZT.test(String(t.attrGet(`href`)??``))?(t.hidden=!0,n=!0):t.type===`link_close`&&n&&(t.hidden=!0,n=!1)}}),e.core.ruler.after(`linkify`,`linkify-cjk-trim`,e=>{for(let t of e.tokens){if(t.type!==`inline`||!t.children)continue;let n=t.children;for(let t=n.length-1;t>=0;t--){let r=n[t];if(!r||r.type!==`link_open`||r.markup!==`linkify`)continue;let i=n[t+1];if(!i||i.type!==`text`)continue;let a=i.content,o=a.length;for(;o>0&&QT.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=t+1;r<n.length;r++)if(n[r]?.type===`link_close`){let t=new e.Token(`text`,``,0);t.content=c,n.splice(r+1,0,t);break}}}}),e.core.ruler.after(`linkify-cjk-trim`,`file-links`,e=>{if(e.env?.fileLinks!==!0)return;let t=[];for(let n of e.tokens){if(n.type!==`inline`||!n.children)continue;let r=n.children,i=0;for(let n=0;n<r.length;n++){let a=r[n];if(a){if(a.type===`link_open`){let e=String(a.attrGet(`href`)??``);if(e&&!a.attrGet(`data-session-href`)){let t=e;try{t=decodeURIComponent(e)}catch{}if(!t.includes(`://`)){let e=gw(t,{authored:!0})??(_w(t)?mw(t.trim()):null);if(e){a.attrs=a.attrs?.filter(([e])=>e!==`href`)??null,a.attrJoin(`class`,`markdown-file-link`),a.attrSet(`role`,`button`),a.attrSet(`tabindex`,`0`),a.attrSet(`data-file-path`,e.path),a.attrSet(`data-file-kind`,Lw(e.path)),e.line!==null&&a.attrSet(`data-file-line`,String(e.line));let i=t.trim();qT(r,n)!==i&&a.attrSet(`title`,i)}}}i+=1;continue}if(a.type===`link_close`){i=Math.max(0,i-1);continue}if(!(i>0)){if(a.type===`code_inline`){let e=gw(a.content);if(e){let n=a.content.trim(),r={path:e.path,line:e.line,title:null};a.meta={...a.meta,fileLink:r},t.push({path:e.path,reference:n,applyLabel:e=>{a.content=e,r.title=e===n?null:n}})}continue}a.type===`text`&&(Ew.lastIndex=0,n=pT(e,r,n,Ew,n=>{let r=n.index,i=n[0],o=r+i.length;if(!fT(a.content,r,o))return null;let s=gw(i);if(!s)return null;let c=new e.Token(`link_open`,`a`,1);c.markup=`file-link`,c.attrSet(`class`,`markdown-file-link`),c.attrSet(`role`,`button`),c.attrSet(`tabindex`,`0`),c.attrSet(`data-file-path`,s.path),c.attrSet(`data-file-kind`,Lw(s.path)),s.line!==null&&c.attrSet(`data-file-line`,String(s.line));let l=new e.Token(`text`,``,0);l.content=i;let u=new e.Token(`link_close`,`a`,-1);return u.markup=`file-link`,t.push({path:s.path,reference:i,applyLabel:e=>{l.content=e,e!==i&&c.attrSet(`title`,i)}}),[c,l,u]}))}}}}let n=Bw(t.map(e=>e.path));for(let e of t){let t=n.get(e.path)??e.path;e.applyLabel(t+e.reference.slice(e.path.length))}}),TT(e),e.core.ruler.after(`linkify`,`web-link-classes`,e=>{for(let t of e.tokens){if(t.type!==`inline`||!t.children)continue;let n=t.children,r=0;for(let t=0;t<n.length;t++){let i=n[t];if(i?.type===`link_close`){r=Math.max(0,r-1);continue}if(i?.type===`code_inline`&&r===0){let r=i.content,a=nE.test(r)?null:JT(r);if(!a||!hn(a.hostname))continue;let o=new e.Token(`text`,``,0);o.content=r,i=new e.Token(`link_open`,`a`,1),i.markup=tE,i.attrSet(`href`,o.content),n.splice(t,1,i,o,new e.Token(`link_close`,`a`,-1))}if(i?.type!==`link_open`)continue;r+=1;let a=String(i.attrGet(`href`)??``),o=a?JT(a):null;if(!o)continue;let s=i.markup===`linkify`||i.markup===`autolink`||i.markup===tE,c=o.hostname.toLowerCase(),l=hn(c),u=l?Pd(a):null;s&&i.attrJoin(`class`,eE);let d=null;for(let e=t+1;e<n.length;e++){let t=n[e];if(!t||t.type===`link_close`)break;if((t.type===`text`||t.type===`code_inline`)&&t.content.trim()!==``){d=t;break}}if(l&&d){i.attrJoin(`class`,$T);let e=u??Nd(o),r=d.type===`text`&&n[t+1]===d&&n[t+2]?.type===`link_close`?d.content:null,c=e&&(s||r===`#${e.number}`||r===`${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}`:YT(o)),!u&&(s||c)&&i.attrSet(`title`,a)}if(!l&&d&&e.env.linkFavicons){let r=new e.Token(`link_favicon`,`img`,0);r.meta={hostname:c},n.splice(t+1,0,r),t+=1}}}}),vT(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)=>KT(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:KT(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.code_inline=(e,n,r,i,a)=>{let o=t(e,n,r,i,a),s=e[n]?.meta?.fileLink;if(s){let e=s.line===null?``:` data-file-line="${K(String(s.line))}"`,t=s.title===null?``:` title="${K(s.title)}"`;return`<a class="markdown-file-link" role="button" tabindex="0" data-file-path="${K(s.path)}" data-file-kind="${Lw(s.path)}"${e}${t}>${o}</a>`}return o},e.renderer.rules.fence=(e,t,n,r)=>{let i=e[t];if(!i)return``;let a=i.info.trim().split(/\s+/)[0]||``,o=r?.streamingOpenFence===!0&&e.findLastIndex(({nesting:e})=>e!==-1)===t,s=iw(i.content,a,r,{copyText:ow(i.content),highlight:!o});return a.toLowerCase()===`mermaid`&&!o?`<div class="markdown-mermaid">${s}</div>`:s},e.renderer.rules.code_block=(e,t,n,r)=>{let i=e[t]?.content;return i===void 0?``:iw(i,``,r,{copyText:ow(i)})},Fw(e),e}var ZT,QT,$T,eE,tE,nE,rE;function iE(){return(iE=e((()=>{Il(),qs(),Ww(),Fd(),OC(),uw(),dT(),kw(),xT(),Iw(),jT(),GT(),ZT=/^(?!(?:https?|mailto):)[a-z][a-z0-9+.-]*:/i,QT=RegExp(`[\\u2E80-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\uF900-\\uFAFF\\uFF01-\\uFF60]`),$T=`markdown-github-link`,eE=`markdown-bare-url`,tE=`code-span-url`,nE=/[\s\p{Cc}]/u,rE=/^(?:<progress(?:\s[^<>]*)?>\s*(?:<\/progress>)?|<\/progress>)$/iu})))()}function aE(e,t,n){let r=t+1,i=e[r]===`/`;i&&(r+=1);let a=sE.find(t=>{let n=r+t.name.length;return t.pattern.test(e.slice(r,n))&&!cE.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(!lE.test(e[t]??``))return null}return{start:t,end:n+1,isClosing:i,name:o}}function oE(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=aE(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 sE,cE,lE;function uE(){return(uE=e((()=>{sE=[{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}],cE=/^\w$/iu,lE=/^\s$/u})))()}function dE(e){let t=e,n=0;for(let e=0;e<8;e+=1){let e=wE.exec(t)?.[0];if(!e)return{content:t,offset:n};t=t.slice(e.length),n+=e.length}return{content:t,offset:n}}function fE(e){let{content:t,offset:n}=dE(e),r=CE.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 pE(e,t){let n=(t.container?dE(e).content:e).replace(/[ \t]+$/u,``),r=CE.exec(n),i=r?.[1];return!r||!i?!1:i.charAt(0)===t.marker&&i.length>=t.length&&n.length===r[0].length}function mE(e,t,n,r,i){let a=dE(e),o=Jw(a.content,r,i+a.offset);return o?Xw(o,t,{allowPendingSummary:n}):!1}function hE(e){if(!e)return;let t=AE.get(e)??{};if(AE.delete(e),AE.set(e,t),AE.size>OE){let e=AE.keys().next().value;e!==void 0&&AE.delete(e)}return t}function gE(e,t){return Ni(e.slice(t)).map(([e,n])=>[e+t,n+t])}function _E(e,t){let n=e.slice(t,e.lastIndexOf(`
`)+1);if(n.includes(`<`))return;let r=jE??=XT(),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||!kE.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:kE.has(s.type)?c:null}}function vE(e,t,n){let r,i=0;return(a,o)=>{let s=dE(a);!r&&s.content.trimStart().startsWith(`<`)&&tT(s.content,{context:null},n(),o+s.offset)&&(r=nT(e.slice(t),jE??=XT()).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 yE(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)?Wi(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=vE(e,Math.min(t.boundary,t.containerOffset??t.boundary),()=>p??=gE(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)pE(d,c)&&(c=null,o=u,l.length===0&&(n=u));else{let s=dE(d),f=m(d,a);if(_=f!==void 0,r===null&&TE.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=fE(d);t?(c=t,o=u):(DE.test(s.content)&&mE(d,l,!1,p??=gE(e,r??n),a),l.length===0&&(EE.test(s.content)&&(i=!0),/^[ \t]*$/u.test(d)&&(n=u)))}}a=u,l.length===0&&!_&&(t!==-1||bE(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=_E(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 bE(e,t){let n=dE(e).content.charAt(0);return n?t?n!==t.marker:!/[\s`~<[\]*+\-\d>]/u.test(n):!1}function xE(e,t,n=e.length){let r=hE(t);if(!r)return yE(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}}:yE(i,o?a.cursor:void 0);return r.split={...s,markdown:i},n===e.length?s.result:yE(e,s.cursor).result}function SE(e,t){if(t===e.length)return e;let n=e.slice(0,t)+Qs(e.slice(t),ME);if(!n.includes(`<`))return n;let r=[],i=Ni(n),a=vE(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?pE(l,o)&&(o=null):a(l,c)||(o=fE(l),o||(s=mE(l,r,e===-1,i,c))),c=t}return s?`${n}</summary>`:n}var CE,wE,TE,EE,DE,OE,kE,AE,jE,ME;function NE(){return(NE=e((()=>{Xs(),zi(),dT(),iE(),CE=/^[ \t]{0,3}(`{3,}|~{3,})/,wE=/^[ \t]{0,3}(?:(?:>\s?)|(?:(?:[-+*]|\d{1,9}[.)])[ \t]+))/,TE=/^[ \t]{0,3}(?:[-+*]|\d{1,9}[.)])[ \t]+/u,EE=/^[ \t]*\[/u,DE=/^[ \t]*<\/?(?:details|summary)(?=[\s>])/iu,OE=8,kE=new Set([`bullet_list_open`,`ordered_list_open`,`blockquote_open`]),AE=new Map,ME={katex:!1,linkMode:`text-only`}})))()}function PE(e,t){let n=Al(e),r=hE(t),i=r?.input,a;if(i&&n.startsWith(i.source)){let e=n.slice(i.source.length),t=HC(e);a=i.source.endsWith(`\r`)&&e.startsWith(`
`)?`${i.normalized.slice(0,-1)}${t}`:`${i.normalized}${t}`}else a=HC(n);return r&&(r.input=n.length<=nD?{source:n,normalized:a}:void 0),a}function FE(e){if(hr(e)!==null)return!0;let t=IE();return!t||e!==t&&!e.startsWith(`${t}/`)?!1:hr(e,t)!==null}function IE(){return typeof window>`u`?``:Mn(window.location.pathname)[0]}function LE(e){return e.split(`/`).filter(Boolean)}function RE(e){let t=LE(e),n=LE(IE());return n.length===0||n.some((e,n)=>t[n]!==e)?t:t.slice(n.length)}function zE(e){if(e.includes(`__openclaw__`)||e.includes(`__openclaw`))return!0;let t=e[0];return!t||cD.has(t)?!0:lD.some(t=>t.every((t,n)=>e[n]===t))}function BE(e,t){if(sD.has(e))return!0;let n=t[0];return n?oD.has(n):!1}function VE(e){let t=e.trim();if(!t.startsWith(`/`)||t.startsWith(`//`))return e;try{let n=new URL(t,aD);if(n.origin!==aD)return e;let r=n.pathname.replace(/\/+$/,``)||`/`;if(FE(r))return e;let i=LE(r);return zE(RE(r))?e:BE(r,i)?n.href:e}catch{return e}}function HE(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(HE)}function UE(e=$E){let t=tD.get(e);if(t)return t;let n=Pl(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=VE(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(Pd(t.href))for(let t of[e,...e.querySelectorAll(`[title]`)]){let e=t.getAttribute(`title`),n=!t.matches(`progress`)&&HE(t);e&&!n&&!t.getAttribute(`aria-label`)?.trim()&&t.setAttribute(`aria-label`,e),t.removeAttribute(`title`)}if(t.origin===window.location.origin&&FE(t.pathname)){e.removeAttribute(`rel`),e.removeAttribute(`target`);return}}catch{}e.setAttribute(`rel`,`noreferrer noopener`),e.setAttribute(`target`,`_blank`)}),tD.set(e,n),n}function WE(e){let t=e.truncated?`\n\n${j(`chat.markdown.truncated`,{total:String(e.total),shown:String(e.text.length)})}`:``;return`${e.text}${t}`}function GE(e,t,n){let r=UE(t.progressBars?eD:$E),i=t.mode===`document`,a=i?{text:e,truncated:!1,total:e.length}:le(e,nD),o=t.progressBars?oE(WE(a)):WE(a);if(n??UC(a.text))return r.sanitize(iw(o,``,t,{blockArt:!0}));if(!i&&a.text.length>4e4)return r.sanitize(YE(o,t));let s;try{s=dD.render(o,t)}catch(e){console.warn(`[markdown] md.render failed, falling back to plain text:`,e),s=YE(o,t)}return r.sanitize(s)}function KE(e,t){return UE().sanitize(iw(e.text,`json`,NC(t),{json:e}).replaceAll(`\r`,` `)).replaceAll(`\r`,` `)}function qE(e,t={}){let n=NC(t),r=n.mode===`document`||e.length<=4e4?Nw(e,n.humanMentions,dD.utils.normalizeReference):{source:e,tokens:[]};n.humanMentionTokens=r.tokens;let i=HC(Al(r.source));if(!i.trim())return``;if(i.length>iD)return GE(i,n);let a=`${JE(n)}\0${i}`,o=uD.get(a)??GE(i,n);if(uD.delete(a),uD.set(a,o),uD.size>rD){let e=uD.keys().next().value;e&&uD.delete(e)}return o}function JE(e){return`${lt.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${jw(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 YE(e,t){return EC(Pw(HC(e),t.humanMentionTokens),t.assistantTranscriptRoleHeaders)}function XE(e,t={},n){let r=NC(t);if(r.humanMentions.length)return[qE(e,t),``];let i=PE(e,n);if(UC(i))return[``,GE(i,r)];if(!i.trim())return[``,``];let a=le(i,nD),o=WE(a),{boundary:s,tailRepairStart:c}=xE(o,n,a.text.length),l=o.slice(0,s),u=o.slice(s),d=hE(n),f=d?.rendered,p=JE(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(`<`)&&!UC(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=GE(g,{...r});h=h.length>0&&UC(g)||r.fileLinks&&h.includes(`class="markdown-file-link"`)&&e.includes(`class="markdown-file-link"`)?GE(l,{...r}):h+e}if(d&&(d.rendered={options:p,markdown:l,html:h}),!u.trim())return[h,``];let _=c===null?GE(u,{...r,streamingOpenFence:!0},!1):GE(SE(u,c-s),r,!1);return[h,_]}var ZE,QE,$E,eD,tD,nD,rD,iD,aD,oD,sD,cD,lD,uD,dD;function fD(){return(fD=e((()=>{Gl(),Do(),Tl(),Sr(),Dn(),v(),Ne(),Fd(),OC(),uw(),kw(),Iw(),iE(),uE(),PC(),NE(),KC(),ZE=`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(`.`),QE=`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(`.`),$E={ALLOWED_TAGS:ZE,ALLOWED_ATTR:QE,ADD_DATA_URI_TAGS:[`img`]},eD={...$E,ALLOWED_TAGS:[...ZE,`progress`],ALLOWED_ATTR:[...QE,`value`,`max`]},tD=new Map,nD=14e4,rD=500,iD=5e4,aD=`https://docs.openclaw.ai`,oD=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(`.`)),sD=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(`,`)),cD=new Set([`__openclaw`,`__openclaw__`,`_next`,`api`,`assets`,`avatar`,`manifest.json`,`media`,`res`,`socket.io`,`static`,`ws`,...To]),lD=[[`plugins`,`diffs`],[`plugins`,`diffs-language-pack`]],uD=new Map,dD=XT()})))()}function pD(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=vo(e),i=vo(r);t&&i&&(n[t]=i)}return n}function mD(e){let t=vo(e?.agentId);if(!t)return{avatar:null};let n=E();try{let e=n?.getItem(gD);if(!e)return{avatar:null};let r=pD(e);return{avatar:Object.hasOwn(r,t)?r[t]??null:null,agentId:t}}catch{return{avatar:null}}}async function hD(e,t){let n=await mt(e,t);if(!n)return null;let r=Je(n),i=mD({agentId:r.agentId}).avatar;return i?{...r,avatar:i,avatarSource:i,avatarStatus:`data`,avatarReason:null}:r}var gD;function _D(){return(_D=e((()=>{xt(),wt(),gD=`openclaw.control.assistant.v1`})))()}function vD(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),`${os(t)}/__openclaw__/assistant-media?${a.toString()}`}function yD(){return(yD=e((()=>{go()})))()}function bD(e,t){e instanceof Ps&&e.updateComplete.then(()=>{let n=e.shadowRoot?.querySelector(`[role="tablist"]`);e.isConnected&&n instanceof HTMLElement&&n.setAttribute(`aria-label`,t)})}function xD(){return(xD=e((()=>{Fs(),Rs(),Bs()})))()}function SD(e){e.currentTarget instanceof Element&&e.currentTarget.previousElementSibling?.setAttribute(`aria-expanded`,String(e.type===`wa-show`))}function CD(e){if(!(e instanceof Ms)||wD.has(e))return;wD.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 wD;function TD(){return(TD=e((()=>{Ws(),wD=new WeakSet})))()}function ED(e,t){let n=e,r=t;for(;r!==0;)[n,r]=[r,n%r];return n}function DD(e,t,n){let r=h(`${e}:offset`)%n,i=n===1?0:1+h(`${e}:stride`)%(n-1);for(;ED(i,n)!==1;)i=i%(n-1)+1;return(r+t*i)%n}var OD,kD,AD,jD;function MD(){return(MD=e((()=>{L(),z(),v(),O(),ml(),OD=[`shelling`,`scuttling`,`clawing`,`pinching`,`molting`,`bubbling`,`tiding`,`reefing`,`cracking`,`sifting`,`brining`,`nautiling`,`krilling`,`barnacling`,`lobstering`,`tidepooling`,`pearling`,`snapping`,`surfacing`],kD=3e4,AD=45e3,jD=class extends Se{constructor(...e){super(...e),this.startMs=null,this.seed=``,this.polling=new ac(this,1e3,()=>this.requestUpdate(),!1,`visible`)}connectedCallback(){super.connectedCallback(),this.syncTimer()}updated(){this.syncTimer()}syncTimer(){this.isConnected&&this.startMs!=null&&this.phrases?.length!==0?this.polling.start():this.polling.stop()}shouldUpdate(e){let t=this.currentPhrase(),n=t!==this.phrase;return this.phrase=t,!this.hasUpdated||e.size>0||n}currentPhrase(){if(this.startMs==null||this.phrases?.length===0)return;let e=Date.now()-this.startMs;if(e<kD)return;let t=e-kD,n=Math.floor(t/AD),r=DD(this.seed,n,this.phrases?.length??OD.length);return this.phrases?this.phrases[r]:j(`chat.progressLabels.${OD[r]}`)}render(){return this.phrase===void 0?I:F`<span>·</span> ${this.phrase}…`}},U([V({type:Number})],jD.prototype,`startMs`,void 0),U([V()],jD.prototype,`seed`,void 0),U([V({attribute:!1})],jD.prototype,`phrases`,void 0),customElements.get(`openclaw-working-phrase`)||customElements.define(`openclaw-working-phrase`,jD)})))()}function ND(){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 PD(e){let t=X(e);return t*t*(3-2*t)}function FD(e){let t=X(e);return PD(t<.5?t*2:(1-t)*2)}function ID(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 LD(e){let t=ND();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 RD(e){return e?BD:zD}var zD,BD;function VD(){return(VD=e((()=>{zD={gradientTop:`#ff4d4d`,gradientBottom:`#991b1b`,antenna:`#ff4d4d`},BD={gradientTop:`#ff7079`,gradientBottom:`#ea4c59`,antenna:`#ef4b58`}})))()}function Z(e,t){let n=e/t%1;return n<0?n+1:n}function HD(e,t,n){let r=X(e);return r<t?PD(r/t):r>n?PD((1-r)/(1-n)):1}var UD,WD,GD,Q,KD,qD,JD,YD,XD;function ZD(){return(ZD=e((()=>{VD(),UD=(1n<<64n)-1n,WD=11400714819323198485n,GD=2685821657736338717n,Q=Math.PI*2,KD=.16,qD={wave:1.5,hop:.7,celebrate:2.4,sigh:1.8,yawn:2,wipeBrow:2,clawSnap:.6,donHardHat:1},JD={idle:null,curious:null,thinking:null,attentive:null,happy:`hop`,celebrating:`celebrate`,sad:`sigh`,sleepy:`yawn`,working:`donHardHat`},YD=class{constructor(e){let t=BigInt.asUintN(64,BigInt(e));this.state=t===0n?WD: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*GD&UD}unit(){return Number(this.next()>>11n)/9007199254740992}},XD=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 YD(e)}setMood(e,t){if(e===this.currentMood)return;this.currentMood=e,this.pendingGesture=null,this.activeGesture=null,this.rescheduleMoodBeat(t);let n=JD[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)/qD[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}),ID(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<=KD),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=ND();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*PD((e-.05)/.55);else if(e<.72){let t=X((e-.6)/.12);n.rightClawDegrees=-34+46*t*t}else n.rightClawDegrees=12-18*PD((e-.72)/.28);n.leftClawDegrees=4+2*Math.sin(Q*e);let r=FD(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)/KD;if(r<0||r>1)continue;let i=FD(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=HD(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=FD(X((r-.2)/.6));t.floatOffset+=-9*e,t.bodyStretch+=.045*e-.1*FD(X(r/.2))-.06*FD(X((r-.82)/.18)),t.mouthCurve=Math.max(t.mouthCurve,.4*e);break}case`celebrate`:{let e=HD(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*FD(r)),t.antennaDroop=0,t.glowScale=Math.max(t.glowScale,1+.2*e),t.effect=`sparkles`,t.effectPhase=r;break}case`sigh`:{let e=PD(X(r/.3)),n=PD(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=HD(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*FD(X(r/.7)),t.rightClawDegrees+=-8*FD(X((r-.25)/.7));break;case`donHardHat`:{let e=PD(X(r/.55));t.hardHat=Math.min(t.hardHat,e),r<.55&&(t.gaze={x:0,y:-.9*(1-r)}),t.bodyStretch-=.04*FD(X((r-.5)/.2));let n=FD(X((r-.7)/.3));t.leftClawDegrees+=-8*n,t.rightClawDegrees+=8*n;break}case`wipeBrow`:{let e=HD(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 QD(){return _O||(_O={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`)},_O)}function $D(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 eO(e){return e*Math.PI/180}function tO(e,t,n,r){e.save(),e.translate(n.x,n.y),e.rotate(eO(t)),e.translate(-n.x,-n.y),r(),e.restore()}function nO(e,t,n){let r=new Path2D;return r.ellipse(e.x,e.y,t,n,0,0,dO),r}function rO(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=fO,e.fill(nO({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=fO,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=pO,e.fill(nO(s,o,o)),e.restore()}function iO(e,t){if(e.fillStyle=fO,e.strokeStyle=fO,e.lineCap=`round`,t.mouthRound>.05){let n=1+3.2*t.mouthRound,r=1+4.2*t.mouthRound;e.fill(nO({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 aO(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(eO(-5)),e.translate(-60,-15);let i=e.createLinearGradient(60,3,60,16);i.addColorStop(0,hO),i.addColorStop(1,mO),e.fillStyle=i,e.fill(n),e.strokeStyle=gO,e.lineWidth=.8,e.stroke(n),e.fillStyle=mO,e.fill(r),e.stroke(r),e.restore()}function oO(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 sO(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=pO,e.lineWidth=Math.max(1.2,n*.16),e.lineCap=`round`,e.lineJoin=`round`,e.stroke(i),e.restore()}function cO(e,t,n){switch(t.effect){case`none`:return;case`sparkles`:for(let r=0;r<6;r+=1){let i=FD((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?pO:n.antenna,e.fill(oO(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||sO(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=eO(-160+n*35),o=5+12*r/.45,s=2.2+n%3*.8,c={x:X(106+Math.cos(a)*o,s,uO-s),y:X(66+Math.sin(a)*o,s,uO-s)};e.save(),e.globalAlpha*=i,e.fillStyle=n%2==0?pO:mO,e.fill(oO(c,s)),e.restore()}return;case`sweat`:{let n=FD(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 lO(e,t,n,r){let i=QD();if(n.save(),n.scale(r/uO,r/uO),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(eO(e.bodyTilt)),n.translate(-60,-60)),n.fillStyle=$D(n,i.body,t),n.fill(i.body.path),tO(n,e.leftClawDegrees,{x:26,y:53},()=>{n.fillStyle=$D(n,i.leftClaw,t),n.fill(i.leftClaw.path)}),tO(n,e.rightClawDegrees,{x:94,y:53},()=>{n.fillStyle=$D(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`,tO(n,-e.antennaDroop*40,{x:45,y:15},()=>{tO(n,a,{x:37.5,y:11},()=>n.stroke(i.leftAntenna))}),tO(n,e.antennaDroop*40,{x:75,y:15},()=>{tO(n,a,{x:82.5,y:11},()=>n.stroke(i.rightAntenna))}),aO(n,e.hardHat),rO(n,{x:45,y:35},e.leftEyeOpenness,e),rO(n,{x:75,y:35},e.rightEyeOpenness,e),iO(n,e),cO(n,e,t),n.restore()}var uO,dO,fO,pO,mO,hO,gO,_O;function vO(){return(vO=e((()=>{VD(),uO=120,dO=Math.PI*2,fO=`#050810`,pO=`#00e5cc`,mO=`#f2a833`,hO=`#ffd659`,gO=`rgba(184, 115, 31, 0.7)`,_O=null})))()}function yO(){return performance.now()/1e3}var bO,xO,SO;function CO(){return(CO=e((()=>{L(),z(),ZD(),vO(),VD(),Pr(),bO=120,xO=new Set([`idle`,`curious`,`thinking`,`working`,`happy`,`celebrating`,`sad`,`sleepy`,`attentive`]),SO=class extends as{constructor(...e){super(...e),this.mood=`idle`,this.size=bO,this.tease=!1,this.animator=new XD,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`),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(),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,yO()),this.animator.setTease(this.tease,yO()),this.drawCurrentFrame(yO()),this.syncPlayback()}updated(e){e.has(`size`)&&this.style.setProperty(`--openclaw-mascot-size`,`${this.resolvedSize}px`),e.has(`mood`)&&this.animator.setMood(this.resolvedMood,yO()),e.has(`tease`)&&this.animator.setTease(this.tease,yO()),this.drawCurrentFrame(yO()),this.syncPlayback()}render(){return Lr().mascot===`none`?F`<span class="openclaw-mascot--neutral">${Xn}</span>`:F`<canvas></canvas>`}get resolvedMood(){return xO.has(this.mood)?this.mood:`idle`}get resolvedSize(){return Number.isFinite(this.size)&&this.size>0?this.size:bO}get shouldAnimate(){return this.isConnected&&Lr().mascot===`claw`&&this.visible&&!this.reducedMotion&&document.visibilityState!==`hidden`}syncPlayback(){if(!this.renderRoot.querySelector(`canvas`)){this.stopAnimation();return}if(this.reducedMotion){this.stopAnimation(),this.drawPose(LD(this.resolvedMood));return}if(!this.shouldAnimate){this.stopAnimation();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?LD(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),lO(e,RD(document.documentElement.dataset.themeMode===`light`),n,r),t.style.transform=`translate3d(0, ${e.floatOffset*r/120}px, 0)`}},U([V({reflect:!0})],SO.prototype,`mood`,void 0),U([V({type:Number})],SO.prototype,`size`,void 0),U([V({type:Boolean})],SO.prototype,`tease`,void 0),customElements.get(`openclaw-mascot`)||customElements.define(`openclaw-mascot`,SO)})))()}function wO(e){let{snapshot:t,session:n,batchRows:r=null,cloudWorkerStopAction:i}=e,a=e=>{let n=Oe(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?ee(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),b=r?void 0:a({method:`sessions.create`,params:{parentSessionKey:n.key,fork:!0}}),x=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":j(`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}:{},...b?{fork:b}:{},...x?{"stop-cloud-worker":x}:{},...y?{delete:y}:{}}}function TO(){return(TO=e((()=>{v(),w()})))()}function EO(e){if(e.querySelector(`.agent-chat__composer-combobox`))return{cancel:()=>void 0,ready:Promise.resolve()};let{promise:t,resolve:n}=Lo(),r=()=>n();return e.addEventListener(Ce,r,{once:!0}),{cancel:()=>e.removeEventListener(Ce,r),ready:t}}async function DO(e){let{document:t,navigate:n,prefersReducedMotion:r,router:i,signal:a,to:o}=e,s=t.querySelector(`openclaw-router-outlet`),c=EO(t),l=!1,u,{promise:d,resolve:f}=Lo(),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?.(kO,AO),await Promise.race([u?.finished.catch(()=>void 0),d])}finally{m(),a?.removeEventListener(`abort`,p),c.cancel()}}async function OO(e){let{from:t,navigate:n,to:r}=e;return t!==`new-session`||r!==`chat`?n():DO(e)}var kO,AO;function jO(){return(jO=e((()=>{bo(),he(),kO=[{transform:`translateY(5px) scale(0.997)`},{transform:`none`}],AO={duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`}})))()}function MO(e,t={}){let n=[`settings-page`,t.wide?`settings-page--wide`:``,t.carapace?`oc-app-surface`:``].filter(Boolean).join(` `);return F`<div
class=${n}
${fr({settingsPage:!0,settingsWide:t.wide})}
>
${e}
</div>`}function NO(e,t){return F`<a href=${e} target=${Ka} rel=${Ba()}
>${t}</a
>`}function PO(e){let t=e.icon===`info`?N.info:N.circleQuestionMark;return F`
<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 FO(e){return F`<a
class="learn-more-link"
href=${e}
target=${Ka}
rel=${Ba()}
>${j(`common.learnMore`)}</a
>`}function IO(e){return F`
<section
class="content-header content-header--settings"
${fr({toolbarHeader:!0})}
>
<div>
<h1 class="page-title">${e.title}</h1>
${e.subtitle?F`<div class="page-subtitle">${e.subtitle}</div>`:I}
</div>
${e.actions&&e.actions!==I?F`<div class="page-header-actions">${e.actions}</div>`:I}
</section>
`}function LO(e,t){let n=e.description?F`<p class="settings-section__desc">${e.description}</p>`:I,r=e.title||e.description?F`
<div
class="settings-section__copy ${e.carapace?`oc-settings-section-heading`:``}"
>
${e.title?F`
<h2
class="settings-section__heading ${e.carapace?`oc-settings-section-title`:``}"
>
${e.title}${e.count===void 0?I:F` <span class="settings-count">${e.count}</span>`}
</h2>
`:I}
${n}
</div>
`:I,i=r||e.actions?F`
<div
class="settings-section__header ${e.carapace?`oc-settings-section-header`:``}"
>
${r}
${e.actions?F`<div class="settings-section__actions">${e.actions}</div>`:I}
</div>
`:I;return F`
<section class="settings-section ${e.carapace?`oc-settings-section`:``}">
${i} ${e.notice??I} ${zO(t,e)}
</section>
`}function RO(e){return F`<dl class="settings-summary">
${e.map(e=>F`<div class="settings-group settings-summary__tile">
<dt>${e.label}</dt>
<dd>${e.value}</dd>
</div>`)}
</dl>`}function zO(e,t={}){let n=[`settings-group`,t.danger?`settings-group--danger`:``,t.carapace?`oc-settings-group`:``].filter(Boolean).join(` `);return F`<div class=${n}>${e}</div>`}function BO(e,t,n=!1){return F`
<div class="settings-row__text ${n?`oc-settings-row-content`:``}">
<span class="settings-row__title ${n?`oc-settings-row-title`:``}">${e}</span>
${t?F`<span class="settings-row__desc ${n?`oc-settings-row-description`:``}"
>${t}</span
>`:I}
</div>
`}function VO(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 F`
<div class=${t} role=${e.role??I}>
${BO(e.title,e.description,e.carapace)}
${e.control!==void 0&&e.control!==I?F`<div
class="settings-row__control ${e.carapace?`oc-settings-row-control`:``}"
>
${e.control}
</div>`:I}
</div>
`}function HO(e){return F`
<button type="button" class="settings-row settings-row--nav" @click=${e.onClick}>
${BO(e.title,e.description)}
<div class="settings-row__control">
${e.control??I}
<span class="settings-row__chevron">${N.chevronRight}</span>
</div>
</button>
`}function UO(e){return F`
<wa-switch
class="settings-toggle"
size="s"
.checked=${li(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 WO(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 F`
<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} ${BO(e.title,e.description)}
<div class="settings-row__control">
<wa-switch
class="settings-toggle"
size="s"
.checked=${li(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 GO(e,t){return t?F`${j(`configForm.defaultValue`,{value:e})}`:void 0}function KO(e){return e.mode===`buttons`?F`<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=>F`<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>`:F`
<wa-radio-group
class="settings-segmented ${e.className??``}"
size="s"
aria-describedby=${e.descriptionId??I}
orientation="horizontal"
.value=${li(e.value)}
?disabled=${li(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?F`<span slot="label" class="settings-control__sr-label">${e.ariaLabel}</span>`:I}
${e.options.map(t=>F`
<wa-radio
class="settings-segmented__btn ${t.value===e.value?`settings-segmented__btn--active`:``}"
appearance="button"
value=${t.value}
.checked=${li(t.value===e.value)}
?disabled=${li(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 qO(e){let t=e.kind===`muted`?``:` settings-status--${e.kind}`;return F`
<span
class="settings-status${t}${e.carapace?` oc-status ${QO[e.kind]}`:``}"
>
${e.dot===!1?I:F`<span
class="settings-status__dot ${e.carapace?`oc-status-indicator`:``}"
></span>`}
<span class=${e.carapace?`oc-status-label`:``}>${e.label}</span>
</span>
`}function JO(e,t={}){let n=t.mono?`settings-row__value settings-row__value--mono`:`settings-row__value`;return F`<span class=${n}>${e}</span>`}function YO(e,t={}){return t.carapace?F`<div class="settings-empty oc-empty">
<div class="oc-empty-content"><p class="oc-empty-description">${e}</p></div>
</div>`:F`<div class="settings-empty">${e}</div>`}function XO(e={}){let t=Math.max(1,e.rows??3);return F`
<div
class="settings-loading-skeleton"
role="status"
aria-busy="true"
aria-label=${e.label??j(`common.loading`)}
>
<div class="settings-loading-skeleton__rows" aria-hidden="true">
${Array.from({length:t},(t,n)=>F`
<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 ZO(e){return F`
<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?N.eye:N.eyeOff}
</button>
</openclaw-tooltip>
</span>
`}var QO;function $O(){return($O=e((()=>{Hs(),Is(),Vs(),L(),pi(),jr(),v(),Ra(),P(),Yt(),QO={accent:`oc-status-info`,danger:`oc-status-error`,muted:``,ok:`oc-status-success`,warn:`oc-status-warning`}})))()}function ek(){return typeof window<`u`&&window.event!==void 0}function tk(e){return e.connected&&e.directComposerSend&&!e.isCommand&&(e.message.trim().length>0||e.hasAttachments)}function nk(e){try{e.setItem(ik,`1`)}catch{}}function rk(e){let t;try{if(t=localStorage,t.getItem(ik)!==null)return}catch{return}let n=e.nativeNotifications;if(n){if(n.snapshot.permission!==`notDetermined`)return;nk(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){nk(t);try{Notification.requestPermission().then(t=>{t===`granted`&&e.webPush.run({kind:`enable`})}).catch(()=>{})}catch{}}}var ik;function ak(){return(ak=e((()=>{ik=`openclaw.control.notificationsAutoPrompt.v1`})))()}function ok(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`)lk(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;lk(t.move((t.index+n)%t.count))}else(e.key===`Enter`||e.key===`Tab`)&&t.select(e.key)}return!0}function sk(e){return F`<div
id=${e.id}
class="slash-menu ${e.className??``}"
role="listbox"
aria-label=${e.label}
${dk(e.activeId)}
>
<div class="slash-menu__scroll" ${nC(!1,e.trackScroll)}>
${e.content}
</div>
</div>`}function ck(e){return F`<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 lk(e){e&&requestAnimationFrame(()=>{let t=document.getElementById(e),n=t?.closest(`.slash-menu__scroll`);t&&n&&$S(n,t)})}var uk,dk;function fk(){return(fk=e((()=>{L(),Jr(),rC(),uk=class extends vi{render(e){return I}update(e,[t]){return t!==this.activeId&&(this.activeId=t,lk(t??null)),I}},dk=ei(uk)})))()}var pk,mk;function hk(){return(hk=e((()=>{QS(),pk=[`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`],mk=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 pk)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),YS(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 gk(e){e.currentTarget.querySelector(`.chat-copy-btn`)?.click()}function _k(e,t=`inline`){let n=j(`connection.help.copyCommand`);return F`
<openclaw-tooltip .content=${n}>
<div
class=${t===`hero`?`login-gate__command login-gate__command--hero`:`login-gate__command`}
role="button"
tabindex="0"
aria-label=${j(`connection.help.copyCommandAria`,{command:e})}
@click=${e=>{e.target?.closest(`.chat-copy-btn`)||gk(e)}}
@keydown=${e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),gk(e))}}
>
<code translate="no">${e}</code>
${gC(e,n)}
</div>
</openclaw-tooltip>
`}function vk(){return(vk=e((()=>{L(),v(),bC(),Yt()})))()}function yk(e,t){return e>t?j(`execApproval.expiresIn`,{time:_e(e,t,!0)}):j(`execApproval.expired`)}function bk(e,t,n){return t?F`<div class="exec-approval-meta-row">
<span>${e}</span><span>${n?.path?Ut(t):t}</span>
</div>`:I}function xk(e){let t=Dl([...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(F`<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)),F`<div class="exec-approval-command mono">${n}</div>`}function Sk(e){return F`<details class="exec-approval-details">
<summary>${j(`execApproval.details`)}</summary>
<div class="exec-approval-meta">${e}</div>
</details>`}function Ck(e,t){return t?F`<span class="exec-approval-chip mono" data-approval-chip=${e}>${t}</span>`:I}function wk(e,t){return F` ${xk(e)}
${e.scope?F`<div class="exec-approval-scope">${$b(e.scope)}</div>`:I}
<div class="exec-approval-meta">
${bk(j(`execApproval.labels.host`),e.host)}
${bk(j(`execApproval.labels.cwd`),e.cwd,{path:!0})}
</div>
${Sk(F`
${bk(j(`execApproval.labels.resolved`),e.resolvedPath,{path:!0})}
${bk(j(`execApproval.labels.security`),e.security)}
${bk(j(`execApproval.labels.ask`),e.ask)}
${t===`modal`?bk(j(`execApproval.labels.session`),e.sessionKey):I}
`)}`}function Tk(e,t){return F` ${e.pluginDescription?F`<pre class="exec-approval-command mono">${e.pluginDescription}</pre>`:I}
${e.pluginDetail?F`<pre class="exec-approval-command mono" dir="ltr">${e.pluginDetail}</pre>`:I}
${t===`modal`&&e.request.sessionKey?Sk(F`${bk(j(`execApproval.labels.session`),e.request.sessionKey)}`):I}`}function Ek(e,t){if(t.kind===`plugin`&&Array.isArray(t.pluginActions)){for(let n of t.pluginActions)if(Ko(n)&&n.kind===`decision`&&n.decision===e){let e=vo(n.label);if(e)return e}}return j(e===`allow-once`?`execApproval.allowOnce`:e===`allow-always`?t.kind===`exec`?`execApproval.alwaysAllowHere`:`execApproval.alwaysAllow`:`execApproval.deny`)}function Dk(e){return e===`allow-once`?`btn primary`:e===`deny`?`btn danger`:`btn`}function Ok(e){return e===`allow-once`?`Ctrl/Cmd+Enter`:e===`allow-always`?`Ctrl/Cmd+Shift+Enter`:`Ctrl/Cmd+D`}function kk(e){return e.request.allowedDecisions?.length?e.request.allowedDecisions:e.kind===`exec`&&e.request.ask===`always`?[`allow-once`,`deny`]:Nk}function Ak(e){return e.kind===`exec`?j(`execApproval.execApprovalNeeded`):e.pluginTitle??j(`execApproval.pluginApprovalNeeded`)}function jk(e){let t=e.approval,n=Date.now(),r=t.expiresAtMs<=n,i=ex(t.request.command),a=t.request.sessionKey?.trim(),o=e.sessionTitle??(a?ve(a):Ak(t)),s=r||t.expiresAtMs-n<12e4,c=yk(t.expiresAtMs,n),l=j(`execApproval.reviewOnly`),u=!e.canGrant&&e.error===l;return F`<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"
>${N.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?F`<div class="exec-approval-scope">
${$b(t.request.scope)}
</div>`:I}
<div
class="sidebar-approval-row__actions"
role="group"
aria-label=${j(`approvalPage.actionsLabel`)}
>
${kk(t).map(n=>{let a=Ek(n,t);return F`<button
type="button"
class="btn btn--xs ${n===`deny`?`btn--ghost`:``} sidebar-approval-row__action sidebar-approval-row__action--${n}"
aria-label=${j(`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?F`<a
class="sidebar-approval-row__open-session"
href=${e.openSessionHref}
aria-label=${j(`sessionsView.openSession`)}
title=${j(`sessionsView.openSession`)}
@click=${e.onOpenSession}
>
${N.arrowUpRight}
</a>`:I}
</div>
${e.canGrant?I:F`<div class="sidebar-approval-row__message" role=${u?`alert`:`note`}>
${l}
</div>`}
${e.error&&!u?F`<div
class="sidebar-approval-row__message sidebar-approval-row__message--error"
role="alert"
>
${e.error}
</div>`:I}
</div>
</article>`}function Mk(e){let t=e.approval,n=kk(t),r=j(`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 F` <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">${Ak(t)}</div>
${s||c?F`<div class="exec-approval-chips">
${Ck(`plugin`,s)} ${Ck(`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?F`<div class="exec-approval-queue">
${j(`execApproval.pending`,{count:String(e.queueCount)})}
</div>`:I}
</div>
${e.variant===`inline`&&t.sourceSessionKey?F`<div class="exec-approval-warning" role="note">
${j(`execApproval.requestedBySession`,{session:ve(t.sourceSessionKey,e.sourceSession)})}
</div>`:I}
${t.kind===`exec`?wk(t.request,e.variant):Tk(t,e.variant)}
${t.kind===`exec`&&!n.includes(`allow-always`)?F`<div class="exec-approval-warning">${j(`execApproval.allowAlwaysUnavailable`)}</div>`:I}
${e.canGrant?I:F`<div
class=${i?`exec-approval-error`:`exec-approval-warning`}
role=${i?`alert`:`note`}
>
${r}
</div>`}
${e.error&&!i?F`<div class="exec-approval-error" role="alert">${e.error}</div>`:I}
<div class="exec-approval-actions">
${n.map(n=>{let r=Ek(n,t);return F`<button
class=${Dk(n)}
type="button"
aria-label=${r}
?disabled=${e.busy||!e.canGrant}
title=${e.variant===`modal`&&e.canGrant?`${r} (${Ok(n)})`:r}
@click=${()=>e.onDecision(t.id,n)}
>
<span>${r}</span>
</button>`})}
</div>
</div>`}var Nk,Pk;function Fk(){return(Fk=e((()=>{L(),z(),tx(),v(),Ne(),Ve(),O(),ml(),P(),Nk=[`allow-once`,`allow-always`,`deny`],Pk=class extends Se{constructor(...e){super(...e),this.expiresAtMs=0,this.compact=!1,this.polling=new ac(this,1e3,()=>{this.requestUpdate(),this.compact||this.closest(`openclaw-modal-dialog`)?.setAttribute(`description`,yk(this.expiresAtMs,Date.now()))},!1)}connectedCallback(){super.connectedCallback(),this.polling.start()}render(){let e=Date.now();return F`${this.compact?_e(this.expiresAtMs,e,!0):yk(this.expiresAtMs,e)}`}},U([V({type:Number})],Pk.prototype,`expiresAtMs`,void 0),U([V({type:Boolean})],Pk.prototype,`compact`,void 0),customElements.get(`openclaw-approval-countdown`)||customElements.define(`openclaw-approval-countdown`,Pk)})))()}async function Ik(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 Lk(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 Rk(e,t){return e?.matches(`:fullscreen`)?(t.preventDefault(),t.stopPropagation(),e.ownerDocument.exitFullscreen().catch(()=>void 0),!0):!1}function zk(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 Bk;function Vk(){return(Vk=e((()=>{Bk=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(Ik).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(Ik).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 Hk(e,t){let n=Wk.find(({combo:t})=>Pt(t,e));if(!n)return!1;let r=t?.getScale()??1;if(t&&r>1){e.preventDefault(),e.stopPropagation();let i=Uk/r;t.pan(n.x*i,n.y*i,{relative:!0,animate:!1})}return!0}var Uk,Wk;function Gk(){return(Gk=e((()=>{Ge(),Uk=48,Wk=[{combo:Ue.imagePanLeft,x:-1,y:0},{combo:Ue.imagePanRight,x:1,y:0},{combo:Ue.imagePanUp,x:0,y:-1},{combo:Ue.imagePanDown,x:0,y:1}]})))()}var Kk;function qk(){return(qk=e((()=>{L(),Kk=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 Jk(e){return e.split(`;`,1)[0]?.trim().toLowerCase()??``}function Yk(e){let t=/^data:([^,]*)/i.exec(e)?.[1];return t===void 0?void 0:Jk(t)}function Xk(e,t,n,r,i){return F`<button
class=${`action `+e}
type="button"
aria-label=${j(t)}
aria-disabled=${n}
@click=${r}
>
${i}
</button>`}var Zk,Qk,$k,eA,tA,nA,$;function rA(){return(rA=e((()=>{zs(),L(),z(),El(),v(),O(),P(),Vk(),Gk(),qk(),Nn(),Zk=4,Qk=2.5,$k=56,eA=8,tA=180,nA=[`src`,`originalSrc`,`gallery`,`loadFullResolution`,`connectVideo`,`imageWidth`,`imageHeight`,`mediaKind`],$=class extends Mt{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.imageReady=!1,this.galleryController=new Bk(()=>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(Qk,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`||Lk(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))<eA)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)>=$k&&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`&&Rk(this.video,e)||Hk(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}zk(e,this.focusables)},this.emitClose=e=>{e?.type===`modal-cancel`&&Rk(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=Kk}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&&nA.some(t=>e.has(t))&&(this.cancelSwipe(),this.resetGallery())}updated(e){if(!this.isConnected)return;let t=nA.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()||j(`chat.imageLightbox.untitled`),t=this.mediaKind===`video`?j(`chat.mediaPlayer.videoPreview`,{title:e}):j(`chat.imageLightbox.label`,{title:e}),n=this.mediaKind===`video`?j(`chat.mediaPlayer.closeVideoPreview`):j(`chat.imageLightbox.close`),r=this.imageReady&&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 F`
<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?F`
<a
class="action open-original"
href=${this.openOriginalUrl||I}
aria-disabled=${!this.openOriginalUrl}
tabindex=${this.openOriginalUrl?0:-1}
target="_blank"
rel="noreferrer"
aria-label=${j(`chat.imageLightbox.openOriginal`)}
>
<span class="open-original-label">
${j(`chat.imageLightbox.openOriginal`)}
</span>
<span class="open-original-icon" aria-hidden="true">
${N.externalLink}
</span>
</a>
`:I}
<button
class="action close"
type="button"
autofocus
aria-label=${n}
@click=${this.emitClose}
>
${N.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`?F`<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>`:F`<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?F`
${Xk(`navigation previous`,this.mediaKind===`video`?`common.previous`:`chat.imageLightbox.previous`,!this.galleryController.canMove(-1)||this.galleryController.busy,()=>this.navigate(-1),N.chevronLeft)}
${Xk(`navigation next`,this.mediaKind===`video`?`common.next`:`chat.imageLightbox.next`,!this.galleryController.canMove(1)||this.galleryController.busy,()=>this.navigate(1),N.chevronRight)}
<p
class="gallery-counter"
dir="ltr"
role="status"
aria-live="polite"
aria-atomic="true"
>
${j(`chat.imageLightbox.position`,{current:String(this.galleryController.index+1),total:String(this.galleryController.count)})}
</p>
${this.galleryController.failed?F`<p class="gallery-error" role="alert">${j(`chat.imageLightbox.loadFailed`)}</p>`:I}
`:I}
${this.mediaKind===`video`&&this.galleryController.videoStatus!==`ready`?F`<p class="gallery-error" role="status">
${this.galleryController.videoStatus===`preparing`?j(`chat.mediaPlayer.preparing`):j(`chat.attachments.previewUnavailable`)}
${this.galleryController.videoStatus===`unavailable`&&this.galleryController.videoRetryable?F`<button class="action" @click=${()=>this.galleryController.retryVideo()}>${j(`common.retry`)}</button>`:I}
</p>`:I}
${this.mediaKind===`image`?F`<div class="zoom-controls">
${Xk(`zoom-control`,`chat.imageLightbox.zoomOut`,!r||this.scale<=1,this.zoomOut,`−`)}
${Xk(`zoom-control zoom-level`,`chat.imageLightbox.resetZoom`,!r||this.scale===1,this.resetZoom,F`${Math.round(this.scale*100)}%`)}
${Xk(`zoom-control`,`chat.imageLightbox.zoomIn`,!r||this.scale>=Zk,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=Us(e,{duration:this.motionQuery?.matches?0:200,maxScale:Zk,minScale:1,panOnlyWhenZoomed:!0}),e.addEventListener(`panzoomchange`,this.handlePanzoomChange),t.addEventListener(`wheel`,this.handleWheel,{passive:!1}),this.imageReady=!0)}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,this.imageReady=!1}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:tA,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?Yk(n):void 0;if(!i||o&&Ol.has(o)){this.resolvingOriginal=!0;try{let t=await(await fetch(n)).blob();if(!this.isConnected||e!==this.originalUrlRequest||!Ol.has(Jk(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([ai(`.slide`)],$.prototype,`slide`,void 0),U([ai(`.stage`)],$.prototype,`stage`,void 0),U([ai(`.video`)],$.prototype,`video`,void 0),U([ai(`.image`)],$.prototype,`image`,void 0),U([di(`.action, video[controls]`)],$.prototype,`focusables`,void 0),U([R()],$.prototype,`openOriginalUrl`,void 0),U([R()],$.prototype,`resolvingOriginal`,void 0),U([R()],$.prototype,`scale`,void 0),U([R()],$.prototype,`imageReady`,void 0),customElements.get(`openclaw-image-lightbox`)||customElements.define(`openclaw-image-lightbox`,$)})))()}var iA=t({});function aA(e){for(let t of e)for(let e of t.addedNodes)if(e instanceof Element&&(e.matches(lS)||e.querySelector(lS))){lA.define();return}}async function oA(e,t){if(t===`pointer`&&(e instanceof PointerEvent&&e.pointerType===`touch`||!globalThis.matchMedia?.(`(hover: hover)`).matches))return;let n=oS(e);if(!n||!lA.providerFor(n))return;await lA.define();let r=e.target;r instanceof EventTarget&&n.isConnected&&xn(n,t,!0)&&r.dispatchEvent(new Event(t===`pointer`?`pointerover`:`focusin`,{bubbles:!0,composed:!0}))}var sA,cA,lA;function uA(){return(uA=e((()=>{Kr(),pS(),hs(),sA=`openclaw-session-progress-hovercard-provider`,cA=null,lA=new dn({tag:sA,load:async()=>(await W(async()=>{let{SessionProgressHovercardProvider:e}=await import(`./session-progress-hovercard.runtime-oAnqBSz3.js`);return{SessionProgressHovercardProvider:e}},__vite__mapDeps([30,0,1,2,10,9,8,11,12,13,31,32,3,4,5,14,15,16,33,34]),import.meta.url)).SessionProgressHovercardProvider,onDefined:()=>{cA?.disconnect(),cA=null}}),lA.install(oA),customElements.get(sA)||(cA=new MutationObserver(aA),cA.observe(document,{childList:!0,subtree:!0}),document.querySelector(lS)&&lA.define())})))()}var dA;function fA(){return(fA=e((()=>{L(),z(),Sr(),Bn(),v(),O(),cv(),Yt(),dA=class extends Se{constructor(...e){super(...e),this.basePath=``,this.gatewayVersion=null,this.updateAttentionDismissed=!1,this.variant=`compact`}render(){let e=this.variant===`settings`?iv(Ar,this.gatewayVersion):this.variant===`identity`?this.updateAttentionDismissed?iv(Ar,this.gatewayVersion):rv(Ar):tv(Ar);return!e&&!this.updateAttentionDismissed?I:F`
<openclaw-tooltip class="sidebar-hover-tooltip" .delay=${600} .closeDelay=${300}>
<a
class="sidebar-footer-build"
href=${wn(`about`,this.basePath)}
role=${this.variant===`identity`?`menuitem`:I}
aria-label=${this.updateAttentionDismissed?`${j(`aboutPage.artifactDetails`)}. ${j(`updates.sidebar.availableTitle`)}`:j(`aboutPage.artifactDetails`)}
@click=${e=>{x(e)&&(e.preventDefault(),this.onNavigate?.(`about`))}}
>${e?F`<span class="sidebar-footer-build__text">${e}</span>`:I}
${this.updateAttentionDismissed?F`<span class="agent-select__badge sidebar-footer-build__update"
>${j(`updates.sidebar.availableTitle`)}</span
>`:I}</a
>
<div slot="content" class="sidebar-hover-card sidebar-build-hover-card">
${av(Ar,this.gatewayVersion)}
</div>
</openclaw-tooltip>
`}},U([V({attribute:!1})],dA.prototype,`basePath`,void 0),U([V({attribute:!1})],dA.prototype,`gatewayVersion`,void 0),U([V({attribute:!1})],dA.prototype,`updateAttentionDismissed`,void 0),U([V({attribute:!1})],dA.prototype,`onNavigate`,void 0),U([V({attribute:!1})],dA.prototype,`variant`,void 0),globalThis.customElements&&!customElements.get(`openclaw-sidebar-build-chip`)&&customElements.define(`openclaw-sidebar-build-chip`,dA)})))()}function pA(e,t,n){if(!n||_A?.hubId!==e||_A.tab!==t)return;let r=_A;if(Date.now()-r.at>hA){_A=null;return}window.setTimeout(()=>{if(_A!==r)return;_A=null;let e=document.activeElement;n.isConnected&&Date.now()-r.at<=hA&&(e===r.source||e===document.body||e===document.documentElement)&&n.focus()},0)}function mA(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 F`
<wa-tab-group
class=${r}
aria-label=${e.ariaLabel}
.active=${e.active??gA}
activation="manual"
without-scroll-controls
${Xr(t=>bD(t,e.ariaLabel))}
>
${e.tabs.map(t=>{let r=e.active===t.value;return F`
<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(),_A={hubId:e.id,tab:t.value,at:Date.now(),source:i},e.onSelect(t.value),e.onActivate?.(i))}}
${r?Xr(n=>pA(e.id,t.value,n)):I}
>
${t.label}${t.count==null?I:F`<span class="hub-tab__badge hub-tab__badge--count">${t.count}</span>`}${t.badge==null?I:F`<span class="hub-tab__badge">${t.badge}</span>`}
</wa-tab>
`})}
</wa-tab-group>
`}var hA,gA,_A;function vA(){return(vA=e((()=>{L(),Qr(),xD(),hA=2e3,gA=`__openclaw-hub-tabs-no-active__`,_A=null})))()}var yA;function bA(){return(bA=e((()=>{yo(),L(),z(),Ne(),O(),ml(),yA=class extends p{constructor(...e){super(...e),this.timestampMs=null,this.polling=new ac(this,6e4,()=>this.requestUpdate(),!1,`visible`)}connectedCallback(){super.connectedCallback(),this.polling.start(),this.requestUpdate()}render(){let e=xs(this.timestampMs);return e===void 0?I:F`<time
datetime=${new Date(e).toISOString()}
title=${ie(e)}
>${It(e)}</time
>`}},U([V({attribute:!1})],yA.prototype,`timestampMs`,void 0),customElements.get(`openclaw-relative-time`)||customElements.define(`openclaw-relative-time`,yA)})))()}function xA(e,t,n){if(!t)return I;let r=j(`attention.dismissItem`,{item:e});return F`<button
type="button"
class="sidebar-issues-panel__dismiss"
aria-label=${r}
aria-busy=${n?`true`:I}
title=${n?j(`attention.mentions.dismissing`):r}
?disabled=${n}
@click=${e=>{e.preventDefault(),e.stopPropagation(),t()}}
>
${N.x}
</button>`}function SA(e){return F`<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:F`
<span aria-hidden="true">·</span>
<openclaw-relative-time
class="sidebar-issues-panel__age"
.timestampMs=${e.timestampMs}
></openclaw-relative-time>
`}
</span>
</span>
${xA(e.title,e.onDismiss,e.dismissing)}
<span class="sidebar-issues-panel__chevron" aria-hidden="true">${N.chevronRight}</span>
</summary>
<div class="sidebar-issues-panel__body ${e.bodyClass??``}">${e.body}</div>
</details>`}function CA(){return(CA=e((()=>{L(),v(),P(),bA()})))()}function wA(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=j(`attention.mentions.from`,{sender:t.senderLabel}),a=Ee({face:`chat`,sessionKey:t.sessionKey,fallbackAgentId:t.agentId,basePath:n.basePath,row:{key:t.sessionKey,displayName:t.sessionTitle},exactKey:!0});return F`<article
class="sidebar-mention-row"
data-attention-kind="mention"
data-mention-id=${t.id}
aria-label=${i}
>
${si(t.id,SA({title:t.sessionTitle,detail:i,timestampMs:t.createdAt,icon:F`<openclaw-viewer-avatar
.user=${r}
.markAsViewer=${!1}
variant="footer"
></openclaw-viewer-avatar>`,onDismiss:e.onDismiss,dismissing:e.dismissing,body:F`
${t.excerpt?F`<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))}}
>${j(`attention.mentions.open`)}</a
>
</div>
`}))}
</article>`}function TA(e){let t=e.context,n=t.overlays.snapshot,r=e.approval.request.sessionKey?.trim(),i=r?t.sessions.state.result?.sessions.find(e=>k(e.key,r)):void 0,a=r?Ee({context:t,face:`chat`,sessionKey:r}):null;return jk({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 EA(e){let t=e.context,n=t.overlays.snapshot,r=t.gateway.snapshot;return F`<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=${H(r,`update.run`,`operator.admin`)}
.canHoldUpdate=${H(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 DA(e){switch(e.phase){case`guidance`:return j(`connection.scopeUpgrade.guidance`);case`available`:return j(`connection.scopeUpgrade.limited`);case`requesting`:return j(`connection.scopeUpgrade.requesting`);case`pending`:return j(`connection.scopeUpgrade.pending`,{command:`openclaw devices approve ${e.requestId}`});case`rejected`:return j(e.expired?`connection.scopeUpgrade.expired`:`connection.scopeUpgrade.rejected`);case`error`:return j(`connection.scopeUpgrade.error`,{error:e.message})}return e}function OA(e){if(e.state.phase===`hidden`)return I;let t=DA(e.state),n=j(`connection.scopeUpgrade.inboxState`),r=e.state.phase===`error`?e.state.retryable:e.state.phase===`pending`||e.state.phase===`rejected`;return F`<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">${N.shieldQuestion}</span>
<span class="sidebar-issues-panel__content">
<span class="sidebar-issues-panel__entity">${j(`connection.scopeUpgrade.status`)}</span>
<span class="sidebar-issues-panel__state" title=${n}>${n}</span>
</span>
${xA(j(`connection.scopeUpgrade.status`),e.onDismiss)}
<span class="sidebar-issues-panel__chevron" aria-hidden="true">${N.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`?F`<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}
>
${j(e.state.phase===`available`?`connection.scopeUpgrade.request`:`connection.scopeUpgrade.requestingAction`)}
</button>
</div>`:r||e.state.phase===`error`?F`<div class="sidebar-issues-panel__actions">
${r?F`<button
type="button"
class="sidebar-issues-panel__action sidebar-issues-panel__action--primary"
@click=${e.onRetry}
>
${j(`connection.scopeUpgrade.retry`)}
</button>`:I}
<button
type="button"
class="sidebar-issues-panel__action"
@click=${e.onCancel}
>
${j(`connection.scopeUpgrade.cancel`)}
</button>
</div>`:I}
</div>
</details>`}function kA(e){return e.meta?F`<span class="sidebar-issues-panel__state-row" title=${e.detail}>
${e.meta.context?F`<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>`:F`<span class="sidebar-issues-panel__state" title=${e.detail}
>${e.detail}</span
>`}function AA(e,t){let n=e.action.kind===`navigate`,r=F`
<span
class=${n?`sidebar-issues-panel__icon`:`sidebar-issues-panel__icon ${e.kind===`modelAuthExpired`?`sidebar-issues-panel__icon--critical`:``}`}
aria-hidden="true"
>${N[e.icon]}</span
>
<span class="sidebar-issues-panel__content">
<span class="sidebar-issues-panel__entity" title=${e.label}>${e.label}</span>
${kA(e)}
</span>
`;if(e.action.kind===`navigate`){let n=e.action.routeId;return F`<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=${wn(n,t.basePath)}
data-issue-row-focus
@click=${e=>{x(e)&&(e.preventDefault(),t.onNavigate(n))}}
>
${r}
</a>
${xA(e.label,t.onDismiss)}
<span class="sidebar-issues-panel__chevron" aria-hidden="true">${N.chevronRight}</span>
</div>
</div>`}let i=e.action.alert.facts.filter(t=>t!==e.label),a=e.inlineAction;return F`<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} ${xA(e.label,t.onDismiss)}
<span class="sidebar-issues-panel__chevron" aria-hidden="true">${N.chevronRight}</span>
</summary>
<div class="sidebar-issues-panel__body">
${i.length?F`<ul class="sidebar-issues-panel__facts">
${i.map(e=>F`<li>${e}</li>`)}
</ul>`:I}
<div class="sidebar-issues-panel__actions">
${a?F`<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)}
>
${j(`nav.askOpenClaw`)}
</button>
</div>
</div>
</details>`}function jA(){return(jA=e((()=>{L(),hi(),Sr(),v(),za(),Ji(),de(),D(),Fk(),P(),CA(),nu(),Nh(),Aa()})))()}var MA;function NA(){return(NA=e((()=>{MA=[`all`,`approvals`,`mentions`,`automations`,`system`]})))()}function PA(e){let{entry:t,context:n}=e,r=n.gateway.connectionRevision,i=n.gateway.snapshot.client?.recoveryScope,a=ae(n,t.sessionKey,t.agentId),o=ot(a?.displayName?.trim()||a?.label?.trim()||j(`attention.outbox.conversation`),100),s=n.agents.state.agentsList?.agents.find(e=>e.id===t.agentId),c=s?`${ot(nt(s),60)} · ${o}`:o,l=j(t.command?t.unconfirmed?`attention.outbox.commandUnconfirmed`:`attention.outbox.commandFailed`:t.unconfirmed?`attention.outbox.unconfirmed`:`attention.outbox.failed`),u=Ee({context:n,face:`chat`,sessionKey:t.sessionKey,agentId:t.agentId,exactKey:!0,focusComposer:!0}),d=n.gateway.snapshot.phase!==`connected`,f=[j(t.unconfirmed?t.command?`attention.outbox.checkCommandBeforeRetry`:`attention.outbox.checkBeforeRetry`:`attention.outbox.reviewHint`),...d?[j(`attention.outbox.offlineHint`)]:[]].join(` `);return F`<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"
>${N.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?F`<span class="sidebar-outbox-row__offline"><span aria-hidden="true">·</span> ${j(`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=${j(`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)))}}
>${j(`attention.outbox.reviewShort`)}</a
>
</openclaw-tooltip>
</div>
</article>`}function FA(){return(FA=e((()=>{L(),v(),za(),gt(),Ne(),de(),P(),Yt(),Aa()})))()}var IA;function LA(){return(LA=e((()=>{Wn(),M(),Sn(),IA=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=qr(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(qr(this.current))}dispose(){this.retireOperation()}start(e){let t=this.current.client;if(!t||qr(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:A(e),retryable:!(e instanceof Ln)||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 RA=t({ScopeUpgradeController:()=>IA,renderSidebarAttentionPanel:()=>zA});function zA(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=>ig(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=ag(e.entries);return F`<button
type="button"
class="sidebar-issues-panel__backdrop"
aria-label=${j(`common.close`)}
@click=${()=>e.onClose(!0)}
></button>
<openclaw-menu-surface>
<section
id="sidebar-issues-panel"
class="sidebar-issues-panel"
role="dialog"
aria-modal=${Br()?`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"
>${N.inbox}</span
>
${j(`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)}}
>
${j(`attention.dismissShown`)}
</button>
<openclaw-tooltip .content=${j(`attention.mentions.notifications`)}>
<a
class="sidebar-brand__icon"
aria-label=${j(`attention.mentions.notifications`)}
href=${wn(`notifications`,e.context.basePath)}
@click=${t=>{x(t)&&(t.preventDefault(),e.onNavigate(`notifications`))}}
>${N.settings}</a
>
</openclaw-tooltip>
<button
type="button"
class="sidebar-brand__icon sidebar-issues-panel__mobile-close"
aria-label=${j(`common.close`)}
@click=${()=>e.onClose(!0)}
>
${N.x}
</button>
</div>
</header>
${mA({id:`sidebar-issues`,active:e.selectedTab,tabs:MA.map(e=>({value:e,label:j(`attention.tabs.${e}`),count:p[e]>0?p[e]:null})),ariaLabel:j(`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?F`<div class="sidebar-issues-panel__mentions-note" role="status">
<span
>${j(o.error===null?o.phase===`loading`?`attention.mentions.loading`:`attention.mentions.unavailable`:`attention.mentions.error`)}</span
>
${o.error===null?I:F`<span>${o.error}</span>
<button
type="button"
class="sidebar-issues-panel__action"
?disabled=${o.phase===`loading`}
@click=${()=>void e.mentions.refresh()}
>
${j(`attention.mentions.refresh`)}
</button>`}
</div>`:I}
${i.length===0&&!f?F`<div class="sidebar-issues-panel__empty">
<span class="sidebar-issues-panel__empty-icon" aria-hidden="true"
>${N.inbox}</span
>
<strong
>${j(d?`attention.mentions.emptyTitle`:`attention.emptyTitle`)}</strong
>
<span
>${j(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 PA({entry:t,context:e.context,onNavigate:e.onNavigate});case`approval`:return TA({approval:t.approval,context:e.context,onNavigate:e.onNavigate,onDecision:e.onApprovalDecision});case`attention`:return AA(t,{basePath:e.context.basePath,onDismiss:r,onNavigate:e.onNavigate,onOpen:e.onOpen});case`mention`:return wA({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 OA({state:t.state,onCancel:()=>e.context.scopeUpgrade.cancel(),onDismiss:r,onRequest:()=>e.context.scopeUpgrade.request(),onRetry:()=>e.context.scopeUpgrade.retry()});case`update`:return EA({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?F`<footer class="sidebar-issues-panel__mentions-note">
<span>${j(`attention.mentions.retention`)}</span>
</footer>`:I}
</section>
</openclaw-menu-surface>`}function BA(){return(BA=e((()=>{L(),Sr(),Qt(),v(),za(),vA(),P(),og(),jA(),NA(),FA(),Qm(),LA(),Aa()})))()}function VA(e){return[...e?.querySelectorAll(`:scope > wa-dropdown-item:not([disabled]), :scope > .sidebar-agent-menu__agent-grid > wa-dropdown-item:not([disabled])`)??[]]}function HA(e,t){e.forEach(e=>e.active=e===t),t.focus({preventScroll:!0}),t.scrollIntoView?.({block:`nearest`})}function UA(e,t){e.target===e.currentTarget&&t(rp(e))}function WA(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(tj))){$e(decodeURIComponent(r.slice(5)));return}return r}function GA(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=VA(t),r=t?.querySelector(`.sidebar-identity-menu__footer`),i=[...n,...r?.querySelectorAll(`a[href], button:not([disabled])`)??[]],a=e.target instanceof HTMLElement?e.target:null,o=a?i.indexOf(a):-1;if(r&&o<0)return!1;let s=e.key===`ArrowDown`?1:-1,c=e.key===`Home`?n[0]:e.key===`End`?n.at(-1):o<0?n.at(s===1?0:-1):i[(o+s+i.length)%i.length];return!c||r&&!r.contains(a)&&!r.contains(c)?!1:(e.preventDefault(),e.stopPropagation(),HA(n,c),!0)}function KA(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=nj.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(()=>nj.delete(t),1e3);nj.set(t,{query:r,timeout:i});let a=VA(t),o=a.find(e=>(e.textContent??``).trim().toLowerCase().startsWith(r));return o&&HA(a,o),!0}function qA(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 JA(e,t,n){let r=G(e.id),i=t.identities.get(r)??null,a=nt(e,i),o=r===t.activeId,s=o?0:t.agentUnreadCount(r),c={value:r,label:a,agent:e},l=rt(e,i),u=l?t.resolveAvatarUrl(l):null;return F`
<wa-dropdown-item
class="sidebar-customize-menu__item sidebar-agent-menu__agent-switch agent-select__option ${o?`sidebar-agent-menu__agent-switch--active`:``}"
value=${`${$A}${encodeURIComponent(r)}`}
type="checkbox"
role="menuitemradio"
aria-checked=${String(o)}
?autofocus=${n}
${Xr(e=>ip(e,o))}
>
<span class="sidebar-agent-menu__agent-tile">
<span class="sidebar-agent-menu__agent-avatar">
${hp(c,i,u,l?t.avatarErrorHandler(l):void 0)}
</span>
${gp(c)}
<span class="sidebar-agent-menu__agent-status">
${s>0?F`<span
class="session-unread-dot"
role="img"
aria-label=${j(`sessionsView.unread`)}
></span>`:I}
</span>
</span>
</wa-dropdown-item>
`}function YA(){return F`
${QA.map(e=>F`
<wa-dropdown-item
slot="submenu"
class="sidebar-customize-menu__item"
value=${`${tj}${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=${Ka}
rel=${Ba()}
tabindex="-1"
>
<span slot="icon" class="nav-item__icon" aria-hidden="true">${N[e.icon]}</span>
<span class="sidebar-customize-menu__text">${e.label()}</span>
</a>
</wa-dropdown-item>
`)}
`}function XA(){return F`
<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">${N.circleQuestionMark}</span>
<span class="sidebar-customize-menu__text">${j(`agentChip.help`)}</span>
${YA()}
</wa-dropdown-item>
`}function ZA(e){let t=e.position,{activeId:n,activeName:r,agents:i}=e,a=!e.rosterMode&&i.length>1?qA(e):[],o=e.openMode===`click`?a.find(e=>G(e.id)===n)??a[0]:void 0,s=j(e.rosterMode?`agentChip.workspaceMenuLabel`:`agentChip.menuLabel`);return F`
<wa-dropdown
class="sidebar-customize-menu sidebar-agent-menu"
data-chat-autotype-exempt
.open=${!0}
placement="bottom-start"
.distance=${0}
aria-label=${s}
@pointerenter=${e.onPointerEnter}
@pointerleave=${e.onPointerLeave}
@wa-select=${t=>{let r=WA(t,e.onClose);if(r){if(r.startsWith($A)){e.onSwitchAgent(decodeURIComponent(r.slice(6)));return}switch(r){case`${ej}sidebar-agents`:e.onToggleRoster();break;case`${ej}all-agents`:e.onNavigate(`agents-home`);break;case`${ej}new-agent`:e.onNavigate(`custodian`,{search:`?intent=new-agent`});break;case`${ej}capabilities`:e.onAskCapabilities(n);break;case`${ej}agent-settings`:e.onNavigate(`agents`,{pathname:zr(n,null,e.basePath)})}}}}
@wa-after-show=${e.onAfterShow}
@keydown=${t=>{if(GA(t)||KA(t))return;let n=t.target instanceof HTMLElement?t.target.closest(`.sidebar-agent-menu__agent-grid > wa-dropdown-item:not([disabled])`):null;if((t.key===`Enter`||t.key===` `)&&n){t.preventDefault(),t.stopPropagation(),n.click();return}np(t,e.onTabAway)}}
@wa-after-hide=${t=>UA(t,e.onClose)}
>
${Og({x:t.x,y:t.top},s)}
${a.length>0?F`
<div class="sidebar-customize-menu__title">${j(`agentChip.agents`)}</div>
<div class="sidebar-agent-menu__agent-grid">
${a.map(t=>JA(t,e,t===o))}
</div>
<div class="sidebar-customize-menu__separator" role="separator"></div>
`:I}
<wa-dropdown-item
class="sidebar-customize-menu__item"
value="command:sidebar-agents"
type=${e.rosterMode?`normal`:`checkbox`}
>
${j(e.rosterMode?`agentChip.showOneAgent`:`agentChip.showAllAgents`)}
</wa-dropdown-item>
${e.rosterMode?I:F`
${Dg(`command:all-agents`,j(`agentChip.allAgents`),`bot`)}
${Dg(`command:new-agent`,j(`custodian.newAgent`),`users`)}
${n?Dg(`command:capabilities`,j(`agentChip.whatCanAgentDo`,{name:r}),`bot`,{disabled:!e.connected}):I}
`}
${Dg(`command:agent-settings`,j(`agentChip.agentSettings`),`settings`,{disabled:!n})}
${e.rosterMode?XA():I}
</wa-dropdown>
`}var QA,$A,ej,tj,nj;function rj(){return(rj=e((()=>{L(),Qr(),Sr(),v(),gt(),_t(),Ra(),Ye(),D(),vp(),Ig(),P(),mp(),QA=[{href:`https://docs.openclaw.ai`,icon:`book`,label:()=>j(`common.docs`)},{href:`https://docs.openclaw.ai/help`,icon:`messageSquare`,label:()=>j(`agentChip.getHelp`)},{href:`https://discord.gg/clawd`,icon:`users`,label:()=>j(`agentChip.discord`)},{href:`https://docs.openclaw.ai/releases`,icon:`scrollText`,label:()=>j(`agentChip.viewChangelog`)}],$A=`agent:`,ej=`command:`,tj=`link:`,nj=new WeakMap})))()}function ij(e){let t=Sd();if(!t)return I;let n=t.snapshot,r=n?.gateways.find(e=>e.id===n.currentId);return F`
<div class="sidebar-customize-menu__title">${j(`nav.gateway.sectionLabel`)}</div>
${n?.gateways.map((r,i)=>{let a=r.id===n.currentId,o={ok:j(`nav.gateway.connected`),error:j(`nav.gateway.unreachable`),unknown:j(`nav.gateway.unknown`)}[r.health],s=n=>{(n.metaKey||n.ctrlKey)&&(n.preventDefault(),n.stopPropagation(),t.openWindow(r.id),e(!1))};return F`<wa-dropdown-item
class="sidebar-customize-menu__item"
value=${`gateway:${encodeURIComponent(r.id)}`}
role="menuitemradio"
aria-checked=${String(a)}
${Xr(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?F`<span class="sidebar-gateway-primary">${j(`nav.gateway.primaryTag`)}</span>`:I}
${!a&&i<9?Un([`⌘`,String(i+1)],{className:`session-menu__shortcut`,ariaHidden:!0}):I}
${a?F`<span class="sidebar-gateway-check" aria-hidden="true">${N.check}</span>`:I}
</span>
</wa-dropdown-item>`})}
${r?.canPromote?Dg(`command:gateway-set-primary`,j(`nav.gateway.setPrimary`),`star`):I}
${Dg(`command:gateway-settings`,j(`nav.gateway.openSettings`),`server`)}
<div class="sidebar-customize-menu__separator" role="separator"></div>
`}function aj(e){let t=e.position,n=e.profileViewer?.name??e.profileViewer?.email??j(`nav.owner`),r={id:`owner`,watchedSessions:[],...e.profileViewer,name:n},i=e.profileViewer?.email&&e.profileViewer.email!==n?e.profileViewer.email:null;return F`
<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=${j(`profilePage.identity.menuLabel`)}
@wa-select=${t=>{let n=WA(t,e.onClose);if(!n)return;let r=Sd();if(n.startsWith(`gateway:`)){let e=decodeURIComponent(n.slice(8));e!==r?.snapshot?.currentId&&r?.select(e);return}switch(n){case`${ej}gateway-set-primary`:{let e=r?.snapshot?.gateways.find(e=>e.id===r.snapshot?.currentId);e?.canPromote&&r?.setPrimary(e.id);break}case`${ej}gateway-settings`:r?.openSettings();break;case`${ej}profile`:e.onNavigate(`profile`,{hash:`#settings-profile-identity`});break;case`${ej}settings`:e.onNavigate(`appearance`);break;case`${ej}usage`:e.onNavigate(`usage`);break;case`${ej}pair-mobile`:e.onPairMobile();break;case`${ej}apps`:e.onNavigate(`apps`);break;case`${ej}debug-overlay`:pl();break;case`${ej}retry-connect`:e.onRetryConnect?.()}}}
@keydown=${t=>{GA(t)||np(t,e.onTabAway)}}
@wa-after-hide=${t=>UA(t,e.onClose)}
>
${Og({x:t.x,y:t.bottom},j(`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?F`<span class="sidebar-identity-menu__email" title=${i}
>${i}</span
>`:I}
</span>
</wa-dropdown-item>
<div class="sidebar-customize-menu__separator" role="separator"></div>
${ij(e.onClose)}
${Dg(`command:settings`,j(`nav.settings`),`settings`,{details:_n(Ue.appearanceSettings,{slot:`details`,className:`session-menu__shortcut`,ariaHidden:!0})})}
${Dg(`command:usage`,yn(`usage`),`coins`)}
<div class="sidebar-customize-menu__separator" role="separator"></div>
${Dg(`command:pair-mobile`,j(`devices.pairing.button`),`smartphone`,{className:`sidebar-pair-mobile`,disabled:!e.canPairDevice,title:e.canPairDevice?void 0:j(`devices.pairing.adminRequired`)})}
${Dg(`command:apps`,j(`agentChip.getApps`),`layoutGrid`)}
${Dg(`command:debug-overlay`,j(`debug.overlay.title`),`activity`,{details:_n(Ue.debugOverlay,{slot:`details`,className:`session-menu__shortcut`,ariaHidden:!0})})}
<div class="sidebar-customize-menu__separator" role="separator"></div>
${XA()}
${e.canRetryConnection?F`<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">${j(`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 oj(){return(oj=e((()=>{L(),Qr(),Vr(),Td(),v(),Ge(),tl(),rj(),Ig(),P(),In(),fA(),Nh(),mp()})))()}function sj(e,t){let n=[...e.querySelectorAll(cj)].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 cj,lj;function uj(){return(uj=e((()=>{js(),L(),z(),Qt(),v(),ut(),O(),QS(),Qm(),cj=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]`,lj=class extends Se{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&&Br()&&e.currentTarget instanceof HTMLElement&&sj(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(),Tt(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?YS(e,this.anchor,`bottom`):requestAnimationFrame(this.focusInitialControl)}render(){let e=Br(),t=F`<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?F`<button
type="button"
class="sidebar-session-filter-panel__backdrop"
tabindex="-1"
aria-label=${j(`common.close`)}
@click=${()=>this.onClose(!0)}
></button>
<openclaw-menu-surface>${t}</openclaw-menu-surface>`:F`<wa-popup active @wa-reposition=${this.focusInitialControl}>${t}</wa-popup>`}},U([V({attribute:!1})],lj.prototype,`anchor`,void 0),U([V({attribute:!1})],lj.prototype,`label`,void 0),U([V({attribute:!1})],lj.prototype,`initialFocusSelector`,void 0),U([V({attribute:!1})],lj.prototype,`content`,void 0),U([V({attribute:!1})],lj.prototype,`onClose`,void 0),customElements.define(`openclaw-sidebar-session-filter-popover`,lj)})))()}function dj(e){return F`
<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)}
${Xr(t=>ip(t,e.checked))}
>
<span slot="details" class="session-menu__check" aria-hidden="true"
>${e.checked?N.check:I}</span
>
<span class="row session-menu__label">
${e.owner?Fh(e.owner,`row`,`owned`):I}
<span class="session-menu__text">${e.label}</span>
</span>
</wa-dropdown-item>
`}function fj(e){return e.owners.map(t=>dj({value:`owner:${t.id}`,checked:e.ownerFilterId===t.id,label:t.id===e.selfOwnerId?j(`sessionsView.ownerYou`,{name:t.label??t.id}):t.label??t.id,owner:t,submenu:e.submenu}))}function pj(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?j(`sessionsView.specificOwnerSelected`,{name:a}):j(`sessionsView.specificOwnerAvailable`,{count:String(t.length)}),s=i?F`${Rh(i)}
<span class="sidebar-session-owner-selection__name">${a}</span>`:F`<span class="sidebar-session-owner-count">${t.length}</span>`;return F`
<div class="session-menu__separator" role="separator"></div>
<div class="sidebar-session-sort-menu__title">${j(`sessionsView.owners`)}</div>
${dj({value:`owner:`,checked:n===null&&!r,label:j(`sessionsView.allOwners`)})}
${dj({value:`involving-me`,checked:r,label:j(`sessionsView.involvingMe`)})}
${t.length>0?e.compact?gh({value:`compact:open-specific-owner`,label:j(`sessionsView.specificOwner`),icon:N.users,details:F`<span class="session-menu__shortcut sidebar-session-owner-selection"
>${s}</span
>`,accessibleLabel:o}):F`<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">${j(`sessionsView.specificOwner`)}</span>
<span
slot="details"
class="session-menu__shortcut sidebar-session-owner-selection"
aria-hidden="true"
>${s}</span
>
${fj({...e,submenu:!0})}
</wa-dropdown-item>`:I}
`}function mj(e){return e===`compact:open-specific-owner`?`specific-owner`:e===`compact:back`?`root`:null}function hj(e){let t=e.menu,n=(t,n,r)=>F`<wa-dropdown-item
class=${`session-menu__item${t===`delete-group`?` session-menu__item--destructive`:``}`}
value=${t}
variant=${t===`delete-group`?`danger`:I}
?disabled=${!e.connected||!!e.actionDisabledReasons?.[t]}
title=${e.actionDisabledReasons?.[t]??I}
>
<span slot="icon" class="session-menu__icon" aria-hidden="true">${r}</span>
<span class="session-menu__text">${n}</span>
</wa-dropdown-item>`;return si(t,F`
<wa-dropdown
class="session-menu sidebar-session-group-menu"
.open=${!0}
placement="bottom-start"
.distance=${0}
aria-label=${j(`sessionsView.groupMenu`,{group:t.group})}
@wa-select=${n=>{n.preventDefault();let r=n.detail.item.value;(r===`group-defaults`||r===`rename-group`||r===`new-group`||r===`delete-group`)&&!e.actionDisabledReasons?.[r]&&e.onAction(r,t.group)}}
@keydown=${t=>np(t,()=>e.trigger?.focus())}
@wa-after-hide=${t=>e.onClose(rp(t))}
>
${Og(t,j(`sessionsView.groupMenu`,{group:t.group}))}
${n(`group-defaults`,e.groupDefaultsUnavailable?`${j(`common.retry`)}: ${j(`sessionsView.groupDefaultsMenu`)}`:j(`sessionsView.groupDefaultsMenu`),N.settings)}
${n(`rename-group`,j(`sessionsView.renameGroupMenu`),N.edit)}
${n(`new-group`,j(`sessionsView.newGroup`),N.folder)}
<div class="session-menu__separator" role="separator"></div>
${n(`delete-group`,j(`sessionsView.deleteGroupMenu`),N.trash)}
</wa-dropdown>
`)}function gj(e){let t=e.position,n=[{grouping:`project`,label:j(`chat.sidebar.catalogGroupByProject`)},{grouping:`person`,label:j(`chat.sidebar.catalogGroupByPerson`)},{grouping:`none`,label:j(`sessionsView.groupByNone`)}];return si(`${t.catalogId}:${t.x}:${t.y}`,F`
<wa-dropdown
class=${`sidebar-session-sort-menu sidebar-catalog-view-menu${e.compact?` session-menu--compact`:``}`}
.open=${!0}
placement="bottom-start"
.distance=${0}
aria-label=${j(`chat.sidebar.catalogViewOptions`)}
@wa-select=${t=>{t.preventDefault();let n=t.detail.item.value,r=mj(n);r?e.onViewChange(r):n?.startsWith(`grouping:`)?e.onGroupingChange(n.slice(9)):n?.startsWith(`owner:`)?e.onOwnerFilterChange(n.slice(6)||null):n===`involving-me`?e.onOwnerFilterChange(null,!0):n===`hide-catalog`&&e.onHide()}}
@keydown=${t=>np(t,()=>e.trigger?.focus())}
@wa-after-hide=${t=>e.onClose(rp(t))}
>
${Og(t,j(`chat.sidebar.catalogViewOptions`))}
${e.compact&&e.view===`specific-owner`?_h(F`${fj({...e,submenu:!1})}`):F`<div class="sidebar-session-sort-menu__title">${j(`sessionsView.groupBy`)}</div>
${n.map(t=>dj({value:`grouping:${t.grouping}`,checked:e.grouping===t.grouping,label:t.label}))}
${pj(e)}
<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">${j(`chat.sidebar.hideFromSidebar`)}</span>
</wa-dropdown-item>`}
</wa-dropdown>
`)}function _j(e){let t=e.owners.length>0||e.ownerFilterId!==null||e.involvingMe,n=Br(),r=e.involvingMe?`involving-me`:e.ownerFilterId===null?`all`:`owner:${e.ownerFilterId}`,i=(e,t,n,r,i,a=t)=>F`<div id=${e} class="sidebar-session-menu-row">
<span aria-hidden="true" title=${t}>${a}</span>
${KO({value:n,options:r.map(e=>({...e,title:e.label})),ariaLabel:t,className:`sidebar-session-menu-segmented`,onChange:i})}
</div>`,a=(e,t,n,r)=>F`<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 si(e.position,F`<openclaw-sidebar-session-filter-popover
class="sidebar-session-sort-menu"
.anchor=${e.trigger}
.label=${j(`chat.sidebar.sortSessions`)}
.onClose=${e.onClose}
.content=${F`
<section
class="sidebar-session-menu-section"
aria-labelledby="sidebar-sessions-filters-label"
>
<div class="sidebar-session-menu-heading">
<h3 id="sidebar-sessions-filters-label">${j(`chat.sidebar.menuFilters`)}</h3>
${e.settingsChanged?F`<button
type="button"
id="sidebar-sessions-reset"
class="sidebar-session-menu-reset"
@click=${t=>{t.currentTarget.closest(`.sidebar-session-filter-panel`)?.querySelector(`#sidebar-sessions-status wa-radio[value="active"]`)?.focus(),e.onReset()}}
>
${j(`common.reset`)}
</button>`:I}
</div>
${t?F`<div class="sidebar-session-menu-row">
<label for="sidebar-sessions-owner">${j(`sessionsView.owners`)}</label>
${oC({id:`sidebar-sessions-owner`,label:j(`sessionsView.owners`),value:r,searchable:`always`,sheet:n,showOptionTooltips:!1,renderLeading:t=>{let n=e.owners.find(e=>`owner:${e.id}`===t.value);return n?Rh(n):I},options:[{value:`all`,label:j(`sessionsView.allOwners`)},{value:`involving-me`,label:j(`sessionsView.involvingMe`)},...e.owners.map(t=>({value:`owner:${t.id}`,label:t.id===e.selfOwnerId?j(`sessionsView.ownerYou`,{name:t.label??t.id}):t.label??t.id})),...e.ownerFilterId!==null&&!e.owners.some(t=>t.id===e.ownerFilterId)?[{value:`owner:${e.ownerFilterId}`,label:e.ownerFilterId}]:[]],onChange:t=>e.onOwnerFilterChange(t.startsWith(`owner:`)?t.slice(6):null,t===`involving-me`)})}
</div>`:I}
${i(`sidebar-sessions-status`,j(`sessionsView.status`),e.statusFilter,I_.map(e=>({value:e,label:j(e===`active`?`common.active`:e===`snoozed`?`sessionsView.snoozed`:e===`archived`?`sessionsView.archived`:`sessionsView.all`)})),e.onStatusFilterChange)}
${a(`sidebar-sessions-cron`,j(`sessionsView.showCronSessions`),e.showCron,e.onShowCronChange)}
${a(`sidebar-sessions-system`,j(`sessionsView.showSystemSessions`),e.showSystem,e.onShowSystemChange)}
</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">${j(`chat.sidebar.menuDisplay`)}</h3>
</div>
${e.rosterMode?I:oC({id:`sidebar-sessions-group`,label:j(`sessionsView.groupBy`),value:e.grouping,variant:`submenu`,sheet:n,showOptionTooltips:!1,options:[{value:`category`,label:j(`sessionsView.groupByCategory`)},{value:`project`,label:j(`chat.sidebar.catalogGroupByProject`)},...e.peopleSortAvailable?[{value:`person`,label:j(`sessionsView.groupByPerson`)}]:[],{value:`none`,label:j(`sessionsView.groupByNone`)}],onChange:t=>e.onGroupingChange(t)})}
${oC({id:`sidebar-sessions-sort`,label:j(`chat.sidebar.sortBy`),value:e.sortMode,variant:`submenu`,sheet:n,showOptionTooltips:!1,options:F_.filter(t=>t.mode!==`people`||e.peopleSortAvailable).map(e=>({value:e.mode,label:j(e.labelKey)})),onChange:t=>{let n=F_.find(e=>e.mode===t);n&&e.onSortModeChange(n.mode)}})}
${e.rosterMode?I:oC({id:`sidebar-sessions-empty`,label:j(`sessionsView.hideEmptyGroups`),value:e.emptyGroupsMode,variant:`submenu`,sheet:n,showOptionTooltips:!1,options:vj.map(e=>({value:e.mode,label:j(e.labelKey)})),onChange:t=>{let n=vj.find(e=>e.mode===t);n&&e.onEmptyGroupsModeChange(n.mode)}})}
${a(`sidebar-sessions-preview`,j(`sessionsView.showSessionPreview`),e.showPreview,e.onShowPreviewChange)}
</section>
<footer class="sidebar-session-menu-footer">
<a
id="sidebar-sessions-sources"
class="sidebar-session-filter-footer"
href=${e.sessionSourcesHref}
@click=${t=>{x(t)&&(t.preventDefault(),e.onOpenSessionSources())}}
>
<span aria-hidden="true">${N.settings}</span>${j(`chat.sidebar.sessionSources`)}
</a>
</footer>
`}
></openclaw-sidebar-session-filter-popover>`)}var vj;function yj(){return(yj=e((()=>{L(),hi(),Qr(),Qt(),v(),Ig(),J(),Vs(),P(),lC(),yh(),uj(),Bh(),$O(),mp(),vj=[{mode:`filtering`,labelKey:`sessionsView.emptyGroupsWhenFiltering`},{mode:`always`,labelKey:`sessionsView.emptyGroupsAlways`},{mode:`never`,labelKey:`sessionsView.emptyGroupsNever`}]})))()}function bj(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=Br(),a=n.statusFilter!==`all`||n.sortMode!==`presence`;return si(t,F`<openclaw-sidebar-session-filter-popover
class="sidebar-session-sort-menu sidebar-people-filter-menu"
.anchor=${e.peopleFilterMenuTrigger}
.label=${j(`presence.filters.label`)}
.initialFocusSelector=${`#sidebar-people-status`}
.onClose=${n=>{e.peopleFilterMenuPosition===t&&e.closePositionedMenu(`peopleFilter`,{restoreFocus:n})}}
.content=${F`
<div class="sidebar-session-menu-section">
${oC({id:`sidebar-people-status`,label:j(`sessionsView.status`),value:n.statusFilter,variant:`submenu`,sheet:i,showOptionTooltips:!1,options:[{value:`all`,label:j(`sessionsView.all`)},{value:`running`,label:j(`common.running`)}],onChange:e=>{(e===`all`||e===`running`)&&r(()=>n.setStatusFilter(e))}})}
${oC({id:`sidebar-people-sort`,label:j(`chat.sidebar.sortBy`),value:n.sortMode,variant:`submenu`,sheet:i,showOptionTooltips:!1,options:xj.map(e=>({value:e.value,label:j(e.labelKey)})),onChange:e=>{let t=xj.find(t=>t.value===e);t&&r(()=>n.setSortMode(t.value))}})}
</div>
${a?F`<footer class="sidebar-session-menu-footer">
<button
type="button"
id="sidebar-people-reset"
class="sidebar-session-filter-footer"
@click=${()=>r(()=>n.resetView())}
>
${j(`presence.filters.reset`)}
</button>
</footer>`:I}
`}
></openclaw-sidebar-session-filter-popover>`)}var xj;function Sj(){return(Sj=e((()=>{L(),hi(),Qt(),v(),lC(),uj(),xj=[{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 Cj=t({renderSidebarAgentMenuForController:()=>Tj,renderSidebarCatalogViewMenuForController:()=>Aj,renderSidebarCustomizeMenuForController:()=>wj,renderSidebarIdentityMenuForController:()=>Ej,renderSidebarMoreMenuForController:()=>jj,renderSidebarPeopleFilterMenuForController:()=>bj,renderSidebarSessionGroupMenuForController:()=>Oj,renderSidebarSessionMenuForController:()=>Dj,renderSidebarSessionSortMenuForController:()=>kj});function wj(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 Fg({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(fn({type:`route`,route:e})),onTogglePlugin:e=>i(fn({type:`plugin`,key:e})),onReset:()=>{let n=t.reconciledSidebarZone().sidebarEntries.filter(e=>e.startsWith(`session:`));t.onUpdateSidebarEntries?.([...Gr,...n]),e.closePositionedMenu(`customize`,{restoreFocus:!0})}})}function Tj(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 ZA({position:n,basePath:t.basePath,activeId:a?i:``,activeName:a?nt(a,s):``,agents:o,identities:c,pinnedAgentIds:t.pinnedAgentIds,rosterMode:t.sidebarAgentsMode===`roster`,onToggleRoster:()=>{t.sidebarAgentsMode=t.sidebarAgentsMode===`roster`?`chip`:`roster`,$t({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.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 Ej(e){let{host:t}=e,n=e.identityMenuPosition;if(!n)return I;let r=e.identityMenuTrigger,i=t.sessionDataContext?Fr(t.sessionDataContext.gateway).displayUser:null,a=t.sessionDataContext,o=a?.overlays.snapshot,s=Mr({gatewayBootId:a?.gateway.snapshot.hello?.server?.bootId,updateAvailable:o?.updateAvailable,updateSchedule:o?.updateSchedule}),c=!!(a&&s&&cr(o?.updateAvailable,o?.updateSchedule,!!(o?.updateRunning||o?.updateReconciliationPending))&&!o?.updateRunning&&!o?.updateReconciliationPending&&o?.updateSchedule?.campaign?.state!==`applying`&&!gn(o?.updateStatusBanner?.tone)&&Hn(Gt(Tr(a.gateway)),s));return aj({position:n,canPairDevice:t.canPairDevice,basePath:t.basePath,gatewayVersion:t.gatewayVersion,updateAttentionDismissed:c,profileViewer:i?{...i,watchedSessions:[]}:void 0,canRetryConnection:Er(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 Dj(e){let{host:t}=e,n=e.sessionMenu;if(!n)return I;let r=t.sessionDataContext,i=e.pluginActionLifetime.signal,a=t.findSidebarSessionByKey(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,l=b({agentsList:t.sessionDataContext?.agents.state.agentsList,hello:t.sessionDataContext?.gateway.snapshot.hello}),u=t.selectedVisibleSessions(),d=u.length>1&&u.some(e=>e.key===c.key)?u:null,f=d??[c],p=f.every(e=>Dt(e,l)),m=Ft(f,l),h=f.every(e=>e.unread),g=f.every(e=>e.archived===!0),_=f.every(e=>(e.category??null)===(f[0]?.category??null))?f[0]?.category??null:null,v=c.cloudWorkerStopAction,y=!(d||!v||v.blocksActiveRun&&c.hasActiveRun||!r||qi(r.gateway.snapshot,v.method)!==!0),x=r?.gateway.snapshot.selfUser??null,S=t.readSessionMutationAccess({method:`sessions.assignOwner`,params:{key:c.key,owner:{type:`human`,id:x?.id??`profile`}},requiredScope:`operator.write`}),ee={...wO({snapshot:r?.gateway.snapshot,session:c,batchRows:d,cloudWorkerStopAction:c.cloudWorkerStopAction}),...S.allowed?{}:{"assign-owner":S.reason}};return si(n,F`
<openclaw-session-menu
.session=${{label:c.label,sessionId:c.sessionId??null,isChild:c.isChild,pinned:c.pinned,pinnable:c.pinnable,unread:d?h:c.unread,hiddenFromInvolvingMe:c.hiddenFromInvolvingMe,archived:g,snoozedUntil:c.snoozedUntil??null,archiving:f.some(e=>r?.sessions.archiveVisibility(e.key)===`pending`),category:d?_:c.category??null,icon:d?null:c.icon??null,color:d?null:c.color??null,categoryClearReturnsToGroups:_!==null&&f.every(e=>el(e,t.sessionsGrouping))}}
.selectionCount=${f.length}
.compact=${Br()}
.lastActive=${d?``:xp(c.updatedAt)}
.anchor=${n}
.trigger=${e.sessionMenuTrigger}
.disabled=${!t.connected}
.actionDisabledReasons=${ee}
.navigationAllowed=${!!r}
.copyMarkdownAllowed=${Ic(r?.gateway.snapshot)}
.splitAllowed=${xc()}
.forkDisabled=${t.sessionData.sessionsLoading||c.modelSelectionLocked}
.forkFromLastCompleted=${c.gatewayHasActiveRun??c.hasActiveRun}
.snoozeAllowed=${!0}
.archiveAllowed=${p}
.deleteAllowed=${m}
.cloudWorkerStopAllowed=${y}
.groups=${t.knownSessionGroups()}
.currentOwner=${c.owner?.actor??null}
.work=${d?null:e.sessionMenuWork}
.pluginActions=${!d&&r?.plugins&&s?wc(r.plugins,s):[]}
.onClose=${()=>{e.sessionMenu===n&&e.closeSessionMenu()}}
.onAction=${e=>{if(d){t.sessionOrganizer.runBatchSessionAction(e,d,h);return}switch(e.kind){case`open-pr`:$e(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;Gc(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`: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&&gl({runtime:r.plugins,id:e.id,placement:`session`,sessionKey:n.session.key,session:o(),signal:i}).catch(e=>{i.aborted||Et({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 Oj(e){let{host:t}=e,n=e.sessionGroupMenu;if(!n)return I;let r=t.sessionDataContext?.sessions.groupsStatus()??`idle`;return hj({menu:n,trigger:e.sessionGroupMenuTrigger,connected:t.connected,groupDefaultsUnavailable:r===`unavailable`,actionDisabledReasons: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 i=Oe(t.sessionDataContext?.gateway.snapshot,{method:n,requiredScope:`operator.write`});return i.allowed?e===`group-defaults`&&r!==`ready`&&r!==`unavailable`?[[e,j(`common.loading`)]]:[]:[[e,i.reason]]})),onAction:(n,i)=>{switch(e.closeSessionGroupMenu({restoreFocus:!0}),n){case`group-defaults`:if(r===`unavailable`){t.sessionDataContext?.sessions.groupsInvalidate(),t.sessionDataContext?.sessions.groupsLoad();break}t.sessionOrganizer.editSessionGroupDefaults(i);break;case`rename-group`:t.sessionOrganizer.renameSessionGroupFromMenu(i);break;case`new-group`:t.sessionOrganizer.createSessionGroup();break;case`delete-group`:t.sessionOrganizer.deleteSessionGroupFromMenu(i)}},onClose:t=>{e.sessionGroupMenu===n&&e.closeSessionGroupMenu({restoreFocus:t})}})}function kj(e){let{host:t}=e,n=e.sessionSortMenuPosition;if(!n)return I;let r=vt.sessionSources,i=t.sidebarAgentsMode===`roster`,a=t.effectiveSessionsGrouping();return _j({position:n,trigger:e.sessionSortMenuTrigger,sessionSourcesHref:wn(r.routeId,t.basePath)+r.search+r.hash,grouping:a,rosterMode:i,sortMode:t.effectiveSessionSortMode(),peopleSortAvailable:t.sessionPeopleSortAvailable(),statusFilter:t.sessionsStatusFilter,showCron:t.sessionsShowCron,showPreview:t.sessionsShowPreview,showSystem:t.sessionsShowSystem,emptyGroupsMode:t.sessionsEmptyGroupsMode,owners:t.sessionOwnershipVisibility.filters?t.sessionOwnerOptions:[],ownerFilterId:t.sessionOwnerFilterActive?t.sessionOwnerFilterId:null,involvingMe:t.sessionInvolvingMeFilterActive,selfOwnerId:t.sessionDataContext?.gateway.snapshot.selfUser?.id??null,settingsChanged:Rg(t)>0||t.sessionsShowCron||t.sessionsShowSystem||t.sessionsShowPreview||t.effectiveSessionSortMode()!==`created`||!i&&(a!==`category`||t.sessionsEmptyGroupsMode!==`filtering`),onReset:()=>{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`))},onGroupingChange:e=>{t.sessionOrganizer.setSessionsGrouping(e)},onSortModeChange:e=>{t.setSessionSortMode(e)},onStatusFilterChange:e=>{t.sessionOrganizer.setSessionsStatusFilter(e)},onOwnerFilterChange:(e,n=!1)=>{t.setSessionOwnerFilter(e,n)},onShowCronChange:e=>{t.sessionOrganizer.setSessionsShowCron(e)},onShowPreviewChange:e=>{t.sessionOrganizer.setSessionsShowPreview(e)},onShowSystemChange:e=>{t.sessionOrganizer.setSessionsShowSystem(e)},onEmptyGroupsModeChange:r=>{e.sessionSortMenuPosition===n&&t.setSessionsEmptyGroupsMode(r)},onOpenSessionSources:()=>{e.closePositionedMenu(`sessionSort`),t.onNavigate?.(r.routeId,{search:r.search,hash:r.hash})},onClose:t=>{e.sessionSortMenuPosition===n&&e.closePositionedMenu(`sessionSort`,{restoreFocus:t})}})}function Aj(e){let{host:t}=e,n=e.catalogViewMenuPosition;return n?gj({position:n,trigger:e.catalogViewMenuTrigger,grouping:t.catalogProjectGrouping,owners:t.sessionOwnershipVisibility.filters?t.sessionOwnerOptions:[],ownerFilterId:t.sessionOwnerFilterActive?t.sessionOwnerFilterId:null,involvingMe:t.sessionInvolvingMeFilterActive,selfOwnerId:t.sessionDataContext?.gateway.snapshot.selfUser?.id??null,compact:Br(),view:e.filterMenuView,onViewChange:t=>e.setFilterMenuView(t),onGroupingChange:n=>{t.setCatalogProjectGrouping(n),e.closePositionedMenu(`catalogView`,{restoreFocus:!0})},onHide:()=>{e.catalogViewMenuPosition===n&&(t.hideSessionCatalog(n.catalogId),e.closePositionedMenu(`catalogView`))},onOwnerFilterChange:(n,r=!1)=>{t.setSessionOwnerFilter(n,r),e.closePositionedMenu(`catalogView`,{restoreFocus:!0})},onClose:t=>{e.catalogViewMenuPosition===n&&e.closePositionedMenu(`catalogView`,{restoreFocus:t})}}):I}function jj(e){let{host:t}=e,n=e.moreMenuPosition;if(!n)return I;let r=e.moreMenuTrigger;return Pg({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 Mj(){return(Mj=e((()=>{L(),hi(),Vr(),Sr(),Qn(),Qt(),xr(),Cr(),v(),gt(),ao(),Ji(),Ye(),w(),vc(),D(),nc(),ft(),qe(),gc(),rj(),oj(),Ig(),kp(),Ug(),yj(),Nr(),TO(),Fn(),Sj()})))()}function Nj(e,t={}){let n=t.fillHeight?`settings-workspace settings-workspace--fill-height`:`settings-workspace`;return F`
<section
class=${n}
${fr({settingsWorkspace:!0})}
id=${ni(t.id)}
role=${ni(t.role)}
aria-label=${ni(t.ariaLabel)}
>
<div class="settings-workspace__body">${e}</div>
</section>
`}function Pj(){return(Pj=e((()=>{L(),Yr(),jr()})))()}function Fj(e){return F`<openclaw-agent-row-chip .agentId=${e}></openclaw-agent-row-chip>`}var Ij;function Lj(){return(Lj=e((()=>{Wo(),L(),z(),En(),gt(),_t(),Ia(),D(),O(),a(),tp(),Ij=class extends p{constructor(){super(),this.avatars=new Xi(this),new st(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()||fe({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=nt(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 F`<span
class="agent-row-chip"
data-agent-id=${t}
role="img"
aria-label=${a}
title=${a}
>
${Yf({id:t,avatar:e,textAvatar:Ke(n,r)},`agent-row-chip__avatar`)}
<span class="agent-row-chip__name">${i}</span>
</span>`})}},U([zo({context:Hr,subscribe:!0}),V({attribute:!1})],Ij.prototype,`context`,void 0),U([V({attribute:!1})],Ij.prototype,`agentId`,void 0),customElements.get(`openclaw-agent-row-chip`)||customElements.define(`openclaw-agent-row-chip`,Ij)})))()}function Rj(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.some(t=>t.value===e.value),i=[...e.options.map(e=>({...e,description:e.detail})),...e.custom?[{value:t,label:e.custom.label}]:[]],a=i.findIndex(t=>t.value===e.value);return a>0&&i.unshift(...i.splice(a,1)),F`
<div class="model-picker">
${oC({id:e.id,label:e.label,value:e.value,options:i,disabled:e.disabled,title:e.title,placement:e.placement,searchable:!0,searchPlaceholder:e.searchPlaceholder,groupBy:e.groupByProvider?e=>e.provider?{id:e.provider,label:Fp(e.provider),leading:Wp(e.provider,{className:`model-picker__provider-icon`})}:void 0:void 0,showOptionTooltips:!1,showSelectedDescription:e.showSelectedDetail,className:`model-picker__select ${e.className??``}`,onOpen:e.onOpen,renderLeading:e=>e.provider?Wp(e.provider,{className:`model-picker__provider-icon`}):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?F`<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=${r}
?disabled=${e.disabled}
@input=${t=>{e.custom?.commit!==`change`&&e.onChange(t.currentTarget.value)}}
@change=${t=>{e.custom?.commit===`change`&&e.onChange(t.currentTarget.value)}}
/>`:I}
</div>
`}function zj(){return(zj=e((()=>{L(),Xp(),lC()})))()}function Bj(e){return F`
<div class="cron-table__footer">
<span class="muted">
${j(`cron.list.shownOf`,{shown:String(e.jobsShown),total:String(Math.max(e.jobsTotal,e.jobsShown))})}
</span>
${e.hasMore?F`
<button
class="btn btn--sm cron-load-more"
?disabled=${e.loading||e.loadingMore}
@click=${e.onLoadMore}
>
${e.loadingMore?j(`cron.list.loading`):j(`cron.list.loadMore`)}
</button>
`:I}
</div>
`}function Vj(){return(Vj=e((()=>{L(),v(),Pa(),Wa()})))()}function Hj(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=Ct(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)=>nt(e).localeCompare(nt(t))),c=i(n)?r?``:s[0]?.id??``:n,l=[...r?[{value:``,label:j(`agentScope.allAgents`),icon:N.users}]:[],...s.map(e=>({value:e.id,label:nt(e),agent:e}))];return F`
<div class="agent-scope-control">
<openclaw-agent-select
.options=${l}
.value=${c}
.accessibleLabel=${j(`agentScope.label`)}
.menuLabel=${j(`agentScope.label`)}
.onSelect=${t=>r?e.selection.setScope(t||null):e.selection.set(t||null)}
></openclaw-agent-select>
</div>
`}function Uj(){return(Uj=e((()=>{L(),v(),gt(),D(),bp(),P()})))()}export{UO as $,kd as $i,oy as $n,Um as $r,FC as $t,sk as A,Vf as Ai,_S as An,Ih as Ar,DT as At,YO as B,$d as Bi,tx as Bn,_h as Br,kw as Bt,kk as C,tp as Ci,HS as Cn,qh as Cr,iE as Ct,hk as D,Gf as Di,TS as Dn,Bh as Dr,PT as Dt,mk as E,Jf as Ei,CS as En,Kh as Er,GT as Et,tk as F,Nf as Fi,sS as Fn,Th as Fr,Lw as Ft,MO as G,qd as Gi,Ly as Gn,ch as Gr,ew as Gt,PO as H,Xd as Hi,ib as Hn,fh as Hr,pw as Ht,$O as I,Mf as Ii,oS as In,wh as Ir,Ww as It,ZO as J,Bd as Ji,Dy as Jn,Qm as Jr,QC as Jt,IO as K,Kd as Ki,Py as Kn,nh as Kr,uw as Kt,NO as L,wf as Li,Vx as Ln,Eh as Lr,Bw as Lt,rk as M,If as Mi,dS as Mn,Dh as Mr,ET as Mt,ek as N,Pf as Ni,lS as Nn,Ch as Nr,kT as Nt,ok as O,Hf as Oi,yS as On,Rh as Or,RT as Ot,ak as P,Ff as Pi,pS as Pn,Sh as Pr,wT as Pt,RO as Q,Od as Qi,iy as Qn,qm as Qr,VC as Qt,FO as R,nf as Ri,Hx as Rn,hh as Rr,Mw as Rt,Mk as S,Qf as Si,BS as Sn,Xh as Sr,XT as St,_k as T,Yf as Ti,NS as Tn,Gh as Tr,BT as Tt,XO as U,Yd as Ui,tb as Un,mh as Ur,XC as Ut,zO as V,Zd as Vi,$b as Vn,gh as Vr,fw as Vt,HO as W,Jd as Wi,Ry as Wn,dh as Wr,$C as Wt,KO as X,Fd as Xi,ry as Xn,Jm as Xr,UC as Xt,LO as Y,Id as Yi,ny as Yn,Xm as Yr,KC as Yt,qO as Z,Pd as Zi,ty as Zn,Ym as Zr,HC as Zt,iA as _,fu as _a,bp as _i,JS as _n,yg as _r,mD as _t,zj as a,vd as aa,rm as ai,_C as an,Q_ as ar,wO as at,Ak as b,du as ba,mp as bi,WS as bn,Qh as br,qE as bt,Fj as c,ld as ca,Pp as ci,uC as cn,L_ as cr,TD as ct,CA as d,pd as da,Fp as di,iC as dn,J as dr,xD as dt,Ad as ea,Km as ei,PC as en,ay as er,WO as et,SA as f,sd as fa,Ip as fi,rC as fn,o_ as fr,bD as ft,uA as g,ju as ga,yp as gi,QS as gn,xg as gr,_D as gt,fA as h,Pu as ha,Vp as hi,YS as hn,Hg as hr,hD as ht,Bj as i,gd as ia,sm as ii,bC as in,Av as ir,TO as it,ck as j,Wf as ji,vS as jn,Nh as jr,OT as jt,fk as k,Bf as ki,gS as kn,Fh as kr,jT as kt,Pj as l,nd as la,Rp as li,lC as ln,B_ as lr,SD as lt,mA as m,dd as ma,Up as mi,nC as mn,Ug as mr,yD as mt,Hj as n,Td as na,Vm as ni,fC as nn,Pv as nr,jO as nt,Rj as o,fd as oa,nm as oi,gC as on,Z_ as or,CO as ot,vA as p,cd as pa,Wp as pi,$S as pn,y_ as pr,vD as pt,VO as q,Vd as qi,Ny as qn,eh as qr,YC as qt,Vj as r,yd as ra,Hm as ri,hC as rn,Fv as rr,OO as rt,Lj as s,Zu as sa,Bp as si,dC as sn,K_ as sr,MD as st,Uj as t,Dd as ta,Gm as ti,NC as tn,Lv as tr,JO as tt,Nj as u,hd as ua,Xp as ui,oC as un,P_ as ur,CD as ut,rA as v,Eu as va,vp as vi,qS as vn,gg as vr,fD as vt,vk as w,Xf as wi,IS as wn,Wh as wr,LT as wt,Fk as x,ip as xi,GS as xn,Yh as xr,XE as xt,yk as y,ru as ya,hp as yi,KS as yn,mg as yr,KE as yt,GO as z,tf as zi,ex as zn,yh as zr,jw as zt};