566 lines
392 KiB
JavaScript
566 lines
392 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./chat-sidebar-region.runtime-Cburt2yr.js","./rolldown-runtime-DkW27tQK.js","./control-ui-foundation-CeFMP1Ly.js","./control-ui-core-pH6nakZ-.js","./lit-runtime-BEtFSUCp.js","./control-ui-core-DGVkFhVB.js","./control-ui-core-Br5DB0Zj.js","./gateway-runtime-DUNO4Mi1.js","./control-ui-core-C8H8-RSs.css","./control-ui-boot-Cdpgu1Gm.js","./control-ui-boot-wpHCbPL9.js","./control-ui-boot-gfE6fZcA.js","./config-runtime-C4gfjhZc.js","./control-ui-boot-CKTkvwFZ.js","./control-ui-boot-BPFwXC8p.js","./control-ui-boot-DdPrPuw0.js","./control-ui-boot-9_2QGLIL.js","./control-ui-boot-D1DWJlBr.js","./control-ui-boot-B1lcIXow.js","./control-ui-boot-Clhp68JE.js","./control-ui-boot-CQvujP8f.js","./control-ui-boot-BW_XZcbY.js","./control-ui-boot-__AsqpzJ.css","./markdown-runtime-BcrsAQtF.js","./dock-destination-controls-qvkD_2gG.js","./terminal-panel-registration-CCniUaOS.js","./scrollbar-styles-BYLTmsP_.js","./dock-layout-controller-uvZhgHTs.js","./browser-panel-BNW001UL.js","./desktop-panel-D3-Tqe5h.js","./chat-session-rail-3W0BOxYg.js","./session-discussion-panel-3-zZr__N.js","./composer-draft-store.runtime-ChgPeVSK.js","./swarm-roster-DwB60WZR.js","./chat-pane-placement.runtime-CS9vR24w.js","./device-placement-CSrN9cIf.js","./platform-label-BHGXql4m.js","./session-organizer-operations.runtime-Bya7cfJM.js","./worktree-preservation-ITy-qaJx.js","./input-dialog-BErqtvL-.js","./chat-github-publication-DibU-Fdo.js"])))=>i.map(i=>d[i]);
|
||
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Ci as t,Ei as n,Fi as r,Nr as i,Oi as a,Pr as o,Sn as s,an as c,bn as l,dn as u,er as d,hi as f,ki as p,mi as m,sn as h,un as g,vt as _,wn as v,yt as y}from"./control-ui-foundation-CeFMP1Ly.js";import{$c as b,Ac as x,Ao as S,Ar as C,Ba as w,Bc as ee,Cc as T,Da as te,Dc as E,Dr as ne,Dt as re,Ec as ie,Et as ae,Fr as D,Ft as O,G as oe,Ga as se,Ha as ce,Ia as le,Ic as k,Ir as ue,It as de,Ja as fe,Ka as pe,Ks as me,Lc as he,Lt as ge,Mr as _e,Na as A,Nc as ve,Nr as ye,Nt as j,Oo as be,Ot as xe,Pa as Se,Pc as Ce,Pr as we,Qa as Te,Qc as Ee,Rc as De,Rt as Oe,To as ke,Tr as Ae,Ut as je,Va as M,Vc as Me,W as Ne,Wa as Pe,Xc as Fe,Y as Ie,Ya as Le,_c as Re,ao as ze,bc as N,bo as Be,co as Ve,ei as He,fc as Ue,fl as We,fs as P,ft as Ge,gc as Ke,gl as qe,gt as Je,hc as Ye,ho as Xe,ir as Ze,ja as Qe,jc as $e,jo as et,jr as tt,jt as nt,l as rt,lo as it,lr as at,lt as ot,mc as F,ml as st,ms as I,ni as ct,nr as lt,ot as ut,pc as dt,po as L,ps as ft,qs as pt,rr as mt,rt as ht,so as gt,st as _t,ti as vt,tl as yt,u as bt,uo as R,ut as xt,vc as St,vo as Ct,vr as wt,vt as Tt,w as Et,wc as Dt,wr as Ot,xo as kt,yc as At,yo as jt,yr as Mt,zc as Nt}from"./control-ui-core-pH6nakZ-.js";import{E as Pt,G as z,J as B,O as Ft,W as It,Z as Lt,_ as Rt,at as V,b as zt,d as Bt,f as Vt,h as Ht,m as Ut,rt as H}from"./lit-runtime-BEtFSUCp.js";import{$ as Wt,$t as Gt,B as Kt,Dt as qt,Et as Jt,F as Yt,Ft as Xt,H as Zt,I as Qt,Jt as $t,K as en,Nt as tn,Ot as nn,Pt as rn,Qt as an,Rt as on,Tt as sn,U as cn,Ut as ln,Wt as un,Yt as dn,Z as fn,_n as pn,en as mn,et as hn,kt as gn,l as _n,ln as vn,m as yn,nt as bn,p as xn,qt as Sn,rt as Cn,s as wn,tt as Tn,u as En,wt as Dn,x as On,y as kn,zt as An}from"./control-ui-core-DGVkFhVB.js";import{C as jn,Ht as U,Lt as W,Mt as Mn,Nt as Nn,Q as Pn,Rt as Fn,S as In,St as Ln,T as Rn,Tt as zn,a as Bn,bt as Vn,c as Hn,dt as Un,et as Wn,g as Gn,l as Kn,o as qn,p as Jn,qt as G,u as Yn,ut as Xn,w as Zn,x as Qn,xt as $n,y as er}from"./control-ui-core-Br5DB0Zj.js";import{Bn as tr,Gn as nr,In as rr,Kn as ir,Ln as ar,Vn as or,Wn as sr,at as cr,ft as lr,mt as ur,pt as dr,qn as fr,zn as pr}from"./control-ui-boot-wpHCbPL9.js";import{a as K,i as mr,r as hr}from"./gateway-runtime-DUNO4Mi1.js";import{$c as gr,$t as _r,A as vr,Ao as yr,At as br,B as xr,Bu as Sr,C as Cr,Ca as wr,Cs as Tr,Ct as Er,Dl as Dr,Do as Or,Ds as kr,Dt as Ar,Ea as jr,El as Mr,Es as Nr,Et as Pr,Fs as Fr,G as Ir,Gc as Lr,Gi as Rr,Go as zr,Gs as Br,Gt as Vr,Gu as Hr,H as Ur,Hl as Wr,Ho as Gr,Ht as Kr,Hu as qr,I as Jr,Is as Yr,Iu as Xr,Ji as Zr,Jr as Qr,Js as $r,Ju as ei,K as ti,Ki as ni,Ko as ri,Ku as ii,La as ai,Ll as oi,Ml as si,Mo as ci,Mt as li,N as ui,Na as di,Nl as fi,Ns as pi,Nt as mi,O as hi,Ol as gi,Ot as _i,Pl as vi,Ps as yi,Q as bi,Qc as xi,Qr as Si,Qt as Ci,R as wi,Rc as Ti,Rl as Ei,Ss as Di,St as Oi,T as ki,Ta as Ai,Tl as ji,U as Mi,Uc as Ni,Uo as Pi,Ut as Fi,V as Ii,W as Li,Wi as Ri,Wt as zi,Xc as Bi,Xt as Vi,Yc as Hi,Yr as Ui,Yt as Wi,Zc as Gi,_ as Ki,_l as qi,_o as Ji,al as Yi,b as Xi,bd as Zi,bi as Qi,br as $i,bs as ea,c as ta,cd as na,cl as ra,cs as ia,ct as aa,dd as oa,dl as sa,ds as ca,dt as la,du as ua,ei as da,el as fa,en as pa,fi as ma,fo as ha,fs as ga,ft as _a,gd as va,gi as ya,gs as ba,gt as xa,hi as Sa,ho as Ca,hs as wa,ht as Ta,it as Ea,iu as Da,jt as Oa,k as ka,kl as Aa,ko as ja,ks as Ma,kt as Na,ld as Pa,li as Fa,ll as Ia,ls as La,lt as Ra,lu as za,mi as Ba,ms as Va,mt as Ha,ni as Ua,nl as Wa,nn as Ga,nr as Ka,nu as qa,oa as Ja,od as Ya,oi as Xa,on as Za,oo as Qa,pi as $a,pl as eo,ps as to,pt as no,q as ro,qi as io,qo as ao,qt as oo,qu as q,ri as so,rl as co,rn as lo,rr as uo,rt as fo,s as po,sd as mo,si as ho,st as go,ti as _o,tl as vo,tn as yo,tr as bo,ua as xo,ud as So,ui as Co,ul as wo,us as To,ut as Eo,uu as Do,vd as Oo,vl as ko,vt as Ao,wa as jo,ws as Mo,wt as No,xd as Po,xr as Fo,xs as Io,xt as Lo,y as Ro,yn as zo,z as Bo,zc as Vo,zl as Ho,zu as Uo}from"./control-ui-boot-Cdpgu1Gm.js";import{a as Wo,n as Go,o as Ko,r as qo}from"./control-ui-boot-CKTkvwFZ.js";import{_ as Jo,a as Yo,c as Xo,g as Zo,i as Qo,n as $o,o as es,r as ts,t as ns}from"./control-ui-boot-9_2QGLIL.js";import{$ as rs,$t as is,An as as,At as os,B as ss,Bn as cs,Bt as ls,C as us,Dn as ds,Dt as fs,En as ps,Et as ms,G as hs,Gn as gs,Gt as _s,H as vs,Hn as ys,Ht as bs,It as xs,J as Ss,Jt as Cs,K as ws,Kn as Ts,Kt as Es,Ln as Ds,Lt as Os,Mt as ks,Nn as As,Nt as js,On as Ms,Ot as Ns,Pn as Ps,Q as Fs,Rn as Is,Rt as Ls,S as Rs,T as zs,Tt as Bs,U as Vs,Un as Hs,Ut as Us,V as Ws,Vn as Gs,Vt as Ks,W as qs,Wn as Js,Wt as Ys,X as Xs,Xt as Zs,Y as Qs,Yt as $s,Z as ec,Zt as tc,_ as nc,_n as rc,a as ic,an as ac,b as oc,bn as sc,c as cc,cn as lc,d as uc,dn as dc,et as fc,f as pc,fn as mc,g as hc,h as gc,hn as _c,i as vc,in as yc,jn as bc,jt as xc,kn as Sc,kt as Cc,l as wc,m as Tc,mn as Ec,n as Dc,nn as Oc,o as kc,on as Ac,p as jc,pn as Mc,q as Nc,qt as Pc,r as Fc,rn as Ic,s as Lc,sn as Rc,t as zc,u as Bc,un as Vc,v as Hc,vn as Uc,w as Wc,x as Gc,y as Kc,yn as qc,zn as Jc,zt as Yc}from"./control-ui-boot-B1lcIXow.js";import{A as Xc,C as Zc,D as Qc,E as $c,M as el,N as tl,O as nl,P as rl,S as il,T as al,_ as ol,a as sl,b as cl,d as ll,f as ul,g as dl,h as fl,j as pl,k as ml,l as hl,m as gl,n as _l,o as vl,p as yl,s as bl,t as xl,u as Sl,v as Cl,w as wl,x as Tl,y as El}from"./control-ui-boot-Clhp68JE.js";import{$ as Dl,$t as Ol,An as kl,Ar as Al,At as jl,B as Ml,Bt as Nl,Cn as Pl,Cr as Fl,Ct as Il,D as Ll,Dn as Rl,Dr as zl,Dt as Bl,En as Vl,Er as Hl,Et as Ul,Fn as Wl,Fr as Gl,Ft as Kl,Gr as ql,Gt as Jl,Ht as Yl,I as Xl,Ir as Zl,It as Ql,J as $l,Jr as eu,Jt as tu,Kr as nu,Kt as ru,L as iu,Lr as au,Mn as ou,Mr as su,Mt as cu,N as lu,Nn as uu,Nr as du,Nt as fu,O as pu,On as mu,Or as hu,Ot as gu,Pn as _u,Pr as vu,Pt as yu,Q as bu,Qn as xu,Qt as Su,R as Cu,Rr as wu,Rt as Tu,Sn as Eu,Sr as Du,St as Ou,Tn as ku,Tr as Au,Tt as ju,Ut as Mu,V as Nu,Vt as Pu,Wr as Fu,Wt as Iu,X as Lu,Xt as Ru,Y as zu,Yn as Bu,Yt as Vu,Z as Hu,Zt as Uu,_ as Wu,_n as Gu,_r as Ku,_t as qu,an as Ju,at as Yu,b as Xu,bn as Zu,br as Qu,bt as $u,c as ed,cn as td,cr as nd,ct as rd,d as id,dn as ad,dr as od,dt as sd,en as cd,er as ld,et as ud,f as dd,fn as fd,fr as pd,ft as md,g as hd,gn as gd,gr as _d,gt as vd,h as yd,hn as bd,hr as xd,ht as Sd,in as Cd,it as wd,j as Td,jn as Ed,jr as Dd,jt as Od,kn as kd,kr as Ad,l as jd,ln as Md,lr as Nd,lt as Pd,m as Fd,mn as Id,mr as Ld,mt as Rd,nn as zd,nt as Bd,o as Vd,on as Hd,or as Ud,ot as Wd,p as Gd,pn as Kd,pr as qd,pt as Jd,qr as Yd,qt as Xd,rn as Zd,rt as Qd,s as $d,sn as ef,st as tf,tn as nf,tr as rf,tt as af,u as of,un as sf,ur as cf,ut as lf,v as uf,vn as df,vr as ff,vt as pf,wn as mf,wr as hf,wt as gf,xn as _f,xr as vf,xt as yf,y as bf,yn as xf,yr as Sf,yt as Cf,zr as wf,zt as Tf}from"./control-ui-boot-D1DWJlBr.js";import{a as Ef,c as Df,d as Of,f as kf,h as Af,i as jf,l as Mf,m as Nf,o as Pf,p as Ff,r as If,s as Lf,t as Rf,u as zf}from"./control-ui-boot-CQvujP8f.js";import{_t as Bf,a as Vf,ct as Hf,gt as Uf,jt as Wf,o as Gf,st as Kf}from"./control-ui-boot-BPFwXC8p.js";import"./control-ui-boot-BW_XZcbY.js";function qf(e,t){return!!(t.pendingRunId||t.sendState===`waiting-model`||e.retryable.has(t.id)||!e.durableSeen.has(t.id))}function Jf(e){let t=qe();return t&&!Zf.has(t)&&Zf.set(t,++Qf),`${t?Zf.get(t):0}\u0000${e.settings?.gatewayUrl?.trim()||`default`}\u0000${e.client?.recoveryScope??``}`}function Yf(e){let t=Jf(e),n=ep.get(t)??new $f(t);return ep.set(t,n),n.adoptSubscriptions(e),n}var Xf,Zf,Qf,$f,ep,tp;function np(){return(np=e((()=>{Pa(),Sr(),j(),cs(),pl(),Xf=[`sendRunId`,`sendAttempts`,`sendState`,`sendError`],Zf=new WeakMap,Qf=0,$f=class{constructor(e){this.ownerGatewayKey=e,this.hosts=new Map,this.panes=new Set,this.live=new Map,this.hydrating=new Set,this.unsubscribe=null}state(e){let t=this.hosts.get(e);if(t)return t;let n=Hr(e,e.sessionKey),r=new Set(this.outbox(e,n)?.queue.map(e=>e.id)),i={byScope:new Map,durableSeen:r,retryable:new Set};return e.chatQueue.length&&i.byScope.set(q(n),e.chatQueue.filter(t=>oa(e,t))),this.hosts.set(e,i),i}outbox(e,t){return Xr(e).find(({sessionKey:e,agentId:n})=>e===t.sessionKey&&n===t.agentId)}durable(e,t){return Xr(e).find(({queue:e})=>e.some(e=>e.id===t))}project(e,t){let n={...e};if(t.attachments){let r=new Map(t.attachments.map(e=>[e.id,e]));n.attachments=(e.attachments??t.attachments).map(e=>Object.assign({},e,r.get(e.id)))}for(let e of[`sendSubmittedAtMs`,`sendRequestStartedAtMs`])typeof t[e]==`number`&&(n[e]=t[e]);return n}snapshot(e,t){let n=q(t),r=this.outbox(e,t)?.queue??[],i=this.state(e),a=i.byScope.get(n)??[],o=new Map(a.map(e=>[e.id,e])),s=r.map(e=>{i.durableSeen.add(e.id);let t=o.get(e.id),r=this.live.get(n)?.get(e.id)?.item;return t?.pendingRunId||t?.sendState===`waiting-model`?t:r&&r.sendRunId===e.sendRunId?r:t&&t.sendRunId===e.sendRunId?this.project(e,t):e}),c=new Set(r.map(e=>e.id));return s.push(...a.filter(e=>!c.has(e.id)&&qf(i,e))),this.prune(e),s.toSorted(Oo)}syncHost(e,t={}){if(this.ownerGatewayKey!==Jf(e)){Yf(e).syncHost(e,t);return}So(e),e.chatQueue=this.snapshot(e,Hr(e,e.sessionKey));for(let t of e.chatQueue){let n=t.attachmentPayload?.key;if(!n||t.attachmentStorageError||this.hydrating.has(n)||t.attachments?.every(e=>nt(e)))continue;this.hydrating.add(n);let r=ml(e);tl(e,t).then(i=>{if(!r())return;let a=this.durable(e,t.id),o=a?.queue.find(e=>e.id===t.id);if(!(!a||o?.attachmentPayload?.key!==n)){if(i.status===`ready`){if(i.item.attachmentPayload?.key!==n&&!gs(e,a.sessionKey,t,i.item,a.agentId))return;this.keep(e,a,{...o,attachments:i.item.attachments,...i.item.attachmentPayload?.key===n?{}:{attachmentPayload:i.item.attachmentPayload,sendState:i.item.sendState,sendError:i.item.sendError}})}else gs(e,a.sessionKey,o,Xc(o,i.reason),a.agentId);this.publish(e)}}).finally(()=>this.hydrating.delete(n))}t.requestUpdate!==!1&&e.requestUpdate?.()}publish(e,t=!1){e&&this.syncHost(e);for(let n of this.panes)n!==e&&(t&&this.reconcile(n,this.state(n)),this.syncHost(n))}adoptSubscriptions(e){let t=tp.get(e)?.owner;if(!(!t||t===this)){for(let e of t.panes)if(Jf(e)===this.ownerGatewayKey){tp.get(e).owner=this,t.hosts.delete(e);for(let[n,r]of t.live){for(let[t,n]of r)n.owner===e&&r.delete(t);r.size||t.live.delete(n)}e.chatQueue=[],t.detach(e),this.attach(e)}}}attach(e){this.panes.add(e),this.unsubscribe??=ei(()=>this.publish(void 0,!0))}detach(e){this.panes.delete(e),this.panes.size||(this.unsubscribe?.(),this.unsubscribe=null),this.prune(e)}subscribe(e){let t={owner:this};return tp.set(e,t),this.attach(e),this.reconcile(e,this.state(e)),this.syncHost(e,{requestUpdate:!1}),()=>{tp.get(e)===t&&(tp.delete(e),t.owner.detach(e))}}reconcile(e,t){let n=new Set(Xr(e).flatMap(e=>e.queue.map(e=>e.id)));n.forEach(e=>t.durableSeen.add(e));for(let[e,r]of t.byScope)t.byScope.set(e,r.filter(e=>n.has(e.id)||qf(t,e)))}replace(e,t,n,r={}){let i=this.state(e),a=q(t),o=i.byScope.get(a)??[],s=new Map(o.map(e=>[e.id,e])),c=new Set(n.map(e=>e.id));for(let e of o)c.has(e.id)||i.retryable.delete(e.id);this.outbox(e,t)?.queue.forEach(e=>i.durableSeen.add(e.id)),i.byScope.set(a,n.map(e=>this.project(e,s.get(e.id)??e))),this.syncHost(e,r)}keep(e,t,n,r=!1){let i=this.state(e),a=q(t),o=(i.byScope.get(a)??[]).filter(e=>e.id!==n.id);o.push({...n,...t}),o.sort(Oo),i.byScope.set(a,o),r&&i.retryable.add(n.id),this.syncHost(e)}local(e,t){for(let[n,r]of e.byScope){let e=r.findIndex(e=>e.id===t);if(e>=0)return{key:n,queue:r,index:e}}}change(e,t,n,r=!1){let i=this.state(e),a=this.local(i,t);if(!a)return this.prune(e),null;let o=a.queue[a.index];if(n){let s=n(o);return a.queue[a.index]=s,r&&i.retryable.add(t),this.syncHost(e),s}i.retryable.delete(t);let s=this.durable(e,t)?.queue.find(e=>e.id===t);return s?(i.durableSeen.add(t),a.queue[a.index]=this.project(s,o)):(a.queue.splice(a.index,1),i.byScope.set(a.key,a.queue)),this.syncHost(e),o}hasVolatile(e,t){return this.hosts.get(e)?.retryable.has(t)??!1}anyPane(e){for(let t of this.panes)if(e(t))return!0;return!1}mayRemove(e,t,n){let r=this.live.get(q(t))?.get(n),i=e.chatQueue.find(e=>e.id===n),a=this.outbox(e,t)?.queue.find(e=>e.id===n);return!!(!r||r.owner===e||i&&a&&Xf.every(e=>i[e]===a[e]))}projectLive(e,t,n,r){let i=q(t),a=this.live.get(i)??new Map;r?(a.set(n,{item:r,owner:e}),this.live.set(i,a)):(a.delete(n),a.size||this.live.delete(i)),this.publish(e),this.prune(e)}allItems(e){let t=Xr(e).flatMap(t=>this.snapshot(e,t)),n=[...this.state(e).byScope.values()].flat(),r=new Map([...n,...t].map(e=>[e.id,e]));return this.prune(e),[...r.values()]}prune(e){let t=this.hosts.get(e);t&&!this.panes.has(e)&&![...t.byScope.values()].some(e=>e.some(e=>qf(t,e)))&&!this.live.size&&this.hosts.delete(e),!this.unsubscribe&&!this.live.size&&!this.hosts.size&&queueMicrotask(()=>{!this.unsubscribe&&!this.live.size&&!this.hosts.size&&ep.get(this.ownerGatewayKey)===this&&ep.delete(this.ownerGatewayKey)})}},ep=new Map,tp=new WeakMap})))()}function rp(e){return Zi(e)&&(e.sendState===void 0||e.sendState===`waiting-idle`)&&!e.localCommandName}function ip(e){return e.toSorted(Oo).find(rp)}function ap(e){return e.sendState===`sending`||e.sendState===`executing-command`}function op(e,t){return Yf(e).hasVolatile(e,t)}function sp(e,t){return Yf(e).durable(e,t)!==void 0}function cp(e,t){return t(e)||Yf(e).anyPane(e=>t(e))}function lp(e,t,n,r,i={}){let a=Hr(e,t,r??n.agentId);Yf(e).keep(e,a,n,i.retryable)}function up(e,t={}){Yf(e).syncHost(e,t)}function dp(e){return Yf(e).subscribe(e)}function fp(e,t,n,r,i,a){let o=t.trim(),s=!!(n&&n.length>0);if(!o&&!s)return null;let c={id:S(),text:o,createdAt:Date.now(),attachments:s?re(n??[]):void 0,refreshSessions:r,localCommandArgs:i?.args,localCommandName:i?.name,sessionKey:e.sessionKey,agentId:gt(e,e.sessionKey),...a?{sender:a}:{}};return lp(e,e.sessionKey,c,c.agentId),c}function pp(e,t,n,r,i){let a=t.trim(),o=!!(r&&r.length>0);if(!a&&!o)return;let s={id:S(),text:a,createdAt:Date.now(),attachments:o?re(r??[]):void 0,pendingRunId:n,...i?{sender:i}:{}};lp(e,e.sessionKey,s)}function mp(e,t,n){let r=Hr(e,t,n);return Yf(e).snapshot(e,r)}function hp(e,t,n,r,i={}){let a=Hr(e,t,r);Yf(e).replace(e,a,n,i)}function gp(e,t){return Yf(e).allItems(e).find(e=>e.id===t)??null}function _p(e,t,n){return yp(e,e.sessionKey,t,n)}function vp(e,t,n,r={}){return Yf(e).change(e,t,n,r.retryable)}function yp(e,t,n,r,i){let a=Yf(e),o=a.durable(e,n),s=o??Hr(e,t,i),c=o?.queue.find(e=>e.id===n),l=a.allItems(e).find(e=>e.id===n)??c;if(!l)return null;let u=r(l);return o?gs(e,o.sessionKey,l,u,o.agentId??l.agentId??u.agentId)?(u.sendState===`waiting-model`?a.keep(e,s,u):a.change(e,n),ap(u)?a.projectLive(e,s,n,u):a.projectLive(e,s,n),u):(ap(u)?a.syncHost(e):a.projectLive(e,s,n),null):a.change(e,n,()=>u)}function bp(e,t){let n=Yf(e),r=[];for(let{id:i,update:a}of t){let t=n.durable(e,i),o=t?.queue.find(e=>e.id===i),s=n.allItems(e).find(e=>e.id===i)??o;if(!s)return!1;r.push({id:i,stored:t,current:s,next:a(s)})}let i=r.filter(e=>e.stored),a=i[0]?.stored;if(a){let t=Ts(e,a.sessionKey,i.map(e=>({expected:e.current,next:e.next})),a.agentId);for(let r of i)t&&n.change(e,r.id),n.projectLive(e,a,r.id);if(!t)return!1}for(let t of r)t.stored||n.change(e,t.id,()=>t.next);return!0}function xp(e,t,n,r,i=Uo(e,t,n.agentId)){let a=Yf(e);return a.keep(e,i.scope,n),Jc(e,t,n,n.agentId,r,i)?(n.sendState!==`waiting-model`&&a.change(e,n.id),!0):!1}function Sp(e,t,n=e.sessionKey,r){let i=Yf(e),a=i.durable(e,t),o=a??Hr(e,n,r),s=a?.queue.find(e=>e.id===t)??null,c=i.allItems(e).find(e=>e.id===t)??s;return c&&!i.mayRemove(e,o,t)||c&&a&&!Js(e,a.sessionKey,t,c,a.agentId??c.agentId)?(i.syncHost(e),null):(c&&(i.projectLive(e,o,t),i.change(e,t)),i.publish(void 0,!0),c)}function Cp(e,t,n){return Sp(e,t)??(n?Sp(e,t,n):null)}function wp(e,t){if(!t?.length)return t?[]:void 0;let n=new Set((e.chatAttachments??[]).map(e=>e.id));return t.filter(e=>!n.has(e.id))}function Tp(e,t){let n=gp(e,t),r=n?Sp(e,t):null;return r&&de(wp(e,r.attachments)),r?`removed`:n?`rejected`:`absent`}function Ep(e,t,n){let r=Op(e,t,n);if(!r)return null;let i=Sp(e,r.item.id,r.outbox.sessionKey,r.outbox.agentId);return i?(de(wp(e,i.attachments)),i):null}function Dp(e,t){return e.id===t.id&&e.sendRunId===t.sendRunId&&e.sendAttempts===t.sendAttempts&&e.sendState===t.sendState&&e.agentId===t.agentId&&e.sessionKey===t.sessionKey&&e.orderKey===t.orderKey&&e.attachmentPayload?.key===t.attachmentPayload?.key}function Op(e,t,n){if(!t)return null;let r=q(n),i=Xr(e).find(e=>q(e)===r),a=i?.queue.find(e=>e.sendRunId===t);return a&&i?{item:a,outbox:i}:null}function kp(e,t){if(!t)return;let n=e.chatQueue.filter(e=>e.pendingRunId===t);hp(e,e.sessionKey,e.chatQueue.filter(e=>e.pendingRunId!==t));for(let t of n)de(wp(e,t.attachments))}function Ap(e){let t=Yf(e).allItems(e);for(let n of t)if(!(!n.sendRunId||n.sendState!==`sending`&&n.sendState!==`waiting-idle`)){if(op(e,n.id)){vp(e,n.id,e=>({...e,sendState:`unconfirmed`}));continue}yp(e,n.sessionKey??e.sessionKey,n.id,e=>({...e,sendState:`waiting-reconnect`}),n.agentId)}}function jp(){return(jp=e((()=>{Sr(),A(),et(),j(),np(),cs()})))()}function Mp(e,t,n=!1){return e.connected&&e.client&&!e.client.recoveryScopeReady?G(`chat.queue.connectionPending`):n||e.hasPendingInitialTurn?.(t)?G(`chat.queue.initialTurnPending`):null}function Np(e,t){return e.status===`error`?`Chat failed before the run started; try again.`:t===`detached`?`The active run ended before the detached message was accepted.`:`The run ended before the message was accepted.`}function Pp(e,t,n=!1){return Fp(e,t,n)>=0}function Fp(e,t,n=!1){return t.sendRunId?(Array.isArray(e)?e:[]).findIndex(e=>{if(!v(e)||n&&e.role!==`user`)return!1;let r=s(e.__openclaw)?.idempotencyKey??e.idempotencyKey;return r===t.sendRunId||r===`${t.sendRunId}:user`}):-1}function Ip(e){let t=[];for(let n of e??[]){let e=nt(n);if(!e)return null;t.push({...n,dataUrl:e,previewUrl:e})}return t}function Lp(e,t){let n=t.sendRunId,r=t.sessionKey??e.sessionKey,i=Ip(t.attachments);if(!n||!i)return;let a=Al({text:t.text,attachments:i,createdAt:t.createdAt,runId:n,...t.replyToId?{replyToId:t.replyToId}:{},...t.sender?{sender:t.sender}:{}});if(!a)return;if(L(e,r,t.agentId)){if(!Pp(e.chatMessages,t,!0)){let i=al(e,{sessionKey:r,agentId:t.agentId});$c(e,{type:`sendPending`,runId:n,message:a},{scope:i})}return}if(!e.chatMessagesBySession)return;let o={sessionKey:r,agentId:t.agentId};Pp(wu(e.chatMessagesBySession,e,o),t,!0)||su(e.chatMessagesBySession,e,o,a)}function Rp(e,t,n){let r=e.client,i=r??e,a=Vp.get(i)??new Map;Vp.set(i,a);let o=JSON.stringify([e.settings.gatewayUrl,r?.recoveryScope,q(n),t]),s=Op(e,t,n)?.item;if(!s){let t=a.get(o);return t&&Lp(e,t),`retired`}let c=e.connectionEpoch,l=e.connected,u=ml(e),d=()=>e.connected===l&&e.connectionEpoch===c&&u(),f=()=>Op(e,t,n)?.item,p=r=>{if(!d())return`stale`;let i=f();if(!i){let t=a.get(o);return t?(Lp(e,t),`retired`):`stale`}if(!Dp(i,s))return`stale`;Lp(e,r),a.delete(o),a.set(o,r),a.size>Bp&&a.delete(a.keys().next().value);let c=f();return!d()||!c||!Dp(c,s)?`stale`:Ep(e,t,n)?`retired`:`retained`},m=gp(e,s.id),h=Ip((m&&m.attachmentPayload?.key===s.attachmentPayload?.key&&m.attachments?.length===s.attachments?.length?m:s).attachments)??Ip(s.attachments);return h&&(!s.attachmentPayload&&!s.attachmentStorageError||h.length>0)?p({...s,attachments:h,attachmentStorageError:void 0}):tl(e,s,`handoff`).then(t=>{if(!d())return`stale`;if(t.status===`ready`){let e=Ip(t.item.attachments);if(e)return p({...s,attachments:e,attachmentStorageError:void 0})}let r=f();if(!r||!Dp(r,s))return`stale`;let i=t.status===`failed`?t.reason:`missing`;return yp(e,n.sessionKey,s.id,e=>Xc({...e,sendState:`unconfirmed`},i),n.agentId),`retained`})}function zp(e,n,r,i,a={}){let o=P(i);if(L(e,n,r)){e.lastError=a.inline?null:o,e.chatError=a.inline?null:o;return}let s=r?t(r):void 0,c=e.sessionsResult?.sessions.find(e=>F(e.key,n)&&(!T(n)||!s||e.agentId!==void 0&&t(e.agentId)===s));se({message:`${ke(n,c)}: ${o}`})}var J,Bp,Vp;function Hp(){return(Hp=e((()=>{U(),I(),kt(),A(),N(),Pe(),j(),jp(),cs(),Zc(),pl(),Zl(),Dd(),J=`Could not store this message for reconnect. Free browser storage or reconnect before sending.`,Bp=64,Vp=new WeakMap})))()}function Up(e){if(!e||typeof e!=`object`)return;let t=e,n=h(t.receivedToAckMs),r=h(t.loadSessionMs),i=h(t.prepareAttachmentsMs),a={...n===void 0?{}:{receivedToAckMs:n},...r===void 0?{}:{loadSessionMs:r},...i===void 0?{}:{prepareAttachmentsMs:i}};return Object.keys(a).length>0?a:void 0}function Wp(e,t){if(!e||typeof e!=`object`)return{runId:t,status:`started`};let n=e,r=typeof n.runId==`string`&&n.runId.trim()?n.runId.trim():t,i=n.status,a=Up(n.serverTiming);return{runId:r,status:i===`in_flight`||i===`ok`||i===`timeout`||i===`error`?i:`started`,...a?{serverTiming:a}:{}}}function Gp(e){return e?.status===`timeout`||e?.status===`error`}function Kp(){return(Kp=e((()=>{g()})))()}function qp(e,t,n,r,i,a){let o=io(e);if(o===`user`&&a)return Jp(xi(a),Ya(a)??``);let s=t?.name?.trim()||`Assistant`,c=t?.avatar?.trim()||``,l=yt(c),u=Fe(r??``),d=Cn(n),f=bn(n),p=Tn(n),m=o===`user`?B`
|
||
<svg viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
|
||
<circle cx="12" cy="8" r="4" />
|
||
<path d="M20 21a8 8 0 1 0-16 0" />
|
||
</svg>
|
||
`:o===`assistant`?B`
|
||
<svg viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
|
||
<path d="M12 2l2.4 7.2H22l-6 4.8 2.4 7.2L12 16l-6.4 5.2L8 14 2 9.2h7.6z" />
|
||
</svg>
|
||
`:o===`tool`?B`
|
||
<svg viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
|
||
<path
|
||
d="M12 15.5A3.5 3.5 0 0 1 8.5 12 3.5 3.5 0 0 1 12 8.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5m7.43-2.53a7.76 7.76 0 0 0 .07-1 7.76 7.76 0 0 0-.07-.97l2.11-1.63a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7.15 7.15 0 0 0-1.69-.98l-.38-2.65A.49.49 0 0 0 14 2h-4a.49.49 0 0 0-.49.42l-.38 2.65a7.15 7.15 0 0 0-1.69.98l-2.49-1a.5.5 0 0 0-.61.22l-2 3.46a.49.49 0 0 0 .12.64L4.57 11a7.9 7.9 0 0 0 0 1.94l-2.11 1.69a.49.49 0 0 0-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1c.52.4 1.08.72 1.69.98l.38 2.65c.05.24.26.42.49.42h4c.23 0 .44-.18.49-.42l.38-2.65a7.15 7.15 0 0 0 1.69-.98l2.49 1a.5.5 0 0 0 .61-.22l2-3.46a.49.49 0 0 0-.12-.64z"
|
||
/>
|
||
</svg>
|
||
`:B`
|
||
<svg viewBox="0 0 24 24" fill="currentColor" width="18" height="18">
|
||
<circle cx="12" cy="12" r="10" />
|
||
<text
|
||
x="12"
|
||
y="16.5"
|
||
text-anchor="middle"
|
||
font-size="14"
|
||
font-weight="600"
|
||
fill="var(--bg, #fff)"
|
||
>
|
||
?
|
||
</text>
|
||
</svg>
|
||
`,h=o===`user`?`user`:o===`assistant`?`assistant`:o===`tool`?`tool`:`other`;if(o===`user`&&f){let e=fa(f)??f;return Jp({fallback:sa({name:d}),imageUrl:e,pending:typeof e!=`string`},d)}return o===`user`&&p?B`<div class="chat-avatar ${h}" role="img" aria-label="${d}">
|
||
${p}
|
||
</div>`:c&&o===`assistant`?Yp(c)?i?.trim()&&c.startsWith(`/`)?B`<img
|
||
class="chat-avatar ${h} chat-avatar--logo"
|
||
src="${u}"
|
||
alt="${s}"
|
||
/>`:B`<img
|
||
class="chat-avatar ${h}"
|
||
src="${c}"
|
||
alt="${s}"
|
||
/>`:l?B`<div class="chat-avatar ${h}" role="img" aria-label="${s}">
|
||
${l}
|
||
</div>`:B`<img
|
||
class="chat-avatar ${h} chat-avatar--logo"
|
||
src="${u}"
|
||
alt="${s}"
|
||
/>`:o===`assistant`?B`<img
|
||
class="chat-avatar ${h} chat-avatar--logo"
|
||
src="${u}"
|
||
alt="${s}"
|
||
/>`:B`<div class="chat-avatar ${h}">${m}</div>`}function Jp(e,t){let n=B`<div
|
||
class="chat-avatar user chat-avatar--sender-initials"
|
||
style=${`background: hsl(${e.fallback.colorSeed%360} 48% 42%)`}
|
||
role="img"
|
||
aria-label="${t}"
|
||
>
|
||
${e.fallback.initials}
|
||
</div>`;return e.imageUrl?B`<span class=${Hi(`chat-avatar-slot`,e)}>
|
||
${Gi({view:e,fallbackSelector:`.chat-avatar-slot`,className:`chat-avatar user`,alt:t})}${n}
|
||
</span>`:n}function Yp(e){let t=e.trim();return t.startsWith(`blob:`)||b(t)}function Xp(e){return(e.hello?.snapshot)?.sessionDefaults?.defaultAgentId?.trim()||void 0}function Zp(e){let t=E(e.sessionKey);return t?.agentId?t.agentId:T(e.sessionKey)?k(e)||`main`:Xp(e)||`main`}function Qp(e){let t=e,n=(vm.get(t)??0)+1;return vm.set(t,n),n}function $p(e,t,n,r){return vm.get(e)===t&&e.sessionKey===n&&Zp(e)===r}function em(e,t){return`${Kf(`agentAvatar`,e,t)}?meta=1`}function tm(e){e.chatAvatarUrl=null}function nm(e){tm(e),e.chatAvatarSource=null,e.chatAvatarStatus=null,e.chatAvatarReason=null}function rm(e,t){e.chatAvatarUrl=t}function im(e,t,n){e.chatAvatarSource=n.source,e.chatAvatarStatus=n.status,e.chatAvatarReason=n.reason,rm(e,n.url),ym.set(e,t)}function am(e){let t=e?.kind===`snapshot`?[e.snapshot,...e.retired??[]]:e?.stale?[e.stale.snapshot,...e.stale.retired??[]]:[];for(let e of t)e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)}function om(e){for(let t of e.retired??[])t.url?.startsWith(`blob:`)&&URL.revokeObjectURL(t.url);e.retired=void 0}function sm(e){return Date.now()-e.cachedAt<xm}function cm(e){let t=e,n=Sm.get(t);if(n){for(let e of n.values())am(e);Sm.delete(t)}ym.delete(t)}function lm(e){Qp(e),cm(e),nm(e)}function um(e){let t=e,n=Sm.get(t);if(n)return n;let r=new Map;return Sm.set(t,r),r}function dm(e,t,n){for(e.delete(t),e.set(t,n);e.size>bm;){let t=e.keys().next().value;if(typeof t!=`string`)break;let n=e.get(t);e.delete(t),am(n)}}function fm(e,t,n){let r=t.get(n);if(r?.kind===`snapshot`&&sm(r))return Promise.resolve(r.snapshot);if(r?.kind===`pending`)return r.pending;let i=r?.kind===`snapshot`?r:void 0,a=gm(e,n).then(r=>{let o=t.get(n);return Sm.get(e)===t&&o?.kind===`pending`&&o.pending===a?r?dm(t,n,{kind:`snapshot`,snapshot:r,cachedAt:Date.now(),...i&&i.snapshot.url!==r.url?{retired:[i.snapshot,...i.retired??[]]}:{}}):i?dm(t,n,i):t.delete(n):r?.url?.startsWith(`blob:`)&&URL.revokeObjectURL(r.url),r??i?.snapshot??null});return dm(t,n,{kind:`pending`,pending:a,stale:i}),a}function pm(e){return e?{Authorization:e}:void 0}function mm(e){return e.startsWith(`/`)}function hm(e,t){return setTimeout(()=>e.abort(new DOMException(`${t} timed out`,`TimeoutError`)),Cm)}async function gm(e,t){let n=pm(Jt(e)),r=em(e.resourceBasePath,t),i=new AbortController,a=hm(i,`chat avatar metadata fetch`),o;try{let e=await fetch(r,{method:`GET`,...n?{headers:n}:{},signal:i.signal});if(!e.ok)return null;o=await e.json()}catch{return null}finally{clearTimeout(a)}let s=o.avatarStatus===`none`||o.avatarStatus===`local`||o.avatarStatus===`remote`||o.avatarStatus===`data`?o.avatarStatus:null,c={source:typeof o.avatarSource==`string`&&o.avatarSource.trim()?o.avatarSource.trim():null,status:s,reason:typeof o.avatarReason==`string`&&o.avatarReason.trim()?o.avatarReason.trim():null,url:null},l=typeof o.avatarUrl==`string`?o.avatarUrl.trim():``;if(!l||!b(l))return c;if(!mm(l))return{...c,url:l};if(!e.connected||Zp(e)!==t)return null;let u=new AbortController,d=hm(u,`chat avatar image fetch`);try{let e=await fetch(l,{method:`GET`,...n?{headers:n}:{},signal:u.signal});return e.ok?{...c,url:URL.createObjectURL(await e.blob())}:null}catch{return null}finally{clearTimeout(d)}}async function _m(e){if(!e.connected){cm(e),nm(e);return}let t=e.sessionKey,n=Qp(e),r=Zp(e);if(!r){$p(e,n,t,r)&&nm(e);return}let i=um(e),a=i.get(r);if(a?.kind===`snapshot`&&(dm(i,r,a),im(e,r,a.snapshot),om(a),sm(a)))return;let o=ym.get(e)===r;o||nm(e);let s=await fm(e,i,r);if($p(e,n,t,r)){if(s){im(e,r,s);let t=i.get(r);t?.kind===`snapshot`&&t.snapshot===s&&om(t)}else o||nm(e)}}var vm,ym,bm,xm,Sm,Cm;function wm(){return(wm=e((()=>{It(),Hf(),Dn(),hn(),Bi(),Ee(),Ri(),mo(),gr(),wo(),N(),vm=new WeakMap,ym=new WeakMap,bm=24,xm=6e4,Sm=new WeakMap,Cm=3e4})))()}function Tm(e){return l(l(e)?.__openclaw)?.runtimeActivityKind===`context_compaction`}function Em(e){let t=l(e);if(t?.role!==`custom`||t.customType!==Rm)return e;let n=l(t.__openclaw),r=l(t.details),{idempotencyKey:i,...a}=t;return{...a,role:`assistant`,content:[{type:`text`,text:G(`chat.composer.contextCompacted`)}],...typeof n?.runId==`string`?{runId:n.runId}:typeof r?.runId==`string`?{runId:r.runId}:{},__openclaw:{...n,runtimeActivityKind:`context_compaction`}}}function Dm(e){let t=e.command??G(`chat.systemNotice.guardian.requestedAction`);return e.source===`system`?{kind:`notice`,key:e.key,icon:`cpu`,label:G(`common.system`),text:e.message??``,timestamp:e.timestamp}:e.kind===`approved`?{kind:`notice`,key:e.key,icon:`shieldCheck`,label:G(`chat.systemNotice.guardian.approvedSummary`,{action:t}),text:``,timestamp:e.timestamp}:e.kind===`warning`?{kind:`notice`,key:e.key,icon:`shieldCheck`,label:G(`chat.systemNotice.guardian.warningLabel`),text:e.message??G(`chat.systemNotice.guardian.warningFallback`),timestamp:e.timestamp,tone:`danger`}:e.kind===`reviewing`||e.kind===`strict-review-required`?{kind:`notice`,key:e.key,icon:`shieldCheck`,label:G(`chat.systemNotice.guardian.strictReviewRequiredLabel`),text:G(`chat.systemNotice.guardian.strictReviewRequiredSummary`),timestamp:e.timestamp,tone:`danger`}:{kind:`notice`,key:e.key,icon:`shieldCheck`,label:G(`chat.systemNotice.guardian.deniedLabel`),text:G(`chat.systemNotice.guardian.deniedSummary`,{action:t,risk:e.riskLevel??G(`chat.systemNotice.guardian.unknownRisk`),rationale:e.rationale??G(`chat.systemNotice.guardian.noRationale`)}),timestamp:e.timestamp,tone:`danger`}}function Om(e,t,n){let r=e.tokensBefore,i=e.tokensAfter,a=typeof r==`number`&&Number.isFinite(r)&&typeof i==`number`&&Number.isFinite(i)&&r>i?Math.floor(r-i):null;return{kind:`divider`,key:typeof e.id==`string`?`divider:compaction:${e.id}`:`divider:compaction:${t}:${n}`,label:G(`chat.compaction.label`),icon:`foldVertical`,...a===null?{}:{metric:G(`chat.compaction.savedTokens`,{count:bt(a)})},description:G(`chat.compaction.description`),action:{kind:`session-checkpoints`,label:G(`chat.compaction.openCheckpoints`)},timestamp:t}}function km(e,t,n){return{kind:`divider`,key:typeof e.id==`string`?`divider:reset:${e.id}`:`divider:reset:${t}:${n}`,label:G(`chat.sessionReset.label`),icon:`rotateCcw`,description:G(`chat.sessionReset.description`),timestamp:t}}function Am(e){return typeof e.sendSubmittedAtMs==`number`||(e.sendAttempts??0)>0}function jm(e){return Am(e)&&!e.localCommandName&&(e.sendState===`failed`||e.sendState===`unconfirmed`||e.sendState===`waiting-idle`&&!!e.sendError)}function Mm(e){return Am(e)&&(e.sendState===`waiting-model`||e.sendState===`sending`||e.sendState===`waiting-reconnect`||jm(e))}function Nm(e,t,n,r,i,a){let o=r.find(e=>e.sendState===`sending`&&Mm(e))??r.find(Mm),s=o?.sendRunId??o?.pendingRunId,c=i.map(e=>e.runId).findLast(e=>typeof e==`string`&&e.length>0),l=a.map(e=>e?.runId).findLast(e=>typeof e==`string`&&e.length>0),u=t??c??l??s,d=zm.get(e),f=d&&(!u||!d.runId||d.runId===u)?d:null,p=[f?.startedAt,n,...r.filter(Mm).map(e=>e.createdAt),...i.map(e=>e.ts),...a.map(e=>{let t=e?.__openclawToolStreamReceivedAt;return typeof t==`number`?t:null})].filter(e=>typeof e==`number`&&Number.isFinite(e)),m=p.length>0?Math.min(...p):Date.now(),h=f?.key??`stream-working:${JSON.stringify([e,u??`anonymous-${++Bm}`])}`;return zm.set(e,{key:h,runId:u??f?.runId??null,startedAt:m}),{key:h,runId:u??f?.runId??null,startedAt:m}}function Pm(e){zm.delete(e)}function Fm(){zm.clear(),Hm.clear(),Bm=0}function Im(e){return typeof e?.outputTokens==`number`?e.outputTokens:null}function Lm(e,t,n,r=null){let i=Hm.get(e),a=typeof n?.endedAt==`number`?n.endedAt:null;if(i&&r!==null&&r>(i.liveOutputTokens??-1)&&(i.liveOutputTokens=r),t)return!i||!i.watching?Hm.set(e,{watching:!0,baselineKnown:n!==void 0,baselineEndedAt:a,baselineOutputTokens:Im(n),liveOutputTokens:r,absorbedTerminal:!1,settleStartedAt:null,settled:null}):i.baselineKnown?a!==null&&a!==i.baselineEndedAt&&(i.baselineEndedAt=a,i.absorbedTerminal=!0):n!==void 0&&(i.baselineKnown=!0,i.baselineEndedAt=a,i.baselineOutputTokens=Im(n)),null;if(!i)return null;if(i.watching=!1,i.settled)return i.settled;if(i.absorbedTerminal||!i.baselineKnown)return Hm.delete(e),null;if(i.settleStartedAt===null)i.settleStartedAt=Date.now();else if(Date.now()-i.settleStartedAt>Vm)return Hm.delete(e),null;if(a===null||i.baselineEndedAt!==null&&a<=i.baselineEndedAt)return null;Hm.delete(e);let o=n?.runtimeMs;if(n?.status!==`done`||typeof o!=`number`||!Number.isFinite(o))return null;let s=Im(n),c={runtimeMs:o,outputTokens:s!==null&&s!==i.baselineOutputTokens?s:i.liveOutputTokens};return Hm.set(e,{...i,settled:c}),c}var Rm,zm,Bm,Vm,Hm;function Um(){return(Um=e((()=>{U(),Et(),Rm=`openclaw.context-compaction`,zm=new Map,Bm=0,Vm=3e4,Hm=new Map})))()}function Wm(e){if(!l(e))return null;try{return ni(e)}catch{return null}}function Gm(e){return e.messages.some(({message:e})=>{let t=l(l(e)?.provenance);return t?.kind===`inter_session`&&t.sourceTool===`sessions_send`})}function Km(e){return l(l(e.messages[0]?.message)?.__openclaw)?.turnBoundary===!0}function qm(e){if(e.kind===`notice`)return e.startsTurn===!0;if(e.kind===`message`){let t=Wm(e.message);return t?io(t.role).toLowerCase()===`user`:!1}if(e.kind!==`group`)return!1;let t=e.role.toLowerCase();return t===`user`||Km(e)||t===`assistant`&&Gm(e)}function Jm(){return(Jm=e((()=>{Ri()})))()}function Ym(e,t,n){let r=e,i=Array.isArray(r.content)?[...r.content]:typeof r.content==`string`?[{type:`text`,text:r.content}]:typeof r.text==`string`?[{type:`text`,text:r.text}]:[];return i.some(e=>{if(!e||typeof e!=`object`)return!1;let n=e;return n.type===`canvas`&&n.preview?.kind===`canvas`&&(t.viewId&&n.preview.viewId===t.viewId||t.url&&n.preview.url===t.url)})?e:{...r,content:[...i,{type:`canvas`,preview:t,...n?{rawText:n}:{}}]}}function Xm(e,t){let r=n(t);return!r||n(Aa(e)).includes(r)}function Zm(e,t,n){for(let r=t+1;r<e.length;r+=1){let t=e[r],i=Wm(t);if(!i)continue;let a=io(i.role).toLowerCase();if(a===`user`||a===`system`)return!1;if(a===`assistant`&&Xm(t,n))return!0}return!1}function Qm(e){if(!Wm(e))return null;let t=Sa(e,`preview`);for(let n=t.length-1;n>=0;n--){let r=t[n];if(r?.preview?.kind===`canvas`)return{preview:r.preview,text:r.outputText??null,timestamp:Th(e)}}let n=Aa(e)??void 0,r=e,i=typeof r.toolName==`string`?r.toolName:typeof r.tool_name==`string`?r.tool_name:void 0,a=ya(n,i);return a?.kind===`canvas`?{preview:a,text:n??null,timestamp:Th(e)}:null}function $m(e,t){let n=ih(l(e)??{}),r=t.preview.viewId??t.preview.url;return n&&r?JSON.stringify([n,r]):null}function eh(e,t=e.timestamp){return Ym({role:`assistant`,content:[],...t==null?{}:{timestamp:t}},e.preview,e.text)}function th(e,t){let n=null;for(let r=t-1;r>=0&&(n=Th(e[r]),n==null);--r);let r=null;for(let n=t+1;n<e.length&&(r=Th(e[n]),r==null);n+=1);return n!=null&&r!=null?n<r?Math.min(n+1,r):r:n==null?r:n+1}function nh(e,t,n=0,r=e.length){let i=n,a=r;for(let o=n;o<r;o+=1){let n=e[o];if(!n||!qm(n))continue;let r=n.kind===`notice`?n.timestamp:n.kind===`message`?Wm(n.message)?.timestamp??null:null;if(t!=null&&r!=null&&r>t){a=o;break}i=o+1}let o=e.map((e,t)=>{if(t<i||t>=a||e.kind!==`message`)return null;let n=l(e.message);return(typeof n?.role==`string`?n.role.toLowerCase():``)===`assistant`?{index:t,timestamp:Wm(e.message)?.timestamp??null}:null}).filter(Boolean);if(o.length===0)return null;if(t==null)return o[o.length-1]?.index??null;let s=null,c=null;for(let e of o)if(e.timestamp!=null){if(e.timestamp<=t){s={index:e.index,timestamp:e.timestamp};continue}c={index:e.index,timestamp:e.timestamp};break}if(s&&c){let e=t-s.timestamp;return c.timestamp-t<e?c.index:s.index}return s?.index??c?.index??o.at(-1)?.index??null}function rh(e,t,n=0,r=e.length){if(t==null)return r;for(let i=n;i<r;i+=1){let n=e[i];if(n?.kind!==`message`)continue;let r=Wm(n.message);if(r&&io(r.role).toLowerCase()===`user`&&r.timestamp!=null&&r.timestamp>t)return i}return r}function ih(e){for(let t of[`tool_call_id`,`toolCallId`,`tool_use_id`,`toolUseId`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim()}}function ah(e,t){return Xo(e)??ih(t)}function oh(e){return l(l(e)?.__openclaw)?.kind===`pending-send`}function sh(e){let t=l(l(e)?.__openclaw),n=t?.state,r=t?.id;return t?.kind!==`pending-send`||n!==`failed`&&n!==`unconfirmed`||typeof r!=`string`?null:{id:r,state:n,...typeof t.error==`string`?{error:t.error}:{}}}function ch(e){let t=l(e),n=typeof t?.messageId==`string`&&t.messageId.trim()?t.messageId:t?.id;return ir(e,{messageId:n})}function lh(e){let t=ch(e);return t?.role===`user`&&t.runId?`send:${t.runId}`:null}function uh(e){let t=ch(e)?.id;return oh(e)||t?.startsWith(`pending:`)?null:t??null}function dh(e){let t=lh(e);if(t)return t;let n=ch(e);return n?.isImported?n.externalSource?`import:${n.externalSource}`:n.sequence===null?null:`import-seq:${n.sequence}`:n?.id?`id:${n.id}`:n?.sequence==null?null:`seq:${n.sequence}`}function fh(e){if(e&&typeof e==`object`){let t=jh.get(e);if(t)return t}let t=l(e),n=[typeof t?.role==`string`?t.role:``,typeof t?.toolCallId==`string`?t.toolCallId:``,t?Aa(e):``].join(`\0`),r=`p${eo(n).toString(36)}${n.length.toString(36)}`;return e&&typeof e==`object`&&jh.set(e,r),r}function ph(e,t=0){let n=e.map(dh),r=new Map;for(let e of n)e&&r.set(e,(r.get(e)??0)+1);let i=new Map;return e.map((e,a)=>{let o=n[a],s=o==null||(r.get(o)??0)>1?`${o??`legacy`}:projection:${fh(e)}`:o??`legacy`,c=i.get(s)??0;return i.set(s,c+1),Ah(e,a+t,`${s}:${c}`)})}function mh(e){if(oh(e))return null;let t=Wm(e);if(!t)return null;let n=io(t.role).toLowerCase();if(n!==`assistant`&&n!==`user`)return null;let r=ch(e);return r?.isImported?r.externalSource?`${n}:import:${r.externalSource}`:r.sequence===null?null:`${n}:import-seq:${r.sequence}`:r?.id?`${n}:${r.id}`:null}function hh(e){let t=Wm(e);if(!t)return!1;let n=io(t.role).toLowerCase();return(n===`user`||n===`assistant`)&&!(t.senderLabel??``).trim()}function gh(e,t){let n=t.trim();return n?e.replace(RegExp(`^${Wf(n)}(?::|:|-|—)?[ \\t]+`),``):e}function _h(e){let t=Wm(e);if(!t||t.content.length===0)return null;let n=[];for(let e of t.content){if(e.type!==`text`||typeof e.text!=`string`)return null;n.push(e.text)}return{role:io(t.role).toLowerCase(),senderLabel:(t.senderLabel??``).trim(),senderKey:na(t.sender),text:n.join(`
|
||
`)}}function vh(e){let t=_h(e);return t?.role===`assistant`&&t.text.trim()?t:null}function yh(e,t){let n=vh(e),r=vh(t);if(!n||!r||n.role!==r.role||!!n.senderLabel==!!r.senderLabel)return!1;let i=n.senderLabel?n:r,a=n.senderLabel?r:n;return i.text===a.text||gh(i.text,i.senderLabel)===a.text}function bh(e){if(oh(e))return null;let t=_h(e);if(!t||!t.role||t.role===`tool`)return null;let{role:n}=t,r=t.text.trim().replace(/\s+/g,` `);return r?`${n}:${n===`user`||n===`assistant`?t.senderLabel:``}:${t.senderKey??``}:${r}`:null}function xh(e){let t=[],n=null,r=null,i=!1;for(let a of e){if(a.kind!==`message`){t.push(a),n=null,r=null,i=!1;continue}let e=bh(a.message),o=mh(a.message),s=ch(a.message),c=o===null&&s?.isImported===!0&&s.externalSource===null&&s.sequence===null,l=t[t.length-1];if(o&&r===o&&l?.kind===`message`&&yh(l.message,a.message)){!hh(l.message)&&hh(a.message)&&(t[t.length-1]=a,n=e);continue}if(e&&n===e&&l?.kind===`message`&&!c&&!i&&!(o&&r&&o!==r)){l.duplicateCount=(l.duplicateCount??1)+1;continue}t.push(a),n=e,r=o,i=c}return t}function Sh(e,t=Wm(e)){if(!t)return!1;let n=io(t.role),r=n===`assistant`&&t.senderLabel?.trim(),i=n===`user`&&vi(e).length;return!!(n===`tool`||t.content.length||t.replyTarget||r||i)}function Ch(e){let t=Zr(e);return t.trim().length>0?t:``}function wh(e){return Al({text:e.text,attachments:e.attachments,createdAt:e.createdAt,runId:e.sendRunId??e.pendingRunId,replyToId:e.replyToId,sender:e.sender,pending:{id:e.id,state:e.sendState,error:e.sendError}})}function Th(e){return c(l(e)?.timestamp)??null}function Eh(e){switch(e.kind){case`message`:return Th(e.message);case`divider`:case`notice`:return e.timestamp;case`stream`:case`question`:return e.startedAt;case`reading-indicator`:return null}return null}function Dh(e,t){let n=e.reduce((e,t)=>{let n=Eh(t);return n==null?e:e==null||n>e?n:e},null);return n!=null&&t<=n?n+1:t}function Oh(e,t){let n=t?.afterKey?e.findIndex(e=>e.key===t.afterKey):-1,r=t?.beforeKey?e.findIndex(e=>e.key===t.beforeKey):-1;return{minimum:n+1,maximum:r>=0?r:e.length}}function kh(e,t,n,r){let i=new Map;for(let e of t){let t=Eh(e);t!=null&&i.set(e.key,t)}let a=t.map((e,t)=>{let n=Eh(e),a=r.get(e.key),o=a?i.get(a):null;return{item:e,index:t,predecessorKey:a,effectiveTimestamp:n!=null&&o!=null?Math.max(n,o):n}}).toSorted((e,t)=>e.effectiveTimestamp==null&&t.effectiveTimestamp==null?e.index-t.index:e.effectiveTimestamp==null?1:t.effectiveTimestamp==null?-1:e.effectiveTimestamp===t.effectiveTimestamp?e.predecessorKey===t.item.key?1:t.predecessorKey===e.item.key?-1:e.index-t.index:e.effectiveTimestamp-t.effectiveTimestamp);for(let{item:t,effectiveTimestamp:r}of a){let{minimum:i,maximum:a}=Oh(e,n.get(t.key));if(r==null){e.splice(a,0,t);continue}let o=e.findIndex((e,t)=>{if(t<i||t>=a)return!1;let n=Eh(e);return n==null||n>r});o===-1?e.splice(a,0,t):e.splice(o,0,t)}}function Ah(e,t,n){let r=l(e)??{},i=typeof r.toolCallId==`string`?r.toolCallId:``,a=typeof r.role==`string`?r.role:`unknown`,o=typeof r.id==`string`&&r.id?r.id:null,s=typeof r.messageId==`string`&&r.messageId?r.messageId:null,c=o??s,u=typeof r.timestamp==`number`?r.timestamp:null;return i?`tool:${a}:${i}:${n??c??(u==null?t:`${u}:${t}`)}`:n?`msg:${n}`:c?`msg:${c}`:u==null?`msg:${a}:${t}`:`msg:${a}:${u}:${t}`}var jh;function Mh(){return(Mh=e((()=>{nr(),g(),lr(),Qo(),si(),Ri(),mo(),Qi(),Jm(),Dd(),jh=new WeakMap})))()}function Nh(e,t,n){let r=[];for(let i of e)t.some(e=>{let t=ir(e);return t?.role===`user`&&t.id===i.id})||n?.trim()&&!Xm(i.message,n)||(r.push({kind:`message`,key:`pending-input:${i.id}`,message:i.message}),r.push({kind:`notice`,key:`pending-input:${i.id}:state`,timestamp:i.acceptedAt,text:G(i.state===`queued`?`chat.pendingInputs.queued`:i.state===`cancelled`?`chat.pendingInputs.cancelled`:`chat.pendingInputs.interrupted`)}));return r}function Ph(e){let t=Rh.get(e);return t?.sessionKey===e.sessionKey&&t.sessionId===(e.currentSessionId??null)&&t.agentId===he(e)?t:void 0}function Fh(e){Rh.delete(e)}function Ih(e,t,n){Rh.set(e,{sessionKey:e.sessionKey,sessionId:e.currentSessionId??null,agentId:he(e),page:t??{items:[],total:0},before:n,loading:!1});let r=new Set(t?.items.flatMap(e=>e.runId?[e.runId]:[]));for(let t of e.chatQueue)t.sendRunId&&r.has(t.sendRunId)&&Tp(e,t.id);e.requestUpdate?.()}async function Lh(e,t){let n=Ph(e),r=e.client;if(!n||n.loading||!r||!e.connected)return;let i=e.connectionEpoch;n.loading=!0,n.error=void 0,e.requestUpdate?.();let a=()=>Ph(e)===n&&e.client===r&&e.connected&&e.connectionEpoch===i;try{let i=await r.request(`chat.history`,{sessionKey:e.sessionKey,agentId:n.agentId,limit:20,...t===void 0?{}:{pendingBefore:t}});a()&&i.sessionId===n.sessionId&&Ih(e,i.pendingInputs,t)}catch(e){a()&&(n.error=P(e))}finally{n.loading=!1,a()&&e.requestUpdate?.()}}var Rh;function zh(){return(zh=e((()=>{nr(),U(),I(),N(),jp(),Mh(),Rh=new WeakMap})))()}function Bh(e){let t=ir(e);if(t?.runId)return t.runId;let n=l(e);return Hl(e)??p(n?.runId)??p(l(n?.openclawStreamFallback)?.runId)}function Vh(e){let t=l(e);if(n(t?.role)!==`assistant`)return;let r=l(t?.openclawStreamFallback),i=p(r?.itemId);return i?{itemId:i,...Uh(Bh(e))}:void 0}function Hh(e){return Vh(e)!==void 0}function Uh(e){let t=p(e);return t?{runId:t}:void 0}function Wh(e){let t=p(e);return t?{boundaryId:`send:${t}`}:void 0}function Gh(e){return e.kind===`question`?void 0:e.runId}function Kh(e){return e.kind===`question`?void 0:e.boundaryId}function qh(e){if(e.kind!==`message`)return!1;let t=Wm(e.message);return t?io(t.role).toLowerCase()===`user`:!1}function Jh(e){let t=e.findLastIndex(qh),n=e[t];return t>=0&&n?{afterKey:n.key}:null}function Yh(e,t){let n=`send:${t}`,r=e.findIndex(e=>e.kind===`message`&&qh(e)&&lh(e.message)===n),i=e[r];if(r<0||!i)return null;let a=e.slice(r+1).find(qh);return{afterKey:i.key,...a?{beforeKey:a.key}:{}}}function Xh(e,t,n,r){if(typeof t!=`string`||!t.trim())return n==null?null:r;let i=Yh(e,t);return t===n?i?{afterKey:i.afterKey}:r:i||n==null?i:r?.afterKey?{beforeKey:r.afterKey}:null}function Zh(e,t,n){let r=new Map,i={};for(let t of e)if(t.kind===`divider`&&r.clear(),qm(t)||t.kind===`divider`)i.beforeKey=t.key,i={afterKey:t.key};else if(t.kind===`message`)for(let e of Sf(t.message)){if(!e.runId)continue;let t=ff(e.runId,e.id);r.set(t,r.has(t)&&r.get(t)!==i?null:i)}for(let e of t){let t=Sf(e.message).map(e=>e.runId?r.get(ff(e.runId,e.id)):void 0),[i]=t;i&&t.every(e=>e===i)&&n.set(e.key,i)}}function Qh(){return(Qh=e((()=>{nr(),Ri(),Mh(),Jm(),Fl(),Qu()})))()}function $h(e){let t=new Set;for(let n of e){if(n.kind!==`group`||n.role!==`user`||!n.sender)continue;let e=na(n.sender);e&&t.add(e)}if(t.size<2)return e;let n;for(let t of e)t.kind===`group`&&(t.role===`user`?n=t.sender:t.role===`assistant`&&n&&(t.replyToSender=n));return e}function eg(e){let t=[],n=null,r=null;for(let i of e){if(i.kind!==`message`){n&&=(t.push(n),null),t.push(i);continue}let e=ni(i.message),a=io(e.role),o=a===`user`||a===`assistant`?e.senderLabel??null:null,s=a===`user`?e.sender:void 0,c=e.timestamp||Date.now(),u=a===`assistant`||a===`tool`?Bh(i.message):void 0,d=a===`user`?Ld(i.message):null,f=a===`user`?d?`send:${d}`:lh(i.message):null,p=a===`user`||a===`assistant`,m=l(l(i.message)?.__openclaw)?.turnBoundary===!0,h=a===`assistant`&&n?.role===`assistant`&&Hh(n.messages[0]?.message)!==Hh(i.message),g=a===`assistant`&&n?.role===`assistant`&&Tm(n.messages[0]?.message)!==Tm(i.message);!n||m||n.role!==a||n.runId!==u||r!==f||h||g||p&&(!s?.identity&&n.senderLabel!==o||na(n.sender)!==na(s))?(n&&t.push(n),r=f,n={kind:`group`,key:`group:${a}:${i.key}`,role:a,senderLabel:o,...s?{sender:s}:{},messages:[{message:i.message,key:i.key,duplicateCount:i.duplicateCount}],timestamp:c,isStreaming:!1,...u?{runId:u}:{}}):n.messages.push({message:i.message,key:i.key,duplicateCount:i.duplicateCount})}return n&&t.push(n),$h(t)}function tg(e){let t=[],n=[],r=()=>{let[e]=n;if(e){let r=Gh(e),i=Kh(e);t.push({kind:`stream-run`,key:`stream-run:${e.key}`,parts:n,...r?{runId:r}:{},...i?{boundaryId:i}:{}}),n=[]}};for(let i of e){if(i.kind===`stream`||i.kind===`reading-indicator`){let e=n[0];e&&(Gh(e)!==i.runId||Kh(e)!==i.boundaryId)&&r(),n.push(i);continue}r(),t.push(i)}return r(),t}function ng(e){if(e.kind!==`group`||e.isStreaming||rg(e,!1))return!1;let t=e.role.toLowerCase();return t===`tool`||t===`assistant`&&!Gm(e)}function rg(e,t=!0){return e.messages.some(({message:e})=>t&&Aa(e)?.trim()?!0:(Wm(e)?.content??[]).some(e=>e.type===`text`?t&&!!e.text?.trim():!Yo(e.type)&&!es(e.type)))}function ig(e){return e.role.toLowerCase()===`assistant`&&!Gm(e)&&!e.messages.every(({message:e})=>Tm(e))&&rg(e)}function ag(e){return e.kind===`group`&&!e.isStreaming&&ig(e)}function og(e){let t=e[0];return!t||t.kind===`stream-run`?[]:t.kind===`group`?t.role.toLowerCase()===`user`?t.messages.map(({message:e})=>e):[]:t.kind===`message`&&qm(t)?[t.message]:[]}function sg(e,t){let[r,i,a,o,...s]=n(t.sessionKey).split(`:`);if(!(r===`agent`&&i&&a===`dashboard`&&o&&s.length===0)||t.searchActive)return e;let c=[],l=[];for(let t of e)t.kind!==`stream-run`&&qm(t)&&l.length>0&&(c.push(l),l=[]),l.push(t);l.length>0&&c.push(l);let{continuationTurnIndexes:u,precedingContinuationTurnIndexes:d}=cf(c,og),f=c.map((e,t)=>{if(u.has(t))return-1;for(let t=e.length-1;t>=0;--t){let n=e[t];if(n&&ag(n))return t}return-1}),p=f.map((e,t)=>e>=0?c[t]?.[e]:void 0);for(let e=c.length-2;e>=0;--e){let t=u.get(e);!p[e]&&t!==void 0&&(p[e]=p[t])}let m=new Set;if(t.runWorking){let e=c.length-1;for(m.add(e);;){let t=d.get(e);if(t===void 0)break;e=t,m.add(e)}}let h=[];for(let[e,t]of c.entries()){if(m.has(e)||t.some(e=>e.kind===`stream-run`||e.kind===`group`&&e.isStreaming)){h.push(...t);continue}let n=f[e]??-1,r=p[e];if(!r){h.push(...t);continue}let i=n>=0?n-1:t.length-1,a=i+1;for(let e=i;e>=0;--e){let n=t[e];if(!n||!ng(n))break;a=e}let o=t.slice(a,i+1),s=o[0];if(!s){h.push(...t);continue}let l=t[0],d=(l&&l.kind!==`stream-run`&&qm(l)&&`timestamp`in l?l.timestamp:null)??s.timestamp,g=r.timestamp,_=g>d?g-d:null,v=c[u.get(e)??-1]?.[0];h.push(...t.slice(0,a)),h.push({kind:`work-group`,key:`work:${n>=0||!v?r.key:v.key}`,groups:o,durationMs:_}),h.push(...t.slice(i+1))}return h}function cg(e){let t=new Set;for(let n of e){if(n.kind===`stream-run`){n.runId&&t.add(n.runId);continue}if(n.kind!==`group`||n.runId===void 0)continue;let e=n.role.toLowerCase()!==`tool`;(n.isStreaming||rg(n,e))&&t.add(n.runId)}return t}function lg(e,t={}){if(t.searchActive)return e;let n=cg(e),r=e=>{let t=e.role.toLowerCase();return!e.isStreaming&&e.runId!==void 0&&!n.has(e.runId)&&(t===`tool`||t===`assistant`&&!Gm(e))&&!rg(e,!1)},i=[],a=[],o=()=>{let[e]=a;e&&(i.push(a.length===1?e:{kind:`activity-run`,key:`activity:${e.key}`,groups:a}),a=[])};for(let t of e){let e=t.kind===`group`&&r(t);if(t.kind===`group`&&(t.role.toLowerCase()===`tool`||e)){let n=a[a.length-1];n&&n.runId!==t.runId&&!(e&&r(n))&&o(),a.push(t);continue}o(),i.push(t)}return o(),i}function ug(){return(ug=e((()=>{Qo(),si(),Ri(),mo(),Um(),Mh(),Qh(),Jm(),od()})))()}function dg(e){return{type:`tool_result`,id:e.callId,name:e.name,text:e.outputText??``,details:e.details,isError:e.isError,exitCode:e.exitCode}}function fg(e,t){let n=l(e.message);if(!n)return[];let r=Array.isArray(n.content)?n.content:[],i=e=>{let t=l(e)?.type;return Yo(t)||es(t)},a=r.filter(i);if(a.some(e=>!ah(l(e),n))){let t=[...Sa(n,e.key)];if(r=r.flatMap(e=>{if(!i(e))return[e];let r=l(e),a=ah(r,n),o=Yo(r.type),s=t.findIndex(e=>o===Object.hasOwn(e,`args`)&&(!a||e.callId===a));if(s<0)return[];let c=t.splice(s,1)[0],u={id:c.callId,name:c.name,details:c.details};return[...o?[{...r,...u,arguments:c.args}]:[],...!o||c.completed||c.outputText!==void 0?[dg(c)]:[]]}),n={...n,content:r},a=r.filter(e=>i(e)&&ah(l(e),n)),a.length===0)return[]}let o=a.length===0;if(o){let[t]=Sa(n,e.key);if(!t?.callId)return[];a=[dg(t)]}let s={item:e,message:n,index:t,standalone:o,remaining:r.filter(e=>!a.includes(e)&&(!o||l(e)?.type!==`text`))};return a.map(e=>{let t=l(e),r=ah(t,n),i=Yo(t.type),a=n.__openclawToolStreamLive===!0,[o]=Sa({...n,content:[t]});return{source:s,id:r,call:i,runId:p(t.runId)??ir(n)?.runId??p(n.runId),name:p(t.name)??p(n.toolName)??p(n.tool_name)??`tool`,rank:i?a?1:2:a?n.__openclawToolStreamResultReceived===!0?2:1:3,block:{...t,id:r,...i?{arguments:o?.args}:{text:o?.outputText},...o?.details===void 0?{}:{details:o.details},...o?.isError===void 0?{}:{isError:o.isError},...o?.exitCode===void 0?{}:{exitCode:o.exitCode}}}})}function pg(e,t){if(!e)return t;let[n,r]=t.rank>=e.rank?[e,t]:[t,e],i=l(n.block.details),a=l(r.block.details);return{...r,name:r.name===`tool`?n.name:r.name,block:{...Object.fromEntries(Object.entries(n.block).filter(([,e])=>e!==void 0)),...Object.fromEntries(Object.entries(r.block).filter(([,e])=>e!==void 0)),...i&&a?{details:{...i,...a}}:{},...r.call?{arguments:r.block.arguments??n.block.arguments}:{text:r.block.text}}}}function mg(e){let t=e.flatMap((e,t)=>e.kind===`message`?fg(e,t):[]);if(t.length===0)return e;let n=new Map;for(let t of e)if(t.kind===`message`){for(let e of Sf(t.message))if(e.runId){let t=n.get(e.id)??new Set;t.add(e.runId),n.set(e.id,t)}}let r=e=>{let t=n.get(e.id);return e.runId??=t?.size===1?t.values().next().value:void 0,ff(e.runId??``,e.id)},i=new Map;for(let e of t){let t=r(e),n=i.get(t)??new Set;e.name!==`tool`&&n.add(e.name.toLowerCase()),i.set(t,n)}let a=new Map,o=new Map;for(let e of t){o.set(e.source.index,e.source);let t=r(e),n=i.get(t),s=e.name===`tool`&&n.size===1?n.values().next().value:e.name.toLowerCase(),c=JSON.stringify([t,s]),l=a.get(c)??{first:e.source.index,attachments:[],projections:[]};l.projections.push(e),e.call?l.call=pg(l.call,e):l.result=pg(l.result,e),e.source.message.__openclawToolStreamLive===!0&&(l.live=e.source.message),e.source.standalone&&(l.attachments.push(...e.source.remaining),e.source.remaining=[]),a.set(c,l)}let s=new Map,c=new Map,u=new Set(o.values());for(let e of a.values()){let t=new Set(e.projections.map(e=>e.source));(t.size>1||e.projections.length>Number(!!e.call)+Number(!!e.result))&&t.forEach(e=>u.delete(e))}for(let e of a.values()){let t=e.call??e.result;if(u.has(t.source))continue;let n=t.source.message,a=l(n.__openclaw),o=ts(a?.transcriptPosition)?.activity?t.source.index:e.first,s=e.result,d=s!==void 0&&s.rank>1,f=n.messageId??a?.id??s?.source.message.messageId??l(s?.source.message.__openclaw)?.id,p=[...e.call?[{...e.call.block,name:e.call.name}]:[],...s?[{...s.block,name:e.call?.name??s.name}]:[],...e.attachments],m=JSON.stringify([t.source.index,t.runId,!!e.live,d,f,e.live?.__openclawToolStreamDiffStat,e.live?.__openclawToolStreamReceivedAt,(i.get(r(t))?.size??0)>1?t.name:void 0]),h=c.get(m);if(h){h.item.message.content.push(...p),h.index=Math.min(h.index,o);continue}let g={...t.source.item,key:`${t.source.item.key}:invocation:${r(t)}:${t.name}`,message:{...n,role:e.call?`assistant`:n.role,runId:t.runId,content:p,...f?{messageId:f}:{},...e.live?{__openclawToolStreamLive:!0,__openclawToolStreamResultReceived:d,__openclawToolStreamDiffStat:d?void 0:e.live.__openclawToolStreamDiffStat,__openclawToolStreamReceivedAt:e.live.__openclawToolStreamReceivedAt}:{}}};c.set(m,{item:g,index:o})}for(let{item:e,index:t}of c.values()){let n=s.get(t)??[];n.push(e),s.set(t,n)}return e.flatMap((e,t)=>{let n=o.get(t);if(!n||u.has(n))return[e];let r=s.get(t)??[];if(n.remaining.length>0){if(r.length>0){let e=r.map(e=>({message:e.message,blocks:e.message.content}));e.forEach(({message:e})=>{e.content=[]});let t=e[0],i=Array.isArray(n.message.content)?n.message.content:[];for(let r of i){if(n.remaining.includes(r)){t.message.content.push(r);continue}let i=l(r)??{},a=ah(i,n.message);for(let n of e){let e=n.blocks.filter(e=>{let t=l(e);return t?.id===a&&(!i.name||i.name===t?.name)});e.length>0&&(n.message.content.push(...e),n.blocks=n.blocks.filter(t=>!e.includes(t)),t=n)}}e.forEach(e=>e.message.content.push(...e.blocks))}else r.unshift({...n.item,message:{...n.message,content:n.remaining,toolCallId:void 0,tool_call_id:void 0,toolUseId:void 0,tool_use_id:void 0,toolName:void 0,tool_name:void 0}})}return r})}function hg(e){let t=[],n=[];for(let r of e)qm(r)||r.kind===`divider`?(t.push(...mg(n),r),n=[]):n.push(r);return t.push(...mg(n)),t}function gg(){return(gg=e((()=>{nr(),Qo(),$o(),Qi(),Mh(),Jm(),Qu()})))()}function _g(e){let t=[],n=e.toolMessages.filter(e=>l(e)!==null),r=e.pendingInputs??[],i=new Set(r.map(e=>e.runId)),a=ns(e.messages.filter(t=>!Ei(t)&&!(or(t)&&i.has(ir(t)?.runId??``))&&(e.persistCommentary!==!1||!Hh(t)))),o=ph(a),s=ph(n,a.length),c=n.flatMap((e,t)=>{let n=Qm(e);return n?[{...n,message:e,index:t}]:[]}),u=e.searchOpen===!0&&!!e.searchQuery?.trim(),d=new Set;for(let n=0;n<a.length;n++){let r=Em(a[n]),i=o[n]??Ah(r,n),s=Wm(r);if(!s)continue;let c=l(r)??{},f=c.__openclaw;if(f&&f.kind===`compaction`){t.push(Om(f,s.timestamp??Date.now(),n));continue}if(f&&f.kind===`reset`){t.push(km(f,s.timestamp??Date.now(),n));continue}let p=io(s.role);if(p===`system`){let e=Aa(r);e?.trim()&&t.push({kind:`notice`,key:i,text:e,timestamp:s.timestamp});continue}let m=s.role.toLowerCase()===`toolresult`,h=m?Qm(r):null;if(h){let e=$m(r,h);e&&d.add(e)}let g=h!=null&&(!u||Zm(a,n,e.searchQuery??``));if(h&&g&&t.push({kind:`message`,key:`${i}:canvas`,message:eh(h,h.timestamp??th(a,n))}),!e.showToolCalls&&m)continue;let _=e.searchQuery??``;if(e.searchOpen&&_.trim()&&!Xm(r,_)||!Sh(r,s)&&s.role.toLowerCase()!==`assistant`)continue;let v=l(c.provenance);if(p===`user`&&v?.kind===`internal_system`){let e=Nd(typeof v.sourceTool==`string`?v.sourceTool:void 0),n=e?.summaryKey?G(e.summaryKey):Aa(r)?.replace(/^\[System\] /u,``);if(n?.trim()){let a=lh(r);t.push({kind:`notice`,key:i,icon:e?.icon??`cpu`,label:G(e?e.labelKey:`common.system`),...e?.startsTurn===!1?{}:{startsTurn:!0},...e?.collapsedBody?{collapsedBody:!0}:{},text:n,timestamp:s.timestamp,...a?{boundaryId:a}:{}})}continue}t.push({kind:`message`,key:i,message:r})}let f=e.queue??[],m=f.filter(e=>!i.has(e.sendRunId??``)&&!Pp(a,e,!0)),h=m.filter(t=>t.sendState===`sending`||t.sendState===`waiting-model`||t.sendState===`waiting-reconnect`&&e.runId!=null&&t.sendRunId===e.runId),g=m.filter(e=>!h.includes(e)),_=g.reduce((e,t)=>e==null?t.createdAt:Math.min(e,t.createdAt),null),v=[],y=(n,r)=>{if(!Mm(n))return;let i=wh(n);if(!i)return;let a=e.searchQuery??``;if(e.searchOpen&&a.trim()&&!Xm(i,a))return;let o={kind:`message`,key:n.sendRunId?`msg:send:${n.sendRunId}:0`:`pending-send:${n.id}`,message:i},s=r===void 0?-1:t.findIndex(e=>e.kind===`message`&&e.message===r);s===-1?t.push(o):t.splice(s,0,o)};for(let e of h){let t=e.sendRunId;y(e,t?a.find(e=>hf(e,t)):void 0)}let b=Jh(t);for(let n of c){let r=$m(n.message,n);if(r&&d.has(r))continue;let i=l(n.message)?.runId,o=Xh(t,i,e.runId,b),{minimum:c,maximum:f}=Oh(t,o??void 0),p=nh(t,n.timestamp,c,f);if(p==null){if(u)continue;let e=rh(t,n.timestamp,c,f),r=t[e],i=r?.kind===`message`?Th(r.message):null,o=i==null?_:_==null?i:Math.min(i,_),l=n.timestamp!=null&&o!=null?Math.min(n.timestamp,o):n.timestamp;t.splice(e,0,{kind:`message`,key:`${s[n.index]??Ah(n.message,n.index+a.length)}:canvas`,message:eh(n,l)});continue}let m=t[p];!m||m.kind!==`message`||(t[p]={...m,message:Ym(m.message,n.preview,n.text)})}t=t.filter(e=>e.kind!==`message`||Sh(e.message));let x=e.streamSegments,S=new Map,C;for(let e of x){let t=p(e.afterBoundaryRunId)??C;t&&S.set(e,t),C=p(e.boundaryRunId)??C}let w=x.filter(ma),ee=x.filter(e=>!ma(e)&&e.boundaryMarker!==!0),T=n.map((e,t)=>({key:s[t]??Ah(e,t+a.length),message:e})),te=new Map,E=new Map,ne=(e,t,n)=>e.set(t,e.has(t)?null:n);for(let e of T){let t=l(e.message),n=p(t?.toolCallId);if(typeof n==`string`&&n.trim()){let r=p(t?.runId);r&&te.set(ff(r,n),e.key),ne(E,n,e.key)}}let re=Math.max(ee.length,n.length),ie=null,ae=new Map,D=new Map,O=(n,r,i,a)=>{let o=Xh(t,r,e.runId,b),s=i?Yh(t,i)?.afterKey:void 0,c=a?Yh(t,a):void 0;(o||s||c)&&D.set(n,{...o,...c?.afterKey?{afterKey:c.afterKey}:{},...c?.beforeKey?{beforeKey:c.beforeKey}:{},...s?{beforeKey:s}:{}})};if(!u){e.archiveNotice&&v.push(e.archiveNotice);for(let t of e.guardianNotices??[]){let e=Dm(t);v.push(e),O(e.key,t.runId)}}let oe=new Map,se=new Map,ce=new Map,le=new Map;for(let e of ee){let t=p(e.toolCallId),n=p(e.boundaryRunId),r=S.get(e);if(!t)continue;let i=p(e.runId);i&&n&&oe.set(ff(i,t),n),n&&ne(se,t,n),i&&r&&ce.set(ff(i,t),r),r&&ne(le,t,r)}let k=(e,t,n,r)=>(n?e.get(ff(n,r)):void 0)??t.get(r)??void 0;for(let t=0;t<re;t++){if(t<ee.length){let n=ee[t];if(!n)continue;let r=Ch(n.text),i=$a(n),a=i?Ba(r,ie):r;if(i&&(ie=Co(ie,r)),a.length>0&&n.persisted!==!0){let r=`stream-seg:${e.sessionKey}:${t}`,i={kind:`stream`,key:r,text:a,startedAt:n.ts,isStreaming:!1,...Uh(n.runId),...Wh(S.get(n)??n.runId)};v.push(i),O(i.key,n.runId,n.boundaryRunId,S.get(n));let o=n.toolCallId?.trim(),s=o?k(te,E,p(n.runId),o):void 0;s&&ae.set(s,r)}}let n=T[t];if(n&&e.showToolCalls){let e={kind:`message`,key:n.key,message:n.message};v.push(e);let t=l(n.message),r=p(t?.toolCallId),i=p(t?.runId);O(e.key,i,r?k(oe,se,i,r):void 0,r?k(ce,le,i,r):void 0)}}for(let t of w){let n=Ch(t.text);if(n.length===0)continue;let r={kind:`stream`,key:`stream-seg:${e.sessionKey}:${t.itemId}`,text:n,startedAt:t.ts,isStreaming:!1,...Uh(t.runId),...Wh(S.get(t)??t.runId)};v.push(r),O(r.key,t.runId,t.boundaryRunId,S.get(t))}for(let t of e.questionPrompts??[]){if(t.status===`pending`||!t.sessionKey||!F(t.sessionKey,e.sessionKey))continue;let n={kind:`question`,key:`question:${t.id}`,questionId:t.id,startedAt:t.createdAtMs};v.push(n),t.runId&&O(n.key,t.runId)}Zh(t,T,D),kh(t,v,D,ae);let ue=e.stream===null&&e.loading===!0&&t.length===0,de=e.stream!==null&&e.stream.trim().length===0,fe=e.runWorking===!0&&!ue||de||f.some(e=>e.sendState===`sending`&&Mm(e));e.runWorking!==!0&&e.stream===null&&!fe&&Pm(e.sessionKey);let pe=null,me=()=>pe??=Nm(e.sessionKey,e.runId??null,e.streamStartedAt,f,x,n);if(e.stream!==null){let n=Ch(e.stream),r=Fa(x,Ch),i=Ba(n,r);if(i.length>0&&!Ho(i).shouldSkip){let n=me(),r=e.runId??n.runId,a={kind:`stream`,key:C?`${n.key}:after:${C}`:n.key,text:i,startedAt:Dh(t,e.streamStartedAt??Date.now()),isStreaming:!0,...Uh(r),...Wh(C??r)},o=C??p(e.runId),s=o?Yh(t,o):null;if(s){let{maximum:e}=Oh(t,s);t.splice(e,0,a)}else t.push(a)}}if(fe){let n=me(),r=e.runId??n.runId;t.push({kind:`reading-indicator`,key:n.key,startedAt:n.startedAt,...Uh(r),...Wh(C??r)})}for(let e of g)y(e);return t.push(...Nh(r,a,e.searchOpen?e.searchQuery:void 0)),eg(xh(hg(t)))}function vg(){return(vg=e((()=>{tr(),nr(),$o(),U(),oi(),si(),Ri(),N(),zh(),Um(),Hp(),ug(),Mh(),Qh(),gg(),Jm(),nd(),Fl(),Qu()})))()}function yg(e){return e.kind===`group`?[e]:e.kind===`work-group`||e.kind===`activity-run`?e.groups:[]}function bg(e){if(e.kind===`stream-run`)return e.runId;let t=yg(e),n=t[0]?.runId;return n&&t.every(e=>e.runId===n)?n:void 0}function xg(e){let t=l(e),n=typeof t?.stopReason==`string`?t.stopReason.toLowerCase():``;return Au(e)!==null||l(t?.openclawAbort)?.aborted===!0||[`aborted`,`cancelled`,`canceled`,`timeout`,`timed_out`].includes(n)}function Sg(e){return yg(e).some(e=>e.messages.some(({message:e})=>xg(e)||l(e)?.stopReason===`error`))}function Cg(e){return e.kind===`stream-run`?e.parts.some(e=>e.kind===`reading-indicator`||e.kind===`stream`&&e.isStreaming):yg(e).some(e=>e.isStreaming)}function wg(e){return e.kind===`stream-run`?e.boundaryId:void 0}function Tg(e){let t=e.messages[0]?.message,n=ir(t);if(!qm(e))return;let r=n?.runId;return r?`send:${r}`:n?.id?`entry:${n.id}`:void 0}function Eg(e){return e.role===`user`||Gm(e)}function Dg(e){let t=yg(e)[0];return t&&qm(t)?t:void 0}function Og(e,t,n){return`agent-run:${JSON.stringify(n?[e,t,n]:[e,t])}`}function kg(e,t){return t??e.flatMap(e=>e.kind===`stream-run`?e.parts:[]).find(e=>e.kind===`stream`&&e.key.includes(`:after:`))?.key}function Ag(e){return e.parts.flatMap(yg)}function jg(e,t){let n=l(e),r=Bf(e),i=n?.stopReason,a=l(n?.__openclaw);return!Aa(e)?.trim()||Hh(e)||xg(e)||r===`commentary`||i===`toolUse`||i===`error`||a?.runtimeActivityKind===`context_compaction`||a?.mirrorOrigin===`codex-app-server`&&a.runTerminal!==!0?!1:!t||r===`final_answer`||i===`stop`}function Mg(e){let t=e.flatMap(yg).flatMap(e=>e.role===`assistant`?e.messages:[]).findLast(({message:e})=>jg(e,!0));if(t)return t;let n=e.at(-1);if(n?.kind!==`group`||n.role!==`assistant`)return null;let r=n.messages.at(-1);return r&&jg(r.message,!1)?r:null}function Ng(e){if(e.outcome.kind!==`active`)return;let t=e.parts.flatMap(e=>e.kind===`stream-run`?e.parts:[]);return t.length>0&&e.parts.every(e=>e.kind===`stream-run`&&e.parts.every(e=>e.kind===`reading-indicator`))?t:void 0}function Pg(e){return e.kind===`group`||e.kind===`work-group`||e.kind===`activity-run`||e.kind===`stream-run`}function Fg(e,t={}){if(t.searchActive)return e;let n=[],r,i,a,o=[],s=(e=!1)=>{!a||!r||o.length===0||(n.push({kind:`agent-run-frame`,key:Og(a,r,kg(o,i)),runId:a,boundaryId:r,outcome:e?{kind:`failed`}:o.some(Cg)?{kind:`active`}:{kind:`completed`,actionOwner:Mg(o)},parts:o}),o=[],a=void 0)};for(let t of e){if(!Pg(t)){s(),n.push(t),r=t.kind===`notice`&&t.startsTurn?t.boundaryId:void 0,i=r?void 0:t.key;continue}let e=t,c=Dg(e);if(c){s(),i=void 0;let e=Tg(c);if(Eg(c)||!e){n.push(t),r=e;continue}r=e}let l=wg(e);l&&l!==r&&(s(),r=l);let u=bg(e);if(r&&u&&Sg(e)){a&&a!==u&&s(),a=u,o.push(e),s(!0),r=void 0,i=t.key;continue}if(!r||!u){s(),n.push(t),r=void 0,i=t.key;continue}a&&a!==u&&s(),a=u,o.push(e)}return s(),n}function Ig(){return(Ig=e((()=>{nr(),Uf(),si(),Qh(),Jm(),Fl()})))()}function Lg(e){if(e){i_.delete(e);return}i_.clear(),Fm(),a_.clear(),o_.clear(),c_.clear(),l_.clear(),u_.clear(),d_.clear()}function Rg(e,t){return e.role===t.role&&e.senderLabel===t.senderLabel&&JSON.stringify(e.sender)===JSON.stringify(t.sender)&&JSON.stringify(e.replyToSender)===JSON.stringify(t.replyToSender)&&e.isStreaming===t.isStreaming&&e.runId===t.runId&&e.messages.length===t.messages.length&&e.messages.every((e,n)=>{let r=t.messages[n];return r!==void 0&&e.key===r.key&&e.message===r.message&&e.duplicateCount===r.duplicateCount})}function zg(e,t){if(e.kind!==t.kind||e.key!==t.key)return!1;switch(t.kind){case`group`:return e.kind===`group`&&Rg(e,t);case`message`:return e.kind===`message`&&e.message===t.message&&e.duplicateCount===t.duplicateCount;case`notice`:return e.kind===`notice`&&e.text===t.text&&e.label===t.label&&e.startsTurn===t.startsTurn&&e.timestamp===t.timestamp;case`divider`:return e.kind===`divider`&&e.label===t.label&&e.metric===t.metric&&e.description===t.description&&e.timestamp===t.timestamp&&e.action?.kind===t.action?.kind&&e.action?.label===t.action?.label;case`stream`:return e.kind===`stream`&&e.text===t.text&&e.startedAt===t.startedAt&&e.isStreaming===t.isStreaming&&e.runId===t.runId&&e.boundaryId===t.boundaryId;case`reading-indicator`:return e.kind===`reading-indicator`&&e.startedAt===t.startedAt&&e.runId===t.runId&&e.boundaryId===t.boundaryId;case`question`:return e.kind===`question`&&e.questionId===t.questionId&&e.startedAt===t.startedAt}return!1}function Bg(e,t){if(e.length===0||t.length===0)return t;let n=new WeakMap,r=new Map;for(let t of e)if(t.kind===`group`)for(let e of t.messages)e.message&&typeof e.message==`object`&&n.set(e.message,t),r.set(e.key,t);let i=new Set(t.filter(e=>e.kind===`group`).map(e=>e.key)),a=new Set,o=t.map(e=>{if(e.kind!==`group`)return e;let t=new Map;for(let[i,o]of e.messages.entries()){let s=o.message&&typeof o.message==`object`?n.get(o.message)??r.get(o.key):r.get(o.key);if(!s||a.has(s.key)||s.role!==e.role||s.runId!==e.runId||s.senderLabel!==e.senderLabel||na(s.sender)!==na(e.sender))continue;let c=t.get(s);t.set(s,{overlap:(c?.overlap??0)+1,lastMatchIndex:i})}let o=null;for(let[e,n]of t)(!o||n.overlap>o.overlap||n.overlap===o.overlap&&n.lastMatchIndex>o.lastMatchIndex)&&(o={group:e,...n});return!o||o.group.key!==e.key&&i.has(o.group.key)?e:(a.add(o.group.key),e.key===o.group.key?e:{...e,key:o.group.key})}),s=new Map(e.map(e=>[`${e.kind}\u0000${e.key}`,e])),c=o.map(e=>{let t=s.get(`${e.kind}\u0000${e.key}`);return t&&zg(t,e)?t:e});return c.length===e.length&&c.every((t,n)=>t===e[n])?e:c}function Vg(e,t){return e.sessionKey===t.sessionKey&&e.archiveNotice?.key===t.archiveNotice?.key&&e.archiveNotice?.label===t.archiveNotice?.label&&e.runId===t.runId&&e.locale===t.locale&&e.messages===t.messages&&e.toolMessages===t.toolMessages&&e.guardianNotices===t.guardianNotices&&e.streamSegments===t.streamSegments&&e.streamStartedAt===t.streamStartedAt&&e.queue===t.queue&&e.pendingInputs===t.pendingInputs&&e.showToolCalls===t.showToolCalls&&e.persistCommentary===t.persistCommentary&&e.runWorking===t.runWorking&&e.runActive===t.runActive&&e.questionPrompts===t.questionPrompts&&e.loading===t.loading&&e.searchOpen===t.searchOpen&&e.searchQuery===t.searchQuery}function Hg(e,t){return e.stream===t.stream&&Vg(e,t)}function Ug(e,t){return e.stream!==null&&t.stream!==null&&Vg(e,t)}function Wg(e){return JSON.stringify([e.sessionKey,e.runId??null,e.streamStartedAt])}function Gg(e,t,n,r,i){let a=e[t];if(a?.kind!==`stream`||!a.isStreaming||n!==Wg(i)||i.stream===null)return!1;let o=Ba(Ch(i.stream),r);return o.length===0||Ho(o).shouldSkip?!1:(e[t]={...a,text:o},!0)}function Kg(e){return e.findIndex(e=>e.kind===`stream`&&e.isStreaming)}function qg(e){let t=i_.get(e.paneId);t||(t=new Map,i_.set(e.paneId,t));let n=ql(t,e.sessionKey,()=>({input:null,items:[],liveStreamIdentity:null,liveStreamIndex:-1,liveStreamPrefix:null}));if(n.input&&Hg(n.input,e))return n.items;if(n.input&&Ug(n.input,e)&&Gg(n.items,n.liveStreamIndex,n.liveStreamIdentity,n.liveStreamPrefix,e))return n.input=e,n.items;let r=Bg(n.items,_g(e));return n.input=e,n.items=r,n.liveStreamIndex=Kg(r),n.liveStreamIdentity=n.liveStreamIndex===-1?null:Wg(e),n.liveStreamPrefix=Fa(e.streamSegments,Ch),r}function Jg(e){return s_.get(e)??0}function Yg(e,t,n){e.has(t)&&e.get(t)===n||(e.set(t,n),s_.set(e,Jg(e)+1))}function Xg(e,t){e.delete(t)&&s_.set(e,Jg(e)+1)}function Zg(e){return ql(a_,e,()=>new Map)}function Qg(e){for(let[t,n]of o_)if(F(t,e))return t!==e&&(o_.delete(t),eu(o_,e,n)),n;return ql(o_,e,()=>new Map)}function $g(e){return e.flatMap(e=>e.kind===`group`?e.messages.flatMap(e=>Sa(e.message,e.key).map(({args:e,name:t})=>({args:e,name:t}))):[])}function e_(e){for(let[t,n]of c_)if(F(t,e))return t!==e&&(c_.delete(t),eu(c_,e,n)),n;return ql(c_,e,()=>new Map)}function t_(e){return Array.from(e).toSorted(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}:${t.revision}`).join(`\0`)}function n_(e){return ql(l_,e,()=>new Set)}function r_(e,t,n,r=!1){let i=Zg(e),a=n_(e),o=nu(d_,e),s=nu(u_,e)??!1;if(o?.items===t&&o.isFilteredProjection===r&&s===n)return;let c=new Set;for(let e of t)if(e.kind===`group`)for(let t of e.messages){let e=Sa(t.message,t.key);for(let r=0;r<e.length;r++){let e=`${t.key}:toolcard:${r}`;c.add(e),!a.has(e)&&(Yg(i,e,n),a.add(e))}if(!Rr(t.message))continue;let r=`toolmsg:${t.key}`;c.add(r),!a.has(r)&&(Yg(i,r,n),a.add(r))}if(n&&!s)for(let e of a)Yg(i,e,!0);if(!r)for(let e of a)c.has(e)||(a.delete(e),Xg(i,e));eu(d_,e,{items:t,isFilteredProjection:r}),eu(u_,e,n)}var i_,a_,o_,s_,c_,l_,u_,d_;function f_(){return(f_=e((()=>{oi(),Ri(),mo(),Qi(),N(),Um(),vg(),Mh(),Yd(),ug(),Ig(),i_=new Map,a_=new Map,o_=new Map,s_=new WeakMap,c_=new Map,l_=new Map,u_=new Map,d_=new Map})))()}function p_(e){if(!e)return null;let t=e.placement;if(t&&t.state!==`local`){if(t.state!==`active`)return null;if(t.runner?.kind===`device`){let e=p(t.runner.deviceId);return t.runner.status===`available`&&e?`node:${e}`:null}return p(t.environmentId)??null}let n=p(e.execNode);return n?`node:${n}`:`gateway`}function m_(e){let t=e.movingKey===e.row?.key||e.row?.placementMove!==void 0&&e.row.placementMove.error===void 0,n=e.reclaimingKey===e.row?.key,r=Nr(e.row?.placement),i=M(e.gatewaySnapshot,{method:`sessions.move`,requiredScope:`operator.write`}),a=M(e.gatewaySnapshot,{method:`sessions.reclaim`,requiredScope:`operator.write`}),o=e.row?.placement?.state,s=o===`active`?e.row?.placement?.runner:void 0,c=s?.kind===`device`&&s.status===`offline`;return{moving:t,moveDisabledReason:t?G(`common.loading`):n?G(`sessionsView.actionUnavailable`):o===`active`?i.allowed?void 0:i.reason:G(`sessionsView.actionUnavailable`),reclaimDisabledReason:n?G(`common.loading`):c?G(`sessionsView.offlineDeviceStopUnavailable`):r?.blocksActiveRun&&e.row?.hasActiveRun===!0?G(`sessionsView.activeRun`):r?.method===`sessions.reclaim`?a.allowed?void 0:a.reason:G(`sessionsView.actionUnavailable`)}}function h_(){return(h_=e((()=>{Mo(),U(),Ua(),w(),so()})))()}function g_(e){e.restore&&de([...e.attachments,...Object.values(e.composerFallbacks??{}).flatMap(e=>e.attachments)])}function __(e,t){for(let n=(e?.length??0)-1;n>=0;--n)t(e[n])&&g_(e.splice(n,1)[0])}function v_(e,t,n){let r=A_.get(e);!r&&n&&(r=new Map,A_.set(e,r));let i=r?.get(t);if(!i&&n&&(i=[],r?.set(t,i)),i){let e=Date.now();__(i,t=>t.expiresAt<=e)}return i}function y_(e,t,n,r){let i=v_(e,t,!0);__(i,e=>F(e.sessionKey,n));let a={sessionKey:n,...r,expiresAt:Date.now()+O_};for(i.push(a),globalThis.setTimeout(()=>{v_(e,t,!1)},O_);i.length>k_;)g_(i.shift())}function b_(e,t,n){let r=v_(e,t,!1),i=r?.findIndex(e=>F(e.sessionKey,n));if(!r||i===void 0||i<0)return null;let{expiresAt:a,sessionKey:o,...s}=r.splice(i,1)[0];return s}function x_(e,t,n){__(v_(e,t,!1),e=>F(e.sessionKey,n))}function S_(e,t){for(let n of A_.get(e)?.values()??[])__(n,e=>t.some(({key:t,retireBeforeRevision:n})=>F(e.sessionKey,t)&&e.expiresAt-O_<n))}function C_(e,t){let n=A_.get(e);if(!n)return;let r=n.get(t);if(r){for(let e of r)g_(e);n.delete(t),n.size===0&&A_.delete(e)}}function w_(e,t){let n=l(e);if(!n)return null;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function T_(e){let t=l(e)?.result;if(t===void 0)return null;try{let e=JSON.stringify(t);return e?rt(e,500):null}catch{return null}}function E_(e){let t=l(e),n=l(t?.__openclaw),r=n?.seq,i=n?.id??t?.messageId,a=typeof r==`number`&&Number.isSafeInteger(r)&&r>0?`seq:${r}`:typeof i==`string`&&i.trim()?`id:${i}`:null;if(!a)return null;let{recordTimestampMs:o,...s}=n??{},c=n?{...t,__openclaw:s}:t;try{return`${a}:${JSON.stringify(c)}`}catch{return a}}function D_(e,t){return e.composedPath().some(e=>e instanceof Element&&e.matches(t))}var O_,k_,A_,j_,M_,N_,P_,F_,I_,L_,R_;function z_(){return(z_=e((()=>{Et(),N(),j(),O_=3e4,k_=4,A_=new WeakMap,j_=Qa({storageKey:`openclaw.control.board-chat-dock.v1`,minHeight:180,minWidth:320,defaultDock:`right`,supportedDocks:[`bottom`,`left`,`right`],defaultHeight:320,defaultWidth:420}),M_=1200,N_=new Set([`ArrowUp`,`PageUp`,`Home`]),P_=new WeakMap,F_=`.chat-controls__inline-select[open], .context-usage details[open], .agent-chat__attach-menu[open], .chat-pr__checks[open]`,I_=`.agent-chat__composer-combobox > textarea`,L_=`Start a new session after the active run or queued messages finish.`,R_=`Session list is still refreshing. Try New Chat again in a moment.`})))()}function B_(e,t,n){if(Be(t)||e.sessions.state.result?.sessions.find(e=>F(e.key,t))?.boardFace===n)return;let r=E(t)?.agentId;e.sessions.patch(t,{boardFace:n},r?{agentId:r}:{}).catch(()=>void 0)}function V_(){return(V_=e((()=>{Ct(),N()})))()}function H_(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function U_(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash}function W_(e,t){if(!e)return!1;let n=H_();if(U_(n,e))return!0;let r=new URLSearchParams(e.search).has(`draft`),i=new URLSearchParams(n.search).has(`draft`);return t&&r&&!i&&U_(_u(n),_u(e))}function G_(){return(G_=e((()=>{uu()})))()}function K_(e){let t=e.showGatewayPicker?ao():null,n=e.context?.sessions?.state.result?.sessions??[];return B`
|
||
<div
|
||
class="chat-split-view__cell ${e.splitMode&&e.active?`chat-split-view__cell--active`:``} ${e.narrow&&!e.active?`chat-split-view__cell--narrow-hidden`:``}"
|
||
aria-current=${e.splitMode&&e.active?`true`:z}
|
||
style="flex: ${e.weight} 1 0"
|
||
@pointerdown=${()=>e.onFocusPane(e.pane.id)}
|
||
@focusin=${()=>e.onFocusPane(e.pane.id)}
|
||
>
|
||
<div class="chat-pane-cache">
|
||
${Ht(e.sessionKeys,e=>e,r=>{let i=r===e.pane.sessionKey||F(r,e.pane.sessionKey),a=i&&(!e.narrow||e.active),o=e.active&&i,s=o?Wl(e.data,e.consumedDraftData,r):void 0,c=ze(r,e.context?.gateway?.snapshot?.hello)||r,l=ke(c,n.find(e=>F(e.key,c)));return B`<openclaw-chat-pane
|
||
class="chat-pane-cache__pane ${i?`chat-pane-cache__pane--visible`:``} ${o?`chat-pane-cache__pane--active`:``} ${e.splitMode?`chat-split-view__pane`:``}"
|
||
data-mcp-app-owner-key=${JSON.stringify([e.ownerKey,r])}
|
||
aria-hidden=${a?`false`:`true`}
|
||
?inert=${!a}
|
||
.paneId=${e.pane.id}
|
||
.presentationId=${JSON.stringify([e.pane.id,r])}
|
||
.chatMessagesBySession=${e.chatMessagesBySession}
|
||
.sessionSnapshotStore=${e.sessionSnapshotStore}
|
||
.sessionKey=${r}
|
||
.presented=${a}
|
||
.visuallyPresented=${a}
|
||
.active=${o}
|
||
.draft=${s}
|
||
.focusComposer=${e.draftFocus.shouldFocusPane(o,s,r,e.data)}
|
||
.routeFace=${e.data?.face??`chat`}
|
||
.paneTitle=${l}
|
||
.narrow=${e.narrow}
|
||
.mergedChrome=${e.mergedChrome&&o}
|
||
.navDrawerOpen=${e.navDrawerOpen&&o}
|
||
.nativeGateways=${t}
|
||
.gatewaysSnapshot=${t?.snapshot??null}
|
||
.onboarding=${e.onboarding}
|
||
.onOpenSplitView=${e.onOpenSplitView}
|
||
.onSplitDown=${e.onSplitDown}
|
||
.onSplitRight=${e.onSplitRight}
|
||
.onClosePane=${e.onClosePane}
|
||
.onFocusPane=${e.onFocusPane}
|
||
.onPaneSessionChange=${(t,n,i)=>e.onPaneSessionChange(t,r,n,i)}
|
||
.onSessionDeleted=${e.onSessionDeleted}
|
||
.onFaceChange=${e.onFaceChange}
|
||
></openclaw-chat-pane>`})}
|
||
</div>
|
||
</div>
|
||
`}function q_(){return(q_=e((()=>{It(),Ut(),ri(),kt(),A(),N(),uu()})))()}var J_,Y_,X_;function Z_(){return(Z_=e((()=>{Ma(),N(),z_(),Eu(),J_=3,Y_=5e3,X_=class{constructor(e,t){this.host=e,this.bindings=t,this.sessionsByPane=new Map,this.preview=null,this.removeSession=(e,t,n,r=!1)=>{let i=this.findPane(e,t);r||i?.discardStagedAttachments?.();let a=this.sessionsByPane.get(e),o=a?.findIndex(e=>F(e,t));a&&o!==void 0&&o>=0&&a.splice(o,1);let s=this.bindings.context();s&&!r&&x_(s,e,t),this.preview?.paneId===e&&F(this.preview.sessionKey,t)&&this.cancelPreview();let c=_f(this.bindings.layout(),e)?.pane.sessionKey;c&&F(c,t)?this.bindings.selectReplacement(e,t,n):this.host.requestUpdate()},this.handleNavigationIntent=e=>{if(!(e instanceof CustomEvent))return;this.cancelPreview();let t=e.detail;if(t.face!==this.bindings.face())return;let n=this.bindings.layout(),r=_f(n,n.activePaneId)?.pane,i=this.sessionsByPane.get(r?.id??``)?.find(e=>F(e,t.sessionKey));if(!r||!i||F(r.sessionKey,i))return;this.present(r.id,i,!0);let a={...t,href:window.location.href,paneId:r.id,sessionKey:i};this.preview=a,this.previewFrame=requestAnimationFrame(()=>{this.preview===a&&(this.previewFrame=requestAnimationFrame(()=>{this.previewFrame=void 0,this.preview===a&&(window.location.href!==a.href||!a.commit())&&this.cancelPreview()}))}),this.previewTimer=window.setTimeout(this.cancelPreview,Y_),e.preventDefault()},this.cancelPreview=()=>{this.clearPreviewWork(),this.preview=null;let e=this.bindings.layout(),t=_f(e,e.activePaneId)?.pane;t&&this.present(t.id,t.sessionKey)}}connect(){window.addEventListener(`popstate`,this.cancelPreview),window.addEventListener(kr,this.handleNavigationIntent)}disconnect(){this.sessionsByPane.clear(),window.removeEventListener(`popstate`,this.cancelPreview),window.removeEventListener(kr,this.handleNavigationIntent),this.cancelPreview()}settleRoute(e){this.preview&&(F(this.preview.sessionKey,e)?(this.preview=null,this.clearPreviewWork()):this.cancelPreview())}retain(e){let t=new Set(e.map(e=>e.id));for(let e of this.sessionsByPane.keys())t.has(e)||this.sessionsByPane.delete(e);return new Map(e.map(e=>[e.id,this.retainPane(e)]))}retainPane(e){let t=this.sessionsByPane.get(e.id);t||(t=[],this.sessionsByPane.set(e.id,t));let n=t.findIndex(t=>t===e.sessionKey||F(t,e.sessionKey)),r=n<0?e.sessionKey:t.splice(n,1)[0];return t.push(r),t.length>J_&&this.findPane(e.id,t.shift())?.prepareForEviction?.(),t.toSorted((e,t)=>e.localeCompare(t))}discardPane(e){let t=this.bindings.context();t&&(C_(t,e),t.chatAttachmentHandoff.clearPane(e)),this.sessionsByPane.delete(e)}findPane(e,t){return[...this.host.querySelectorAll(`openclaw-chat-pane`)].find(n=>n.paneId===e&&F(n.sessionKey??``,t))}present(e,t,n=!1){for(let r of this.host.querySelectorAll(`openclaw-chat-pane`)){if(r.paneId!==e)continue;let i=F(r.sessionKey??``,t);if(r.classList.toggle(`chat-pane-cache__pane--visible`,i),r.visuallyPresented=i,n){r.toggleAttribute(`inert`,!0);continue}r.toggleAttribute(`inert`,!i),r.setAttribute(`aria-hidden`,i?`false`:`true`),r.presented=i}}clearPreviewWork(){this.previewFrame!==void 0&&(cancelAnimationFrame(this.previewFrame),this.previewFrame=void 0),this.previewTimer!==void 0&&(window.clearTimeout(this.previewTimer),this.previewTimer=void 0)}}})))()}function Q_(e,t,n){return{owner:n,paneId:e,scopeKey:q(Hr(t,t.sessionKey))}}function $_(e,t=new Set,n=new Set){for(let r of e)t.has(r.id)||n.has(r.id)||(n.add(r.id),O(r.id))}function ev(e,t,n,r){let i=e.chatAttachmentHandoff.consume(Q_(t,n,r));if(!i)return;let a=new Set(n.chatAttachments.map(e=>e.id));n.chatAttachments=[...n.chatAttachments,...i.attachments.filter(e=>!a.has(e.id))];let o=Object.entries(i.fallbacks).filter(([e])=>Object.hasOwn(n.chatComposerFallbackByScope,e)).flatMap(([,e])=>e.attachments);n.chatComposerFallbackByScope={...i.fallbacks,...n.chatComposerFallbackByScope},ge(o,[n.chatAttachments,...Object.values(n.chatComposerFallbackByScope).map(e=>e.attachments)])}function tv(e,t,n,r){let i=[...n.chatAttachments];e.chatAttachmentHandoff.prepare({...Q_(t,n,r),attachments:i,fallbacks:n.chatComposerFallbackByScope})}function nv(e){if(!e)return;let t=new Set;$_(e.chatAttachments,new Set,t);for(let n of Object.values(e.chatComposerFallbackByScope))$_(n.attachments,new Set,t),n.attachments=[];e.chatAttachments=[]}function rv(e,t,n,r,i){if(!i||r===i)return r;if(n){let e=e=>($_(e.filter(e=>e.browserAnnotation)),e.filter(e=>!e.browserAnnotation));n.chatAttachments=e(n.chatAttachments);for(let t of Object.values(n.chatComposerFallbackByScope))t.attachments=e(t.attachments);n.requestUpdate?.()}return e.chatAttachmentHandoff.clearPane(t),i}function iv(e,t,n){let r=new Set(ou(t,n).map(e=>e.id));for(let t of e.querySelectorAll(`openclaw-chat-pane`))r.has(t.paneId)&&t.resumeStagedAttachments?.()}function av(e,t,n,r){let i=mf(n).find(e=>e.id!==r),a=[...t.querySelectorAll(`openclaw-chat-pane`)].filter(e=>e.paneId===r);for(let e of a)e.discardStagedAttachments?.();return e.chatAttachmentHandoff.clearPane(r),i}function ov(){return(ov=e((()=>{j(),cs(),Eu()})))()}var sv;function cv(){return(cv=e((()=>{Ga(),Eu(),sv=class{constructor(e){this.owner=e,this.gateway=null}sync(e,t,n){let r=e&&typeof e.subscribe==`function`?e:null;this.gateway&&this.gateway!==r&&lo(this.gateway).unwatch(this.owner),this.gateway=r,r&&lo(r).watch(this.owner,ou(t,n).map(e=>e.sessionKey))}dispose(){this.gateway&&=(lo(this.gateway).unwatch(this.owner),null)}}})))()}function lv(e,t,n,r=t.sendSubmittedAtMs,i={}){r!=null&&ol(e,`control-ui.chat.send`,{phase:n,durationMs:Cl(fl()-r),runId:t.sendRunId,sessionKey:t.sessionKey,agentId:t.agentId,sendAttempts:t.sendAttempts??0,sendState:t.sendState,...i},{console:!1,maxBufferedEventsForType:40})}function uv(e){return typeof e==`string`&&vv.has(e)?e:null}function dv(e,t){if(!t||typeof t!=`object`)return;let n=t,r=uv(n.phase),i=typeof n.runId==`string`&&n.runId.trim()?n.runId.trim():``;if(!r||!i)return;let a=e.chatSendTimingsByRun?.get(i),o=fl(),s=h(n.ackToPhaseMs),c=h(n.receivedToPhaseMs),l=h(n.dispatchStartedToPhaseMs),u=h(n.postDispatchMs),d=a?.submittedAtMs===void 0?s:Cl(o-a.submittedAtMs);if(d===void 0)return;let f=r===`first-assistant-event`&&d>=yv;ol(e,`control-ui.chat.send`,{phase:`server-${r}`,durationMs:d,runId:i,sessionKey:a?.sessionKey??(typeof n.sessionKey==`string`&&n.sessionKey.trim()?n.sessionKey.trim():void 0),agentId:a?.agentId??(typeof n.agentId==`string`&&n.agentId.trim()?n.agentId.trim():void 0),sendAttempts:a?.sendAttempts??0,sendState:a?.sendState,ackStatus:a?.ackStatus,serverPhase:r,...s===void 0?{}:{serverAckToPhaseMs:s},...c===void 0?{}:{serverReceivedToPhaseMs:c},...l===void 0?{}:{serverDispatchStartedToPhaseMs:l},...u===void 0?{}:{serverPostDispatchMs:u},...typeof n.provider==`string`&&n.provider.trim()?{provider:n.provider.trim()}:{},...typeof n.model==`string`&&n.model.trim()?{model:n.model.trim()}:{},...typeof n.agentRunId==`string`&&n.agentRunId.trim()?{agentRunId:n.agentRunId.trim()}:{},...f?{slow:!0}:{}},{console:f,warn:f,maxBufferedEventsForType:40})}function fv(e){if(e.chatSendTimingsByRun)return e.chatSendTimingsByRun;let t=new Map;return e.chatSendTimingsByRun=t,t}function pv(e,t,n,r){fv(e).set(n,{runId:n,sessionKey:t.sessionKey,agentId:t.agentId,sendAttempts:t.sendAttempts??0,sendState:t.sendState,submittedAtMs:t.sendSubmittedAtMs??r,requestStartedAtMs:r})}function mv(e,t,n,r,i){let a=fv(e),o=a.get(t),s=o?.submittedAtMs??r.sendSubmittedAtMs??i,c={...o??{runId:n.runId,sessionKey:r.sessionKey,agentId:r.agentId,sendAttempts:r.sendAttempts??0,sendState:r.sendState,submittedAtMs:s,requestStartedAtMs:i},runId:n.runId,sessionKey:o?.sessionKey??r.sessionKey,agentId:o?.agentId??r.agentId,ackAtMs:fl(),ackStatus:n.status};n.runId!==t&&a.delete(t),a.set(n.runId,c)}function hv(e){let t=e.serverTiming;return{...typeof t?.receivedToAckMs==`number`?{serverReceivedToAckMs:t.receivedToAckMs}:{},...typeof t?.loadSessionMs==`number`?{serverLoadSessionMs:t.loadSessionMs}:{},...typeof t?.prepareAttachmentsMs==`number`?{serverPrepareAttachmentsMs:t.prepareAttachmentsMs}:{}}}function gv(e){return typeof e.sendSubmittedAtMs==`number`&&(e.sendState===`waiting-model`||e.sendState===`waiting-idle`||e.sendState===`sending`||e.sendState===`waiting-reconnect`)}function _v(e,t,n=t.sendSubmittedAtMs){let r=t.sessionKey??e.sessionKey,i=t.sendRunId;!i||n==null||El(e,()=>{if(!L(e,r,t.agentId))return;let a=mp(e,r,t.agentId).find(e=>e.id===t.id&&e.sendRunId===i);!a||!gv(a)||lv(e,a,`pending-painted`,n)})}var vv,yv;function bv(){return(bv=e((()=>{g(),A(),jp(),dl(),vv=new Set([`dispatch-started`,`model-selected`,`agent-run-started`,`first-assistant-event`,`dispatch-completed`,`post-dispatch-completed`]),yv=1500})))()}function xv(e,n,r){let i=ie(n),a=/^agent:([^:]+):(.*)$/u.exec(i),o=a?.[2]??i,s=T(n),c=[dt,$e(e)].includes(o.toLowerCase()),l=ve(e),u=a?.[1],d=c&&t(u??``)===`main`&&l!==`main`&&e.agentsList?.agents!=null&&!e.agentsList.agents.some(e=>t(e.id)===`main`),f=e.agentsList?.scope?e.agentsList.scope===`global`:T(ze(dt,e.hello)),p=(d?l:r?.trim()||u)||(s?k(e):l),m=s||c&&f?`global`:c?dt:o;return`agent:${t(p)}:${m}`}function Sv(e,t,n,r){let i=xv(t,n,r);return e.get(t.sessions)?.get(i)}function Cv(e,t,n,r,i){let a=e.get(t.sessions)??new Map;e.set(t.sessions,a);let o=xv(t,n,i);a.set(o,r),r.finally(()=>{a.get(o)===r&&a.delete(o)})}function wv(e,t,n){return Sv(kv,e,t,n)}function Tv(e,t,n,r){Cv(kv,e,t,n,r)}function Ev(e,t,n,r={}){let i=wv(e,t,r.agentId),a=(async()=>{let a=await e.sessions.patch(t,n,{agentId:r.agentId,ownsModelOverride:r.ownsModelOverride,waitFor:i});return a&&await r.reconcile?.(a),a})();return Tv(e,t,a.then(e=>e!==null,()=>!1),r.agentId),a}function Dv(e,t){let n=a(e),r=E(n??``),i=r&&r.agentId!==`main`&&(r.rest===`main`||r.rest===`global`)?r.agentId:void 0,o=i??a(t.agentId);return(n===`global`||i)&&o?{agentId:o}:{}}async function Ov(e,t,n,r={}){let i=await Ev({sessions:e.sessions,assistantAgentId:e.agentId,agentsList:e.defaultAgentId?{defaultId:e.defaultAgentId}:null,hello:null},t,n,{...Dv(t,e),...r});if(!i)throw Error(`Session capability is unavailable`);return i}var kv;function Av(){return(Av=e((()=>{A(),N(),kv=new WeakMap})))()}function jv(e){let t=Object.keys(e.chatModelSwitchPromises??{}),n=new Set([e.sessionKey,...t]);Dt(e,e.sessionKey)&&n.add(`global`);let r=t.length>0,i=e.sessions.state?.modelOverrides??{},a=[...n].some(e=>Object.hasOwn(i,e));if(!(!r&&!a)){e.chatModelSwitchPromises={};for(let t of n)e.sessions.retireModelOverride(t);e.requestUpdate?.()}}function Mv(e,t={}){let n={...ce,includeGlobal:!0,includeUnknown:!0,configuredAgentsOnly:!0,includeDerivedTitles:!0,archivedFilter:e.sessionsArchivedFilter??`active`},r=p(t.search??void 0);r&&(n.search=r);let i=typeof t.offset==`number`&&Number.isFinite(t.offset)?Math.max(0,Math.floor(t.offset)):0;return i>0&&(n.offset=i),t.append===!0&&(n.append=!0),n}function Nv(e){return e.sessions.refresh({...Mv(e),...it(e,e.sessionKey),force:!0})}function Pv(e,t){return e.sessions.refresh({...Mv(e),...Ve(e,t),force:!0})}function Fv(e,t){let n=e.sessions.find(e=>F(e.key,t));return!!(n&&!Te(n))}function Iv(e,t,n){return F(t,n)?!0:!!(t&&T(t)&&Ce(e,n))}function Lv(e,t,n,r){let i=r&&T(r)?Ce(e,n):void 0;return t?.sessions.find(t=>F(t.key,n)?!0:i!=null&&Ce(e,t.key)===i)}function Rv(e,t){if(!t||!Te(t)||Te(e))return!1;let n=typeof e.updatedAt==`number`?e.updatedAt:null;return n==null||(typeof t.updatedAt==`number`?t.updatedAt:0)>=n||(typeof t.startedAt==`number`?t.startedAt:0)>=n}function zv(e,t,n,r,i,a){e.chatQueue.length!==0&&Promise.allSettled([n,r]).then(n=>{let r=n[0],o=n[1],s=e.sessionsResult,c=r.status===`fulfilled`?r.value?.sessionInfo:null,l=Lv(e,s,t,c?.key),u=!!(c&&Iv(e,c.key,t)&&!Te(c)&&!Rv(c,l)),d=s?Fv(s,t):!1;o.status!==`fulfilled`||e.chatQueue.length===0||!F(e.sessionKey,t)||!s&&!u||s===i&&!u||e.sessionsError&&!u||!(u||d)||a()})}function Bv(e,t,n=!1){let r=t===null?null:P(t);e.lastError=r,e.chatError=r,n&&e.requestUpdate?.()}function Vv(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=Symbol(n);return r.set(n,i),i}function Hv(e,t,n,r){return e.get(t)?.get(n)===r}function Uv(e,t,n){e.sessions.patchRowLocal(t,n);let r=e.sessionsResult;r&&(e.sessionsResult={...r,sessions:r.sessions.map(e=>F(e.key,t)?Object.assign({},e,n):e)})}function Wv(e,t,n=e.sessionKey){if(!e.client||!e.connected)return Promise.resolve(!1);let r=e.sessionsResult?.sessions?.find(e=>F(e.key,n)),i=r?.fastMode,a=r?.effectiveFastMode,o=t===``?void 0:t===`auto`?`auto`:t===`on`;if(i===o)return Promise.resolve(!0);let s=Vv(Jv,e,n);Bv(e,null,!0),Uv(e,n,{fastMode:o,effectiveFastMode:o});let c=()=>{Hv(Jv,e,n,s)&&Uv(e,n,{fastMode:i,effectiveFastMode:a})};return(async()=>{try{return await Ev(e,n,{fastMode:o??null},{...R(e,n),reconcile:async()=>Nv(e)})?(Hv(Jv,e,n,s)&&Uv(e,n,{fastMode:o}),!0):(c(),!1)}catch(t){return c(),Bv(e,`Failed to set speed: ${P(t)}`,!0),!1}})()}async function Gv(e,t,n=e.sessionKey){if(!e.client||!e.connected)return!1;let r=e.sessionsResult?.sessions.find(e=>F(e.key,n));if(r?.modelSelectionLocked===!0)return!1;if(Vi({activeSession:r,chatModelCatalog:e.chatModelCatalog,modelOverrides:e.sessions.state.modelOverrides,sessionKey:n,sessionsResult:e.sessionsResult??null})===t)return!0;let i=R(e,n).agentId,a=()=>!Dt(e,n)||k(e)===i;Bv(e,null,!0);let o={},s=()=>{if(e.chatModelSwitchPromises?.[n]===o.current){let t={...e.chatModelSwitchPromises};delete t[n],e.chatModelSwitchPromises=t}},c=(async()=>{try{return!!await Ev(e,n,{model:t||null},{...R(e,n),ownsModelOverride:a,reconcile:async()=>{await Nv(e)}})}catch(t){return a()&&Bv(e,`Failed to set model: ${P(t)}`,!0),!1}finally{s(),e.requestUpdate?.()}})();return o.current=c,e.chatModelSwitchPromises={...e.chatModelSwitchPromises,[n]:c},e.requestUpdate?.(),c}function Kv(e,t,n=e.sessionKey){if(!e.client||!e.connected)return Promise.resolve(!1);let r=e.sessionsResult?.sessions?.find(e=>F(e.key,n))?.thinkingLevel,i=(Ko(t)??t.trim())||void 0,a=typeof r==`string`&&r.trim()?Ko(r)??r.trim():void 0;if((a??``)===(i??``))return Promise.resolve(!0);let o=Vv(Yv,e,n);Bv(e,null,!0),Uv(e,n,{thinkingLevel:i}),e.sessionKey===n&&(e.chatThinkingLevel=i??null);let s=()=>{Hv(Yv,e,n,o)&&(Uv(e,n,{thinkingLevel:r}),e.sessionKey===n&&(e.chatThinkingLevel=a??null))};return(async()=>{try{return await Ev(e,n,{thinkingLevel:i??null},{...R(e,n),reconcile:async()=>Nv(e)})?(Hv(Yv,e,n,o)&&(Uv(e,n,{thinkingLevel:i}),e.sessionKey===n&&(e.chatThinkingLevel=i??null)),!0):(s(),!1)}catch(t){return s(),Bv(e,`Failed to set thinking level: ${P(t)}`,!0),!1}})()}function qv(e,t,n=e.sessionKey){if(!e.client||!e.connected)return Promise.resolve(!1);let r=e.sessionsResult?.sessions?.find(e=>F(e.key,n))?.contextWindow,i=t.trim()||void 0;if((r??``)===(i??``))return Promise.resolve(!0);let a=Vv(Xv,e,n);Bv(e,null,!0),Uv(e,n,{contextWindow:i});let o=()=>{Hv(Xv,e,n,a)&&Uv(e,n,{contextWindow:r})};return(async()=>{try{return await Ev(e,n,{contextWindow:i??null},{...R(e,n),reconcile:async()=>Nv(e)})?!0:(o(),!1)}catch(t){return o(),Bv(e,`Failed to set context window: ${P(t)}`,!0),!1}})()}var Jv,Yv,Xv;function Zv(){return(Zv=e((()=>{Wo(),Vr(),I(),A(),N(),Av(),Jv=new WeakMap,Yv=new WeakMap,Xv=new WeakMap})))()}function Qv(e,t){return{compact:M(e,{method:`sessions.compact`,requiredScope:`operator.admin`}),abort:M(e,{method:t?`chat.abort`:`sessions.abort`,requiredScope:`operator.write`}),rewind:M(e,{method:`sessions.rewind`,requiredScope:`operator.admin`}),fork:M(e,{method:`sessions.fork`,requiredScope:`operator.write`}),reset:M(e,{method:`sessions.reset`,requiredScope:`operator.admin`}),branchSwitch:M(e,{method:`sessions.branches.switch`,requiredScope:`operator.admin`})}}function $v(){return($v=e((()=>{w()})))()}function Y(e,t){let n=t===null?null:P(t);e.lastError=n,e.chatError=n}function ey(e,t,n,r,i=fl(),a,o,s,c,l,u){let d=t.trim(),f=!!(n&&n.length>0);if(!d&&!f)return null;let p=Uo(e,e.sessionKey),m=Fi(e.hello,e.client?.instanceId,e.selfUser);return{item:{id:S(),text:l?t:d,createdAt:Date.now(),...s===void 0?{}:{orderKey:s},attachments:f?n:void 0,refreshSessions:r,sendAttempts:0,sendRunId:S(),sendState:a,...c?{queueMode:c}:{},...l?{intent:l,...e.currentSessionId?{sessionId:e.currentSessionId}:{}}:{},...l&&u!==void 0?{expectedLeafEntryId:u}:{},sendSubmittedAtMs:i,...p.scope,...m?{sender:m}:{},...o?{replyToId:o}:{}},admission:p}}function ty(e,t){let n=t.sendSubmittedAtMs??fl();Yf(e).keep(e,{sessionKey:t.sessionKey,agentId:t.agentId},t),lv(e,t,`pending-visible`,n),(t.sendState===`waiting-model`||t.sendState===`waiting-reconnect`)&&lv(e,t,t.sendState,n),_v(e,t,n),Kl(e,!0,!1,{source:`manual`})}function ny(e){return e.connected&&e.client?`waiting-idle`:`waiting-reconnect`}function ry(e,t=!0){let n=e.client,r=e.connectionEpoch;return()=>(!t||e.connected)&&e.client===n&&e.connectionEpoch===r}function iy(e,t,n,r,i){return t===`memory`?vp(e,r,i,{retryable:!0}):yp(e,n,r,i)}function ay(e,t,n,r){return(i,a)=>iy(e,t,n,r,e=>({...e,sendError:a,sendState:i}))}function oy(e,t,n,r,i){let a=i?.routingSessionKey??r,o=ay(e,n,r,t.id),s=(n=t.agentId)=>L(e,a,n),c=gp(e,t.id);if(!c)return`failed`;let l=!!(c.queueMode||i?.allowActiveRunSend);return Mp(e,a)||i?.routingSessionKey&&!s(c.agentId)||!l&&s(c.agentId)&&(Mu(e)||Pu(e))?o(e.connected&&e.client?`waiting-idle`:`waiting-reconnect`)?`pending`:(Y(e,J),`failed`):c}function sy(e,t,n=t.sessionKey??e.sessionKey){return e.connected&&!!e.client&&!Mu(e)&&!wv(e,n,t.agentId)&&L(e,n,t.agentId)&&e.chatQueue[0]?.id===t.id}function cy(e,t){e.chatSendingScopeKey===q(t)&&(e.chatSendingScopeKey=null,e.chatSending=!1)}async function ly(e,t,n,r){let i=n;for(;await i;){let n=wv(e,t,r);if(!n||n===i)return!0;i=n}return!1}async function uy(e,t,n){let r=t.id,i=ry(e),a=ml(e),o=t,s=await tl(e,o),c=gp(e,r);if(!i()||!a()||!c||c.sendRunId!==o.sendRunId||c.attachmentPayload?.key!==o.attachmentPayload?.key||c.sendAttempts!==o.sendAttempts||c.sendState!==o.sendState||Kd(e,r))return s.status===`ready`&&!o.attachmentPayload&&rl(s.item),`pending`;if(s.status===`failed`){let t=Xc(c,s.reason);return yp(e,o.sessionKey??n,r,()=>t),zp(e,o.sessionKey??n,o.agentId,t.sendError),`failed`}let l=s.item;return l.attachmentPayload?.key!==o.attachmentPayload?.key&&l.sendState===`unconfirmed`?(yp(e,o.sessionKey??n,r,()=>s.item),`pending`):(!o.attachmentPayload||o.attachmentStorageError)&&!yp(e,o.sessionKey??n,r,()=>s.item)?(o.attachmentPayload||rl(s.item),`pending`):s.item}function dy(){return(dy=e((()=>{Kr(),Sr(),I(),A(),et(),np(),jp(),Hp(),bv(),Zv(),cs(),pl(),dl(),fd(),Yl(),cu()})))()}async function fy(e,t,n){return t.objective.trim()?t.sessionId&&t.sessionId!==e.currentSessionId?(Y(e,G(`chat.goals.sessionChanged`)),!1):t.action===`edit`?py(e,{action:`edit`,goalId:t.goalId,objective:t.objective}):e.chatMessage===t.objective&&!!await e.handleSendChat(void 0,{intent:{kind:`session-goal-start`,version:1,issuedAtMs:Date.now()}},n):!1}async function py(e,t){let n=e.client;if(!n||!e.connected)return Y(e,G(`chat.goals.offline`)),!1;let r=e.sessionKey,i=gt(e,r),a=e.currentSessionId??void 0,o=e.connectionEpoch,s=()=>e.client===n&&e.connected&&e.connectionEpoch===o&&(e.currentSessionId??void 0)===a&&L(e,r,i),c=JSON.stringify([ii(e.settings?.gatewayUrl).gatewayOwner,n.recoveryScope,r,i,a,t]),l=my.get(e);if(l?.pending)return Y(e,G(`chat.goals.actionPending`)),!1;if(!l||l.signature!==c){let n={sessionKey:r,...i?{agentId:i}:{},...a?{sessionId:a}:{},goalId:t.goalId,operationId:S(),issuedAtMs:Date.now()};l={signature:c,params:t.action===`clear`?n:t.action===`edit`?{...n,action:`edit`,objective:t.objective}:{...n,action:t.action},pending:!1},my.set(e,l)}l.pending=!0,Y(e,null),e.requestUpdate?.();try{let a=await n.request(t.action===`clear`?`sessions.goal.clear`:`sessions.goal.update`,l.params);if(my.get(e)===l&&my.delete(e),s()){if(a.replayed)return Pv(e,{sessionKey:r,agentId:i}).catch(t=>{s()&&(Y(e,P(t)),e.requestUpdate?.())}),!0;let n=e.sessions.state.result?.sessions.find(e=>F(e.key,r));n?.goal?.id===t.goalId&&(!a.goal||a.goal.updatedAt>=n.goal.updatedAt)&&e.sessions.patchRowLocal(n.key,{goal:a.goal}),a.status===`started`&&a.runId&&Tu(e,a.runId,Date.now())}return!0}catch(t){return t instanceof Gt&&!t.retryable&&my.get(e)===l&&my.delete(e),s()&&Y(e,P(t)),!1}finally{l.pending=!1,e.requestUpdate?.()}}var my;function hy(){return(hy=e((()=>{mn(),U(),Sr(),I(),A(),N(),et(),dy(),Zv(),Yl(),my=new WeakMap})))()}function gy(e,t){if(!(e instanceof Gt)||e.gatewayCode!==`UNAVAILABLE`||!e.retryable)return!1;let n=e.details;if(!n||typeof n!=`object`)return!0;let r=n.method;return typeof r!=`string`||r===t}function _y(e){let t=typeof e.retryAfterMs==`number`?e.retryAfterMs:yy;return Math.min(Math.max(t,100),by)}function vy(e){return new Promise(t=>{setTimeout(t,e)})}var yy,by;function xy(){return(xy=e((()=>{mn(),yy=500,by=5e3})))()}function X(e){return t(E(e.sessionKey)?.agentId??R(e,e.sessionKey).agentId??k(e))}function Sy(){return(Sy=e((()=>{A(),N()})))()}function Cy(e){let t=zb.get(e);return t||(t={historyVersion:0,branchVersion:0,subscriptionGeneration:0,pendingSubscriptionReleases:new Set,historyLoad:{phase:`idle`}},zb.set(e,t)),t}function wy(e){let t=Cy(e),n=t.historyLoad;if(n.phase===`idle`)return n;let r=Dt(e,e.sessionKey)?he(e):void 0;return(n.phase===`committed`?n.key===`${e.sessionKey}\u0000${r??``}`:n.sessionKey===e.sessionKey&&n.requestAgentId===r)?n.phase===`in-flight`&&(!e.connected||n.client!==e.client||n.connectionEpoch!==e.connectionEpoch)&&(t.historyLoad={phase:`pending-connection`,sessionKey:n.sessionKey,requestAgentId:n.requestAgentId,startup:n.startup},e.chatLoading=!0,e.requestUpdate?.()):(t.historyLoad={phase:`idle`},e.chatLoading=!1),t.historyLoad}function Ty(e){Cy(e).branchVersion+=1}function Ey(e){return Cy(e).historyVersion}function Dy(e,t,n,r,i){return{version:++Cy(e).historyVersion,client:t,connectionEpoch:n,sessionKey:r,agentId:i}}function Oy(e,t){return Cy(e).historyVersion===t.version&&e.client===t.client&&e.connected&&e.connectionEpoch===t.connectionEpoch}function ky(e,t){return Oy(e,t)&&e.sessionKey===t.sessionKey&&(!Dt(e,t.sessionKey)||he(e)===t.agentId)}function Ay(e,t){Fh(e);let n=Cy(e);n.historyVersion+=1,n.historyLoad={phase:`idle`},e.chatLoading=!1;let r=al(e,{agentId:t});$c(e,{type:`sessionReset`},{scope:r})}function jy(e){return Nb.test(e)}function My(e){if(!e||typeof e!=`object`)return!1;let t=e;if(n(t.role)!==`assistant`)return!1;if(typeof t.text==`string`)return jy(t.text);let r=gi(e);return typeof r==`string`&&jy(r)}function Ny(e){if(!e||typeof e!=`object`||n(e.role)!==`toolresult`)return!1;let t=gi(e);return typeof t==`string`&&t.trim()===Pb}function Py(e){return Ho(e).shouldSkip}function Fy(e){return jy(e)||Py(e)}function Iy(e){return My(e)||Ei(e)}function Ly(e){return Iy(e)||Ny(e)||fi(e)}function Ry(e){return Array.isArray(e)?e.filter(e=>!Ly(e)):[]}function zy(e,t,n={}){return $u(e,t,{...n,persistCommentary:n.persistCommentary??By(t),isHiddenAssistantMessage:Iy,isHiddenStreamText:Fy})}function By(e){return e.settings?.chatPersistCommentary!==!1}function Vy(e){return`kind`in e}function Hy(e,t){if(!(e.chatRunId!==t.runId||!Array.isArray(t.events)))for(let n of t.events)!n||n.runId!==t.runId||Uu(e,n)}function Uy(e){return typeof e==`string`&&e&&!Fy(e)?e:null}function Wy(e,t,n){for(let[r,i]of Object.entries(e))if(r!==n&&t[r]!==i)return!1;for(let[r,i]of Object.entries(t))if(r!==n&&e[r]!==i)return!1;return!0}function Gy(e,t){let n=Object.entries(e);return n.length===Object.keys(t).length&&n.every(([e,n])=>t[e]===n)}function Ky(e,t,n){return il(e,e.chatMessages,al(e,{sessionKey:t,...n?{agentId:n}:{}})).runs}function qy(e,t){return!e||t?.startsWith(e)?t??e:!t||e.startsWith(t)?e:t}function Jy(e){let{state:t,run:n,sessionInfo:r,previousRunProjections:i,runProjectionsBeforeApply:a,currentRunProjections:o,resetStream:s,activeStreamBeforeReset:c}=e,l=n?.runId?.trim();if(!l||!n){let e=r?.lastRunId,n=e?o[e]:void 0;if(e&&(r.status===`done`||r.status===`failed`||r.status===`timeout`)&&r.hasActiveRun!==!0&&!Te(r)&&(!t.chatRunId||t.chatRunId===e)&&!t.chatQueue.some(t=>t.sendState===`sending`&&t.sendRunId&&t.sendRunId!==e)&&(!n||t.chatRunId===e||Tl(t)===e)&&Gy(i,a)){let i=$c(t,{type:`runTerminal`,runId:e,status:r.status===`done`?`completed`:r.status===`timeout`?`timeout`:`error`,errorMessage:r.lastRunError});Qc(t,e);let a=i.runs[e];a?.errorMessage?(t.chatRunError?.runId!==e||!n?.errorMessage)&&Ru(t,a.errorMessage,e):a?.status===`completed`&&t.chatRunError?.runId&&t.chatRunError.runId!==e&&(t.chatRunError=null),Xd(t,r,{publishRunStatus:!1})}return}let u=o[l],d=t.chatRunId===l&&u?.status===`streaming`&&Wy(i,o,l),f=d||t.chatRunId===l&&(c!==null||t.chatStreamSegments?.some(e=>!e.runId||e.runId===l)),p=r?.activeRunIds,m=Te(r??{})&&(!Array.isArray(p)||p.includes(l))&&(!u||u.status===`streaming`);if(m&&(s&&!t.chatRunId&&Gy(i,a)||d)&&(Tu(t,l,Date.now()),t.chatRunSessionAbortable=n?.sessionAbortable===!0),!m||t.chatRunId!==l)return;let h=typeof n.startedAt==`number`&&Number.isFinite(n.startedAt)?n.startedAt:null,g=d?qy(Uy(gi(u?.message)),c):c;t.chatStream=qy(Uy(n.text),g),t.chatStreamStartedAt=h??t.chatStreamStartedAt??Date.now();let _=f?null:pd(t.chatMessages,l),v=t.chatStream===null?null:_d(t.chatMessages,t.chatStream,l,_?.index),y=t.chatStream?.slice(0,t.chatStream.length-(v?.length??0))??``,b=Fa(t.chatStreamSegments??[]);(_||Co(b,y)!==b)&&(t.chatStreamSegments=[...t.chatStreamSegments??[],{text:y,ts:t.chatStreamStartedAt,runId:l,..._?{boundaryRunId:_.runId}:{},...y?{persisted:!0}:{boundaryMarker:!0}}]);let x=n.events?.findLast(e=>e.stream===`run_status`)?.data.phase;t.chatRunStartup=(x===`preparing_workspace`||x===`naming_worktree`||x===`creating_worktree`||x===`running_setup`||x===`provisioning_environment`||x===`preparing_context`||x===`starting_model`)&&!v&&!(d&&t.chatRunStartup?.state===`activity`)?{state:`status`,runId:l,phase:x}:{state:`activity`,runId:l},Hy(t,n)}function Yy(e){let t=e?.totalMessages,n=typeof t==`number`&&Number.isSafeInteger(t)&&t>=0?t:void 0,r=e?.nextOffset;return e?.hasMore===!0&&typeof r==`number`&&Number.isSafeInteger(r)&&r>0?{hasMore:!0,nextOffset:r,...n===void 0?{}:{totalMessages:n}}:{hasMore:!1,...n===void 0?{}:{totalMessages:n},...e?.completeSnapshot===!0?{completeSnapshot:!0}:{}}}function Xy(e){return typeof e.sessionInfo?.sessionId==`string`&&e.sessionInfo.sessionId.trim()?e.sessionInfo.sessionId.trim():typeof e.sessionId==`string`&&e.sessionId.trim()?e.sessionId.trim():null}function Zy(e){let t=e.totalMessages;if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0)return null;let n=t-(e.hasMore?e.nextOffset:t)+1;return Number.isSafeInteger(n)&&n>0?n:null}function Qy(e){if(!e.previousSessionId||e.previousSessionId!==e.nextSessionId||e.previousMessages.length===0)return null;let t=e.previousPagination.totalMessages,n=e.nextPagination.totalMessages,r=Zy(e.previousPagination),i=Zy(e.nextPagination);if(typeof t!=`number`||typeof n!=`number`||r===null||i===null||n<t||i>t+1||i<=r)return null;let a=e.previousMessages.filter(e=>{let t=fr(e);return t!==null&&t<i});if(a.length===0)return null;let o=n-r+1;return{messages:[...a,...e.nextMessages],pagination:r>1?{hasMore:!0,nextOffset:o,totalMessages:n}:{hasMore:!1,totalMessages:n}}}function $y(e,t){let n=t===null?null:P(t);e.lastError=n,e.chatError=n}function eb(e,t,n){return Nt(e,e.sessionKey,t,n)}function tb(e){return(typeof e==`string`?e.trim():``)||null}function nb(e,t){return Ce(e,t)}function rb(e){let n=E(e.sessionKey);return n?.agentId?t(n.agentId):k(e)}function ib(e,t){return T(t)?rb(e):nb(e,t)}function ab(e,t){return Cy(e).subscriptionGeneration===t.generation&&e.client===t.client&&e.connectionEpoch===t.connectionEpoch&&e.connected&&e.sessionKey.trim()===t.requestedKey&&ib(e,t.requestedKey)===(t.requestedAgentId??null)}async function ob(e){let t=Cy(e).pendingSubscriptionReleases;t.size!==0&&await Promise.all([...t].map(async n=>{try{await e.sessions.unsubscribeMessages(n),t.delete(n)}catch{}}))}function sb(e){let t=Cy(e);t.subscriptionGeneration+=1;let n=new Set(t.pendingSubscriptionReleases);t.pendingSubscriptionReleases.clear(),e.chatSessionMessageSubscription&&n.add(e.chatSessionMessageSubscription),e.chatSessionMessageSubscriptionRequestedKey=null,e.chatSessionMessageSubscription=null,e.chatSessionApprovalQueue=[];let r=e.sessions;if(!r?.unsubscribeMessages)return;let i=r.unsubscribeMessages.bind(r);for(let e of n)(async()=>{let t=Lb;for(let n=0;n<Rb;n+=1)try{await i(e);return}catch{if(n+1===Rb)return;await new Promise(e=>{globalThis.setTimeout(e,t)}),t=Math.min(t*2,3e4)}})()}async function cb(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.connectionEpoch,i=e.sessionKey.trim();if(!i)return;let a=tb(e.chatSessionMessageSubscriptionRequestedKey),o=e.chatSessionMessageSubscription??null,s=tb(o?.key),c=a??s,l=ib(e,i),u=l!==null&&c===i&&(o?.agentId??null)!==l;u&&(e.chatSessionApprovalQueue=[],e.requestUpdate?.());let d=Cy(e),f=++d.subscriptionGeneration;await ob(e);let p=c!==null&&c!==i,m=o!==null&&(t?.force===!0||p||u),h=t?.force===!0||p||u||s===null||a===null,g=()=>ab(e,{generation:f,client:n,connectionEpoch:r,requestedKey:i,requestedAgentId:l}),_=()=>{let t=d.subscriptionError;if(!(!t||d.pendingSubscriptionReleases.size>0)){d.subscriptionError=void 0;for(let n of[`sessionsError`,`lastError`,`chatError`])e[n]===t&&(e[n]=null);e.requestUpdate?.()}},v=t=>{let n=P(t);d.subscriptionError=n,e.sessionsError=n,$y(e,n),e.requestUpdate?.()};if(!m&&!h){g()&&o&&F(o.key,i)&&(o.agentId??null)===l&&_();return}try{let t=Promise.resolve();m&&o&&(t=e.sessions.unsubscribeMessages(o));let n=h&&g()?e.sessions.subscribeMessages(i,{agentId:l??void 0,...un(e.hello?.auth??null)?{includeApprovals:!0}:{}}):Promise.resolve(null),[r,a]=await Promise.allSettled([t,n]);if(r.status===`rejected`){if(a.status===`fulfilled`&&a.value)try{await e.sessions.unsubscribeMessages(a.value)}catch(t){g()?(o&&d.pendingSubscriptionReleases.add(o),e.chatSessionMessageSubscriptionRequestedKey=i,e.chatSessionMessageSubscription=a.value,v(`${P(r.reason)}; replacement release failed: ${P(t)}`)):d.pendingSubscriptionReleases.add(a.value);return}g()&&v(r.reason);return}if(a.status===`rejected`)throw g()&&m&&(e.chatSessionMessageSubscriptionRequestedKey=null,e.chatSessionMessageSubscription=null),a.reason;let s=a.value;if(!s){g()&&m&&(e.chatSessionMessageSubscriptionRequestedKey=null,e.chatSessionMessageSubscription=null);return}if(!g()){try{await e.sessions.unsubscribeMessages(s)}catch{d.pendingSubscriptionReleases.add(s)}return}e.chatSessionMessageSubscriptionRequestedKey=i,e.chatSessionMessageSubscription=s,e.chatSessionApprovalQueue=s.includeApprovals?ju(s.approvalReplay,s.key,s.agentId??void 0):[],_()}catch(e){g()&&v(e)}}function lb(e,t,n,r){let i=e.ownerRequestCounts.get(t),a=(i?.get(n)??0)+r;if(a<=0){i?.delete(n),i?.size===0&&e.ownerRequestCounts.delete(t);return}i||(i=new Map,e.ownerRequestCounts.set(t,i)),i.set(n,a)}async function ub(e,t,n,r,i,a,o){for(;;)try{return await e.request(t,{sessionKey:n,...r?{agentId:r}:{},...o===void 0?{}:{cursor:o},limit:100})}catch(e){if(!i())throw e;if(a()&&gy(e,t)){if(await vy(_y(e)),!i())throw e;continue}throw e}}function db(e,t,n,r,i,a,o,s,c){let l=Bb.get(e);l||(l={ownerRequestCounts:new WeakMap,requests:new Map},Bb.set(e,l));let u=l.requests,d=u.get(t),f=(l.ownerRequestCounts.get(a)?.get(t)??0)>0,p={isCurrent:o,retryDeadlineMs:Date.now()+Ib};if(!d||f){let a=new Set([p]),o=ub(e,n,r,i,()=>[...a].some(e=>e.isCurrent()),()=>[...a].some(e=>e.isCurrent()&&Date.now()<e.retryDeadlineMs),s).then(e=>({...e,sourceCanonicalListRevision:c})).finally(()=>{u?.get(t)?.promise===o&&u.delete(t)});d={consumers:a,promise:o},u.set(t,d)}else d.consumers.add(p);return lb(l,a,t,1),d.promise.finally(()=>{d?.consumers.delete(p),lb(l,a,t,-1)})}async function fb(e,t,n,r,i){let a=`chat.history`,o=await db(e,`prefetch\u0000${a}\u0000${t}\u0000100\u0000${i===void 0?`page`:`cursor:${i}`}`,a,t,void 0,n,r,i);if(Vy(o))return o;let s=o.sessionInfo;return{kind:`snapshot`,snapshot:{...o.deltaCursor===void 0?{}:{deltaCursor:o.deltaCursor},...Object.hasOwn(s??{},`activeLeafEntryId`)?{displayedLeafEntryId:s?.activeLeafEntryId?.trim()||null}:{},messages:Ry(o.messages),pagination:Yy(o),sessionId:Xy(o)}}}function pb(e,t,n,r={}){ol(e,`control-ui.chat.history`,{phase:t,durationMs:Cl(fl()-n),sessionKey:e.sessionKey,activeRunId:e.chatRunId,...r},{console:!1,maxBufferedEventsForType:30})}function mb(e,t){if(!e.chatMessagesBySession)return;let n=e.sessionKey,r=Dt(e,n)?he(e):void 0,i=t===void 0?wf(e.chatMessagesBySession,e,{sessionKey:n,agentId:r})?.deltaCursor:t??void 0;vu(e.chatMessagesBySession,e,{sessionKey:n,agentId:r},{...i===void 0?{}:{deltaCursor:i},...e.chatDisplayedLeafEntryId===void 0?{}:{displayedLeafEntryId:e.chatDisplayedLeafEntryId},messages:e.chatMessages,pagination:e.chatHistoryPagination,sessionId:e.currentSessionId??null})}function hb(e,t,n){if(!e.chatMessagesBySession)return;let r=wf(e.chatMessagesBySession,e,{sessionKey:t,agentId:n});if(r?.deltaCursor===void 0)return;let{deltaCursor:i,...a}=r;vu(e.chatMessagesBySession,e,{sessionKey:t,agentId:n},a)}function gb(e){return e.chatRunId?!0:!!e.sessionsResult?.sessions.some(t=>t.key===e.sessionKey&&Te(t))}function _b(e,t,n){e.chatMessagesBySession&&Gl(e.chatMessagesBySession,e,{sessionKey:t,agentId:n})}function vb(e,t){return e.client===t.client&&e.connectionEpoch===t.connectionEpoch&&L(e,t.sessionKey,t.agentId)}function yb(e,t,n){!n||!Object.hasOwn(n.sessionInfo??{},`activeLeafEntryId`)||n.sessionInfo?.activeLeafEntryId!==null||e.client!==t.client||e.connectionEpoch!==t.connectionEpoch||!e.connected||!L(e,t.sessionKey,t.agentId)||delete e.chatDisplayedLeafEntryId}async function bb(e){if(!e.client||!e.connected)return`failed`;let t=e.client,n=e.connectionEpoch,r=e.sessionKey,i=R(e,r),a={client:t,connectionEpoch:n,sessionKey:r,agentId:i.agentId},o=e.chatRunId,s=gb(e);try{let a=await e.sessions.reset(r,i);if(a===`not-started`)return $y(e,`Gateway was unavailable before chat history could be cleared.`),Kl(e),`failed`;if(_b(e,r,i.agentId),a===`uncertain`||e.client!==t||e.connectionEpoch!==n||!e.connected){let a={client:e.client,connectionEpoch:e.connectionEpoch,sessionKey:r,agentId:i.agentId},o=!1;if(e.client&&e.connected&&L(e,r,i.agentId)){Ay(e,i.agentId);let a=await Z(e);o=!!a,yb(e,{client:t,connectionEpoch:n,sessionKey:r,agentId:i.agentId},a)}return vb(e,a)&&($y(e,o?`The clear request may have completed. Current history was refreshed; review it before resuming queued messages.`:`The clear request may have completed. Cached history was cleared, but current history could not be refreshed; reconnect and review it before resuming queued messages.`),Kl(e)),`uncertain`}}catch(t){return vb(e,a)&&($y(e,P(t)),Kl(e)),`failed`}if(!L(e,r,i.agentId))return`completed`;Ay(e,i.agentId),e.chatRunError=null,e.chatReplyTarget=null,tu(e,{outcome:s?`interrupted`:void 0,sessionStatus:`killed`,runId:o,sessionKey:r,clearLocalRun:!0,clearChatStream:!0,clearToolStream:!0,clearRunStatus:!s});let c=await Z(e);return yb(e,{client:t,connectionEpoch:n,sessionKey:r,agentId:i.agentId},c),vb(e,a)&&Kl(e),`completed`}async function xb(e,t){if(!e.client||!e.connected)return null;let n=e.sessionKey,r=R(e,n),i=e.client,a=e.connectionEpoch,o=()=>e.connected&&e.client===i&&e.connectionEpoch===a,s=()=>L(e,n,r.agentId),c=()=>o()&&s();try{let i=await e.sessions.rewind(n,t,r),a=i.editorText??``;return e.chatMessagesBySession&&Gl(e.chatMessagesBySession,e,{sessionKey:n,agentId:r.agentId}),o()&&Hs(e,n,{agentId:r.agentId,draft:a}),!s()||(Ay(e,r.agentId),await Promise.all([Z(e),wb(e)]),!c())?null:(e.chatAttachments=Oe(e.chatAttachments,i.editorAttachments),e.handleChatDraftChange(a),i)}catch(t){return c()&&($y(e,P(t)),Kl(e)),null}}async function Sb(e,t){if(!e.client||!e.connected)return!1;let n=e.sessionKey,r=R(e,n),i=e.client,a=e.connectionEpoch,o=()=>e.connected&&e.client===i&&e.connectionEpoch===a,s=()=>L(e,n,r.agentId),c=()=>o()&&s();try{return await e.sessions.switchBranch(n,t,r),e.chatMessagesBySession&&Gl(e.chatMessagesBySession,e,{sessionKey:n,agentId:r.agentId}),s()?(Ay(e,r.agentId),await Promise.all([Z(e),wb(e)]),c()):!1}catch(t){return c()&&($y(e,P(t)),Kl(e)),!1}}function Cb(e){return F(e.chatBranchesSessionKey,e.sessionKey)?e.chatBranches??[]:[]}async function wb(e){let t=e.sessions,n=e.client,r=e.sessionKey;if(!t?.listBranches||!n||!e.connected)return;let i=Cy(e),a=++i.branchVersion,o=e.connectionEpoch,s=R(e,r);try{let c=await t.listBranches(r,s);if(i.branchVersion!==a||e.client!==n||!e.connected||e.connectionEpoch!==o||!L(e,r,s.agentId))return;e.chatBranches=c,e.chatBranchesSessionKey=r,e.chatBranchesConnectionEpoch=o}catch{}finally{i.branchVersion===a&&e.requestUpdate?.()}}async function Z(e,t={}){let n=e.sessionKey,r=Dt(e,n)?he(e):void 0,i=t.startup===!0,a=Cy(e);if(!e.client||!e.connected){a.historyLoad={phase:`pending-connection`,sessionKey:n,requestAgentId:r,startup:i},e.chatLoading=!0,e.requestUpdate?.();return}let o=i?`chat.startup`:`chat.history`,s=e.client,c=e.connectionEpoch,l=e.chatMessagesBySession?wf(e.chatMessagesBySession,e,{sessionKey:n,agentId:r})?.deltaCursor:void 0,u=l===void 0?`page`:`cursor:${l}`,d=`${c}\u0000${o}\u0000${n}\u0000${r??``}\u0000100\u0000${u}`,f=a.historyLoad;if(t.supersedeInFlight!==!0&&f.phase===`in-flight`&&f.key===d&&f.client===s&&f.connectionEpoch===c)return f.promise;t.deferBranches!==!0&&(!F(e.chatBranchesSessionKey,n)||e.chatBranchesConnectionEpoch!==c)&&wb(e);let p=Mb(e,s,c,n,r,o,l).then(t=>{let o=a.historyLoad;return o.phase===`in-flight`&&o.promise===p&&(t?a.historyLoad={phase:`committed`,key:`${n}\u0000${r??``}`}:e.sessionKey===n&&(!Dt(e,n)||he(e)===r)&&(!e.connected||o.client!==e.client||o.connectionEpoch!==e.connectionEpoch)?(a.historyLoad={phase:`pending-connection`,sessionKey:n,requestAgentId:r,startup:i},e.chatLoading=!0):(a.historyLoad={phase:`idle`},e.chatLoading=!1),e.requestUpdate?.()),t});return a.historyLoad={phase:`in-flight`,client:s,connectionEpoch:c,key:d,promise:p,sessionKey:n,requestAgentId:r,startup:i},p}function Tb(e){let t=wy(e);if(t.phase===`pending-connection`||t.phase===`failed`&&t.retryable)return Z(e,{startup:t.startup,deferBranches:!0})}function Eb(e){let t=wy(e);if(t.phase!==`failed`)return;let n=Z(e,{startup:t.startup});return e.requestUpdate?.(),n}async function Db(e,t,n,r){let i=await e.request(`chat.history`,{sessionKey:t,...n?{agentId:n}:{},limit:Fb,offset:r});return{...i,messages:Ry(i.messages)}}async function Ob(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.sessionKey,i=Dt(e,r)?he(e):void 0,a=Dy(e,n,e.connectionEpoch,r,i),o=await Db(n,r,i,t);if(ky(e,a))return o}async function kb(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.connectionEpoch,i=e.sessionKey,a=Cy(e).historyVersion,o=Dt(e,i)?he(e):void 0,s=await Db(n,i,o,t);return{claim:{client:n,connectionEpoch:r,sessionKey:i,historyVersion:a,...o?{agentId:o}:{}},requestedOffset:t,result:s}}function Ab(e,t){let n=t.claim,r=e.chatHistoryPagination;return e.client===n.client&&e.connected&&e.connectionEpoch===n.connectionEpoch&&Cy(e).historyVersion===n.historyVersion&&e.sessionKey===n.sessionKey&&(!Dt(e,n.sessionKey)||he(e)===n.agentId)&&r.hasMore&&r.nextOffset===t.requestedOffset}function jb(e,n,r){if(!n||e.client!==r||!e.connected)return;e.agentsList=n,e.agentsError=null;let i=typeof e.agentsSelectedId==`string`&&e.agentsSelectedId.trim()?t(e.agentsSelectedId):void 0;i&&n.agents.some(e=>t(e.id)===i)||(e.agentsSelectedId=typeof n.defaultId==`string`&&n.defaultId.trim()?n.defaultId:n.agents[0]?.id??null)}async function Mb(e,t,n,r,i,a,o){let s=Dy(e,t,n,r,i),c=fl(),l=e.chatMessages,u=Ky(e,r,i),d=e.chatHistoryPagination,f=e.currentSessionId??null,p=e.chatDisplayedLeafEntryId,m=e.chatRunId;pb(e,`start`,c,{requestSessionKey:r,requestAgentId:i,method:a,previousRunId:m}),e.resetChatInputHistoryNavigation?.(),e.chatLoading=!0,$y(e,null);try{let h=o===void 0?`page`:`cursor:${o}`,g=await db(t,`${n}\u0000${a}\u0000${r}\u0000${i??``}\u0000100\u0000${h}`,a,r,i,e,()=>ky(e,s),o,e.sessions?.canonicalListRevision);if(!ky(e,s)){pb(e,`stale`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,reason:`apply-version`});return}if(Vy(g)&&g.kind===`reset`&&(hb(e,r,i),g=await db(t,`${n}\u0000${a}\u0000${r}\u0000${i??``}\u0000100\u0000page`,a,r,i,e,()=>ky(e,s),void 0,e.sessions?.canonicalListRevision),!ky(e,s))){pb(e,`stale`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,reason:`reset-fallback-version`});return}if(Vy(g)&&g.kind===`delta`){let t=Ky(e,r,i),n=e.chatRunId?e.chatStream:null,a=Te(g.sessionInfo);for(let t of g.messages)tf(e,t,a,{kind:`history-delta`});let o=il(e,e.chatMessages);return Object.hasOwn(g.sessionInfo,`activeLeafEntryId`)&&(e.chatDisplayedLeafEntryId=g.sessionInfo.activeLeafEntryId?.trim()||null),e.currentSessionId=g.sessionInfo.sessionId?.trim()||f,Ih(e,g.pendingInputs),nl(e,{...o,scope:{...o.scope,...al(e)}}),e.chatThinkingLevel=g.sessionInfo.thinkingLevel??null,e.chatQueueModeOverride=g.sessionInfo.queueMode,e.chatEffectiveQueueMode=g.sessionInfo.effectiveQueueMode,Jy({state:e,run:g.inFlightRun,sessionInfo:g.sessionInfo,previousRunProjections:u,runProjectionsBeforeApply:t,currentRunProjections:o.runs,resetStream:!e.chatRunId||e.chatRunId===m,activeStreamBeforeReset:n}),mb(e,g.deltaCursor??null),pb(e,`applied`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,messageCount:g.messages.length,visibleMessageCount:g.messages.length,resetStream:!1}),{messages:e.chatMessages,deltaCursor:g.deltaCursor,pendingInputs:g.pendingInputs,sessionInfo:g.sessionInfo,...g.inFlightRun?{inFlightRun:g.inFlightRun}:{},...g.metadata?{metadata:g.metadata}:{},sourceCanonicalListRevision:g.sourceCanonicalListRevision}}if(Vy(g))throw Error(`chat history page request returned a cursor reset`);let _=g,v=Ky(e,r,i),y=Array.isArray(_.messages)?_.messages:[],b=Yy(_),x=Xy(_),S=Ry(y),C=zl({host:e,previousMessages:l,sessionKey:r,visibleMessages:S}),w=Object.hasOwn(_.sessionInfo??{},`activeLeafEntryId`)?_.sessionInfo?.activeLeafEntryId?.trim()||null:p??null,ee=(!f||!x||f===x)&&(p===void 0||p===w),T=Qy({nextMessages:S,nextPagination:b,nextSessionId:x,previousMessages:ee?C:[],previousPagination:d,previousSessionId:f}),te=T?.messages??S,E=al(e,{sessionKey:r,agentId:i,sessionId:x,...Object.hasOwn(_.sessionInfo??{},`activeLeafEntryId`)?{activeLeafEntryId:w}:{}}),ne=$c(e,{type:`snapshotLoaded`,messages:te,options:{shouldIncludeMessage:e=>!Ly(e)}},{scope:E,messages:ee?e.chatMessages:[],runActive:_.sessionInfo&&(typeof _.sessionInfo.hasActiveRun==`boolean`||_.sessionInfo.status!==void 0)?Te(_.sessionInfo):void 0});Object.hasOwn(_.sessionInfo??{},`activeLeafEntryId`)&&(e.chatDisplayedLeafEntryId=w),e.chatHistoryPagination=T?.pagination??b,e.currentSessionId=x,Ih(e,_.pendingInputs),mb(e,_.deltaCursor??null),e.reconnectResumeSessionId&&e.reconnectResumeSessionId!==e.currentSessionId&&(e.reconnectResumeSessionId=null),e.chatThinkingLevel=_.sessionInfo?.thinkingLevel??_.thinkingLevel??null,e.chatVerboseLevel=_.verboseLevel??null,e.chatQueueModeOverride=_.sessionInfo?.queueMode,e.chatEffectiveQueueMode=_.sessionInfo?.effectiveQueueMode;let re=e.chatRunId?e.chatStream:null,ie=!e.chatRunId||e.chatRunId===m;if(ie){let t={persistCommentary:e.chatRunId?!0:By(e),isHiddenAssistantMessage:Iy,isHiddenStreamText:Fy},n=qu(e,t),a=pf(e.chatMessages,e,t);sd(e.chatMessages,e,t);let o=vd(e);e.chatRunId&&(n||o.length>0)&&(e.chatRunStartup={state:`activity`,runId:e.chatRunId});let s=vf(e.chatMessages,e),l=o.length>0&&o.every(e=>s.has(e)),u=s.size>0,d=o.length===0||l;!n||a?(e.chatRunId&&a&&Ku(e,{runId:e.chatRunId,persisted:!0}),d?yf(e,{preserveStreamSegments:e.chatRunId!==null}):md(e,s),e.chatRunId||(e.chatStream=null,e.chatStreamStartedAt=null),pb(e,`stream-reset`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,messageCount:y.length,visibleMessageCount:S.length})):e.chatRunId?u&&(e.chatMessages=zy(e.chatMessages,e,{includeCurrent:!1,requirePersistedTool:!l,persistCommentary:!0}),Il(e,t.isHiddenStreamText)||(e.chatStreamStartedAt=null),sd(e.chatMessages,e,t),l?yf(e,{preserveStreamSegments:!0}):md(e,s)):(e.chatMessages=zy(e.chatMessages,e),yf(e),e.chatStream=null,e.chatStreamStartedAt=null)}return Jy({state:e,run:_.inFlightRun,sessionInfo:_.sessionInfo,previousRunProjections:u,runProjectionsBeforeApply:v,currentRunProjections:ne.runs,resetStream:ie,activeStreamBeforeReset:re}),pb(e,`applied`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,messageCount:y.length,visibleMessageCount:S.length,resetStream:ie}),_}catch(t){if(!ky(e,s)){pb(e,`stale`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m,reason:`error-version`});return}pb(e,`error`,c,{requestSessionKey:r,requestAgentId:i,previousRunId:m});let n=ct(t);n&&(Ay(e,i),e.chatThinkingLevel=null,e.chatVerboseLevel=null),Cy(e).historyLoad={phase:`failed`,sessionKey:r,requestAgentId:i,startup:a===`chat.startup`,message:n?He(`existing chat history`):P(t),retryable:t instanceof Gt&&t.retryable},e.requestUpdate?.()}finally{Oy(e,s)&&(e.chatLoading=!1)}}var Nb,Pb,Fb,Ib,Lb,Rb,zb,Bb;function Q(){return(Q=e((()=>{nr(),mn(),$t(),oi(),si(),I(),vt(),A(),N(),j(),xy(),zh(),cs(),Zc(),dl(),Yl(),cu(),gf(),rd(),Zl(),od(),Cf(),lf(),Fl(),Qu(),Ol(),Nb=/^\s*NO_REPLY\s*$/,Pb=`[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.`,Fb=400,Ib=6e4,Lb=250,Rb=3,zb=new WeakMap,Bb=new WeakMap})))()}function Vb(e,t){return t?(e.selectedChatSessionArchived=t.archived===!0,e.selectedChatSessionIncognito=t.incognito===!0,e.chatQueueModeOverride=t.queueMode,e.chatEffectiveQueueMode=t.effectiveQueueMode,!0):!1}function Hb(e){return qt(e)}async function Ub(e,t){if(!e.connected||!e.client)return null;let n=await e.client.request(`artifacts.download`,t,{timeoutMs:Kb}),r=typeof n?.url==`string`?n.url.trim():``;if(!r)return null;let i=typeof n?.expiresAt==`string`?n.expiresAt.trim():void 0;return{url:r,...i?{expiresAt:i}:{}}}function Wb(e){e.lastError=null,e.lastErrorCode=null,e.chatError=null}var Gb,Kb,qb;function Jb(){return(Jb=e((()=>{Dn(),Gb=256,Kb=3e4,qb=class{constructor(){this.lastBlocked=new Map}reset(){this.lastBlocked.clear()}resolve(e){if(e.catalog)return!1;if(e.session){let t=e.session.visibility===`draft`?e.session.sharingRole!==`admin`&&e.session.sharingRole!==`owner`:e.session.visibility!==void 0&&e.session.visibility!==`shared`&&e.session.sharingRole===`viewer`;return this.remember(e.sessionKey,t),t}return e.listLoading?this.lastBlocked.get(e.sessionKey)===!0:!1}remember(e,t){if(this.lastBlocked.delete(e),this.lastBlocked.set(e,t),this.lastBlocked.size<=Gb)return;let n=this.lastBlocked.keys().next().value;n&&this.lastBlocked.delete(n)}}})))()}function Yb(e){let t=e?.state,n=e!==void 0,r=t?.terminalAvailable===!0,i=t?.browserPanelAvailable===!0,a=e?.desktopAvailable===!0,o=t?f({kind:`desktop`,session:t.sessionKey},t.basePath):null,s=(e,t,r,i,a)=>({slot:e,label:G(`chat.sidePanel.${t}`),icon:r,available:a?.available??n,content:i,loading:jr($b[e],G(`common.loading`)),empty:{description:G(`chat.sidePanel.${t}Empty`)},...a?.headerAction?{headerAction:a.headerAction}:{},...a?.shortcut?{shortcut:a.shortcut}:{}}),c=t&&r?B`<openclaw-terminal-panel
|
||
embedded
|
||
.client=${t.connected?t.client:null}
|
||
.available=${t.terminalAvailable}
|
||
.agentId=${e?.agentId??null}
|
||
.sessionKey=${t.sessionKey}
|
||
.themeMode=${e?.themeMode??`dark`}
|
||
.basePath=${t.basePath}
|
||
></openclaw-terminal-panel>`:null,l=t&&i?B`<openclaw-browser-panel
|
||
embedded
|
||
data-chat-autotype-exempt
|
||
.client=${t.connected?t.client:null}
|
||
.available=${t.browserPanelAvailable}
|
||
.presented=${e?.browserPresented??!1}
|
||
.refreshOnPresentation=${e?.browserRefreshOnPresentation??!0}
|
||
.sessionKey=${t.sessionKey}
|
||
.preferredTab=${e?.preferredBrowserTab}
|
||
.resourceBasePath=${t.resourceBasePath}
|
||
.authToken=${Hb(t)}
|
||
></openclaw-browser-panel>`:null,u=e?B`<openclaw-chat-session-rail
|
||
embedded
|
||
.sessionKey=${t?.sessionKey}
|
||
.digest=${e.digest}
|
||
.running=${!!e.activeRunId}
|
||
.activeRunId=${e.activeRunId}
|
||
.startedAt=${e.startedAt}
|
||
.lastReadAt=${e.lastReadAt}
|
||
.pullRequests=${e.pullRequests}
|
||
.companion=${e.companion}
|
||
.connected=${t?.connected===!0}
|
||
.onSubmit=${e.onCompanionSubmit}
|
||
.onDraftChange=${e.onCompanionDraftChange}
|
||
.onVisibilityChange=${e.onCompanionVisibilityChange}
|
||
></openclaw-chat-session-rail>`:null,d=t&&a?B`<openclaw-desktop-panel
|
||
embedded
|
||
data-chat-autotype-exempt
|
||
.client=${t.connected?t.client:null}
|
||
.available=${a}
|
||
.presented=${e?.desktopPresented??!1}
|
||
.refreshOnPresentation=${e?.desktopRefreshOnPresentation??!0}
|
||
.requestedSource=${e?.desktopSource??null}
|
||
.sessionKey=${t.sessionKey}
|
||
></openclaw-desktop-panel>`:null,p=e?.discussion?B`<openclaw-session-discussion
|
||
.sessionKey=${e.discussion.sessionKey}
|
||
.canOpen=${e.discussion.canOpen}
|
||
.sourceGeneration=${e.discussionSourceGeneration}
|
||
.loadInfo=${e.discussion.loadInfo}
|
||
.openDiscussion=${e.discussion.openDiscussion}
|
||
.onStateChange=${e.discussion.onStateChange}
|
||
></openclaw-session-discussion>`:null,m=t?.attachmentSidebarContent??null,h=t?yc(t):!1,g=t?.sidebarContent??(t&&e?.detailOpen&&!h?Rc(t):null),_=m&&e?e.renderDetail(m):e?.workspace??null;return[s(`detail`,`review`,W.diff,h?jr(`review`,G(`common.loading`)):g&&e?e.renderDetail(g):null),s(`terminal`,`terminal`,W.terminal,c,{available:r,shortcut:oe(Ne.terminalPanel)}),s(`browser`,`browser`,W.globe,l,{available:i}),s(`workspace`,`files`,W.fileText,_,{shortcut:oe(Ne.workspaceFiles)}),s(`companion`,`companion`,W.bot,u,e?{headerAction:B`<wa-dropdown
|
||
class="chat-session-rail__menu"
|
||
placement="bottom-end"
|
||
@wa-select=${t=>{t.detail.item.value===`clear`&&e.onClearCompanion()}}
|
||
>
|
||
<button
|
||
slot="trigger"
|
||
class="rail-header__action"
|
||
type="button"
|
||
aria-label=${G(`chat.rail.moreActions`)}
|
||
aria-haspopup="menu"
|
||
aria-expanded="false"
|
||
>
|
||
${W.moreHorizontal}
|
||
</button>
|
||
<wa-dropdown-item
|
||
value="clear"
|
||
?disabled=${!e.connected||e.pendingQuestion!==null}
|
||
>
|
||
${G(`chat.rail.clear`)}
|
||
</wa-dropdown-item>
|
||
</wa-dropdown>`}:void 0),s(`tasks`,`tasks`,W.listChecks,e?.tasks??null),s(`desktop`,`desktop`,W.monitor,d,{available:a,...o?{headerAction:B`<a
|
||
class="rail-header__action"
|
||
href=${o}
|
||
target="_blank"
|
||
rel="noopener"
|
||
aria-label=${G(`desktop.openWindow`)}
|
||
title=${G(`desktop.openWindow`)}
|
||
>${W.externalLink}</a
|
||
>`}:{}}),s(`discussion`,`discussion`,W.messageSquare,p,{available:p!==null&&e?.discussionAvailable===!0,...e?.discussionOpenUrl?{headerAction:B`<a
|
||
class="rail-header__action"
|
||
href=${e.discussionOpenUrl}
|
||
target="_blank"
|
||
rel="noopener"
|
||
aria-label=${G(`chat.sessionDiscussion.openExternal`)}
|
||
title=${G(`chat.sessionDiscussion.openExternal`)}
|
||
>${W.externalLink}</a
|
||
>`}:{}}),s(`chat`,`boardChat`,W.messageSquare,e?.chat??null,{available:e?.hasBoard===!0})]}function Xb(e){return e.filter(e=>e.available).map(e=>e.slot)}function Zb(e){let t={};for(let n of e)n.content!==null&&(t[n.slot]=n.content);return t}function Qb(e){let t={};for(let n of e)n.headerAction&&(t[n.slot]=n.headerAction);return t}var $b;function ex(){return(ex=e((()=>{m(),It(),Fn(),Ai(),U(),Si(),Jb(),Ic(),$b={browser:`browser`,chat:`chat`,companion:`chat`,desktop:`desktop`,detail:`review`,discussion:`discussion`,tasks:`tasks`,terminal:`terminal`,workspace:`files`}})))()}function tx(e,t){let n=sx[e];if(!n)return;let[r,i]=n;if(customElements.get(r)){cx.delete(e);return}let a=cx.get(e)??{listeners:new Set};return cx.set(e,a),a.error===void 0?(a.listeners.add(t),a.pending||=tn(r,i).catch(e=>{a.error=zn({error:e,stale:on(e),onRetry:()=>void An()})}).finally(()=>{delete a.pending,a.listeners.forEach(e=>e()),a.listeners.clear()}),null):a.error}function nx(e){let{layout:t,state:n}=e;return{activatePanel:e=>{n.updateSidebarLayout($l(t,e)),n.updateSidebarActivePanel(e)},closeSlot:t=>{if(t===`chat`){e.hideBoard();return}t===`discussion`&&e.forgetDiscussionUrl(),e.closePanelSlot(t)},openSlot:e.openPanelSlot,reorderPanel:(e,r,i)=>n.updateSidebarLayout(af(t,e,r,i)),resizePanel:e.resizePanel,setDock:e=>n.updateSidebarLayout(Qd(t,e)),setExpanded:e=>n.updateSidebarLayout(wd(t,e)),setOpen:e.setPanelOpen}}function rx(e){let t=e.panelDefinitions??Yb(),n=e.layout.open===!0,r=n?tx(`region`,e.requestUpdate):void 0,i=null;for(let n of e.layout.columns[0]?.panels??[]){let r=tx(n.slot,e.requestUpdate);r!==void 0&&(i??={...e.panelTemplates},i[n.slot]=r??t.find(e=>e.slot===n.slot)?.loading)}let a=e.availableWidth>0?e.availableWidth:1/0,o=e.narrow||bu(e.layout,a),s=e.layout.columns[0]?.activePanelId,c=e.layout.columns[0]?.panels.find(e=>e.id===s)?.slot,l=t.find(e=>e.slot===c)?.loading;return B`<div
|
||
class="sidebar-region ${o&&n?`sidebar-region--narrow`:``} ${n&&e.layout.expanded?`sidebar-region--expanded`:``} ${n&&Wd(e.layout)===`bottom`?`sidebar-region--bottom`:``}"
|
||
>
|
||
${r===void 0?B`<openclaw-chat-sidebar-region
|
||
.layout=${e.layout}
|
||
.panelDefinitions=${t}
|
||
.panelTemplates=${i??e.panelTemplates}
|
||
.panelActions=${e.panelActions}
|
||
.availableSlots=${e.availableSlots}
|
||
.callbacks=${e.callbacks}
|
||
.narrow=${e.narrow}
|
||
.availableWidth=${e.availableWidth}
|
||
></openclaw-chat-sidebar-region>`:r===null?l??null:null}
|
||
<div class="sidebar-region__primary">${e.primary}</div>
|
||
<div class="sidebar-region__right-runtime">${r??null}</div>
|
||
</div>`}function ix(e){let t=e.layout;if(!(e.board.hasBoard&&e.board.face===`dashboard`&&(e.board.dock===`left`||e.board.dock===`right`)&&e.board.dock))return t=zu(t,`chat`),e.board.hasBoard&&e.board.face===`dashboard`&&e.board.dock===`hidden`&&e.board.provider.canMutate&&(t=Yu(t,!1)),Lu(t,e.paneWidth)??t;let n=t.columns.length>0&&t.open===!1,r=t.columns[0]?.activePanelId;return t=ud(t,`chat`),r&&(t=$l(t,r)),t={...t,open:!n},Lu(t,e.paneWidth)??t}function ax(e,t){return t||!e.client||!e.connected?null:async t=>!e.client||!e.connected?null:e.client.request(`chat.message.get`,{sessionKey:t.sessionKey,...t.agentId?{agentId:t.agentId}:{},messageId:t.messageId,maxChars:ox})}var ox,sx,cx;function lx(){return(lx=e((()=>{It(),rn(),Xt(),Ln(),ex(),Hu(),o(),ox=5e5,sx={region:[`openclaw-chat-sidebar-region`,()=>i(()=>import(`./chat-sidebar-region.runtime-Cburt2yr.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]),import.meta.url)],terminal:[`openclaw-terminal-panel`,()=>i(()=>import(`./terminal-panel-registration-CCniUaOS.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,10,11,9,12,13,14,15,16,17,18,19,20,21,22,23,26,27,24]),import.meta.url)],browser:[`openclaw-browser-panel`,()=>i(()=>import(`./browser-panel-BNW001UL.js`),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,26,27,24]),import.meta.url)],desktop:[`openclaw-desktop-panel`,()=>i(()=>import(`./desktop-panel-D3-Tqe5h.js`),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,26,27]),import.meta.url)],companion:[`openclaw-chat-session-rail`,()=>i(()=>import(`./chat-session-rail-3W0BOxYg.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)],discussion:[`openclaw-session-discussion`,()=>i(()=>import(`./session-discussion-panel-3-zZr__N.js`),__vite__mapDeps([31,1,2,3,4,5,6,7,8,10,11,9,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)]},cx=new Map})))()}function ux(e){let t=Be(e.sessionKey),n=ax(e,!!t);return{catalogKey:t,chatProps:{fullMessageAgentId:R(e,e.sessionKey).agentId,loadFullAssistantMessage:n}}}function dx(){return(dx=e((()=>{Ct(),A(),lx()})))()}function fx(e){return e.catalog||!e.connected||!e.agentsLoaded||!e.selectedAgentFound?!1:!e.agentModel?.trim()}function px(e){return{kind:`composer-replacement`,text:G(`modelSetup.required.body`),actionLabel:G(`modelSetup.required.action`),onAction:e}}function mx(){return(mx=e((()=>{U()})))()}var hx,gx;function _x(){return(_x=e((()=>{It(),wr(),U(),Oa(),Sr(),o(),hx=i(()=>import(`./composer-draft-store.runtime-ChgPeVSK.js`),__vite__mapDeps([32,9,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url),gx=class extends r{constructor(...e){super(...e),this.identity=``,this.entries=[],this.drafts=[],this.error=``,this.busy=!1,this.generation=0}static{this.properties={host:{attribute:!1},identity:{type:String}}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.unsubscribe=ei(()=>void this.refresh())}disconnectedCallback(){this.generation++,this.unsubscribe?.(),super.disconnectedCallback()}updated(e){(e.has(`identity`)||e.has(`host`))&&this.refresh()}owner(){let e=this.host;return!e?.connected||e.selectedChatSessionIncognito||!e.client?.recoveryScopeReady||!e.client.recoveryScope?null:{gatewayOwner:ii(e.settings.gatewayUrl).gatewayOwner,recoveryScope:e.client.recoveryScope}}async refresh(){let e=++this.generation,t=this.host,n=this.owner();this.drafts=[];try{let r=t?li(t):null;if(this.entries=r?.entries??[],this.error=r?.blocked?G(`chat.outboxRecoveryFull`):``,n){let t=await(await hx).prepareDurableComposerRecovery(n);if(e!==this.generation||!this.isConnected)return;if(t.status===`storage-failed`)throw Error(`storage-failed`);this.drafts=t.entries}}catch{this.error=G(`chat.outboxRecoveryStorageFailed`)}this.requestUpdate()}async recover(e){let t=this.host,n=this.owner();if(!t||!n||this.busy)return;let r=this.identity,i=t.client,a=t.currentSessionId,o=t.connectionEpoch,s=()=>this.isConnected&&this.host===t&&this.identity===r&&t.client===i&&t.currentSessionId===a&&t.connectionEpoch===o&&JSON.stringify(this.owner())===JSON.stringify(n)&&!t.chatMessage&&!t.chatGoalDraftMode&&!t.chatAttachments.length&&!t.chatQueue.length;this.busy=!0,this.error=``,this.requestUpdate();try{if(!s()){this.error=G(`chat.outboxRecoveryConflict`);return}let i=Hr(t,t.sessionKey),a=br(t,i),o={...n,scopeKey:`chat:v3:${q(i)}`},c=await hx,l=await c.readDurableComposerDraft(o);if(l.status===`storage-failed`){this.error=G(`chat.outboxRecoveryStorageFailed`);return}if(!a||l.status===`found`||!s()){this.error=G(`chat.outboxRecoveryConflict`);return}if(!await jo({title:G(`chat.outboxRecoveryTitle`),message:G(`chat.outboxRecoveryConfirm`),details:`${i.sessionKey}${i.agentId?` (${i.agentId})`:``}`,confirmLabel:G(`chat.outboxRecoveryRestore`)})||!s())return;let u=await c.readDurableComposerDraft(o);if(!s()||JSON.stringify(u)!==JSON.stringify(l)){this.error=G(`chat.outboxRecoveryConflict`);return}let d=`id`in e?mi(t,e,a,l.revision??0):(await c.restoreDurableComposerRecovery(o,e,l.revision??0,l.writeId,()=>s()&&JSON.stringify(br(t,i))===JSON.stringify(a),a.revision)).status;d===`restored`||d===`persisted`?(this.host===t&&this.identity===r&&this.dispatchEvent(new CustomEvent(`outbox-restored`,{bubbles:!0})),await this.refresh()):this.error=G(d===`conflict`?`chat.outboxRecoveryConflict`:`chat.outboxRecoveryStorageFailed`)}catch{this.error=G(`chat.outboxRecoveryStorageFailed`)}finally{this.busy=!1,this.requestUpdate()}}render(){if(!this.entries.length&&!this.drafts.length&&!this.error)return z;let e=[...this.entries,...this.drafts];return B`<details
|
||
class="callout warn chat-outbox-recovery"
|
||
style="max-height: 40vh; overflow: auto"
|
||
>
|
||
<summary>${G(`chat.outboxRecoveryTitle`)} (${e.length})</summary>
|
||
<p>${G(`chat.outboxRecoveryDescription`)}</p>
|
||
${this.error?B`<p role="alert">${this.error}</p>`:z}
|
||
${e.map(e=>B`<div class="chat-outbox-recovery-row">
|
||
<p>
|
||
${`id`in e?[e.session.draft,...(e.session.queue??[]).map(e=>e.text)].filter(Boolean).join(` · `).slice(0,240):e.text.slice(0,240)}
|
||
</p>
|
||
<p>
|
||
${`id`in e?G(`chat.outboxRecoveryMessages`,{count:String(e.session.queue?.length??0)}):e.attachmentNames.join(`, `).slice(0,240)}
|
||
</p>
|
||
<button
|
||
class="btn"
|
||
?disabled=${this.busy||!this.owner()}
|
||
@click=${()=>void this.recover(e)}
|
||
>
|
||
${G(`chat.outboxRecoveryRestore`)}
|
||
</button>
|
||
</div>`)}
|
||
</details>`}},customElements.define(`openclaw-chat-outbox-recovery`,gx)})))()}function vx(e){e.updateComplete.then(()=>{e.querySelector(I_)?.focus({preventScroll:!0})})}function yx(e,t,n){if(!e||!t||n.defaultPrevented||!(n instanceof CustomEvent))return!1;let r=n.detail;if(!r||typeof r.modelContext!=`string`||typeof r.dataUrl!=`string`||!r.card)return!1;if(!kf(e.chatAttachments,r.modelContext))return n.rejection=`limit`,!1;let i=Zs(r.dataUrl,r.fileName||`annotation`,e.hello?.policy?.attachments);return i?(n.preventDefault(),e.chatAttachments=[...e.chatAttachments,{...i,browserAnnotation:{modelContext:r.modelContext,title:r.card.title,displayUrl:r.card.displayUrl,markedRegionCount:r.card.markedRegionCount,inspectedElement:r.card.inspectedElement}}],e.requestUpdate?.(),!0):!1}function bx(){return(bx=e((()=>{Ff(),z_(),is()})))()}function xx(e){return!e.chatLoading&&!e.chatSending&&!e.chatRunId&&e.chatStream===null&&e.chatQueue.length===0}function Sx(e){let n=(e.sessionsResult?.sessions??[]).find(t=>Me(e,t.key,e.sessionKey,t.agentId));if(!n||!T(n.key))return n;let r=X(e);if(!(e.sessionsResultAgentId&&t(e.sessionsResultAgentId)!==r))return n.observerDigest?.agentId&&t(n.observerDigest.agentId)!==r?{...n,observerDigest:void 0}:n}function Cx(e,t){(e.settings.sessionKey!==t||e.settings.lastActiveSessionKey!==t)&&(e.settings=fn({sessionKey:t,lastActiveSessionKey:t}))}function wx(e){let t=X(e);if(e.chatAvatarUrl)return e.chatAvatarUrl;let n=Na({agentId:t}).avatar;if(n)return n;let r=(e.chatAvatarStatus??e.assistantAvatarStatus)===`none`&&(e.chatAvatarReason??e.assistantAvatarReason)===`missing`,i=e.assistantAvatar;if(!r&&i&&b(i)&&e.assistantAgentId===t)return i;let a=e.agentsList?.agents?.find(e=>e.id===t)?.identity,o=a?.avatarUrl??a?.avatar;return typeof o==`string`&&b(o)?o:null}function Tx(){return(Tx=e((()=>{Ar(),Kt(),Ee(),N(),Sy()})))()}function Ex(e,t){t===`workspace`&&(e.attachmentSidebarContent=null)}function Dx(e){let{state:t,sidebarLayout:n}=e,r=e=>Dl(n,e),i=t=>{e.updateSidebarLayout(ud(n,t)),t===`companion`&&e.setObserverVisibility(!0)},a=r=>{r===`companion`&&e.setObserverVisibility(!1),Ex(t,r),e.updateSidebarLayout(zu(n,r))},o=e=>r(e)?a(e):i(e),s={...Oc(t,{draftScope:e.presentationId,expanded:Dl(n,`workspace`),narrowLayout:!1,presented:e.presented}),collapsed:!r(`workspace`),narrowLayout:!1,onToggleCollapsed:()=>o(`workspace`),onToggleTerminal:t.terminalAvailable?()=>o(`terminal`):void 0,onToggleBrowser:t.browserPanelAvailable?()=>o(`browser`):void 0,onToggleDesktop:On(e.gatewaySnapshot)?()=>o(`desktop`):void 0};return{backgroundTasks:{...Ys(t,{narrowLayout:!1,openTaskId:os(t.sidebarContent,n),onOpenTaskDetail:e=>t.handleOpenSidebar({kind:`task`,taskId:e.id}),presented:e.presented}),collapsed:!r(`tasks`),narrowLayout:!1,onToggleCollapsed:()=>o(`tasks`)},closePanelSlot:a,openPanelSlot:i,sessionWorkspace:s}}function Ox(){return(Ox=e((()=>{kn(),Es(),Cc(),Ic(),Hu()})))()}function kx(e,t,n){let r=n??Hr(e,t),i=q(r),a=new Set([i]);for(let t of Object.keys(e.chatComposerFallbackByScope)){let n=qr(t);n&&e.chatComposerFallbackByScope[t]?.awaitingDefaults&&q(Hr(e,n.sessionKey,n.agentId))===i&&a.add(t)}let o=[...a].map(t=>({fallback:e.chatComposerFallbackByScope[t],scopeKey:t})).filter(e=>e.fallback!==void 0),s=o.toSorted((e,t)=>t.fallback.sequence-e.fallback.sequence)[0];if(!s)return{scopeKey:i};let c=s.scopeKey,l=s.fallback;if(At(e)&&delete l.awaitingDefaults,o.length===1&&c===i)return{fallback:l,scopeKey:i};let u=l;if(c!==i&&l.draftRetry){let n=Gs(e,t,r.agentId),i=ys(e,t,r.agentId);l.draftRetry.draftRevision>i&&(u={...l,draftRetry:{...l.draftRetry,expectedDraftRevision:n}})}let d={...e.chatComposerFallbackByScope};for(let e of o)delete d[e.scopeKey];return d[i]=u,ge(o.flatMap(e=>e.fallback.attachments),[e.chatAttachments,...Object.values(d).map(e=>e.attachments)]),e.chatComposerFallbackByScope=d,{fallback:u,scopeKey:i}}function Ax(e,t,n){let r=++Ix;return e.chatComposerFallbackByScope={...e.chatComposerFallbackByScope,[q(t)]:{...At(e)?{}:{awaitingDefaults:!0},message:n.message,...n.goalMode?{goalMode:n.goalMode}:{},attachments:[...n.attachments],storageFailed:n.draftRetry!==void 0,sequence:r,...n.draftRetry?{draftRetry:n.draftRetry}:{}}},{sequence:r}}function jx(e,t){return e.length===t.length&&e.every((e,n)=>e.id===t[n]?.id)}function Mx(e,t,n){let{fallback:r,scopeKey:i}=kx(e,t.sessionKey,t),a=r?.message===n.message&&jx(r.attachments,n.attachments);if(r&&a)return{sequence:r.sequence};if(r?.storageFailed&&!r.message.trim()&&r.attachments.length===0)return e.chatComposerFallbackByScope={...e.chatComposerFallbackByScope,[i]:{...r,message:n.message,attachments:[...n.attachments]}},{sequence:r.sequence};if(!(r&&(r.storageFailed||r.message.trim()||r.attachments.length>0)))return Ax(e,t,n)}function Nx(e,t,n){let{fallback:r}=kx(e,t.sessionKey,t);if(!(r?.message!==n.message||!jx(r.attachments,n.attachments)))return{sequence:r.sequence}}function Px(e,t){return Object.values(e.chatComposerFallbackByScope).some(e=>e.sequence===t.sequence)}function Fx(e,t){if(!t)return!1;let n=Object.entries(e.chatComposerFallbackByScope).filter(([,e])=>e.sequence===t.sequence);if(n.length===0)return!1;let r={...e.chatComposerFallbackByScope};for(let[e]of n)delete r[e];return e.chatComposerFallbackByScope=r,!0}var Ix;function Lx(){return(Lx=e((()=>{Sr(),N(),j(),cs(),Ix=0})))()}function Rx(e){return(e?.appliedConfigHash??e?.configRevisionHash??e?.hash??null)||JSON.stringify(l(l(e?.runtimeConfig)?.mcp)?.servers??null)}var zx;function Bx(){return(Bx=e((()=>{It(),$t(),Nn(),la(),Za(),U(),mt(),go(),I(),hr(),w(),A(),N(),Zv(),Av(),fs(),zx=class e{constructor(e){this.notify=e,this.patchTokens=new Map,this.effectiveTools=null,this.effectiveToolsErrorKey=null,this.effectiveToolsRequest=null,this.client=null,this.addDialogOpen=!1,this.addScope=`session`,this.addBusy=!1,this.addError=null,this.skillCatalog=new Bs(e)}static async addMcpServer(e){let t=e.scope===`session`?{...e.config,enabled:!1}:e.config,n;try{n=await e.patchGlobal(t)}catch(e){return{ok:!1,error:P(e),stage:`config`}}if(!n.ok)return{...n,stage:`config`};if(e.scope===`everywhere`)return{ok:!0};let r;try{r=await e.loadSessionOverrides()}catch(e){return{ok:!1,error:P(e),stage:`session`}}if(!r.ok)return{...r,stage:`session`};let i=bi(r.overrides,`mcpServers`,e.name,!0,!1),a;try{a=await e.patchSession(i)}catch(e){return{ok:!1,error:P(e),stage:`session`}}return a.ok?a:{...a,stage:`session`}}loadSkills(e,t,n){let r=e.runtimeConfig.state;!r.configSnapshot&&!r.configLoading&&e.runtimeConfig.ensureLoaded().catch(()=>void 0);let i=t.client,a=t.connectionEpoch;this.skillCatalog.load(i,a,n,()=>t.connected&&t.client===i&&t.connectionEpoch===a)}effectiveToolsKeys(e,t,n){let r=lt({chatModelCatalog:t.chatModelCatalog,sessions:e.sessions,sessionsResult:t.sessionsResult},{agentId:n,sessionKey:t.sessionKey});return{cacheKey:`${r}\0config=${Rx(e.runtimeConfig.state.configSnapshot??null)}`,requestKey:r}}loadEffectiveTools(e,t,n,r=!1){let i=t.client,a=t.sessionKey,{cacheKey:o,requestKey:s}=this.effectiveToolsKeys(e,t,n);if(!t.connected||!i||this.effectiveTools?.key===o||this.effectiveToolsRequest?.key===o||!r&&this.effectiveToolsErrorKey===o)return;let c=Symbol(`composer-effective-tools-request`),l=t.connectionEpoch;this.effectiveToolsRequest={key:o,owner:c};let u={chatModelCatalog:t.chatModelCatalog,client:i,connected:!0,sessions:e.sessions,sessionsResult:t.sessionsResult,toolsEffectiveError:null,toolsEffectiveLoading:!1,toolsEffectiveLoadingKey:null,toolsEffectiveResult:null,toolsEffectiveResultKey:null},d=()=>this.effectiveToolsRequest?.owner===c&&this.client===i&&t.client===i&&t.connected&&this.connectionEpoch===l&&t.connectionEpoch===l&&t.sessionKey===a&&this.effectiveToolsKeys(e,t,n).cacheKey===o;this.effectiveToolsErrorKey=null,this.notify(),Ze(u,{agentId:n,sessionKey:a},{isCurrent:d}).then(()=>{d()&&(u.toolsEffectiveResult&&u.toolsEffectiveResultKey===s?this.effectiveTools={key:o,result:u.toolsEffectiveResult}:u.toolsEffectiveError&&(this.effectiveToolsErrorKey=o))}).catch(()=>{d()&&(this.effectiveToolsErrorKey=o)}).finally(()=>{this.effectiveToolsRequest?.owner===c&&(this.effectiveToolsRequest=null,this.client===i&&this.connectionEpoch===l&&this.notify())})}async patch(e,t,n){if(!t.connected||!t.client)return{ok:!1,error:G(`chat.composer.menu.offlineBlocked`)};let r=M(e.gateway.snapshot,{method:`sessions.patch`,params:{key:t.sessionKey,toolOverrides:n}});if(!r.allowed)return{ok:!1,error:r.reason};let i=t.sessionKey;if(this.patchTokens.has(i))return{ok:!1,error:G(`chat.composer.menu.savingBlocked`)};let a=t.client,o=Symbol(i);this.patchTokens.set(i,o);let s=()=>this.client===a&&t.client===a&&t.sessionKey===i&&this.patchTokens.get(i)===o;t.sessionKey===i&&(t.lastError=null,t.chatError=null),this.notify();try{if(!await Ev(t,i,{toolOverrides:n},{...R(t,i)}))throw Error(G(`chat.composer.menu.offlineBlocked`));return{ok:!0}}catch(e){let n=P(e);if(s()){try{await Nv(t)}catch{}s()&&(t.lastError=n,t.chatError=n,t.requestUpdate?.())}return{ok:!1,error:n}}finally{this.patchTokens.get(i)===o&&(this.patchTokens.delete(i),this.client===a&&this.notify())}}closeAddDialog(){this.addBusy||(this.addDialogOpen=!1,this.addError=null,this.notify())}addServerBlockedReason(e,t,n,r){let i=dn(e.gateway.snapshot);return!t.connected||!t.client?G(`chat.composer.menu.offlineBlocked`):i.canAdmin?r===`everywhere`?null:n?this.patchTokens.has(t.sessionKey)?G(`chat.composer.menu.savingBlocked`):null:G(`common.loading`):G(`chat.composer.menu.adminBlocked`)}async loadCurrentSessionOverrides(e,t,n){let r=()=>e.sessionKey===t&&it(e,t).agentId===n;if(!r())return{ok:!1,error:G(`mcpServers.sessionChanged`)};try{await Nv(e)}catch(e){return{ok:!1,error:P(e)}}if(!r())return{ok:!1,error:G(`mcpServers.sessionChanged`)};let i=e.sessions.state;if(i.error)return{ok:!1,error:i.error};let a=i.result?.sessions.find(e=>F(e.key,t));return!a||(i.agentId??void 0)!==n?{ok:!1,error:G(`mcpServers.sessionUnavailable`)}:{ok:!0,overrides:a.toolOverrides}}async submitAddServer(t,n,r,i){if(this.addBusy)return;let a=this.addServerBlockedReason(t,n,r,this.addScope);if(a){this.addError=a,this.notify();return}let o=i.name.trim();if(!fo.test(o)){this.addError=G(`mcpServers.nameInvalid`),this.notify();return}let s=aa(i.target,i.transport);if(!s){this.addError=G(`mcpServers.targetInvalid`),this.notify();return}this.addBusy=!0,this.addError=null,this.notify();let c=n.sessionKey,l=it(n,c).agentId,u;try{u=await e.addMcpServer({scope:this.addScope,name:o,config:s,patchGlobal:e=>Ra(t.runtimeConfig,{buildPatch:t=>Ea(t,o,e),note:`composer connectors: add MCP server ${o}`}),loadSessionOverrides:()=>this.loadCurrentSessionOverrides(n,c,l),patchSession:e=>this.patch(t,n,e)})}finally{this.addBusy=!1}if(!u.ok){let e=ft(u.error);this.addError=u.stage===`session`?G(`mcpServers.sessionEnableFailed`,{error:e}):e,this.notify();return}this.addDialogOpen=!1,this.notify()}renderAddServerDialog(e,t,n){if(!this.addDialogOpen)return z;let r=this.addServerBlockedReason(e,t,n,`everywhere`),i=this.addServerBlockedReason(e,t,n,this.addScope),a=G(`chat.composer.menu.addMcpServerTitle`),o=G(`chat.composer.menu.addMcpServerDescription`),s=G(this.addScope===`session`?`chat.composer.menu.scopeSessionHint`:`chat.composer.menu.scopeEverywhereHint`);return B`
|
||
<openclaw-modal-dialog
|
||
label=${a}
|
||
description=${o}
|
||
@modal-cancel=${e=>{if(this.addBusy){e.preventDefault();return}this.closeAddDialog()}}
|
||
>
|
||
<div class="exec-approval-card mcp-server-dialog">
|
||
<div class="exec-approval-header">
|
||
<div>
|
||
<div class="exec-approval-title">${a}</div>
|
||
<div class="exec-approval-sub">${o}</div>
|
||
</div>
|
||
</div>
|
||
<div class="mcp-server-dialog__scope">
|
||
<span>${G(`chat.composer.menu.scopeLabel`)}</span>
|
||
${zo({value:this.addScope,options:[{value:`session`,label:G(`chat.composer.menu.scopeSession`)},{value:`everywhere`,label:G(`chat.composer.menu.scopeEverywhere`)}],ariaLabel:G(`chat.composer.menu.scopeLabel`),disabled:this.addBusy||r!==null,onChange:e=>{this.addScope=e,this.addError=null,this.notify()}})}
|
||
<span class="mcp-server-dialog__scope-hint">${s}</span>
|
||
</div>
|
||
${_a({busy:this.addBusy,disabled:i!==null,blockedReason:i,autofocus:!0,onSubmit:r=>void this.submitAddServer(e,t,n,r),onCancel:()=>this.closeAddDialog()})}
|
||
${this.addError?B`<div class="mcp-server-message mcp-server-message--error" role="alert">
|
||
${this.addError}
|
||
</div>`:z}
|
||
</div>
|
||
</openclaw-modal-dialog>
|
||
`}props(e,t,n,r){(this.client!==t.client||this.connectionEpoch!==t.connectionEpoch)&&(this.client=t.client,this.connectionEpoch=t.connectionEpoch,this.skillCatalog.synchronize(t.client,t.connectionEpoch),this.patchTokens.clear(),this.effectiveTools=null,this.effectiveToolsErrorKey=null,this.effectiveToolsRequest=null);let i=e.runtimeConfig.state.configSnapshot?.runtimeConfig??null,a=dn(e.gateway.snapshot),o=t.connected&&!!t.client,s=K(e.gateway.snapshot,`tools.effective`)===!0,c=s?this.effectiveToolsKeys(e,t,r).cacheKey:null,l=c!==null&&this.effectiveTools?.key===c?this.effectiveTools.result:null,u=c!==null&&this.effectiveToolsRequest?.key===c,d=c!==null&&this.effectiveToolsErrorKey===c,f=o&&n!==void 0&&i!==null,p=M(e.gateway.snapshot,{method:`sessions.patch`,params:{key:t.sessionKey,toolOverrides:null}}),m=o?f?p.allowed?this.patchTokens.has(t.sessionKey)?G(`chat.composer.menu.savingBlocked`):null:p.reason:G(`common.loading`):G(`chat.composer.menu.offlineBlocked`),h=m??(l?null:G(d?`chat.composer.menu.toolAccess.loadFailed`:`common.loading`)),g=o?a.canAdmin?null:G(`chat.composer.menu.adminBlocked`):G(`chat.composer.menu.offlineBlocked`);return{basePath:t.basePath,skills:this.skillCatalog.rows(r,n?.toolOverrides),skillsLoading:this.skillCatalog.isLoading(r),skillsError:this.skillCatalog.hasError(r),mcpServers:Eo(i)??[],toolsEffectiveResult:l,toolsEffectiveLoading:u,toolsEffectiveError:d,toolAccessMutationBlockedReason:h,webSearchBaseEnabled:ms(i),mutationBlockedReason:m,canAdmin:a.canAdmin&&o,adminBlockedReason:g,addServerDialog:this.renderAddServerDialog(e,t,n),onLoadSkills:()=>this.loadSkills(e,t,r),onPatchToolOverrides:n=>void this.patch(e,t,n),onNavigate:(t,n)=>e.navigate(t,n),onAddServer:()=>{!a.canAdmin||!o||(this.addDialogOpen=!0,this.addScope=`session`,this.addError=null,this.notify())},...s?{onEnsureToolAccess:()=>this.loadEffectiveTools(e,t,r),onOpenToolAccess:()=>this.loadEffectiveTools(e,t,r,!0)}:{}}}}})))()}function Vx(e){return JSON.stringify([e.question,e.answer,e.ts])}function Hx(e){if(!e||typeof e!=`object`)return null;let t=e.details;if(!t||typeof t!=`object`)return null;let n=t.code;return typeof n==`string`?n:null}function Ux(e){if(!e||typeof e!=`object`)return null;let t=e.details;if(!t||typeof t!=`object`)return null;let n=t.reason;return typeof n==`string`?n:null}function Wx(e){return!!(e&&typeof e==`object`&&e.retryable)}function Gx(){return{exchanges:[],loading:!1,pendingQuestion:null,failedQuestion:null,failedQuestionKnownExchanges:null,hint:null,retryable:!1,draft:``,revision:0}}function Kx(e,t){return`${t?.trim()??``}\0${e.trim()}`}function qx(e,t,n,r){return e.request(`sessions.companion.ask`,{sessionKey:t,...r?{agentId:r}:{},question:n},{timeoutMs:Zx})}function Jx(e,t,n){return e.request(`sessions.companion.state`,{sessionKey:t,...n?{agentId:n}:{}})}function Yx(e,t,n){return e.request(`sessions.companion.reset`,{sessionKey:t,...n?{agentId:n}:{}})}var Xx,Zx,Qx;function $x(){return($x=e((()=>{Xx=`SESSION_COMPANION_BUSY`,Zx=7e4,Qx=class{constructor(e=()=>{}){this.notify=e,this.threads=new Map,this.hydrationTokens=new Map,this.submissionTokens=new Map}view(e,t){return this.get(e,t)}setDraft(e,t,n){let r=this.get(e,n);r.draft!==t&&(r.draft=t,r.revision+=1,this.notify())}async hydrate(e,t,n){let r=e.trim();if(!r)return;let i=Kx(r,n),a=this.get(r,n),o=a.revision,s=Symbol(i);this.hydrationTokens.set(i,s),a.loading=!0,this.notify();try{let e=await t(r);if(this.hydrationTokens.get(i)!==s||a.revision!==o)return;a.exchanges=e.exchanges.map(({question:e,answer:t,ts:n})=>({question:e,answer:t,ts:n})),a.failedQuestion&&a.exchanges.some(e=>e.question===a.failedQuestion&&!a.failedQuestionKnownExchanges?.has(Vx(e)))&&(a.failedQuestion=null,a.failedQuestionKnownExchanges=null,a.hint=null,a.retryable=!1),a.revision+=1,this.notify()}catch{}finally{this.hydrationTokens.get(i)===s&&(this.hydrationTokens.delete(i),a.loading=!1,this.notify())}}async submit(e,t,n,r){let i=e.trim(),a=t.trim();if(!i||!a)return;let o=Kx(i,r),s=this.get(i,r);if(s.pendingQuestion)return;s.pendingQuestion=a,s.failedQuestion=null,s.failedQuestionKnownExchanges=null,s.hint=null,s.retryable=!1,s.draft=``,s.revision+=1;let c=Symbol(o),l=new Set(s.exchanges.map(Vx));this.submissionTokens.set(o,c),this.notify();try{let e=await n(i,a);if(this.submissionTokens.get(o)!==c)return;s.exchanges=[...s.exchanges,{question:a,answer:e.answer,ts:e.ts}].slice(-24),s.failedQuestionKnownExchanges=null}catch(e){if(this.submissionTokens.get(o)!==c)return;s.failedQuestion=a,s.failedQuestionKnownExchanges=l;let t=Ux(e);s.hint=Hx(e)===Xx?`busy`:t===`context-unavailable`?`history-unavailable`:t===`session-missing`?`missing`:t===`rate-limited`?`rate-limited`:t===`utility-model-unavailable`?`model-unavailable`:`unavailable`,s.retryable=Wx(e)||t===null}finally{this.submissionTokens.get(o)===c&&(this.submissionTokens.delete(o),s.pendingQuestion=null,s.revision+=1,this.notify())}}async reset(e,t,n){let r=e.trim();r&&(await t(r),this.retire(r,n))}retire(e,t){let n=e?Kx(e,t):null;for(let e of[this.threads,this.hydrationTokens,this.submissionTokens])n?e.delete(n):e.clear();this.notify()}get(e,t){let n=Kx(e,t),r=this.threads.get(n);return r||(r=Gx(),this.threads.set(n,r)),r}}})))()}function eS(){return{realtimeTalkActive:!1,realtimeTalkStatus:`idle`,realtimeTalkDetail:null,realtimeTalkInputLevel:new Ll,realtimeTalkConversation:[],realtimeTalkVideoStream:null,realtimeTalkCameraDevices:[],realtimeTalkVideoCapable:!1,realtimeTalkVideoPending:!1,realtimeTalkCameraError:!1,realtimeTalkSession:null,realtimeTalkConversationState:Xl()}}function tS(e){e.realtimeTalkConversationState=Xl(),e.realtimeTalkConversation=[]}function nS(e){let t=e.realtimeTalkSession;e.realtimeTalkSession=null,e.realtimeTalkActive=!1,e.realtimeTalkStatus=`idle`,e.realtimeTalkDetail=null,e.realtimeTalkInputLevel.set(0),e.realtimeTalkVideoStream=null,e.realtimeTalkCameraDevices=[],e.realtimeTalkVideoCapable=!1,e.realtimeTalkVideoPending=!1,e.realtimeTalkCameraError=!1,tS(e),t?.stop()}function rS(e){e.realtimeTalkStatus===`error`&&nS(e)}function iS(e){let t=()=>e.realtimeTalkStatus===`error`,n=t=>{e.settings=fn({talkCameraAutoEnable:t})},r=t=>{e.realtimeTalkDetail=P(t),e.realtimeTalkCameraError=!0,e.requestUpdate()},i=async t=>{let n=await Td(!1);e.realtimeTalkSession===t&&(e.realtimeTalkCameraDevices=n.devices,e.requestUpdate())},a=async(i,a={})=>{let o=e.realtimeTalkSession;if(!(!o||!e.realtimeTalkVideoCapable||e.realtimeTalkVideoPending||t())){e.realtimeTalkVideoPending=!0,e.realtimeTalkCameraError=!1,e.realtimeTalkDetail=null,e.requestUpdate(),i||n(!1);try{i&&await o.switchCamera(cn().realtimeTalkVideoDeviceId),await o.setVideoEnabled(i)}catch(i){if(e.realtimeTalkSession!==o||t())return;a.disableAutoEnableOnFailure&&n(!1),e.realtimeTalkVideoStream=null,r(i)}finally{e.realtimeTalkSession===o&&(e.realtimeTalkVideoPending=!1,e.requestUpdate())}}};e.resetRealtimeTalkConversation=()=>{tS(e)},e.toggleRealtimeTalk=async()=>{if(e.realtimeTalkSession){nS(e),e.requestUpdate();return}if(!e.client||!e.connected){e.lastError=`Gateway not connected`,e.chatError=e.lastError,e.requestUpdate();return}let o=cn(),s=o.realtimeTalkInputDeviceId?.trim()||void 0,c=o.realtimeTalkVideoDeviceId?.trim()||void 0,l=o.talkCameraAutoEnable===!0,u=!1;e.realtimeTalkActive=!0,e.realtimeTalkStatus=`connecting`,e.realtimeTalkDetail=null,e.realtimeTalkVideoCapable=!1,e.realtimeTalkVideoPending=!1,e.realtimeTalkCameraError=!1,e.realtimeTalkInputLevel.set(0),e.resetRealtimeTalkConversation();let d=new bf(e.client,e.sessionKey,{onStatus:(t,n)=>{e.realtimeTalkSession===d&&(e.realtimeTalkStatus=t,e.realtimeTalkDetail=t===`error`&&n?ft(n):n??null,e.realtimeTalkCameraError=!1,e.realtimeTalkActive=t!==`idle`,(t===`idle`||t===`error`)&&e.realtimeTalkInputLevel.set(0),e.requestUpdate(),t===`listening`&&e.realtimeTalkVideoCapable&&l&&!u&&(u=!0,a(!0,{disableAutoEnableOnFailure:!0})))},onVideoCapability:t=>{e.realtimeTalkSession===d&&(e.realtimeTalkVideoCapable=t,e.requestUpdate())},onInputLevel:t=>{e.realtimeTalkSession===d&&e.realtimeTalkInputLevel.set(t)},onTranscript:t=>{e.realtimeTalkSession===d&&(e.realtimeTalkConversationState=Cu(e.realtimeTalkConversationState,t),e.realtimeTalkConversation=e.realtimeTalkConversationState.entries,e.requestUpdate())},onVideoStream:t=>{if(e.realtimeTalkSession===d){if(t&&e.realtimeTalkStatus===`error`){d.setVideoEnabled(!1).catch(()=>void 0);return}e.realtimeTalkVideoStream=t,t&&(n(!0),e.realtimeTalkDetail=null,e.realtimeTalkCameraError=!1,i(d)),e.requestUpdate()}},onVideoError:n=>{e.realtimeTalkSession===d&&!t()&&r(n)}},{},{inputDeviceId:s,videoDeviceId:c});e.realtimeTalkSession=d;try{await d.start()}catch(t){if(e.realtimeTalkSession!==d)return;let n=P(t);nS(e),e.realtimeTalkStatus=`error`,e.realtimeTalkDetail=n,e.requestUpdate()}},e.toggleRealtimeTalkCamera=async()=>{let t=e.realtimeTalkVideoStream===null;await a(t)},e.switchRealtimeTalkCamera=async()=>{let n=e.realtimeTalkSession,i=e.realtimeTalkVideoStream,a=e.realtimeTalkCameraDevices;if(!n||!i||a.length<2||e.realtimeTalkVideoPending)return;let o=i.getVideoTracks()[0]?.getSettings?.().deviceId?.trim()||cn().realtimeTalkVideoDeviceId?.trim(),s=a[(a.findIndex(e=>e.deviceId===o)+1)%a.length];if(s){e.realtimeTalkVideoPending=!0,e.realtimeTalkCameraError=!1,e.realtimeTalkDetail=null,e.requestUpdate();try{await n.switchCamera(s.deviceId),e.realtimeTalkSession===n&&(e.settings=fn({realtimeTalkVideoDeviceId:s.deviceId}))}catch(i){e.realtimeTalkSession===n&&!t()&&r(i)}finally{e.realtimeTalkSession===n&&(e.realtimeTalkVideoPending=!1,e.requestUpdate())}}}}function aS(){return(aS=e((()=>{Kt(),I(),iu(),lu(),pu(),Xu()})))()}function oS(e){if(e.isCurrent?.()===!1)throw Error(`The Gateway connection changed. Retry the command.`)}function sS(e,t){oS(e);let n=M(e.readSessionAccessSnapshot?.()??e.sessionAccessSnapshot,t);if(!n.allowed)throw Error(n.reason)}async function cS(e,t,n,r){return sS(e,{method:`sessions.patch`,params:{key:t,...Dv(t,e),...n}}),await Ov(e,t,n,r)}function lS(e){if(!e)return;let t=n(e);if([`off`,`false`,`no`,`0`].includes(t))return`off`;if([`full`,`all`,`everything`].includes(t))return`full`;if([`on`,`minimal`,`true`,`yes`,`1`].includes(t))return`on`}function uS(e){let t=a(e);return t?[`default`,`inherit`,`inherited`,`clear`,`reset`,`unpin`].includes(t):!1}async function dS(e,t,n,r,i){switch(n){case`help`:return fS();case`new`:return{content:G(`chat.commandResults.startingNewThread`),action:`new-session`};case`reset`:return{content:G(`chat.commandResults.resettingThread`),action:`reset`};case`stop`:return{content:G(`chat.commandResults.stoppingCurrentRun`),action:`stop`};case`clear`:return{content:G(`chat.commandResults.chatHistoryCleared`),action:`clear`};case`compact`:return await pS(t,i);case`model`:return await mS(e,t,r,i);case`think`:return await hS(e,t,r,i);case`fast`:return await vS(e,t,r,i);case`verbose`:return await gS(e,t,r,i);case`export-session`:return{content:G(`chat.commandResults.exportingThread`),action:`export`};case`usage`:return await yS(t,i);case`agents`:return await bS(e);case`steer`:return await LS(e,t,r,i);case`redirect`:return await RS(e,t,r,i);default:return{content:G(`chat.commandResults.unknownCommand`,{command:`/${n}`})}}}function fS(){let e=[`**${G(`chat.commandResults.help.availableCommands`)}**\n`],t=``;for(let n of hi){let r=n.category??`session`;r!==t&&(t=r,e.push(`**${Jr(r)}**`));let i=n.args?` ${n.args}`:``,a=n.executeLocal?``:` *(${G(`chat.commandResults.help.agentCommand`)})*`;e.push(`\`/${n.name}${i}\` — ${wi(n)}${a}`)}return e.push(`\n${G(`chat.commandResults.help.openMenu`)}`),{content:e.join(`
|
||
`)}}async function pS(e,t){try{let n=Dv(e,t);sS(t,{method:`sessions.compact`,requiredScope:`operator.admin`});let r=await t.sessions.compact(e,n);if(r?.ok!==!0){let e=typeof r?.reason==`string`?ft(r.reason):``;return{content:e?G(`chat.commandResults.compaction.failedWithReason`,{reason:e}):G(`chat.commandResults.compaction.failed`),failed:!0}}if(r?.compacted){let e=r.result?.tokensBefore,t=r.result?.tokensAfter,n=typeof e==`number`&&typeof t==`number`?G(`chat.commandResults.compaction.tokenSummary`,{before:e.toLocaleString(),after:t.toLocaleString()}):``;return{content:`${G(`chat.commandResults.compaction.succeeded`)}${n}.`,action:`refresh`}}return typeof r?.reason==`string`&&r.reason.trim()?{content:G(`chat.commandResults.compaction.skippedWithReason`,{reason:ft(r.reason)}),action:`refresh`}:{content:G(`chat.commandResults.compaction.skipped`),action:`refresh`}}catch(e){return{content:G(`chat.commandResults.compaction.failedWithReason`,{reason:P(e)}),failed:!0}}}async function mS(e,t,n,r){let i=r.chatModelCatalog??r.modelCatalog,a=CS(t,r);if(!n)try{let[n,o]=await Promise.all([ES(r,SS(t,r)),i?Promise.resolve(i):MS(e,a)]),{session:s,defaults:c}=kS(r,t,n),l=s?.model||c?.model||`default`,u=o.filter(e=>e.available!==!1).map(e=>e.id),d=[G(`chat.commandResults.model.current`,{model:`\`${l}\``})];if(u.length>0){let e=u.length>10?G(`chat.commandResults.model.more`,{count:String(u.length-10)}):``;d.push(`${G(`chat.commandResults.model.available`,{models:u.slice(0,10).map(e=>`\`${e}\``).join(`, `)})}${e}`)}return{content:d.join(`
|
||
`)}}catch(e){return{content:G(`chat.commandResults.model.getFailed`,{error:P(e)}),failed:!0}}try{let e=n.trim();return await cS(r,t,{model:e},{ownsModelOverride:r.ownsModelOverride}),{content:G(`chat.commandResults.model.set`,{model:`\`${e}\``}),action:`refresh`,modelChanged:!0}}catch(e){return{content:G(`chat.commandResults.model.setFailed`,{error:P(e)}),failed:!0}}}async function hS(e,t,n,r){let i=n.trim();if(!i)try{let{session:n,defaults:i,models:a}=await jS(e,r,t);return{content:TS(G(`chat.commandResults.thinking.current`,{level:Cr(n,i,a)}),Ki(n,i,a))}}catch(e){return{content:G(`chat.commandResults.thinking.getFailed`,{error:P(e)}),failed:!0}}if(uS(i))try{return await cS(r,t,{thinkingLevel:null}),{content:G(`chat.commandResults.thinking.reset`),action:`refresh`}}catch(e){return{content:G(`chat.commandResults.thinking.resetFailed`,{error:P(e)}),failed:!0}}try{let{session:e,defaults:n}=await OS(r,t),a=r.chatModelCatalog??r.modelCatalog??[],o=ki(i,e,n,a);return o?Xi(e,n,o,a)?(await cS(r,t,{thinkingLevel:o}),{content:G(`chat.commandResults.thinking.set`,{level:`**${o}**`}),action:`refresh`}):{content:G(`chat.commandResults.thinking.unsupported`,{level:i,options:Ki(e,n,a)})}:{content:G(`chat.commandResults.thinking.unrecognized`,{level:i,options:Ki(e,n,a)})}}catch(e){return{content:G(`chat.commandResults.thinking.setFailed`,{error:P(e)}),failed:!0}}}async function gS(e,t,n,r){let i=n.trim();if(!i)try{let e=await DS(r,t);return{content:TS(G(`chat.commandResults.verbose.current`,{level:lS(e?.verboseLevel)??`off`}),`on, full, off`)}}catch(e){return{content:G(`chat.commandResults.verbose.getFailed`,{error:P(e)}),failed:!0}}let a=lS(i);if(!a)return{content:G(`chat.commandResults.verbose.unrecognized`,{level:i})};try{return await cS(r,t,{verboseLevel:a}),{content:G(`chat.commandResults.verbose.set`,{level:`**${a}**`}),action:`refresh`}}catch(e){return{content:G(`chat.commandResults.verbose.setFailed`,{error:P(e)}),failed:!0}}}function _S(e){return G(`chat.commandResults.fast.options`,{seconds:String(e?.fastAutoOnSeconds??60)})}async function vS(e,t,r,i){let a=n(r);if(!a||a===`status`)try{let e=await DS(i,t);return{content:TS(Wi(e),_S(e))}}catch(e){return{content:G(`chat.commandResults.fast.getFailed`,{error:P(e)}),failed:!0}}if(uS(a))try{return await cS(i,t,{fastMode:null}),{content:G(`chat.commandResults.fast.reset`),action:`refresh`}}catch(e){return{content:G(`chat.commandResults.fast.resetFailed`,{error:P(e)}),failed:!0}}let o=oo(a);if(o===void 0)return{content:G(`chat.commandResults.fast.unrecognized`,{mode:r.trim()})};try{return await cS(i,t,{fastMode:o}),{content:G(o===`auto`?`chat.commandResults.fast.setAuto`:o?`chat.commandResults.fast.enabled`:`chat.commandResults.fast.disabled`),action:`refresh`}}catch(e){return{content:G(`chat.commandResults.fast.setFailed`,{error:P(e)}),failed:!0}}}async function yS(e,t){try{let n=AS(await ES(t),e);if(!n)return{content:G(`chat.commandResults.usage.noActiveThread`)};let r=Number.isFinite(n.inputTokens),i=Number.isFinite(n.outputTokens),a=r?n.inputTokens??0:0,o=i?n.outputTokens??0:0,s=r||i?a+o:null,c=Number.isFinite(n.totalTokens)?n.totalTokens??null:s,l=n.totalTokensFresh!==!1,u=n.contextTokens??0,d=c!==null&&l&&u>0?Math.round(c/u*100):null,f=s===null?G(`chat.commandResults.usage.notAvailable`):`${l?``:`~`}${bt(s)}`,p=[`**${G(`chat.commandResults.usage.title`)}**`,G(`chat.commandResults.usage.inputTokens`,{count:`**${bt(a)}**`}),G(`chat.commandResults.usage.outputTokens`,{count:`**${bt(o)}**`}),G(`chat.commandResults.usage.totalTokens`,{count:`**${f}**`})];return d!==null&&p.push(G(`chat.commandResults.usage.context`,{percent:`**${d}%**`,total:bt(u)})),n.model&&p.push(G(`chat.commandResults.usage.model`,{model:`\`${n.model}\``})),{content:p.join(`
|
||
`)}}catch(e){return{content:G(`chat.commandResults.usage.failed`,{error:P(e)}),failed:!0}}}async function bS(e){try{let t=await e.request(`agents.list`,{}),n=t?.agents??[];if(n.length===0)return{content:G(`chat.commandResults.agents.none`)};let r=[G(`chat.commandResults.agents.title`,{count:String(n.length)}),``];for(let e of n){let n=e.id===t?.defaultId,i=e.identity?.name||e.name||e.id,a=n?` *(${G(`chat.commandResults.agents.default`)})*`:``,o=e.agentRuntime?.id?G(`chat.commandResults.agents.runtime`,{runtime:`\`${e.agentRuntime.id}\``}):``;r.push(`- \`${e.id}\` — ${i}${a}${o}`)}return{content:r.join(`
|
||
`)}}catch(e){return{content:G(`chat.commandResults.agents.failed`,{error:P(e)}),failed:!0}}}function xS(e){return a(e)}function SS(e,t){let n=E(xS(e)??``)?.agentId??a(t.agentId);return n?{agentId:n}:{}}function CS(e,t){let n=xS(e);return E(n??``)?.agentId??a(t.agentId)??(n===`main`?a(t.defaultAgentId)??`main`:void 0)}function wS(e,t){let n=new Set([e]);if(t&&t!==`main`){let r=`agent:${t}:${dt}`,i=`agent:${t}:global`;(e===r||e===i)&&n.add(`global`)}if(t===`main`){let t=`agent:${Ue}:main`;e===`main`?n.add(t):e===t&&n.add(dt)}return n}function TS(e,t){return`${e}\n${G(`chat.commandResults.options`,{options:t})}`}async function ES(e,t){let n=await e.sessions.list(t);if(!n)throw Error(G(`chat.commandResults.sessionUnavailable`));return n}async function DS(e,t){return(await OS(e,t)).session}async function OS(e,t){return kS(e,t,await ES(e,SS(t,e)))}function kS(e,t,n){let r=CS(t,e),i=a(e.defaultAgentId)??`main`,o=a(e.sessionsResultAgentId),s=e.sessionsResult&&r&&o===r?AS(e.sessionsResult,t):void 0;return{session:AS(n,t)??s,defaults:!r||r===i?n.defaults:void 0}}function AS(e,t){let n=xS(t),r=E(n??``)?.agentId??(n===`main`?`main`:void 0),i=n?wS(n,r):new Set;return e?.sessions?.find(e=>{let t=xS(e.key);return t?i.has(t):!1})}async function jS(e,t,n){let r=t.chatModelCatalog??t.modelCatalog,i=CS(n,t),[a,o]=await Promise.all([ES(t,SS(n,t)),r?Promise.resolve(r):MS(e,i)]);return{...kS(t,n,a),models:o}}async function MS(e,t){return t?(await e.request(`models.list`,{agentId:t,view:`configured`}))?.models??[]:[]}function NS(e,t){let n=t.trim();return n?{key:e,message:n}:{error:`empty`}}function PS(e){if(!e||typeof e!=`object`)return`started`;let t=e.status;return t===`in_flight`||t===`ok`||t===`timeout`||t===`error`?t:`started`}function FS(e){if(e===`timeout`)return G(`chat.commandResults.steer.timeout`);if(e===`error`)return G(`chat.commandResults.steer.failed`)}function IS(e){if(e===`timeout`)return G(`chat.commandResults.redirect.timeout`);if(e===`error`)return G(`chat.commandResults.redirect.failed`)}async function LS(e,t,n,r){try{let i=NS(t,n);if(`error`in i)return{content:i.error===`empty`?G(`chat.commandResults.steer.usage`):i.error};oS(r);let a=PS(await e.request(`chat.send`,{sessionKey:i.key,...Dv(i.key,r),message:i.message,deliver:!1,queueMode:`steer`,idempotencyKey:S()})),o=FS(a);if(o)return{content:o};let s={content:G(`chat.commandResults.steer.succeeded`)};return(a===`started`||a===`in_flight`)&&(s.pendingCurrentRun=i.key===t),s}catch(e){return{content:G(`chat.commandResults.steer.requestFailed`,{error:P(e)}),failed:!0}}}async function RS(e,t,n,r){try{let i=NS(t,n);if(`error`in i)return{content:i.error===`empty`?G(`chat.commandResults.redirect.usage`):i.error};oS(r);let a=await e.request(`chat.send`,{sessionKey:i.key,...Dv(i.key,r),message:i.message,queueMode:`interrupt`,idempotencyKey:S()}),o=PS(a),s=IS(o);if(s)return{content:s};let c=typeof a?.runId==`string`?a.runId:void 0;return{content:G(`chat.commandResults.redirect.succeeded`),...o===`started`||o===`in_flight`?{trackRunId:c}:{}}}catch(e){return{content:G(`chat.commandResults.redirect.requestFailed`,{error:P(e)}),failed:!0}}}function zS(){return(zS=e((()=>{U(),Bo(),Vr(),Ro(),I(),Et(),w(),N(),et(),Av()})))()}function BS(e,t){let n=t===null?null:P(t);e.lastError=n,e.chatError=n}function VS(e){return{client:e.client??null,hello:e.hello??null,phase:e.connected?`connected`:`offline`}}function HS(e,t){let n=Qv(VS(e),!!e.chatRunId)[t];return n.allowed?!0:(BS(e,n.reason),!1)}function US(e){return!e.client||!e.connected?null:{client:e.client,connectionEpoch:e.connectionEpoch,sessionKey:e.sessionKey,agentId:gt(e,e.sessionKey)}}function WS(e,t){return e.connected&&e.client===t.client&&e.connectionEpoch===t.connectionEpoch}function GS(e,t){return WS(e,t)&&L(e,t.sessionKey,t.agentId)}function KS(e,t){return WS(e,t)?!Dt(e,t.sessionKey)||k(e)===t.agentId:!1}function qS(e,t){if(!GS(e,t))return{allowed:!1,reason:`The Gateway connection changed. Retry the command.`};let n=M(VS(e),{method:`chat.send`,requiredScope:`operator.admin`});return n.allowed?{allowed:!0}:n}function JS(e,t){let n=qS(e,t);return n.allowed?!0:(BS(e,n.reason),!1)}function YS(e){return BS(e,`The Gateway connection changed. Retry the command.`),`failed`}function XS(e){return e??``}function ZS(e){let t=cC.get(e);return t||(t=new Map,cC.set(e,t)),t}async function QS(e,t,n){try{let n=await e.request(`commands.list`,{...t?{agentId:t}:{},includeArgs:!0,scope:`text`});if(!Array.isArray(n?.commands))return ka();let r=vr(ui(n));return ZS(e).set(XS(t),{commands:r,expiresAt:Date.now()+sC}),r}catch{return n??ka()}}function $S(e,t,n){let r=we(e,{agentId:t,sessionKey:n});if(Array.isArray(r?.commands))return Promise.resolve(vr(ui(r)));let i=ZS(e),a=XS(t),o=i.get(a),s=Date.now();if(o?.commands&&o.expiresAt>s)return Promise.resolve(o.commands);if(o?.inFlight)return o.inFlight;let c=QS(e,t,o?.commands).finally(()=>{let e=i.get(a);e?.inFlight===c&&delete e.inFlight});return i.set(a,{...o?.commands?{commands:o.commands}:{},expiresAt:o?.expiresAt??0,inFlight:c}),c}function eC(e){if(!Array.isArray(e.result?.commands))return!1;let t=vr(ui(e.result));return oC+=1,Ii(t),!0}async function tC(e){let t=++oC,n=e.agentId?.trim();if(!e.client){if(t!==oC||e.shouldApply?.()===!1)return;Ii(ka());return}let r=await $S(e.client,n,e.sessionKey);t===oC&&e.shouldApply?.()!==!1&&Ii(r)}function nC(e){return![`stop`,`export-session`,`steer`,`redirect`,`new`].includes(e)}async function rC(e,t){let n=t?.sessionKey??e.sessionKey,r=t?()=>L(e,t.sessionKey,t.agentId):()=>e.sessionKey===n||F(e.sessionKey,n);if(!r())return`deferred`;if(!e.confirmConversationReset)return`confirmed`;let i=await e.confirmConversationReset();return r()?i?e.chatRunId?`deferred`:`confirmed`:`cancelled`:t?`deferred`:`cancelled`}async function iC(e,t,n,r){switch(t){case`stop`:return HS(e,`abort`)?(await Tf(e),`completed`):`failed`;case`new`:return e.createChatSession?await e.createChatSession()?`completed`:`cancelled`:(BS(e,`New Chat is unavailable.`),`failed`);case`reset`:{let t=US(e);if(!t||!JS(e,t))return`failed`;let i=await rC(e);return i===`confirmed`?JS(e,t)?(await r.sendResetMessage(n?`/reset ${n}`:`/reset`,{previousDraft:r.previousDraft,restoreDraft:r.restoreDraft,target:t}),`completed`):`failed`:i}case`clear`:{if(!HS(e,`reset`))return`failed`;let t=US(e);if(!t)return`failed`;let n=await rC(e);return n===`confirmed`?GS(e,t)?HS(e,`reset`)?await bb(e):`failed`:YS(e):n}case`compact`:if(!HS(e,`compact`))return`failed`;break;case`export-session`:return await e.exportCurrentChat?.()===`empty`&&(aC(e,G(`chat.commandResults.emptyExport`)),Kl(e,!1,!1,{contentChanged:!0})),`completed`}if(!e.client||!e.connected)return BS(e,`Gateway not connected`),aC(e,`Cannot run \`/${t}\`: Control UI is not connected to the Gateway.`),Kl(e,!1,!1,{contentChanged:!0}),`failed`;let i=US(e);if(!i)return`failed`;let a=()=>GS(e,i),o;try{o=await dS(i.client,i.sessionKey,t,n,{sessions:e.sessions,sessionAccessSnapshot:VS(e),readSessionAccessSnapshot:()=>VS(e),isCurrent:a,chatModelCatalog:e.chatModelCatalog,sessionsResult:e.sessionsResult,sessionsResultAgentId:e.sessionsResultAgentId,defaultAgentId:ve(e),agentId:i.agentId,ownsModelOverride:()=>KS(e,i)})}catch(n){return a()&&(BS(e,P(n)),aC(e,`Command \`/${t}\` failed unexpectedly.`),Kl(e,!1,!1,{contentChanged:!0})),`failed`}return o.content&&a()&&aC(e,o.content),o.failed?(a()&&(BS(e,o.content||`Command /${t} failed.`),Kl(e,!1,!1,{contentChanged:!!o.content})),`failed`):(o.trackRunId&&a()&&(e.chatRunId=o.trackRunId,e.chatStream=``,e.chatSending=!1),o.pendingCurrentRun&&e.chatRunId&&a()&&pp(e,`/${t} ${n}`.trim(),e.chatRunId,void 0,Fi(e.hello,e.client?.instanceId)??void 0),o.modelChanged&&a()&&await e.refreshCurrentSessionTools?.(),o.action===`refresh`&&a()&&await e.refreshCurrentChat?.(),a()&&Kl(e,!1,!1,{contentChanged:!!o.content}),`completed`)}function aC(e,t){e.chatMessages=[...e.chatMessages,{role:`system`,content:t,timestamp:Date.now()}]}var oC,sC,cC;function lC(){return(lC=e((()=>{U(),tt(),Bo(),Kr(),I(),w(),A(),N(),zS(),Q(),jp(),$v(),Yl(),cu(),oC=0,sC=6e4,cC=new WeakMap})))()}function uC(e){let t=vC.get(e)??{attempts:new Map,timers:new Map};return vC.set(e,t),t}function dC(e,t){return!t.host.connected||t.host.client!==e||t.connectionEpoch!==t.host.connectionEpoch}function fC(e){return!(e instanceof Gt)||!e.retryable?null:Math.min(Math.max(e.retryAfterMs??gC,100),_C)}function pC(e,t,n,r,i){let a=e.client;if(!e.connected||!a)return;let o=uC(a);if(o.timers.has(t))return;let s=(o.attempts.get(t)??0)+1,c=i?_({initialMs:n,maxMs:_C,factor:2,jitter:0},s):n;i?o.attempts.set(t,s):o.attempts.delete(t);let l={timer:setTimeout(()=>{o.timers.delete(t),dC(a,l)||r(l.host)},c),suppressGenericWake:i,connectionEpoch:e.connectionEpoch,host:e};o.timers.set(t,l)}function mC(e,t,n,r){let i=e.client;if(!i)return!1;let a=uC(i),o=a.timers.get(t);if(!o)return!1;let s=dC(i,o);return!s&&n&&(o.connectionEpoch=e.connectionEpoch,o.host=e),!r&&!s&&o.suppressGenericWake?!0:(clearTimeout(o.timer),a.timers.delete(t),(r||s)&&a.attempts.delete(t),!1)}function hC(e,t){let n=uC(e);n.timers.has(t)||n.attempts.delete(t)}var gC,_C,vC;function yC(){return(yC=e((()=>{y(),mn(),gC=500,_C=3e4,vC=new WeakMap})))()}function bC(e){let t=MC.get(e)??{lanes:new Map};return MC.set(e,t),t}function xC(e,t,n,r,i=!0){pC(e,q(t),n,e=>void DC(e,t,r),i)}function SC(e,t){return Xr(e).find(e=>e.sessionKey===t.sessionKey&&e.agentId===t.agentId)}function CC(e,t){return!!(t.sendRunId&&(e?.activeRunIds?.includes(t.sendRunId)||e?.lastRunId===t.sendRunId))}async function wC(e,t,n,r,i,a){let o;try{o=await r.request(`chat.history`,{sessionKey:t.sessionKey,...T(t.sessionKey)&&t.agentId?{agentId:t.agentId}:{},limit:1e3})}catch(o){let s=e.client===r&&e.connectionEpoch===i&&e.connected,c=fC(o);if(c!==null)return s&&xC(e,t,c,a),`blocked`;if(!s||!(o instanceof Gt))return`blocked`;let l=(n.sendAttempts??0)>0||n.sendRequestStartedAtMs!==void 0||n.sendState===`unconfirmed`,u=l?AC:Uc(o),d=l?`unconfirmed`:`failed`;if(n.sendState===d&&n.sendError===u)return`blocked`;let f=yp(e,t.sessionKey,n.id,e=>({...e,sendError:u,sendState:d}));return zp(e,t.sessionKey,t.agentId,f?u:J,{inline:!!(f&&l&&!n.localCommandName)}),f&&!l?`continue`:`blocked`}let s=SC(e,t),c=s?.queue.find(e=>e.id===n.id);return e.client!==r||e.connectionEpoch!==i||!e.connected?`blocked`:!s||!c||!Dp(c,n)?`continue`:(up(e),Pp(o.messages,n)||CC(o.sessionInfo,n)?await Rp(e,n.sendRunId,t)!==`retired`||e.client!==r||e.connectionEpoch!==i||!e.connected?`blocked`:(L(e,t.sessionKey,t.agentId)&&Z(e),`continue`):!o.sessionInfo||o.sessionInfo.hasActiveRun===!0||Te(o.sessionInfo)?`blocked`:o)}async function TC(e,t,n,r,i=!1){let a=e.client,o=e.connectionEpoch;if(!a||!e.connected)return`blocked`;let s=(n.sendAttempts??0)===0&&n.sendRequestStartedAtMs===void 0;if(s&&n.queueMode&&n.sendState!==`unconfirmed`)return`send`;if(s){let n=!T(t.sessionKey)||e.sessions.state.agentId===t.agentId?e.sessions.state.result?.sessions.find(e=>F(e.key,t.sessionKey)):void 0;if(n&&Te(n))return`blocked`}let c=[e,t,n,a,o,r],l=await wC(...c);if(l===`blocked`||l===`continue`||n.sendState===`unconfirmed`&&!i)return l===`continue`?`continue`:`blocked`;if(L(e,t.sessionKey,t.agentId)&&Mu(e))return`blocked`;if((n.sendAttempts??0)>0){let r=await wC(...c);return r===`blocked`||r===`continue`?r:cp(e,e=>{let t=e.chatQueue.find(e=>e.id===n.id);return t?.sendState===`sending`&&Dp(t,{...n,sendState:`sending`})})?`blocked`:i?`send`:(yp(e,t.sessionKey,n.id,e=>({...e,sendError:`Reconnected before delivery was confirmed. Check the conversation — retry only if your message didn't arrive.`,sendState:`unconfirmed`}))&&zp(e,t.sessionKey,t.agentId,AC,{inline:!n.localCommandName}),`blocked`)}return`send`}async function EC(e,t,n){for(;;){let r=e.host;if(!r.connected||!r.client||Mp(r,t.sessionKey))return`blocked`;let i=SC(r,t);if(!i)return`empty`;let a=i.queue.find(t=>e.freshAdmissions.has(t.id)&&!!t.queueMode)??i.queue.find(t=>e.freshAdmissions.has(t.id)||t.sendState!==`failed`||t.localCommandName);if(!a)return`empty`;let o=e.freshAdmissions.has(a.id),s=o?gp(r,a.id)??a:a;if(s.sendState===`failed`&&!o)return`empty`;if(s.sendState===`unconfirmed`&&(!s.sendRunId||s.localCommandName)||s.sendState===`waiting-model`&&!e.pendingOptions.has(s.id)||Kd(r,s.id))return up(r),`blocked`;let c=L(r,i.sessionKey,i.agentId);if(s.localCommandName){let t=(e,t)=>yp(r,i.sessionKey,s.id,n=>({...n,sendError:t,sendState:e}));if(!c||Mu(r))return e.freshAdmissions.delete(s.id),e.pendingOptions.delete(s.id),`blocked`;if(up(r),s.localCommandName===`reset`){if((s.sendAttempts??0)>0||s.sendRequestStartedAtMs!==void 0)return t(`unconfirmed`,AC),`blocked`;let a=US(r);if(!a)return t(`failed`,`The Gateway connection changed. Retry the command.`),`blocked`;let o=qS(r,a);if(!o.allowed)return t(`failed`,o.reason),n.setChatError(r,o.reason),`blocked`;let c=await rC(r,{sessionKey:i.sessionKey,...i.agentId?{agentId:i.agentId}:{}});if(c===`deferred`)return t(`waiting-idle`),`blocked`;if(c===`cancelled`){if(!Sp(r,s.id,i.sessionKey))return`blocked`;continue}let l=qS(r,a);if(!l.allowed)return t(`failed`,l.reason),n.setChatError(r,l.reason),`blocked`;e.pendingOptions.set(s.id,{...e.pendingOptions.get(s.id),target:a});let u=await n.sendQueuedChatMessage(r,s.id,e.pendingOptions.get(s.id),i.sessionKey);if(e.outcomes.set(s.id,u),e.pendingOptions.delete(s.id),u!==`sent`)return`blocked`;continue}let a=e.freshAdmissions.delete(s.id);if(e.pendingOptions.delete(s.id),!a){let e=await TC(r,i,s,n);if(e===`blocked`)return`blocked`;if(e===`continue`)continue}if(Mp(r,i.sessionKey))return`blocked`;let o=t(`executing-command`);if(!o)return`blocked`;let l=r.client,u=r.connectionEpoch,d=()=>r.connected&&r.client===l&&r.connectionEpoch===u&&L(r,i.sessionKey,i.agentId),f=(e,n=!1)=>{let a=t(`failed`,e);return(!a||n)&&zp(r,i.sessionKey,i.agentId,a?e:J),`blocked`};try{let e=await iC(r,o.localCommandName??s.localCommandName,o.localCommandArgs??``,{sendResetMessage:(e,t)=>n.sendResetSlashCommand(r,e,t)});if(e===`deferred`)return t(`waiting-idle`),`blocked`;if(e===`failed`){let e=d(),t=(e?r.lastError:null)??`Command /${s.localCommandName} failed.`,n=!L(r,i.sessionKey,i.agentId);return f(t,!e&&n)}if(e===`uncertain`){let e=SC(r,i),t=e?.queue.findIndex(e=>e.id===s.id)??-1,a=t>=0?e?.queue[t+1]:void 0;if(a&&!yp(r,i.sessionKey,a.id,e=>({...e,sendError:jC,sendState:`unconfirmed`}),i.agentId))return n.setChatError(r,J),`blocked`}if(!Sp(r,s.id,i.sessionKey))return zp(r,i.sessionKey,i.agentId,J),`blocked`;if(e===`uncertain`)return`blocked`;d()&&n.setChatError(r,null)}catch(e){return f(P(e),!0)}continue}if(T(i.sessionKey)&&!i.agentId)return e.freshAdmissions.delete(s.id),e.pendingOptions.delete(s.id),`blocked`;let l=e.freshAdmissions.delete(s.id),u=e.pendingOptions.get(s.id),d=l&&s.sendState===`unconfirmed`;if(!l||d){let e=await TC(r,i,a,n,d);if(e===`blocked`)return`blocked`;if(e===`continue`)continue}let f=SC(r,t),p=l?gp(r,s.id):f?.queue.find(e=>e.id===s.id);if(!f||!p||!Dp(p,s)){e.pendingOptions.delete(s.id);continue}up(r);let m=await n.sendQueuedChatMessage(r,s.id,u,i.sessionKey);if(e.outcomes.set(s.id,m),e.pendingOptions.delete(s.id),m===`pending`)return u?.pendingSettings||(e.rerun=!1),`blocked`}}async function DC(e,t,n,r,i){let a=e.client;if(!e.connected||!a)return;let o=q(t),{lanes:s}=bC(a),c=L(e,t.sessionKey,t.agentId);if(mC(e,o,c,r))return;let l=s.get(o);if(l)return(!l.host.connected||l.host.client!==a||!L(l.host,t.sessionKey,t.agentId)&&c)&&(l.host=e),l.rerun=!0,r&&i&&l.pendingOptions.set(r,i),r&&l.freshAdmissions.add(r),!r&&l.pendingOptions.size?void 0:(await l.promise,r?l.outcomes.get(r):void 0);let u={freshAdmissions:new Set(r?[r]:[]),host:e,outcomes:new Map,pendingOptions:new Map(r&&i?[[r,i]]:[]),promise:Promise.resolve(),rerun:!1};s.set(o,u),u.promise=(async()=>{do u.rerun=!1,await EC(u,t,n);while(u.rerun)})();try{return await u.promise,hC(a,o),r?u.outcomes.get(r):void 0}finally{s.get(o)===u&&s.delete(o)}}async function OC(e,t){!e.connected||!e.client||(up(e,{requestUpdate:!1}),await Promise.allSettled(Xr(e).map(n=>DC(e,n,t))))}async function kC(e,t){let n=Xr(e).find(t=>L(e,t.sessionKey,t.agentId));n&&await DC(e,n,t)}var AC,jC,MC;function NC(){return(NC=e((()=>{mn(),I(),A(),N(),lC(),Q(),yC(),jp(),Hp(),cs(),qc(),fd(),Yl(),AC=`Reconnected before delivery was confirmed. Check the conversation — retry only if your message didn't arrive.`,jC=`A preceding /clear may have completed. Review the current conversation before retrying.`,MC=new WeakMap})))()}function PC(e){return`chatComposerFallbackByScope`in e&&typeof e.chatComposerFallbackByScope==`object`&&e.chatComposerFallbackByScope!==null?e:void 0}function FC(e,t,n){let r=PC(e);return{client:e.client,...n?{composer:{...n,...r?{fallbackOwnership:Nx(r,t,{message:n.draft,attachments:n.attachments})}:{}}}:{},connectionEpoch:e.connectionEpoch,scope:t}}function IC(e,t){return e.client===t.client&&e.connectionEpoch===t.connectionEpoch}function LC(e,t){return IC(e,t)&&L(e,t.scope.sessionKey,t.scope.agentId)}function RC(e,t){let n=t.composer?.fallbackOwnership,r=PC(e);return r?Fx(r,n):!1}function zC(e,t){let n=t.composer?.fallbackOwnership,r=PC(e);return!!(n&&r&&Px(r,n))}function BC(e,t){let n=t?.filter(e=>e.browserAnnotation);return!!(n?.length&&n.length===e.chatAttachments.length&&n.every((t,n)=>t.id===e.chatAttachments[n]?.id&&t.browserAnnotation===e.chatAttachments[n]?.browserAnnotation))}function VC(e,t){let n=t.composer;if(!n)return!0;let r=PC(e);if(!IC(e,t))return n.attachments.length===0||zC(e,t);if(!LC(e,t)){if(!r)return n.attachments.length===0;let e=Mx(r,t.scope,{message:n.draft,attachments:n.attachments});return n.fallbackOwnership=e,n.attachments.length===0||e!==void 0}if(e.chatAttachments.length>0&&!BC(e,n.attachments))return RC(e,t),n.attachments.length===0;let i=GC(e,{previousAttachments:n.attachments,previousDraft:n.draft});i.willRestoreDraft&&(e.chatMessage=n.draft),i.willRestoreAttachments&&(e.chatAttachments=n.attachments);let a=n.attachments.length===0||i.willRestoreAttachments;return i.complete||RC(e,t),a}function HC(e,t){let n=!e.chatMessage.trim()&&(e.chatAttachments.length===0||BC(e,t.previousAttachments));return{attachments:!!(t.previousAttachments?.length&&n),draft:t.previousDraft!=null&&n}}function UC(e,t,n){let r=Cp(e,t.id,t.sessionKey),i=r?HC(e,n):null;i?.draft&&(e.chatMessage=n.previousDraft??``),i?.attachments&&(e.chatAttachments=n.previousAttachments??[]),r&&!i?.attachments&&de(wp(e,r.attachments))}function WC(e,t){let n=HC(e,t??{});return(t?.previousDraft!==void 0||t?.previousAttachments!==void 0)&&(!t.previousDraft?.trim()||n.draft)&&(!t.previousAttachments?.length||n.attachments)}function GC(e,t){let n=t.previousDraft!=null&&!e.chatMessage.trim(),r=!!(t.previousAttachments?.length&&(e.chatAttachments.length===0||BC(e,t.previousAttachments))&&(n||!e.chatMessage.trim()));return{complete:(!t.previousDraft?.trim()||n)&&(!t.previousAttachments?.length||r),willRestoreAttachments:r,willRestoreDraft:n}}function KC(){return(KC=e((()=>{A(),j(),Lx(),jp()})))()}function qC(e){return async(t,n,r)=>{let i=ey(t,n,void 0,!0,void 0,ny(t)),a=i?.item;if(a&&ty(t,a),!a||!xp(t,t.sessionKey,a,void 0,i?.admission)){a&&UC(t,a,{previousDraft:r.previousDraft}),Y(t,J);return}await e(t,a,{previousDraft:r.previousDraft,restoreDraft:r.restoreDraft,routingSessionKey:t.sessionKey,target:r.target})}}function JC(){return(JC=e((()=>{jp(),KC(),dy(),Hp()})))()}async function YC(e,t){let n=QC(e,t),r=t.intent?t.sessionId:n.sessionId,i=!!(!t.intent&&r&&e.reconnectResumeSessionId===r),a=await e.client.request(`chat.send`,{sessionKey:n.sessionKey,...T(n.sessionKey)&&n.selectedAgentId?{agentId:n.selectedAgentId}:{},...r?{sessionId:r}:{},...i?{__controlUiReconnectResume:!0}:{},message:t.message,...t.intent?{intent:t.intent}:{},deliver:!1,...t.replyToId?{replyToId:t.replyToId}:{},...t.queueMode?{queueMode:t.queueMode}:{},...t.expectedLeafEntryId===void 0?{}:{expectedLeafEntryId:t.expectedLeafEntryId},idempotencyKey:t.runId,attachments:Nf(t.attachments)});return i&&(e.reconnectResumeSessionId=null),Wp(a,t.runId)}function XC(e){return e.chatDisplayedLeafEntryId===null?null:e.chatDisplayedLeafEntryId?.trim()||void 0}function ZC(e){if(!(e instanceof Gt))return!1;let t=e.details;return typeof t==`object`&&!!t&&!Array.isArray(t)&&t.reason===$C}function QC(e,n){let r=n.sessionKey??e.sessionKey,i=n.agentId?t(n.agentId):he(e),a=e.currentSessionId,o=r===e.sessionKey&&(!T(r)||i!==void 0&&i===he(e))&&typeof a==`string`&&a.trim()?a.trim():void 0;return{sessionKey:r,...i?{selectedAgentId:i}:{},...o?{sessionId:o}:{}}}var $C;function ew(){return(ew=e((()=>{mn(),N(),Af(),Kp(),$C=`active-leaf-changed`})))()}async function tw(e,t,n,r,i,a){let o=i?.routingSessionKey??r,s=ay(e,n,r,t.id),c=(n=t.agentId)=>L(e,o,n),l=gp(e,t.id),u=i?.pendingSettings??wv(e,o,t.agentId);for(;u&&!a.has(u);){l?.sendState!==`waiting-model`&&(l=s(`waiting-model`),l||Y(e,J)),e.requestUpdate?.();let n=await u;if(a.add(u),l=gp(e,t.id),!l)return`failed`;if(!n)return c(l.agentId)&&WC(e,i)?UC(e,l,i??{}):s(`failed`,`Chat settings update was interrupted. Review and retry when ready.`)||Y(e,J),e.requestUpdate?.(),`failed`;u=wv(e,o,l.agentId)}return l??`failed`}function nw(e,t,n,r){let i=ay(e,n,r,t.id)(ny(e));return i?(e.requestUpdate?.(),i):(Y(e,J),`failed`)}async function rw(e,t,n,r=e.sessionKey){let i=n?.storageMode??`durable`,a=gp(e,t),o=a?.localCommandName===`reset`&&!!n?.target;if(!a||a.pendingRunId||a.localCommandName&&!o)return`failed`;if(i===`durable`&&(a.attachments?.length||a.attachmentPayload||a.attachmentStorageError)){let t=await uy(e,a,r);if(typeof t==`string`)return t;a=t}let s=a.sessionKey??r,c=new Set,l=n?.routingSessionKey??s,u=n?.pendingSettings??wv(e,l,a.agentId),d=a;for(u&&(d=await tw(e,a,i,s,{...n,pendingSettings:u},c));typeof d!=`string`;){let t=wv(e,l,d.agentId);if(!t||c.has(t))break;d=await tw(e,d,i,s,{...n,pendingSettings:t},c)}if(typeof d==`string`||c.size&&(d=nw(e,d,i,s),typeof d==`string`)||(d=oy(e,d,i,s,n),typeof d!=`string`&&a.attachmentPayload&&(d={...d,attachments:a.attachments}),typeof d==`string`))return d;if(!d.sendRunId||!d.sendState){let t=d.sessionKey??r;d=iy(e,i,t,d.id,n=>({...n,sendAttempts:n.sendAttempts??0,sendRunId:n.sendRunId??S(),sendState:e.connected&&e.client?`sending`:`waiting-reconnect`,sessionKey:t,agentId:n.agentId??gt(e,t)}))??`pending`}if(typeof d==`string`)return Y(e,J),d;o&&(d={...d,refreshSessions:!0,text:d.localCommandArgs?`/reset ${d.localCommandArgs}`:`/reset`});let f=d.intent?d.text:d.text.trim(),p=(a.attachmentPayload?a.attachments:d.attachments)??[];if(!f&&p.length===0)return Sp(e,t,d.sessionKey??e.sessionKey),`sent`;let m=d.sessionKey??e.sessionKey,h=ay(e,i,m,t);if(n?.target){let t=qS(e,n.target);if(!t.allowed)return h(`failed`,t.reason),zp(e,m,d.agentId,t.reason),`failed`}if(!e.connected||!e.client){let t=h(`waiting-reconnect`);return!t&&WC(e,n)?(UC(e,d,n??{}),`failed`):(t||(h(`failed`,J),zp(e,m,d.agentId,J)),`pending`)}let g=ry(e),_=d.sendRunId??S(),v=Date.now(),y=fl(),b=iy(e,i,m,t,e=>({...e,sendAttempts:(e.sendAttempts??0)+1,sendError:void 0,sendRunId:_,sendState:`sending`,sendRequestStartedAtMs:y,sessionKey:m,agentId:d.agentId}));if(!b)return zp(e,m,d.agentId,J),`pending`;pv(e,b,_,y),lv(e,b,`request-start`,b.sendSubmittedAtMs);let x={sessionKey:m,...d.agentId?{agentId:d.agentId}:{}},C=()=>L(e,m,d.agentId);C()&&(e.chatSendingScopeKey=q(x),e.chatSending=!0,(d.queueMode!==`steer`||!e.chatRunId)&&nf(e),Y(e,null),tu(e,{clearRunStatus:!0}));try{let r=d.intent?d.expectedLeafEntryId:n?.expectedLeafEntryId,a=await YC(e,{message:f,attachments:p.length?p:void 0,runId:_,sessionKey:m,agentId:d.agentId,...d.intent?{intent:d.intent,sessionId:d.sessionId}:{},...d.queueMode?{queueMode:d.queueMode}:{},...d.queueMode!==`steer`&&r!==void 0?{expectedLeafEntryId:r}:{},...d.replyToId?{replyToId:d.replyToId}:{}});if(!g())return`pending`;if(mv(e,_,a,b,y),lv(e,b,`ack`,b.sendSubmittedAtMs,{ackStatus:a.status,requestDurationMs:Cl(fl()-y),...hv(a)}),Gp(a)){let t=Np(a,`chat`),r=n?.restoreOnTerminalFailure===!0&&WC(e,n);if(cy(e,x),r?UC(e,d,n??{}):h(`failed`,t),C()){let t=al(e,{sessionKey:m,agentId:d.agentId});$c(e,{type:`sendFailed`,runId:_},{scope:t}),tu(e,{outcome:`interrupted`,sessionStatus:a.status===`error`?`failed`:`killed`,runId:a.runId,sessionKey:m,clearLocalRun:!0,clearChatStream:!0,clearToolStream:!0,publishRunStatus:!1,armLocalTerminalReconcile:a.runId===_})}return zp(e,m,d.agentId,t,{inline:i===`durable`&&!r}),lv(e,b,`failed`,b.sendSubmittedAtMs,{error:t,ackStatus:a.status}),`failed`}let o=a.status===`ok`||i===`memory`,s=!1;if(o&&(Sp(e,t,m),s=i===`durable`&&gp(e,t)!==null),C()){if(o){let t=al(e,{sessionKey:m,agentId:d.agentId}),n=Al({text:f,...p.length?{attachments:p}:{},createdAt:v,runId:_,...d.replyToId?{replyToId:d.replyToId}:{},...d.sender?{sender:d.sender}:{}});n&&$c(e,{type:`sendPending`,runId:_,message:n},{scope:t}),a.runId!==_&&$c(e,{type:`sendAcknowledged`,previousRunId:_,runId:a.runId},{scope:t})}a.status===`ok`?(tu(e,{outcome:`done`,sessionStatus:`done`,runId:a.runId,sessionKey:m,clearLocalRun:!0,clearChatStream:!0,clearToolStream:!0,publishRunStatus:!1,armLocalTerminalReconcile:!0}),Z(e)):Gf(a.status)&&(d.queueMode!==`steer`||!e.chatRunId)&&Tu(e,a.runId,v)}if(d.refreshSessions){let t={sessionKey:m,agentId:d.agentId};a.status===`ok`?Pv(e,t):Gf(a.status)&&e.refreshSessionsAfterChat.set(a.runId,t)}return xe(wp(e,p)),s?(zp(e,m,d.agentId,J),`pending`):o?`sent`:`pending`}catch(r){if(!g())return`pending`;let o=ZC(r),s=o?G(`chat.sendErrors.activeLeafChanged`):Uc(r);if(r instanceof an)return WC(e,n)?UC(e,d,n??{}):h(`failed`,s),zp(e,m,d.agentId,s),lv(e,d,`failed`,d.sendSubmittedAtMs,{error:s}),`failed`;let c=n?.restoreOnTerminalFailure===!0&&WC(e,n),l=!o&&(r instanceof Gt?r.retryable:/gateway (?:not connected|closed)|websocket|disconnected/i.test(s));if(!o&&l){let o=r instanceof Error&&!(r instanceof Gt)&&r.message===`gateway not connected`,c=fC(r),l=o||c!==null,u=l?{sendAttempts:a.sendAttempts,sendRequestStartedAtMs:a.sendRequestStartedAtMs}:{};if(i===`memory`){let r=l&&WC(e,n);return r?UC(e,d,n??{}):iy(e,i,m,t,e=>({...e,...u,sendError:l?s:AC,sendState:l?`failed`:`unconfirmed`})),zp(e,m,d.agentId,r?s:J),lv(e,d,`failed`,d.sendSubmittedAtMs,{error:r?s:J}),r?`failed`:`pending`}if(!yp(e,m,t,e=>({...e,...u,sendError:s,sendState:`waiting-reconnect`}))){let r=o&&WC(e,n);return r?UC(e,d,n??{}):yp(e,m,t,e=>({...e,sendError:J,sendState:`failed`})),zp(e,m,d.agentId,J),lv(e,d,`failed`,d.sendSubmittedAtMs,{error:J}),r?`failed`:`pending`}return C()&&Y(e,c===null?`Message will send when the Gateway reconnects.`:`The Gateway asked us to retry this message shortly.`),c!==null&&xC(e,{sessionKey:m,agentId:d.agentId},c,ow),lv(e,d,`waiting-reconnect`,d.sendSubmittedAtMs,{error:s}),`pending`}return cy(e,x),c?UC(e,d,n??{}):h(`failed`,s),C()&&o&&Promise.all([Z(e),wb(e)]),zp(e,m,d.agentId,s,{inline:i===`durable`&&!c}),lv(e,d,`failed`,d.sendSubmittedAtMs,{error:s}),`failed`}finally{g()&&cy(e,x)}}async function iw(e,t,n={}){let r=t.sessionKey??e.sessionKey,i=n.storageMode??`durable`,a=n.routingSessionKey??r,o=ry(e,!1),s=t.agentId??gt(e,a)??void 0,c={...n,routingSessionKey:a,storageMode:i},l;if(i===`memory`)l=await rw(e,t.id,c,r);else{let n=Xr(e).find(e=>e.queue.some(e=>e.id===t.id));if(!n)return Y(e,J),`pending`;let o,s=t,u=t.localCommandName?void 0:c.pendingSettings??wv(e,a,t.agentId);if(u){let n=new Set,l=await tw(e,t,i,r,{...c,pendingSettings:u},n);for(;typeof l!=`string`;){let t=wv(e,a,l.agentId);if(!t||n.has(t))break;l=await tw(e,l,i,r,{...c,pendingSettings:t},n)}typeof l!=`string`&&(l=nw(e,l,i,r)),typeof l==`string`?o=l:s=l}let d=L(e,a,s.agentId);if(o===void 0&&d&&!s.queueMode&&!c.allowActiveRunSend&&(Mu(e)||Pu(e))){let a=oy(e,s,i,r,c);typeof a==`string`&&(o=a,a===`pending`&&n.queue[0]?.id!==t.id&&DC(e,n,ow))}o===void 0&&e.connected&&e.client&&(o=d?await DC(e,n,ow,t.id,{...c,pendingSettings:void 0}):await DC(e,n,ow)),l=o??`pending`}return l===`sent`&&L(e,r,s)&&(Wt(e,r),gl(e),n.restoreDraft&&n.previousDraft?.trim()&&(e.chatMessage=n.previousDraft),n.restoreAttachments&&n.previousAttachments?.length&&(e.chatAttachments=n.previousAttachments)),o()&&L(e,a,s)&&Kl(e,!0),l===`sent`&&L(e,r,s)&&!e.chatRunId&&kC(e,ow),l}var aw,ow;function sw(){return(sw=e((()=>{Vf(),mn(),Kt(),U(),A(),et(),j(),lC(),Q(),NC(),yC(),jp(),JC(),Kp(),KC(),dy(),ew(),Hp(),bv(),Zv(),cs(),qc(),Zc(),ul(),dl(),Yl(),cu(),Ol(),Dd(),aw=qC(iw),ow={sendQueuedChatMessage:rw,sendResetSlashCommand:aw,setChatError:Y}})))()}function cw(e,t,n){let r=ZC(t)?G(`chat.sendErrors.activeLeafChanged`):Uc(t);return n()&&(Y(e,r),ZC(t)&&Promise.all([Z(e),wb(e)])),r}async function lw(e,t,n,r={}){let i=t.trim();if(!e.client||!e.connected||!i&&!n?.length)return null;let a=r.canApplyError??(()=>!0);a()&&Y(e,null);let o=r.runId??S(),s=XC(e);try{return await YC(e,{message:i,attachments:n,runId:o,...r.queueMode!==`steer`&&r.expectedLeafEntryId!==void 0?{expectedLeafEntryId:r.expectedLeafEntryId}:r.queueMode!==`steer`&&s!==void 0?{expectedLeafEntryId:s}:{},...r.queueMode?{queueMode:r.queueMode}:{},...r.replyToId?{replyToId:r.replyToId}:{}})}catch(t){let n=cw(e,t,a);return t instanceof Gt?{kind:`rejected`,error:n}:null}}function uw(e,t){return Xr(e).find(({queue:e})=>e.some(e=>e.id===t))}async function dw(e,t){if(gp(e,t)?.intent){Y(e,G(`chat.goals.admissionImmutable`));return}if(Kd(e,t)){Y(e,td);return}if(!_p(e,t,e=>({...e,queueMode:`steer`}))){Y(e,J);return}await pw(e,t)}function fw(e,t,n){let r=gp(e,t);if(!r||!Zi(r))return`noop`;if(bd(e,t))return Y(e,Hd),`rejected`;let i=mp(e,r.sessionKey??e.sessionKey,r.agentId),a=Md(e)?.id,o=va(i,e=>Zi(e)&&e.id!==a).find(e=>e.some(e=>e.id===t)),s=o?.findIndex(e=>e.id===t)??-1,c=o?Math.min(Math.max(n,0),o.length-1):-1;if(s<0||s===c)return`noop`;if(o.some((n,r)=>r>=Math.min(s,c)&&r<=Math.max(s,c)&&n.id!==t&&Kd(e,n.id)))return Y(e,Hd),`rejected`;let l=va(i,t=>Zi(t)&&!Kd(e,t.id)).find(e=>e.some(e=>e.id===t)),u=o[c]?.id,d=l?.findIndex(e=>e.id===u)??-1,f=Po(l??[],t,d);return f.length===0?`noop`:bp(e,f.map(e=>({id:e.id,update:t=>({...t,orderKey:e.orderKey})})))?`moved`:(Y(e,J),`rejected`)}async function pw(e,t){let n=e.chatQueue.find(e=>e.id===t),r=n?.sendState===`failed`&&!n.localCommandName,i=n?.sendState===`unconfirmed`&&!!n.sendRunId&&!n.localCommandName;if(gd(e,t)){Y(e,ef);return}if(!n||n.pendingRunId||n.sendState===`executing-command`||n.sendState===`sending`||n.sendState===`waiting-model`)return;let a=uw(e,n.id);if(!a){let r=op(e,n.id);if(!xp(e,n.sessionKey??e.sessionKey,n)){if(r&&!n.localCommandName&&n.sendRunId&&(n.sendState===`failed`||n.sendState===`unconfirmed`)&&sy(e,n)){let n=vp(e,t,e=>mw(e,void 0));if(!n){Y(e,J);return}await iw(e,n,{routingSessionKey:n.sessionKey??e.sessionKey,storageMode:`memory`});return}Y(e,J);return}}let o=_p(e,t,t=>mw(t,ny(e)));if(!o){Y(e,J);return}if(a=uw(e,o.id),!a){Y(e,J);return}let s=o.queueMode||r||i,c=DC(e,a,ow,s?o.id:void 0,s?{routingSessionKey:e.sessionKey,...r?{allowActiveRunSend:!0}:{}}:void 0);e.chatSending&&e.chatSendingScopeKey===q(a)||(await c,e.chatRunId||kC(e,ow))}var mw,hw,gw,_w;function vw(){return(vw=e((()=>{mn(),U(),et(),Q(),NC(),jp(),sw(),dy(),ew(),Hp(),cs(),qc(),fd(),mw=(e,t)=>{let n=e.sendState===`unconfirmed`&&!!e.sendRunId&&!e.localCommandName;return{...e,sendAttempts:n?e.sendAttempts:0,sendError:e.sendState===`failed`?e.sendError:void 0,sendRequestStartedAtMs:n?e.sendRequestStartedAtMs:void 0,sendRunId:e.sendState===`failed`&&e.queueMode!==`steer`&&!e.intent?S():e.sendRunId,sendState:n?`unconfirmed`:t}},hw=e=>OC(e,ow),gw=e=>kC(e,ow),_w=hw})))()}async function yw(e,t,n,r){let i=t;if(r){let e=bw.get(r)??S();bw.set(r,e),i=`${t}\0${e}`}let a=e.chatSubmitGuards??=new Map;if(a.has(i))return;let o,s=new Promise(e=>{o=e});a.set(i,s);try{return await n()}finally{o(),a.get(i)===s&&a.delete(i)}}var bw;function xw(){return(xw=e((()=>{et(),bw=new WeakMap})))()}function Sw(e){let t=xr(e);return t?.command.key===`new`||t?.command.key===`reset`&&!/^soft(?:\s|$)/i.test(t.args)}function Cw(e){let t=nt(e);return JSON.stringify([e.id,e.mimeType,e.fileName??``,e.sizeBytes??0,t?.length??0,t?.slice(0,64)??``])}function ww(e,t,n,r){return JSON.stringify([t,e.sessionKey,n.trim(),r.map(Cw)])}function Tw(e,t,n,r=!1){let i=e.chatAttachments.length===n.length&&e.chatAttachments.every((e,t)=>Cw(e)===Cw(n[t]));return e.chatMessage!==t||!i?{}:(e.chatMessage=``,e.chatAttachments=r?e.chatAttachments.filter(e=>e.browserAnnotation):[],gl(e),{previousAttachments:n,previousDraft:t})}function Ew(e){return e.map(e=>{let t=nt(e);return{...e,...t?{dataUrl:t}:{}}})}async function Dw(e,t){let n=wv(e,t);return n&&!await ly(e,t,n)?!1:e.sessionKey===t}async function Ow(e,t,n){let r=await lw(e,t,n?.attachments,{canApplyError:()=>LC(e,n.recovery),runId:n.runId}),i=r&&!(`kind`in r)?r:null,a=i?.status===`ok`||i?.status===`started`||i?.status===`in_flight`;if(!a&&!VC(e,n.recovery)&&de(wp(e,n.attachments)),Gp(i)&&LC(e,n.recovery)&&Y(e,Np(i,`detached`)),a){let t=LC(e,n.recovery);IC(e,n.recovery)&&RC(e,n.recovery),t&&Wt(e,e.sessionKey),zC(e,n.recovery)||de(wp(e,n.attachments))}}async function kw(e,t,n,r){let i=e.chatMessage,a=n?.intent,o=t??e.chatMessage,s=a?o:o.trim(),c=fl(),l=e.sessionKey,u=e.client,d=e.connectionEpoch,f=ml(e),p=XC(e),m=Ew(t==null?e.chatAttachments:n?.attachmentsOverride??[]),h=m.length>0;if(a){if(!e.connected||!e.client){Y(e,G(`chat.goals.offline`));return}if(Mu(e)||Pu(e)){Y(e,G(`chat.goals.busy`));return}if(m.some(e=>e.browserAnnotation)){Y(e,G(`chat.goals.annotationUnsupported`));return}if(!s.trim())return}let g=n?.resumeQueuedMessageEditId,_=g?Md(e):null;if(g!=null&&_?.id!==g)return;let v=g!=null&&_?.id===g,y=v?_.revision:null,b=a?null:xr(s);if(v&&(b||Iu(s))){Y(e,`Queued-row edits cannot run commands or stop aliases. Cancel this edit and send the command from the composer.`);return}let x=b||a?s:Rf(s,m),S=b?m.filter(e=>!e.browserAnnotation):m;if(!x&&!h)return;if(!a){if(Iu(s)&&(s.startsWith(`/`)||Nl(e))){if(e.connected&&!HS(e,`abort`))return;e.chatRunError=null,t??yl(e,s),await Tf(e);return}e.chatRunError=null;let r=b;if(/^\/(?:btw|side)(?::|\s|$)/i.test(s)){let n=Lo(s);if(!n)return;await yw(e,ww(e,`local`,x,[]),async()=>{t??(yl(e,s),e.chatMessage===i&&(e.chatMessage=``,gl(e))),await e.openSessionCompanion?.(n)});return}let a=r?.command.clientPresentation,o=e.dispatchClientPresentation;if(e.connected&&r?.args===``&&a?.when===`no-arguments`&&!h&&e.chatReplyTarget==null&&o&&await yw(e,ww(e,`local`,x,[]),async()=>{if(e.sessionKey!==l)return`not-handled`;let n=!1;try{n=await o(a.action)}catch{}return n?(e.sessionKey===l&&(t??(Tw(e,i,m),yl(e,x))),`handled`):`not-handled`})!==`not-handled`)return;if(r?.command.key===`approve`&&Mu(e)){await yw(e,ww(e,`detached`,x,m),async()=>{if(!await Dw(e,l))return;let n=t==null?Tw(e,i,m,!0):{};t??yl(e,s);let r=Hr(e,l);await Ow(e,x,{attachments:S.length?S:void 0,recovery:FC(e,r,n.previousDraft===void 0?void 0:{draft:n.previousDraft,attachments:n.previousAttachments??[]})})});return}let c=r?.command.key===`model`&&qo(r.args);if(r?.command.executeLocal&&!c){if(nC(r.command.key)){let n=Mp(e,l);if(n){Y(e,n);return}await yw(e,ww(e,`local`,x,m),async()=>{t??(yl(e,s),e.chatMessage=``,gl(e));let n=fp(e,x,void 0,Sw(x),{args:r.args,name:r.command.key},Fi(e.hello,e.client?.instanceId,e.selfUser)??void 0);if(n){if(n.sendState=ny(e),!xp(e,e.sessionKey,n)){Sp(e,n.id),t??(e.chatMessage=i,e.chatAttachments=m),Y(e,J);return}await iw(e,n,{routingSessionKey:e.sessionKey})}});return}let a=r.command.key===`redirect`,o=async()=>{if(a&&!await Dw(e,l))return;let o=t==null?i:void 0,c,u=Hr(e,l);if(t==null){if(yl(e,s),a){let t=Tw(e,i,m);o=t.previousDraft,t.previousDraft!==void 0&&(c={draft:t.previousDraft,attachments:t.previousAttachments??[]})}else c={draft:i,attachments:r.command.key===`export-session`?[]:m},e.chatMessage=``,r.command.key!==`export-session`&&(e.chatAttachments=[]),gl(e)}let d=FC(e,u,c),f=await iC(e,r.command.key,r.args,{previousDraft:o,restoreDraft:!!(t&&n?.restoreDraft),sendResetMessage:(t,n)=>ow.sendResetSlashCommand(e,t,n)});f===`failed`&&(t!=null||LC(e,d))&&n?.onLocalCommandSendRejected?.(),f===`failed`||f===`cancelled`?VC(e,d)||de(wp(e,d.composer?.attachments)):f===`completed`&&(IC(e,d)&&RC(e,d),zC(e,d)||de(wp(e,d.composer?.attachments)))};a?await yw(e,ww(e,`local`,x,m),o):await o();return}}let C=v?null:e.chatReplyTarget,w=v?_.replyToId:C?.sourceMessageId?.trim()||void 0,ee=C&&!w&&!a?Aw(x,C):x,T=!!a||Sw(x),te=ww(e,g?`queued-edit`:a?`goal`:`message`,ee,m),E=!1;return await yw(e,te,async()=>{if(e.chatLoading){if(!await Z(e))return;p=XC(e)}if(e.sessionKey!==l)return;let r=gt(e,l);if(!L(e,l,r)){Y(e,G(`mcpServers.sessionUnavailable`));return}if(a&&(Mu(e)||Pu(e))){Y(e,G(`chat.goals.busy`));return}let o=Md(e);if(v&&(o!==_||o.revision!==y))return;let h=Mp(e,l);if(h){Y(e,h);return}let x=wv(e,l),te=!!x,ne=Pu(e),re=n?.followUpMode??e.chatFollowUpMode??en(e.settings?.chatFollowUpMode),ie=!a&&ne&&re!==`queue`?re:void 0,ae=g&&o?.id===g?o:null,D=ey(e,ee,S.length?S:void 0,T,c,te?`waiting-model`:ny(e),w,ae?.orderKey,ie,a,p);if(!D)return;let O=D.item;if(O.attachments?.length){let t=await tl(e,O),n=Md(e);if(!(f()&&e.client===u&&e.connectionEpoch===d&&e.sessionKey===l&&L(e,l,r)&&(!v||n===_&&n.revision===y))){t.status===`ready`&&rl(t.item);return}if(t.status===`failed`){Y(e,el(t.reason));return}O=t.item;let i=Mp(e,l);if(i||a&&(Mu(e)||Pu(e))){rl(O),Y(e,i??G(`chat.goals.busy`));return}x??=wv(e,l),te=!!x,O.sendState=te?`waiting-model`:ny(e)}let oe=t==null?Tw(e,i,m,!!b):{};t??yl(e,s),ty(e,O);let se=xp(e,l,O,ae?{id:ae.id,expected:ae.source}:void 0,D.admission);ae&&Gu(e,se,O.attachments,ae);let ce=!se&&!O.attachments?.length&&(!ae||!ae.sourceWasDurable)&&!Md(e)&&!te&&sy(e,O,l);if(!se&&!ce){rl(O),UC(e,O,{previousDraft:oe.previousDraft,previousAttachments:oe.previousAttachments}),Y(e,J);return}let le=await iw(e,O,{previousDraft:oe.previousDraft,previousAttachments:oe.previousAttachments,...a||ne&&re!==`queue`?{allowActiveRunSend:!0}:{},...p===void 0?{}:{expectedLeafEntryId:p},...x?{pendingSettings:x}:{},restoreAttachments:!!(t&&n?.restoreDraft),restoreDraft:!!(t&&n?.restoreDraft),restoreOnTerminalFailure:!!(b||a),routingSessionKey:l,storageMode:ce?`memory`:`durable`}),k=gp(e,O.id);E=le!==`failed`,le===`pending`&&k?.sendState===`waiting-idle`&&e.sessionKey===l&&L(e,l,k.agentId)&&(Mu(e)||Pu(e))&&lv(e,k,`queued-busy`,c),(le!==`failed`||k?.sendState===`failed`)&&C&&e.chatReplyTarget?.messageId===C.messageId&&e.sessionKey===l&&(e.chatReplyTarget=null)},r),E}function Aw(e,t){let n=jw(t.senderLabel??`User`),r=t.text.trim();return r.includes(`
|
||
`)?`> **${n}:**\n${r.split(`
|
||
`).map(e=>`> ${e}`).join(`
|
||
`)}\n\n${e}`:`> **${n}:** ${r}\n\n${e}`}function jw(e){return e.replace(/([\\`*_{}[\]()#+\-.!|>])/g,`\\$1`)}function Mw(){return(Mw=e((()=>{Go(),Kt(),U(),Bo(),Oi(),Kr(),A(),j(),lC(),Q(),jp(),Kp(),vw(),KC(),sw(),dy(),ew(),Hp(),bv(),Zv(),xw(),cs(),ul(),pl(),dl(),fd(),Yl()})))()}function Nw(e){let t=e.imageLightbox;e.imageLightbox=null,t?.release?.()}function Pw(e){return e.imageLightboxRequestVersion+=1,Nw(e),e.imageLightboxRequestVersion}async function Fw(e,t){if(!e.client||!e.connected)return;let n=e.client,r=t?.sessionKey?.trim()||e.sessionKey.trim(),i=t?.expectedSessionKey?.trim()||r,a=Zp({sessionKey:r,assistantAgentId:e.assistantAgentId,agentsList:e.agentsList,hello:e.hello});if(!a)return;let o=++e.assistantIdentityRequestVersion;try{let t=await Pr(n,a);if(e.client!==n||!e.connected||e.assistantIdentityRequestVersion!==o||e.sessionKey.trim()!==i||Zp(e)!==a||!t)return;e.assistantAgentId!==(t.agentId??null)&&Dt(e,e.sessionKey)&&jv(e),e.assistantName=t.name,e.assistantAvatar=t.avatar,e.assistantAvatarSource=t.avatarSource??null,e.assistantAvatarStatus=t.avatarStatus??null,e.assistantAvatarReason=t.avatarReason??null,e.assistantAgentId=t.agentId??null,e.requestUpdate?.()}catch{}}function Iw(e,t,n,r=new Map){let i=cn(),a=St({agentsList:e.agents.state.agentsList,hello:e.gateway?.snapshot.hello},i.sessionKey),o=Zt(),s=e.config.current,c={sessions:e.sessions,hasPendingInitialTurn:t=>e.placementStartup.hasPendingTurn(t),initialUserMessage:e.initialUserMessage,settings:i,password:``,onboarding:!1,assistantName:s.assistantIdentity.name,assistantAvatar:null,assistantAvatarStatus:null,assistantAvatarReason:null,assistantAvatarSource:null,assistantIdentityRequestVersion:0,userName:o.name,userAvatar:o.avatar,localMediaPreviewRoots:s.localMediaPreviewRoots,embedSandboxMode:s.embedSandboxMode,allowExternalEmbedUrls:s.allowExternalEmbedUrls,automaticallyFetchFavicons:s.automaticallyFetchFavicons,client:null,connected:!1,connectionEpoch:0,hello:null,selfUser:null,canvasPluginSurfaceUrl:null,terminalAvailable:!1,browserPanelAvailable:!1,assistantAgentId:e.agentSelection.state.selectedId,sessionKey:i.sessionKey,chatLoading:!1,chatHistoryPagination:{hasMore:!1},chatSending:!1,chatMessage:``,chatMessages:[],chatDisplayedLeafEntryId:void 0,chatBranches:[],chatBranchesSessionKey:null,chatBranchesConnectionEpoch:null,chatToolMessages:[],guardianNotices:[],chatThinkingLevel:null,chatVerboseLevel:null,chatQueueModeOverride:void 0,chatEffectiveQueueMode:void 0,chatAttachments:[],chatRunId:null,chatRunUsageById:new Map,chatStream:null,chatStreamStartedAt:null,chatRunStartup:null,lastError:null,chatError:null,chatRunError:null,agentsError:null,chatStreamSegments:[],chatRunStatus:null,compactionStatus:null,fallbackStatus:null,observerDigest:null,knownAgentRunIds:new Set,waitingApprovalStatuses:new Map,waitingApprovalResolvedIds:new Set,chatAvatarUrl:null,chatAvatarSource:null,chatAvatarStatus:null,chatAvatarReason:null,chatModelSwitchPromises:{},chatModelPickerOpenSessionKey:null,chatModelsLoading:!1,chatModelCatalog:[],chatModelCatalogError:null,modelAuthStatusRequestVersion:0,modelAuthStatusResult:null,modelAuthStatusError:null,sessionsResult:null,sessionsResultAgentId:null,sessionsLoading:!1,sessionsError:null,sessionsArchivedFilter:`active`,selectedChatSessionArchived:!1,selectedChatSessionIncognito:!1,agentsList:e.agents.state.agentsList,agentsSelectedId:e.agentSelection.state.selectedId,refreshSessionsAfterChat:new Map,pendingAbort:null,pendingSessionMessageReloadSessionKey:null,chatSubmitGuards:new Map,chatGoalDraftMode:null,chatSendTimingsByRun:new Map,chatQueue:[],chatComposerFallbackByScope:{},chatSendingScopeKey:null,chatMessagesBySession:r,eventLogBuffer:[],dispatchClientPresentation:t=>ti(e,t),basePath:e.basePath,resourceBasePath:e.resourceBasePath,chatNewMessagesBelow:!1,chatLocalInputHistoryBySession:{},chatInputHistorySessionKey:null,chatInputHistoryItems:null,chatInputHistoryIndex:-1,chatDraftBeforeHistory:null,chatScrollCommitCleanup:null,chatStreamRenderFrame:null,chatScrollFrame:null,chatScrollGeneration:0,chatLastScrollTop:0,chatLastScrollHeight:0,chatHasAutoScrolled:!1,chatUserNearBottom:!0,chatFollowLocked:!1,sidebarLayout:ot(i.sidebarSessionLayouts?.[a]),sidebarContent:null,attachmentSidebarContent:null,sidebarFocusPanelId:i.sidebarSessionActivePanels?.[a]??``,sidebarFocusVersion:0,imageLightbox:null,imageLightboxRequestVersion:0,toolStreamById:new Map,toolStreamOrder:[],activityEventSeqById:new Map,toolStreamSyncTimer:null,...eS(),renderLifecycle:t,requestUpdate:()=>t.invalidate(),sessionWorkspaceState:void 0,backgroundTasksState:void 0,querySelector:n.querySelector.bind(n)};return c.resetToolStream=()=>nf(c),c.resetChatInputHistoryNavigation=()=>gl(c),c.resetChatScroll=()=>fu(c),c.scrollToBottom=e=>{fu(c),Kl(c,!0,!!e?.smooth,{source:`manual`})},c.handleChatScroll=e=>jl(c,e),c.handleChatDraftChange=e=>Sl(c,e),c.handleChatInputHistoryKey=e=>ll(c,e),c.applySettings=e=>{let n={...c.settings,...e};c.settings=fn({chatShowThinking:n.chatShowThinking,chatShowToolCalls:n.chatShowToolCalls,chatPersistCommentary:n.chatPersistCommentary,chatSendShortcut:n.chatSendShortcut}),t.invalidate()},iS(c),c.loadAssistantIdentity=()=>Fw(c),c.handleSendChat=(t,n,r)=>{let i=t??c.chatMessage,a=xr(i)!==null||Iu(i)&&Nl(c);return Ir({connected:c.connected,directComposerSend:t===void 0&&n===void 0&&Mi(),message:i,hasAttachments:c.chatAttachments.length>0,isCommand:a})&&Ur(e),kw(c,t,n,r)},c.handleAbortChat=async e=>{await Tf(c,e),t.invalidate()},c.removeQueuedMessage=e=>{if(Id(c,e)){Y(c,Ju),t.invalidate();return}let n=Tp(c,e);n===`removed`?(Y(c,null),hw(c)):n===`rejected`&&Y(c,J),t.invalidate()},c.retryQueuedChatMessage=async e=>{await pw(c,e),t.invalidate()},c.steerQueuedChatMessage=async e=>{await dw(c,e),t.invalidate()},c.moveQueuedChatMessage=(e,n)=>{fw(c,e,n),t.invalidate()},c.editQueuedChatMessage=e=>{sf(c,e)===`unavailable`&&Y(c,Cd),t.invalidate()},c.updateQueuedChatMessageEdit=e=>{df(c,e),t.invalidate()},c.submitQueuedChatMessageEdit=()=>{let e=Md(c);e&&c.handleSendChat(e.draftText,{attachmentsOverride:[...e.attachments],resumeQueuedMessageEditId:e.id}).then(()=>t.invalidate(),()=>t.invalidate())},c.cancelQueuedChatMessageEdit=()=>{ad(c),t.invalidate()},c.updateSidebarLayout=e=>{let n=ot(e);c.sidebarLayout=n,c.settings=fn({sidebarSessionLayouts:_t(cn().sidebarSessionLayouts,St(c,c.sessionKey),n)}),t.invalidate()},c.updateSidebarActivePanel=e=>{let n=e.trim();n&&(c.sidebarFocusPanelId=n,c.sidebarFocusVersion+=1,c.settings=fn({sidebarSessionActivePanels:ut(cn().sidebarSessionActivePanels,St(c,c.sessionKey),n)}),t.invalidate())},c.handleOpenSidebar=e=>{let t=e?.kind===`attachment`,r=t?`workspace`:`detail`,i=ud(c.sidebarLayout,r),a=i.columns.flatMap(e=>e.panels).find(e=>e.slot===r);a&&(i=$l(i,a.id));let o=n.getBoundingClientRect?.().width??0,s=o>0&&o>=680?Lu(i,o)??i:i;t?c.attachmentSidebarContent=e:c.sidebarContent=e,c.updateSidebarLayout(s),a&&c.updateSidebarActivePanel(a.id)},c.handleCloseSidebar=e=>{e===`workspace`&&(c.attachmentSidebarContent=null),c.updateSidebarLayout(zu(c.sidebarLayout,e))},c.beginImageOpen=()=>{let e=Pw(c);return t.invalidate(),e},c.handleOpenImage=(e,n)=>{if((n??c.beginImageOpen())!==c.imageLightboxRequestVersion){e.release?.();return}let r=e.kind===`video`,i=e=>r?as(e,`video`):Ca(e,window.location.href,{allowDataImage:!0}),a=i(e.src),o=e.originalSrc?i(e.originalSrc):void 0;if(!a||e.originalSrc&&!o){e.release?.();return}c.imageLightbox={...e,src:a,...o?{originalSrc:o}:{}},t.invalidate()},c.handleCloseImage=()=>{Pw(c),t.invalidate()},c}function Lw(){return(Lw=e((()=>{Ar(),ro(),Li(),Kt(),Bo(),ha(),N(),wm(),jp(),aS(),vw(),dy(),Mw(),Hp(),Zv(),Sc(),ul(),fd(),Yl(),cu(),ht(),Hu(),Ol()})))()}function Rw(e){let t=e.chatStreamRenderFrame;t!=null&&(e.chatStreamRenderFrame=null,typeof globalThis.cancelAnimationFrame==`function`&&globalThis.cancelAnimationFrame(t))}function zw(e,t=`immediate`){if(globalThis.document?.visibilityState===`hidden`||t===`immediate`||typeof globalThis.requestAnimationFrame!=`function`){Rw(e),e.requestUpdate?.();return}if(e.chatStreamRenderFrame!=null)return;let n=0;n=globalThis.requestAnimationFrame(()=>{e.chatStreamRenderFrame===n&&(e.chatStreamRenderFrame=null,e.requestUpdate?.())}),e.chatStreamRenderFrame=n}var Bw;function Vw(){return(Vw=e((()=>{Q(),jp(),aS(),Lw(),is(),As(),Ic(),cs(),cu(),Bw=class{constructor(e){this.host=e,this.previousChatLoading=!1,this.previousChatMessages=[],this.previousChatToolMessages=[],this.previousGuardianNotices=[],this.previousChatStream=null,this.previousRealtimeConversation=[],this.scrollAfterUpdate=!1,this.scrollContentChangedAfterUpdate=!1,this.forceScrollAfterUpdate=!1,this.cleanups=[],this.renderLifecycleConnected=!1,this.renderLifecycleConnectionEpoch=0,this.attachmentReads=new $s(()=>this.stateValue?.requestUpdate?.()),this.composerPersistence=new Is(()=>this.stateValue),e.addController(this)}get state(){return this.stateValue}createRenderLifecycle(){this.cancelRenderLifecycleScope();let e={connectionEpoch:this.renderLifecycleConnectionEpoch,cancellations:new Set};return this.renderLifecycleScope=e,{invalidate:()=>{this.requestUpdateForScope(e)},afterCommit:(t,n)=>this.afterCommit(e,t,n)}}attach(e){this.stateValue&&this.stateValue!==e&&(sb(this.stateValue),Ps(this.stateValue.requestUpdate),this.attachmentReads.abortReads(),this.composerPersistence.stop(),Rw(this.stateValue),Bl(this.stateValue),nS(this.stateValue)),this.stateValue=e,this.previousChatLoading=e.chatLoading,this.previousChatMessages=e.chatMessages,this.previousChatToolMessages=e.chatToolMessages,this.previousGuardianNotices=e.guardianNotices,this.previousChatStream=e.chatStream,this.previousRealtimeConversation=e.realtimeTalkConversation;let t=e.renderLifecycle;e.requestUpdate=()=>t.invalidate(),this.cleanups.push(dp(e));let n=e.handleSendChat;e.handleSendChat=async(e,r,i)=>{let a=n(e,r,i);t.invalidate();try{return await a}finally{t.invalidate()}};let r=e.handleChatDraftChange;e.handleChatDraftChange=e=>{r(e),this.composerPersistence.schedule()};let i=e.handleChatInputHistoryKey;e.handleChatInputHistoryKey=t=>{let n=i(t);return n.handled&&(this.composerPersistence.schedule(),e.renderLifecycle.invalidate()),n}}addCleanup(e){this.cleanups.push(e)}isRenderLifecycleScopeActive(e){return this.renderLifecycleConnected&&this.renderLifecycleScope===e&&e.connectionEpoch===this.renderLifecycleConnectionEpoch}requestUpdateForScope(e){return this.isRenderLifecycleScopeActive(e)?(this.composerPersistence.persistChangedState(),this.captureRenderLifecycleChanges(),this.host.requestUpdate(),!0):!1}cancelRenderLifecycleScope(){let e=this.renderLifecycleScope;if(e){this.renderLifecycleScope=void 0;for(let t of e.cancellations)t()}}afterCommit(e,t,n){if(!this.isRenderLifecycleScopeActive(e))return n?.(),()=>void 0;let r=!0,i=!1,a,o=()=>{r&&(r=!1,a=void 0,e.cancellations.delete(s))},s=()=>{if(r){r=!1,e.cancellations.delete(s);try{a?.()}finally{a=void 0,i||n?.()}}};return e.cancellations.add(s),this.requestUpdateForScope(e)?(this.host.updateComplete.then(()=>{if(r){if(!this.isRenderLifecycleScopeActive(e)){s();return}i=!0;try{let n=t(o);typeof n==`function`?r&&this.isRenderLifecycleScopeActive(e)?a=n:n():o()}catch(e){throw o(),e}}},s),s):(s(),s)}captureRenderLifecycleChanges(){let e=this.stateValue;if(!e)return;let t=this.previousChatMessages!==e.chatMessages||this.previousChatToolMessages!==e.chatToolMessages||this.previousGuardianNotices!==e.guardianNotices||this.previousRealtimeConversation!==e.realtimeTalkConversation,n=this.previousChatStream!==e.chatStream,r=this.previousChatLoading!==e.chatLoading,i=this.previousChatLoading&&!e.chatLoading,a=this.previousChatStream==null&&typeof e.chatStream==`string`;this.previousChatLoading=e.chatLoading,this.previousChatMessages=e.chatMessages,this.previousChatToolMessages=e.chatToolMessages,this.previousGuardianNotices=e.guardianNotices,this.previousChatStream=e.chatStream,this.previousRealtimeConversation=e.realtimeTalkConversation,!(!t&&!n&&!r)&&(this.scrollAfterUpdate=!0,this.scrollContentChangedAfterUpdate||=t||n,this.forceScrollAfterUpdate||=i||a||!e.chatHasAutoScrolled)}handleTranscriptResize(){this.stateValue&&this.renderLifecycleConnected&&Ql(this.stateValue,!1,!1,{source:`resize`})}hostConnected(){this.renderLifecycleConnectionEpoch+=1,this.renderLifecycleConnected=!0,this.cancelRenderLifecycleScope()}hostUpdated(){let e=this.stateValue;if(!this.scrollAfterUpdate)return;let t=this.forceScrollAfterUpdate,n=this.scrollContentChangedAfterUpdate;this.scrollAfterUpdate=!1,this.scrollContentChangedAfterUpdate=!1,this.forceScrollAfterUpdate=!1,e&&Ql(e,t,!1,{contentChanged:n})}restoreComposer(e={}){this.composerPersistence.restore(e)}startComposerPersistence(){this.composerPersistence.start()}persistComposerForEviction(){return this.composerPersistence.persistForRouteSwitchResult()}composerScopeForEviction(){return this.composerPersistence.scopeForRouteSwitch()}stopChatEffects(){for(;this.cleanups.length>0;)this.cleanups.pop()?.();let e=this.stateValue;e&&(sb(e),Ps(e.requestUpdate),Rw(e),Bl(e),Pw(e),_c(e),nS(e),e.resetToolStream?.())}hostDisconnected(){this.renderLifecycleConnected=!1,this.cancelRenderLifecycleScope(),this.attachmentReads.abortReads(),this.composerPersistence.stop(),this.stopChatEffects(),this.stateValue=void 0,this.scrollAfterUpdate=!1,this.scrollContentChangedAfterUpdate=!1,this.forceScrollAfterUpdate=!1}}})))()}var $;function Hw(){return(Hw=e((()=>{ar(),Lt(),yn(),Gr(),ga(),_o(),xa(),U(),I(),Ct(),N(),Ha(),st(),yi(),Mt(),Bx(),z_(),Jb(),$x(),Vw(),Tx(),Fs(),Os(),cu(),Hu(),$=class extends We{connectedCallback(){document.addEventListener(`visibilitychange`,this.handleVisibilityChange),super.connectedCallback()}async scheduleUpdate(){for(;this.hasUpdated&&this.isConnected&&document.visibilityState===`hidden`;)await new Promise(e=>{this.hiddenUpdateResume=e});await super.scheduleUpdate()}disconnectedCallback(){this.hiddenUpdateResume?.(),document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),super.disconnectedCallback()}get presented(){return this.presentedValue}set presented(e){let t=this.presentedValue;e!==t&&(this.headerPresentationGeneration+=1,this.presentedValue=e,this.requestUpdate(`presented`,t),this.presentedChanged(e))}presentedChanged(e){}get headerOutcomeOwner(){return`${this.connectionGeneration}:${this.headerPresentationGeneration}`}ownsHeaderOutcome(e){return this.presented&&e===this.headerOutcomeOwner}get active(){return this.activeValue}set active(e){let t=this.activeValue;e!==t&&(this.activeValue=e,this.requestUpdate(`active`,t),this.activeChanged(e))}activeChanged(e){}retireHeaderSessionMutations(){this.headerSessionMutationAbortController.abort(),this.headerSessionMutationAbortController=new AbortController}get boardFullscreen(){return this.boardFullscreenController??=new da(this,{section:()=>this.querySelector(`.chat-pane-primary-column`),onChange:()=>this.requestUpdate(),onError:e=>this.publishHeaderError(e),buttonClass:`btn btn--ghost btn--icon chat-icon-btn board-fullscreen-button`,buttonSelector:`.board-fullscreen-button`,iconClass:`board-fullscreen-button__icon`,enterLabel:()=>G(`chat.board.enterFullscreen`),exitLabel:()=>G(`chat.board.exitFullscreen`),unavailableLabel:()=>G(`chat.board.fullscreenUnavailable`),errorMessage:e=>G(`chat.board.fullscreenFailed`,{error:P(e)})}),this.boardFullscreenController}isCurrentSessionArchived(e){return e.selectedChatSessionArchived||e.sessionsResult?.sessions.some(t=>t.archived===!0&&F(t.key,e.sessionKey))===!0}selectedSessionRailMode(e){let t=this.state;return t?.sessionKey===e&&Dl(t.sidebarLayout,`companion`)?`expanded`:`hidden`}setChatSidePanelOpen(e,t){let n=this.state;if(!n)return;let r=t??n.sidebarLayout;r.columns[0]?.panels.some(e=>e.slot===`companion`)&&this.setSessionObserverVisibility(e),this.commitSidebarLayout(Yu(r,e))}requestSessionRail(e){let t=this.state;if(!t)return;let n=this.selectedSessionRailMode(t.sessionKey)===`expanded`;if(e===`toggle`&&n){this.commitSidebarLayout(zu(t.sidebarLayout,`companion`)),this.setSessionObserverVisibility(!1);return}this.commitSidebarLayout(ud(t.sidebarLayout,`companion`)),this.setSessionObserverVisibility(!0)}hydrateSessionCompanion(e){let t=this.state;if(!t?.connected||!t.client||!e||Be(e))return;let n=X(t),r=`${this.connectionGeneration}\0${n}\0${e}`;this.sessionCompanionHydrationKey!==r&&(this.sessionCompanionHydrationKey=r,this.sessionCompanionThreads.hydrate(e,e=>Jx(t.client,e,n),n))}constructor(){super(),this.handleVisibilityChange=()=>{if(document.visibilityState!==`hidden`){this.hiddenUpdateResume?.();return}let e=this.state;if(!e)return;let t=ec(this.paneId).composerTextarea?.value,n=t!==void 0&&t!==e.chatMessage;n&&e.handleChatDraftChange(t),(n||e.chatStreamRenderFrame!=null)&&zw(e)},this.minutePoll=new pi(this,6e4,()=>{this.requestUpdate()}),this.paneId=`single`,this.presentationId=`single`,this.sessionKey=``,this.visuallyPresented=!0,this.activeValue=!1,this.headerPresentationGeneration=0,this.presentedValue=!0,this.focusComposer=!1,this.routeFace=`chat`,this.paneTitle=``,this.narrow=!1,this.mergedChrome=!1,this.navDrawerOpen=!1,this.onboarding=!1,this.chatState=new Bw(this),this.composerCapabilities=new zx(()=>this.requestUpdate()),this.transcript=new xs(this,{onViewportResize:()=>this.chatState.handleTranscriptResize(),onReaderScroll:()=>this.state&&Od(this.state)}),this.taskSidebarTranscript=new xs(this),this.progressCard=new Ta(this,{gateway:()=>this.context?.gateway,sessionKey:()=>this.state&&!this.isCurrentSessionArchived(this.state)?this.state.sessionKey:void 0}),this.boardFullscreenController=null,this.questionPromptState=La(()=>{this.questionPrompts=to(this.questionPromptState),this.requestUpdate()}),this.questionPrompts=[],this.paneWidth=1/0,this.paneResizeObserver=null,this.connectedClient=null,this.boardProviderLifecycleConnected=!1,this.connectionGeneration=0,this.headerSessionMutationAbortController=new AbortController,this.headerEditing=!1,this.headerRenameValue=``,this.headerPlatform=null,this.headerCopiedAction=null,this.continueInTerminalDialog=null,this.headerPlacementMovingKey=null,this.headerPlacementReclaimingKey=null,this.sessionSharingStates=new Map,this.sessionParticipationTracker=new qb,this.boardCommandDock=null,this.boardChatDockSize=j_.load(),this.resetConfirmationOpen=!1,this.deferredSessionHydrationRequestVersion=0,this.sessionCompanionHydrationKey=``,this.sessionCompanionThreads=new Qx(()=>{this.requestUpdate()}),this.setSessionObserverVisibility=e=>{let t=this.state;t?.connected&&t.client&&je(t.client,e).catch(()=>void 0),this.requestUpdate()},this.submitSessionCompanionQuestion=async e=>{let t=this.state;if(!t||!t.sessionKey)return;let n=t.sessionKey,r=X(t);if(this.requestSessionRail(`open`),!t.connected||!t.client){this.sessionCompanionThreads.setDraft(n,e,r);return}let i=t.client;await this.sessionCompanionThreads.submit(n,e,(e,t)=>qx(i,e,t,r),r)},this.prefillSessionCompanionQuestion=e=>{let t=this.state,n=t?.sessionKey;n&&(this.sessionCompanionThreads.setDraft(n,e,X(t)),this.requestSessionRail(`open`))},this.lastVisibleBoardDock=new Map,this.retainedBoardSessionKey=``,this.swarmHydrator=null,this.sessionDiscussionStates=new Map,this.sessionDiscussionOpenUrls=new Map,this.pendingPanelToggleRequests=new Map,this.sessionDiscussionProbes=new Set,this.sessionDiscussionPanels=new Map,this.headerRenameInitialValue=``,this.headerRenameSession=null,this.headerCopiedTimer=null,this.composerPrefillAttentionTimer=null,this.composerPrefillAttentionTarget=null,this.headerWorktreePaths=new Map,this.headerBranches=new Map,this.nativeDraftCleanup=null,this.unreadPatchGuard=new no,this.sessionSuggestions=[],this.sessionSuggestionBusyIds=new Set,this.sessionSuggestionsRequestVersion=0,this.sessionSuggestionsRefreshQueued=!1,this.sessionSuggestionTargetSignature=``,this.typingActors=new Map,this.typingTimers=new Map,this.sessionPullRequests=[],this.sessionPullRequestsRateLimited=!1,this.sessionPullRequestsExpanded=!1,this.githubPublicationBusy=!1,this.githubPublicationResult=null,this.githubPublicationError=null,this.githubPublicationIdempotencyKey=null,this.githubPublicationRequestVersion=0,this.dismissedSessionPullRequestIds=new Set,this.dismissedWorkspaceConflictRefs=new Map,this.catalogMessages=[],this.catalogLoading=!1,this.loadingOlder=!1,this.catalogSession=null,this.catalogHost=null,this.catalogLoadGeneration=0,this.catalogRequestedSessionKey=null,this.olderLoadGeneration=0,this.historyObserver=null,this.historyObserverRoot=null,this.historyObserverSentinel=null,this.historyObserverBootstrap=!1,this.historyObserverArmed=!1,this.historyAutoLoadBlocked=!1,this.historyIntentConsumed=!1,this.historyIntentTimer=null,this.historyTouchY=null,this.transcriptScrollTop=null,this.olderCursorsSeen=new Set,zr(this),new wt(this).watch(()=>this.context?.overlays,(e,t)=>e.subscribe(e=>{this.state&&this.reconcileWaitingApprovalSnapshot(e.approvalQueue),t()})).watch(()=>this.context?.runtimeConfig,(e,t)=>e.subscribe(()=>{this.refreshSwarmRoster(),t()})).watch(()=>this.context?.theme,(e,t)=>e.subscribe(t)).watch(()=>this.resolveBoardProvider(),(e,t)=>e.snapshot$.subscribe(t)).effect(()=>this.resolveBoardProvider(),e=>e.events.subscribe(e=>this.handleBoardCommand(e)))}},d([rr({context:xn,subscribe:!0})],$.prototype,`context`,void 0),d([V({attribute:!1})],$.prototype,`paneId`,void 0),d([V({attribute:!1})],$.prototype,`presentationId`,void 0),d([V({attribute:!1})],$.prototype,`chatMessagesBySession`,void 0),d([V({attribute:!1})],$.prototype,`sessionSnapshotStore`,void 0),d([V({attribute:!1})],$.prototype,`sessionKey`,void 0),d([V({attribute:!1})],$.prototype,`visuallyPresented`,void 0),d([V({attribute:!1})],$.prototype,`draft`,void 0),d([V({attribute:!1})],$.prototype,`focusComposer`,void 0),d([V({attribute:!1})],$.prototype,`routeFace`,void 0),d([V({attribute:!1})],$.prototype,`onFaceChange`,void 0),d([V({attribute:!1})],$.prototype,`onFocusPane`,void 0),d([V({attribute:!1})],$.prototype,`onSessionDeleted`,void 0),d([V({attribute:!1})],$.prototype,`paneTitle`,void 0),d([V({attribute:!1})],$.prototype,`narrow`,void 0),d([V({attribute:!1})],$.prototype,`mergedChrome`,void 0),d([V({attribute:!1})],$.prototype,`navDrawerOpen`,void 0),d([V({attribute:!1})],$.prototype,`nativeGateways`,void 0),d([V({attribute:!1})],$.prototype,`gatewaysSnapshot`,void 0),d([V({attribute:!1})],$.prototype,`onboarding`,void 0),d([V({attribute:!1})],$.prototype,`onOpenSplitView`,void 0),d([V({attribute:!1})],$.prototype,`onSplitDown`,void 0),d([V({attribute:!1})],$.prototype,`onSplitRight`,void 0),d([V({attribute:!1})],$.prototype,`onClosePane`,void 0),d([V({attribute:!1})],$.prototype,`boardProvider`,void 0),d([H()],$.prototype,`paneWidth`,void 0),d([H()],$.prototype,`headerEditing`,void 0),d([H()],$.prototype,`headerRenameValue`,void 0),d([H()],$.prototype,`headerPlatform`,void 0),d([H()],$.prototype,`headerCopiedAction`,void 0),d([H()],$.prototype,`headerPlacementMovingKey`,void 0),d([H()],$.prototype,`headerPlacementReclaimingKey`,void 0),d([H()],$.prototype,`presencePayload`,void 0),d([H()],$.prototype,`sessionSharingStates`,void 0),d([H()],$.prototype,`boardCommandDock`,void 0),d([H()],$.prototype,`boardChatDockSize`,void 0),d([H()],$.prototype,`resetConfirmationOpen`,void 0),d([H()],$.prototype,`catalogMessages`,void 0),d([H()],$.prototype,`catalogLoading`,void 0),d([H()],$.prototype,`loadingOlder`,void 0)})))()}function Uw(e,t,n,r){let i=fe(e);return!i||!ee(r,i.key,i.agentId??void 0)?!1:Ww(e,t,n)}function Ww(e,t,n){let r=l(e),i=l(r?.message);if(p(i?.role)?.toLowerCase()!==`user`)return!1;let a=Jo(l(i?.__openclaw)?.senderIdentity),o=a?.type===`profile`?a.id:void 0;if(!o||!t.delete(o))return!1;let s=n.get(o);return s!==void 0&&(window.clearTimeout(s),n.delete(o)),!0}function Gw(){return(Gw=e((()=>{Zo(),pe(),N()})))()}var Kw,qw;function Jw(){return(Jw=e((()=>{mn(),U(),I(),hr(),co(),w(),A(),N(),Hw(),z_(),$x(),Tx(),Gw(),Qs(),Kw=`session.members.listEvidence`,qw=class extends ${constructor(...e){super(...e),this.clearSessionCompanion=async()=>{let e=this.captureConnectionScope(),t=e?.state.sessionKey;if(!e||!t)return;let n=X(e.state);await this.sessionCompanionThreads.reset(t,t=>Yx(e.client,t,n),n).catch(n=>{this.presented&&this.isConnectionScopeCurrent(e)&&e.state.sessionKey===t&&this.publishHeaderError(n)})}}setSessionSharingState(e,t){this.sessionSharingStates=new Map(this.sessionSharingStates).set(e,t)}sessionSharingAgentId(e){return e===`global`?this.state?X(this.state):void 0:E(e)?.agentId}sessionSharingCacheKey(e){return`${this.sessionSharingAgentId(e)??``}\0${e}`}currentSessionSharingRow(e,t){let n=e.state.sessionsResult?.sessions.find(e=>F(e.key,t.key));if(!n||!Ss(t)||!Ss(n))return null;if(n===t)return n;let r=t.sessionId?.trim(),i=n.sessionId?.trim();return r&&i&&r===i?n:null}async loadSessionSharing(e,t=!1){let n=this.captureConnectionScope(),r=n?this.currentSessionSharingRow(n,e):null;if(!n||!r||!M(n.context.gateway.snapshot,{method:Kw,requiredScope:`operator.read`}).allowed)return;let i=this.sessionSharingCacheKey(r.key),a=this.sessionSharingStates.get(i);if(a?.loading&&!t)return;let o={...a,loading:!0,error:void 0},s=()=>this.sessionSharingStates.get(i)===o,c=()=>{if(!s())return;let e=new Map(this.sessionSharingStates);e.delete(i),this.sessionSharingStates=e};this.setSessionSharingState(i,o);try{let e=await n.client.request(Kw,{sessionKey:r.key,...this.sessionSharingAgentId(r.key)?{agentId:this.sessionSharingAgentId(r.key)}:{}});if(!this.ownsHeaderOutcomeScope(n)||!this.currentSessionSharingRow(n,r)||!s()){this.isConnectionScopeCurrent(n)&&c();return}this.setSessionSharingState(i,{loading:!1,result:e})}catch(e){if(!this.ownsHeaderOutcomeScope(n)||!this.currentSessionSharingRow(n,r)||!s()){this.isConnectionScopeCurrent(n)&&c();return}this.setSessionSharingState(i,{loading:!1,error:P(e)})}}failSharing(e,t,n,r){this.ownsHeaderOutcomeScope(e)&&(this.setSessionSharingState(t,{...this.sessionSharingStates.get(t)??{loading:!1},loading:!1,error:P(r)}),F(this.state?.sessionKey,n)&&this.publishHeaderError(r,e.headerOutcomeOwner))}async setSessionVisibility(e,t){let n=this.captureConnectionScope(),r=n?this.currentSessionSharingRow(n,e):null;if(!n||!r||t===r.visibility)return;let i=this.sessionSharingAgentId(r.key),a=this.sessionSharingCacheKey(r.key),o={sessionKey:r.key,visibility:t,...i?{agentId:i}:{}};if(M(n.context.gateway.snapshot,{method:`session.visibility.set`,requiredScope:`operator.write`}).allowed)try{if(await n.client.request(`session.visibility.set`,o),!this.ownsHeaderOutcomeScope(n)||!this.currentSessionSharingRow(n,r))return;await n.sessions.refreshReplacement(i);let e=this.currentSessionSharingRow(n,r);if(!this.ownsHeaderOutcomeScope(n)||!e)return;await this.loadSessionSharing(e,!0)}catch(e){if(!this.ownsHeaderOutcomeScope(n)||!this.currentSessionSharingRow(n,r))return;this.failSharing(n,a,r.key,e)}}async setSessionMember(e,t,n){let r=this.captureConnectionScope(),i=r?this.currentSessionSharingRow(r,e):null;if(!r||!i)return;let a=this.sessionSharingAgentId(i.key),o=this.sessionSharingCacheKey(i.key),s=n?`session.members.add`:`session.members.remove`,c={sessionKey:i.key,identityId:t,...a?{agentId:a}:{}};if(M(r.context.gateway.snapshot,{method:s,requiredScope:`operator.write`}).allowed)try{if(await r.client.request(s,c),!this.ownsHeaderOutcomeScope(r)||!this.currentSessionSharingRow(r,i)||(await this.loadSessionSharing(i,!0),!this.ownsHeaderOutcomeScope(r)||!this.currentSessionSharingRow(r,i)))return;await r.sessions.refreshReplacement(a)}catch(e){if(!this.ownsHeaderOutcomeScope(r)||!this.currentSessionSharingRow(r,i))return;this.failSharing(r,o,i.key,e)}}captureConnectionScope(){let e=this.state;if(!e?.client)return null;let t={context:this.context,state:e,client:e.client,generation:this.connectionGeneration,headerOutcomeOwner:this.headerOutcomeOwner,sessions:this.context.sessions};return this.isConnectionScopeCurrent(t)?t:null}isConnectionScopeCurrent(e){return this.isConnected&&this.context===e.context&&this.state===e.state&&e.state.connected&&e.state.client===e.client&&this.connectedClient===e.client&&e.context.gateway.snapshot.phase===`connected`&&e.context.gateway.snapshot.client===e.client&&this.connectionGeneration===e.generation}ownsHeaderOutcomeScope(e){return this.isConnectionScopeCurrent(e)&&this.ownsHeaderOutcome(e.headerOutcomeOwner)}suggestionMatchesCurrentSession(e){let t=this.state;return!!(t?.connected&&ee({agentsList:this.context.agents.state.agentsList,hello:this.context.gateway.snapshot.hello,sessionKey:t.sessionKey},e.sessionKey,e.agentId))}hasMultipleIdentities(){return vo(this.presencePayload)}resetSessionSuggestions(){this.sessionSuggestionsRequestVersion+=1,this.sessionSuggestionsRefreshQueued=!1,this.sessionSuggestions=[],this.sessionSuggestionRole=void 0,this.sessionSuggestionBusyIds.clear(),this.sessionSuggestionAddOperation=void 0,this.sessionSuggestionEditOperation=void 0}syncSessionSuggestionTarget(e,t){let n=t?`${e}\0${t.key}\0${t.sessionId??``}\0${t.visibility??`shared`}\0${t.sharingRole??`owner`}`:``;n!==this.sessionSuggestionTargetSignature&&(this.sessionSuggestionTargetSignature=n,this.resetSessionSuggestions(),this.clearTypingActors(),this.refreshSessionSuggestions())}refreshSessionSuggestions(){if(this.sessionSuggestionsRefreshPromise)return this.sessionSuggestionsRefreshVersion!==this.sessionSuggestionsRequestVersion&&(this.sessionSuggestionsRefreshQueued=!0),this.sessionSuggestionsRefreshPromise;let e=++this.sessionSuggestionsRequestVersion;this.sessionSuggestionsRefreshVersion=e;let t=this.loadSessionSuggestions(e).finally(()=>{this.sessionSuggestionsRefreshPromise===t&&(this.sessionSuggestionsRefreshPromise=void 0,this.sessionSuggestionsRefreshVersion=void 0,this.sessionSuggestionsRefreshQueued&&(this.sessionSuggestionsRefreshQueued=!1,this.refreshSessionSuggestions()))});return this.sessionSuggestionsRefreshPromise=t,t}async loadSessionSuggestions(e){let t=this.sessionSuggestionTargetSignature,n=this.captureConnectionScope(),r=n?Sx(n.state):void 0;if(!n||!r||!this.hasMultipleIdentities()||!K(n.context.gateway.snapshot,`session.suggestions.list`)){this.sessionSuggestions=[],this.sessionSuggestionRole=void 0,this.requestUpdate();return}let i=n.state.sessionKey;try{let r=await n.client.request(`session.suggestions.list`,{sessionKey:i,...R(n.state,i)});if(!this.isConnectionScopeCurrent(n)||n.state.sessionKey!==i||e!==this.sessionSuggestionsRequestVersion||t!==this.sessionSuggestionTargetSignature)return;this.sessionSuggestions=r.suggestions,this.sessionSuggestionRole=r.role,this.requestUpdate()}catch{e===this.sessionSuggestionsRequestVersion&&t===this.sessionSuggestionTargetSignature&&(this.sessionSuggestions=[],this.sessionSuggestionRole=void 0,this.requestUpdate())}}handleSessionSuggestionEvent(e){if(!this.hasMultipleIdentities()||!this.suggestionMatchesCurrentSession(e.suggestion))return;let t=this.sessionSuggestionsRefreshPromise!==void 0||this.sessionSuggestionRole!==void 0;this.sessionSuggestionsRequestVersion+=1;let n=this.context.gateway.snapshot.selfUser?.id;(this.sessionSuggestionRole!==`viewer`||e.suggestion.author.id===n)&&(this.sessionSuggestions=e.action===`added`?[...this.sessionSuggestions.filter(t=>t.id!==e.suggestion.id),e.suggestion].toSorted((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id)):e.suggestion.author.id===n?this.sessionSuggestions.map(t=>t.id===e.suggestion.id?e.suggestion:t):this.sessionSuggestions.filter(t=>t.id!==e.suggestion.id),this.sessionSuggestionBusyIds.delete(e.suggestion.id),this.requestUpdate(),t&&this.refreshSessionSuggestions())}async addCurrentSessionSuggestion(){let e=this.captureConnectionScope(),t=e?.state.chatMessage??``;if(!e||!t.trim()||this.sessionSuggestionAddOperation||!this.hasMultipleIdentities())return;if(e.state.chatAttachments.length>0){e.state.chatError=G(`chat.sessionSuggestions.attachmentsUnsupported`),e.state.lastError=e.state.chatError,e.state.requestUpdate?.();return}let n=e.state.sessionKey,r=Symbol(`session-suggestion-add`);this.sessionSuggestionAddOperation=r,this.requestUpdate();try{let i=await e.client.request(`session.suggestions.add`,{sessionKey:n,text:t,...R(e.state,n)});if(this.sessionSuggestionAddOperation!==r||!this.isConnectionScopeCurrent(e)||e.state.sessionKey!==n)return;e.state.chatMessage===t&&e.state.handleChatDraftChange(``),this.sessionSuggestions=[...this.sessionSuggestions.filter(e=>e.id!==i.suggestion.id),i.suggestion]}catch(t){this.sessionSuggestionAddOperation===r&&this.isConnectionScopeCurrent(e)&&(e.state.chatError=P(t),e.state.lastError=e.state.chatError)}finally{this.sessionSuggestionAddOperation===r&&(this.sessionSuggestionAddOperation=void 0,this.requestUpdate())}}async resolveCurrentSessionSuggestion(e,t){let n=this.captureConnectionScope();if(!n||this.sessionSuggestionBusyIds.has(e.id)||t===`edit`&&this.sessionSuggestionEditOperation!==void 0||!this.suggestionMatchesCurrentSession(e)||this.isCurrentSessionArchived(n.state)&&t!==`dismiss`)return;let r=n.state.sessionKey,i=this.sessionSuggestionTargetSignature,a=()=>this.isConnectionScopeCurrent(n)&&n.state.sessionKey===r&&this.sessionSuggestionTargetSignature===i,o=t===`edit`?n.state.chatMessage:void 0,s=t===`edit`?Symbol(`session-suggestion-edit`):void 0;s&&(this.sessionSuggestionEditOperation=s),this.sessionSuggestionBusyIds.add(e.id),t===`edit`&&(n.state.handleChatDraftChange(e.text),queueMicrotask(()=>this.querySelector(I_)?.focus({preventScroll:!0}))),this.requestUpdate();try{let i=await n.client.request(`session.suggestions.resolve`,{sessionKey:r,id:e.id,resolution:t,...R(n.state,r)});if(!a())return;this.sessionSuggestions=i.suggestion.author.id===this.context.gateway.snapshot.selfUser?.id?[...this.sessionSuggestions.filter(t=>t.id!==e.id),i.suggestion].toSorted((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id)):this.sessionSuggestions.filter(t=>t.id!==e.id)}catch(r){a()&&(t===`edit`&&r instanceof Gt&&o!==void 0&&n.state.chatMessage===e.text&&n.state.handleChatDraftChange(o),n.state.chatError=P(r),n.state.lastError=n.state.chatError)}finally{a()&&(this.sessionSuggestionEditOperation===s&&(this.sessionSuggestionEditOperation=void 0),this.sessionSuggestionBusyIds.delete(e.id),this.requestUpdate())}}clearTypingActors(){for(let e of this.typingTimers.values())window.clearTimeout(e);this.typingTimers.clear(),this.typingActors.clear()}handleSessionTypingEvent(e){let t=this.context.gateway.snapshot.selfUser?.id,n=this.state,r=n?Sx(n):void 0;if(!this.hasMultipleIdentities()||e.actor.id===t||!n||r?.sessionId!==e.sessionId||!ee({agentsList:this.context.agents.state.agentsList,hello:this.context.gateway.snapshot.hello,sessionKey:n.sessionKey},e.sessionKey,e.agentId))return;let i=this.typingTimers.get(e.actor.id);if(i!==void 0&&(window.clearTimeout(i),this.typingTimers.delete(e.actor.id)),!e.typing){this.typingActors.delete(e.actor.id),this.requestUpdate();return}let a=Date.now()+2500;this.typingActors.set(e.actor.id,{label:e.actor.label??e.actor.id,expiresAt:a,...e.preview?{preview:e.preview}:{}}),this.typingTimers.set(e.actor.id,window.setTimeout(()=>{this.typingActors.get(e.actor.id)?.expiresAt===a&&(this.typingActors.delete(e.actor.id),this.typingTimers.delete(e.actor.id),this.requestUpdate())},2500)),this.requestUpdate()}clearTypingActorForSessionMessage(e){let t=this.state;t&&Uw(e,this.typingActors,this.typingTimers,{agentsList:this.context.agents.state.agentsList,hello:this.context.gateway.snapshot.hello,sessionKey:t.sessionKey})&&this.requestUpdate()}typingActorViews(){return[...this.typingActors].map(([e,{label:t,preview:n}])=>n?{id:e,label:t,preview:n}:{id:e,label:t}).toSorted((e,t)=>e.label.localeCompare(t.label))}sendTypingState(e,t){let n=this.captureConnectionScope();if(!n||!this.hasMultipleIdentities())return;let r=n.state.sessionKey,i=Sx(n.state)?.sessionId;if(!i)return;let a=e?t?.trim():void 0,o=a?Array.from(a).slice(-300).join(``):void 0;n.client.request(`session.typing`,{sessionKey:r,sessionId:i,typing:e,...o?{preview:o}:{},...R(n.state,r)}).catch(()=>void 0)}}})))()}var Yw;function Xw(){return(Xw=e((()=>{ur(),$t(),U(),I(),hr(),Ct(),Nu(),Jw(),Tx(),Yw=class extends qw{constructor(...e){super(...e),this.taskSuggestions=[],this.taskSuggestionBusyIds=new Set,this.taskSuggestionCopiedIds=new Set,this.taskSuggestionOperations=new Map,this.taskSuggestionsRequestVersion=0,this.taskSuggestionCloudProfiles=[],this.taskSuggestionCloudProfileGeneration=-1,this.taskSuggestionSwapGeneration=0,this.navigateTaskSuggestion=(e,t)=>{let n=this.taskSuggestions.findIndex(t=>t.id===e);if(n<0||this.taskSuggestions.length<2)return;let r=t===`next`?1:-1,i=this.taskSuggestions[(n+r+this.taskSuggestions.length)%this.taskSuggestions.length];i&&(this.activeTaskSuggestionId=i.id,this.taskSuggestionSwapDirection=t,this.taskSuggestionSwapGeneration+=1,this.requestUpdate(),this.updateComplete.then(()=>{[...this.querySelectorAll(`.task-suggestion`)].find(e=>e.dataset.taskId===i.id)?.querySelector(`[data-task-${t===`next`?`next`:`prev`}]`)?.focus()}))},this.acceptTaskSuggestion=(e,t,n)=>this.resolveTaskSuggestion(e,`accept`,t,n),this.dismissTaskSuggestion=e=>this.resolveTaskSuggestion(e,`dismiss`),this.copyTaskSuggestionPrompt=async e=>{let t=await at(e.prompt);if(this.isConnected){if(!t){let e=G(`chat.taskSuggestions.copyPromptFailed`);this.state&&(this.state.lastError=e,this.state.chatError=e),this.requestUpdate();return}this.taskSuggestionCopiedIds.add(e.id),this.requestUpdate(),setTimeout(()=>{this.taskSuggestionCopiedIds.delete(e.id),this.isConnected&&this.requestUpdate()},2e3)}}}setTaskSuggestions(e){this.taskSuggestions=e,e.some(e=>e.id===this.activeTaskSuggestionId)||(this.activeTaskSuggestionId=e[0]?.id,this.taskSuggestionSwapDirection=void 0)}resetTaskSuggestionCloudProfiles(){this.taskSuggestionCloudProfiles=[],this.taskSuggestionCloudProfileGeneration=-1}async ensureTaskSuggestionCloudProfiles(){let e=this.captureConnectionScope();if(!(!e||this.taskSuggestions.length===0||this.taskSuggestionCloudProfileGeneration===e.generation||!ln(e.context.gateway.snapshot.hello?.auth??null)||K(e.context.gateway.snapshot,`taskSuggestions.accept`)!==!0)&&(this.taskSuggestionCloudProfileGeneration=e.generation,K(e.context.gateway.snapshot,`environments.list`)===!0))try{let{profiles:t}=await Ml(e.client,!0,!0);if(!this.isConnectionScopeCurrent(e))return;this.taskSuggestionCloudProfiles=t.map(e=>({id:e.id})),this.requestUpdate()}catch{}}async refreshTaskSuggestions(){let e=++this.taskSuggestionsRequestVersion,t=this.captureConnectionScope();if(!t||!K(t.context.gateway.snapshot,`taskSuggestions.list`)){this.setTaskSuggestions([]),this.requestUpdate();return}let n=t.state.sessionKey;if(Be(n)){this.setTaskSuggestions([]),this.requestUpdate();return}let r=X(t.state);try{let i=await t.client.request(`taskSuggestions.list`,{agentId:r});if(e!==this.taskSuggestionsRequestVersion||!this.isConnectionScopeCurrent(t)||n!==t.state.sessionKey)return;this.setTaskSuggestions(i.suggestions.filter(e=>this.suggestionMatchesCurrentSession(e))),this.requestUpdate()}catch{}}handleTaskSuggestionEvent(e){if(e.action===`created`){if(!this.suggestionMatchesCurrentSession(e.suggestion))return;this.setTaskSuggestions([e.suggestion,...this.taskSuggestions.filter(t=>t.id!==e.suggestion.id)])}else this.setTaskSuggestions(this.taskSuggestions.filter(t=>t.id!==e.taskId)),this.taskSuggestionBusyIds.delete(e.taskId);this.requestUpdate(),this.refreshTaskSuggestions()}suggestionChatProps(e,t,n){let r=this.context.gateway.snapshot,i=r.hello?.auth??null,a=e&&Sn(i),o=e&&ln(i);return{taskSuggestions:this.taskSuggestions,activeTaskSuggestionId:this.activeTaskSuggestionId,taskSuggestionSwapDirection:this.taskSuggestionSwapDirection,taskSuggestionSwapGeneration:this.taskSuggestionSwapGeneration,onNavigateTaskSuggestion:this.navigateTaskSuggestion,taskSuggestionBusyIds:this.taskSuggestionBusyIds,sessionSuggestions:n?this.sessionSuggestions:[],sessionSuggestionRole:this.sessionSuggestionRole,sessionSuggestionBusyIds:this.sessionSuggestionBusyIds,sessionSuggestionsArchived:t,canResolveSessionSuggestions:a&&K(r,`session.suggestions.resolve`)===!0,onResolveSessionSuggestion:this.resolveCurrentSessionSuggestion.bind(this),canAcceptTaskSuggestions:o&&K(r,`taskSuggestions.accept`)===!0,canAcceptTaskSuggestionModes:mr(r,dr.TASK_SUGGESTIONS_ACCEPT_MODES)===!0,canDismissTaskSuggestions:a&&K(r,`taskSuggestions.dismiss`)===!0,taskSuggestionCloudProfiles:this.taskSuggestionCloudProfiles,taskSuggestionCopiedIds:this.taskSuggestionCopiedIds,onCopyTaskSuggestionPrompt:this.copyTaskSuggestionPrompt,onAcceptTaskSuggestion:this.acceptTaskSuggestion,onDismissTaskSuggestion:this.dismissTaskSuggestion}}async resolveTaskSuggestion(e,t,n=`worktree`,r){let i=this.captureConnectionScope();if(!i||!this.suggestionMatchesCurrentSession(e)||this.taskSuggestionOperations.has(e.id))return;let a=i.state.sessionKey,o=Symbol(`task-suggestion-operation`),s=()=>this.isConnectionScopeCurrent(i)&&i.state.sessionKey===a&&this.taskSuggestionOperations.get(e.id)===o;this.taskSuggestionOperations.set(e.id,o),this.taskSuggestionBusyIds.add(e.id),this.requestUpdate();try{let a;if(t===`accept`?a=(await i.client.request(`taskSuggestions.accept`,Ao(e.id,n,r))).key:await i.client.request(`taskSuggestions.dismiss`,{taskId:e.id}),!s())return;this.setTaskSuggestions(this.taskSuggestions.filter(t=>t.id!==e.id)),a&&n!==`session`&&this.onPaneSessionChange?.(this.paneId,a)}catch(e){if(!s())return;i.state.lastError=P(e),i.state.chatError=i.state.lastError}finally{this.taskSuggestionOperations.get(e.id)===o&&(this.taskSuggestionOperations.delete(e.id),this.taskSuggestionBusyIds.delete(e.id),this.isConnectionScopeCurrent(i)&&i.state.sessionKey===a&&this.requestUpdate())}}}})))()}var Zw;function Qw(){return(Qw=e((()=>{g(),nn(),I(),Et(),hr(),w(),ea(),Ct(),A(),N(),j(),jf(),Q(),z_(),Xw(),Tx(),hs(),cu(),Zw=class extends Yw{constructor(...e){super(...e),this.deferredSessionHydrationActive=!1,this.pendingDeferredSessionHydration=null,this.dismissSessionPullRequest=e=>{let t=this.state?.sessionKey;t&&(this.dismissedSessionPullRequestIds=qs(t,e),this.requestUpdate())}}async refreshSessionPullRequests(e={}){if(!this.presented){Di(this.context.gateway).unwatch(this);return}let t=this.captureConnectionScope();if(!t||!K(t.context.gateway.snapshot,`controlUi.sessionPullRequests.subscribe`)){t&&Di(t.context.gateway).unwatch(this),this.sessionPullRequests=[],this.sessionPullRequestsBranch=void 0,this.githubPublicationResult=null,this.githubPublicationError=null,this.githubPublicationIdempotencyKey=null,this.githubPublicationBusy=!1,this.sessionPullRequestsRateLimited=!1,this.requestUpdate();return}let n=t.state.sessionKey;if(!n.trim()||Be(n)){Di(t.context.gateway).unwatch(this),this.sessionPullRequests=[],this.sessionPullRequestsBranch=void 0,this.sessionPullRequestsRateLimited=!1,this.requestUpdate();return}let r=t.context.sessions.capturePullRequestEpoch(n),i=Di(t.context.gateway),a=Io(n,R(t.state,n).agentId??X(t.state));i.watch(this,[a],{foreground:!0}),e.refresh&&i.refresh(a);let o=i.get(a);if(!this.isConnectionScopeCurrent(t)||n!==t.state.sessionKey)return;if(!o){(this.sessionPullRequests.length>0||this.sessionPullRequestsBranch!==void 0)&&t.context.sessions.setPullRequestSummary(n,void 0,r),this.sessionPullRequests=[],this.sessionPullRequestsBranch=void 0,this.sessionPullRequestsRateLimited=!1,this.dismissedSessionPullRequestIds=new Set,this.requestUpdate();return}if(o.status===`unavailable`)return;if(this.sessionPullRequests=o.pullRequests,!o.rateLimited||o.pullRequests.length>0){let e=t.context.sessions.pullRequestSummary(n);t.context.sessions.setPullRequestSummary(n,Tr(o.pullRequests,e),r)}let s=this.githubPublicationResult?.status===`published`?this.githubPublicationResult:void 0,c=s?o.pullRequests.find(e=>e.url===s.url):void 0;o.branch&&s&&(o.branch.branch!==s.branch||c&&c.state!==`open`&&c.state!==`draft`)&&(this.githubPublicationResult=null,this.githubPublicationError=null,this.githubPublicationIdempotencyKey=null),this.sessionPullRequestsBranch=o.branch,this.sessionPullRequestsRateLimited=o.rateLimited,this.dismissedSessionPullRequestIds=ws(n),this.requestUpdate()}resetSessionPullRequests(){this.githubPublicationRequestVersion+=1,Di(this.context.gateway).unwatch(this),this.sessionPullRequests=[],this.sessionPullRequestsBranch=void 0,this.sessionPullRequestsRateLimited=!1,this.sessionPullRequestsExpanded=!1,this.githubPublicationResult=null,this.githubPublicationError=null,this.githubPublicationIdempotencyKey=null,this.githubPublicationBusy=!1,this.dismissedSessionPullRequestIds=new Set}deferSessionHydrationUntilTranscript(e,t){let n=this.state;if(!n)return;this.deferredSessionHydrationActive=!0,this.pendingDeferredSessionHydration=null;let r=++this.deferredSessionHydrationRequestVersion,i=this.connectionGeneration,a=n.client,o=()=>{this.deferredSessionHydrationRequestVersion===r&&(this.deferredSessionHydrationActive=!1,this.pendingDeferredSessionHydration=null)},s=()=>this.deferredSessionHydrationRequestVersion===r&&this.connectionGeneration===i&&this.state===n&&n.connected&&n.client===a&&n.sessionKey===e,c=t=>{if(!s()){o();return}if(!this.presented){this.pendingDeferredSessionHydration=()=>c(t);return}this.pendingDeferredSessionHydration=null,n.renderLifecycle.afterCommit(r=>{s()&&this.presented?(this.deferredSessionHydrationActive=!1,t&&this.markSessionRead(Sx(n)),wb(n),this.probeSessionDiscussion(e),this.hydrateSessionCompanion(e),this.refreshSessionPullRequests()):s()?this.pendingDeferredSessionHydration=()=>c(t):o(),r()})};t.then(c,()=>c(!1))}resumeDeferredSessionHydration(){let e=this.pendingDeferredSessionHydration;return this.pendingDeferredSessionHydration=null,e?.(),this.deferredSessionHydrationActive}retireDeferredSessionHydration(){this.deferredSessionHydrationRequestVersion+=1,this.deferredSessionHydrationActive=!1,this.pendingDeferredSessionHydration=null}markSessionRead(e){let t=this.state;if(!t?.connected||!e)return;let n=e.endedAt??e.updatedAt??0,r=(e.status===`failed`||e.status===`timeout`)&&(e.lastReadAt==null||n>e.lastReadAt),i=!!(e.agentStatus&&e.agentStatus.expiresAt>Date.now());if(!(e.unread===!0||r||i)){this.unreadPatchGuard.shouldPatch(t.sessionKey,!1,e.markedUnreadAt);return}let a=E(e.key)?.agentId??X(t);if(!M(this.context.gateway.snapshot,{method:`sessions.patch`,params:{key:e.key,unread:!1,agentId:a}}).allowed||!this.unreadPatchGuard.shouldPatch(t.sessionKey,!0,e.markedUnreadAt))return;let o=t.sessionKey;this.context.sessions.patch(e.key,{unread:!1},{agentId:a,expectedMarkedUnreadAt:e.markedUnreadAt??null}).then(e=>{e===null&&this.unreadPatchGuard.patchFailed(o)},()=>{this.unreadPatchGuard.patchFailed(o)})}async restoreArchivedSession(e,t){let n=this.captureConnectionScope();if(!n||n.state.sessionKey!==e)return;let r=M(n.context.gateway.snapshot,{method:`sessions.patch`,params:{key:e,archived:!1}});if(!r.allowed){n.state.lastError=r.reason,n.state.chatError=r.reason,n.state.requestUpdate?.();return}let i=E(e)?.agentId??X(n.state),a=null;try{await n.sessions.patch(e,{archived:!1},{agentId:i,expectedSessionId:t})||(a=n.sessions.state.error)}catch(e){a=P(e)}a&&this.isConnectionScopeCurrent(n)&&n.state.sessionKey===e&&(n.state.lastError=a,n.state.chatError=a,n.state.requestUpdate?.())}setPaneSessionKey(e){let t=this.state;if(!t)return null;let n=Be(e)?e:ze(e,this.context.gateway.snapshot.hello);return n?(t.sessionKey=n,n):null}applyActiveSessionBindings(){let e=this.state;if(!e||!this.active||!this.presented||!this.sessionKey.trim()||Be(e.sessionKey))return;let t=e.sessionKey;Cx(e,t),gn({selection:this.context.agentSelection,gateway:this.context.gateway,sessionKey:t})}openCatalogSession(e,t){this.catalogRequestedSessionKey=this.sessionKey,this.catalogMessages=[],this.catalogCursor=void 0,this.catalogSession=null,this.catalogHost=null,de(t.chatAttachments),t.chatAttachments=[],t.chatLoading=!0,t.requestUpdate(),this.loadCatalogSession(e,!1)}catalogItemMessage(e){let t=u(e.timestamp)??null,n=e.text?.trim()?e.text:null;if(e.type===`userMessage`)return n?{role:`user`,content:n,...t==null?{}:{timestamp:t},messageId:e.id}:null;let r=n;if(e.type===`reasoning`)r=n?`Thinking\n\n${n}`:`Thinking`;else if(e.type===`toolCall`){let t=n??w_(e.raw,[`command`,`name`,`tool`,`title`,`query`]);r=t?`Tool call\n\n${t}`:`Tool call`}else if(e.type===`toolResult`){let t=w_(e.raw,[`aggregatedOutput`]),i=n??(t?rt(t,500):null)??T_(e.raw);r=i?`Tool result\n\n${i}`:`Tool result`}return r?{role:`assistant`,content:[{type:`text`,text:r}],...t==null?{}:{timestamp:t},messageId:e.id}:null}prependUniqueCatalogMessages(e){let t=new Set(this.catalogMessages.map(If).filter(Boolean));return[...e.filter(e=>{let n=If(e);return!n||!t.has(n)?(n&&t.add(n),!0):!1}),...this.catalogMessages]}prependUniqueNativeMessages(e,t){let n=new Map;for(let e of t){let t=E_(e);t&&n.set(t,(n.get(t)??0)+1)}return[...e.filter(e=>{let t=E_(e);if(!t)return!0;let r=n.get(t)??0;return r===0||(n.set(t,r-1),!1)}),...t]}async loadCatalogSession(e,t){let n=this.state,r=n?.client;if(!n||!r||!n.connected||t&&!this.catalogCursor)return!1;let i=X(n),a=t?this.catalogLoadGeneration:++this.catalogLoadGeneration,o=this.sessionKey,s=()=>a===this.catalogLoadGeneration&&this.sessionKey===o&&X(n)===i;t||(this.catalogLoading=!0,this.catalogCursor=void 0,this.olderCursorsSeen.clear(),this.historyObserverArmed=!1,this.transcriptScrollTop=null,this.historyObserver?.disconnect(),this.historyObserver=null);try{if(!t){let t=await jt({agentId:i,client:r,key:e,isCurrent:s});if(!t)return!1;this.catalogHost=t.host,this.catalogSession=t.session}let a=t?this.catalogCursor:void 0;a&&this.olderCursorsSeen.add(a);let o=await r.request(`sessions.catalog.read`,{agentId:i,catalogId:e.catalogId,hostId:e.hostId,threadId:e.threadId,...this.catalogSession?.sourceHomeId?{sourceHomeId:this.catalogSession.sourceHomeId}:{},limit:50,...t&&this.catalogCursor?{cursor:this.catalogCursor}:{}});if(!s())return!1;let c=o.items.toReversed().map(e=>this.catalogItemMessage(e)).filter(e=>e!==null),l=t?this.prependUniqueCatalogMessages(c):c,u=l.length>this.catalogMessages.length,d=t&&(!o.nextCursor||o.nextCursor===a||this.olderCursorsSeen.has(o.nextCursor));this.catalogMessages=l,this.catalogCursor=d?void 0:o.nextCursor;let f=this.state??n;return f.lastError=null,Kl(f,!t),!t||u||!d}catch(e){return s()&&((this.state??n).lastError=P(e)),!1}finally{if(s()){let e=this.state??n;t||(this.catalogLoading=!1,e.chatLoading=!1),t||e.requestUpdate()}}}}})))()}var $w;function eT(){return(eT=e((()=>{U(),Ct(),A(),N(),Qw(),f_(),$w=class extends Zw{constructor(...e){super(...e),this.activeReplyNavigation=null,this.replyNavigationSessionKey=null,this.replyNavigationId=null,this.replyMessageRevision=0,this.replyMessages=new Map,this.readReplyMessage=e=>{let t=this.state;if(!t)return;let n=this.replyMessages.get(this.replyMessageCacheKey(t.sessionKey,e));return n?.client===t.client&&n.generation===this.connectionGeneration?n.message:void 0},this.requestReplyMessage=e=>{this.loadReplyMessage(e)},this.openReplyMessage=e=>{this.navigateToReplyMessage(e)}}replyMessageCacheKey(e,t){let n=this.state;return`${e}\u0000${(n?R(n,e).agentId:void 0)??``}\u0000${t}`}async loadReplyMessage(e){let t=this.captureConnectionScope();if(!t||Be(t.state.sessionKey))return;let n=t.state.sessionKey,r=R(t.state,n).agentId,i=this.replyMessageCacheKey(n,e),a=this.replyMessages.get(i);if(a?.client===t.client&&a.generation===t.generation)return;for(;this.replyMessages.size>=256;)this.replyMessages.delete(this.replyMessages.keys().next().value);let o={client:t.client,generation:t.generation};this.replyMessages.set(i,o);let s;try{s=await t.client.request(`chat.message.get`,{sessionKey:n,...r?{agentId:r}:{},messageId:e,maxChars:500})}catch{return}!this.isConnectionScopeCurrent(t)||this.replyMessages.get(i)!==o||!s.ok||!s.message||(this.replyMessages.set(i,{...o,message:s.message}),this.replyMessageRevision+=1,F(t.state.sessionKey,n)&&this.requestUpdate())}replyNavigationIsCurrent(e,t,n,r){return this.activeReplyNavigation===e&&this.state===t&&F(t.sessionKey,n)&&(!r||t.currentSessionId===r)}currentReplyNavigationId(e){return this.replyNavigationSessionKey&&F(this.replyNavigationSessionKey,e)?this.replyNavigationId:null}currentReplyMessageAccess(e){return{revision:this.replyMessageRevision,navigationId:this.currentReplyNavigationId(e),read:this.readReplyMessage,request:this.requestReplyMessage,open:this.openReplyMessage}}resetReplyNavigation(){this.activeReplyNavigation=null,this.replyNavigationSessionKey=null,this.replyNavigationId=null}async navigateToReplyMessage(e){let t=this.state;if(!t||Be(t.sessionKey))return;let n=t.sessionKey,r=t.currentSessionId?.trim()??``,i=Symbol(`reply-navigation`);this.activeReplyNavigation=i,this.replyNavigationSessionKey=n,this.replyNavigationId=e,this.requestUpdate();try{for(;!t.chatMessages.some(t=>uh(t)===e);){if(!this.replyNavigationIsCurrent(i,t,n,r))return;if(!t.chatHistoryPagination.hasMore){this.replyNavigationIsCurrent(i,t,n,r)&&(t.lastError=G(`chat.messages.originalUnavailable`),t.requestUpdate?.());return}let e=await this.loadOlderMessages();if(!this.replyNavigationIsCurrent(i,t,n,r))return;if(!e){!t.chatHistoryPagination.hasMore&&!t.lastError&&(t.lastError=G(`chat.messages.originalUnavailable`),t.requestUpdate?.());return}}if(!this.replyNavigationIsCurrent(i,t,n,r))return;this.requestUpdate(),await this.updateComplete,this.replyNavigationIsCurrent(i,t,n,r)&&this.transcript.revealMessage(e)}finally{this.activeReplyNavigation===i&&(this.resetReplyNavigation(),this.requestUpdate())}}}})))()}var tT;function nT(){return(nT=e((()=>{Jn(),I(),Ct(),A(),N(),j(),Q(),eT(),z_(),Tx(),cs(),cu(),tT=class extends $w{constructor(...e){super(...e),this.activeCatalogContinuation=null,this.activeOlderLoad=null,this.stagedOlderPage=null,this.stagedOlderLoad=null,this.stagedOlderGeneration=0,this.handleCommandPaletteSlashCommand=e=>{let t=this.state;t&&(t.handleChatDraftChange(e.endsWith(` `)?e:`${e} `),t.requestUpdate?.())}}hasOlderMessages(){let e=this.state;return e?Be(e.sessionKey)?!!(this.catalogCursor&&!this.catalogLoading):e.chatHistoryPagination.hasMore&&!e.chatLoading:!1}resetOlderMessagesViewport(){this.olderLoadGeneration+=1,this.activeOlderLoad=null,this.stagedOlderGeneration+=1,this.stagedOlderPage=null,this.stagedOlderLoad=null,this.resetReplyNavigation(),this.loadingOlder=!1,this.historyObserverArmed=!1,this.historyAutoLoadBlocked=!1,this.historyIntentConsumed=!1,this.historyTouchY=null,this.historyIntentTimer!==null&&(window.clearTimeout(this.historyIntentTimer),this.historyIntentTimer=null),this.transcriptScrollTop=null,this.olderCursorsSeen.clear(),this.clearHistoryObserver()}clearHistoryObserver(){this.historyObserver?.disconnect(),this.historyObserver=null,this.historyObserverRoot=null,this.historyObserverSentinel=null,this.historyObserverBootstrap=!1}syncHistoryObserver(){if((this.state&&Be(this.state.sessionKey)?this.catalogLoading:this.state?.chatLoading)&&(this.historyObserverArmed=!1,this.loadingOlder&&=(this.olderLoadGeneration+=1,!1)),typeof IntersectionObserver!=`function`||!this.presented||!this.state?.connected||this.loadingOlder||!this.hasOlderMessages()){this.clearHistoryObserver();return}let e=this.transcript.scrollElement,t=e?.querySelector(`.chat-history-sentinel`)??null;if(!e||!t){this.clearHistoryObserver();return}this.transcriptScrollTop??=e.scrollTop;let n=e.scrollHeight>e.clientHeight,r=!this.historyObserverArmed&&!n;if(this.historyAutoLoadBlocked){this.clearHistoryObserver();return}if(!this.historyObserverArmed&&!r){this.clearHistoryObserver(),n||(this.historyAutoLoadBlocked=!0,this.requestUpdate());return}this.historyObserver&&this.historyObserverRoot===e&&this.historyObserverSentinel===t&&this.historyObserverBootstrap===r||(this.clearHistoryObserver(),this.historyObserver=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(this.historyObserverArmed=!1,this.loadOlderMessages())},{root:e,rootMargin:`${M_}px 0px 0px`,threshold:0}),this.historyObserverRoot=e,this.historyObserverSentinel=t,this.historyObserverBootstrap=r,this.historyObserver.observe(t))}handleTranscriptScroll(e){let t=e.currentTarget instanceof HTMLElement?e.currentTarget:e.target instanceof HTMLElement?e.target:null,n=this.transcriptScrollTop;if(t){this.transcriptScrollTop=t.scrollTop;let e=this.transcript.renderedSessionKey,n=this.state?.sessionKey;e&&n&&F(e,n)&&yu(this.presentationId,e,gu(t))}let r=!this.loadingOlder&&t!==null&&n!==null&&t.scrollTop<n&&t.scrollTop<=1200&&this.consumeHistoryIntent();r&&this.historyAutoLoadBlocked?(this.historyAutoLoadBlocked=!1,this.historyObserverArmed=!0,this.syncHistoryObserver()):r&&!this.historyObserverArmed&&(this.historyObserverArmed=!0,this.syncHistoryObserver()),this.state?.handleChatScroll(e)}consumeHistoryIntent(){return this.historyIntentTimer!==null&&window.clearTimeout(this.historyIntentTimer),this.historyIntentTimer=window.setTimeout(()=>{this.historyIntentTimer=null,this.historyIntentConsumed=!1},200),!this.historyIntentConsumed&&(this.historyIntentConsumed=!0,!0)}handleTranscriptHistoryIntent(e){let t=e.currentTarget instanceof HTMLElement?e.currentTarget:null,n=e instanceof WheelEvent&&e.deltaY<0||e instanceof KeyboardEvent&&N_.has(e.key);if(typeof TouchEvent<`u`&&e instanceof TouchEvent){let t=e.touches[0]?.clientY??null;if(e.type===`touchstart`){this.historyTouchY=t;return}if(e.type===`touchend`||e.type===`touchcancel`){this.historyTouchY=null;return}let r=this.historyTouchY;t!==null&&r!==null&&(n=t-r>=8,(n||t<r)&&(this.historyTouchY=t))}if(!(!t||!n||t.scrollTop>1200||this.loadingOlder||!this.hasOlderMessages()||!this.consumeHistoryIntent())){if(this.historyAutoLoadBlocked=!1,typeof IntersectionObserver!=`function`){this.loadOlderMessages();return}this.historyObserverArmed=!0,this.syncHistoryObserver()}}async showEarlierMessages(){let e=this.state,t=this.transcript.scrollElement;if(!e||!t)return;let n=e.sessionKey,r=()=>this.state===e&&F(e.sessionKey,n);!await this.loadOlderMessages()||!r()||(await this.updateComplete,r()&&(this.transcriptScrollTop=0,this.historyObserverArmed=!1,this.historyAutoLoadBlocked=this.hasOlderMessages(),this.clearHistoryObserver(),this.transcript.scrollToOffset(0)))}async loadOlderMessages(){if(this.activeOlderLoad)return this.activeOlderLoad;let e=this.performOlderMessagesLoad();this.activeOlderLoad=e;try{return await e}finally{this.activeOlderLoad===e&&(this.activeOlderLoad=null)}}async performOlderMessagesLoad(){let e=this.state,t=e?Be(e.sessionKey):null;if(!e||this.loadingOlder||!this.hasOlderMessages())return!1;let n=++this.olderLoadGeneration,r=()=>{this.loadingOlder||(this.loadingOlder=!0,e.requestUpdate())},i=!1;try{if(t)r(),i=await this.loadCatalogSession(t,!0);else{let t=e.chatHistoryPagination;if(!t.hasMore)return!1;let a=t.nextOffset,o=typeof e.currentSessionId==`string`?e.currentSessionId.trim():``,s=this.takeStagedOlderPage(e);if(!s&&this.stagedOlderLoad){if(r(),await this.stagedOlderLoad,n!==this.olderLoadGeneration)return!1;s=this.takeStagedOlderPage(e)}if(s||=(r(),await Ob(e,a)??null),!s||n!==this.olderLoadGeneration)return!1;let c=typeof s.sessionInfo?.sessionId==`string`&&s.sessionInfo.sessionId.trim()?s.sessionInfo.sessionId.trim():typeof s.sessionId==`string`?s.sessionId.trim():``;if(o&&c!==o)return await Z(e),i=!0,!0;let l=Yy(s),u=!l.hasMore||l.nextOffset<=a,d=Array.isArray(s.messages)?s.messages:[],f=this.prependUniqueNativeMessages(d,e.chatMessages),p=f.length>e.chatMessages.length;e.chatMessages=f,e.chatHistoryPagination=u?{hasMore:!1,...l.totalMessages===void 0?{}:{totalMessages:l.totalMessages}}:l,e.lastError=null,mb(e),Kl(e,!1),i=p||!u,u||this.stageNextOlderPage(e)}}catch(t){n===this.olderLoadGeneration&&(e.lastError=P(t),this.transcriptScrollTop=this.transcript.scrollElement?.scrollTop??null)}finally{n===this.olderLoadGeneration&&(i?this.hasOlderMessages()||(this.historyAutoLoadBlocked=!1):this.historyAutoLoadBlocked=this.hasOlderMessages(),this.loadingOlder=!1,e.requestUpdate())}return i}stageNextOlderPage(e){if(this.stagedOlderPage||this.stagedOlderLoad)return;let t=e.chatHistoryPagination;if(!t.hasMore||Be(e.sessionKey))return;let n=this.stagedOlderGeneration;this.stagedOlderLoad=(async()=>{try{let r=await kb(e,t.nextOffset);r&&n===this.stagedOlderGeneration&&this.state===e&&(this.stagedOlderPage=r)}catch{}finally{n===this.stagedOlderGeneration&&(this.stagedOlderLoad=null)}})()}takeStagedOlderPage(e){let t=this.stagedOlderPage;return t?(this.stagedOlderPage=null,Ab(e,t)?t.result:null):null}async continueCatalogSession(e){let t=this.captureConnectionScope(),n=t?.state,r=t?.client,i=n?.chatMessage.trim()??``;if(!t||!n||!r||!this.catalogSession?.canContinue)return;let a=ae(n.chatAttachments);if(!i&&a.length===0)return;let o=n.sessionKey,s=X(n),c=this.catalogLoadGeneration,l=Symbol(`catalog-continuation`);this.activeCatalogContinuation=l,n.chatSending=!0,n.requestUpdate();let u=()=>{this.activeCatalogContinuation===l&&(this.activeCatalogContinuation=null,!(n.chatSendingScopeKey!=null||!n.chatSending)&&(n.chatSending=!1,n.requestUpdate()))};try{let d=await r.request(`sessions.catalog.continue`,{...e,agentId:s,...this.catalogSession.sourceHomeId?{sourceHomeId:this.catalogSession.sourceHomeId}:{}});if(this.activeCatalogContinuation!==l||!this.isConnectionScopeCurrent(t)||this.catalogLoadGeneration!==c||n.sessionKey!==o||X(n)!==s){u();return}if(y_(this.context,this.paneId,d.sessionKey,{attachments:a,draft:i,send:!0}),this.onPaneSessionChange?.(this.paneId,d.sessionKey)===!1){x_(this.context,this.paneId,d.sessionKey),u();return}Xe({...e,agentId:s,sessionKey:d.sessionKey}),this.activeCatalogContinuation=null,n.chatSending=!1,n.requestUpdate()}catch(e){if(this.activeCatalogContinuation!==l||!this.isConnectionScopeCurrent(t)||this.catalogLoadGeneration!==c||n.sessionKey!==o||X(n)!==s){u();return}this.activeCatalogContinuation=null,n.lastError=P(e),n.chatSending=!1,n.requestUpdate()}}async rewindToMessage(e){let t=this.state;return t?await xb(t,e)?(t.requestUpdate?.(),!0):(t.requestUpdate?.(),!1):!1}async forkFromMessage(e){let t=this.captureConnectionScope();if(!t)return;let n=t.state,r=n.sessionKey,i=R(n,r);try{let a=await n.sessions.forkAtMessage(r,e,i),o=a.editorText??``;if(!this.ownsHeaderOutcomeScope(t)||!L(n,r,i.agentId)||this.onPaneSessionChange?.(this.paneId,a.sessionKey)===!1)return;Hs(n,a.sessionKey,{agentId:E(a.sessionKey)?.agentId,draft:o}),y_(this.context,this.paneId,a.sessionKey,{attachments:Oe([],a.editorAttachments),draft:o})}catch(e){if(!this.ownsHeaderOutcomeScope(t)||!L(n,r,i.agentId))return;n.lastError=P(e),n.chatError=n.lastError,n.requestUpdate?.()}}async switchToBranch(e){let t=this.state;t&&(await Sb(t,e),t.requestUpdate?.())}announceCommandPaletteTarget(e){this.dispatchEvent(new CustomEvent(Yn,{bubbles:!0,composed:!0,detail:{owner:this,onSlashCommand:e}}))}}})))()}var rT;function iT(){return(iT=e((()=>{It(),Bt(),ur(),$t(),Kt(),U(),ci(),xt(),hr(),A(),N(),Lf(),nT(),z_(),ss(),Hu(),o(),rT=class extends tT{commitSidebarLayout(e){let t=this.resolveBoardView();t.hasBoard&&t.face===`dashboard`&&t.provider.canMutate&&(e.open===!0&&t.dock===`hidden`?this.handleBoardDockChange(t.reopenDock):e.open!==!0&&(t.dock===`left`||t.dock===`right`)&&this.handleBoardDockChange(`hidden`));let n=this.state;if(!n)return;let r=this.paneWidth>=680?Lu(e,this.paneWidth)??e:e;n.updateSidebarLayout(r)}commitSidebarPanelResize(e,t,n){let r=this.state;if(!r)return;let i=Bd(e,t,n),a=this.paneWidth>=680?Lu(i,this.paneWidth)??i:i,o=a.columns.find(e=>e.id===t),s=Wd(a)===`bottom`?o?.height:o?.width;if(s!==void 0&&r.sidebarLayout.columns.some(e=>e.id===t)){r.updateSidebarLayout(Bd(r.sidebarLayout,t,s));return}this.commitSidebarLayout(a)}syncChatSidebarForDock(e){let t=this.state;if(!t)return!1;if(e!==`left`&&e!==`right`)return!0;let n=t.sidebarLayout,r=ud(n,`chat`),i=r.columns.flatMap(e=>e.panels).find(e=>e.slot===`chat`);i&&(r=$l(r,i.id));let a=this.paneWidth>=680?Lu(r,this.paneWidth)??r:r;return t.updateSidebarLayout(a),i&&t.updateSidebarActivePanel(i.id),!0}resolveBoardProvider(){let e=this.resolveBoardSessionKey();if(this.boardProvider)return this.releaseBoardProviderLease(),this.boardProvider;let t=this.context?.gateway.snapshot,n=!t||K(t,`board.get`)!==!1,r=!t||Sn(t.hello?.auth??null),i=!t||un(t.hello?.auth??null),a=r&&(!t||mr(t,dr.BOARD_WIDGET_PUT_CANVAS_DOC)===!0),o=r&&(!t||K(t,`board.widget.appView`)===!0&&K(t,`board.widget.put`)===!0),s=t?.client;if(this.boardProviderLifecycleConnected&&s&&n){let n=ja(e);return this.boardProviderLease?.sessionKey===n?this.boardProviderLease.update(s,t.phase===`connected`,{canPinWidgets:a,canPinMcpApps:o,canMutate:r,canGrant:i}):(this.releaseBoardProviderLease(),this.boardProviderLease={...Or(n,s,t.phase===`connected`,a,o,r,i),sessionKey:n}),this.boardProviderLease.provider}return this.releaseBoardProviderLease(),yr(e,n)}releaseBoardProviderLease(){this.boardProviderLease?.release(),this.boardProviderLease=void 0}resolveWorkboardCardChip(e){let t=this.context?.gateway.snapshot,n=Ot(this.context?.runtimeConfig?.state.configSnapshot);if(!e.hasBoard||!n||t?.phase!==`connected`)return null;let r=t.client,i=this.state;return!r||!i?null:{active:e.face===`dashboard`&&this.visuallyPresented,basePath:i.basePath,client:r,sessionKey:this.resolveBoardSessionKey(e.snapshot.sessionKey)}}syncRetainedBoardSession(e){let t=this.resolveBoardSessionKey(e.snapshot.sessionKey);!e.hasBoard||!t?this.retainedBoardSessionKey=``:e.face===`dashboard`?this.retainedBoardSessionKey=t:this.retainedBoardSessionKey!==t&&(this.retainedBoardSessionKey=``),this.retainedBoardSessionKey===t&&this.resolveWorkboardCardChip(e)&&Pf().catch(()=>void 0),e.hasBoard&&e.face===`dashboard`&&!customElements.get(`openclaw-board-view`)&&Ef().then(e=>{e&&this.requestUpdate()})}resolveBoardSessionKey(e=``){let t=ze(e||this.state?.sessionKey||this.sessionKey,this.context?.gateway.snapshot.hello),n=ie(t);return n===`main`?Ye({agentId:`main`}):n}refreshSwarmRoster(){let e=this.state;if(!e||!this.presented)return;let t=this.resolveBoardSessionKey(),n=e.connectionEpoch;i(async()=>{let{isSwarmEnabledInConfig:e,SwarmRosterHydrator:t}=await import(`./swarm-roster-DwB60WZR.js`);return{isSwarmEnabledInConfig:e,SwarmRosterHydrator:t}},__vite__mapDeps([33,9,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url).then(({isSwarmEnabledInConfig:e,SwarmRosterHydrator:r})=>{if(!(!this.state||!this.presented||this.state.connectionEpoch!==n||t!==this.resolveBoardSessionKey())){if(!(this.state.connected&&e(this.context.runtimeConfig?.state.configSnapshot?.config,x(t)))){this.swarmHydrator?.dispose(),this.swarmHydrator=null,this.requestUpdate();return}this.swarmHydrator??=new r,this.swarmHydrator.update({sessions:this.context.sessions,parentKey:t,sourceEpoch:n,currentRows:()=>this.state?.connectionEpoch===n?this.state.sessionsResult?.sessions??[]:[],onRows:()=>this.requestUpdate()})}})}resolveBoardView(){let e=this.resolveBoardProvider(),t=e.snapshot$.value,n=t.tabs.length>0||t.widgets.length>0,r=this.resolveBoardSessionKey(t.sessionKey),i=cn().boardSessionViews?.[r]??this.state?.settings?.boardSessionViews?.[r],a=(t.tabs.some(e=>e.tabId===i?.activeTabId)?i?.activeTabId:void 0)??t.tabs[0]?.tabId??t.widgets[0]?.tabId??``,o=t.tabs.find(e=>e.tabId===a),s=(this.boardCommandDock?.sessionKey===r&&this.boardCommandDock.tabId===a?this.boardCommandDock.dock:void 0)??o?.chatDock??`right`,c=`${r}:${a}`;return s!==`hidden`&&this.lastVisibleBoardDock.set(c,s),{provider:e,snapshot:t,hasBoard:n,face:n?this.routeFace:`chat`,activeTabId:a,dock:s,reopenDock:this.lastVisibleBoardDock.get(c)??i?.reopenDockByTab?.[a]??`right`}}persistBoardSessionView(e){e.face&&this.onFaceChange?.(this.paneId,this.sessionKey,e.face);let t={...e};if(delete t.face,Object.keys(t).length===0)return;let n=this.resolveBoardView(),r=this.resolveBoardSessionKey(n.snapshot.sessionKey);if(!r)return;let i=this.state?.settings,a=cn(),o={...i?.boardSessionViews,...a.boardSessionViews},s=fn({boardSessionViews:Ge(o,r,t)});this.state&&(this.state.settings=s),this.requestUpdate()}renderBoardPrimary(e,t){let n=this.resolveBoardSessionKey(e.snapshot.sessionKey),r=e.hasBoard&&!!n&&(e.face===`dashboard`||this.retainedBoardSessionKey===n),i=e.face===`dashboard`&&this.visuallyPresented,a=n=>Df({active:n,snapshot:e.snapshot,activeTabId:e.activeTabId,dock:e.dock,dockSize:this.boardChatDockSize,chat:t,divider:this.renderBoardDivider(`bottom`),canMutate:e.provider.canMutate,canGrant:e.provider.canGrant,callbacks:{appViewGeneration:e.provider.appViewGeneration,applyOps:t=>e.provider.applyOps(t),grant:(t,n)=>e.provider.grant(t,n),selectTab:e=>{this.boardCommandDock=null,this.persistBoardSessionView({face:`dashboard`,activeTabId:e})},frameLoadFailed:t=>e.provider.refreshWidgetFrame(t),widgetAppView:(t,n)=>e.provider.widgetAppView(t,n),refreshWidgetAppView:(t,n)=>e.provider.refreshWidgetAppView(t,n)},widgetFrameUrl:(t,n)=>e.provider.widgetFrameUrl(t,n),workboardCardChip:this.resolveWorkboardCardChip(e)}),o=r?i?a(!0):Vt([n],()=>a(!1)):z;return B`${i?z:t}${o}`}persistBoardReopenDock(e,t){if(!e.activeTabId)return;let n=this.resolveBoardSessionKey(e.snapshot.sessionKey),r=cn().boardSessionViews?.[n]??this.state?.settings?.boardSessionViews?.[n];this.persistBoardSessionView({reopenDockByTab:{...r?.reopenDockByTab,[e.activeTabId]:t}})}handleBoardCommand(e){if(!this.presented)return;let t=this.resolveBoardView(),n=this.resolveBoardSessionKey(t.snapshot.sessionKey);if(!n||this.resolveBoardSessionKey(e.sessionKey)!==n)return;let r=e.command;if(r.kind===`focus_tab`){t.snapshot.tabs.some(e=>e.tabId===r.tabId)&&(this.boardCommandDock=null,this.persistBoardSessionView({face:`dashboard`,activeTabId:r.tabId}));return}if(!t.activeTabId)return;let i=r.dock===`hidden`?t.reopenDock:r.dock;this.syncChatSidebarForDock(r.dock)&&(this.persistBoardReopenDock(t,i),this.boardCommandDock={sessionKey:n,tabId:t.activeTabId,dock:r.dock},r.dock!==`hidden`&&this.lastVisibleBoardDock.set(`${n}:${t.activeTabId}`,r.dock))}handleBoardDockChange(e){let t=this.resolveBoardView();if(!t.activeTabId||!t.provider.canMutate)return;let n=this.resolveBoardSessionKey(t.snapshot.sessionKey);if(!this.syncChatSidebarForDock(e))return;this.boardCommandDock=null;let r=e===`hidden`?t.reopenDock:e;this.lastVisibleBoardDock.set(`${n}:${t.activeTabId}`,r),this.persistBoardReopenDock(t,r);let i=this.headerOutcomeOwner;t.provider.applyOps([{kind:`tab_update`,tabId:t.activeTabId,chatDock:e}]).catch(e=>this.publishHeaderError(e,i))}renderBoardDivider(e){return Ws({className:`board-session-surface__divider`,orientation:e===`bottom`?`horizontal`:`vertical`,splitRatio:.5,minRatio:.2,maxRatio:.8,label:G(`chat.board.resizeDock`),onElement:t=>{t instanceof HTMLElement&&queueMicrotask(()=>{let n=t.previousElementSibling?.getBoundingClientRect(),r=t.nextElementSibling?.getBoundingClientRect(),i=e===`bottom`?n?.height??0:n?.width??0,a=e===`bottom`?r?.height??0:r?.width??0,o=i+a;o>0&&(t.splitRatio=(e===`left`?a:i)/o)})},onResize:t=>this.handleBoardDockResize(e,t)})}handleBoardDockResize(e,t){if(e!==`bottom`)return;let n=t.currentTarget,r=n?.previousElementSibling?.getBoundingClientRect(),i=n?.nextElementSibling?.getBoundingClientRect(),a=e===`bottom`?(r?.height??0)+(i?.height??0):(r?.width??0)+(i?.width??0);a<=0||(this.boardChatDockSize={...this.boardChatDockSize,height:Math.min(j_.maxHeight(),Math.max(j_.minHeight,a*(1-t.detail.splitRatio)))},j_.save({...j_.load(),...this.boardChatDockSize,open:!0,dock:e}))}}})))()}var aT;function oT(){return(oT=e((()=>{I(),ea(),N(),Lx(),Q(),iT(),z_(),aS(),vw(),dy(),Zv(),Lw(),Tx(),sc(),Pc(),Yc(),cs(),aT=class extends rT{activeChanged(e){this.isConnected&&(this.syncActiveBindings(),e&&this.presented&&this.state?.chatQueue.length&&(Nv(this.state).catch(()=>void 0),_w(this.state)),this.querySelector(`.chat-transcript-announcement`)?.setAttribute(`aria-live`,e?`polite`:`off`))}presentedChanged(e){if(!this.isConnected)return;if(e){this.minutePoll.start(),this.consumeSessionHandoff(this.sessionKey),this.syncActiveBindings();let e=this.state;e&&this.unreadPatchGuard.beginActivation(e.sessionKey);let t=this.resumeDeferredSessionHydration();e&&!t&&this.markSessionRead(Sx(e)),e&&!t&&(!F(e.chatBranchesSessionKey,e.sessionKey)||e.chatBranchesConnectionEpoch!==e.connectionEpoch)&&wb(e),this.refreshSwarmRoster(),this.refreshSessionPullRequests();return}this.minutePoll.stop(),this.state&&Ty(this.state),this.swarmHydrator?.dispose(),this.swarmHydrator=null,this.clearHistoryObserver(),Di(this.context.gateway).unwatch(this),this.syncActiveBindings(),this.clearComposerPrefillAttention(),this.settleResetConfirmation(!1),this.cancelHeaderRename(),bc(this),bs(this.presentationId,this);let t=this.state;t&&(nS(t),Pw(t),Cs(t),t.sidebarContent=null,t.attachmentSidebarContent=null,t.requestUpdate?.()),this.querySelector(`.chat-transcript-announcement`)?.setAttribute(`aria-live`,`off`)}prepareForEviction(){let e=this.state;if(!e?.sessionKey)return;let t=this.chatState.persistComposerForEviction();if(t.status===`storage-failed`){let n=this.chatState.composerScopeForEviction();n&&Ax(e,n,{message:e.chatMessage,goalMode:e.chatGoalDraftMode,attachments:e.chatAttachments,draftRetry:t})}y_(this.context,this.paneId,e.sessionKey,{attachments:[],draft:e.chatMessage,...e.chatGoalDraftMode?{goalMode:e.chatGoalDraftMode}:{},restore:!0,storageFailed:t.status===`storage-failed`})}takeSessionHandoff(e){return b_(this.context,this.paneId,e)}consumeSessionHandoff(e){if(!this.state||!e)return;let t=this.takeSessionHandoff(e);t&&this.applySessionHandoff(e,t,!t.restore)}applySessionHandoff(e,t,n){let r=this.state;r&&(t.restore||(t.composerFallbacks&&(r.chatComposerFallbackByScope=t.composerFallbacks),r.chatAttachments=[...t.attachments]),r.chatGoalDraftMode=t.goalMode??null,n?r.handleChatDraftChange(t.draft):r.chatMessage=t.draft,t.storageFailed&&(r.lastError=Ds,r.chatError=Ds),r.requestUpdate?.(),t.send&&queueMicrotask(()=>{this.state!==r||r.sessionKey!==e||!this.active||!this.presented||r.handleSendChat().catch(t=>{this.state===r&&r.sessionKey===e&&(Y(r,P(t)),r.requestUpdate?.())})}))}}})))()}var sT;function cT(){return(cT=e((()=>{U(),I(),w(),Se(),A(),N(),j(),Q(),mx(),oT(),z_(),dy(),Tx(),sT=class extends aT{constructor(...e){super(...e),this.recoveringSession=!1,this.recoverSession=async()=>{let e=this.state;if(!e||!e.client||!e.connected||this.recoveringSession)return!1;let t=this.context,n=t.sessions,r=e.client,i=this.connectionGeneration,a=()=>this.isConnected&&this.state===e&&this.context===t&&this.context.sessions===n&&e.client===r&&e.connected&&this.connectedClient===r&&t.gateway.snapshot.client===r&&t.gateway.snapshot.phase===`connected`&&this.connectionGeneration===i,o=e.sessionKey,s=R(e,o).agentId??x(o),c={...s?{agentId:s}:{},key:o},l=M(t.gateway.snapshot,{method:`sessions.recover`,params:c});if(!l.allowed)return Y(e,l.reason),e.requestUpdate?.(),!1;this.recoveringSession=!0,this.requestUpdate(),Y(e,null);try{let t=await n.recover(c);if(!a()||e.sessionKey!==o)return!1;if(!t)return a()&&(Y(e,e.sessionsError??`New Chat could not create a new thread. Try again in a moment.`),e.requestUpdate?.()),!1;if(t.continuation.status===`rejected`)return Y(e,P(t.continuation.error.message)),e.requestUpdate?.(),!1;let r=t.key;return this.onPaneSessionChange?.(this.paneId,r)!==!1&&(y_(this.context,this.paneId,r,{attachments:[],draft:``}),!0)}finally{this.recoveringSession=!1,this.requestUpdate()}},this.createSession=async()=>{let e=this.state;if(!e||!e.client||!e.connected)return!1;let t=this.context,n=t.sessions,r=e.client,i=e.sessionKey,a=this.resolveBoardView().hasBoard,o={currentSessionKey:i,agentId:R(e,i).agentId??x(i)},s={...le(o.currentSessionKey,o.agentId)},c=()=>M(t.gateway.snapshot,{method:a?`sessions.reset`:`sessions.create`,...a?{requiredScope:`operator.admin`}:{params:s}}),l=t=>{e.lastError=t,e.chatError=t,e.requestUpdate?.()},u=this.connectionGeneration,d=()=>this.isConnected&&this.state===e&&this.context===t&&this.context.sessions===n&&e.client===r&&e.connected&&this.connectedClient===r&&t.gateway.snapshot.client===r&&t.gateway.snapshot.phase===`connected`&&this.connectionGeneration===u;if(!xx(e))return Y(e,L_),e.requestUpdate?.(),!1;if(e.sessionsLoading)return Y(e,R_),e.requestUpdate?.(),!1;let f=c();if(!f.allowed)return l(f.reason),!1;if(!await this.confirmConversationReset()||!d()||!F(e.sessionKey,i))return!1;if(!xx(e))return Y(e,L_),e.requestUpdate?.(),!1;let p=c();if(!p.allowed)return l(p.reason),!1;if(Y(e,null),a)return await bb(e)!==`failed`;let m=await n.create(o);return d()?!m||e.sessionKey!==i||!xx(e)?(m||(Y(e,e.sessionsError??(e.sessionsLoading?`Session list is still refreshing. Try New Chat again in a moment.`:`New Chat could not create a new thread. Try again in a moment.`)),e.requestUpdate?.()),!1):this.onPaneSessionChange?.(this.paneId,m)!==!1&&(y_(this.context,this.paneId,m,{attachments:ae(e.chatAttachments),draft:e.chatMessage,...e.chatGoalDraftMode?{goalMode:e.chatGoalDraftMode}:{}}),!0):!1}}sessionDisabledBanner(e){if(!e.catalogDisabledReason)return e.restartRecoveryTombstoned?this.restartRecoveryComposerBanner():e.selectedSessionArchived?{kind:`composer-replacement`,text:G(`chat.archivedSessionDisabled`),icon:`archive`,actionLabel:G(`common.unarchive`),disabledReason:e.selectedSessionId?e.unarchiveAccess.allowed?void 0:e.unarchiveAccess.reason:`Session lifecycle action requires a durable session identity.`,onAction:()=>{e.selectedSessionId&&e.unarchiveAccess.allowed&&this.restoreArchivedSession(e.sessionKey,e.selectedSessionId)}}:e.modelSetupRequired?px(()=>this.context.navigate(`model-setup`)):void 0}restartRecoveryComposerBanner(){let e=this.state;if(!e)return;let t=R(e,e.sessionKey).agentId??x(e.sessionKey),n={...t?{agentId:t}:{},key:e.sessionKey},r=M(this.context.gateway.snapshot,{method:`sessions.recover`,params:n});return{kind:`composer-replacement`,title:G(`chat.restartRecoveryTitle`),text:G(`chat.restartRecoveryDisabled`),tone:`neutral`,icon:`warning`,actionLabel:G(`chat.resumeInNewSession`),actionStyle:`primary`,busy:this.recoveringSession,busyLabel:G(`chat.resumingSession`),disabledReason:r.allowed||this.recoveringSession?void 0:r.reason,onAction:()=>{r.allowed&&!this.recoveringSession&&this.recoverSession()}}}}})))()}var lT;function uT(){return(uT=e((()=>{qn(),bo(),Tx(),Hu(),lT=class{constructor(e){this.options=e}handle(e,t,n){let r=this.options.current();if(!r)return!1;if(Bn(e,n),(n instanceof CustomEvent?n.detail:null)?.open===!1)return this.options.pending.delete(e),this.options.updateSidebarLayout(zu(r.state.sidebarLayout,e)),!0;if(e===`terminal`){let t=uo(n,X(r.state)),i=r.renderRoot.querySelector(`openclaw-terminal-panel[embedded]`),a=customElements.get(`openclaw-terminal-panel`),o=i!==null&&a!==void 0&&i instanceof a;return t&&Ka.queue(t,{deferUntilHostChange:!o}),this.options.updateSidebarLayout(ud(r.state.sidebarLayout,e)),!0}return this.options.pending.set(e,n),this.options.updateSidebarLayout(ud(r.state.sidebarLayout,e)),Promise.all([customElements.whenDefined(`openclaw-chat-sidebar-region`),customElements.whenDefined(t)]).then(async()=>{if(this.options.requestUpdate(),await r.updateComplete,this.options.pending.get(e)!==n)return;let t=r.renderRoot.querySelector(`openclaw-chat-sidebar-region`);await t?.updateComplete,t?.deliverPanelEvent(e,n),this.options.pending.delete(e),this.options.requestUpdate()}),!0}flush(){if(this.options.current())for(let[e,t]of[[`terminal`,`openclaw-terminal-panel`],[`browser`,`openclaw-browser-panel`],[`desktop`,`openclaw-desktop-panel`]]){let n=Hn(e);n&&this.handle(e,t,n)}}}})))()}function dT(e,t){return e.placementStartup.subscribe(()=>{let e=t();e&&(cl(e,e.sessionKey),Be(e.sessionKey)||_w(e),e.requestUpdate?.())})}function fT(e){return Tt(({sessionKey:t})=>{let n=e();!n||t&&Fu(n,{sessionKey:n.sessionKey})!==t||(Ay(n),n.requestUpdate?.())})}function pT(){return(pT=e((()=>{Ct(),Q(),vw(),Zc(),Zl(),Je()})))()}function mT(e,t){return eb(e,t.sessionKey,t.agentId)}function hT(e,t){return e.chatQueue.some(e=>e.sendRunId===t&&e.sendState===`sending`)}function gT(e,t){let n=t.message==null?null:gi(t.message);if(typeof t.deltaText==`string`){if(t.replace===!0)return t.deltaText;if(e===null)return typeof n==`string`?n:t.deltaText;if(typeof n==`string`){let r=n.length-t.deltaText.length;if(r!==e.length||n.slice(0,r)!==e)return n}return`${e}${t.deltaText}`}return typeof n==`string`?n:null}function _T(e,t){if(!e||typeof e!=`object`)return null;let r=e,i=r.role;if(typeof i==`string`){if((t.roleCaseSensitive?i:n(i))!==`assistant`)return null}else if(t.roleRequirement===`required`)return null;return t.requireContentArray?Array.isArray(r.content)?r:null:!(`content`in r)&&!(t.allowTextField&&`text`in r)?null:r}function vT(e){return _T(e,{roleRequirement:`required`,roleCaseSensitive:!0,requireContentArray:!0})}function yT(e){let t=_T(e,{roleRequirement:`optional`,allowTextField:!0});if(!t)return null;let n=typeof t.role==`string`?t:{...t,role:`assistant`};return!Object.hasOwn(n,`content`)&&typeof n.text==`string`?{...n,content:[{type:`text`,text:n.text}]}:n}function bT(e){return e.replace(/^⚠️\s*/u,``)}function xT(e){return bT(e).replace(/^Error:\s*/iu,``).replace(/\s+/gu,` `).trim()}function ST(e,t){let n=e.errorMessage?.trim();if(n)return n.startsWith(`⚠️`)||n.startsWith(`Error:`)?bT(n):`Error: ${n}`;let r=t?gi(t)?.trim():null;return r?bT(r):`chat error`}function CT(e,t){let n=gi(t)?.trim();if(!n)return!1;let r=e.errorMessage?.trim();return r?xT(n)===xT(r):!1}function wT(e,t,n,r,i){e.chatMessagesBySession&&su(e.chatMessagesBySession,e,{sessionKey:t,agentId:i},n,r)}function TT(e,t){if(!t)return null;let n=t.state===`final`?yT(t.message):null,r=e.chatRunId!==null,i=mT(e,t),a=e.chatRunId!==null&&typeof t.runId==`string`&&t.runId===e.chatRunId,o=!!(t.runId&&Du(e,t.runId)&&i);if(!i){if(t.state===`final`){let r=n;if(r&&!Iy(r)){let n=T(t.sessionKey)?t.agentId??ve(e):t.agentId;wT(e,t.sessionKey,r,t,n)}}return null}let s=al(e),c=(n,r,i,a=!1)=>{let o=t;wl(e,r,{scope:s,retainSupersededMessages:a,event:{type:`messagePersisted`,message:n,envelope:{...i?{runId:i}:{},...o.messageId===void 0?{}:{messageId:o.messageId},...o.messageSeq===void 0?{}:{messageSeq:o.messageSeq}}}})},l=t.runId&&t.state!==`status`?sr(il(e,e.chatMessages,s),n?{...t,message:n}:t,s):null;l&&nl(e,l.projection);let u=t.runId??e.chatRunId,d=()=>{let n=l?.currentRun?.status;if(!t.runId||t.runId!==e.chatRunId||!n||n===`streaming`)return;Sd(e);let o=i?[e.sessionKey,t.sessionKey]:[];if(n===`yielded`){tu(e,{yielded:!0,runId:u,sessionKey:e.sessionKey,sessionKeys:o,clearLocalRun:!0,clearChatStream:!0});return}tu(e,{outcome:n===`completed`?`done`:`interrupted`,sessionStatus:n===`completed`?`done`:n===`aborted`?`killed`:n===`timeout`?`timeout`:`failed`,runId:u,sessionKey:e.sessionKey,sessionKeys:o,clearLocalRun:!0,clearChatStream:!0,armLocalTerminalReconcile:r&&a})},f=l?.previousRun;if(f&&f.status!==`streaming`){if(t.state===`delta`)return null;if(t.state===`error`||t.state===`aborted`){let n=e.chatQueue.find(e=>e.sendState===`sending`&&e.sendRunId)?.sendRunId;if((e.chatRunId??n??e.lastLocalTerminalReconcile?.runId)===t.runId&&t.errorMessage?.trim()&&l.currentRun?.errorMessage!==f.errorMessage&&Ru(e,ST(t,null),t.runId),t.state===`error`)return d(),`error`}let r=n;if(t.state===`aborted`||t.state===`final`&&(!r||Iy(r)||pr(f,r)))return d(),t.state}if(!e.chatRunId&&(!f||f.status===`streaming`)&&i&&typeof t.runId==`string`&&(t.state!==`status`||hT(e,t.runId))&&(e.chatRunId=t.runId,Qc(e,t.runId),e.chatRunError=null,e.chatStreamStartedAt??=Date.now()),e.chatRunId&&t.runId!==e.chatRunId){if(t.state===`final`){let r=n;return r&&!Iy(r)?(c(r,[...e.chatMessages,r],t.runId),null):`final`}return null}let p=qd(e),m=(t={})=>zy(e.chatMessages,e,{...t});if(t.state===`status`)return!t.runId||t.runId!==e.chatRunId?null:(t.phase&&(e.chatRunStartup?.state!==`activity`||e.chatRunStartup.runId!==t.runId)&&(e.chatRunStartup={state:`status`,runId:t.runId,phase:t.phase}),t.state);if(t.state===`delta`){t.runId&&t.runId===e.chatRunId&&(e.chatRunStartup={state:`activity`,runId:t.runId});let n=gT(e.chatStream??Fa(e.chatStreamSegments??[]),t);typeof n==`string`&&!jy(n)&&!Ei(t.message)&&(e.chatStream=n,Jd(e))}else if(t.state===`final`){let t=n;if(!o){let n=t?xd(t,e):{kind:`none`};if(n.kind===`split`){Pd(e,n.replacedSegmentIndexes);let t=m({includeCurrent:!1});n.tailMessage&&!Iy(n.tailMessage)?(t=Rd(t,Ad(n.tailMessage,u,n.afterBoundaryRunId)),c(n.tailMessage,t,u,!0)):wl(e,t,{scope:s})}else if(t&&!Iy(t)){let e=m(),n=Ad(t,u,p);c(t,Rd(e,n),u)}else e.chatMessages=m()}d()}else if(t.state===`aborted`){let n=vT(t.message);if(n&&!Iy(n)){let e=m({replacementMessages:[n],includeCurrent:!1}),t=Ad(n,u,p,`aborted`);c(n,Rd(e,t),u)}else e.chatMessages=m();t.errorMessage?.trim()&&Ru(e,ST(t,null),t.runId),d()}else if(t.state===`error`){let n=yT(t.message),i=n&&!Iy(n)?n:null,a=!!(i&&CT(t,i));if(r){if(i&&!a){let t=Ou(i,e,{isHiddenStreamText:Fy,persistCommentary:e.settings?.chatPersistCommentary!==!1}),n=m({includeCurrent:!t}),r=Ad(i,u,p,l?.currentRun?.status===`timeout`?`timeout`:`error`);c(i,t?Rd(n,r):[...n,r],u)}else{e.chatMessages=m({includeCurrent:!0});let t=e.chatMessages.findLast(e=>Bh(e)===u);Ad(t,u,p,l?.currentRun?.status===`timeout`?`timeout`:`error`)}}d(),Ru(e,ST(t,a?i:null),t.runId)}return t.state!==`delta`&&Sd(e),t.state}function ET(e,t){return TT(e,t)}function DT(){return(DT=e((()=>{tr(),oi(),si(),N(),Q(),Qh(),Zc(),Yl(),Zl(),od(),Cf(),lf(),Fl()})))()}function OT(e){if(typeof e!=`string`||!e.includes(`github.com`))return[];let t=[];for(let n of e.matchAll(AT)){let e=n[0].replace(/[.,;:!?]+$/u,``);Un(e)&&t.push(e)}return t}function kT(e,t,n){let r=`${t.sessionKey}|${t.runId??``}`,i=e.streamPullRequestTail,a=(i?.scope===r?i.text:``)+n;e.streamPullRequestTail={scope:r,text:a.slice(-256)};let o=e.streamPullRequestRefreshKeys??=new Set;o.has(r)||OT(a).length===0||(o.size>jT&&o.clear(),o.add(r),e.refreshSessionPullRequests?.({refresh:!0}))}var AT,jT;function MT(){return(MT=e((()=>{Xn(),AT=/https:\/\/github\.com\/[^\s<>()\]}'"`]+/giu,jT=200})))()}function NT(e,t){return eb(e,t.key,t.agentId??void 0)}function PT(e,n){return n?t(n):ve(e)}function FT(e,t){if(!T(t.key))return!0;let n=T(e.sessionKey)?k(e):Ce(e,e.sessionKey);return!n||PT(e,t.agentId)===n}function IT(e,t){let n=X(e),r=e.sessions.reconcileChanged(t,{resultAgentId:e.sessionsResultAgentId??n,selectedGlobalAgentId:n,archivedFilter:e.sessionsArchivedFilter});return r.applied&&(e.sessionsResult=e.sessions.state.result,e.sessionsResultAgentId=e.sessions.state.agentId,e.sessionsError=e.sessions.state.error,Jl(e)),r}function LT(e,t,n,r,i){return(r?Xd(e,r,{publishRunStatus:!0}):ru(e,{publishRunStatus:!0}))?(kp(e,n??void 0),Z(e,{deferBranches:!i()}).finally(()=>{F(e.sessionKey,t)&&(gw(e),e.requestUpdate?.())}).catch(()=>void 0),!0):!1}function RT(e,t,n){let r=fe(t);if(!r||!FT(e,r))return;let i=NT(e,r),a=ir(l(t)?.message)?.role===`user`;i&&tf(e,t,r.hasActiveRun??void 0,{kind:`live`,activeRunId:e.chatRunId}),i&&r.archived!==null&&(e.selectedChatSessionArchived=r.archived);let o=e.chatRunId;hu({event:r,host:e,matchesChat:i,payload:t,runIdBeforeApply:o});let s=IT(e,t);if(o&&i){let t=r.clientRunId??r.runId??o;if(e.pendingSessionMessageReloadSessionKey=r.key,r.hasActiveRun===!0){a&&Z(e,{deferBranches:!n(),supersedeInFlight:!0}).finally(()=>e.requestUpdate?.());return}if(LT(e,r.key,t,s.row,n)){e.pendingSessionMessageReloadSessionKey=null;return}Nv(e).then(()=>{!e.pendingSessionMessageReloadSessionKey||e.chatRunId!==o||LT(e,e.pendingSessionMessageReloadSessionKey,t,void 0,n)&&(e.pendingSessionMessageReloadSessionKey=null)});return}i&&(e.pendingSessionMessageReloadSessionKey=null,Z(e,{deferBranches:!n(),supersedeInFlight:a&&r.hasActiveRun===!0}).finally(()=>e.requestUpdate?.()))}function zT(e,t,n,r=!1){let i=e.pendingSessionMessageReloadSessionKey,a=t?.sessionKey?.trim();return!i||!a||!F(i,a)||!F(a,e.sessionKey)||e.chatRunId?!1:(e.pendingSessionMessageReloadSessionKey=null,Z(e,{deferBranches:!n(),supersedeInFlight:r}).finally(()=>e.requestUpdate?.()),!0)}function BT(e,t){let n=t.runId;return n?{sessionKey:t.sessionKey,agentId:X(e),runId:n,client:e.client,connectionEpoch:e.connectionEpoch,runLifecycleGeneration:e.chatRunLifecycleGeneration??0,initialTerminalReplySignatures:uf(e,n).terminalReplySignatures}:null}function VT(e,t){let n=tE.get(e);n||(n=new Map,tE.set(e,n));let r=[t.connectionEpoch,t.runLifecycleGeneration,t.agentId,t.sessionKey,t.runId].join(`\0`);if(n.has(r)&&n.get(r)===t.client)return!1;for(n.delete(r),n.set(r,t.client);n.size>eE;){let e=n.keys().next().value;if(typeof e!=`string`)break;n.delete(e)}return!0}function HT(e,t){let n=uf(e,t.runId);return n.acceptedFinal||[...n.terminalReplySignatures].some(e=>!t.initialTerminalReplySignatures.has(e))}function UT(e,t){return e.connected&&e.client===t.client&&e.connectionEpoch===t.connectionEpoch&&F(e.sessionKey,t.sessionKey)&&X(e)===t.agentId&&(e.chatRunId===null||e.chatRunId===t.runId)&&(e.chatRunLifecycleGeneration??0)===t.runLifecycleGeneration&&!HT(e,t)}async function WT(e,t,n){for(let r=0;;r+=1){if(!UT(e,t)||(await Z(e,{deferBranches:!n(),supersedeInFlight:!0}),e.requestUpdate?.(),!UT(e,t)))return;let i=$T[r];if(i===void 0)return;await vy(i)}}function GT(e,t,n){let r=n(),i=e.chatRunId,a=fe(t),o=!!(a&&FT(e,a)&&NT(e,a)),s=l(t),c=s?.reason===`reset`||s?.phase===`reset`;a&&(c||s?.reason===`new`)&&e.retireSessionCompanion?.(a.key,a.agentId);let u=o&&c;if(o&&e.client&&(c||s?.reason===`command-metadata`||s?.reason===`patch`)&&_e(e.client,{agentId:X(e)??void 0,sessionKey:e.sessionKey}),u){let t=al(e,{agentId:X(e)});$c(e,{type:`sessionReset`},{scope:t})}o&&typeof s?.reason==`string`&&ZT.has(s.reason)&&(Ty(e),e.chatBranches=[],e.chatBranchesSessionKey=null,e.chatBranchesConnectionEpoch=null,rc(e),r&&wb(e)),a&&o&&a.archived!==null&&(e.selectedChatSessionArchived=a.archived);let d=IT(e,t);if(u){Z(e,{deferBranches:!r}).finally(()=>e.requestUpdate?.());return}if(o&&s?.phase===`message`&&s.message===void 0&&s.messageId===void 0&&s.messageSeq===void 0){Z(e,{deferBranches:!r}).finally(()=>e.requestUpdate?.());return}o&&typeof s?.reason==`string`&&QT.has(s.reason)&&Z(e,{deferBranches:!r,supersedeInFlight:!0}).finally(()=>e.requestUpdate?.()),!(d.applied&&a&&i&&o&<(e,a.key,a.clientRunId??a.runId??i,d.row,n))&&!d.applied&&a?.isChatTurn!==!0&&Nv(e)}function KT(e,t){return typeof t?.runId==`string`&&t.runId===e.chatRunId}function qT(e,t){if(t?.state!==`final`)return!1;let n=[gi(t.message)];return KT(e,t)&&n.push(e.chatStream,...(e.chatStreamSegments??[]).map(e=>e.text)),n.some(e=>OT(e).length>0)}function JT(e,t){if(t?.state!==`final`||!eb(e,t.sessionKey,t.agentId))return!1;let n=gi(t.message);return typeof n==`string`&&n.trim().length>0&&!Fy(n)&&!Iy(t.message)?!0:KT(e,t)?[e.chatStream,...(e.chatStreamSegments??[]).map(e=>e.text)].some(e=>typeof e==`string`&&e.trim().length>0&&!Fy(e)):!1}function YT(e,t){if(e.chatRunId)return t.runId===e.chatRunId;let n=Sx(e);return!!(n?.hasActiveRun&&t.runId&&n.activeRunIds?.includes(t.runId))}function XT(e,t,n=()=>!0){if(t.event===`session.approval`){let n=l(t.payload);if(!n||typeof n.sessionKey!=`string`)return;let r=Ul(e.chatSessionApprovalQueue??[],n,e.sessionKey,X(e));r&&(e.chatSessionApprovalQueue=r,zw(e));return}if(t.event===`chat`){let r=t.payload,i=r&&(r.state===`final`||r.state===`aborted`||r.state===`error`)?r:void 0,a=()=>{let t=!!(r&&eb(e,r.sessionKey,r.agentId)),a=r?.state===`final`&&(r.message===void 0||r.message===null)&&t&&typeof r.runId==`string`&&(!e.chatRunId||e.chatRunId===r.runId)?r.runId:null,o=a?al(e):null;r?.state===`delta`&&typeof r.runId==`string`&&t&&(!e.chatRunId||e.chatRunId===r.runId)&&e.observerDigest&&e.observerDigest.runId!==r.runId&&(e.observerDigest=null),r?.state===`delta`&&typeof r.deltaText==`string`&&t&&kT(e,r,r.deltaText);let s=JT(e,r),c=s&&qT(e,r),l=ET(e,r);i&&t&&kp(e,i.runId),s&&l===`final`&&po(),c&&e.refreshSessionPullRequests?.({refresh:!0});let u=a&&o&&il(e,e.chatMessages,o).runs[a]?.status===`completed`&&r?BT(e,r):null,d=u?VT(e,u):!1;u&&d?(e.pendingSessionMessageReloadSessionKey=null,WT(e,u,n).catch(()=>void 0)):zT(e,r,n),i&&(hw(e),t&&(n()?Ac(e,Dl(e.sidebarLayout,`workspace`)):rc(e))),zw(e,r?.state===`delta`?`animation-frame`:`immediate`)};if(!i){a();return}let o=Hr(e,i.sessionKey,T(i.sessionKey)?PT(e,i.agentId??null):i.agentId),s=e.connectionEpoch,c=ml(e),l=Rp(e,i.runId,o),u=t=>{t!==`stale`&&e.connectionEpoch===s&&c()&&a()};if(l instanceof Promise){l.then(u);return}u(l);return}if(t.event===`session.observer`){let n=t.payload;if(!n||!eb(e,n.sessionKey,n.agentId)||!YT(e,n))return;let r=e.observerDigest;if(r?.runId===n.runId&&ji(r,n)===r)return;e.observerDigest=n,zw(e);return}if(t.event===`agent`||t.event===`session.tool`){Uu(e,t.payload)&&zw(e,`animation-frame`);return}if(t.event===`session.operation`){Su(e,t.payload),zw(e,`animation-frame`);return}if(t.event===`chat.send_timing`){dv(e,t.payload);return}if(t.event===`session.message`){RT(e,t.payload,n),hw(e),zw(e,`animation-frame`);return}if(t.event===`sessions.changed`){GT(e,t.payload,n),hw(e),zw(e,`animation-frame`);return}t.event===`task`&&_s(e,t.payload,n())}var ZT,QT,$T,eE,tE;function nE(){return(nE=e((()=>{nr(),ta(),tt(),si(),pe(),N(),DT(),xy(),Q(),MT(),jp(),vw(),Hp(),bv(),Zv(),Tx(),Es(),Ic(),cs(),Zc(),pl(),Yl(),gf(),rd(),Hu(),Fl(),Wu(),Ol(),ZT=new Set([`rewind`,`branch-switch`,`fork`,`reset`,`new`]),QT=new Set([`send`,`agent.run.started`,`agent.input.settled`]),$T=[100,400,1500,3e3],eE=64,tE=new WeakMap})))()}function rE(e){hE.get(e)?.unsubscribe(),hE.delete(e),e.chatModelCatalog=[],e.chatModelCatalogError=null,e.chatModelsLoading=!1}function iE(e){let t=typeof globalThis.requestIdleCallback==`function`?globalThis.requestIdleCallback:null;if(t){t(e,{timeout:750});return}globalThis.setTimeout(e,50)}async function aE(e){await tC({client:e.client,agentId:X(e),sessionKey:e.sessionKey})}function oE(e,t){!e||!Dt(e,e.sessionKey)||E(e.sessionKey)?.agentId||(e.assistantAgentId??null)===t||(sE(e,t),Nv(e))}function sE(e,t){(e.assistantAgentId??null)!==t&&(jv(e),e.assistantIdentityRequestVersion+=1,e.assistantAgentId=t,e.assistantName=``,e.assistantAvatar=null,e.assistantAvatarSource=null,e.assistantAvatarStatus=null,e.assistantAvatarReason=null,e.chatAvatarUrl=null,e.chatAvatarSource=null,e.chatAvatarStatus=null,e.chatAvatarReason=null,e.modelAuthStatusResult=null,e.modelAuthStatusError=null,uE(e),dE(e).finally(()=>e.requestUpdate?.()),e.loadAssistantIdentity(),e.requestUpdate?.())}function cE(e,t,n,r){let i=Array.isArray(r.models)?r.models:void 0;i&&(e.chatModelCatalog=i,e.chatModelCatalogError=null),eC({client:t,agentId:n,result:r})}function lE(e){let t=hE.get(e);if(t?.isCurrent())return t;t&&rE(e);let n=e.client;if(!n||!e.connected)return;let r={agentId:X(e)??void 0,sessionKey:e.sessionKey},i=e.connectionEpoch,a={client:n,scope:r,version:0,isCurrent:()=>hE.get(e)===a&&e.connected&&e.client===n&&e.connectionEpoch===i&&e.sessionKey===r.sessionKey&&(X(e)??void 0)===r.agentId,unsubscribe:ue(n,r,t=>{if(a.isCurrent()){if(t.type===`invalidated`){uE(e);return}t.type===`loading`?(a.version+=1,e.chatModelsLoading=e.chatModelCatalog.length===0,e.chatModelCatalogError=null):(e.chatModelsLoading=!1,t.type===`result`?cE(e,n,r.agentId,t.result):e.chatModelCatalogError=P(t.error)),e.requestUpdate?.()}})};hE.set(e,a);let o=we(n,r);return o&&cE(e,n,r.agentId,o),a}async function uE(e){let t=lE(e);if(!t){rE(e);return}await ye(t.client,t.scope).catch(()=>void 0)}async function dE(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.connectionEpoch,i=X(e),a=++e.modelAuthStatusRequestVersion,o=()=>e.client===n&&e.connected&&e.connectionEpoch===r&&e.modelAuthStatusRequestVersion===a&&X(e)===i;try{let r=await $r(n,{...t,agentId:i});if(!o())return;e.modelAuthStatusResult=r,e.modelAuthStatusError=r.unavailable?.message??null}catch(t){if(!o())return;e.modelAuthStatusResult={ts:0,providers:[]},e.modelAuthStatusError=P(t)}}async function fE(e){if(!e.client||!e.connected)return;let t=lE(e);if(!t)return;let{client:n,scope:{agentId:r}}=t,i=t.version,a=()=>t.isCurrent()&&t.version===i;e.chatModelsLoading=e.chatModelCatalog.length===0,e.chatModelCatalogError=null,e.requestUpdate?.();try{await ne(n,{agentId:r??``,refreshIfDue:!0,rejectOnFailure:!0}),t.isCurrent()&&(await uE(e),await Nv(e).catch(()=>void 0))}catch(t){a()&&(e.chatModelCatalogError=P(t))}finally{a()&&(e.chatModelsLoading=!1,e.requestUpdate?.())}}async function pE(e,t){let n=e.client,r=e.connectionEpoch,i=e.sessionKey,a=Zp(e),o=()=>e.requestUpdate?.(),s=e.sessionsResult,c=t?.historyLoad??Z(e,{deferBranches:t?.deferBranches===!0,startup:t?.startup===!0}),l=c.finally(()=>{t?.scheduleScroll!==!1&&Kl(e),o()}),u=c.then(t=>{if(!t?.sessionInfo||!e.sessions.reconcile(t.sessionInfo,t.defaults,{resultAgentId:e.sessions.state.agentId??a,selectedGlobalAgentId:a,sourceCanonicalListRevision:t.sourceCanonicalListRevision,archivedFilter:t.sessionInfo.archived===!0?`all`:e.sessionsArchivedFilter})||e.client!==n||e.connectionEpoch!==r||e.sessionKey!==i||Zp(e)!==a)return;let o=Dt(e,i)&&e.sessions.state.agentId!==a;e.sessionsResult=o?Le(e.sessionsResultAgentId===a?e.sessionsResult:null,t.sessionInfo,t.defaults,{resultAgentId:a,selectedGlobalAgentId:a,archivedFilter:`all`},e.sessionsResultAgentId===a&&e.sessionsResult!==s):e.sessions.state.result,e.sessionsResultAgentId=o?a:e.sessions.state.agentId;let c=Sx(e),l=c??t.sessionInfo;c&&(e.selectedChatSessionArchived=l.archived===!0,e.selectedChatSessionIncognito=l.incognito===!0);let u=t.inFlightRun?.runId?.trim(),d=t.sessionInfo.activeRunIds;u&&e.chatRunId===u&&Te(t.sessionInfo)&&(!Array.isArray(d)||d.includes(u))||c&&(Xd(e,c,{publishRunStatus:!0})||ru(e,{publishRunStatus:!0}))}),d=t?.startup===!0&&t.onStartupMetadata?c.then(e=>t.onStartupMetadata?.(e?.metadata),()=>t.onStartupMetadata?.(void 0)):Promise.resolve();if(zv(e,i,l,u,s,()=>void gw(e)),Promise.allSettled([u,d]).finally(o),t?.awaitHistory===!0){await l;return}await Promise.resolve()}function mE(e,t){let n=t?.startup?lE(e):void 0,r=n?C(n.client,n.scope):void 0,i=pE(e,{...t,onStartupMetadata:async e=>{!n||!r?.isCurrent()||(e?r.publish(e):await D(n.client,n.scope).catch(()=>void 0))}}),a=e.sessionKey,o=e.client,s=e.connectionEpoch;return iE(()=>{!e.connected||e.client!==o||e.connectionEpoch!==s||e.sessionKey!==a||Promise.allSettled([_m(e),...t?.startup?[]:[uE(e)]]).finally(()=>e.requestUpdate?.())}),i}var hE;function gE(){return(gE=e((()=>{tt(),I(),Br(),Ae(),pe(),N(),wm(),lC(),Q(),vw(),Zv(),Tx(),Yl(),cu(),hE=new WeakMap})))()}function _E(e,t){fc(e),Ks(e,t)}function vE(){return(vE=e((()=>{Wc(),Yc()})))()}var yE,bE,xE;function SE(){return(SE=e((()=>{Nn(),It(),Ar(),ga(),No(),ai(),Zn(),U(),Si(),ea(),Ct(),A(),N(),wm(),Q(),ov(),bx(),Ox(),cT(),uT(),z_(),pT(),nE(),Lw(),gE(),vE(),sc(),us(),Yc(),Ms(),cs(),vl(),Zc(),_l(),Zl(),Hu(),xu(),yE=600,bE=`agent-chat__input--prefill-attention`,xE=class extends sT{constructor(...e){super(...e),this.sessionPanelToggles=new lT({current:()=>{let e=this.state;return e&&this.active&&this.presented?{renderRoot:this.renderRoot,state:e,updateComplete:this.updateComplete}:null},pending:this.pendingPanelToggleRequests,requestUpdate:()=>this.requestUpdate(),updateSidebarLayout:e=>this.commitSidebarLayout(e)}),this.chatRouteReadyReported=!1,this.stagedAttachmentGatewayOwner=null,this.suppressStagedAttachmentHandoffOnDisconnect=!1,this.handlePaneFocus=()=>this.onFocusPane?.(this.paneId),this.handleDocumentKeydown=e=>{if(document.querySelector(`.shell-nav[aria-modal='true']`))return;let t=e=>{let t=this.state;if(!t)return;let n=Dl(t.sidebarLayout,e);n&&Ex(t,e),this.commitSidebarLayout(n?zu(t.sidebarLayout,e):ud(t.sidebarLayout,e))};if(this.active&&this.presented&&!e.defaultPrevented&&this.state?.terminalAvailable&&Rn(e)){e.preventDefault(),t(`terminal`);return}if(this.active&&this.presented&&!e.defaultPrevented&&Ie(Ne.workspaceFiles,e)){if(!this.state)return;e.preventDefault(),t(`workspace`);return}if(this.active&&this.presented&&!e.defaultPrevented&&!e.isComposing&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&e.key.length===1&&!D_(e,`input, textarea, select, [contenteditable]:not([contenteditable='false']), [role='combobox'], [role='listbox'], [role='textbox'], [data-chat-autotype-exempt]`)&&!(e.key===` `&&D_(e,`a[href], button, summary, [role='button'], [role='checkbox'], [role='link'], [role='radio'], [role='switch']`))&&!document.openClawModalLayers?.size&&!document.querySelector(`[aria-modal='true']`)){let e=this.querySelector(I_);e&&!e.disabled&&!e.readOnly&&e.focus({preventScroll:!0})}if(Rs(e),e.defaultPrevented||e.key!==`Escape`||!this.state)return;let n=this.querySelectorAll(F_);n.length>0&&(e.preventDefault(),n.forEach(e=>{e.open=!1}))},this.handleDocumentPointerdown=e=>{let t=this.state;if(!t)return;let n=e.composedPath(),r=!1;this.querySelectorAll(F_).forEach(e=>{n.includes(e)||(e.open=!1,r=!0)}),r&&t.requestUpdate()}}hydrateStoredChatSnapshot(e,t){let n=this.sessionSnapshotStore;if(!n)return;let r=Fu(e,{sessionKey:t});n.read(r).then(n=>{if(!n||this.state!==e||!F(e.sessionKey,t)||wf(e.chatMessagesBySession,e,{sessionKey:t}))return;let r=$c(e,{type:`snapshotLoaded`,messages:n.messages},{scope:al(e,{sessionKey:t,sessionId:n.sessionId,...Object.hasOwn(n,`displayedLeafEntryId`)?{activeLeafEntryId:n.displayedLeafEntryId}:{}})}),i={...n,messages:[...r.messages]};vu(e.chatMessagesBySession,e,{sessionKey:t},i),du(e,i),e.requestUpdate?.()})}discardStagedAttachments(){this.suppressStagedAttachmentHandoffOnDisconnect=!0,this.chatState.attachmentReads.abortReads(),nv(this.state)}resumeStagedAttachments(){this.suppressStagedAttachmentHandoffOnDisconnect=!1}browserAnnotationOwner(){return this.stagedAttachmentGatewayOwner??void 0}replaceStagedAttachmentGatewayOwner(e){this.stagedAttachmentGatewayOwner=rv(this.context,this.paneId,this.state,this.stagedAttachmentGatewayOwner,e)}clearComposerPrefillAttention(){this.composerPrefillAttentionTimer!==null&&(window.clearTimeout(this.composerPrefillAttentionTimer),this.composerPrefillAttentionTimer=null),this.composerPrefillAttentionTarget?.classList.remove(bE),this.composerPrefillAttentionTarget=null}showComposerPrefillAttention(e){this.clearComposerPrefillAttention(),e.offsetWidth,e.classList.add(bE),this.composerPrefillAttentionTarget=e,this.composerPrefillAttentionTimer=window.setTimeout(()=>{this.composerPrefillAttentionTarget===e&&this.clearComposerPrefillAttention()},yE)}confirmConversationReset(){let e=this.resolveBoardView(),t=this.resolveBoardSessionKey(e.snapshot.sessionKey),n=this.resetConfirmation;if(n&&!F(n.sessionKey,t)&&this.settleResetConfirmation(!1),!e.hasBoard)return Promise.resolve(!0);if(this.resetConfirmation)return this.resetConfirmation.promise;let r,i=new Promise(e=>{r=e});return this.resetConfirmation={sessionKey:t,promise:i,resolve:r},this.resetConfirmationOpen=!0,i}cancelResetConfirmationForSessionChange(){let e=this.resetConfirmation;e&&!F(e.sessionKey,this.resolveBoardSessionKey())&&this.settleResetConfirmation(!1)}settleResetConfirmation(e){let t=this.resetConfirmation;t&&(this.resetConfirmation=void 0,this.resetConfirmationOpen=!1,t.resolve(e))}renderResetConfirmation(){if(!this.resetConfirmationOpen)return z;let e=G(`chat.board.resetTitle`),t=G(`chat.board.resetDescription`);return B`
|
||
<openclaw-modal-dialog
|
||
label=${e}
|
||
description=${t}
|
||
@modal-cancel=${()=>this.settleResetConfirmation(!1)}
|
||
>
|
||
<div class="exec-approval-card board-reset-confirmation">
|
||
<div class="exec-approval-header">
|
||
<div>
|
||
<div class="exec-approval-title">${e}</div>
|
||
<div class="exec-approval-sub">${t}</div>
|
||
</div>
|
||
</div>
|
||
<div class="exec-approval-actions">
|
||
<button
|
||
class="btn primary"
|
||
type="button"
|
||
@click=${()=>this.settleResetConfirmation(!0)}
|
||
>
|
||
${G(`common.confirm`)}
|
||
</button>
|
||
<button
|
||
class="btn"
|
||
type="button"
|
||
autofocus
|
||
@click=${()=>this.settleResetConfirmation(!1)}
|
||
>
|
||
${G(`common.cancel`)}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</openclaw-modal-dialog>
|
||
`}syncActiveBindings(){if(this.nativeDraftCleanup?.(),this.nativeDraftCleanup=null,!this.active||!this.presented){this.announceCommandPaletteTarget(null);return}this.announceCommandPaletteTarget(this.handleCommandPaletteSlashCommand),this.applyActiveSessionBindings(),this.nativeDraftCleanup=this.context.nativeChatDrafts.subscribe(e=>{let t=this.state;!t||!this.active||!this.presented||(t.handleChatDraftChange(e),t.requestUpdate?.())})}receiveBrowserAnnotation(e){yx(this.state,this.active&&this.presented,e)&&(this.stagedAttachmentGatewayOwner??=this.context.gateway.snapshot.client,vx(this))}connectedCallback(){this.boardProviderLifecycleConnected=!0,this.resumeStagedAttachments(),super.connectedCallback(),this.presented||this.minutePoll.stop();let e=this.context.gateway.snapshot.client;this.stagedAttachmentGatewayOwner=e,this.requestUpdate(),typeof ResizeObserver==`function`&&(this.paneResizeObserver=new ResizeObserver(e=>{let t=e.at(-1)?.contentRect.width;typeof t==`number`&&t>0&&t!==this.paneWidth&&(this.paneWidth=t)}),this.paneResizeObserver.observe(this)),this.addEventListener(`pointerdown`,this.handlePaneFocus),this.addEventListener(`focusin`,this.handlePaneFocus),document.addEventListener(`keydown`,this.handleDocumentKeydown,!0),document.addEventListener(`pointerdown`,this.handleDocumentPointerdown,!0);let t=this.chatState;t.addCleanup(ld(()=>this.state?.requestUpdate?.())),t.addCleanup(()=>{document.removeEventListener(`keydown`,this.handleDocumentKeydown,!0),document.removeEventListener(`pointerdown`,this.handleDocumentPointerdown,!0),this.removeEventListener(`pointerdown`,this.handlePaneFocus),this.removeEventListener(`focusin`,this.handlePaneFocus)});let n=Iw(this.context,t.createRenderLifecycle(),this,this.chatMessagesBySession);if(n.chatIsProgrammaticScroll=()=>this.transcript.isProgrammaticScroll,n.chatScrollElement=()=>this.transcript.scrollElement,n.chatScrollToEnd=e=>this.transcript.scrollToEnd(e),n.createChatSession=()=>this.createSession(),n.confirmConversationReset=()=>this.confirmConversationReset(),n.exportCurrentChat=()=>sl(n.chatMessages,n.assistantName),n.refreshCurrentSessionTools=async()=>{n.requestUpdate?.()},n.refreshCurrentChat=async()=>{await mE(n),n.requestUpdate?.()},n.refreshSessionPullRequests=e=>this.refreshSessionPullRequests(e),n.openSessionCompanion=e=>this.submitSessionCompanionQuestion(e),n.retireSessionCompanion=(e,t)=>this.sessionCompanionThreads.retire(e,t),this.state=n,this.sessionKey){let e=this.setPaneSessionKey(this.sessionKey);if(e&&!Be(e)){n.client=this.context.gateway.snapshot.client??null;let t=wf(n.chatMessagesBySession,n,{sessionKey:e});t?du(n,t):this.hydrateStoredChatSnapshot(n,e),xl(n,e)&&(n.lastError=Ds,n.chatError=Ds),cl(n,e)}}t.attach(n),t.restoreComposer({preserveCurrent:!0});let r=this.takeSessionHandoff(n.sessionKey);r?.restore&&this.applySessionHandoff(n.sessionKey,r,!1),ev(this.context,this.paneId,n,e),t.startComposerPersistence(),r&&!r.restore&&this.applySessionHandoff(n.sessionKey,r,!0),this.draft!==void 0&&this.state.handleChatDraftChange(this.draft);let i=e=>this.receiveBrowserAnnotation(e);window.addEventListener(di,i),t.addCleanup(()=>window.removeEventListener(di,i));let a=[[In,`terminal`,`openclaw-terminal-panel`],[Gn,`browser`,`openclaw-browser-panel`],[er,`desktop`,`openclaw-desktop-panel`]].map(([e,t,n])=>{let r=e=>{this.sessionPanelToggles.handle(t,n,e)};return window.addEventListener(e,r),()=>window.removeEventListener(e,r)}),o=()=>{let e=this.state;!e||!this.active||!this.presented||e.updateSidebarLayout(zu(e.sidebarLayout,`terminal`))};window.addEventListener(Qn,o),t.addCleanup(()=>{a.forEach(e=>e()),window.removeEventListener(Qn,o),this.pendingPanelToggleRequests.clear()});let s=e=>{let t=e.detail,n=typeof t?.text==`string`?t.text.trim():``;n&&this.state?.handleSendChat(n)};this.addEventListener(Ji,s),t.addCleanup(()=>this.removeEventListener(Ji,s)),t.addCleanup(this.context.gateway.subscribe(e=>this.applyGatewaySnapshot(e))),t.addCleanup(this.context.agentSelection.subscribe(e=>{oE(this.state,e.selectedId),this.state&&cb(this.state)}));let c=Di(this.context.gateway);t.addCleanup(c.subscribe(()=>{this.refreshSessionPullRequests()})),t.addCleanup(()=>c.unwatch(this)),t.addCleanup(this.context.gateway.subscribeEvents(e=>{let t=this.state;if(e.event===`presence`){let t=this.hasMultipleIdentities(),n=Yt(e.payload);this.presencePayload=n?{presence:n}:void 0,this.hasMultipleIdentities()?t||this.refreshSessionSuggestions():(this.resetSessionSuggestions(),this.clearTypingActors())}t&&(e.event===`config.changed`&&(lm(t),_i(t.client),t.assistantIdentityRequestVersion+=1,_m(t).finally(()=>t.requestUpdate?.())),ca(this.questionPromptState,e)),t&&!Be(t.sessionKey)&&(e.event===`task.suggestion`&&e.payload&&this.handleTaskSuggestionEvent(e.payload),e.event===`session.suggestion`&&e.payload&&this.handleSessionSuggestionEvent(e.payload),e.event===`session.typing`&&e.payload&&this.handleSessionTypingEvent(e.payload),e.event===`session.message`&&this.clearTypingActorForSessionMessage(e.payload),XT(t,e,()=>this.presented))})),this.applyApplicationConfig(this.context.config.current),t.addCleanup(this.context.config.subscribe(this.applyApplicationConfig.bind(this))),this.applySessionsState(this.context.sessions.state),t.addCleanup(this.context.sessions.subscribe(this.applySessionsState.bind(this))),t.addCleanup(dT(this.context,()=>this.state)),t.addCleanup(fT(()=>this.state)),this.applyGatewaySnapshot(this.context.gateway.snapshot)}willUpdate(e){if(e.has(`sessionKey`)&&this.state){let e=Be(this.sessionKey),t=e?this.sessionKey:ze(this.sessionKey,this.context.gateway.snapshot.hello);if(t&&this.sessionDiscussionStates.delete(t),e&&this.catalogRequestedSessionKey!==this.sessionKey)this.catalogLoadGeneration+=1,this.openCatalogSession(e,this.state);else if(t){this.state.sessionKey=t;let e=E(t)?.agentId;e&&sE(this.state,e);let n=xl(this.state,t),r=cl(this.state,t);n&&(this.state.lastError=Ds,this.state.chatError=Ds),(n||r)&&this.requestUpdate()}if(t){let e=this.takeSessionHandoff(t);e&&this.applySessionHandoff(t,e,!0)}}e.has(`sessionKey`)&&this.syncActiveBindings(),e.has(`draft`)&&this.draft!==void 0&&this.state&&this.draft!==this.state.chatMessage&&this.state.handleChatDraftChange(this.draft)}updated(e=new Map){if(!this.chatRouteReadyReported&&this.querySelector(`.agent-chat__composer-combobox > textarea`)&&(this.chatRouteReadyReported=!0,this.dispatchEvent(new Event(Er,{bubbles:!0,composed:!0}))),e.has(`focusComposer`)&&this.focusComposer){let e=this.querySelector(I_),t=e?.closest(`.agent-chat__input`);e?.focus({preventScroll:!0}),t&&this.showComposerPrefillAttention(t)}let t=this.state?this.isCurrentSessionArchived(this.state):!1;t&&this.currentSessionArchived===!1&&(Ls(this.presentationId,this),this.querySelector(`.chat-thread`)?.focus({preventScroll:!0})),this.currentSessionArchived=t,this.cancelResetConfirmationForSessionChange(),this.syncHistoryObserver();let n=this.resolveBoardView();this.syncRetainedBoardSession(n),this.sessionPanelToggles.flush()}disconnectedCallback(){this.state&&(rE(this.state),this.suppressStagedAttachmentHandoffOnDisconnect?nv(this.state):tv(this.context,this.paneId,this.state,this.stagedAttachmentGatewayOwner)),this.stagedAttachmentGatewayOwner=null,this.clearComposerPrefillAttention(),this.retainedBoardSessionKey=``,this.boardProviderLifecycleConnected=!1,this.releaseBoardProviderLease(),this.settleResetConfirmation(!1),this.paneResizeObserver?.disconnect(),this.paneResizeObserver=null,this.connectionGeneration+=1,this.retireHeaderSessionMutations(),this.retireDeferredSessionHydration(),this.sessionDiscussionPanels.clear(),this.taskSuggestionsRequestVersion+=1,this.setTaskSuggestions([]),this.taskSuggestionBusyIds.clear(),this.taskSuggestionOperations.clear(),this.resetTaskSuggestionCloudProfiles(),this.resetSessionSuggestions(),this.clearTypingActors(),this.resetSessionPullRequests(),this.resetOlderMessagesViewport(),this.nativeDraftCleanup?.(),this.nativeDraftCleanup=null,this.headerCopiedTimer!==null&&(window.clearTimeout(this.headerCopiedTimer),this.headerCopiedTimer=null),this.swarmHydrator?.dispose(),this.swarmHydrator=null,this.headerWorktreePaths.clear(),this.headerBranches.clear(),this.presencePayload=void 0,this.announceCommandPaletteTarget(null),bc(this),_E(this.presentationId),this.state=void 0,this.connectedClient=null,To(this.questionPromptState),super.disconnectedCallback()}}})))()}var CE;function wE(){return(wE=e((()=>{Ar(),$t(),ga(),Kt(),hr(),Ct(),A(),N(),wm(),Q(),SE(),Jb(),jp(),aS(),vw(),Zv(),gE(),Tx(),As(),Ic(),Yl(),cu(),Zl(),yd(),Hu(),Cf(),Ol(),o(),CE=class extends xE{constructor(...e){super(...e),this.outboxRecoveryReady=!1}disconnectedCallback(){this.continueInTerminalDialog=null,this.gatewayConnectionLifecycle?.dispose(),this.gatewayConnectionLifecycle=void 0,this.outboxRecoveryReady=!1,super.disconnectedCallback()}async moveHeaderPlacement(e){let t=this.captureConnectionScope();if(!t)return;let n={client:t.client,connectionGeneration:t.generation,gatewaySnapshot:t.context.gateway.snapshot,movingKey:this.headerPlacementMovingKey,row:e,isCurrent:()=>this.ownsHeaderOutcomeScope(t),onMovingChange:t=>{(t!==null||this.headerPlacementMovingKey===e.key)&&(this.headerPlacementMovingKey=t)},publishError:e=>this.publishHeaderError(e,t.headerOutcomeOwner),refreshReplacement:e=>t.sessions.refreshReplacement(e),requestUpdate:()=>this.requestUpdate()},{moveChatPanePlacement:r}=await i(async()=>{let{moveChatPanePlacement:e}=await import(`./chat-pane-placement.runtime-CS9vR24w.js`);return{moveChatPanePlacement:e}},__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,35,36]),import.meta.url);await r(n)}async reclaimHeaderPlacement(e){let t=this.captureConnectionScope();if(!t)return;let n={client:t.client,connectionGeneration:t.generation,gatewaySnapshot:t.context.gateway.snapshot,reclaimingKey:this.headerPlacementReclaimingKey,row:e,isCurrent:()=>this.ownsHeaderOutcomeScope(t),onReclaimingChange:t=>{(t!==null||this.headerPlacementReclaimingKey===e.key)&&(this.headerPlacementReclaimingKey=t)},publishError:e=>this.publishHeaderError(e,t.headerOutcomeOwner),refreshReplacement:e=>t.sessions.refreshReplacement(e),requestUpdate:()=>this.requestUpdate()},{reclaimChatPanePlacement:r}=await i(async()=>{let{reclaimChatPanePlacement:e}=await import(`./chat-pane-placement.runtime-CS9vR24w.js`);return{reclaimChatPanePlacement:e}},__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,35,36]),import.meta.url);await r(n)}applySessionsState(e){let t=this.state;if(!t)return;let n=this.context.sessions.deletionState(t.sessionKey,X(t));for(let{key:n,agentId:r}of e.deletedSessions)Gl(t.chatMessagesBySession,t,{sessionKey:n,agentId:r});(!Dt(t,t.sessionKey)||e.agentId===X(t))&&(t.sessionsResult=e.result,t.sessionsResultAgentId=e.agentId),t.sessionsLoading=e.loading,t.sessionsError=e.error,this.refreshSwarmRoster();let r=Sx(t);if(Vb(t,r)&&this.presented&&this.markSessionRead(r),this.syncSessionSuggestionTarget(e.agentId??X(t)??`main`,r),n){let e=E(t.sessionKey)?.agentId??this.context.agentSelection.state.selectedId??`main`;this.onSessionDeleted?.(this.paneId,t.sessionKey,Ye({agentId:e,mainKey:$e({agentsList:this.context.agents.state.agentsList,hello:this.context.gateway.snapshot.hello})}),n===`pending`);return}let i=Jl(t);this.reconcileWaitingApprovalSnapshot(),i?_w(t):this.presented&&t.requestUpdate?.()}reconcileWaitingApprovalSnapshot(e){let t=this.state,n=e??this.context?.overlays?.snapshot.approvalQueue;return!t||!n?!1:cd(t,n)}applyApplicationConfig(e){let t=this.state;if(!t)return;let n=t.terminalAvailable;t.terminalAvailable=e.terminalEnabled&&t.connected&&ln(t.hello?.auth??null)&&K(this.context.gateway.snapshot,`terminal.open`)===!0;let r=t.localMediaPreviewRoots.length!==e.localMediaPreviewRoots.length||t.localMediaPreviewRoots.some((t,n)=>t!==e.localMediaPreviewRoots[n]);!r&&t.terminalAvailable===n&&t.embedSandboxMode===e.embedSandboxMode&&t.allowExternalEmbedUrls===e.allowExternalEmbedUrls&&t.automaticallyFetchFavicons===e.automaticallyFetchFavicons||(r&&Ps(t.requestUpdate),t.localMediaPreviewRoots=e.localMediaPreviewRoots,t.embedSandboxMode=e.embedSandboxMode,t.allowExternalEmbedUrls=e.allowExternalEmbedUrls,t.automaticallyFetchFavicons=e.automaticallyFetchFavicons,t.requestUpdate?.())}applyGatewaySnapshot(e){let t=this.state;if(!t)return;let n=Hb(t),r=t.connected,i=t.assistantAgentId,a=E(t.sessionKey)?.agentId??this.context.agentSelection.state.selectedId??e.assistantAgentId,o=St(t,t.sessionKey),s=(this.gatewayConnectionLifecycle??=be({client:t.client,phase:t.connected?`connected`:`stopped`})).transition(e),c=this.connectedClient!==e.client;if(c&&this.replaceStagedAttachmentGatewayOwner(e.client),e.phase!==`connected`)this.presencePayload=void 0;else if(c||!r){let t=Yt(e.hello?.snapshot);this.presencePayload=t?{presence:t}:void 0}s&&(this.continueInTerminalDialog=null,this.cancelHeaderRename(),Bl(t),Ps(t.requestUpdate),r&&(e.phase===`connected`&&Ap(t),t.chatSending=!1,t.chatSendingScopeKey=null,_i(t.client)),this.connectionGeneration+=1,this.retireHeaderSessionMutations(),lm(t),t.assistantIdentityRequestVersion+=1,rE(t),this.swarmHydrator?.dispose(),this.swarmHydrator=null,this.taskSuggestionsRequestVersion+=1,this.setTaskSuggestions([]),this.taskSuggestionBusyIds.clear(),this.taskSuggestionOperations.clear(),this.resetTaskSuggestionCloudProfiles(),this.resetSessionSuggestions(),this.clearTypingActors(),this.sessionDiscussionStates.clear(),this.sessionDiscussionOpenUrls.clear(),this.sessionDiscussionPanels.clear(),this.sessionParticipationTracker.reset(),t.client!==e.client&&this.sessionCompanionThreads.retire(),this.sessionSharingStates=new Map,t.guardianNotices=[],this.resetSessionPullRequests(),this.resetOlderMessagesViewport(),t.chatLoading=!1),(s||i!==a&&Dt(t,t.sessionKey))&&jv(t),t.client=e.client,t.connected=e.phase===`connected`;let l=t.connected&&!!t.client?.recoveryScopeReady,u=l&&(c||!this.outboxRecoveryReady);this.outboxRecoveryReady=l,t.connectionEpoch=this.connectionGeneration,t.hello=e.hello,t.selfUser=e.selfUser??null,t.assistantAgentId=a,r&&!t.connected&&(t.chatLoading=wy(t).phase===`pending-connection`);let d=!r&&t.connected?Tb(t):void 0;s&&rc(t),!s&&n!==Hb(t)&&Ps(t.requestUpdate),t.canvasPluginSurfaceUrl=e.canvasPluginSurfaceUrl,t.terminalAvailable=this.context.config.current.terminalEnabled&&e.phase===`connected`&&ln(e.hello?.auth??null)&&K(e,`terminal.open`)===!0,t.browserPanelAvailable=e.phase===`connected`&&ln(e.hello?.auth??null)&&K(e,`browser.request`)===!0;let f=e.phase===`connected`&&ln(e.hello?.auth??null)&&K(e,`desktop.observe`)===!0,p=St(t,t.sessionKey);if(p&&(c||p!==o)){let e=hd({settings:cn(),sessionKey:p,browserAvailable:t.browserPanelAvailable,desktopAvailable:f}),n=e.sidebarSessionLayouts?.[p];n===void 0?c?t.sidebarLayout={columns:[]}:t.sidebarLayout.columns.length>0&&t.updateSidebarLayout(t.sidebarLayout):t.sidebarLayout=ot(n),t.sidebarFocusPanelId=e.sidebarSessionActivePanels?.[p]??``,t.sidebarFocusVersion+=1}t.connected&&t.pendingAbort&&Vu(t).finally(()=>t.requestUpdate?.());let m=this.sessionKey.trim(),h=Be(m);if(s&&e.phase===`connected`&&t.sessionKey&&!c&&!h){let e=mE(t,{startup:!0,awaitHistory:!0,deferBranches:!0,historyLoad:d});this.deferSessionHydrationUntilTranscript(t.sessionKey,e.then(()=>wy(t).phase===`committed`))}let g=m&&!h?ze(m,e.hello):null;if(!(m&&g&&g!==m&&this.active&&this.presented&&(this.onPaneSessionChange?.(this.paneId,g,{replace:!0}),t.requestUpdate?.(),t.sessionKey!==g))){if(s&&(t.assistantName=this.context.config.current.assistantIdentity.name),e.phase!==`connected`){if(r){let e=typeof t.currentSessionId==`string`?t.currentSessionId.trim():``;e&&(t.reconnectResumeSessionId=e),Ap(t)}this.connectedClient=null,wa(this.questionPromptState,null),nS(t),yf(t,{preserveStreamSegments:t.chatRunId!==null}),t.requestUpdate?.();return}if(this.refreshSwarmRoster(),(c||s&&h)&&e.client){let n=e.client,r=this.connectionGeneration,i=t.sessionKey,a=()=>this.connectionGeneration===r&&this.connectedClient===n&&t.client===n&&t.connected,o=async()=>{if(!a())return;let e=await this.context.agents.ensureList();a()&&(e&&jb(t,e,n),t.requestUpdate?.())};if(this.connectedClient=n,wa(this.questionPromptState,n),Va(this.questionPromptState,n,a),this.headerWorktreePaths.clear(),this.headerBranches.clear(),this.headerPlatform=null,this.loadHeaderPlatform(n,r),h){this.loadCatalogSession(h,!1),t.requestUpdate?.();return}cb(t,{force:!0});let s=mE(t,{startup:!0,awaitHistory:!0,deferBranches:!0,historyLoad:d});this.deferSessionHydrationUntilTranscript(i,s.then(()=>wy(t).phase===`committed`)),s.finally(()=>{o()}),dE(t).finally(()=>t.requestUpdate?.()),t.loadAssistantIdentity(),this.refreshTaskSuggestions(),this.refreshSessionSuggestions()}u&&!h&&_w(t),this.reconcileWaitingApprovalSnapshot(),t.requestUpdate?.()}}}})))()}var TE;function EE(){return(EE=e((()=>{vn(),Wr(),U(),qi(),I(),hr(),w(),Da(),N(),Pe(),wE(),z_(),Tx(),Gc(),o(),TE=class extends CE{constructor(...e){super(...e),this.headerSessionOperationsLoad=null}async loadHeaderPlatform(e,t){if(!K(this.context.gateway.snapshot,`system.info`))return;let n=P_.get(e);n||(n=e.request(`system.info`,{}).then(e=>e.platform).catch(()=>null),P_.set(e,n));try{let r=await n;this.connectedClient===e&&this.connectionGeneration===t&&(this.headerPlatform=r)}catch{}}async handleHeaderSessionAction(e,t){if(e.kind===`open-in`){ko(e.editor,e.path);return}if(e.kind===`rename`){this.beginHeaderRename(t);return}if(e.kind===`copy-session-id`){let e=t.sessionId?await at(t.sessionId):!1;se({message:G(e?`common.copied`:`common.copyFailed`)});return}if(e.kind===`continue-in-terminal`){this.openContinueInTerminalDialog(t);return}let n=this.captureHeaderSessionActionScope();if(!n){this.publishHeaderError(G(`sessionsView.actionRequiresConnection`));return}let r=this.headerOutcomeOwner,a=e=>({key:e.key,sessionId:e.sessionId,label:p(e.label)??p(this.paneTitle)??e.key,pinned:e.pinned===!0,unread:e.unread===!0,archived:e.archived===!0,category:e.category,active:!0,hasActiveRun:e.hasActiveRun??e.status===`running`,gatewayHasActiveRun:e.hasActiveRun}),o=a(t),s=(e=!1)=>{let r=n.sessions.state.result?.sessions.find(e=>F(e.key,t.key)&&(!o.sessionId||e.sessionId===o.sessionId))??(o.sessionId?t:null);return!r&&e&&se({message:G(`common.refresh`)}),r?a(r):null};try{let t=await(this.headerSessionOperationsLoad??=i(()=>import(`./session-organizer-operations.runtime-Bya7cfJM.js`),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,38]),import.meta.url)),a={sessionData:{isSessionMutationScopeCurrent:e=>this.isHeaderSessionActionCurrent(e,r),publishSessionMutationError:(e,t)=>{this.isHeaderSessionActionCurrent(e,r)&&this.publishHeaderError(t,r)},refreshSidebarSessions:async e=>{await n.sessions.refreshReplacement(e)}},pruneSidebarSessionEntry:e=>{let t=pn({type:`session`,key:e}),r=n.context.navigation.snapshot.sidebarEntries.filter(e=>e!==t);n.context.navigation.update({sidebarEntries:r})},selectSession:e=>this.onPaneSessionChange?.(this.paneId,e),sidebarSessionStatusFilter:()=>`active`,knownSessionGroups:()=>qa(n.sessions.state.groups,n.sessions.state.result?.sessions??[])};switch(e.kind){case`toggle-pin`:{let e=s(!0);e&&await t.patchSession(a,e,{pinned:!e.pinned},n);break}case`toggle-unread`:{let e=s(!0);e&&await t.patchSession(a,e,{unread:!e.unread},n);break}case`set-icon`:case`set-color`:{let r=s(!0);if(r){let i=e.kind===`set-icon`?{icon:e.icon}:{color:e.color};await t.patchSession(a,r,i,n)}break}case`assign-owner`:await t.assignSessionOwner(a,o,e.owner,n);break;case`fork`:await t.forkSession(a,o,n);break;case`move-to-group`:await t.assignSessionCategory(a,o,e.category,n,{},{resolveSession:s});break;case`new-group`:{let{showInputDialog:e}=await i(async()=>{let{showInputDialog:e}=await import(`./input-dialog-BErqtvL-.js`);return{showInputDialog:e}},__vite__mapDeps([39,1,3,2,4,5,6,7,8]),import.meta.url),c=await e({title:G(`sessionsView.newGroupTitle`),label:G(`sessionsView.newGroupPrompt`),submitLabel:G(`sessionsView.newGroupCreate`),requireValue:!0});c&&this.isHeaderSessionActionCurrent(n,r)&&await t.assignSessionCategory(a,o,c,n,{},{resolveSession:s});break}case`toggle-archived`:o.archived?await t.patchSession(a,o,{archived:!1},n):await t.archiveSessionWithUndo(a,o,n);break;case`delete`:await t.deleteSession(a,o,n)}}catch(e){this.isHeaderSessionActionCurrent(n,r)&&this.publishHeaderError(e,r)}}resolveContinueInTerminalCommand(e,t){return oc({gatewayUrl:t.gatewayUrl,sessionKey:e.key,rowAgentId:e.agentId,selectedAgentId:this.context.agentSelection.state.selectedId??void 0})}continueInTerminalDisabledReason(e){let t=this.context.gateway,n=t.snapshot.client;if(t.snapshot.phase!==`connected`||!n)return G(`chat.sessionHeader.continueInTerminal.disconnected`);let r=this.resolveContinueInTerminalCommand(e,n);if(!r.ok)return G(r.reason===`query-routed`?`chat.sessionHeader.continueInTerminal.queryRouted`:`chat.sessionHeader.continueInTerminal.unavailable`)}openContinueInTerminalDialog(e){let t=this.captureConnectionScope();if(!t)return;let n=this.resolveContinueInTerminalCommand(e,t.client);n.ok&&(this.continueInTerminalDialog={qualifiedSessionKey:n.qualifiedSessionKey,selectedGatewayUrl:this.context.gateway.connection.gatewayUrl,clientGatewayUrl:t.client.gatewayUrl,scope:t},this.requestUpdate())}closeContinueInTerminalDialog(){this.continueInTerminalDialog&&(this.continueInTerminalDialog=null,this.requestUpdate())}currentContinueInTerminalCommand(e){let t=this.continueInTerminalDialog,n=this.context.gateway,r=n.snapshot.client;if(!t)return null;let i=e&&r?this.resolveContinueInTerminalCommand(e,r):null;return!this.isConnectionScopeCurrent(t.scope)||!i?.ok||i.qualifiedSessionKey!==t.qualifiedSessionKey||n.connection.gatewayUrl!==t.selectedGatewayUrl||r?.gatewayUrl!==t.clientGatewayUrl?(this.continueInTerminalDialog=null,null):i.command}captureHeaderSessionActionScope(){let e=this.context.gateway,t=e.snapshot.client;return e.snapshot.phase!==`connected`||!t?null:{epoch:this.connectionGeneration,context:this.context,gateway:e,sessions:this.context.sessions,client:t,selectedAgentId:this.context.agentSelection.state.selectedId??`main`,signal:this.headerSessionMutationAbortController.signal}}isHeaderSessionActionCurrent(e,t){return this.ownsHeaderOutcome(t)&&this.isConnected&&this.context===e.context&&this.context.gateway===e.gateway&&this.context.sessions===e.sessions&&e.gateway.snapshot.phase===`connected`&&e.gateway.snapshot.client===e.client}beginHeaderRename(e){let t=M(this.context.gateway.snapshot,{method:`sessions.patch`,params:{key:e.key,label:null}});if(!t.allowed){this.publishHeaderError(t.reason);return}let n=p(e.label)??null,r=E(e.key)?.rest.startsWith(`dashboard:`)?p(e.displayName)??(e.worktree?void 0:p(e.derivedTitle)):void 0;this.headerRenameSession={key:e.key,sessionId:e.sessionId,label:e.label},this.headerRenameInitialValue=n??r??``,this.headerRenameValue=this.headerRenameInitialValue,this.headerEditing=!0,this.updateComplete.then(()=>{let e=this.querySelector(`.chat-pane__session-title-input`);e?.focus(),e?.select()})}cancelHeaderRename(){this.headerEditing=!1,this.headerRenameSession=null}commitHeaderRename(){if(!this.headerEditing)return;let e=this.headerRenameSession,t=p(e?.label)??null,n=this.headerRenameValue.trim(),r=n||null,i=t===null&&n===this.headerRenameInitialValue.trim(),a=r===t;this.headerEditing=!1,this.headerRenameSession=null;let o=this.state;if(!e||!o||i||a)return;let s=M(this.context.gateway.snapshot,{method:`sessions.patch`,params:{key:e.key,label:r}});if(!s.allowed){this.publishHeaderError(s.reason);return}let c=this.headerOutcomeOwner;this.context.sessions.patch(e.key,{label:r},{agentId:X(o),expectedSessionId:e.sessionId}).catch(e=>this.publishHeaderError(e,c))}async loadHeaderMenuData(e,t,n){let r=this.connectedClient;if(!r)return;let i=[],a=(e.execNode?e.execCwd?.trim():void 0)||e.spawnedWorkspaceDir?.trim()||e.spawnedCwd?.trim()||null,o=e.worktree?.id;if(o&&!a){let e=this.headerWorktreePaths.get(o)??{};this.headerWorktreePaths.set(o,e),!e.loaded&&!e.loading&&(e.loading=!0,i.push(r.request(`worktrees.list`,{}).then(t=>{e.path=t.worktrees.find(e=>e.id===o&&e.removedAt===void 0)?.path??null,e.loaded=!0}).catch(()=>{e.path=null,e.loaded=!1}).finally(()=>{e.loading=!1})))}let s=e.worktree?void 0:t?.trim(),c=a||(o?this.headerWorktreePaths.get(o)?.path:void 0)||s,l=!!e.execNode||cr(e.placement?.state),u=c===s?n:!!c;if(!e.worktree&&!l&&c&&u){let e=this.headerBranches.get(c)??{};this.headerBranches.set(c,e),e.loading||(e.loading=!0,i.push(r.request(`worktrees.branches`,{repoRoot:c}).then(t=>{e.value=t.headBranch??null}).catch(()=>{e.value=null}).finally(()=>{e.loading=!1})))}await Promise.all(i),this.requestUpdate()}showHeaderCopied(e){this.headerCopiedAction=e,this.headerCopiedTimer!==null&&window.clearTimeout(this.headerCopiedTimer),this.headerCopiedTimer=window.setTimeout(()=>{this.headerCopiedAction=null,this.headerCopiedTimer=null},1500)}handleHeaderMenuAction(e,t,n,r,i=at){let a=e===`copy-path`?n:e===`copy-branch`?r:null;if(a){let t=this.headerOutcomeOwner;i(a).then(n=>{this.ownsHeaderOutcome(t)&&(n?this.showHeaderCopied(e):this.publishHeaderError(G(`common.copyFailed`),t))});return}e===`reveal`&&n&&this.revealHeaderWorkspace(t)}publishHeaderError(e,t=this.headerOutcomeOwner){!this.state||!this.ownsHeaderOutcome(t)||(this.state.chatError=this.state.lastError=P(e),this.state.requestUpdate?.())}async revealHeaderWorkspace(e){let t=this.connectedClient;if(!t)return;let n=this.headerOutcomeOwner,r=E(e.key)?.agentId;try{let i=await t.request(`sessions.files.reveal`,{key:e.key,...r?{agentId:r}:{}});if(!i.ok){let e=i.error??`Failed to reveal session workspace.`;this.publishHeaderError(e,n)}}catch(e){this.publishHeaderError(e,n)}}}})))()}var DE;function OE(){return(OE=e((()=>{It(),$t(),Fn(),U(),hr(),EE(),Tx(),Hu(),DE=class extends TE{async probeSessionDiscussion(e){let t=this.state;if(!t?.connected||!t.client||this.sessionDiscussionStates.has(e)||this.sessionDiscussionProbes.has(e)||K(this.context.gateway.snapshot,`session.discussion.info`)!==!0)return;let n=this.connectionGeneration;this.sessionDiscussionProbes.add(e);try{let r=await t.client.request(`session.discussion.info`,{sessionKey:e,agentId:X(t)});if(n!==this.connectionGeneration)return;this.sessionDiscussionStates.set(e,r.state),this.requestUpdate()}catch{}finally{this.sessionDiscussionProbes.delete(e),n!==this.connectionGeneration&&this.state?.sessionKey===e&&!this.sessionDiscussionStates.has(e)&&this.probeSessionDiscussion(e)}}buildSessionDiscussionPanel(e,t){if(!e.connected||!e.client)return null;let n=Sn(this.context.gateway.snapshot.hello?.auth??null)&&K(this.context.gateway.snapshot,`session.discussion.open`)===!0,r=this.connectionGeneration,i=this.sessionDiscussionPanels.get(t);if(i?.generation===r&&i.canOpen===n)return i.config.openUrl=this.sessionDiscussionOpenUrls.get(t)??null,i.config;let a={sessionKey:t,canOpen:n,openUrl:this.sessionDiscussionOpenUrls.get(t)??null,loadInfo:async t=>{if(!e.connected||!e.client)throw Error(G(`chat.sessionDiscussion.disconnected`));return await e.client.request(`session.discussion.info`,{sessionKey:t,agentId:X(e)})},openDiscussion:async t=>{if(!e.connected||!e.client)throw Error(G(`chat.sessionDiscussion.disconnected`));return await e.client.request(`session.discussion.open`,{sessionKey:t,agentId:X(e)})},onStateChange:(t,n,i)=>{if(r!==this.connectionGeneration)return;this.sessionDiscussionStates.set(t,n);let a=e.sessionKey.trim()===t;if(a&&this.sessionDiscussionOpenUrls.set(t,i),n===`none`&&this.sessionDiscussionOpenUrls.delete(t),n===`none`&&a){e.updateSidebarLayout(zu(e.sidebarLayout,`discussion`));return}e.requestUpdate()}};return this.sessionDiscussionPanels.set(t,{generation:r,canOpen:n,config:a}),a}openSessionDiscussionSlot(){let e=this.state;if(!e)return!1;let t=ud(e.sidebarLayout,`discussion`),n=t.columns.flatMap(e=>e.panels).find(e=>e.slot===`discussion`);n&&(t=$l(t,n.id));let r=this.paneWidth>=680?Lu(t,this.paneWidth)??t:t;return this.commitSidebarLayout(r),n&&e.updateSidebarActivePanel(n.id),!0}resolveSessionDiscussionAction(){let e=this.state,t=e?.sessionKey.trim()??``,n=t?this.sessionDiscussionStates.get(t):void 0;if(!e?.connected||!e.client||!t||n===void 0||n===`none`||K(this.context.gateway.snapshot,`session.discussion.info`)!==!0||!this.buildSessionDiscussionPanel(e,t))return null;let r=e.sidebarLayout.columns.some(e=>e.panels.some(e=>e.slot===`discussion`));return{active:r,label:G(r?`chat.sessionDiscussion.hide`:`chat.sessionDiscussion.show`),onToggle:()=>r?this.commitSidebarLayout(zu(e.sidebarLayout,`discussion`)):this.openSessionDiscussionSlot()}}renderSessionDiscussionAction(e=this.resolveSessionDiscussionAction()){return e?B`
|
||
<openclaw-tooltip .content=${e.label}>
|
||
<button
|
||
class="btn btn--ghost btn--icon chat-icon-btn chat-session-discussion-toggle"
|
||
type="button"
|
||
aria-label=${e.label}
|
||
aria-pressed=${String(e.active)}
|
||
@click=${e.onToggle}
|
||
>
|
||
${W.messageSquare}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
`:z}}})))()}var kE;function AE(){return(AE=e((()=>{It(),Hf(),Dn(),Gr(),$t(),kn(),Jn(),Fn(),Ni(),$i(),Ti(),Wr(),U(),hr(),co(),w(),Da(),N(),Lf(),Q(),OE(),h_(),$v(),nc(),Wc(),hc(),pc(),Qs(),wc(),Yl(),kE=class extends DE{personActivityRouting(){return Lr(this.context)}resolveWorkspaceIcon(e){if(!e)return null;let t=this.context.gateway,n=sn({hello:t.snapshot.hello,settings:{token:t.connection.token},password:t.connection.password});return{routeUrl:Kf(`workspaceIcon`,this.context.resourceBasePath,e),authTokens:n,authReady:!!(t.snapshot.hello||n.length)}}compactHeaderStatusActions(){return!this.narrow||!this.context.overlays.snapshot.controlUiRefreshRequired?[]:[{id:`refresh`,label:`${G(`chat.sidebar.serverUpdatedTitle`)} · ${G(`chat.sidebar.serverUpdatedRefresh`)}`,icon:W.refresh,tone:`info`,onActivate:()=>globalThis.location.reload()}]}renderPaneHeader(e,t,n,r,i,a,o){let s=this.resolveBoardView(),c=s.hasBoard&&s.provider.canMutate,l=gc({session:n,agentWorkspace:n?.worktree?void 0:i,worktreePath:n?.worktree?this.headerWorktreePaths.get(n.worktree.id)?.path:void 0}),u=!!n?.execNode||cr(n?.placement?.state),d=n?.worktree?.branch||(u||!l.root?null:this.headerBranches.get(l.root)?.value)||null,f=uc({session:n,workspaceRoot:l.root,methodAdvertised:K(this.context.gateway.snapshot,`sessions.files.reveal`)===!0,hasAdminAccess:ln(this.context.gateway.snapshot.hello?.auth??null)}),m=this.state?this.state.chatSending||rs({canAbort:Nl(this.state),onAbort:()=>void 0,queue:this.state.chatQueue,runStatus:this.state.chatRunStatus,sessionKey:this.state.sessionKey}):!1,h=Qv(this.context.gateway.snapshot,!!this.state?.chatRunId).branchSwitch,g=this.state&&this.isCurrentSessionArchived(this.state)?G(`chat.archivedSessionDisabled`):h.allowed?m?G(`chat.sessionHeader.branchSwitchUnavailable`):null:h.reason,_=this.context.gateway.snapshot,v=K(_,`session.visibility.set`)===!0,y=M(_,{method:`session.members.listEvidence`,requiredScope:`operator.read`}),b=M(_,{method:`session.visibility.set`,requiredScope:`operator.write`}),x=M(_,{method:`session.members.add`,requiredScope:`operator.write`}),S=M(_,{method:`session.members.remove`,requiredScope:`operator.write`}),C=y.allowed||b.allowed?void 0:y.reason,w=v&&n?{session:n,state:this.sessionSharingStates.get(this.sessionSharingCacheKey(n.key)),allowedVisibilities:_.hello?.policy?.allowedSessionVisibilities,membersAvailable:y.allowed,openDisabledReason:C,visibilityDisabledReason:b.allowed?void 0:b.reason,memberAddDisabledReason:x.allowed?void 0:x.reason,memberRemoveDisabledReason:S.allowed?void 0:S.reason,onOpen:()=>void this.loadSessionSharing(n),onVisibilityChange:e=>void this.setSessionVisibility(n,e),onMemberChange:(e,t)=>void this.setSessionMember(n,e,t)}:null,ee=n?M(this.context.gateway.snapshot,{method:`sessions.patch`,params:{key:n.key,label:null}}):null,T=this.state?.connected!==!0||!ee?G(`sessionsView.actionRequiresConnection`):ee.allowed?void 0:ee.reason,te=$e({agentsList:this.context.agents.state.agentsList,hello:this.context.gateway.snapshot.hello}),E=!!(n&&Ke(n,te)),ne=!!(n&&Re([n],te)),re=n?Fo({snapshot:this.context.gateway.snapshot,session:n}):{},ie=n?M(this.context.gateway.snapshot,{method:`sessions.assignOwner`,params:{key:n.key,owner:{type:`human`,id:_.selfUser?.id??`profile`}},requiredScope:`operator.write`}):null,ae=n?this.continueInTerminalDisabledReason(n):void 0,D={...re,...ie&&!ie.allowed?{"assign-owner":ie.reason}:{},...ae?{"continue-in-terminal":ae}:{}},O=p_(n)!==null&&On(this.context.gateway.snapshot),oe=e.onToggleDesktop??(()=>void 0),se=this.resolveSessionDiscussionAction(),ce=(o??this.state?.sidebarLayout)?.open===!0,le=B`<openclaw-tooltip
|
||
.content=${G(ce?`chat.sidePanel.minimize`:`chat.sidePanel.label`)}
|
||
>
|
||
<button
|
||
class="btn btn--ghost btn--icon chat-icon-btn chat-side-panel-toggle"
|
||
type="button"
|
||
aria-label=${G(ce?`chat.sidePanel.minimize`:`chat.sidePanel.label`)}
|
||
aria-expanded=${String(ce)}
|
||
@click=${()=>this.setChatSidePanelOpen(!ce,o)}
|
||
>
|
||
${ce?W.panelRightClose:W.panelRightOpen}
|
||
</button>
|
||
</openclaw-tooltip>`,k=e.onToggleBrowser?B`<openclaw-tooltip .content=${G(`browser.toggle`)}>
|
||
<button
|
||
class="btn btn--ghost btn--icon chat-icon-btn chat-browser-panel-toggle"
|
||
type="button"
|
||
aria-label=${G(`browser.toggle`)}
|
||
@click=${e.onToggleBrowser}
|
||
>
|
||
${W.globe}
|
||
</button>
|
||
</openclaw-tooltip>`:z,ue=r?z:Kc(t),de=this.selectedSessionRailMode(this.state?.sessionKey??``),fe=()=>this.requestSessionRail(`toggle`),pe=[];e.onToggleTerminal&&pe.push({id:`terminal`,label:G(`terminal.toggle`),icon:W.terminal,onActivate:e.onToggleTerminal}),e.onToggleBrowser&&pe.push({id:`browser`,label:G(`browser.toggle`),icon:W.globe,onActivate:e.onToggleBrowser}),O&&e.onToggleDesktop&&pe.push({id:`desktop`,label:G(`desktop.toggle`),icon:W.monitor,onActivate:oe}),se&&pe.push({id:`discussion`,label:se.label,icon:W.messageSquare,active:se.active,onActivate:se.onToggle}),e.onOpenDiff&&pe.push({id:`changes`,label:G(`chat.sessionDiff.show`),icon:W.diff,onActivate:e.onOpenDiff}),t&&pe.push({id:`background-tasks`,label:G(t.collapsed?`chat.backgroundTasks.show`:`chat.backgroundTasks.collapse`),icon:W.listChecks,active:!t.collapsed,badge:t.activeCount,onActivate:t.onToggleCollapsed}),pe.push({id:`session-files`,label:G(e.collapsed?`chat.workspaceFiles.showFiles`:`chat.workspaceFiles.collapse`),icon:W.fileText,active:!e.collapsed,badge:e.list?.files.filter(e=>e.kind===`modified`).length??0,onActivate:e.onToggleCollapsed}),pe.push({id:`session-companion`,label:G(de===`expanded`?`chat.rail.collapse`:`chat.rail.show`),icon:W.spark,active:de===`expanded`,onActivate:fe});let me=[];this.onOpenSplitView&&me.push({id:`open-split-view`,label:G(`chat.splitView.open`),icon:W.columns2,onActivate:this.onOpenSplitView}),!this.narrow&&this.onSplitDown&&me.push({id:`split-down`,label:G(`chat.splitView.splitDown`),icon:W.panelBottomOpen,onActivate:()=>this.onSplitDown?.(this.paneId)}),!this.narrow&&this.onSplitRight&&me.push({id:`split-right`,label:G(`chat.splitView.splitRight`),icon:W.panelRightOpen,onActivate:()=>this.onSplitRight?.(this.paneId)});let he=m_({gatewaySnapshot:this.context.gateway.snapshot,movingKey:this.headerPlacementMovingKey,reclaimingKey:this.headerPlacementReclaimingKey,row:n}),ge=this.state?.sessionKey??``,_e=this.state?.sessionsResult,A=qa(this.context.sessions?.state?.groups??[],this.context.sessions?.state?.result?.sessions??[]),ve=(_e?.owners?.length??0)>=2||(n?.participantCount??0)>0,ye=this.personActivityRouting(),j=ve?n?.owner?.actor.identity:void 0,be=r?void 0:Ia(this.presencePayload,_.selfUser,_.client?.instanceId,ge,j),xe=ra(this.presencePayload).users.some(e=>Yi(e,j)&&e.watchedSessions.includes(ge)),Se=Vo({facet:_e?.owners,agents:this.context.agents.state.agentsList?.agents,self:_.selfUser??null}),Ce=_.selfUser?Se.find(e=>e.type===`human`&&e.id===_.selfUser?.id)??null:null,we=jc({paneId:this.paneId,narrow:this.narrow,mergedChrome:this.mergedChrome,navDrawerOpen:this.navDrawerOpen,title:this.paneTitle,session:n,showOwnerChip:ve,ownerViewing:xe,personActivity:ye,catalog:r,catalogColor:this.catalogSession?.color,editing:this.headerEditing&&this.headerRenameSession?.key===n?.key,renameValue:this.headerRenameValue,workspaceRoot:l.root,workspaceLabel:l.label,workspaceIcon:this.resolveWorkspaceIcon(l.root?n?.key:void 0),parentSession:Tc(n,this.state?.sessionsResult?.sessions??[]),branch:d,branches:this.state?Cb(this.state):[],branchSwitchDisabledReason:g,platform:this.headerPlatform,canReveal:f,copiedAction:this.headerCopiedAction,renameDisabledReason:T,panelActions:B`${k}${ue}${le}`,discussionAction:z,diffAction:z,backgroundTasksAction:z,sessionRailAction:z,workspaceAction:z,presence:be?.length?B`<openclaw-viewer-facepile
|
||
class="chat-pane__presence"
|
||
.staticUsers=${be}
|
||
.maxVisible=${4}
|
||
.personActivity=${ye}
|
||
variant="session"
|
||
></openclaw-viewer-facepile>`:z,faceControl:Mf({hasBoard:s.hasBoard,face:s.face,dock:s.dock,canChangeDock:c,fullscreenControl:s.hasBoard?this.boardFullscreen.renderButton():void 0,onSelectMode:e=>{if(e===`chat`&&this.boardFullscreen.exit(),!c){let t=e===`chat`?`chat`:`dashboard`;this.syncChatSidebarForDock(t===`dashboard`?s.dock:`hidden`),this.persistBoardSessionView({face:t});return}if(e===`chat`){this.syncChatSidebarForDock(`hidden`),this.persistBoardSessionView({face:`chat`});return}this.persistBoardSessionView({face:`dashboard`}),e===`split`?s.dock===`hidden`?this.handleBoardDockChange(s.reopenDock):this.syncChatSidebarForDock(s.dock):s.dock!==`hidden`&&this.handleBoardDockChange(`hidden`)},onDockSideChange:e=>this.handleBoardDockChange(e)}),sharingControl:w&&(!this.narrow||!Ss(w.session))?Xs(w):z,sessionMenuAction:n&&this.state?B`<openclaw-chat-header-session-menu
|
||
.session=${{label:p(n.label)??p(this.paneTitle)??n.key,sessionId:n.sessionId??null,isChild:!!De(n),pinned:n.pinned===!0,unread:n.unread===!0,archived:n.archived===!0,category:p(n.category)??null,icon:p(n.icon)??null,color:p(n.color)??null,categoryClearReturnsToGroups:!1}}
|
||
.worktreePath=${n.execNode||!Pi()?null:l.root}
|
||
.onboarding=${this.onboarding}
|
||
.preferencesBrowserOnly=${this.context.runtimeConfig?.state.connected&&this.context.runtimeConfig.canPatch===!1}
|
||
.compact=${this.narrow}
|
||
.settings=${this.state.settings}
|
||
.panelActions=${pe}
|
||
.layoutActions=${me}
|
||
.statusActions=${this.compactHeaderStatusActions()}
|
||
.sharing=${w}
|
||
.groups=${A}
|
||
.ownerOptions=${Se}
|
||
.selfOwner=${Ce}
|
||
.currentOwnerId=${n.owner?.actor.id??null}
|
||
.actionDisabledReasons=${D}
|
||
.forkDisabled=${this.state.sessionsLoading||n.modelSelectionLocked===!0}
|
||
.forkFromLastCompleted=${n.hasActiveRun===!0}
|
||
.archiveAllowed=${E}
|
||
.deleteAllowed=${ne}
|
||
.onOpen=${()=>{this.loadHeaderMenuData(n,i,a)}}
|
||
.onOpenCommandPalette=${()=>window.dispatchEvent(new Event(Kn))}
|
||
.onSettingsChange=${this.state.applySettings}
|
||
.onAction=${e=>this.handleHeaderSessionAction(e,n)}
|
||
></openclaw-chat-header-session-menu>`:z,placementMoving:he.moving,placementMoveDisabledReason:he.moveDisabledReason,placementReclaimDisabledReason:he.reclaimDisabledReason,nativeGateways:this.nativeGateways,gatewaysSnapshot:this.gatewaysSnapshot,onboarding:this.onboarding,onBeginRename:()=>n&&this.beginHeaderRename(n),onRenameInput:e=>{this.headerRenameValue=e},onCommitRename:()=>this.commitHeaderRename(),onCancelRename:()=>this.cancelHeaderRename(),onMenuOpenChange:e=>{e&&n&&this.loadHeaderMenuData(n,i,a)},onMenuAction:e=>{n&&this.handleHeaderMenuAction(e,n,l.root,d)},onOpenParentSession:e=>{this.onPaneSessionChange?.(this.paneId,e)},onPlacementMove:()=>n&&void this.moveHeaderPlacement(n),onPlacementReclaim:()=>n&&void this.reclaimHeaderPlacement(n),onBranchSelect:e=>{let t=Qv(this.context.gateway.snapshot,!!this.state?.chatRunId).branchSwitch;if(!t.allowed){this.publishHeaderError(t.reason);return}this.switchToBranch(e)},onOpenSplitView:this.onOpenSplitView,onSplitDown:this.onSplitDown,onSplitRight:this.onSplitRight,onClosePane:this.onClosePane}),Te=this.currentContinueInTerminalCommand(n);return B`${we}${Te?Bc({command:Te,onClose:()=>this.closeContinueInTerminalDialog()}):z}`}}})))()}var jE;function ME(){return(ME=e((()=>{U(),zf(),AE(),z_(),jE=class extends kE{constructor(...e){super(...e),this.removeBrowserAnnotation=e=>{let t=this.state;if(!t)return;let n=t.sessionKey;Of({getOwner:()=>this.browserAnnotationOwner(),getSessionKey:()=>this.state?.sessionKey??``,getAttachments:()=>this.state?.chatAttachments??[],setAttachments:e=>{this.state&&(this.state.chatAttachments=e)},requestUpdate:()=>this.state?.requestUpdate?.(),focusComposer:()=>{this.updateComplete.then(()=>{this.state===t&&this.state.sessionKey===n&&this.querySelector(I_)?.focus({preventScroll:!0})})},focusRestoredAnnotation:e=>{this.updateComplete.then(()=>{this.state===t&&this.state.sessionKey===n&&[...this.querySelectorAll(`[data-attachment-id]`)].find(t=>t.dataset.attachmentId===e)?.querySelector(`button`)?.focus({preventScroll:!0})})}},e,{removed:G(`chat.composer.browserAnnotationRemoved`),undo:G(`common.undo`),undoUnavailable:G(`chat.composer.browserAnnotationUndoUnavailable`)})}}}})))()}function NE(e,t){if(e)return G(FE[e.phase]);switch(t?.phase){case`pending`:case`requested`:case`provisioning`:return G(`chat.startupStatus.provisioningEnvironment`);case`syncing`:return G(`chat.startupStatus.preparingWorkspace`);case`starting`:return G(`newSession.starting`);case`active`:case`sending`:return G(`chat.composer.sendingMessage`);default:return}}function PE(e){return e?.state===`status`?e:null}var FE;function IE(){return(IE=e((()=>{U(),FE={preparing_workspace:`chat.startupStatus.preparingWorkspace`,naming_worktree:`chat.startupStatus.namingWorktree`,creating_worktree:`chat.startupStatus.creatingWorktree`,running_setup:`chat.startupStatus.runningSetup`,provisioning_environment:`chat.startupStatus.provisioningEnvironment`,preparing_context:`chat.startupStatus.preparingContext`,starting_model:`chat.startupStatus.startingModel`}})))()}function LE(e){if(!e||e.status===`ok`)return z;let t=e.totalBytes>0?Math.round((e.totalBytes-e.availableBytes)/e.totalBytes*100):0,n=e.status===`critical`;return B`
|
||
<div
|
||
class="chat-composer-neighbor-card chat-composer-neighbor-card--${n?`danger`:`warn`} chat-cloud-disk-space-notice"
|
||
role=${n?`alert`:`status`}
|
||
>
|
||
<span class="chat-composer-neighbor-card__icon" aria-hidden="true"
|
||
>${W.alertTriangle}</span
|
||
>
|
||
<div class="chat-composer-neighbor-card__copy">
|
||
<strong
|
||
>${G(n?`chat.diskSpace.criticalTitle`:`chat.diskSpace.warningTitle`)}</strong
|
||
>
|
||
<span>
|
||
${G(n?`chat.diskSpace.criticalBody`:`chat.diskSpace.warningBody`,{percent:String(t),free:me(e.availableBytes)})}
|
||
</span>
|
||
</div>
|
||
</div>
|
||
`}function RE(e,t=z){return B`
|
||
<div
|
||
class="chat-composer-neighbor-card chat-composer-neighbor-card--danger chat-error"
|
||
role="alert"
|
||
>
|
||
<span class="chat-composer-neighbor-card__icon" aria-hidden="true"
|
||
>${W.alertTriangle}</span
|
||
>
|
||
<details class="chat-error__content">
|
||
<summary class="chat-error__summary">
|
||
<strong>${e}</strong>
|
||
<span>${G(`chat.errorDetails`)}</span>
|
||
<span class="chat-error__chevron" aria-hidden="true">${W.chevronDown}</span>
|
||
</summary>
|
||
<pre class="chat-error__diagnostic" tabindex="0" aria-label=${G(`chat.errorDetails`)}>
|
||
${e}</pre>
|
||
${Wn(e,G(`chat.copyError`))}
|
||
</details>
|
||
${t}
|
||
</div>
|
||
`}function zE(e){let t=e.onDismissError?B`
|
||
<openclaw-tooltip .content=${G(`chat.actions.dismissError`)}>
|
||
<button
|
||
class="chat-error__dismiss"
|
||
type="button"
|
||
@click=${e.onDismissError}
|
||
aria-label=${G(`chat.actions.dismissError`)}
|
||
>
|
||
${W.x}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
`:z;return B`
|
||
<div class="chat-topbar-notices">
|
||
${LE(e.diskSpace)}
|
||
${e.error?RE(e.error,t):z}
|
||
${e.focusMode&&e.onToggleFocusMode?B`
|
||
<openclaw-tooltip .content=${G(`chat.actions.exitFocusMode`)}>
|
||
<button
|
||
class="chat-focus-exit"
|
||
type="button"
|
||
@click=${e.onToggleFocusMode}
|
||
aria-label=${G(`chat.actions.exitFocusMode`)}
|
||
>
|
||
${W.x}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
`:z}
|
||
</div>
|
||
`}function BE(e){return B`
|
||
${e.runError?RE(e.runError.summary):z}
|
||
${ds({conflict:e.workspaceConflict??void 0,onDismiss:e.onDismissWorkspaceConflict})}
|
||
${VE(e.placementStartup,e.messages,e.onRetrySessionPlacementStartup)}
|
||
`}function VE(e,t,n){if(e?.phase!==`failed`)return z;let r=e.action===`check-delivery`,i=r?[G(`chat.queue.checkDeliveryHelp`),e.error].filter(Boolean).join(`
|
||
|
||
`):G(`newSession.placementStartFailed`,{error:e.error??G(`newSession.createFailed`)}),a=e.initialTurn&&!Pp(t,e.initialTurn,!0);return RE(i,e.retryable&&n&&!a?B`<button class="btn btn--sm" type="button" @click=${n}>
|
||
${G(r?`chat.queue.checkDelivery`:`common.retry`)}
|
||
</button>`:z)}function HE(){return(HE=e((()=>{It(),Pn(),Fn(),U(),pt(),Hp(),ps()})))()}function UE(e){let t=e.historyState?Ph(e.historyState):void 0,n=e.onRequestUpdate??(()=>{}),r=e.canSend,i=e.modelSetupRequired===!0&&e.messages.length===0&&(t?.page.items.length??0)===0&&e.toolMessages.length===0&&e.streamSegments.length===0&&!e.stream&&e.queue.length===0,a=e.onOpenImage?(t,n)=>n===void 0?e.onOpenImage?.(t):e.onOpenImage?.(t,n):void 0,o=e.onOpenImage?t=>a?.(t,e.onRequestOpenImage?.()):void 0,s=tc({...e,canCompose:r}),c=e.placementStartup?.phase===`failed`?null:e.placementStartup,l=e.placementStartup?.initialTurn?[...e.queue,e.placementStartup.initialTurn]:e.queue,u=!!c||rs(e),d=null,f=js({paneId:e.paneId,sessionKey:e.sessionKey,selectedSession:e.selectedSession,announceTranscript:e.announceTranscript,loading:e.loading&&!c,historyPagination:e.historyPagination,messages:e.messages,toolMessages:e.toolMessages,browserTabPreviewsActive:e.browserTabPreviewsActive,guardianNotices:e.guardianNotices,streamSegments:e.streamSegments,stream:e.stream,streamStartedAt:c?.startedAt??e.streamStartedAt,runId:e.runId,runOutputTokens:e.runOutputTokens,runStatus:e.runStatus,queue:l,pendingInputs:t?.page.items,showThinking:e.showThinking,showToolCalls:e.showToolCalls,persistCommentary:e.persistCommentary,runActive:!!e.canAbort,runWorking:u,startupLabel:NE(e.startupStatus,c),waitingApproval:e.waitingApproval,questionPrompts:e.gatewayQuestionPrompts,sessions:e.sessions,sessionHost:e.sessionHost,boardProvider:e.boardProvider,assistantName:e.assistantName,assistantAvatar:e.assistantAvatar,assistantAvatarUrl:e.assistantAvatarUrl,userId:e.userId,userName:e.userName,userAvatar:e.userAvatar,personActivity:e.personActivity,basePath:e.basePath,resourceBasePath:e.resourceBasePath,fullMessageAgentId:e.fullMessageAgentId,loadFullAssistantMessage:e.loadFullAssistantMessage,localMediaPreviewRoots:e.localMediaPreviewRoots,connectionEpoch:e.connectionEpoch,assistantAttachmentAuthToken:e.assistantAttachmentAuthToken,resolveArtifactDownload:e.resolveArtifactDownload,canvasPluginSurfaceUrl:e.canvasPluginSurfaceUrl,embedSandboxMode:e.embedSandboxMode,allowExternalEmbedUrls:e.allowExternalEmbedUrls,fetchLinkFavicon:e.fetchLinkFavicon,autoExpandToolCalls:e.autoExpandToolCalls,realtimeTalkConversation:e.realtimeTalkConversation,typingActors:e.typingActors,onOpenSidebar:e.onOpenSidebar,onOpenWorkspaceFile:e.onOpenWorkspaceFile,onOpenSessionLink:e.onOpenSessionLink,onOpenSessionCheckpoints:e.onOpenSessionCheckpoints,onRequestOpenImage:e.onRequestOpenImage,onOpenImage:a,onAssistantAttachmentLoaded:e.onAssistantAttachmentLoaded,onRequestUpdate:n,onChatScroll:e.onChatScroll,onHistoryIntent:e.onHistoryIntent,onDraftChange:e.onDraftChange,onSend:e.onSend,queuedMessageAction:e.placementStartup?.initialTurn?{id:e.placementStartup.initialTurn.id,label:e.placementStartup.action===`check-delivery`?G(`chat.queue.checkDelivery`):void 0,onAction:e.connected?e.onRetrySessionPlacementStartup:void 0}:void 0,onRetryQueuedMessage:e.connected&&r?e.onQueueRetry:void 0,onSetReply:e.onSetReply,replyMessageAccess:e.replyMessageAccess,onRewindMessage:e.onRewindMessage,onForkMessage:e.onForkMessage,onCompanionQuestion:e.canSend&&!e.suggestionComposer?e.onCompanionQuestion:void 0,onCompanionPrefill:e.canSend&&!e.suggestionComposer?e.onCompanionPrefill:void 0,onOpenSession:e.onSessionSelect,modelSetupRequired:e.modelSetupRequired,onModelSetup:e.onModelSetup,backgroundTasks:e.backgroundTasks,onFocusComposer:()=>d?.querySelector(`.agent-chat__composer-combobox > textarea`)?.focus({preventScroll:!0})},e.transcript),p=zs({...e,anchoredNotices:BE(e),onRequestUpdate:n,onToggleRealtimeTalk:e.suggestionComposer?void 0:e.onToggleRealtimeTalk,onOpenImage:o}),m=vc(e),h=m===z?z:B`<div class="chat-gutter-stack">${m}</div>`,g=e.showNewMessages&&e.onScrollToBottom?B`
|
||
<div class="chat-scroll-to-bottom-wrap">
|
||
<button
|
||
class="chat-scroll-to-bottom"
|
||
type="button"
|
||
@click=${()=>e.onScrollToBottom?.({smooth:!0})}
|
||
aria-label=${G(`chat.actions.scrollToLatest`)}
|
||
>
|
||
${W.arrowDown}
|
||
</button>
|
||
</div>
|
||
`:z,_=e.historyState,v=_?wy(_):void 0,y=_!==void 0&&v?.phase===`failed`&&v.sessionKey===e.sessionKey,b=!u&&e.messages.length===0&&(t?.page.items.length??0)===0&&e.toolMessages.length===0&&e.streamSegments.length===0&&!e.stream&&l.length===0,x=e=>B`<div
|
||
class="chat-history-error${e?` chat-history-error--inline`:``}"
|
||
role=${e?`status`:`alert`}
|
||
>
|
||
<span>${v?.phase===`failed`?v.message:``}</span>
|
||
<button
|
||
class="btn btn--sm"
|
||
type="button"
|
||
@click=${()=>_&&Eb(_)}
|
||
>
|
||
${G(`common.retry`)}
|
||
</button>
|
||
</div>`,S=y&&b?x(!1):z,C=y&&!b?x(!0):z;return B`
|
||
<section
|
||
${zt(e=>{d=e instanceof HTMLElement?e:null})}
|
||
class="card chat"
|
||
style=${Ft(e.chatMessageMaxWidth?{"--chat-thread-max-width":e.chatMessageMaxWidth,"--chat-message-max-width":`100%`}:{})}
|
||
@drop=${s.onDrop}
|
||
@dragenter=${s.onDragenter}
|
||
@dragleave=${s.onDragleave}
|
||
@click=${e=>Mc(e,o)}
|
||
@dragover=${s.onDragover}
|
||
@keydown=${t=>{if(!mc(t)&&!((t.key===`Enter`||t.key===` `)&&Mc(t,o))){if(t.key===`Escape`&&e.replyTarget&&!t.defaultPrevented){t.preventDefault(),e.onClearReply?.();return}Ie(Ne.transcriptSearch,t)&&(t.preventDefault(),Us(e.paneId,n,t))}}}
|
||
>
|
||
<div class="chat-workbench">
|
||
<div class="chat-workbench__main">
|
||
<div class="chat-split-container">
|
||
<div class="chat-main">
|
||
<div class="chat-main__conversation-column">
|
||
${e.header??z} ${zE(e)}
|
||
${ls(e.paneId,n)}
|
||
<div class="chat-main__conversation">
|
||
${C} ${S===z?f:S}
|
||
${t&&(t.page.total>0||t.before!==void 0)?B`<div class="chat-history-error chat-history-error--inline" role="status">
|
||
<span
|
||
>${G(`chat.pendingInputs.count`,{count:String(t.page.total)})}</span
|
||
>
|
||
${t.error?B`<span>${t.error}</span>`:z}
|
||
${t.page.nextBefore===void 0?z:B`<button
|
||
class="btn btn--sm"
|
||
type="button"
|
||
?disabled=${t.loading}
|
||
@click=${()=>e.historyState&&Lh(e.historyState,t.page.nextBefore)}
|
||
>
|
||
${G(`chat.pendingInputs.earlier`)}
|
||
</button>`}
|
||
${t.before===void 0?z:B`<button
|
||
class="btn btn--sm"
|
||
type="button"
|
||
?disabled=${t.loading}
|
||
@click=${()=>e.historyState&&Lh(e.historyState)}
|
||
>
|
||
${G(`chat.pendingInputs.latest`)}
|
||
</button>`}
|
||
</div>`:z}
|
||
${g}
|
||
${e.inlineApproval&&e.onApprovalDecision?B`<div class="chat-inline-approval">
|
||
${Ui({approval:e.inlineApproval,busy:e.approvalBusy===!0,canGrant:e.approvalCanGrant,error:e.approvalErrors?.get(e.inlineApproval.id)??null,variant:`inline`,onDecision:e.onApprovalDecision})}
|
||
</div>`:z}
|
||
${h}
|
||
${Nc({pullRequests:e.pullRequests??[],branch:e.pullRequestsBranch,rateLimited:e.pullRequestsRateLimited===!0,expanded:e.pullRequestsExpanded===!0,onExpand:()=>e.onExpandPullRequests?.(),onDismiss:t=>e.onDismissPullRequest?.(t),onOpenSessionDiff:e.onOpenSessionDiff,publicationBusy:e.githubPublicationBusy===!0,publicationResult:e.githubPublicationResult,publicationError:e.githubPublicationError,publicationGuidance:e.githubPublicationGuidance,onPublish:e.onPublishPullRequest})}
|
||
${cc({suggestions:e.sessionSuggestions??[],role:e.sessionSuggestionRole,busyIds:e.sessionSuggestionBusyIds??new Set,archived:e.sessionSuggestionsArchived===!0,canResolve:e.canResolveSessionSuggestions===!0,onResolve:(t,n)=>e.onResolveSessionSuggestion?.(t,n)})}
|
||
${kc({sessions:e.swarmSessions??[],sessionKey:e.sessionKey})}
|
||
${i?z:p}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
`}function WE(){return(WE=e((()=>{It(),Rt(),Pt(),Qr(),Fn(),U(),Si(),Q(),zh(),IE(),HE(),is(),Wc(),dc(),hs(),Lc(),ic(),Fc(),Yc(),ks(),Mn()})))()}var GE;function KE(){return(KE=e((()=>{_x(),It(),kn(),Xa(),Sr(),ME(),ex(),h_(),lx(),WE(),nc(),Cc(),dc(),Ic(),Hu(),GE=class extends jE{renderChatPaneLayout(e){let{state:t,selectedSession:n,currentAgentId:r,board:i,sidebarLayout:a,sessionWorkspace:o,backgroundTasks:s,chatProps:c,observerDigest:l,observerRunId:u,catalog:d,agentWorkspace:f,workspaceGit:p,openPanelSlot:m,closePanelSlot:h}=e,g=this.renderPaneHeader(o,s,n,d,f,p,a),_=B`<openclaw-chat-outbox-recovery
|
||
.host=${t}
|
||
.identity=${JSON.stringify([t.settings.gatewayUrl,t.connected&&t.client?.recoveryScopeReady?t.client.recoveryScope:null,q(Hr(t,t.sessionKey))])}
|
||
@outbox-restored=${()=>{this.chatState.restoreComposer(),t.requestUpdate?.()}}
|
||
></openclaw-chat-outbox-recovery>`,v=UE({...c,browserTabPreviewsActive:this.active&&this.presented,historyState:d?void 0:t,header:i.face===`dashboard`?z:B`${g}${_}`}),y=B`<div class="chat-pane-primary-column">
|
||
${i.face===`dashboard`?B`${g}${_}`:z}
|
||
${this.renderBoardPrimary(i,v)}
|
||
</div>`,b=this.buildSessionDiscussionPanel(t,t.sessionKey.trim()),x=this.sessionDiscussionStates.get(t.sessionKey.trim()),S=x===`available`||x===`open`,C=On(this.context.gateway.snapshot),w=this.sessionCompanionThreads.view(t.sessionKey,r),ee=this.active&&this.presented&&Dl(a,`browser`),T=this.active&&this.presented&&Dl(a,`desktop`),te=!this.pendingPanelToggleRequests.has(`desktop`),E=Yb({state:t,themeMode:this.context.theme.resolvedMode,agentId:r,browserPresented:ee,browserRefreshOnPresentation:!this.pendingPanelToggleRequests.has(`browser`),preferredBrowserTab:[...ho(c.messages,c.toolMessages).values()].at(-1),desktopPresented:T,desktopRefreshOnPresentation:te,desktopAvailable:C,desktopSource:p_(n),hasBoard:i.hasBoard,chat:v,workspace:Vc(o,{embedded:!0}),tasks:Hc(s,{embedded:!0}),detailOpen:this.presented&&a.open===!0&&Ns(a),renderDetail:e=>xc({backgroundTasks:s,chat:c,content:e,host:t,layout:a,transcript:this.taskSidebarTranscript}),digest:l,activeRunId:u,startedAt:n?.startedAt??t.chatStreamStartedAt??void 0,lastReadAt:n?.lastReadAt,pullRequests:this.sessionPullRequests,companion:w,onCompanionSubmit:e=>void this.submitSessionCompanionQuestion(e),onCompanionDraftChange:e=>this.sessionCompanionThreads.setDraft(t.sessionKey,e,r),onCompanionVisibilityChange:this.setSessionObserverVisibility,connected:t.connected,pendingQuestion:w.pendingQuestion,onClearCompanion:()=>void this.clearSessionCompanion(),discussion:b,discussionAvailable:S,discussionOpenUrl:b?.openUrl??null,discussionSourceGeneration:this.connectionGeneration}),ne=Xb(E),re=Zb(E),ie=Qb(E),ae=rx({availableWidth:this.paneWidth,availableSlots:ne,callbacks:nx({state:t,layout:a,closePanelSlot:h,openPanelSlot:m,hideBoard:()=>this.handleBoardDockChange(`hidden`),forgetDiscussionUrl:()=>this.sessionDiscussionOpenUrls.delete(t.sessionKey.trim()),resizePanel:(e,t)=>this.commitSidebarPanelResize(a,e,t),setPanelOpen:e=>this.setChatSidePanelOpen(e,a)}),layout:a,panelDefinitions:E,panelActions:ie,narrow:this.paneWidth<680,panelTemplates:re,primary:y,requestUpdate:t.requestUpdate});return B`${ae}${Ec(t.imageLightbox,t.handleCloseImage)}${this.renderResetConfirmation()}`}}})))()}function qE(e,t){return{model:M(e,{method:`sessions.patch`,params:{key:t,model:null}}),effort:M(e,{method:`sessions.patch`,params:{key:t,thinkingLevel:null}}),permission:M(e,{method:`sessions.patch`,params:{key:t,permissionMode:`guarded`}}),unarchive:M(e,{method:`sessions.patch`,params:{key:t,archived:!1}})}}function JE(e){return{hasSnapshot:e.chatModelCatalog.length>0||!e.chatModelsLoading&&!e.chatModelCatalogError,status:e.connected?e.chatModelCatalogError?`error`:e.chatModelsLoading?`loading`:`ready`:`offline`}}function YE(e){let{state:t,selectedSession:n,agentDefaultModel:r,agentDefaultPermissionMode:i,modelAccess:a,effortAccess:o,permissionAccess:s,canSelectFull:c,toastAnchor:l,onModelSetup:u}=e,d=JE(t),f=t.sessions.think(t.sessionKey,R(t,t.sessionKey).agentId),p=f?{...n,thinkingLevel:f}:n;return{composerControls:B`
|
||
<div class="chat-composer-model-control">
|
||
${Dc({activeRunId:t.chatRunId,agentDefaultModel:r,connected:t.connected,gatewayAvailable:!!t.client,loading:t.chatLoading,modelCatalog:t.chatModelCatalog,modelCatalogState:d,modelOverrides:t.sessions.state.modelOverrides,thinkingSession:p,modelSelectionLocked:n?.modelSelectionLocked===!0,modelSelectionRuntimeId:n?.agentRuntime?.id,modelPickerOpen:t.chatModelPickerOpenSessionKey===t.sessionKey,modelSwitching:!!t.chatModelSwitchPromises[t.sessionKey],modelsLoading:t.chatModelsLoading,modelMutationDisabledReason:a.allowed?void 0:a.reason,effortMutationDisabledReason:o.allowed?void 0:o.reason,sending:t.chatSending,sessionKey:t.sessionKey,selectedSession:n,sessionsResult:t.sessionsResult,stream:t.chatStream,onRequestUpdate:()=>t.requestUpdate?.(),onModelSetup:u,onFastModeSelect:(e,n)=>o.allowed?Wv(t,e,n):Promise.resolve(!1),onContextWindowSelect:(e,n)=>o.allowed?qv(t,e,n):Promise.resolve(!1),onModelPickerOpen:()=>fE(t),onModelPickerOpenChange:e=>{t.chatModelPickerOpenSessionKey=e?t.sessionKey:null},onModelSelect:(e,n)=>a.allowed?Gv(t,e,n):Promise.resolve(!1),onThinkingSelect:(e,n)=>o.allowed?Kv(t,e,n):Promise.resolve(!1)})}
|
||
</div>
|
||
`,permissionPicker:{canSelectFull:c,defaultMode:i,disabled:!s.allowed,disabledReason:s.allowed?void 0:s.reason,mode:n?.permissionMode,onSelect:async e=>{if(!s.allowed)return;let r=!!t.chatRunId||!!(n&&Te(n)),i=t.sessionKey,a=t.client,o=t.connectionEpoch,c=R(t,i),u=()=>t.connected&&t.sessionKey===i&&t.client===a&&t.connectionEpoch===o&&R(t,i).agentId===c.agentId;try{t.chatError=t.lastError=null;let n=await Ev(t,i,{permissionMode:e},c);if(!u())return;if(!n)throw Error(`Session capability is unavailable`);if(r){let e=l.querySelector(`.chat-pane__header`)?.getBoundingClientRect().height;se({anchor:l,anchorTopOffset:(e??0)+12,durationMs:5e3,icon:W.shieldCheck,message:G(`chat.permissionControls.nextRun`)})}}catch(e){if(!u())return;t.chatError=t.lastError=G(`chat.permissionControls.updateFailed`,{error:String(e)}),t.requestUpdate?.()}}}}}function XE(e){let t=Qv(e.getSnapshot(),e.hasLocalRun()),n=t=>{let n=Qv(e.getSnapshot(),e.hasLocalRun())[t];return n.allowed?!0:(e.onDenied(n.reason),!1)};return{onAbort:e.sessionParticipationBlocked||!t.abort.allowed?void 0:()=>{n(`abort`)&&e.onAbort()},onRewindMessage:t.rewind.allowed?t=>n(`rewind`)?e.onRewind(t):!1:void 0,onForkMessage:t.fork.allowed?t=>n(`fork`)?e.onFork(t):void 0:void 0,onClearHistory:t.reset.allowed?()=>{n(`reset`)&&e.onReset()}:void 0}}function ZE(){return(ZE=e((()=>{It(),Fn(),U(),w(),A(),Pe(),$v(),Zv(),Av(),gE(),zc()})))()}var QE;function $E(){return($E=e((()=>{It(),Yr(),$t(),ga(),Kt(),Ja(),Ni(),U(),_r(),Vr(),I(),hr(),co(),N(),Pe(),et(),hy(),Q(),dx(),mx(),KE(),Ox(),ZE(),lx(),Jb(),aS(),IE(),Hp(),gE(),Tx(),hs(),Ic(),hl(),fd(),Yl(),cu(),Cf(),Ol(),xu(),rf(),o(),QE=class extends GE{render(){let e=this.state;if(!e)return B`<main class="app-shell app-shell--booting" aria-busy="true"></main>`;this.ensureTaskSuggestionCloudProfiles();let t=Sx(e),n=this.isCurrentSessionArchived(e),r=qE(this.context.gateway.snapshot,e.sessionKey),a=ji(e.observerDigest,Mr(t?.key??e.sessionKey,t?.observerDigest)),o=Dr({localRunId:e.chatRunId,session:t,digest:a}),s=Ud(t?.placement),c=e.client,l=t?.placement,u=!l||l.state===`local`,d=!!l&&l?.state!==`local`&&!Nl(e),f=!!c&&!!(t?.key&&!n)&&!Nl(e)&&u&&Sn(this.context.gateway.snapshot.hello?.auth??null)&&K(this.context.gateway.snapshot,`sessions.github.publish`)===!0,p=l?.state===`active`?l.diskSpace:void 0,m=l?.terminalReason,h=l?.state===`failed`?l.recoveryError:m,g=h?{summary:G(`chat.cloudWorkerFailed`,{error:h})}:null,_=s&&this.dismissedWorkspaceConflictRefs.get(t?.key??e.sessionKey)!==s.stagedResultRef?s:void 0,v=this.resolveBoardView(),y=ix({board:v,layout:e.sidebarLayout,paneWidth:this.paneWidth});e.chatFollowUpMode=pa(e.settings.chatFollowUpMode,yo(this.context.runtimeConfig.state.configSnapshot?.runtimeConfig,{configNeedsApply:this.context.runtimeConfig.state.configNeedsApply,effectiveMode:e.chatEffectiveQueueMode,sessionMetadataLoaded:t!==void 0||e.chatEffectiveQueueMode!==void 0,sessionMode:e.chatQueueModeOverride}));let b=X(e),{catalogKey:x,chatProps:C}=ux(e),w=this.context?.overlays,ee=Fr(e.chatSessionApprovalQueue??[],e.sessionKey)??Fr(w?.snapshot?.approvalQueue??[],e.sessionKey);Bu({client:e.connected?e.client:null,sessionKey:x?null:e.sessionKey||null,agentId:b||null,schedulingEnabled:this.active&&this.presented,historyOwner:e,historyVersion:Ey(e)});let T=this.context.agents.state.agentsList?.agents.find(e=>e.id===b),te=T?.model?.primary,E=Ci(t?.model??te,t?.modelProvider,e.chatModelCatalog),ne=fx({catalog:x!==null,connected:e.connected,agentsLoaded:this.context.agents.state.agentsList!==null,selectedAgentFound:T!==void 0,agentModel:te}),re=this.context.placementStartup.get(e.sessionKey),ie=Mp(e,e.sessionKey,re!==null),ae=re!==null&&re.phase!==`failed`,D=this.sessionParticipationTracker.resolve({catalog:x!==null,listLoading:e.sessionsLoading,sessionKey:`${b??``}\0${e.sessionKey}`,session:t}),O=this.context.gateway.snapshot,oe=e.connected&&!D&&Sn(O.hello?.auth??null)&&K(O,`progressCard.put`)===!0?e=>{this.progressCard.dismiss(e).catch(()=>se({message:G(`sessionProgressCard.dismissFailed`)}))}:void 0,ce=t?.restartRecoveryStatus===`tombstoned`,le=this.hasMultipleIdentities(),k=le&&!n&&Sn(O.hello?.auth??null)&&t?.visibility===`suggest`&&t.sharingRole===`viewer`&&K(O,`session.suggestions.add`)===!0&&K(O,`session.suggestions.list`)===!0,ue=zi(E),de=ue??(D&&!k?G(`chat.sessionSharing.readOnlyNotice`):null),fe=le&&Sn(O.hello?.auth??null)&&!x&&K(O,`session.typing`)===!0&&Wa(this.presencePayload,O.selfUser,O.client?.instanceId,e.sessionKey),pe=x&&!this.catalogLoading&&this.catalogSession?.canContinue!==!0?this.catalogHost?.kind===`node`?G(`chat.catalog.remoteViewOnly`):G(`chat.catalog.unsupportedViewOnly`):null,{backgroundTasks:me,closePanelSlot:he,openPanelSlot:ge,sessionWorkspace:_e}=Dx({state:e,sidebarLayout:y,presentationId:this.presentationId,presented:this.presented,gatewaySnapshot:O,setObserverVisibility:this.setSessionObserverVisibility,updateSidebarLayout:e=>this.commitSidebarLayout(e)}),A=Qt({snapshotUser:O.selfUser,presenceEntries:Yt(this.presencePayload),presenceInstanceId:O.client?.instanceId}),ve=zd({localRunId:e.chatRunId,activeRunIds:t?.activeRunIds,usageByRun:e.chatRunUsageById}),ye=Zd({localRunId:e.chatRunId,activeRunIds:t?.activeRunIds,queue:e.chatQueue}),j=this.chatState.attachmentReads,be=j.readSignal,xe=x?!!this.catalogCursor:e.chatHistoryPagination.hasMore,Se=e.automaticallyFetchFavicons?bl({auth:{hello:e.hello,settings:e.settings,password:e.password},resourceBasePath:e.resourceBasePath,gatewayUrl:e.client?.gatewayUrl??e.settings.gatewayUrl}):void 0,Ce=XE({getSnapshot:()=>this.context.gateway.snapshot,hasLocalRun:()=>!!e.chatRunId,sessionParticipationBlocked:D,onDenied:e=>this.publishHeaderError(e),onAbort:()=>void e.handleAbortChat({preserveDraft:!0}),onRewind:e=>this.rewindToMessage(e),onFork:e=>this.forkFromMessage(e),onReset:()=>void bb(e)}),we=t=>{e.chatReplyTarget=t,e.requestUpdate?.()},Ee=this.currentReplyMessageAccess(e.sessionKey),De=x?void 0:YE({state:e,selectedSession:t,agentDefaultModel:te,agentDefaultPermissionMode:T?.defaultPermissionMode,modelAccess:r.model,effortAccess:r.effort,permissionAccess:r.permission,canSelectFull:ln(O.hello?.auth??null),toastAnchor:this,onModelSetup:()=>this.context.navigate(`model-setup`)}),Oe={transcript:this.transcript,paneId:this.presentationId,sessionKey:e.sessionKey,announceTranscript:this.active&&this.presented,onSessionKeyChange:e=>{this.onPaneSessionChange?.(this.paneId,e)},thinkingLevel:e.chatThinkingLevel,autoExpandToolCalls:e.chatVerboseLevel===`full`,showThinking:e.settings.chatShowThinking,showToolCalls:e.settings.chatShowToolCalls,persistCommentary:e.settings.chatPersistCommentary!==!1,loading:x?this.catalogLoading:e.chatLoading,sending:ae||e.chatSending||this.recoveringSession||this.sessionSuggestionAddOperation!==void 0,placementStartup:re,onRetrySessionPlacementStartup:re?.retryable?()=>this.context.placementStartup.retry(e.sessionKey):void 0,canAbort:!D&&Nl(e),runStatus:e.chatRunStatus,startupStatus:PE(e.chatRunStartup),waitingApproval:e.waitingApprovalStatuses.size>0,compactionStatus:e.compactionStatus,fallbackStatus:e.fallbackStatus,progressCard:this.progressCard.card,progressCardHasActiveRun:!!(e.chatRunId||t&&Te(t)),collapseTaskProgress:e.settings.chatCollapseTaskProgress===!0,onDismissProgressCard:oe,gatewayQuestionPrompts:x||D?[]:this.questionPrompts,onGatewayQuestionChange:()=>{this.questionPrompts=[...this.questionPrompts],this.requestUpdate()},onGatewayQuestionSubmit:(e,t)=>ba(this.questionPromptState,e,t),onGatewayQuestionSkip:e=>ia(this.questionPromptState,e),messages:x?this.catalogMessages:e.chatMessages,historyPagination:xe||this.loadingOlder?{hasMore:xe,loading:this.loadingOlder,onShowEarlier:()=>void this.showEarlierMessages()}:void 0,toolMessages:x?[]:e.chatToolMessages,guardianNotices:x?[]:e.guardianNotices,streamSegments:x?[]:e.chatStreamSegments,stream:x?null:e.chatStream,streamStartedAt:x?null:e.chatStreamStartedAt,runId:x?null:ye,runOutputTokens:x?null:ve,assistantAvatarUrl:wx(e),sendShortcut:e.settings.chatSendShortcut,followUpMode:e.chatFollowUpMode,draft:e.chatMessage,modelCatalog:e.chatModelCatalog,modelSwitching:!!e.chatModelSwitchPromises[e.sessionKey],queue:e.chatQueue,queuedOutboxCount:e.chatQueue.filter(e=>!e.pendingRunId).length,realtimeTalkActive:e.realtimeTalkActive,realtimeTalkStatus:e.realtimeTalkStatus,realtimeTalkDetail:e.realtimeTalkDetail,realtimeTalkInputLevel:e.realtimeTalkInputLevel,realtimeTalkConversation:e.realtimeTalkConversation,realtimeTalkVideoStream:e.realtimeTalkVideoStream,realtimeTalkCameraDevices:e.realtimeTalkCameraDevices,realtimeTalkVideoCapable:e.realtimeTalkVideoCapable,realtimeTalkVideoPending:e.realtimeTalkVideoPending,realtimeTalkCameraError:e.realtimeTalkCameraError,connected:e.connected,offline:O.offlineStable,gatewayClient:e.client,composerHoldToRecord:e.settings.composerHoldToRecord,onComposerHoldToRecordChange:t=>{e.settings=fn({composerHoldToRecord:t})},onOpenTalkSettings:()=>this.context.navigate(`talk`),onOpenDictationSettings:()=>this.context.navigate(`model-setup`),suggestionComposer:k,typingActors:le?this.typingActorViews():[],onTypingChange:fe?(e,t)=>this.sendTypingState(e,t):void 0,canSend:x?this.catalogSession?.canContinue===!0:!ne&&!ue&&!n&&!ce&&(!D||k)&&!ie,disabledReason:pe??de??(re?null:ie),disabledReasonTone:D&&!k&&!pe?`info`:`danger`,disabledBanner:this.sessionDisabledBanner({catalogDisabledReason:pe,modelSetupRequired:ne,restartRecoveryTombstoned:ce,selectedSessionArchived:n,selectedSessionId:t?.sessionId?.trim()||void 0,sessionKey:e.sessionKey,unarchiveAccess:r.unarchive}),modelSetupRequired:ne&&!n&&!ce,onModelSetup:()=>this.context.navigate(`model-setup`),error:e.lastError,diskSpace:p,runError:x?null:e.chatRunError??g,inlineApproval:D?null:ee,approvalBusy:w?.snapshot?.approvalBusy,approvalCanGrant:w?.snapshot?.approvalCanGrant??!1,approvalErrors:w?.snapshot?.approvalErrors,onApprovalDecision:w&&!D?(e,t)=>w.decideApproval(t,e,ee??void 0):void 0,workspaceConflict:_,onDismissWorkspaceConflict:_&&t?()=>{this.dismissedWorkspaceConflictRefs.set(t.key,_.stagedResultRef),this.requestUpdate()}:void 0,sessions:e.sessionsResult,selectedSession:x?void 0:t,toolOverrides:t?.toolOverrides,capabilityMenu:x?void 0:this.composerCapabilities.props(this.context,e,t,b),swarmSessions:this.swarmHydrator?.rows??[],sessionHost:{assistantAgentId:e.assistantAgentId,agentsList:e.agentsList,hello:e.hello},providerUsage:{basePath:e.basePath,modelAuthStatusResult:e.modelAuthStatusResult},composerControls:De?.composerControls??z,permissionPicker:De?.permissionPicker,backgroundTasks:x?void 0:me,...this.suggestionChatProps(e.connected,n,le),pullRequests:this.sessionPullRequests.filter(e=>!this.dismissedSessionPullRequestIds.has(vs(e))),pullRequestsBranch:Vs(this.sessionPullRequests,this.sessionPullRequestsBranch),pullRequestsRateLimited:this.sessionPullRequestsRateLimited,pullRequestsExpanded:this.sessionPullRequestsExpanded,onOpenSessionDiff:_e.onOpenDiff,onExpandPullRequests:()=>{this.sessionPullRequestsExpanded=!0,this.requestUpdate()},onDismissPullRequest:this.dismissSessionPullRequest,githubPublicationBusy:this.githubPublicationBusy,githubPublicationResult:this.githubPublicationResult,githubPublicationError:this.githubPublicationError,githubPublicationGuidance:d?G(`chat.pullRequests.cloudPublicationGuidance`):void 0,onPublishPullRequest:f?()=>{if(this.githubPublicationBusy||!t?.key)return;let e=this.captureConnectionScope();if(!e)return;let n=t.key,r=this.githubPublicationIdempotencyKey??S();this.githubPublicationIdempotencyKey=r;let a=++this.githubPublicationRequestVersion,o=()=>this.presented&&this.githubPublicationRequestVersion===a&&this.isConnectionScopeCurrent(e)&&Sx(e.state)?.key===n;this.githubPublicationBusy=!0,this.githubPublicationError=null,this.requestUpdate(),i(async()=>{let{requestGitHubPublication:e}=await import(`./chat-github-publication-DibU-Fdo.js`);return{requestGitHubPublication:e}},__vite__mapDeps([40,1]),import.meta.url).then(({requestGitHubPublication:t})=>t(e.client,{sessionKey:n,idempotencyKey:r})).then(e=>{o()&&(this.githubPublicationResult=e,(e.status===`published`||e.status===`failed`)&&(this.githubPublicationIdempotencyKey=null))}).catch(e=>{o()&&(this.githubPublicationError=P(e))}).finally(()=>{o()&&(this.githubPublicationBusy=!1,this.requestUpdate())})}:void 0,onOpenWorkspaceFile:t=>ac(e,t),onOpenSessionLink:e=>xo(this.context,e),onRevealWorkspaceFile:t=>lc(e,t),onRefresh:()=>{if(x){this.loadCatalogSession(x,!1);return}yf(e,{preserveStreamSegments:e.chatRunId!==null}),this.reconcileWaitingApprovalSnapshot(),mE(e,{awaitHistory:!0,scheduleScroll:!1})},onChatScroll:e=>this.handleTranscriptScroll(e),onHistoryIntent:e=>this.handleTranscriptHistoryIntent(e),onAssistantAttachmentLoaded:()=>Kl(e),getDraft:()=>e.chatMessage,onDraftChange:e.handleChatDraftChange,onRequestUpdate:e.requestUpdate,onHistoryKeydown:e.handleChatInputHistoryKey,onSlashIntent:()=>aE(e),onSlashCommand:k||x?void 0:t=>void e.handleSendChat(t),showNewMessages:e.chatNewMessagesBelow,onScrollToBottom:e.scrollToBottom,attachments:e.chatAttachments,attachmentLimits:e.hello?.policy?.attachments,getAttachments:()=>e.chatAttachments,pendingAttachmentReads:j.pendingReads,getPendingAttachmentReads:()=>j.pendingReads,readSignal:be,onPendingReadsChange:e=>j.updatePending(be,e),onAttachmentsChange:t=>{e.chatAttachments=t,e.requestUpdate?.()},onRemoveAttachment:this.removeBrowserAnnotation,onSend:(t,n)=>x?void this.continueCatalogSession(x):k?void this.addCurrentSessionSuggestion():void e.handleSendChat(void 0,t?{followUpMode:t}:void 0,n),onOpenSessionCheckpoints:()=>{let t=n?`&status=archived`:``;this.context.navigate(`sessions`,{search:`?session=${encodeURIComponent(e.sessionKey)}${t}`})},onToggleRealtimeTalk:()=>void e.toggleRealtimeTalk(),onToggleRealtimeCamera:()=>void e.toggleRealtimeTalkCamera(),onSwitchRealtimeCamera:()=>void e.switchRealtimeTalkCamera(),onDismissError:()=>{Wb(e),e.requestUpdate?.()},onDismissRealtimeTalkError:()=>{rS(e),e.requestUpdate?.()},onAbort:Ce.onAbort,onQueueRemove:e.removeQueuedMessage,onQueueRetry:t=>void e.retryQueuedChatMessage(t),onQueueSteer:D?void 0:t=>void e.steerQueuedChatMessage(t),onQueueMove:D?void 0:e.moveQueuedChatMessage,queuedEdit:{editingId:Md(e)?.id??null,editingText:Md(e)?.draftText,source:Md(e)?.source,onEdit:D?void 0:e.editQueuedChatMessage,onEditChange:D?void 0:e.updateQueuedChatMessageEdit,onEditSubmit:D?void 0:e.submitQueuedChatMessageEdit,onCancel:e.cancelQueuedChatMessageEdit},onGoalAction:(t,n)=>void py(e,{goalId:t,action:n}),goalDraftMode:e.chatGoalDraftMode??null,currentSessionId:e.currentSessionId,onGoalDraftModeChange:t=>{e.chatGoalDraftMode=t,e.handleChatDraftChange(e.chatMessage)},onGoalSubmit:k||x?void 0:(t,n)=>fy(e,t,n),onCompanionQuestion:e=>void this.submitSessionCompanionQuestion(e),onCompanionPrefill:this.prefillSessionCompanionQuestion,replyTarget:e.chatReplyTarget??null,onClearReply:()=>{e.chatReplyTarget=null,e.requestUpdate?.()},onSetReply:n?void 0:we,replyMessageAccess:x||n?void 0:Ee,onRewindMessage:n?void 0:Ce.onRewindMessage,onForkMessage:Ce.onForkMessage,onClearHistory:Ce.onClearHistory,agentsList:e.agentsList,currentAgentId:b,...C,onAgentChange:e=>{let t=Ye({agentId:e});this.onPaneSessionChange?.(this.paneId,t)},onSessionSelect:e=>{this.onPaneSessionChange?.(this.paneId,e)},canvasPluginSurfaceUrl:e.canvasPluginSurfaceUrl,boardProvider:v.provider,onOpenSidebar:e.handleOpenSidebar,onRequestOpenImage:e.beginImageOpen,onOpenImage:e.handleOpenImage,assistantName:e.assistantName,assistantAvatar:e.assistantAvatar,userId:A?.identity?.type===`profile`?A.identity.id:null,userName:A?.name??e.userName,userAvatar:A?.avatarUrl??e.userAvatar,personActivity:Lr(this.context),localMediaPreviewRoots:e.localMediaPreviewRoots,connectionEpoch:e.connectionEpoch,embedSandboxMode:e.embedSandboxMode,allowExternalEmbedUrls:e.allowExternalEmbedUrls,fetchLinkFavicon:Se,chatMessageMaxWidth:e.settings.chatMessageMaxWidth,assistantAttachmentAuthToken:Hb(e),resolveArtifactDownload:t=>Ub(e,t),basePath:e.basePath,resourceBasePath:e.resourceBasePath};return this.renderChatPaneLayout({state:e,selectedSession:t,currentAgentId:b,board:v,sidebarLayout:y,sessionWorkspace:_e,backgroundTasks:me,chatProps:Oe,observerDigest:a,observerRunId:o,catalog:!!x,agentWorkspace:T?.workspace,workspaceGit:T?.workspaceGit===!0,openPanelSlot:ge,closePanelSlot:he})}}})))()}function eD(){return(eD=e((()=>{$E(),customElements.get(`openclaw-chat-pane`)||customElements.define(`openclaw-chat-pane`,QE)})))()}var tD;function nD(){return(nD=e((()=>{ar(),It(),Lt(),Ut(),yn(),wn(),ri(),Mn(),Kt(),$n(),Zn(),U(),za(),te(),N(),st(),Mt(),V_(),G_(),q_(),Z_(),ov(),cv(),eD(),Fd(),uu(),Zl(),id(),of(),Vd(),Eu(),tD=class extends We{constructor(){super(),this.navDrawerOpen=!1,this.narrow=!1,this.mergedChrome=!1,this.dropIndicator=null,this.subscriptions=new wt(this).watch(()=>this.context?.sessions,(e,t)=>e.subscribe(t)).watch(ao,(e,t)=>e.subscribe(()=>t())),this.mediaQuery=null,this.mobileNavMediaQuery=null,this.dragDepth=0,this.dragFrame=0,this.pendingDragOver=null,this.consumedDraftData=null,this.draftFocus=new Gd(this),this.messageCache=new Map,this.snapshotStore=new jd(this.messageCache),this.classicColumnId=`c1`,this.classicPaneId=`p1`,this.routeHref=``,this.mcpAppUnmountGate=new Vn(this),this.viewerPresence=new sv(this),this.retainedSessions=new X_(this,{context:()=>this.context,face:()=>this.data?.face??`chat`,layout:()=>this.layout??this.classicLayout(),selectReplacement:(e,t,n)=>{this.handlePaneSessionChange(e,t,n)}}),this.handleViewportChange=e=>{this.narrow=e.matches,e.matches&&this.clearDropIndicator()},this.handleMobileNavViewportChange=e=>{this.mergedChrome=this.resolveMergedChrome(e.matches)},this.handleUiCommand=e=>{if(!(e instanceof CustomEvent))return;let{command:t,sessionKey:n}=e.detail;if(t.kind===`navigate`){e.preventDefault(),this.updateRoute(t.sessionKey);return}if(t.kind!==`split`&&t.kind!==`close-pane`&&t.kind!==`focus`||t.kind===`split`&&this.narrow)return;let r=this.data?.sessionKey?.trim(),i=this.layout??(t.kind===`split`&&r?this.classicLayout(r):void 0);if(!i)return;if(t.kind===`close-pane`){let n=mf(i).find(e=>e.sessionKey===t.sessionKey);if(!n)return;e.preventDefault(),this.closeSplitPane(i,n.id);return}let a=xf(i,t,n);if(a===i)return;e.preventDefault(),this.persistLayout(a);let o=a&&_f(a,a.activePaneId)?.pane;o&&this.updateRoute(o.sessionKey,!0)},this.handleDragEnter=e=>{this.narrow||!ua(e.dataTransfer)||(this.dragDepth+=1)},this.handleDragOver=e=>{if(this.narrow||!ua(e.dataTransfer))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`);let t=(e.target instanceof Element?e.target:null)?.closest(`openclaw-chat-pane`);!t||!this.contains(t)||(this.pendingDragOver={pane:t,x:e.clientX,y:e.clientY},!this.dragFrame&&(this.dragFrame=window.requestAnimationFrame(()=>{this.dragFrame=0;let e=this.pendingDragOver;if(this.pendingDragOver=null,!e||this.narrow||!this.isConnected)return;let t=this.resolveDropIndicator(e.pane,e.x,e.y);if(!t)return;let n=this.dropIndicator;(n?.paneId!==t.paneId||n.zone.kind!==t.zone.kind||t.zone.kind!==`center`&&(n.zone.kind!==`edge`||n.zone.edge!==t.zone.edge))&&(this.dropIndicator=t)})))},this.handleDragLeave=e=>{this.narrow||!ua(e.dataTransfer)||(this.dragDepth=Math.max(0,this.dragDepth-1),this.dragDepth===0&&this.clearDropIndicator())},this.handleDrop=e=>{if(this.narrow||!ua(e.dataTransfer))return;e.preventDefault();let t=Do(e.dataTransfer),n=(e.target instanceof Element?e.target:null)?.closest(`openclaw-chat-pane`),r=(n&&this.contains(n)?this.resolveDropIndicator(n,e.clientX,e.clientY):null)??this.dropIndicator;this.clearDropIndicator(),t&&r&&this.applySessionDrop(t,r.paneId,r.zone)},this.handleWindowDragEnd=()=>{this.clearDropIndicator()},this.handleFocusPane=e=>{let t=this.layout;if(!t||t.activePaneId===e)return;let n=_f(t,e)?.pane;n&&(this.persistLayout(Rl(t,e)),this.updateRoute(n.sessionKey,!0))},this.handlePaneSessionChange=(e,t,n,r)=>{let i=n.trim();if(!i||window.location.href!==this.routeHref)return!1;let a=this.layout??this.classicLayout(),o=_f(a,e)?.pane;return!o||!F(o.sessionKey,t)?!1:this.layout?o.sessionKey===i||(this.persistLayout(mu(a,e,i)),a.activePaneId===e&&this.updateRoute(i,r?.replace),!0):(this.updateRoute(i,r?.replace),!0)},this.handlePaneFaceChange=(e,t,n)=>{let r=_f(this.layout??this.classicLayout(),e)?.pane.sessionKey;!r||!F(r,t)||(this.layout&&this.layout.activePaneId!==e&&this.persistLayout(Rl(this.layout,e)),B_(this.context,t,n),this.updateRoute(t,!1,n))},this.openSplitView=()=>{let e=this.data?.sessionKey?.trim();e&&this.persistLayout(Pl(this.classicLayout(e),this.classicPaneId,e,`right`))},this.handleSplitRight=e=>this.handleSplit(e,`right`),this.handleSplitDown=e=>this.handleSplit(e,`down`),this.handleClosePane=e=>{this.layout&&this.closeSplitPane(this.layout,e)},dd(this,this.messageCache,this.snapshotStore,()=>this.context)}connectedCallback(){super.connectedCallback(),this.snapshotStore.connect(),au(this.messageCache,this.snapshotStore),this.routeHref=window.location.href,this.layout=cn().chatSplitLayout,this.mediaQuery=window.matchMedia(`(max-width: 1099px)`),this.narrow=this.mediaQuery.matches,this.mediaQuery.addEventListener(`change`,this.handleViewportChange),this.mobileNavMediaQuery=window.matchMedia(En()),this.mergedChrome=this.resolveMergedChrome(this.mobileNavMediaQuery.matches),this.mobileNavMediaQuery.addEventListener(`change`,this.handleMobileNavViewportChange),this.addEventListener(`dragenter`,this.handleDragEnter),this.addEventListener(`dragover`,this.handleDragOver),this.addEventListener(`dragleave`,this.handleDragLeave),this.addEventListener(`drop`,this.handleDrop),window.addEventListener(`dragend`,this.handleWindowDragEnd),window.addEventListener(jn,this.handleUiCommand),this.retainedSessions.connect(),this.syncRouteAgent(),this.syncRouteToActivePane();let e=this.layout??this.classicLayout();this.viewerPresence.sync(this.context?.gateway,e,this.narrow)}disconnectedCallback(){this.snapshotStore.disconnect(),this.retainedSessions.disconnect(),this.viewerPresence.dispose(),this.subscriptions.clear(),this.mediaQuery?.removeEventListener(`change`,this.handleViewportChange),this.mediaQuery=null,this.mobileNavMediaQuery?.removeEventListener(`change`,this.handleMobileNavViewportChange),this.mobileNavMediaQuery=null,this.removeEventListener(`dragenter`,this.handleDragEnter),this.removeEventListener(`dragover`,this.handleDragOver),this.removeEventListener(`dragleave`,this.handleDragLeave),this.removeEventListener(`drop`,this.handleDrop),window.removeEventListener(`dragend`,this.handleWindowDragEnd),window.removeEventListener(jn,this.handleUiCommand),this.clearDropIndicator(),super.disconnectedCallback()}updated(e){let t=this.layout??this.classicLayout();iv(this,t,this.narrow),this.isConnected&&this.viewerPresence.sync(this.context?.gateway,t,this.narrow);let n=this.data,r=this.layout?_f(this.layout,this.layout.activePaneId)?.pane:null,i=this.layout?r?.sessionKey??null:void 0,a=this.draftFocus.rendered(n,i,this.consumedDraftData);if(e.has(`data`)){if(this.routeHref=window.location.href,n?.canonicalLocation&&W_(n.canonicalLocationSource,this.consumedDraftData===n)){this.context.replace(n.face??`chat`,n.canonicalLocation);return}n?.canonicalLocationReady?.then(e=>{e&&this.isConnected&&this.data===n&&W_(n.canonicalLocationSource,this.consumedDraftData===n)&&this.context.replace(n.face??`chat`,this.consumedDraftData===n?_u(e):e)}),this.syncRouteAgent(),this.syncRouteToActivePane(),this.retainedSessions.settleRoute(n.sessionKey)}n&&a&&queueMicrotask(()=>{this.isConnected&&this.data===n&&this.consumedDraftData!==n&&(this.draftFocus.beforeDraftCleanup(n),this.consumedDraftData=n,this.updateRoute(n.sessionKey,!0,n.face??`chat`),this.requestUpdate())})}resolveMergedChrome(e){return _n(e,this.closest(`.shell--onboarding`)!==null)}clearDropIndicator(){this.dragDepth=0,this.clearDropPreview()}clearDropPreview(){this.pendingDragOver=null,this.dragFrame&&=(window.cancelAnimationFrame(this.dragFrame),0),this.dropIndicator=null}resolveDropIndicator(e,t,n){let r=e.paneId,i=this.querySelector(`.chat-split-view__drop-container`);if(!r||!i)return null;let a=e.getBoundingClientRect(),o=$d(a,t,n),s=ed(a,o),c=i.getBoundingClientRect();return{paneId:r,zone:o,rect:{left:s.left-c.left,top:s.top-c.top,width:s.width,height:s.height}}}syncRouteToActivePane(){let e=this.layout,t=this.data?.sessionKey?.trim();if(!e||!t)return;let n=_f(e,e.activePaneId)?.pane;!n||n.sessionKey===t||this.persistLayout(mu(e,n.id,t))}syncRouteAgent(){let e=this.data?.agentId?.trim();e&&this.context.agentSelection.set(e)}persistLayout(e){this.layout=e,fn({chatSplitLayout:e})}updateRoute(e,t=!1,n=this.data.face??`chat`){let r=this.data,i=r&&F(r.sessionKey,e);if(i&&(r.face??`chat`)===n&&!r.draft&&!r.focusComposer)return;let a=Qe({context:this.context,face:n,sessionKey:e,agentId:r?.agentId,shortIdLength:r?.sessionKey===e?r.shortId?.length:void 0}).options;if(t){let e=i&&(r.draft||r.focusComposer)?_u(H_(),a):a;this.context.replace(n,e)}else this.context.navigate(n,a)}applySessionDrop(e,t,n){let r=e.trim();if(!r)return;let i=this.layout;if(!i){if(n.kind===`center`){this.updateRoute(r);return}let e=this.data?.sessionKey?.trim();if(!e)return;let t=Pl(this.classicLayout(e),this.classicPaneId,r,n.edge);this.persistLayout(t),this.updateRoute(r,!0);return}let a=_f(i,t)?.pane;if(a){if(n.kind===`center`){if(a.sessionKey===r)return;let e=Rl(i,t);this.persistLayout(mu(e,t,r)),this.updateRoute(r,!0);return}this.persistLayout(Pl(i,t,r,n.edge)),this.updateRoute(r,!0)}}handleSplit(e,t){let n=this.layout,r=n?_f(n,e)?.pane:null;!n||!r||this.persistLayout(Pl(n,e,r.sessionKey,t))}closeSplitPane(e,t){let n=av(this.context,this,e,t);this.retainedSessions.discardPane(t);let r=Zu(e,t);if(!r&&n){let t=_f(e,n.id);t&&(this.classicColumnId=t.column.id,this.classicPaneId=n.id)}this.persistLayout(r);let i=r?_f(r,r.activePaneId)?.pane:n;i&&this.updateRoute(i.sessionKey,!0)}classicLayout(e=this.data?.sessionKey?.trim()??``){return kd(this.classicColumnId,this.classicPaneId,e)}renderSplitLayout(e,t,n){let r=_f(e,e.activePaneId),i=this.narrow?r?.pane:e.columns.at(-1)?.panes.at(-1);return B`
|
||
<div class="chat-split-view ${this.narrow?`chat-split-view--narrow`:``}">
|
||
${Ht(e.columns,e=>e.id,(r,a)=>B`
|
||
<div
|
||
class="chat-split-view__column ${this.narrow&&!r.panes.some(t=>t.id===e.activePaneId)?`chat-split-view__column--narrow-hidden`:``}"
|
||
style="flex: ${Ed(e.columnWeights,a,`rendered split column weight`)} 1 0"
|
||
>
|
||
${Ht(r.panes,e=>e.id,(a,o)=>B`
|
||
${K_({active:a.id===e.activePaneId,chatMessagesBySession:this.messageCache,sessionSnapshotStore:this.snapshotStore,consumedDraftData:this.consumedDraftData,context:this.context,data:this.data,draftFocus:this.draftFocus,mergedChrome:this.mergedChrome,narrow:this.narrow,navDrawerOpen:this.navDrawerOpen,onboarding:this.closest(`.shell--onboarding`)!==null,onClosePane:t?this.handleClosePane:void 0,onFaceChange:this.handlePaneFaceChange,onFocusPane:this.handleFocusPane,onOpenSplitView:t||this.narrow?void 0:this.openSplitView,onPaneSessionChange:this.handlePaneSessionChange,onSessionDeleted:this.retainedSessions.removeSession,onSplitDown:t?this.handleSplitDown:void 0,onSplitRight:t?this.handleSplitRight:void 0,ownerKey:JSON.stringify([r.id,a.id]),pane:a,sessionKeys:n.get(a.id)??[],showGatewayPicker:a.id===i?.id,splitMode:t,weight:Ed(r.paneWeights,o,`rendered split pane weight`)})}
|
||
${!this.narrow&&o<r.panes.length-1?B`
|
||
<resizable-divider
|
||
orientation="horizontal"
|
||
.splitRatio=${kl(r.paneWeights,o,`split pane weight`)}
|
||
.minRatio=${.15}
|
||
.maxRatio=${.85}
|
||
.label=${G(`nav.resize`)}
|
||
@resize=${e=>{this.layout=this.layout?Vl(this.layout,r.id,o,e.detail.splitRatio):void 0}}
|
||
@resize-end=${()=>this.persistLayout(this.layout)}
|
||
></resizable-divider>
|
||
`:z}
|
||
`)}
|
||
</div>
|
||
${!this.narrow&&a<e.columns.length-1?B`
|
||
<resizable-divider
|
||
.splitRatio=${kl(e.columnWeights,a,`split column weight`)}
|
||
.minRatio=${.15}
|
||
.maxRatio=${.85}
|
||
.label=${G(`nav.resize`)}
|
||
@resize=${e=>{this.layout=this.layout?ku(this.layout,a,e.detail.splitRatio):void 0}}
|
||
@resize-end=${()=>this.persistLayout(this.layout)}
|
||
></resizable-divider>
|
||
`:z}
|
||
`)}
|
||
</div>
|
||
`}render(){let e=this.dropIndicator,t=this.layout??this.classicLayout(),n=this.retainedSessions.retain(mf(t)),r=new Set;for(let e of t.columns)for(let t of e.panes){let i=JSON.stringify([e.id,t.id]);for(let e of n.get(t.id)??[])r.add(JSON.stringify([i,e]))}let i=()=>B`
|
||
<div class="chat-split-view__drop-container">
|
||
${this.renderSplitLayout(t,!!this.layout,n)}
|
||
${e?B`<div
|
||
class="chat-split-view__drop-indicator ${e.zone.kind===`center`?`chat-split-view__drop-indicator--center`:``}"
|
||
style=${`left: ${e.rect.left}px; top: ${e.rect.top}px; width: ${e.rect.width}px; height: ${e.rect.height}px;`}
|
||
>
|
||
<span class="chat-split-view__drop-indicator-label"
|
||
>${e.zone.kind===`center`?G(`chat.splitView.dropOpenHere`):G(`chat.splitView.dropSplit`)}</span
|
||
>
|
||
</div>`:z}
|
||
</div>
|
||
`;return this.mcpAppUnmountGate.render(JSON.stringify([...r]),i,()=>[...this.querySelectorAll(`openclaw-chat-pane`)].filter(e=>!r.has(e.dataset.mcpAppOwnerKey??``)))}},d([rr({context:xn,subscribe:!0})],tD.prototype,`context`,void 0),d([V({attribute:!1})],tD.prototype,`data`,void 0),d([V({attribute:!1})],tD.prototype,`navDrawerOpen`,void 0),d([H()],tD.prototype,`layout`,void 0),d([H()],tD.prototype,`narrow`,void 0),d([H()],tD.prototype,`mergedChrome`,void 0),d([H()],tD.prototype,`dropIndicator`,void 0),customElements.get(`openclaw-chat-page`)||customElements.define(`openclaw-chat-page`,tD)})))()}export{lh as $,Qg as A,ig as B,h_ as C,$g as D,qg as E,r_ as F,Qh as G,tg as H,Ng as I,Bh as J,Hh as K,Ag as L,f_ as M,Lg as N,e_ as O,Yg as P,sh as Q,Fg as R,S_ as S,t_ as T,sg as U,lg as V,ug as W,oh as X,Mh as Y,uh as Z,Sy as _,lp as _t,tC as a,wm as at,Qv as b,Cp as bt,mx as c,Gp as ct,Yb as d,Np as dt,Jm as et,Q as f,Hp as ft,Ry as g,rp as gt,Iy as h,sp as ht,lC as i,Lm as it,Jg as j,Zg as k,fx as l,Wp as lt,fb as m,jp as mt,nD as n,Um as nt,Tx as o,qp as ot,Fy as p,cp as pt,Vh as q,eD as r,jm as rt,Sx as s,Kp as st,tD as t,Wm as tt,ex as u,Pp as ut,X as v,mp as vt,p_ as w,z_ as x,ip as xt,$v as y,gp as yt,Ig as z};
|
||
//# sourceMappingURL=control-ui-boot-J-x6DHHT.js.map
|