UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

3,210 lines • 706 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./session-snapshot-database-BBKeXATO.js","./plugin-contracts-runtime-ByiEPbv_.js","./config-runtime-BecGLziM.js","./markdown-runtime-ORQpioyT.js","./sidebar-update-runtime-DQZboSgD.js","./control-ui-core-DI-Q_yCI.css","./control-ui-boot-shared-styles-DUf4zEvn.css","./sidebar-update-runtime-Bpn2ByHA.css","./catalog-terminal-start-DmNpGDDP.js","./svg-icon-rasterizer-BvEJ94Ld.js","./theme-artwork-loader-G8GOjpDY.js","./pasted-text-excerpt-w6symljh.js","./chat-native-runtime-recovery-StS6X2w9.js","./chat-outbox-receipts-B6_sm_Yo.js"])))=>i.map(i=>d[i]);
import{n as e,r as t}from"./rolldown-runtime-8BhlS34s.js";import{$l as n,$s as r,A as i,An as a,Ar as o,At as s,Au as c,Bl as l,Br as u,Ci as d,Co as f,Ct as p,Cu as m,Dr as h,Dt as g,Eo as _,Et as v,F as y,Fl as b,Gl as x,Go as S,Gs as C,H as w,Hi as ee,Ho as te,Hr as T,Hs as ne,I as E,Ic as re,Ii as ie,Il as D,Io as ae,Ji as oe,Jl as se,Jo as ce,Jr as le,Js as ue,K as de,Kl as fe,Ko as pe,Ks as me,Lc as he,Ll as ge,Lu as _e,M as ve,Mn as ye,Mr as be,Mt as xe,Mu as Se,Nl as Ce,Nn as we,Nr as Te,Nu as Ee,O as De,Ol as Oe,Or as ke,Ot as Ae,Pl as je,Ps as Me,Pu as O,Qs as Ne,R as Pe,Rl as Fe,So as Ie,Sr as Le,Su as Re,Tt as ze,U as Be,Ul as Ve,Uo as He,Ur as Ue,V as We,Vl as Ge,Vo as Ke,Vr as qe,W as Je,Wc as Ye,Wl as k,Xc as Xe,Xs as Ze,Xu as Qe,Yc as $e,Yi as et,Yl as A,Yr as tt,Ys as nt,Yu as rt,Zi as it,Zo as j,Zs as at,_u as ot,ac as st,an as ct,ba as lt,bl as ut,br as dt,bu as ft,cl as pt,cn as mt,cr as ht,ct as gt,cu as _t,dn as vt,du as yt,ea as bt,en as xt,eu as St,fn as Ct,fu as wt,g as Tt,h as Et,hl as Dt,ic as Ot,in as kt,iu as At,j as jt,jl as Mt,jn as Nt,jo as Pt,jt as Ft,ju as It,kl as M,kn as Lt,kr as Rt,kt as zt,lc as Bt,ll as Vt,ln as Ht,lt as Ut,lu as Wt,m as Gt,mc as N,mu as Kt,nc as qt,nl as Jt,nn as Yt,on as Xt,ou as Zt,p as Qt,pn as $t,pu as en,qc as tn,qo as nn,qr as rn,qs as an,qu as on,rc as sn,rn as cn,sc as ln,sn as un,sr as dn,tc as fn,tl as pn,tn as mn,tu as hn,ul as gn,un as _n,uu as vn,vu as yn,wi as bn,wl as xn,wt as Sn,wu as Cn,xl as wn,xt as Tn,xu as P,yo as En,yt as Dn,yu as F,z as On,zl as kn,zr as An,zu as I}from"./control-ui-core-CBJ5efDh.js";import{A as jn,I as Mn,N as Nn,_ as Pn,c as Fn,d as In,g as Ln,j as Rn,l as zn,n as Bn,t as Vn,u as Hn}from"./control-ui-boot-shared-gZIpWrfw.js";import{$n as Un,$t as Wn,Aa as Gn,Ai as Kn,At as qn,Ba as Jn,Dn as Yn,Ei as Xn,En as Zn,Fi as Qn,Ht as $n,Ia as er,Ja as tr,La as nr,Ni as rr,On as ir,Qa as ar,Ti as or,Tr as sr,Ua as cr,Ut as lr,Vt as ur,Wa as dr,Wt as fr,Ya as pr,Zt as mr,_n as hr,an as gr,ca as L,dr as _r,er as vr,fa as yr,go as br,hn as xr,in as Sr,jt as Cr,ki as wr,kn as Tr,la as Er,ma as Dr,mr as Or,na as kr,nn as Ar,nr as jr,oa as R,on as Mr,pr as Nr,qa as Pr,qr as Fr,rn as Ir,rr as Lr,sa as z,ta as Rr,ti as zr,ua as Br,ui as Vr,ur as Hr,wo as Ur,wr as Wr,za as Gr}from"./control-ui-core-DtLivg_r.js";import{A as Kr,C as qr,E as Jr,G as B,H as Yr,I as Xr,J as V,K as Zr,M as Qr,N as $r,P as ei,T as ti,W as H,X as ni,Z as ri,_ as ii,at as U,c as ai,d as oi,f as si,g as ci,h as li,i as ui,k as di,l as fi,lt as pi,n as mi,o as hi,q as gi,rt as W,s as _i,t as vi,y as yi}from"./lit-runtime-IOnANfcZ.js";import{At as bi,Bn as xi,Cr as Si,F as Ci,Hn as wi,Jt as Ti,N as Ei,O as Di,Ot as Oi,Rn as ki,T as Ai,Vn as ji,Xt as Mi,Yt as Ni,_r as Pi,br as Fi,c as Ii,cn as Li,cr as Ri,ct as zi,en as Bi,er as Vi,fr as Hi,gr as Ui,hr as Wi,jt as Gi,k as Ki,kt as qi,mr as Ji,nr as Yi,or as Xi,pr as Zi,qt as Qi,s as $i,sn as ea,sr as ta,st as na,vr as ra,w as ia,zn as aa}from"./control-ui-boot-shared-CkXlyZBY.js";import{c as oa,l as sa}from"./gateway-runtime-C77LeWZN.js";import{$ as ca,$i as la,$n as ua,$r as da,$t as fa,A as pa,Ai as ma,Ar as ha,At as ga,Bi as _a,Br as va,C as ya,Ca as ba,Cn as xa,Cr as Sa,Ct as Ca,D as wa,Da as Ta,Di as Ea,Dr as Da,Ea as Oa,Ei as ka,Er as Aa,Et as ja,F as Ma,Fr as Na,G as Pa,Gi as Fa,Gn as Ia,Gr as La,Gt as Ra,Hi as za,Hr as Ba,Ii as Va,Ir as Ha,It as Ua,J as Wa,Ji as Ga,Jr as Ka,Jt as qa,K as Ja,Ki as Ya,Kn as Xa,Kt as Za,La as Qa,Li as $a,Lr as eo,Lt as to,Ma as no,Mi as ro,Mr as io,Mt as ao,Ni as oo,Nt as so,Oa as co,Oi as lo,Or as uo,P as fo,Pi as po,Pr as mo,Q as ho,Qi as go,Qn as _o,Qr as vo,Qt as yo,Ri as bo,Rr as xo,Rt as So,S as Co,Ta as wo,Ti as To,Tr as Eo,Tt as Do,Ui as Oo,Ur as ko,Ut as Ao,Vi as jo,Vr as Mo,Vt as No,W as Po,Wi as Fo,Wn as Io,Wt as Lo,Xi as Ro,Xn as zo,Xt as Bo,Y as Vo,Yi as Ho,Yn as Uo,Yr as Wo,Yt as Go,Z as Ko,Zi as qo,Zn as Jo,Zr as Yo,Zt as Xo,_i as Zo,_t as Qo,aa as $o,ai as es,an as ts,ar as ns,at as rs,bi as is,br as as,bt as os,c as ss,ca as cs,ci as ls,cn as us,ct as ds,d as fs,da as ps,di as ms,dn as hs,dr as gs,dt as _s,ei as vs,en as ys,er as bs,f as xs,fa as Ss,fi as Cs,fn as ws,fr as Ts,ft as Es,g as Ds,ga as Os,gi as ks,gr as As,gt as js,h as Ms,ha as Ns,hn as Ps,hr as Fs,ht as Is,ia as Ls,ii as Rs,in as zs,ir as Bs,it as Vs,ja as Hs,ji as Us,jr as Ws,jt as Gs,ki as Ks,kt as qs,l as Js,li as Ys,lr as Xs,lt as Zs,m as Qs,ma as $s,mi as ec,mn as tc,mt as nc,n as rc,na as ic,ni as ac,nn as oc,nt as sc,o as cc,oa as lc,oi as uc,on as dc,or as fc,ot as pc,p as mc,pa as hc,pi as gc,pn as _c,pr as vc,pt as yc,q as bc,qi as xc,qn as Sc,qt as Cc,ra as wc,rn as Tc,rt as Ec,s as Dc,sa as Oc,si as kc,st as Ac,t as jc,ti as Mc,tn as Nc,tt as Pc,u as Fc,ua as Ic,ui as Lc,ur as Rc,ut as zc,v as Bc,vi as Vc,w as Hc,wa as Uc,wn as Wc,wr as Gc,x as Kc,xi as qc,xn as Jc,xr as Yc,xt as Xc,y as Zc,yi as Qc,yn as $c,yr as el,zi as tl,zr as nl,zt as rl}from"./control-ui-boot-shared-UG5ko-VG.js";import{Bi as il,Do as al,Ei as ol,Gi as sl,H as cl,Hr as ll,Ki as ul,Kt as dl,Mo as G,Mt as fl,N as pl,Ni as ml,No as hl,Oi as gl,Oo as _l,Po as K,Ra as vl,So as yl,Sr as bl,Ti as xl,To as Sl,U as Cl,Ui as wl,Ur as Tl,V as El,Vi as Dl,Vr as Ol,Wi as kl,Wr as Al,Wt as jl,Xt as Ml,Yt as Nl,Zr as q,Zt as Pl,_a as Fl,_n as Il,ao as Ll,bo as Rl,ci as zl,dn as Bl,ea as Vl,fn as Hl,go as Ul,hi as Wl,hn as Gl,io as Kl,jo as ql,jt as Jl,ma as Yl,mn as Xl,mt as Zl,no as Ql,pa as $l,pi as eu,qt as tu,rn as nu,uo as ru,va as iu,vi as au,wa as ou,wo as su,xa as cu,xr as lu,ya as J,yi as uu,yn as du}from"./ui-CmSP4d14.js";import{B as fu,D as pu,I as mu,O as hu,T as gu,V as _u,r as vu,st as yu,z as bu}from"./control-ui-boot-shared-VLPz5vN2.js";import{_ as xu,m as Su,y as Cu}from"./control-ui-boot-shared-SQHdJTzb.js";import{$ as wu,A as Tu,Ci as Eu,D as Du,E as Ou,Fi as ku,G as Au,I as ju,Ii as Mu,K as Nu,Kt as Pu,Li as Fu,Mi as Iu,Ni as Lu,O as Ru,Pi as zu,Ri as Bu,Si as Vu,Ti as Hu,Wt as Uu,X as Wu,Xi as Gu,Y as Ku,Yi as qu,a as Ju,bi as Yu,bt as Xu,c as Zu,ct as Qu,dn as $u,et as ed,fa as td,fn as nd,gn as rd,gt as id,ht as ad,i as od,j as sd,k as cd,l as ld,ln as ud,lr as dd,lt as fd,m as pd,mn as md,mt as hd,n as gd,na as _d,nt as vd,o as yd,ot as bd,p as xd,pa as Sd,pt as Cd,q as wd,r as Td,rt as Ed,s as Dd,st as Od,t as kd,ta as Ad,u as jd,un as Md,ut as Nd,v as Pd,vn as Fd,vt as Id,wi as Ld,xi as Rd,xt as zd,yn as Bd,yt as Vd,zi as Hd}from"./control-ui-boot-shared-XreXSF7h.js";import{C as Ud,D as Wd,E as Gd,G as Kd,H as qd,K as Jd,L as Yd,M as Xd,O as Zd,S as Qd,V as $d,_ as ef,a as tf,d as nf,f as rf,g as af,j as of,l as sf,n as cf,o as lf,u as uf,w as df,z as ff}from"./control-ui-boot-shared-Q8KG_noF.js";import"./control-ui-boot-shared-styles-BXPMRytW.js";function pf(e,t,n){if(!ou(e))return null;let r=e;return Object.keys(r).some(e=>!jf.has(e))||r.key!==t||r.agentId!==n||r.message!==``||r.worktreeSource!==void 0&&(!Cu(Qi.properties.worktreeSource,r.worktreeSource)||r.worktree!==!0||r.repository!==void 0||r.projectId!==void 0||r.cwd!==void 0||r.worktreeBaseRef!==void 0||r.catalogId!==void 0)||(r.repository===void 0?r.worktree!==!0:!Cu(Qi.properties.repository,r.repository)||r.worktree!==void 0||r.projectId!==void 0||r.cwd!==void 0||r.worktreeBaseRef!==void 0||r.worktreeName!==void 0||r.catalogId!==void 0)||r.incognito!==void 0&&r.incognito!==!0||r.visibility!==void 0&&r.visibility!==`draft`||r.fastMode!==void 0&&!Cu(Qi.properties.fastMode,r.fastMode)||r.permissionMode!==void 0&&!Cu(xi,r.permissionMode)||r.toolOverrides!==void 0&&!Cu(ji,r.toolOverrides)||r.titleSource!==void 0&&!Cu(Qi.properties.titleSource,r.titleSource)||r.projectId!==void 0&&r.cwd!==void 0||Af.some(e=>r[e]!==void 0&&!_l(r[e]))?null:r}function mf(e){try{let t=JSON.parse(e);return ou(t)?t:null}catch{return null}}function hf(e){return ou(e)?e.kind===`profile`&&Object.keys(e).every(e=>e===`kind`||e===`profileId`||e===`os`||e===`machineClass`)&&_l(e.profileId)&&(e.os===void 0||_l(e.os)&&e.os.length<=64)&&(e.machineClass===void 0||_l(e.machineClass)&&e.machineClass.length<=128)||e.kind===`device`&&Object.keys(e).every(e=>e===`kind`||e===`deviceId`)&&_l(e.deviceId)?e:e.kind===`auto-device`&&Object.keys(e).every(e=>e===`kind`)?{kind:`auto-device`}:null:null}function gf(e,t,n,r){if(e.createParams?.incognito===!0||!_l(e.sessionKey)||r!==void 0&&e.sessionKey!==r||!_l(e.messageId)||typeof e.message!=`string`||!_l(e.message)&&!e.attachments?.length||e.attachments!==void 0&&!Array.isArray(e.attachments)||!hf(e.target)||!_l(e.agentId)||e.gatewayUrl!==t||e.recoveryScope!==n||e.phase!==`creating`&&e.phase!==`dispatching`&&e.phase!==`sending`&&e.phase!==`paused`||e.phase===`paused`&&(e.reason!==`not-sent`&&e.reason!==`rejected`&&e.reason!==`unconfirmed`||!_l(e.error)||e.error.length>kf)||e.phase===`creating`&&!pf(e.createParams,e.sessionKey,e.agentId))return null;let{mentions:i,...a}=e,o=Ss(e.message,i);return i!==void 0&&(!Array.isArray(i)||(o?.length??0)!==i.length)?null:{...a,...o?{mentions:o}:{}}}function _f(e,t){try{return e.removeItem(t),e.getItem(t)===null}catch{return!1}}function vf(e,t,n,r,i){try{let a=e.getItem(t);if(a===null)return null;let o=mf(a),s=o?gf(o,n,r,i):null;return!s||t!==Yt(n,r,s.sessionKey)?(_f(e,t),null):s}catch{return null}}function yf(e,t,n,r){let i=Yt(r.gatewayUrl,r.recoveryScope,r.sessionKey),a=JSON.stringify(r);try{if(e.removeItem(t),e.getItem(t)!==null)return null;e.setItem(i,a);let n=vf(e,i,r.gatewayUrl,r.recoveryScope,r.sessionKey);if(n)return n}catch{}_f(e,i);try{e.setItem(t,n)}catch{}return null}function bf(e,t){try{let n=globalThis.sessionStorage;return n?t(n):e}catch{return e}}function xf(e,t){return!e||!t?[]:bf([],n=>{let r=new Map;for(let i of mn(e,t)){let a=vf(n,i,e,t);a&&r.set(a.sessionKey,a)}return[...r.values()].toSorted((e,t)=>e.sessionKey.localeCompare(t.sessionKey))})}function Sf(e,t,n){for(let r of xf(e,t))Tf({...r,recoveryScope:n})&&Df(e,t,r.sessionKey,r.messageId)}function Cf(e,t,n){return!e||!t||!n?null:bf(null,r=>vf(r,Yt(e,t,n),e,t,n))}function wf(e){let{gatewayUrl:t,recoveryScope:n,sessionKey:r}=e,i=gf(e,t,n,r);return!t||!n||!i?!1:bf(!1,e=>{let a=Yt(t,n,r);return e.setItem(a,JSON.stringify(i)),!!vf(e,a,t,n,r)})}function Tf(e,t=e.messageId){let n=Cf(e.gatewayUrl,e.recoveryScope,e.sessionKey);return n&&n.messageId!==t?!1:wf(e)}function Ef(e,t){return e===t.sessionKey?Tf(t):bf(!1,n=>{if(!e)return!1;let r=Yt(t.gatewayUrl,t.recoveryScope,e),i=n.getItem(r),a=vf(n,r,t.gatewayUrl,t.recoveryScope,e);if(!i||!a)return Tf(t);if(a.messageId!==t.messageId)return!1;let o=vf(n,Yt(t.gatewayUrl,t.recoveryScope,t.sessionKey),t.gatewayUrl,t.recoveryScope,t.sessionKey);return o?o.messageId===t.messageId&&_f(n,r):!!yf(n,r,i,t)})}function Df(e,t,n,r){e&&t&&bf(void 0,i=>{if(n){let a=Yt(e,t,n);if(r&&mf(i.getItem(a)??``)?.messageId!==r)return;_f(i,a);return}let a=cn(e,t);for(let e=i.length-1;e>=0;--e){let t=i.key(e);t?.startsWith(a)&&_f(i,t)}})}function Of(e,t,n,r=e.phase===`paused`?e.reason:e.phase===`sending`?`unconfirmed`:`not-sent`){let i={...e,phase:`paused`,reason:r,error:il(F(t),kf)},a=n&&Tf(i);return n&&!a&&(Cf(e.gatewayUrl,e.recoveryScope,e.sessionKey)?.phase!==`paused`&&Df(e.gatewayUrl,e.recoveryScope,e.sessionKey,e.messageId),i.error=il(`Recovery could not be saved in this tab. Keep this page open.\n${i.error}`,kf)),{recovery:i,persisted:a}}var kf,Af,jf;function Mf(){return(Mf=e((()=>{Ti(),wi(),Su(),ps(),P(),xt(),kf=4096,Af=[`category`,`displayName`,`titleSource`,`model`,`agentRuntime`,`contextWindow`,`thinkingLevel`,`worktreeBaseRef`,`worktreeName`,`cwd`,`catalogId`,`projectId`],jf=new Set([`key`,`agentId`,`message`,`worktree`,`worktreeSource`,`repository`,`incognito`,`visibility`,`permissionMode`,`fastMode`,`toolOverrides`,...Af])})))()}function Nf(e){if(!e||typeof e!=`object`)return;let t=e,n={};for(let e of[`receivedToAckMs`,`loadSessionMs`,`prepareAttachmentsMs`]){let r=Wl(t[e]);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function Pf(e){return e===`in_flight`||e===`ok`||e===`timeout`||e===`error`?e:`started`}function Ff(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=Nf(n.serverTiming),a=typeof n.messageSeq==`number`&&Number.isSafeInteger(n.messageSeq)&&n.messageSeq>0?n.messageSeq:void 0;return{runId:r,status:Pf(n.status),...i?{serverTiming:i}:{},...a===void 0?{}:{messageSeq:a},...n.stopReason===`restart`?{stopReason:`restart`}:{}}}function If(e){return e?.status===`timeout`||e?.status===`error`}function Lf(){return(Lf=e((()=>{uu()})))()}function Rf(){return(Rf=e((()=>{$d()})))()}function zf(e){return e.startsWith(`/`)&&Yf.some(t=>e.includes(t))}function Bf(e){let t=e.trim();if(!t)return;let n=/^https?:\/\//i.test(t)||zf(t)?URL.parse(t,`https://openclaw.invalid`):null;if(!n)return(t.split(/[\\/]/).pop()??t)||void 0;let r=n.pathname.slice(n.pathname.lastIndexOf(`/`)+1);try{let e=r.replace(/%2f/gi,`%252F`).replace(/%5c/gi,`%255C`);r=decodeURIComponent(e)}catch{}return r||void 0}function Vf(e){let t=Bf(e);if(t)return/\.([a-zA-Z0-9]+)$/.exec(t)?.[1]?.toLowerCase()}function Hf(e){let t=Vf(e);return t!==void 0&&Xf.has(t)}function Uf(e){return typeof e==`string`?e.trim().toLowerCase():``}function Wf(e,t){let n=Uf(t);if(n&&n!==`application/octet-stream`)return n.startsWith(`image/`);let r=Vf(e);return r!==void 0&&[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`heic`,`heif`,`avif`].includes(r)}function Gf(e,t){return(typeof t==`string`?t.split(`;`,1)[0]?.trim().toLowerCase():``)===`image/svg+xml`||Vf(e)===`svg`}function Kf(e,t){if(Uf(t).startsWith(`audio/`))return!0;let n=Vf(e);return n!==void 0&&[`aac`,`flac`,`m2a`,`m4a`,`mp3`,`oga`,`ogg`,`opus`,`wav`].includes(n)}function qf(e,t){return Uf(t).startsWith(`video/`)||Hf(e)}function Jf(e){let t=e.trim();if(t.startsWith(Zf)){let e=t.split(`/`).pop()?.trim()||t;return e.replace(Qf,``)||e}try{if(/^https?:\/\//i.test(t)){let e=new URL(t);return Bf(t)?.trim()||e.hostname||t}}catch{}return t.split(/[\\/]/).pop()?.trim()||t}var Yf,Xf,Zf,Qf;function $f(){return($f=e((()=>{Yf=[`/__openclaw__/assistant-media`,`/__openclaw__/media/`,`/api/chat/media/outgoing/`,`/media/inbound/`],Xf=new Set([`avi`,`m4v`,`mkv`,`mov`,`mp4`,`mpeg`,`mpg`,`webm`]),Zf=`media://inbound/`,Qf=/---[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}(?=\.[^./]*$|$)/i})))()}function ep(e){if(typeof URL<`u`&&typeof URL.createObjectURL==`function`)return URL.createObjectURL(e)}function tp(e){return Xt(e.attachment.id),ct.set(e.attachment.id,{blob:e.file,dataUrl:e.dataUrl}),e.attachment}function np(e){return e.dataUrl??ct.get(e.id)?.dataUrl??null}function rp(e){let t=ct.get(e.id);if(t?.videoPoster)return t.videoPoster.promise;if(!(t?.blob instanceof File)||t.blob.size>536870912)return null;let n=t.blob,r=ep(n);if(!r)return null;let i=new AbortController,a={controller:i,promise:$l(async()=>{let{requestVideoPoster:e}=await Promise.resolve().then(()=>(PT(),ET));return{requestVideoPoster:e}},void 0,import.meta.url).then(({requestVideoPoster:e})=>e({key:n,src:r,width:54,height:54,signal:i.signal}),()=>null).then(t=>!t||ct.get(e.id)?.videoPoster!==a?null:(a.url=ep(t),a.url??null)).finally(()=>Ht(r))};return t.videoPoster=a,a.promise}function ip(e){let t=/^data:([^,]*),(.*)$/s.exec(e);if(!t)return null;let n=t[1]??``,r=t[2]??``;try{let e=n.toLowerCase().includes(`;base64`)?d(r.replace(/\s+/gu,``)):decodeURIComponent(r.replace(/\+/gu,`%20`));return new Blob([e],{type:n.split(`;`,1)[0]})}catch{return null}}function ap(e){let t=ct.get(e.id);if(t?.blob)return t.blob;let n=np(e);if(!n)return null;let r=ip(n);return r&&ct.set(e.id,{...t,blob:r,dataUrl:n}),r}function op(e){let t=e.previewUrl??ct.get(e.id)?.previewUrl;if(t)return t;let n=ap(e),r=n&&ep(n);return r&&ct.set(e.id,{...ct.get(e.id),previewUrl:r}),r??np(e)}function sp(e){return e.map(e=>{let{id:t,previewUrl:n,...r}=e,i=np(e);return{...r,id:lp(),...i?{dataUrl:i}:{}}})}function cp(e,t){let n=new Set(t.flat().map(e=>e.id));un(e.filter(e=>!n.has(e.id)))}function lp(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function up(e,t=[]){return un(e),t.flatMap(({mimeType:e,data:t})=>fp.test(e)&&t.length<=mp&&Ci(t)&&Ei(t)<=pp?[{id:lp(),mimeType:e,dataUrl:`data:${e};base64,${t}`}]:[])}function dp(e=[]){for(let{id:t}of e){let e=ct.get(t);e&&(mt(e),e.previewUrl?ct.set(t,{previewUrl:e.previewUrl}):ct.delete(t))}}var fp,pp,mp;function Y(){return(Y=e((()=>{kt(),Yl(),fp=/^image\/[\w.+-]+$/u,pp=5242880,mp=Math.ceil(pp/3)*4})))()}var hp;function gp(){return(gp=e((()=>{oo(),Rs(),hp=class{constructor(){this.reads=new WeakMap}capture(e,t,n,r,i){let a=N(t),o=this.reads.get(e)??new Map;this.reads.set(e,o);let s=o.get(a),c=s?.client===r&&s.connectionEpoch===i&&s.item.sessionId===n.sessionId&&Va(s.item,n)?s:{client:r,connectionEpoch:i,item:n,cursor:void 0};return o.set(a,c),{cursor:c.cursor,accept:t=>{this.reads.get(e)?.get(a)===c&&(c.cursor=t)}}}forget(e){this.reads.delete(e)}reconcile(e,t){let n=this.reads.get(e);for(let[e,r]of n??[])t.some(t=>N(t)===e&&t.queue.some(e=>e.id===r.item.id))||n?.delete(e)}}})))()}function _p(e,t,n){t.forEach(t=>{e.durableSeen.add(t),n(t)});for(let n of e.byScope.values())n.queue=n.queue.filter(n=>t.has(n.id)||bp(e,n))}function vp(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}function yp(e,t){return e.flatMap(e=>e.queue.filter(n=>t?t.needsReview(e,n):uo(n)).map(t=>({id:t.id,sessionKey:e.sessionKey,agentId:e.agentId,unconfirmed:t.sendState===`unconfirmed`||t.sendState===`held`,command:!!t.localCommandName})))}function bp(e,t){return!!(t.pendingRunId||t.sendState===`waiting-model`||e.retryable.has(t.id)||!e.durableSeen.has(t.id))}function xp(){return(xp=e((()=>{Eo()})))()}function Sp(e){return e.trim().length===0?``:e}function Cp(){return(Cp=e((()=>{})))()}function wp(e){return{gatewayOwner:ms(e.settings?.gatewayUrl).gatewayOwner,recoveryScope:Or(e)??``,client:e.client}}function Tp(e,t){return t.gatewayOwner===ms(e.settings?.gatewayUrl).gatewayOwner&&t.recoveryScope===(Or(e)??``)&&(t.client===e.client||e.client?.recoveryScopeReady===!0)}function Ep(e,t){return Ll(t.sessionKey)||!!(e.selectedChatSessionIncognito&&e.sessionKey&&N(k(e,e.sessionKey))===N(t))}function Dp(e,t=k(e,e.sessionKey)){let n=Or(e);return n?{gatewayOwner:Lc(e).gatewayOwner,recoveryScope:n,scopeKey:`chat:v3:${N(t)}`}:null}function Op(){return(Op=e((()=>{Kl(),Nr(),Rs(),M()})))()}function kp(e,t,n,r){if(!n?.draft&&!n?.goalMode&&!n?.replyTarget&&n?.draftRevision===void 0&&r.length===0){delete e.sessions[t];return}e.sessions[t]={...n?.awaitingDefaults?{awaitingDefaults:!0}:{},...n?.draft?{draft:n.draft}:{},...n?.draftMentions?{draftMentions:n.draftMentions}:{},...n?.goalMode?{goalMode:n.goalMode}:{},...n?.replyTarget?{replyTarget:n.replyTarget}:{},...n?.draftRevision===void 0?{}:{draftRevision:n.draftRevision},...r.length?{queue:r}:{},updatedAt:Date.now()}}function Ap(e,t){if(!e.id?.trim()||!e.text?.trim()&&!e.attachments?.length&&!e.attachmentPayload&&!e.attachmentStorageError||e.pendingRunId||e.sendState===`sending`&&!e.sendRunId)return null;let n=(e.attachments??[]).map(t=>{let{dataUrl:n,previewUrl:r,...i}=t;if(e.attachmentPayload)return i;let a=np(t);return a?Object.assign(i,{dataUrl:a}):e.attachmentStorageError?i:null});if(e.attachments?.length&&n.some(e=>e===null))return null;let r=po({...e,attachments:n.length?n:void 0,...e.sendState===`waiting-model`?{sendError:ro}:{}});return r?da(r,t):null}function jp(e,t,n){let r=Ap(t,n);return!!(r&&Va(e,r))}function Mp(e,t,n){let r=Ap(e,n);return!!(r&&JSON.stringify(r)===JSON.stringify(t))}function Np(){return(Np=e((()=>{oo(),Rs(),Y()})))()}function Pp(e){return JSON.stringify([e.gatewayOwner,e.recoveryScope,e.scopeKey])}function Fp(e,t){let n=JSON.stringify([e.gatewayOwner,e.recoveryScope]);Bp.has(n)||(Bp.add(n),t())}function Ip(e,t,n,r,i){return JSON.stringify([e,n??null,r??[],i?[i.messageId,i.text,i.senderLabel??null,i.sourceMessageId??null]:null,t.map(e=>[e.id,e.mimeType,e.origin??null,e.fileName??``,e.sizeBytes??-1,e.browserAnnotation??null,e.selectionAnnotation??null])])}function Lp(e){let t=[];for(let n of e){let e=ap(n);if(!e)return null;t.push({blob:e,mimeType:n.mimeType,...n.origin?{origin:n.origin}:{},...n.fileName?{fileName:n.fileName}:{},...typeof n.sizeBytes==`number`?{sizeBytes:n.sizeBytes}:{},...n.browserAnnotation?{browserAnnotation:{...n.browserAnnotation}}:{},...n.selectionAnnotation?{selectionAnnotation:{...n.selectionAnnotation}}:{}})}return t}async function Rp(e){return Promise.all(e.map(async({blob:e,selectionAnnotation:t,...n})=>{let r=bo(t),i=e.type===n.mimeType?e:e.slice(0,e.size,n.mimeType);return{...n,id:lp(),...n.browserAnnotation?{browserAnnotation:{...n.browserAnnotation}}:{},...r?{selectionAnnotation:r}:{},dataUrl:await el(i)}}))}async function zp(e){let{writeDurableComposerDraft:t}=await Vp,n=e.storedAttachments===null;return{result:await t(e.scope,{revision:e.revision,text:n?``:e.text,...e.mentions?.length&&!n?{mentions:e.mentions}:{},...e.goalMode?{goalMode:e.goalMode}:{},...e.replyTarget?{replyTarget:e.replyTarget}:{},...e.modelSelection?{modelSelection:e.modelSelection}:{},attachments:e.storedAttachments??[]},{expectedRevision:e.expectedRevision,...e.expectedWriteId?{expectedWriteId:e.expectedWriteId}:{},...e.expectedWriteIds?.length?{expectedWriteIds:e.expectedWriteIds}:{},writeId:e.writeId}),payloadUnavailable:n}}var Bp,Vp,Hp;function Up(){return(Up=e((()=>{$a(),Y(),Yl(),Bp=new Set,Vp=$l(()=>import(`./control-ui-boot-shared-UG5ko-VG.js`).then(e=>(e.i(),e.r)),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),Hp=class{constructor(e,t){this.onStorageError=e,this.onConflict=t,this.restoreGeneration=0,this.restoredScopeKey=``}resetRestoreScope(){this.restoreGeneration+=1,this.restoredScopeKey=``}async persist(e){let{result:t,payloadUnavailable:n}=await zp(e);n&&Fp(e.scope,this.onStorageError),t.status===`storage-failed`||t.status===`payload-too-large`?Fp(e.scope,this.onStorageError):t.status===`conflict`&&(this.resetRestoreScope(),this.onConflict())}async retire(e,t){this.resetRestoreScope();let{retireDurableComposerDraft:n}=await Vp;(await n(e,t)).status===`storage-failed`&&Fp(e,this.onStorageError)}restore(e,t,n,r){let i=Pp(e);if(this.restoredScopeKey===i)return;let{onCurrentWins:a,...o}=t(),s={scope:e,...o};this.restoredScopeKey=i;let c=++this.restoreGeneration,l=()=>{let e=n();return c===this.restoreGeneration&&e.scope?.gatewayOwner===s.scope.gatewayOwner&&e.scope.recoveryScope===s.scope.recoveryScope&&e.scope.scopeKey===s.scope.scopeKey&&e.signature===s.signature&&e.revision===s.latestRevision};(async()=>{let{readDurableComposerDraft:e,prepareDurableComposerRecovery:t}=await Vp;if(s.scope.scopeKey.startsWith(`chat:v3:`)&&(await t(s.scope)).status===`storage-failed`){Fp(s.scope,this.onStorageError);return}let n=await e(s.scope);if(n.status===`storage-failed`){Fp(s.scope,this.onStorageError);return}let i=n.status===`found`?n.draft.revision:n.revision;if(i===void 0||i<s.latestRevision){l()&&a(i??0);return}let o=n.status===`found`?n.draft:void 0,c=[];if(o)try{c=await Rp(o.attachments)}catch{Fp(s.scope,this.onStorageError);return}l()&&r({revision:i,text:o?o.text:``,...o?.mentions?{mentions:o.mentions}:{},...o?.goalMode?{goalMode:o.goalMode}:{},...o?.replyTarget?{replyTarget:o.replyTarget}:{},attachments:c})})()}}})))()}function Wp(e,t){let n={snapshot:null,revisions:{committed:0,latestAttempt:0}},r=on();if(!r)return n;try{let n=Lc(e),i=ls(r,n);if(Ys(i,e))try{gc(r,n,i)}catch{}let a=N(t),o=i.sessions[a];if(o&&Ep(e,t)&&ac(o))try{gc(r,n,i),uc()}catch{}Us(r,n.key,a,o?.draftRevision);let s=lo(r,n.key,a,o?.draftRevision),c=Sp(o?.draft??``);return!o||!c&&!o.goalMode&&!o.replyTarget&&!o.queue?.length?{snapshot:null,revisions:s}:{revisions:s,snapshot:{draft:c,...o.draftMentions?{mentions:o.draftMentions}:{},...o.goalMode?{goalMode:o.goalMode}:{},...o.replyTarget?{replyTarget:{...o.replyTarget}}:{},queue:(o.queue??[]).filter(t=>ks(e,t)).map(e=>Ap(e,t)).filter(e=>e!==null)}}}catch{return n}}function Gp(e,t,n,r,i){let a=i?.owner.recoveryScope&&!Tp({...e,connected:!1},i.owner),o=a?i.durable?.scope??null:t,s=k(e,e.sessionKey),c=Sp(e.chatMessage),l=e.chatGoalDraftMode?{...e.chatGoalDraftMode}:void 0,u=e.chatReplyTarget?{...e.chatReplyTarget}:void 0,d=Ss(e.chatMessage,e.chatMentions),f=e.chatAttachments?.map(e=>({...e,...e.browserAnnotation?{browserAnnotation:{...e.browserAnnotation}}:{},...e.selectionAnnotation?{selectionAnnotation:{...e.selectionAnnotation}}:{}}))??[],p=o?{scope:o,expectedRevision:r,revision:n,text:c,...d?{mentions:d}:{},...l?{goalMode:l}:{},...u?{replyTarget:u}:{},storedAttachments:Lp(f),writeId:`${n}:${Math.random().toString(36).slice(2)}`}:void 0;return{owner:a?i.owner:wp(e),scope:s,incognito:Ep(e,s),awaitingDefaults:!Oe(e),sessionKey:e.sessionKey,chatMessage:c,...d?{mentions:d}:{},...l?{goalMode:l}:{},...u?{replyTarget:{...u}}:{},expectedDraftRevision:r,draftRevision:n,attachments:f,...p?{durable:p}:{}}}function Kp(){return(Kp=e((()=>{ps(),ec(),ka(),Rs(),M(),Op(),Np(),Up()})))()}function qp(e,t){let n=k(e,e.sessionKey),r=t??Ea(Wp(e,n).revisions.latestAttempt);ma(on()??e,Lc(e).key,N(n),r)}function Jp(e,t,n){let r=k(e,t,n),{revisions:i}=Wp(e,r);return To(on()??e,Lc(e).key,N(r),i.latestAttempt)}function Yp(e,t,n){return Wp(e,k(e,t,n))}function Xp(e,t=e.sessionKey,n={}){return Zp(e,vs(e,t,n.agentId),n)}function Zp(e,t,n={}){let r=on();if(!r||!t.scope.sessionKey.trim())return`storage-failed`;try{let i=wp(e),a=Lc(e),o=ls(r,a),s=N(t.scope),c=o.sessions[s]??null,l=t.incognito||Ep(e,t.scope),u=l?``:Sp(Object.hasOwn(n,`draft`)?n.draft??``:e.chatMessage),d=l?null:Object.hasOwn(n,`goalMode`)?n.goalMode:e.chatGoalDraftMode,f=l?null:Object.hasOwn(n,`replyTarget`)?n.replyTarget:e.chatReplyTarget,p=Ss(u,Object.hasOwn(n,`mentions`)?n.mentions:e.chatMentions),m=e=>JSON.stringify(e?.draftMentions??[])===JSON.stringify(p??[])&&JSON.stringify(e?.goalMode??null)===JSON.stringify(d??null)&&JSON.stringify(e?.replyTarget??null)===JSON.stringify(f??null),h=c?.draftRevision;Us(r,a.key,s,h);let{committed:g,latestAttempt:_}=lo(r,a.key,s,h),v=n.draftRevision??Ea(_);if(!Number.isSafeInteger(v)||v<=0)return`conflict`;let y=Sp(c?.draft??``),b=y===u&&m(c),x=n.expectedDraftRevision;if(!(x===void 0||g===x||h===v&&b)||v<_||h===v&&!b)return`conflict`;Ks(r,a.key,s,v),o.sessions[s]={...t.awaitingDefaults?{awaitingDefaults:!0}:{},...u?{draft:u}:{},...p?{draftMentions:p}:{},...d?{goalMode:d}:{},...f?{replyTarget:{...f}}:{},draftRevision:v,...c?.queue?.length?{queue:c.queue}:{},updatedAt:Date.now()},gc(r,a,o);let S=ls(r,a).sessions[s];return S?.draftRevision===v&&(S.draft??``)===u&&m(S)?(es({...c,draft:y},{draft:u,goalMode:d,replyTarget:f}),!l&&Tp(e,i)&&Ep(e,t.scope)&&Wp(e,t.scope),`persisted`):(S?.draftRevision??0)>=v?`conflict`:`storage-failed`}catch{return`storage-failed`}}function Qp(e,t=e.sessionKey,n={}){return Xp(e,t,n)===`persisted`}function $p(e,t,n,r){return em(e,t,n,r)===`admitted`}function em(e,t,n,r){let i=on();if(!i||!t.scope.sessionKey.trim()||t.owner!==Or(e)||t.gatewayOwner!==Lc(e).gatewayOwner)return`storage-failed`;try{let a=Lc(e),o=ls(i,a),s=t.scope,c={...n,storageScope:n.storageScope??Vc(e)},l=ks(e,c)?Ap(c,s):null;if(!l)return`storage-failed`;let u=Ys(o,e),d=N(s),f=o.sessions[d]??null,p=f?.queue??[];if(r&&!p.some(e=>e.id===r.id&&jp(e,r.expected,s)))return`source-changed`;let m=p.filter(e=>e.id!==r?.id),h=m.find(e=>e.id===l.id);if(h)return Mp(h,l,s)?(u&&(gc(i,a,o),uc()),`admitted`):`storage-failed`;if(m.length>=50)return`full`;kp(o,d,f,[...m,l]),t.awaitingDefaults&&(o.sessions[d].awaitingDefaults=!0),gc(i,a,o);let g=ls(i,a).sessions[d]?.queue?.find(e=>e.id===l.id),_=!!(g&&Mp(g,l,s));return uc(),_?`admitted`:`storage-failed`}catch{return`storage-failed`}}function tm(e,t,n,r){if(n.length===0)return!0;let i=on();if(!i||!t.trim()||n.some(({expected:e,next:t})=>e.id!==t.id))return!1;try{let a=Lc(e),o=ls(i,a),s={sessionKey:t,agentId:r??n[0].expected.agentId??n[0].next.agentId},c=N(s),l=o.sessions[c]??null,u=(l?.queue??[]).slice();for(let{expected:e,next:t}of n){let n=u.findIndex(t=>t.id===e.id),r=n>=0?u[n]:void 0,i=r&&jp(r,e,s)?Ap(t,s):null;if(!i)return!1;u[n]=i}kp(o,c,l,u),gc(i,a,o),uc();let d=ls(i,a).sessions[c]?.queue??[];return n.every(({next:e})=>{let t=Ap(e,s),n=d.find(t=>t.id===e.id);return!!(n&&t&&Mp(n,t,s))})}catch{return!1}}function nm(e,t,n,r,i){let a=on();if(!a||!t.trim()||!n.trim())return!1;try{let o=Lc(e),s=ls(a,o),c={sessionKey:t,agentId:i??r?.agentId},l=N(c),u=s.sessions[l]??null,d=u?.queue??[],f=d.findIndex(e=>e.id===n);if(f<0)return!0;let p=d[f];return!p||r&&!jp(p,r,c)?!1:(kp(s,l,u,d.filter((e,t)=>t!==f)),gc(a,o,s),uc(),!ls(a,o).sessions[l]?.queue?.some(e=>e.id===n))}catch{return!1}}function rm(e,t={}){e.chatMessage=Sp(e.chatMessage);let n=t.sessionKey??e.sessionKey,r=Yp(e,n).snapshot;return r?(!Ep(e,k(e,n))&&(!t.preserveCurrent||!e.chatMessage&&!e.chatGoalDraftMode&&!e.chatReplyTarget)&&(e.chatMessage=r.draft,e.chatMentions=r.mentions,e.chatGoalDraftMode=r.goalMode??null,e.chatReplyTarget=r.replyTarget??null),(!t.preserveCurrent&&r.queue.length>0||e.chatQueue.length===0)&&(e.chatQueue=r.queue),!0):!1}var im,am,om;function sm(){return(sm=e((()=>{Nr(),ps(),ec(),oo(),ka(),Rs(),M(),Y(),Kp(),Op(),Np(),Up(),as(),im=200,am=`Could not store the previous draft in browser storage. It remains available in this tab.`,om=class{constructor(e){this.getState=e,this.timer=null,this.ready=!1,this.pending=null,this.publishing=!1,this.lastPersisted=null,this.committedDraftRevision=0,this.latestDraftRevision=0,this.durableRestoreProtected=!1,this.durableOwner=null,this.durableRetiredScopeKey=``,this.forceDurableOwnerRestore=!1,this.durablePersistence=new Hp(()=>{let e=this.getState();e&&(e.lastError=am,e.chatError=am,e.requestUpdate?.())},()=>this.getState()?.requestUpdate?.())}get active(){return this.ready}get durableScope(){let e=this.getState();return e?this.resolveDurableScope(e):null}get presentationOwner(){return this.lastPersisted?.owner}get draftRevision(){return this.latestDraftRevision}start(){let e=this.getState();if(!e)return;this.ready=!0,this.pending=null;let{revisions:t,snapshot:n}=Wp(e,k(e,e.sessionKey));this.committedDraftRevision=t.committed,this.latestDraftRevision=t.latestAttempt,this.durableRestoreProtected=(e.chatAttachments?.length??0)>0||(n?.draft??``)!==e.chatMessage||JSON.stringify(n?.mentions??[])!==JSON.stringify(e.chatMentions??[])||JSON.stringify(n?.goalMode??null)!==JSON.stringify(e.chatGoalDraftMode??null)||JSON.stringify(n?.replyTarget??null)!==JSON.stringify(e.chatReplyTarget??null),this.durablePersistence.resetRestoreScope(),this.lastPersisted=this.snapshot(e,t.committed,t.committed),this.synchronizeDurablePersistence()}stop(){this.persistNow(),this.ready=!1,this.pending=null,this.clearTimer()}restore(e={}){let t=this.getState();if(!t)return!1;let n=rm(t,e);this.pending=null,this.clearTimer();let{revisions:r}=Wp(t,k(t,t.sessionKey));return this.committedDraftRevision=r.committed,this.latestDraftRevision=r.latestAttempt,this.lastPersisted=this.snapshot(t,r.committed,r.committed),this.durableRestoreProtected=!1,this.durablePersistence.resetRestoreScope(),n}schedule(){let e=this.getState();if(!this.ready||!e)return;let t=this.isUnchanged(e);if(t&&!this.pending){this.clearTimer();return}if(!t||!this.pending||!this.matchesCurrentContent(this.pending,e)){let t=Math.max(this.latestDraftRevision,this.pending?.draftRevision??0),n=Ea(t);this.latestDraftRevision=n,this.pending=this.snapshot(e,n),qp(e,n)}this.clearTimer(),this.timer=globalThis.setTimeout(()=>this.persistNow(),im)}persistNow(){let e=this.getState();if(!this.ready||!e||this.publishing)return;let t=this.pending;if(!t){if(this.isUnchanged(e))return;t=this.snapshot(e,Ea(this.latestDraftRevision)),this.latestDraftRevision=t.draftRevision}this.clearTimer(),this.persistSnapshot(e,t)}persistChangedState(){this.pending&&this.persistNow(),this.synchronizeDurablePersistence(),this.persistNow()}scopeForRouteSwitch(){let e=this.getState();return e?(this.pending??(this.isUnchanged(e)?this.lastPersisted:null))?.scope??k(e,e.sessionKey):null}persistForRouteSwitchResult(){let e=this.getState();if(!e)return{status:`persisted`};let t=this.pending,n=!1;if(!t&&this.ready&&this.isUnchanged(e)){let r=this.lastPersisted;if(!r.chatMessage&&!r.goalMode&&!r.replyTarget&&r.attachments.length===0)return this.pending=null,this.clearTimer(),{status:`persisted`};let{revisions:i,snapshot:a}=Wp(e,r.scope),o=i.committed;if(r.attachments.length===0&&o===r.draftRevision&&a?.draft===r.chatMessage&&JSON.stringify(a?.mentions??[])===JSON.stringify(r.mentions??[])&&JSON.stringify(a?.goalMode??null)===JSON.stringify(r.goalMode??null)&&JSON.stringify(a?.replyTarget??null)===JSON.stringify(r.replyTarget??null))return this.pending=null,this.clearTimer(),{status:`persisted`};if(o!==r.draftRevision||a?.draft||a?.goalMode||a?.replyTarget||i.latestAttempt>r.draftRevision)return{status:`conflict`};t={...r,expectedDraftRevision:o,draftRevision:Ea(Math.max(o,i.latestAttempt,this.latestDraftRevision))},this.latestDraftRevision=t.draftRevision,n=!0}else if(!t&&!this.ready&&!Sp(e.chatMessage)&&!e.chatGoalDraftMode&&!e.chatReplyTarget)return this.pending=null,this.clearTimer(),{status:`persisted`};return t??=this.snapshot(e,Ea(this.latestDraftRevision)),this.latestDraftRevision=Math.max(this.latestDraftRevision,t.draftRevision),this.clearTimer(),this.persistSnapshot(e,t,n)}persistSnapshot(e,t,n=!1){this.pending=t,this.publishing=!0;let r;try{r=Tp(e,t.owner)?Zp(e,t,{draft:t.chatMessage,mentions:t.mentions,goalMode:t.goalMode??null,replyTarget:t.replyTarget??null,draftRevision:t.draftRevision,...n?{expectedDraftRevision:t.expectedDraftRevision}:{}}):`persisted`}finally{this.publishing=!1}return t.durable&&(t.incognito||Tp(e,t.owner)&&Ep(e,t.scope)?this.retireDurableScope(t.durable.scope,t.draftRevision):this.durablePersistence.persist(t.durable)),r===`persisted`&&this.pending===t?(this.pending=null,this.committedDraftRevision=t.draftRevision,this.latestDraftRevision=Math.max(this.latestDraftRevision,t.draftRevision),this.lastPersisted=t,{status:r}):r===`storage-failed`?{status:r,expectedDraftRevision:t.expectedDraftRevision,draftRevision:t.draftRevision}:{status:r}}clearTimer(){this.timer!==null&&(globalThis.clearTimeout(this.timer),this.timer=null)}isUnchanged(e){let t=this.lastPersisted;return!!(t&&t.sessionKey===e.sessionKey&&t.incognito===Ep(e,t.scope)&&this.matchesCurrentContent(t,e))}matchesCurrentContent(e,t){return Ip(e.chatMessage,e.attachments,e.goalMode,e.mentions,e.replyTarget)===this.currentContentSignature(t,Sp(t.chatMessage))}currentContentSignature(e,t=e.chatMessage){return Ip(t,e.chatAttachments??[],e.chatGoalDraftMode,e.chatMentions,e.chatReplyTarget)}snapshot(e,t=this.latestDraftRevision,n=this.committedDraftRevision){return Gp(e,this.resolveDurableScope(e),t,n,this.lastPersisted)}resolveDurableScope(e,t=k(e,e.sessionKey)){return Ep(e,t)?null:Dp(e,t)}retireDurableScope(e,t){let n=Pp(e);this.durableRetiredScopeKey!==n&&(this.durableRetiredScopeKey=n,this.durableOwner=null,this.forceDurableOwnerRestore=!1,this.durableRestoreProtected=!1,this.durablePersistence.retire(e,t))}synchronizeDurablePersistence(){let e=this.getState();if(!this.ready||!e||this.publishing)return;let t=Dp(e);if(Ep(e,k(e,e.sessionKey))){t&&((!this.isUnchanged(e)||this.lastPersisted&&!Tp(e,this.lastPersisted.owner))&&Wp(e,k(e,e.sessionKey)),this.retireDurableScope(t,this.latestDraftRevision));return}this.durableRetiredScopeKey=``;let n=this.resolveDurableScope(e);if(!n)return;let r=this.durableOwner;if(this.durableOwner={client:e.client,gatewayOwner:n.gatewayOwner,recoveryScope:n.recoveryScope},r&&(r.gatewayOwner!==n.gatewayOwner||r.recoveryScope!==n.recoveryScope)){un(e.chatAttachments),e.chatMessage=``,e.chatMentions=[],e.chatGoalDraftMode=null,e.chatReplyTarget=null,e.chatAttachments=[],this.pending=null;let{revisions:t}=Wp(e,k(e,e.sessionKey));this.committedDraftRevision=t.committed,this.latestDraftRevision=t.latestAttempt,rm(e),this.committedDraftRevision=t.committed,this.lastPersisted=null,this.lastPersisted=this.snapshot(e,this.latestDraftRevision,this.latestDraftRevision),this.durableRestoreProtected=!1,this.forceDurableOwnerRestore=!0,this.durablePersistence.resetRestoreScope()}if(this.durableRestoreProtected){this.durableRestoreProtected=!1;let t=this.snapshot(e,Ea(this.latestDraftRevision));this.latestDraftRevision=t.draftRevision,this.persistSnapshot(e,t);return}this.durablePersistence.restore(n,()=>{let t=this.snapshot(e);return{latestRevision:this.forceDurableOwnerRestore?0:this.latestDraftRevision,signature:this.currentContentSignature(e),onCurrentWins:n=>{this.forceDurableOwnerRestore=!1,t.durable&&(e.chatMessage||e.chatGoalDraftMode||e.chatReplyTarget||(e.chatAttachments?.length??0)>0)&&this.durablePersistence.persist({...t.durable,expectedRevision:n})}}},()=>({scope:this.resolveDurableScope(e),signature:this.currentContentSignature(e),revision:this.forceDurableOwnerRestore?0:this.latestDraftRevision}),t=>{let n=this.forceDurableOwnerRestore;this.forceDurableOwnerRestore=!1;let r=e.chatAttachments??[];e.chatMessage=Sp(t.text),e.chatMentions=t.mentions,e.chatGoalDraftMode=t.goalMode??null,e.chatReplyTarget=t.replyTarget??null,e.chatAttachments=t.attachments,un(r);let i=n?Ea(Math.max(this.latestDraftRevision,t.revision)):t.revision;this.committedDraftRevision=i,this.latestDraftRevision=i,this.lastPersisted=this.snapshot(e,i,i),Xp(e,e.sessionKey,{agentId:k(e,e.sessionKey).agentId,draft:e.chatMessage,mentions:e.chatMentions,goalMode:e.chatGoalDraftMode,replyTarget:e.chatReplyTarget,draftRevision:i}),n&&this.lastPersisted.durable&&this.durablePersistence.persist({...this.lastPersisted.durable,expectedRevision:t.revision}),e.requestUpdate?.()})}}})))()}function cm(e){return I(`chat.sendErrors.outboxPayload${e===`capacity`?`Capacity`:e===`missing`?`Missing`:`Unavailable`}`)}function lm(e,t){let n=(e.sendAttempts??0)>0||e.sendRequestStartedAtMs!==void 0||e.sendState===`unconfirmed`;return{...e,attachmentStorageError:t,sendState:e.sendState===`held`?`held`:n?`unconfirmed`:`failed`,sendError:cm(t)}}function um(e,t){return k(e,t?.sessionKey??e.sessionKey??``,t?.agentId)}function dm(e,t=um(e)){let n=e.client,r=e.settings?.gatewayUrl,i=Or(e),a=Ep(e,t);return()=>e.client===n&&e.settings?.gatewayUrl===r&&Or(e)===i&&Ep(e,t)===a}async function fm(e,t,n){if(!t.attachments?.length&&!t.attachmentPayload&&!t.attachmentStorageError)return{status:`ready`,update:{}};let r=um(e,t);if(Ep(e,r))return t.attachmentPayload?{status:`failed`,reason:`unavailable`}:{status:`ready`,update:{}};let i=Or(e);if(!i)return{status:`failed`,reason:`unavailable`};let a=dm(e,r),o;try{o=await Zo()}catch{return{status:`failed`,reason:`unavailable`}}if(!a())return{status:`failed`,reason:`unavailable`};let s={tabId:o,gatewayOwner:ms(e.settings?.gatewayUrl).gatewayOwner,recoveryScope:i,queueId:t.id};if(t.attachmentPayload){let e=await Qc(s,t.attachmentPayload);if(e.status===`failed`)return e;let r=t.attachments??[];if(e.value.length!==r.length||e.value.some((e,t)=>{let n=r[t];return e.mimeType!==n.mimeType||e.fileName!==n.fileName||e.origin!==n.origin||e.sizeBytes!==n.sizeBytes}))return{status:`failed`,reason:`missing`};if(!a())return{status:`failed`,reason:`unavailable`};try{let i=await Promise.all(e.value.map(async(e,t)=>({...r[t],...e.selectionAnnotation?{selectionAnnotation:e.selectionAnnotation}:{},dataUrl:await el(e.blob)})));if(!a())return{status:`failed`,reason:`unavailable`};let c={attachments:i,attachmentPayload:t.attachmentPayload,attachmentStorageError:void 0};if(n===`send`&&t.attachmentPayload.tabId!==o){let n=await qc(s,e.value);return n.status===`failed`?n:a()?{status:`ready`,update:{...c,attachmentPayload:n.value,sendState:t.sendState===`held`?`held`:`unconfirmed`,sendError:I(`chat.sendErrors.outboxPayloadCopied`)}}:(await is([n.value]),{status:`failed`,reason:`unavailable`})}return{status:`ready`,update:c}}catch{return{status:`failed`,reason:`missing`}}}if(n===`handoff`||t.attachmentStorageError===`missing`)return{status:`failed`,reason:`missing`};let c=Lp(t.attachments??[]);if(!c)return{status:`failed`,reason:`missing`};let l=await qc(s,c);return l.status===`failed`?l:a()?{status:`ready`,update:{attachmentPayload:l.value,attachmentStorageError:void 0}}:(await is([l.value]),{status:`failed`,reason:`unavailable`})}async function pm(e,t,n=`send`){let r=t.attachmentPayload,i=um(e,t);if(!r||Ep(e,i)||!Or(e))return fm(e,t,n);let a=JSON.stringify([t.id,r.key,r.tabId,r.recoveryScope,i,e.settings?.gatewayUrl,Or(e),n,t.attachments?.map(({mimeType:e,fileName:t,sizeBytes:n,origin:r})=>[e,t,n,r])]),o=dm(e,i),s=hm.get(a);s||(s=fm(e,t,n).finally(()=>hm.delete(a)),hm.set(a,s));let c=await s;return o()?c:{status:`failed`,reason:`unavailable`}}function mm(e){e.attachmentPayload&&is([e.attachmentPayload])}var hm;function gm(){return(gm=e((()=>{Nr(),O(),ec(),Rs(),M(),Op(),Up(),hm=new Map})))()}var _m=t({chatOutboxOwner:()=>X,listChatOutboxAttention:()=>vm});function X(e){let t=Da(e),n=xm.get(t)??new bm(t);return xm.set(t,n),Gc.set(t,n),n.adoptSubscriptions(e),n}function vm(e){if(!Or(e))return[];let t=xm.get(Da(e));return yp(Yc(e),t)}var ym,bm,xm,Sm,Cm;function wm(){return(wm=e((()=>{Nr(),Eo(),ec(),oo(),as(),Rs(),M(),Y(),gp(),xp(),sm(),gm(),ym=[`sendRunId`,`sendAttempts`,`sendState`,`sendError`],bm=class{constructor(e){this.ownerGatewayKey=e,this.attentionRevision=0,this.hosts=new Map,this.panes=new Set,this.live=new Map,this.hydrating=new Set,this.history=new hp,this.unsubscribe=null}publishAttention(){this.attentionRevision+=1,Aa(this.ownerGatewayKey)}state(e){let t=Sm.get(e);t&&t!==this&&t.retireHost(e),Sm.set(e,this);let n=this.hosts.get(e);if(n)return n;e.chatQueue=e.chatQueue.filter(t=>ks(e,t));let r=k(e,e.sessionKey),i=new Set(Sa(e,r)?.queue.map(e=>e.id)),a={byScope:new Map,durableSeen:i,retryable:new Set};return e.chatQueue.length&&a.byScope.set(N(r),{scope:r,queue:e.chatQueue.filter(t=>ks(e,t))}),this.hosts.set(e,a),a}retireHost(e){this.history.forget(e);let t=this.hosts.get(e);if(t){let n=new Set;for(let[e,r]of t.byScope)r.queue=r.queue.filter(e=>t.retryable.has(e.id)&&!t.durableSeen.has(e.id)&&!e.pendingRunId&&!e.localCommandName).map(e=>(n.add(e.id),e.sendState===`failed`||e.sendState===`unconfirmed`?e:Object.assign({},e,{sendState:`held`}))),r.queue.length||t.byScope.delete(e);t.retryable=n,t.byScope.size||this.hosts.delete(e)}for(let[t,n]of this.live){for(let[t,r]of n)r.owner===e&&n.delete(t);this.pruneLiveScope(t,n)}this.prune(e),this.publishAttention()}durable(e,t){return Yc(e).find(({queue:e})=>e.some(e=>e.id===t))}locate(e,t){let n=this.durable(e,t),r=n??this.local(this.state(e),t)?.scope;if(!r)return;let{sessionKey:i,agentId:a}=r,o={sessionKey:i,agentId:a},s=this.snapshot(e,o,n?.queue??[]).find(e=>e.id===t);return s?{item:s,scope:o,durable:n?.queue.find(e=>e.id===t)}:void 0}readLive(e,t,n){let r=this.live.get(e);if(!r)return;let i=r.get(t);if(i?.expectedDurableVersion&&(!n||!Va(i.expectedDurableVersion,n))||i?.submissionIsCurrent&&!i.submissionIsCurrent()){r.delete(t),this.pruneLiveScope(e,r);return}return i}pruneLiveScope(e,t){t.size||this.live.delete(e)}observeDurable(e){for(let[t,n]of this.hosts)if(n.retryable.delete(e)){n.durableSeen.add(e);let r=this.local(n,e);r?.queue.splice(r.index,1),Sm.get(t)!==this&&this.prune(t)}}snapshot(e,t,n=Sa(e,t)?.queue??[]){let r=N(t),i=this.state(e),a=i.byScope.get(r)?.queue??[],o=n.map(e=>{i.durableSeen.add(e.id),this.observeDurable(e.id);let t=a.find(t=>t.id===e.id),n=this.readLive(r,e.id,e)?.item;return t?.pendingRunId||t?.sendState===`waiting-model`?t:n&&n.sendRunId===e.sendRunId?n:t&&t.sendRunId===e.sendRunId?vp(e,t):e}),s=new Set(n.map(e=>e.id));return o.push(...a.filter(e=>!s.has(e.id)&&bp(i,e))),this.prune(e),o.filter(t=>ks(e,t)).toSorted(io)}syncHost(e,t={}){if(this.ownerGatewayKey!==Da(e)){X(e).syncHost(e,t);return}Or(e);let n=this.snapshot(e,k(e,e.sessionKey));(n.length||e.chatQueue.length)&&(e.chatQueue=n);for(let t of e.chatQueue){let n=t.attachmentPayload?.key;if(!n||t.attachmentStorageError||this.hydrating.has(n)||t.attachments?.every(e=>np(e)))continue;this.hydrating.add(n);let r=dm(e);pm(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.update.attachmentPayload?.key!==n){let n=t.sendState===`waiting-reconnect`&&o.sendState===`unconfirmed`&&Va(o,{...da(t,a),sendState:`unconfirmed`});if(!tm(e,a.sessionKey,[{expected:n?o:t,next:{...o,...i.update}}],a.agentId))return}this.keep(e,a,{...o,attachments:i.update.attachments,...i.update.attachmentPayload?.key===n?{}:{attachmentPayload:i.update.attachmentPayload,sendState:i.update.sendState,sendError:i.update.sendError}})}else tm(e,a.sessionKey,[{expected:o,next:lm(o,i.reason)}],a.agentId);this.publish(e)}}).finally(()=>this.hydrating.delete(n))}t.requestUpdate!==!1&&e.requestUpdate?.(),this.publishAttention()}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=Cm.get(e)?.owner;if(!t||t===this)return;let n=!1;for(let e of t.panes)Da(e)===this.ownerGatewayKey&&(Cm.get(e).owner=this,t.retireHost(e),Sm.delete(e),e.chatQueue=[],t.detach(e),this.attach(e),n=!0);n&&this.publish()}attach(e){this.panes.add(e),this.unsubscribe??=Cs(()=>this.publish(void 0,!0))}detach(e){this.history.forget(e),this.panes.delete(e),this.panes.size||(this.unsubscribe?.(),this.unsubscribe=null),this.prune(e)}subscribe(e,t){let n={owner:this,onDiscard:t};return Cm.set(e,n),this.attach(e),this.reconcile(e,this.state(e)),this.syncHost(e,{requestUpdate:!1}),()=>{Cm.get(e)===n&&(Cm.delete(e),n.owner.detach(e))}}reconcile(e,t){let n=Yc(e),r=new Set(n.flatMap(e=>e.queue.map(e=>e.id)));this.history.reconcile(e,n),_p(t,r,e=>this.observeDurable(e))}retirePendingRun(e,t){let n=e.chatQueue.filter(e=>e.pendingRunId===t),r=k(e,e.sessionKey),i=this.state(e),a=i.byScope.get(N(r));a&&(a.queue=a.queue.filter(e=>e.pendingRunId!==t));for(let e of n)i.retryable.delete(e.id);return this.syncHost(e),n}keep(e,{sessionKey:t,agentId:n},r,i=!1){let a={sessionKey:t,agentId:n},o=this.state(e),s=N(a),c=[...Sa(e,a)?.queue??[],...[...this.hosts.values()].flatMap(e=>e.byScope.get(s)?.queue.filter(t=>bp(e,t))??[])],l=c.find(e=>e.id===r.id),u=Math.max(...c.map(Ws)),d=l?l.orderKey:r.orderKey??(r.createdAt<=u?u+1:void 0),f=da({...r,storageScope:r.storageScope??Vc(e)},a);if(!ks(e,f))return f;d===void 0?delete f.orderKey:f.orderKey=d;let p=[...o.byScope.get(s)?.queue??[]],m=p.findIndex(e=>e.id===r.id);return m<0?p.push(f):p[m]=f,p.sort(io),o.byScope.set(s,{scope:a,queue:p}),i&&o.retryable.add(r.id),this.syncHost(e),f}local(e,t){for(let{scope:n,queue:r}of e.byScope.values()){let e=r.findIndex(e=>e.id===t);if(e>=0)return{scope: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]=vp(s,o)):a.queue.splice(a.index,1),this.syncHost(e),o}update(e,t){let n=[];for(let{id:r,update:i}of t){let t=this.locate(e,r);if(!t)return null;n.push({...t,next:i(t.item)})}let r=n.filter(e=>e.durable),i=r[0]?.scope,a=!i||tm(e,i.sessionKey,r.map(({item:e,next:t})=>({expected:e,next:t})),i.agentId);for(let{item:t,scope:n,next:i}of r){let r=i.sendState===`sending`||i.sendState===`executing-command`;a?(i.sendState===`waiting-model`?this.keep(e,n,i):this.change(e,t.id),this.projectLive(e,n,t.id,r?i:void 0)):r?this.syncHost(e):this.projectLive(e,n,t.id)}return a?n.map(({item:t,durable:n,next:r})=>n?r:this.change(e,t.id,()=>r)):null}admit(e,t,n,r){if(Vc(e)!==JSON.stringify([t.gatewayOwner,t.owner]))return`storage-failed`;let i=em(e,t,this.keep(e,t.scope,n),r);return i===`admitted`&&(this.observeDurable(n.id),n.sendState!==`waiting-model`&&this.change(e,n.id)),i}remove(e,t,n){let r=this.locate(e,t),i=r?.durable,a=e.chatQueue.find(e=>e.id===t),o=r&&this.readLive(N(r.scope),t,i);if(o&&o.owner!==e&&!(a&&i&&ym.every(e=>a[e]===i[e]))||r?.durable&&!nm(e,r.scope.sessionKey,t,r.item,r.scope.agentId))return this.syncHost(e),null;if(r&&(this.projectLive(e,r.scope,t),this.change(e,t)),this.publish(void 0,!0),r&&n?.discard)for(let e of this.panes)Cm.get(e)?.onDiscard?.(r.item);return r?.item??null}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}hasPendingSubmission(e,t){return!!this.readLive(N(e),t.id,t)?.submissionIsCurrent}needsReview(e,t){let n=N(e);if(this.readLive(n,t.id,t))return!1;for(let e of this.hosts.values())if(e.byScope.get(n)?.queue.some(e=>e.id===t.id&&e.sendState===`waiting-model`))return!1;return uo(t)}beginSubmission(e,t,n){let r=this.locate(e,t);if(!r?.durable||r.item.sendState!==`waiting-idle`||r.durable.sendState!==`waiting-idle`||!r.item.sendRunId||(r.item.sendAttempts??0)!==0||r.item.sendRequestStartedAtMs!==void 0)return;let i=N(r.scope),a=this.live.get(i)??new Map,o={item:n.inline?{...r.item,sendState:`submitting`}:r.item,owner:e,expectedDurableVersion:r.durable,submissionIsCurrent:n.isCurrent};return a.set(t,o),this.live.set(i,a),this.publish(e),{release:()=>{this.live.get(i)?.get(t)===o&&this.projectLive(e,r.scope,t)}}}projectLive(e,t,n,r){let i=N(t),a=this.live.get(i)??new Map;r?(a.set(n,{item:r,owner:e}),this.live.set(i,a)):(a.delete(n),this.pruneLiveScope(i,a)),this.publish(e),this.prune(e)}allItems(e){let t=Yc(e).flatMap(t=>this.snapshot(e,t,t.queue)),n=[...this.state(e).byScope.values()].flatMap(({queue:e})=>e),r=new Map([...n,...t].map(e=>[e.id,e]));return this.prune(e),[...r.values()].filter(t=>ks(e,t))}prune(e){let t=this.hosts.get(e);t&&!this.panes.has(e)&&![...t.byScope.values()].some(({queue:e})=>e.some(e=>bp(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&&xm.get(this.ownerGatewayKey)===this&&(xm.delete(this.ownerGatewayKey),Gc.delete(this.ownerGatewayKey))})}},xm=new Map,Sm=new WeakMap,Cm=new WeakMap})))()}function Tm(e){return mo(e)&&(e.sendState===void 0||e.sendState===`waiting-idle`)&&!e.localCommandName}function Em(e){return e.toSorted(io).find(Tm)}function Dm(e,t){return t(e)||X(e).anyPane(e=>t(e))}function Om(e,t,n,r,i={}){let a=k(e,t,r??n.agentId);return X(e).keep(e,a,n,i.retryable)}function km(e,t,n,r,i){let a=t.trim();if(!a)return null;let o={id:Jl(),text:a,createdAt:Date.now(),refreshSessions:n,localCommandArgs:r?.args,localCommandName:r?.name,sessionKey:e.sessionKey,agentId:S(e,e.sessionKey),...i?{sender:i}:{}};return Om(e,e.sessionKey,o,o.agentId)}function Am(e,t,n){let r=k(e,t,n);return X(e).snapshot(e,r)}function Z(e,t){return X(e).locate(e,t)?.item??null}function jm(e,t,n){return X(e).update(e,[{id:t,update:n}])?.[0]??null}function Mm(e,t,n){if(!n||t.sessionId&&t.sessionId!==n)return!1;let r=Z(e,t.id);return!r||r.sessionId&&r.sessionId!==n||!Va(r,t)?!1:r.sessionId&&r.sendState!==`unconfirmed`?!0:jm(e,t.id,e=>({...e,sessionId:n,...e.sendState===`unconfirmed`?{sendState:`waiting-idle`,sendError:void 0}:{}}))!==null}function Nm(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 Pm(e,t,n){let r=Z(e,t),i=r?X(e).remove(e,t,n):null;return i&&un(Nm(e,i.attachments)),i?`removed`:r?`rejected`:`absent`}function Fm(e,t,n){let r=Im(e,t,n);if(!r)return null;let i=X(e).remove(e,r.id);return i?(un(Nm(e,i.attachments)),i):null}function Im(e,t,n){if(!t)return null;let r=N(n);return Yc(e).find(e=>N(e)===r)?.queue.find(e=>e.sendRunId===t)??null}function Lm(e,t){if(!t)return;let n=X(e).retirePendingRun(e,t);for(let t of n)un(Nm(e,t.attachments))}function Rm(){return(Rm=e((()=>{oo(),dt(),M(),fl(),Y(),wm(),sm()})))()}function zm(e,t){return JSON.stringify([e,t])}function Bm(e){let t=J(e),n=J(t?.__openclaw);return typeof n?.id==`string`?n.id:typeof t?.messageId==`string`?t.messageId:void 0}function Vm(e,t){let n=J(e),r=J(n?.__openclaw),i=Bm(e);return(va(t)===`assistant`||i?.startsWith(`pending:`))&&!n?.openclawMessageToolMirror&&r?.truncated===!0?i:void 0}function Hm(){return(Hm=e((()=>{Bi(),eo()})))()}function Um(e){if(!J(e))return null;try{return nl(e)}catch{return null}}function Wm(e){let t=J(J(e)?.provenance);if(t?.kind!==`internal_system`||t.sourceTool!==`cron`)return;let{jobId:n,runId:r,sourceSessionKey:i}=t;return typeof n==`string`&&n&&typeof r==`string`&&r&&typeof i==`string`&&i?{jobId:n,runId:r,sourceSessionKey:i}:void 0}function Gm(e){let t=J(J(e)?.provenance);return t?.kind===`inter_session`&&t.sourceTool===`sessions_send`||!!Wm(e)}function Km(e){return e.messages.some(({message:e})=>Gm(e))}function qm(e){return J(J(e)?.provenance)?.kind===`inter_session`}function Jm(e){return e.role===`assistant`&&!e.isStreaming&&e.messages.length>0&&e.messages.every(({message:e})=>qm(e)||Wm(e))}function Ym(e){return!!e.senderSession||Km(e)}function Xm(e){return J(J(e)?.__openclaw)?.turnBoundary===!0}function Zm(e){if(e.kind===`notice`)return e.startsTurn===!0;if(e.kind===`message`){let t=va(ko(e.message));return e.startsTurn===!0||t===`user`||Xm(e.message)||t===`assistant`&&Gm(e.message)}if(e.kind!==`group`)return!1;let t=e.role.toLowerCase();return t===`user`||Xm(e.messages[0]?.message)||t===`assistant`&&Km(e)}function Qm(e){if(Zm(e))return!0;if(e.kind===`group`)return va(e.role)===`assistant`&&Ym(e);let t=e.kind===`message`?Um(e.message):null;return!!(t&&va(t.role)===`assistant`&&t.senderSession)}function $m(){return($m=e((()=>{eo()})))()}function eh(e,t,n,r){let i=r?.trim(),a=i?th({...t,runId:i},`available`):null;return a&&i?{kind:`initial`,sessionKey:e,owner:n,pendingRunId:i,message:a}:null}function th(e,t){let{text:n,attachments:r}=e,i=[],a=n.trim();a&&i.push({type:`text`,text:a});for(let e of r??[]){let n=t?np(e):void 0;if(t===`complete`&&!n)return null;let r=n||op(e);if(!r)continue;if(e.mimeType.startsWith(`image/`)){i.push({type:`image`,url:r,...e.fileName?{fileName:e.fileName}:{},source:{type:`url`,url:r}});continue}let a=e.mimeType.trim().toLowerCase(),o=a.startsWith(`video/`)||(a===``||a===`application/octet-stream`)&&Hf(e.fileName??``);i.push({type:`attachment`,attachment:{url:r,kind:e.mimeType.startsWith(`audio/`)?`audio`:o?`video`:`document`,label:e.fileName?.trim()||`Attached file`,mimeType:e.mimeType,...e.origin?{origin:e.origin}:{}}})}if(!i.length)return null;let{mentions:o}=hc(e.text,e.mentions);return{role:`user`,content:i,timestamp:e.createdAt,__openclaw:{...e.workContext?{workContext:{snapshot:e.workContext,text:e.text}}:{},...e.runId?{idempotencyKey:`${e.runId}:user`}:{},...e.steerTargetRunId?{steerTargetRunId:e.steerTargetRunId}:{},...e.pending?{kind:`pending-send`,id:e.pending.id,...e.pending.state?{state:e.pending.state}:{},...e.pending.error?{error:e.pending.error}:{}}:{},...e.replyToId?{replyToId:e.replyToId}:{},...o?{humanMentions:o}:{},...e.sender?.id?{senderId:e.sender.id}:{},...e.sender?.identity?{senderIdentity:e.sender.identity}:{},...e.sender?.name?{senderName:e.sender.name}:{},...e.sender?.username?{senderUsername:e.sender.username}:{},...e.sender?.profileAvatarUrl?{senderProfileAvatarUrl:e.sender.profileAvatarUrl}:{}}}}function nh(){return(nh=e((()=>{ps(),$f(),Y()})))()}function rh(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=>{let n=Mo(e);return n&&Ha(n,t)})?e:{...r,content:[...i,{type:`canvas`,preview:t,...n?{rawText:n}:{}}]}}function ih(e,t,n){let r=ql(t);if(!r)return!0;let i=n&&Bm(e),a=n&&i?n.messages.get(zm(n.agentId,i)):void 0;if(a?.status===`loaded`){let t=va(nl(e).role);if(Vm(e,t))return ql(t===`assistant`?qd(a.markdown):a.markdown).includes(r)}return ql(Wo(e)).includes(r)}function ah(e){let t=J(e);if(!t)return null;let n=Ah.get(t);if(n!==void 0)return n;let r=oh(t);return Ah.set(t,r),r}function oh(e){if(!Um(e))return null;let t=ua(e);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=Wo(e)??void 0,r=bs(n);return r?.kind===`canvas`?{preview:r,text:n??null,timestamp:Th(e)}:null}function sh(e,t){let n=fh(J(e)??{}),r=t.preview.viewId?`viewId:${t.preview.viewId}`:t.preview.url?`url:${t.preview.url}`:null;return n&&r?JSON.stringify([n,r]):null}function ch(e,t){return rh({role:`assistant`,content:[],...t==null?{}:{timestamp:t}},e.preview,e.text)}function lh(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 uh(e,t,n,r){let i=n,a=r;for(let o=n;o<r;o+=1){let n=e[o];if(!n||!Zm(n))continue;let r=n.kind===`notice`?n.timestamp:n.kind===`message`?Um(n.message)?.timestamp??null:null;if(t!=null&&r!=null&&r>t){a=o;break}i=o+1}let o=null,s=null;for(let n=i;n<a;n++){let r=e[n];if(r?.kind!==`message`)continue;let i=J(r.message);if(typeof i?.role!=`string`||i.role.toLowerCase()!==`assistant`)continue;o={index:n,item:r};let a=Um(r.message)?.timestamp;if(t!=null&&a!=null){if(a<=t){s={anchor:o,timestamp:a};continue}return s&&t-s.timestamp<=a-t?s.anchor:o}}return s?.anchor??o}function dh(e,t,n,r){if(t==null)return r;for(let i=n;i<r;i+=1){let n=e[i];if(n?.kind!==`message`)continue;let r=Um(n.message);if(r&&va(r.role).toLowerCase()===`user`&&r.timestamp!=null&&r.timestamp>t)return i}return r}function fh(e){return Mn({...e,id:void 0})}function ph(e,t){return Mn(e)??fh(t)}function mh(e){return J(J(e)?.__openclaw)?.kind===`pending-send`}function hh(e){let t=J(J(e)?.__openclaw),n=t?.state,r=t?.id;return t?.kind!==`pending-send`||n!==`failed`&&n!==`unconfirmed`&&n!==`held`&&n!==`waiting-reconnect`||typeof r!=`string`?null:{id:r,state:n,...typeof t.error==`string`?{error:t.error}:{}}}function gh(e){let t=J(e),n=typeof t?.messageId==`string`&&t.messageId.trim()?t.messageId:t?.id;return Ui(e,{messageId:n})}function _h(e){let t=gh(e);return t?.role===`user`?t.runId:null}function vh(e){let t=gh(e)?.id;return mh(e)||t?.startsWith(`pending:`)?null:t??null}function yh(e){let t=gh(e);return t?.sendId?`send:${t.sendId}`:t?.isImported?t.externalSource?`import:${t.externalSource}`:t.sequence===null?null:`import-seq:${t.sequence}`:t?.id?`id:${t.id}`:t?.sequence==null?null:`seq:${t.sequence}`}function bh(e){if(e&&typeof e==`object`){let t=jh.get(e);if(t)return t}let t=J(e),n=[typeof t?.role==`string`?t.role:``,typeof t?.toolCallId==`string`?t.toolCallId:``,t?Wo(e):``].join(`\0`),r=`p${Me(n).toString(36)}${n.length.toString(36)}`;return e&&typeof e==`object`&&jh.set(e,r),r}function xh(e,t=yh){let n=e.map(t),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,t)=>{let a=n[t],o=a==null||(r.get(a)??0)>1?`${a??`legacy`}:projection:${bh(e)}`:a??`legacy`,s=i.get(o)??0;i.set(o,s+1);let c=J(e),l=typeof c?.toolCallId==`string`?c.toolCallId:``,u=typeof c?.role==`string`?c.role:`unknown`,d=`${o}:${s}`;return{kind:`message`,key:l?`tool:${u}:${l}:${d}`:`msg:${d}`,message:e}})}function Sh(e,t=Um(e)){if(!t)return!1;let n=va(t.role),r=n===`assistant`&&t.senderLabel?.trim();return!!(n===`tool`||t.content.length||t.replyTarget||r||n===`user`&&vo(e).length)}function Ch(e){let t=zi(e);return t.trim().length>0?t:``}function wh(e){return th({text:e.text,workContext:e.workContext,mentions:e.mentions,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 eu(J(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){let n=new Map,r=new Map;for(let{item:e,bounds:i,predecessorKey:a}of t){let t=Eh(e);t!=null&&n.set(e.key,t);let o=r.get(e.key)??{};i&&(o.bounds=i),a&&(o.predecessorKey=a),r.set(e.key,o)}let i=t.map(({item:e},t)=>{let i=Eh(e),a=r.get(e.key)?.predecessorKey,o=a?n.get(a):null;return{item:e,index:t,predecessorKey:a,effectiveTimestamp:i!=null&&o!=null?Math.max(i,o):i}}).toSorted((e,t)=>e.effectiveTimestamp==null?t.effectiveTimestamp==null?e.index-t.index: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:n}of i){let{minimum:i,maximum:a}=Oh(e,r.get(t.key)?.bounds);if(n==null){e.splice(a,0,t);continue}let o=e.findIndex((e,t)=>{if(t<i||t>=a)return!1;let r=Eh(e);return r==null||r>n});e.splice(o===-1?a:o,0,t)}}var Ah,jh;function Mh(){return(Mh=e((()=>{Ji(),uu(),Bi(),na(),jn(),Yo(),eo(),Bs(),Rf(),Hm(),$m(),nh(),Ah=new WeakMap,jh=new WeakMap})))()}function Nh(e,t){e.chatStreamSegments=e.chatStreamSegments?.filter(t=>!e.chatRunId||t.runId!==e.chatRunId||Uo(t)),e.chatStream=t}function Ph(e,t=e.length){for(let n=t-1;n>=0;--n)if(ql(J(e[n])?.role)===`user`)return n;return-1}function Fh(e){let t=J(J(e)?.__openclaw);return K(t?.steerTargetRunId)??null}function Ih(e,t){let n=e?.findLast(e=>Ui(e)?.role===`user`&&(_h(e)===t||Fh(e)===t));return Ui(n)?.sendId??void 0}function Lh(e,t,n){let r=n?e.findIndex(e=>Ui(e)?.sendId===n):-1,i=r>=0?r:t.runId?e.findIndex(e=>_h(e)===t.runId||Ui(e)?.role===`user`&&Fh(e)===t.runId):-1;if(n&&r<0&&i>=0&&Fh(e[i])===t.runId)return{start:0,end:i};if(i>=0){let n=e.findIndex((e,n)=>n>i&&Ui(e)?.role===`user`&&(r>=0||Fh(e)!==t.runId));return{start:i+1,end:n>=0?n:e.length}}let a=e.length;return{start:Ph(e,a)+1,end:a}}function Rh(e,t,n,r,i){for(let a=n;a<r;a++){let n=i(e[a]);if(n!=null&&n>t)return a}return r}function zh(e,t){let n=0;for(let r of e){if(!r)continue;let e=t.slice(n);if(e.startsWith(r)){n+=r.length;continue}if(r.startsWith(e))return null;let i=n>0?/^\s+/u.exec(e)?.[0]:void 0;if(i&&e.slice(i.length).startsWith(r)){n+=i.length+r.length;continue}if(i&&r.startsWith(e.slice(i.length)))return null;if(n>0)break}return t.slice(n)}function Bh(e){e.chatStream?.trim()&&e.chatRunId&&(e.chatStreamSegments=[...e.chatStreamSegments??[],{text:e.chatStream,ts:e.chatStreamStartedAt??Date.now(),runId:e.chatRunId,persisted:!0}]),e.chatStream=null,e.chatStreamStartedAt=null}function Vh(){return(Vh=e((()=>{Ji(),Mh()})))()}function Hh(e,t,n){return t&&e&&typeof e==`object`&&(Qh.set(e,{runId:t,...n?{disposition:n}:{}}),$h+=1),e}function Uh(){return $h}function Wh(e,t){return Kh(e)===t}function Gh(e){return e&&typeof e==`object`?Qh.get(e):void 0}function Kh(e){return Gh(e)?.runId??null}function qh(e){return Gh(e)?.disposition??null}function Jh(e){let t=J(e.payload),n=Ui(t?.message,{messageId:t?.messageId}),r=n?.role===`assistant`&&!n.isImported?n.id:null;e.runIdBeforeApply&&e.matchesChat&&e.event.hasActiveRun!==!0&&r&&eg.set(e.host,{historyApplied:!1,messageId:r,runId:e.event.clientRunId??e.event.runId??e.runIdBeforeApply,sessionKey:e.event.key})}function Yh(e){let t=eg.get(e.host);return!t||!xn(t.sessionKey,e.sessionKey)||!e.visibleMessages.some(e=>{let n=Ui(e);return n?.role===`assistant`&&!n.isImported&&n.id===t.messageId})?e.previousMessages:(eg.set(e.host,{...t,historyApplied:!0}),e.previousMessages.filter(e=>!Wh(e,t.runId)))}function Xh(e,t){let n=eg.get(e);return n?.runId===t&&n.historyApplied}function Zh(e){let t=J(e);if(!t||typeof t.role==`string`&&ql(t.role)!==`assistant`||!(`content`in t)&&typeof t.text!=`string`)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}var Qh,$h,eg;function tg(){return(tg=e((()=>{Ji(),M(),Qh=new WeakMap,$h=0,eg=new WeakMap})))()}function ng(e,t){return JSON.stringify([e,t])}function rg(e,t,n,r){if(!n)return;let i=r?ng(r,n):n;t.has(i)||(t.add(i),e.push({id:n,...r?{runId:r}:{}}))}function ig(e){return Rn(e.type)||Nn(e.type)}function ag(e){let t=J(e);if(!t)return[];let n=[],r=new Set,i=Array.isArray(t.content)?t.content.filter(e=>!!e&&typeof e==`object`):[],a=Mn({...t,id:void 0}),o=Ui(t)?.runId??K(t.runId),s=t.role;(typeof s==`string`&&va(s).toLowerCase()===`tool`||lg.some(e=>!!K(t[e]))||i.some(ig))&&rg(n,r,a,o);for(let e of i)ig(e)&&rg(n,r,Mn(e)??a,K(e.runId)??o);return n}function og(e){return(e.toolStreamOrder??[]).map(t=>{let n=e.toolStreamById?.get(t),r=K(n?.toolCallId)??t,i=K(n?.runId);return i?{identity:t,id:r,runId:i}:{identity:t,id:r}})}function sg(e,t){let n=t.filter(t=>t.id===e.id&&(!e.runId||!t.runId||t.runId===e.runId));return n.length===1?n[0]?.identity:void 0}function cg(e,t){let n=og(t),r=new Set;if(n.length===0)return r;let i=e.findLastIndex(e=>{let t=J(e)?.role;return typeof t==`string`&&va(t).toLowerCase()===`user`});for(let t of e.slice(i+1))for(let e of ag(t)){let t=sg(e,n);t&&r.add(t)}return r}var lg;function ug(){return(ug=e((()=>{Ji(),jn(),eo(),lg=[`toolName`,`tool_name`]})))()}function dg(e){let t=Ui(e);if(t?.runId)return t.runId;let n=J(e);return Kh(e)??K(n?.runId)??K(J(n?.openclawStreamFallback)?.runId)}function fg(e){return Wi(e)!==void 0}function pg(e){let t=K(e);return t?{runId:t}:void 0}function mg(e){let t=K(e);return t?{boundaryId:`send:${t}`}:void 0}function hg(){let e=new Map,t=new Map;return{add(n,r,i){r&&(n&&e.set(ng(n,r),i),t.set(r,t.has(r)?null:i))},get(n,r){return r?(n?e.get(ng(n,r)):void 0)??t.get(r)??void 0:void 0}}}function gg(e){let t=e.findLast(e=>e.kind===`message`&&Zm(e));return t?{afterKey:t.key}:null}function _g(e){let t,n=new Map,r=new Map;return(i,a)=>{if(!t){t=new Map;let i,a=new Map;for(let o of e){if(!Zm(o))continue;i&&(i.beforeKey=o.key),i={afterKey:o.key};let e=o.kind===`message`?Ui(o.message)?.sendId:null;e&&n.set(e,i);let s=o.kind===`message`?Fh(o.message):null;for(let[e,t]of a)e!==s&&(t.beforeKey=o.key,a.delete(e));let c=o.kind===`message`?_h(o.message):null;for(let e of[c,s])if(e&&!t.has(e)){let n={afterKey:o.key};t.set(e,n),a.set(e,n),e===s&&r.set(e,{beforeKey:o.key})}}}return(a?n.get(a)??r.get(i):void 0)??t.get(i)??null}}function vg(e,t,n,r){if(typeof t!=`string`||!t.trim())return n==null?null:r;let i=e(t);return t===n?i??r:i||n==null?i:r?.afterKey?{beforeKey:r.afterKey}:null}function yg(e,t){if(t.length===0)return;let n=new Map,r={};for(let t of e)if(t.kind===`divider`&&n.clear(),Zm(t)||t.kind===`divider`)r.beforeKey=t.key,r={afterKey:t.key};else if(t.kind===`message`)for(let e of ag(t.message)){if(!e.runId)continue;let t=ng(e.runId,e.id);n.set(t,n.has(t)&&n.get(t)!==r?null:r)}for(let e of t){let t=ag(e.item.message).map(e=>e.runId?n.get(ng(e.runId,e.id)):void 0),[r]=t;r&&t.every(e=>e===r)&&(e.bounds=r)}}function bg(){return(bg=e((()=>{Ji(),Mh(),$m(),Vh(),tg(),ug()})))()}function xg(e){return e===void 0?void 0:Sg[e]}var Sg;function Cg(){return(Cg=e((()=>{Sg={main_session_restart_recovery:{icon:`cpu`,labelKey:`chat.systemNotice.restartRecovery.label`,summaryKey:null,pendingSummaryKeys:{interrupted:`chat.systemNotice.restartRecovery.interrupted`,cancelled:`chat.systemNotice.restartRecovery.cancelled`}},"restart-sentinel":{icon:`cpu`,labelKey:`chat.systemNotice.gatewayRestarted.label`},cli_harness_context:{icon:`cpu`,labelKey:`chat.systemNotice.cliHarnessContext.label`,collapsedBody:!0,startsTurn:!1},claude_cli_task_notification:{icon:`cpu`,labelKey:`chat.systemNotice.claudeCliTaskNotification.label`,collapsedBody:!0,startsTurn:!1}}})))()}function wg(e,t,n){let r=n?[{kind:`notice`,key:n.key,timestamp:n.timestamp,text:I(`chat.pendingInputs.${n.status}`)}]:[],i=J(J(e.message)?.provenance);if(i?.kind!==`internal_system`)return[e,...r];let a=t??Um(e.message);if(!a||va(a.role)!==`user`)return[e,...r];let o=xg(typeof i.sourceTool==`string`?i.sourceTool:void 0),s=n&&o?.pendingSummaryKeys?.[n.status],c=s??o?.summaryKey,l=c===null?``:c?I(c):Wo(e.message)?.replace(/^\[System\] /u,``)??``;return!l.trim()&&c!==null?r:[{kind:`notice`,key:e.key,icon:o?.icon??`cpu`,label:I(o?o.labelKey:`common.system`),...o?.startsTurn===!1?{}:{startsTurn:!0},...o?.collapsedBody?{collapsedBody:!0}:{},text:l,timestamp:a.timestamp,...mg(_h(e.message))},...s?[]:r]}function Tg(){return(Tg=e((()=>{O(),Yo(),eo(),Mh(),bg(),$m(),Cg()})))()}function Eg(e){let t=J(e);return t?.role===`custom`&&t.customType===zg}function Dg(e,t){let n=J(e),r=J(n?.__openclaw);return!(r?.kind!==`compaction`&&!Eg(e)||!t.runId||r?.runId!==t.runId||t.itemId&&r.itemId!==t.itemId)}function Og(e){let t=e.command??I(`chat.systemNotice.guardian.requestedAction`),n={kind:`notice`,key:e.key,icon:`shieldCheck`,timestamp:e.timestamp};return e.source===`system`?{...n,icon:`cpu`,label:I(`common.system`),text:e.message??``}:e.kind===`approved`?{...n,label:I(`chat.systemNotice.guardian.approvedSummary`,{action:t}),text:``}:e.kind===`warning`?{...n,label:I(`chat.systemNotice.guardian.warningLabel`),text:e.message??I(`chat.systemNotice.guardian.warningFallback`),tone:`danger`}:e.kind===`reviewing`||e.kind===`strict-review-required`?{...n,label:I(`chat.systemNotice.guardian.strictReviewRequiredLabel`),text:I(`chat.systemNotice.guardian.strictReviewRequiredSummary`),tone:`danger`}:{...n,label:I(`chat.systemNotice.guardian.deniedLabel`),text:I(`chat.systemNotice.guardian.deniedSummary`,{action:t,risk:e.riskLevel??I(`chat.systemNotice.guardian.unknownRisk`),rationale:e.rationale??I(`chat.systemNotice.guardian.noRationale`)}),tone:`danger`}}function kg(e,t,n,r=`complete`){let i=e.tokensBefore,a=e.tokensAfter,o=typeof i==`number`&&Number.isFinite(i)&&typeof a==`number`&&Number.isFinite(a)&&i>a?Math.floor(i-a):null;return{kind:`divider`,key:typeof e.id==`string`?`divider:compaction:${e.id}`:`divider:compaction:${t}:${n}`,label:I(r===`active`?`chat.composer.compactingContext`:`chat.composer.contextCompacted`),compaction:r,...o===null?{}:{metric:I(`chat.compaction.savedTokens`,{count:jt(o)})},timestamp:t}}function Ag(e,t,n){return{kind:`divider`,key:typeof e.id==`string`?`divider:reset:${e.id}`:`divider:reset:${t}:${n}`,label:I(`chat.sessionReset.label`),icon:`rotateCcw`,description:I(`chat.sessionReset.description`),timestamp:t}}function jg(e){return(e.sendAttempts??0)>0||e.sendState!==`waiting-reconnect`&&typeof e.sendSubmittedAtMs==`number`}function Mg(e){return jg(e)&&!e.localCommandName&&(e.sendState===`failed`||e.sendState===`unconfirmed`||e.sendState===`held`||e.sendState===`waiting-reconnect`||e.sendState===`waiting-idle`&&!!e.sendError)}function Ng(e){return jg(e)&&(e.sendState===`waiting-model`||e.sendState===`submitting`||e.sendState===`sending`||Mg(e))}function Pg(e,t,n,r,i,a){let o=r.filter(Ng),s=o.filter(e=>!Mg(e)),c=s.find(e=>e.sendState===`submitting`||e.sendState===`sending`)??s[0],l=c?.sendRunId??c?.pendingRunId,u=i.map(e=>e.runId).findLast(e=>typeof e==`string`&&e.length>0),d=a.map(J),f=d.map(e=>e?.runId).findLast(e=>typeof e==`string`&&e.length>0),p=c?.sendState===`submitting`||c?.sendState===`sending`?l:void 0,m=t??p??u??f??l,h=Bg.get(e),g=h&&(!m||!h.runId||h.runId===m)?h:null,_=[g?.startedAt,n,...o.filter(e=>m?(e.sendRunId??e.pendingRunId)===m:e===c).map(e=>e.createdAt),...i.filter(e=>!m||e.runId===m).map(e=>e.ts),...d.filter(e=>!m||e?.runId===m).map(e=>e?.__openclawToolStreamReceivedAt)].filter(e=>typeof e==`number`&&Number.isFinite(e)),v=_.length>0?Math.min(..._):Date.now(),y=g?.key??`stream-working:${JSON.stringify([e,m??`anonymous-${++Vg}`])}`;return Bg.set(e,{key:y,runId:m??g?.runId??null,startedAt:v}),{key:y,runId:m??g?.runId??null,startedAt:v}}function Fg(e){Bg.delete(e)}function Ig(){Bg.clear(),Vg=0}function Lg(e,t){let n=0;for(let r of t){let t=e?.get(r);if(!t)return null;n+=t.outputTokens}return t.length>0?n:null}function Rg(e,t){let{sessionKey:n,agentId:r=null,gatewayClient:i=null,indicator:a,row:o,usageByRun:s}=t,c=e.turnRecapWatch;if((c?.sessionKey!==n||c.agentId!==r||c.gatewayClient!==i)&&(c=null),a){let t=a.runId;if(!t)return e.turnRecapWatch=null,null;c?.runId!==t&&(c={sessionKey:n,agentId:r,gatewayClient:i,runId:t,request:null,recap:null}),c.request=a.request??null}if(e.turnRecapWatch=c,!c)return null;let l=Lg(s,[...c.request?.runIds??[],c.runId])??c.recap?.outputTokens??null;if(o?.lastRunId===c.runId){let e=o.runtimeMs;if(o.status===`done`&&typeof e==`number`&&Number.isFinite(e)){let t=c.request&&typeof o.endedAt==`number`?o.endedAt-c.request.askedAt:0;c.recap={runtimeMs:Math.max(e,t),outputTokens:l}}else o.status&&o.status!==`done`&&(c.recap=null)}return c.recap&&c.recap.outputTokens!==l&&(c.recap={...c.recap,outputTokens:l}),a||!c.recap?null:{...c.recap,runId:c.runId}}var zg,Bg,Vg;function Hg(){return(Hg=e((()=>{O(),Je(),zg=`openclaw.context-compaction`,Bg=new Map,Vg=0})))()}function Ug(e){e.compactionClearTimer!=null&&(clearTimeout(e.compactionClearTimer),e.compactionClearTimer=null),e.compactionStatus=null}function Wg(e,t){return e?.kind===`initial`&&t?.role===`user`&&!t.isImported&&(e.consumedByEventId&&t.id===e.consumedByEventId||(t.id!==null||t.sequence!==null)&&(t.idempotencyKey===e.pendingRunId||t.idempotencyKey===`${e.pendingRunId}:user`))}function Gg(e,t){let n=e.chatSubmissions;if(!n)return;let r=t.sessionKey??e.sessionKey,i=e.client,a=n.readInitial(r,i??null,t.sessionId),o=Mc(e,{sessionKey:r,agentId:t.agentId??A(e)}),s=r=>{let a=n.readDelivered(o+r,i??e);return a?.kind===`delivered`&&(!a.sessionId||!t.sessionId||a.sessionId===t.sessionId)?a:void 0},c=(e,t=!1)=>{let n=s(e);n&&!(t&&Fh(n.message))&&(n.pending=!1)};return{initial:a,accept:(e,t=!1)=>{e.forEach(e=>c(e,t)),a&&e.has(a.pendingRunId)&&$n(a)},ownsPendingSteer:e=>{let t=e?.idempotencyKey?.replace(/:user$/u,``),n=t?s(t):void 0;return!!(e?.role===`user`&&!e.isImported&&e.id===null&&e.sequence===null&&n?.pending&&Fh(n.message))},receive:(e,t,n=!1)=>{let r=t?.idempotencyKey?.replace(/:user$/u,``);if(a&&Wg(a,t))return r&&c(r),$n(a),e;if(t?.role!==`user`||!r)return e;let i=n||t.id!==null||t.sequence!==null;i&&c(r);let o=s(r);if(i||t.isImported||!o||o.pending){if(!a||t.isImported||r!==a.pendingRunId)return e;if(i)return $n(a),e}}}}function Kg(e,t){let n=Gg(e,t.scope),r=t;for(let e of t.entries){let i=e.identity?.sendId??e.identity?.runId;!e.pending&&i&&n?.ownsPendingSteer(e.identity)&&(r=Ri(r,{type:`sendPending`,runId:i,message:e.message,scope:t.scope}))}return r}function qg(e,t={}){let n=Object.hasOwn(t,`sessionId`)?t.sessionId:e.currentSessionId;return{sessionKey:k(e,t.sessionKey??e.sessionKey).sessionKey,...t.agentId?{agentId:t.agentId}:{},...n?{sessionId:n}:{},...t.lifecycleRevision===void 0?{}:{lifecycleRevision:t.lifecycleRevision},...Object.hasOwn(t,`activeLeafEntryId`)||Object.hasOwn(e,`chatDisplayedLeafEntryId`)?{activeLeafEntryId:Object.hasOwn(t,`activeLeafEntryId`)?t.activeLeafEntryId??null:e.chatDisplayedLeafEntryId??null}:{}}}function Jg(e,t,n=d_){return n.some(n=>Object.hasOwn(t,n)&&e[n]!==void 0&&e[n]!==t[n])}function Yg(e,t=qg(e)){let n=u_.get(e)?.projection;if(n!==void 0&&Jg(n.scope,t))return Xi(t);if(!n){let n=Kg(e,Xi(t,e.chatMessages));return t_(e,n),n}let r=d_.some(e=>Object.hasOwn(t,e)&&n.scope[e]===void 0&&t[e]!==void 0)?{...n,scope:{...n.scope,...t}}:n;return r!==n&&t_(e,r),r}function Xg(e){return u_.get(e)?.runId}function Zg(e){let t=u_.get(e);return t?.runId?t.projection?.scope.sessionKey:void 0}function Qg(e,t){let n=u_.get(e);u_.set(e,{...n,runId:t,modelObservation:n?.modelObservation&&n.modelObservation.runId===t?n.modelObservation:void 0})}function $g(e,t,n){u_.set(e,{...u_.get(e),modelObservation:t&&n?{runId:t,model:n.activeModel,provider:n.activeModelProvider}:void 0})}function e_(e,t){let n=u_.get(e)?.modelObservation;return n?.model===t?.activeModel&&n?.provider===t?.activeModelProvider?n?.runId:void 0}function t_(e,t){let n=u_.get(e),r=n?.runId,i=n?.projection?.scope,a=i&&Jg(i,t.scope);if(a){let n=e.compactionStatus,r=Jg(i,t.scope,[`sessionKey`,`sessionId`,`agentId`]);r&&(e.providerPolicyNotice=null),(r||!n||!t.messages.some(e=>Dg(e,n)))&&Ug(e)}let o=r&&Object.hasOwn(t.runs,r)&&!a?r:void 0;u_.set(e,{projection:t,modelObservation:a||n?.modelObservation?.runId===r&&!o?void 0:n?.modelObservation,runId:o}),n?.projection?.messages!==t.messages&&(e.chatMessages.length!==t.messages.length||e.chatMessages.some((e,n)=>e!==t.messages[n]))&&(e.chatMessages=[...t.messages])}function n_(e,t,n={}){let r=n.scope??qg(e),i=Yg(e,r),a=n.event?Ri(i,{...n.event,scope:r}):i,o=n.event?.type===`messagePersisted`?n.event.message:null,s=new Set(a.messages),c=new Set(i.messages.filter(e=>!s.has(e))),l=o===null||s.has(o),u=[],d=!1;for(let e of t){if(c.has(e)){if(o===null)continue;e=o}if(e===o){if(!l||d)continue;d=!0}u.push(e)}let f=new Map;for(let e of a.entries.toReversed()){let t=f.get(e.message);t?t.push(e):f.set(e.message,[e])}let p=Xi(r,u).entries.map(e=>f.get(e.message)?.pop()??e),m={...a,scope:{...a.scope,...r},entries:p,messages:u};return t_(e,m),m}function r_(e,t,n){let r=f_.get(e);if(!r){r={userIds:new Set,sendKeys:new Set,steerSendKeys:new Set};for(let t of e){let e=Ui(t);e?.role===`user`&&(e.id&&r.userIds.add(e.id),e.idempotencyKey&&(r.sendKeys.add(e.idempotencyKey),Fh(t)&&r.steerSendKeys.add(e.idempotencyKey)))}f_.set(e,r)}let{userIds:i,sendKeys:a,steerSendKeys:o}=r,s=new Set(n.map(e=>e.runId)),c=e=>!!(e&&(o.has(e)||o.has(`${e}:user`))),l=n.filter(e=>!i.has(e.id)&&!c(e.runId));return{queue:t.filter(e=>!e.sendRunId||!s.has(e.sendRunId)&&!a.has(e.sendRunId)&&!a.has(`${e.sendRunId}:user`)),pendingInputs:l.filter(e=>!e.queued&&J(e.message)?.display!==!1),queuedInputs:l.filter(e=>e.queued)}}function i_(e,t,n=[]){let r=new Set([...t?.items??[],...n].map(e=>e.runId).filter(e=>typeof e==`string`));return a_(e,r,{awaitTranscriptReceipt:!0}),a_(e,new Set([...(t?.items??[]).filter(e=>e.state!==`queued`).map(e=>e.runId),...n.filter(e=>e.state===`pending`&&e.cancelled).map(e=>e.runId)].filter(e=>typeof e==`string`))),{acceptedRunIds:r,page:t??{items:[],total:0}}}function a_(e,t,n={}){let r=qg(e,{agentId:A(e)});if(Gg(e,r)?.accept(t,n.awaitTranscriptReceipt),t.size){let i=Yg(e,r),a=o_(i,t,n.awaitTranscriptReceipt);a!==i&&t_(e,a)}}function o_(e,t,n=!1){let r=e.entries.filter(e=>!(e.pending&&e.identity?.role===`user`&&!(n&&Fh(e.message))&&e.identity.id===null&&e.identity.sequence===null&&t.has(e.pendingRunId??``)));return r.length===e.entries.length?e:{...e,entries:r,messages:r.map(e=>e.message)}}function s_(e,t){return t&&(t.id!==null||t.sequence!==null)&&(e.kind===`initial`?$n(e):e.pending=!1),e.pending&&!t}function c_(e,t,n=e.chatSubmissions?.readInitial(e.sessionKey,e.client??null,e.currentSessionId)){if(n&&(t?.some(e=>e.runId===n.pendingRunId)&&!(n.kind===`delivered`&&Fh(n.message))||n.kind===`initial`&&e.chatMessages.some(e=>Wg(n,Ui(e))))&&(n.kind===`initial`?$n(n):n.pending=!1),!n?.pending||n.kind===`delivered`&&(!e.chatSubmissions||!s_(n,lc(e.chatMessages,n.pendingRunId,!0))))return!1;let r=qg(e,{sessionKey:n.sessionKey,...n.kind===`delivered`?{agentId:n.agentId}:{}}),i=e.chatMessages;return l_(e,{type:`sendPending`,runId:n.pendingRunId,message:n.message},{scope:r}),e.chatMessages!==i}function l_(e,t,n={}){let r=n.scope??qg(e),i=Yg(e,r),a=Gg(e,r),o=a?.initial,s=o?.pending?o.pendingRunId:void 0,c=o?.pending?o.message:null,l=(e,t)=>a?a.receive(e,Ui(e,t),!!t):e,u=t.type===`messagePersisted`&&a?{...t,message:l(t.message,t.envelope??t)}:t.type===`snapshotLoaded`&&a?{...t,messages:t.messages.map(e=>l(e)).filter(e=>e!==void 0)}:t,d=s&&o&&!o.pending?o_(i,new Set([s])):i;t.type===`snapshotLoaded`&&o?.pending&&n.runActive!==!1&&(d=Ri(d,{type:`sendPending`,runId:o.pendingRunId,message:o.message,scope:r})),d=Ri(d,{...u,scope:r}),t.type===`snapshotLoaded`&&(d=Kg(e,d)),t.type===`sessionReset`&&d!==i&&(a?.accept(new Set(i.entries.flatMap(e=>e.pendingRunId&&Fh(e.message)?[e.pendingRunId]:[]))),delete e.chatHistoryCursor,Ug(e),e.providerPolicyNotice=null);let f=s?d.entries.findIndex(e=>e.pending&&e.pendingRunId===s):-1,p=d.entries[f];if(o&&c&&p&&f>0){let e=d.entries.findIndex((e,t)=>{let n=J(e.message);return t<f&&n?.role!==`user`&&typeof n?.timestamp==`number`&&n.timestamp>=c.timestamp});if(e>=0){let t=d.entries.toSpliced(f,1);t.splice(e,0,p),d={...d,entries:t,messages:t.map(e=>e.message)}}}return t_(e,d),d}var u_,d_,f_;function p_(){return(p_=e((()=>{ta(),Ji(),ur(),Oc(),Rs(),M(),Hg(),Vh(),u_=new WeakMap,d_=[`sessionKey`,`sessionId`,`agentId`,`lifecycleRevision`,`activeLeafEntryId`],f_=new WeakMap})))()}function m_(e,t,n,r=[]){if(t.queuedCount===0)return[];let i=t.nextBefore===void 0&&t.items.length===t.total,a=new Map(n?.map(e=>[e.runId,e])),o=new Set(n===void 0?[]:r),s=new Map((i?[]:e).map(e=>[e.id,e]));for(let e of t.items)e.queued?s.set(e.id,e):s.delete(e.id);return[...s.values()].filter(e=>{let t=e.runId?a.get(e.runId):void 0;return t?t.state===`pending`&&t.queued:!e.runId||!o.has(e.runId)})}function h_(e){return e.toSorted((e,t)=>e.acceptedAt-t.acceptedAt).flatMap(e=>{if(!e.queued||e.state!==`queued`||!e.runId)return[];let t=nl(e.message),n=t.content.flatMap(e=>e.type===`attachment`||e.type===`attachment_error`?[e.attachment.label]:e.type===`image`?e.sources.flatMap(e=>e.fileName?[e.fileName]:[]):[]),r=t.content.filter(e=>e.type===`image`).length;return[{id:`pending-input:${e.id}`,text:Ka(e.message)||n.join(`, `)||(r?I(`chat.queue.imageCount`,{count:String(r)}):``),createdAt:e.acceptedAt,pendingRunId:e.runId,serverQueued:!0,sender:t.sender??void 0}]})}function g_(e,t,n=[],r=[],i=!1,a){let o=[];for(let s of e){if(t?.trim()&&!ih(s.message,t,a))continue;let e;s.state===`queued`?s.runId&&(i||r.includes(s.runId))&&(e=i?`waitingForWorkerSetup`:`waitingForWorkspaceSync`):e=s.state===`interrupted`&&s.runId&&n.some(e=>e.sendRunId===s.runId&&e.sendState!==`failed`&&e.sendState!==`held`)?`resuming`:s.state===`cancelled`?`cancelled`:`interrupted`,o.push(...xh([s.message],()=>s.runId?`send:${s.runId}`:`pending-input:${s.id}`).flatMap(t=>wg({...t,startsTurn:!0},void 0,e?{status:e,key:`pending-input:${s.id}:state`,timestamp:s.acceptedAt}:void 0)))}return o}function __(e){let t=D_.get(e);return t?.sessionKey===e.sessionKey&&t.sessionId===(e.currentSessionId??null)&&t.agentId===A(e)?t:void 0}function v_(e){D_.delete(e)}function y_(e){let t=Yg(e,qg(e,{agentId:A(e)})),n=[...__(e)?.queuedInputs.map(e=>e.runId)??[],...t.entries.filter(e=>e.pending&&e.identity?.role===`user`).map(e=>e.pendingRunId),...e.chatQueue.filter(e=>(e.sendAttempts??0)>0||e.sendState===`unconfirmed`).map(e=>e.sendRunId)],r=new Set(n.filter(e=>!!(e&&e.length<=256)));return[...new Set([...__(e)?.receiptRunIds.filter(e=>r.has(e))??[],...r])]}function b_(e){return y_(e).slice(0,50).toSorted()}function x_(e,t,n=[]){let r=new Set(n);t.receiptRunIds=y_(e).toSorted((e,t)=>Number(r.has(e))-Number(r.has(t)))}function S_(e,t,n){let{page:r,acceptedRunIds:i}=i_(e,t,n),a=new Set([...(n??[]).filter(e=>e.state===`consumed`||e.state===`pending`&&e.cancelled).map(e=>e.runId),...r.items.filter(e=>e.state===`cancelled`).map(e=>e.runId)]);for(let t of e.chatQueue){let n=lc(e.chatMessages,t.sendRunId,!0);t.sendRunId&&(a.has(t.sendRunId)||n&&(n.id!==null||n.sequence!==null))&&(!t.sessionId||t.sessionId===e.currentSessionId)?Pm(e,t.id):t.sendRunId&&i.has(t.sendRunId)&&(!t.sessionId||t.sendState===`unconfirmed`)&&Mm(e,t,e.currentSessionId??void 0)}return r}function C_(e,t,n){return __(e)===t&&t.request===n&&e.client===n.client&&e.connected&&e.connectionEpoch===n.connectionEpoch}function w_(e,t,n={}){let r=S_(e,t,n.receipts),i=__(e),a=m_(i?.queuedInputs??[],r,n.receipts,n.queriedRunIds);i?(i.queuedInputs=a,i.queuedCount=r.queuedCount??0,i.queueBefore=r.nextBefore,i.revision+=1,i.request&&!C_(e,i,i.request)&&(i.request=void 0),i.before===void 0&&(i.page=r,i.error=void 0),i.before!==void 0&&!i.request&&T_(e,i.before,`refresh`)):(i={sessionKey:e.sessionKey,sessionId:e.currentSessionId??null,agentId:A(e),page:r,queuedInputs:a,receiptRunIds:[],queuedCount:r.queuedCount??0,queueBefore:r.nextBefore,revision:0,get loading(){return this.request?.kind===`navigation`}},D_.set(e,i)),x_(e,i,n.queriedRunIds),!i.request&&i.queuedInputs.length<i.queuedCount&&i.queueBefore!==void 0&&T_(e,i.queueBefore,`discovery`),e.requestUpdate?.()}async function T_(e,t,n){let r=__(e),i=e.client;if(!r||!i||!e.connected||r.request&&C_(e,r,r.request)&&(n!==`navigation`||r.request.kind===`navigation`))return;let a={before:t,kind:n,client:i,connectionEpoch:e.connectionEpoch};r.request=a,r.error=void 0,n===`navigation`&&e.requestUpdate?.();let o=()=>C_(e,r,a);try{for(;o();){let t=r.revision,n=b_(e),s=await i.request(`chat.history`,{sessionKey:r.sessionKey,toolResultMaxChars:2e3,agentId:r.agentId,limit:20,...n.length?{inputRunIds:n}:{},...a.before===void 0?{}:{pendingBefore:a.before}});if(!o()||s.sessionId!==r.sessionId)return;if(r.revision!==t)continue;let c=S_(e,s.pendingInputs,s.inputReceipts);if(r.queuedInputs=m_(r.queuedInputs,c,s.inputReceipts,n),r.queuedCount=c.queuedCount??r.queuedCount,x_(e,r,n),a.kind!==`discovery`&&(r.page=c,r.before=a.before),(a.kind===`discovery`||a.before===void 0)&&(r.queueBefore=c.nextBefore),r.queuedInputs.length<r.queuedCount&&r.queueBefore!==void 0){a.kind=`discovery`,a.before=r.queueBefore;continue}return}}catch(e){o()&&(r.error=F(e))}finally{r.request===a&&(r.request=void 0,__(e)===r&&e.requestUpdate?.())}}function E_(e,t){return T_(e,t,`navigation`)}var D_;function O_(){return(O_=e((()=>{Bi(),O(),Oc(),Yo(),eo(),P(),M(),Rm(),Tg(),Mh(),p_(),D_=new WeakMap})))()}function k_(e){if(typeof e!=`string`||!e.includes(`github.com`))return[];let t=[];for(let n of e.matchAll(F_)){let e=n[0].replace(/[.,;:!?]+$/u,``);Sd(e)?.kind===`pull`&&t.push(e)}return t}function A_(e){let t=JSON.stringify(k(e,e.sessionKey)),n=R_.get(e);return(!n||n.client!==e.client||n.connectionEpoch!==e.connectionEpoch||n.conversation!==t)&&(n={client:e.client,connectionEpoch:e.connectionEpoch,conversation:t,receipts:new Set},R_.set(e,n)),n}function j_(e,t,n){let r=n!==null&&n.length<=L_;if(!(r&&t.receipts.has(n))&&e.refreshSessionPullRequests?.({refresh:!0,automatic:!0})===!0&&r&&(t.receipts.add(n),t.receipts.size>I_)){let e=t.receipts.values().next().value;e!==void 0&&t.receipts.delete(e)}}function M_(e){R_.delete(e)}function N_(e,t,n){let r=A_(e),i=t??``,a=JSON.stringify([`stream`,i]);if(r.receipts.has(a))return;let o=(r.tail?.runId===i?r.tail.text:``)+n;r.tail={runId:i,text:o.slice(-256)},k_(o).length>0&&j_(e,r,a)}function P_(e,t,n){let r=Zi(Zh(n));j_(e,A_(e),t&&r?JSON.stringify([`final`,t,r]):null)}var F_,I_,L_,R_;function z_(){return(z_=e((()=>{Hi(),td(),M(),tg(),F_=/https:\/\/github\.com\/[^\s<>()\]}'"`]+/giu,I_=200,L_=4096,R_=new WeakMap})))()}function B_(e){let t=nv.get(e);return t||(t={historyVersion:0,branchVersion:0,subscriptionGeneration:0,pendingSubscriptionReleases:new Set,syncRetries:new Map,historyLoad:{phase:`idle`}},nv.set(e,t)),t}function V_(e,t,n){let r=B_(e);if(n)r.syncRetries.set(t,{client:e.client,sessions:e.sessions,connectionEpoch:e.connectionEpoch,sessionKey:e.sessionKey,agentId:A(e)});else if(!r.syncRetries.delete(t))return;e.historyRecoveryChanged?.()}function H_(e){return[...B_(e).syncRetries.values()].some(t=>e.connected&&t.client===e.client&&t.sessions===e.sessions&&t.connectionEpoch===e.connectionEpoch&&t.sessionKey===e.sessionKey&&t.agentId===A(e))}function U_(e){let t=B_(e),n=t.initialSnapshotHydration;delete t.initialSnapshotHydration,n?.cancel?.()}function W_(e){let t=B_(e).initialSnapshotHydration;t&&(e.connected?t.readyAt??=Date.now():t.readyAt!==void 0&&U_(e))}function G_(e){let t=B_(e),n=t.initialSnapshotHydration;if(!n)return;if(!n.startedBeforeReady||!xn(e.sessionKey,n.sessionKey)){U_(e);return}if(n.wait)return n.wait;let r=n.readyAt??=Date.now(),i=Math.max(0,300-(Date.now()-r));if(i===0){U_(e);return}return n.wait=new Promise(e=>{let r=r=>{clearTimeout(o),t.initialSnapshotHydration===n&&delete t.initialSnapshotHydration,e(r)},a=()=>r(!0);n.complete=a,n.cancel=()=>r(!1);let o=setTimeout(a,i);n.promise.then(a,a)}),n.wait}function K_(e){return e.phase===`pending-connection`||e.phase===`in-flight`}function q_(e,t){let n=B_(e),r=K_(n.historyLoad);n.historyLoad=t,t.phase===`committed`&&(n.acceptedHistory=t),r!==K_(t)&&e.transcriptLoadingChanged?.()}function J_(e){let t=B_(e),n=t.historyLoad;if(n.phase===`idle`)return n;let r=D(e,e.sessionKey)?A(e):void 0;return n.sessionKey!==e.sessionKey||n.requestAgentId!==r?(t.historyLoad={phase:`idle`},e.chatLoading=!1):n.phase===`in-flight`&&(!e.connected||n.client!==e.client||n.sessions!==e.sessions||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}function Y_(e){let t=B_(e).acceptedHistory;return t&&e.connected&&e.client===t.client&&e.sessions===t.sessions&&e.connectionEpoch===t.connectionEpoch&&e.sessionKey===t.sessionKey&&(!D(e,e.sessionKey)||A(e)===t.requestAgentId)&&t.sessionInfo?.sessionId&&e.currentSessionId===t.sessionInfo.sessionId?t.sessionInfo:void 0}function X_(e,t=e.sessionKey){let n=B_(e).acceptedHistory,r=e.chatSubmissions?.creation;return Ll(t)&&n?.sessionId===null&&e.connected&&e.client===n.client&&e.sessions===n.sessions&&e.connectionEpoch===n.connectionEpoch&&e.sessionKey===t&&n.sessionKey===t&&!(r?.sessionKey===t&&!r.admitted)&&!e.hasPendingInitialTurn?.(t)}function Z_(e){let t=B_(e),n=t.acceptedHistory;if(e.currentSessionId&&n&&e.client===n.client&&e.sessions===n.sessions&&(!e.connected||e.connectionEpoch===n.connectionEpoch)&&n.sessionKey===e.sessionKey&&(!D(e,e.sessionKey)||A(e)===n.requestAgentId)&&n.sessionInfo?.sessionId===e.currentSessionId)return!1;let r=t.historyLoad;return r.phase===`idle`?e.chatLoading&&(!e.currentSessionId||!!t.initialSnapshotHydration):r.phase!==`committed`&&r.startup}function Q_(e,t,n,r,i){return{version:++B_(e).historyVersion,sessions:e.sessions,client:t,connectionEpoch:n,sessionKey:r,agentId:i}}function $_(e,t){return B_(e).historyVersion===t.version&&e.client===t.client&&e.sessions===t.sessions&&e.connected&&e.connectionEpoch===t.connectionEpoch}function ev(e,t){return $_(e,t)&&e.sessionKey===t.sessionKey&&(!D(e,t.sessionKey)||A(e)===t.agentId)}function tv(e,t){U_(e),M_(e),v_(e);let n=B_(e);n.historyVersion+=1,delete n.acceptedHistory,q_(e,{phase:`idle`}),e.chatLoading=!1,l_(e,{type:`sessionReset`},{scope:qg(e,{agentId:t})})}function Q(e,t,n=!1){let r=t===null?null:F(t);e.lastError=r,e.chatError=r,n&&e.requestUpdate?.()}var nv;function rv(){return(rv=e((()=>{Kl(),P(),M(),O_(),z_(),p_(),nv=new WeakMap})))()}function iv(e,t=e.sessionKey,n=A(e)){let r=ge(t),i=b(t),a=(e,t)=>!!r&&ge(e.key)===r&&(!i||(e.agentId??t)===n),o=e.sessionsResult?.sessions.find(t=>a(t,e.sessionsResultAgentId))??e.sessions?.state?.result?.sessions.find(t=>a(t,e.sessions?.state?.agentId));return o&&(e.sessions?.projectRows?.([o])[0]??o)}function av(e,t=e.sessionKey,n=A(e)){let r=Am(e,t,n).filter(e=>!e.pendingRunId&&e.sendState!==`held`&&e.sendState!==`executing-command`).map(e=>({id:e.id,update:e=>({...e,sendState:`held`,sendError:I(`chat.providerReview.queuedInputHeld`)})}));return r.length===0||X(e).update(e,r)!==null}function ov(){return(ov=e((()=>{O(),Io(),M(),wm(),Rm(),Ia()})))()}function sv(e,t){if(!e.has(t))return;let n=e.get(t);return e.delete(t),e.set(t,n),n}function cv(e,t,n){e.delete(t),e.set(t,n),pl(e,20)}function lv(e,t,n){if(e.has(t))return sv(e,t);let r=n();return cv(e,t,r),r}function uv(){return(uv=e((()=>{})))()}function dv(e){let t=e.chatHistoryCursor;if(t?.snapshotKey===ht(e,{sessionKey:e.sessionKey})&&t.sessionId===(e.currentSessionId??null))return t.cursor;delete e.chatHistoryCursor}function fv(e,t){e.chatHistoryCursor=t===void 0?void 0:{cursor:t,snapshotKey:ht(e,{sessionKey:e.sessionKey}),sessionId:e.currentSessionId??null}}function pv(e,t){Av.set(e,t)}function mv(e,t,n){e.delete(t),Av.get(e)?.delete(t,n)}function hv(e,t){l_(e,{type:`snapshotLoaded`,messages:t.messages},{scope:qg(e,{sessionId:t.sessionId,...Object.hasOwn(t,`displayedLeafEntryId`)?{activeLeafEntryId:t.displayedLeafEntryId}:{}})}),e.chatHistoryPagination=t.pagination,e.currentSessionId=t.sessionId,e.chatDisplayedLeafEntryId=t.displayedLeafEntryId,fv(e,t.deltaCursor)}function gv(e,t,n,r,i){let a=ht(t,n),o=sv(e,a);if(!o)return;if(i){let t=kv.get(e);if(t||(t=new WeakSet,kv.set(e,t)),t.has(i))return;t.add(i)}let s=Sv(r);if(s===null){mv(e,a,`cache-eviction`);return}let c=i?Ri(Xi({},o.snapshot.messages),{type:`messagePersisted`,message:r,envelope:i}).messages.slice():[...o.snapshot.messages,r],l={...o.snapshot,messages:c};if(i){yv(e,t,n,l);return}let u=o.weight+s+ +(o.snapshot.messages.length>0);if(u>Ev){yv(e,t,n,l);return}cv(e,a,{snapshot:l,weight:u}),Tv(e),Av.get(e)?.write(a,l)}function _v(e,t,n){return bv(e,t,n)?.messages??[]}function vv(e,t,n,r){mv(e,ht(t,n),r)}function yv(e,t,n,r){let i=ht(t,n),a=sv(e,i);if(a?.snapshot.messages===r.messages&&a.snapshot.deltaCursor===r.deltaCursor&&a.snapshot.sessionId===r.sessionId&&a.snapshot.displayedLeafEntryId===r.displayedLeafEntryId&&wv(a.snapshot.pagination,r.pagination))return;if(r.messages.length===0&&r.sessionId===null&&!r.pagination.hasMore&&(r.pagination.totalMessages??0)===0&&r.pagination.completeSnapshot!==!0){mv(e,i,`cache-eviction`);return}let o=xv(r);if(!o){mv(e,i,`cache-eviction`);return}cv(e,i,o),Tv(e),Av.get(e)?.write(i,o.snapshot)}function bv(e,t,n){return sv(e,ht(t,n))?.snapshot??null}function xv(e){let t=[];for(let n of e.messages){let e=Sv(n);if(e===null)return null;t.push(e)}let n=t.reduce((e,t)=>e+t,0),r=0;for(;;){let i=r===0?e.pagination:Cv(e.pagination,e.messages,r);if(!i)return null;let a={...e,messages:[],pagination:i},o;try{o=(JSON.stringify(a)?.length??0)+n+Math.max(0,t.length-r-1)}catch{o=null}if(o!==null&&o<=Ev)return r===0?{snapshot:e,weight:o}:{snapshot:{...e,messages:e.messages.slice(r),pagination:{...i}},weight:o};if(r>=e.messages.length)return null;let s=Pi(e.messages[r]);do if(n-=t[r]??0,r+=1,s===null)break;while(r<e.messages.length&&Pi(e.messages[r])===s)}}function Sv(e){if(e&&typeof e==`object`){let t=Ov.get(e);if(t!==void 0)return t}try{let t=JSON.stringify([e]),n=t?Math.max(0,t.length-2):0;return e&&typeof e==`object`&&Ov.set(e,n),n}catch{return null}}function Cv(e,t,n=0){let r=e.totalMessages,i=null;for(let e=n;e<t.length&&(i=Pi(t[e]),i===null);e+=1);if(typeof r!=`number`||i===null)return null;let a=r-i+1;return a<=0?null:i>1?{hasMore:!0,nextOffset:a,totalMessages:r}:{hasMore:!1,totalMessages:r}}function wv(e,t){return e.hasMore!==t.hasMore||e.totalMessages!==t.totalMessages?!1:e.hasMore&&t.hasMore?e.nextOffset===t.nextOffset:!e.hasMore&&!t.hasMore&&e.completeSnapshot===t.completeSnapshot}function Tv(e){let t=0;for(let n of e.values())t+=n.weight;for(;t>Dv;){let n=e.keys().next().value;if(typeof n!=`string`)break;t-=e.get(n)?.weight??0,e.delete(n)}}var Ev,Dv,Ov,kv,Av;function jv(){return(jv=e((()=>{ta(),Ji(),p_(),uv(),dn(),Ev=12582912,Dv=25165824,Ov=new WeakMap,kv=new WeakMap,Av=new WeakMap})))()}function Mv(e,t){return e===`source-changed`?I(`chat.queue.editSourceChanged`):e===`full`?I(`chat.queue.full`):t?I(`chat.queue.editStorageFailed`):$}function Nv(e){let t=ic(e);return t?.command.key===`new`||t?.command.key===`reset`&&!/^soft(?:\s|$)/i.test(t.args)}function Pv(e){return!e.intent&&!e.localCommandName&&!e.text.trimStart().startsWith(`/`)}function Fv(e,t,n=!1,r){return X_(e,t)?I(`chat.incognitoExpiredTitle`):iv(e,t,r)?.sendDisabledReason||Iv(e,t,n)}function Iv(e,t,n=!1){return e.connected&&e.client&&!e.client.recoveryScopeReady?I(`chat.queue.connectionPending`):n||e.hasPendingInitialTurn?.(t)?I(`chat.queue.initialTurnPending`):null}function Lv(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 Rv(e,t){if(t?.kind!==`delivered`||!t.pending)return;let{sessionKey:n,agentId:r,message:i}=t;if(j(e,n,r)){(!t.sessionId||!e.currentSessionId||t.sessionId===e.currentSessionId)&&c_(e,__(e)?.page.items,t);return}if(e.chatMessagesBySession){let a={sessionKey:n,agentId:r},o=_v(e.chatMessagesBySession,e,a);s_(t,lc(o,t.pendingRunId,!0))&&gv(e.chatMessagesBySession,e,a,i)}}function zv(e,t,n,r){let i=e.client??e,a=e.chatSubmissions,o=Mc(e,n,t),s=Im(e,t,n);if(r?.inputConsumed&&t){let r=a.readDelivered(o,i);return r&&!Fh(r.message)&&(r.pending=!1),j(e,n.sessionKey,n.agentId)&&(!s?.sessionId||s.sessionId===e.currentSessionId)&&a_(e,new Set([t]),{awaitTranscriptReceipt:!0}),!s||Fm(e,t,n)?`retired`:`retained`}if(!s)return Rv(e,a.readDelivered(o,i)),`retired`;let c=e.connectionEpoch,l=e.connected,u=dm(e),d=()=>e.connected===l&&e.connectionEpoch===c&&u(),f=()=>Im(e,t,n),p=c=>{if(!d())return`stale`;let l=f();if(!l)return Rv(e,a.readDelivered(o,i)),Z(e,s.id)?`stale`:`retired`;if(!Va(l,s)||!s.sendRunId)return`stale`;let u=a.readDelivered(o,i);Rv(e,a.retain({kind:`delivered`,deliveryKey:o,owner:i,sessionKey:s.sessionKey??n.sessionKey,agentId:s.agentId,sessionId:s.sessionId,pendingRunId:s.sendRunId,message:u?.kind===`delivered`&&u.pending&&Fh(u.message)?u.message:c}));let p=f();return!d()||!p||!Va(p,s)?`stale`:!r?.retainUntilConsumed&&Fm(e,t,n)?`retired`:`retained`},m=Z(e,s.id),h=m&&m.attachmentPayload?.key===s.attachmentPayload?.key&&m.attachments?.length===s.attachments?.length?m:s,g=e=>th({...s,attachments:e,runId:s.sendRunId},`complete`),_=g(h.attachments)??g(s.attachments);return _&&(!s.attachmentPayload&&!s.attachmentStorageError||(s.attachments?.length??0)>0)?p(_):pm(e,s,`handoff`).then(t=>{if(!d())return`stale`;if(t.status===`ready`){let e=g(t.update.attachments??s.attachments);if(e)return p(e)}let n=f();if(!n)return Z(e,s.id)?`stale`:`retired`;if(!Va(n,s))return`stale`;let r=t.status===`failed`?t.reason:`missing`;return jm(e,s.id,e=>lm({...e,sendState:e.sendState===`held`?`held`:`unconfirmed`},r)),`retained`})}function Bv(e,t,n,r,i={}){let a=F(r);if(j(e,t,n)){e.lastError=i.inline?null:a,e.chatError=i.inline?null:a;return}let o=n?ru(n):void 0,s=e.sessionsResult?.sessions.find(e=>xn(e.key,t)&&(!b(t)||!o||e.agentId!==void 0&&ru(e.agentId)===o));yn({message:`${st(t,s)}: ${a}`})}function Vv(e,t){let n=(t.senderLabel??`User`).replace(/([\\`*_{}[\]()#+\-.!|>])/g,`\\$1`),r=t.text.trim();return r.includes(`
`)?`> **${n}:**\n${r.split(`
`).map(e=>`> ${e}`).join(`
`)}\n\n${e}`:`> **${n}:** ${r}\n\n${e}`}var Hv,$;function Uv(){return(Uv=e((()=>{O(),la(),Oc(),oo(),Rs(),P(),qt(),dt(),M(),ot(),rv(),O_(),ov(),Rm(),p_(),gm(),jv(),Vh(),nh(),Hv=`Delivery has not been confirmed. Check the conversation — retry only if your message didn't arrive.`,$=`Could not store this message for reconnect. Free browser storage or reconnect before sending.`})))()}function Wv(e){return{key:e.key,agentId:e.agentId,...e.target.kind===`profile`?{profileId:e.target.profileId,...e.target.os?{os:e.target.os}:{},...e.target.machineClass?{machineClass:e.target.machineClass}:{}}:e.target.kind===`device`?{deviceId:e.target.deviceId}:{autoDevice:!0}}}function Gv(e){return e instanceof vr?e.retryable||e.gatewayCode===`UNAVAILABLE`:!0}async function Kv(e,t){try{let n=await e.describe({key:t},{refresh:!0,client:e.client});if(n?.session===null)return{status:`missing`};let r=n?.session?.sessionId;return{status:`read`,placement:n?.session?.placement,...typeof r==`string`&&r.trim()?{sessionId:r}:{}}}catch(e){return an(e,null)?{status:`awaiting-gateway`}:Gv(e)?{status:`unavailable`}:{status:`rejected`,error:F(e)}}}async function qv(e,t){try{await e.request(`sessions.reclaim`,{key:t.key,agentId:t.agentId});return}catch(e){return F(e)}}async function Jv(e,t,n,r){if(!n())return{status:`interrupted`};let i=await qv(e,t);return i?{status:`cleanup-rejected`,error:i,...r===void 0?{}:{messageId:r}}:{status:`cancelled`}}async function Yv(e,t,n){let{client:r}=e,i=t.initial?{status:`read`,placement:t.initial}:void 0,a=0,o=0,s=!1;for(let c=0;c<ey;c+=1){let c=i??await Kv(e,t.key);if(s=c.status===`read`&&c.placement!==void 0&&ry.has(c.placement.state),i=void 0,c.status===`missing`)return{status:`missing`};if(c.status===`rejected`)return{status:`cleanup-rejected`,error:c.error};if(c.status===`unavailable`||c.status===`awaiting-gateway`){if(a=c.status===`awaiting-gateway`?0:a+1,!n())return Jv(r,t,t.cleanupOnCancellation);if(a>=ty){let e=await qv(r,t),n=`session placement could not be verified`;return{status:`cleanup-rejected`,error:e?`${n}; cleanup failed: ${e}`:n}}await ul($v);continue}if(a=0,c.status===`read`){let e=c.placement;if(e)o=0;else if(o+=1,o>=ny)return{status:`cleanup-rejected`,error:`session placement could not be verified`};if(!n())return Jv(r,t,t.cleanupOnCancellation);if(e?.state===`active`)return{status:`active`,placement:e};if(t.mode===`retry`&&(!e||e.state===`local`||e.state===`reclaimed`||e.state===`failed`))return{status:`dispatch`};if(e&&!ry.has(e.state)){if(e.state===`failed`){let e=await qv(r,t);if(e)return{status:`cleanup-rejected`,error:e}}return{status:`rejected`,placement:e}}}await ul($v)}return n()?{status:`cleanup-rejected`,error:I(s?`newSession.placementStillStarting`:`newSession.placementCompletionUnconfirmed`)}:Jv(r,t,t.cleanupOnCancellation)}async function Xv(e,t,n,r=!1){return Zv(e,t,n,r)}async function Zv(e,t,n,r){let{client:i}=e;if(!i)return`gateway unavailable during draft cleanup`;let a=await Kv({...e,client:i},t);if(a.status===`missing`)return;if(a.status===`rejected`)return a.error;if(a.status===`unavailable`||a.status===`awaiting-gateway`)return r?`session placement could not be verified`:`placement draft session could not be verified`;if(r&&a.placement){let e=await qv(i,{key:t,agentId:n});if(e)return e}if(!a.sessionId)return`placement draft session identity is unavailable`;let o={key:t,agentId:n,expectedSessionId:a.sessionId};try{await i.request(`sessions.patch`,{...o,archived:!0})}catch(e){return F(e)}try{if((await i.request(`sessions.delete`,{...o,deleteTranscript:!0,archivedOnly:!0})).deleted!==!0)throw Error(`placement draft session was not deleted`);return}catch(e){let t=F(e);try{await i.request(`sessions.patch`,{...o,archived:!1})}catch(e){return`${t}; restoring the placement draft failed: ${F(e)}`}return t}}async function Qv(e,t,n,r=()=>!0){let{client:i}=e,a=t.message,o=t.mentions?.map(e=>({...e})),s=t.cleanupOnCancellation??(()=>!0),c=(r,i)=>Yv(e,{key:t.key,agentId:t.agentId,mode:r,initial:i,cleanupOnCancellation:s},n),l,u=``;if(t.mode!==`dispatch`&&(l=await c(t.mode)),l?.status===`dispatch`&&!n())return Jv(i,t,s);if(!l||l.status===`dispatch`)try{l=await c(`recover`,(await i.request(`sessions.dispatch`,Wv(t))).placement)}catch(e){if(u=F(e),!s()&&!n())return{status:`interrupted`};if(!Gv(e))return{status:`dispatch-rejected`,error:u};l=await c(`recover`)}if(!s()&&!n())return{status:`interrupted`};if(l.status===`cancelled`||l.status===`interrupted`||l.status===`cleanup-rejected`)return l;if(l.status===`missing`)return{status:`session-missing`,error:`placement draft session no longer exists`};if(l.status===`rejected`){let e=typeof l.placement?.state==`string`?l.placement.state:``;return{status:`dispatch-rejected`,error:u||(e?`session placement became ${e}`:``)}}if(!n())return Jv(i,t,s);let d=t.messageId??Jl(),f=async(e,n)=>{let r=await qv(i,t);return{status:n,messageId:d,error:r?`${e}; cleanup failed: ${r}`:e}};if(!r())return f(`placement recovery storage is unavailable`,`send-not-started`);try{let e=await i.request(`sessions.send`,{key:t.key,agentId:t.agentId,message:a,...o?.length?{mentions:o}:{},attachments:t.attachments,idempotencyKey:d});if(!n())return await Jv(i,t,s,d);let r=Ff(e,d);return If(r)?f(Lv(r,`chat`),`send-definitive-rejected`):{status:`started`,messageId:d}}catch(e){return n()?e instanceof Lr||e instanceof Error&&!(e instanceof vr)&&e.message===`gateway not connected`?f(F(e),`send-not-started`):Gv(e)?{status:`send-rejected`,error:F(e),messageId:d}:f(F(e),`send-definitive-rejected`):Jv(i,t,s,d)}}var $v,ey,ty,ny,ry;function iy(){return(iy=e((()=>{wl(),Un(),O(),Ns(),P(),C(),fl(),Lf(),Uv(),Os(),$v=250,ey=1200,ty=4,ny=20,ry=new Set([`requested`,`provisioning`,`syncing`,`starting`,`draining`,`reconciling`])})))()}async function ay(e){let t=e.persistRecovery!==!1,n=e.mode!==`dispatch`,r=e.recovery,i=`not-sent`,a=(e,n=i)=>({status:`paused`,recovery:Of(r,e,t,n).recovery}),o=()=>e.isLifecycleCurrent()&&e.ownsRecovery(),s=async(t=n)=>{let i=await Xv(e,r.sessionKey,r.agentId,t);return i||e.clearRecovery(`resolved`),i};if(r.phase===`sending`||r.phase===`paused`&&r.reason===`unconfirmed`){if(!o())return{status:`interrupted`};let t=await e.client.request(`chat.history`,{sessionKey:r.sessionKey,toolResultMaxChars:2e3,...b(r.sessionKey)?{agentId:r.agentId}:{},limit:1e3,...r.messageId.length<=256?{inputRunIds:[r.messageId]}:{}}).catch(e=>({error:F(e)}));if(!o())return{status:`interrupted`};if(`error`in t)return a(t.error,`unconfirmed`);let n={sendRunId:r.messageId},i=Ic(t,n);if(i||lc(t.messages,r.messageId,!0)){e.clearRecovery(`resolved`);let n=t.inputReceipts?.find(e=>e.runId===r.messageId);return i?{status:`accepted`,...n?.state===`consumed`?{consumedByEventId:n.consumedByEventId}:{}}:{status:`started`,messageId:r.messageId}}return a(`No matching user message was found in the available history. Delivery remains unconfirmed.`,`unconfirmed`)}if(r.phase===`paused`)return{status:`paused`,recovery:r};let c=n&&t?Cf(r.gatewayUrl,r.recoveryScope,r.sessionKey):null,l=()=>n?c?.messageId===r.messageId:Tf(r);if(!o()){if(!e.cleanupOnCancellation())return{status:`interrupted`};let n=t&&l(),r=await s();return{status:`cancelled`,cleanupError:r,recoveryPersisted:r?n:!1}}let u=!t||l();if(!o()||!u)return!e.cleanupOnCancellation()&&!o()?{status:`interrupted`}:n&&!u?{status:`cancelled`,cleanupError:`placement recovery storage is unavailable`,recoveryPersisted:!1}:{status:`cancelled`,cleanupError:await s(),recoveryPersisted:u};let d=await Qv(e,{key:r.sessionKey,agentId:r.agentId,target:r.target,message:r.message,mentions:r.mentions,attachments:r.attachments,messageId:r.messageId,mode:e.mode,cleanupOnCancellation:e.cleanupOnCancellation},o,()=>{let n=!0;if(t){let e=Cf(r.gatewayUrl,r.recoveryScope,r.sessionKey);if(e&&e.messageId!==r.messageId)return!1;n=wf({...r,phase:`sending`})}return n&&(i=`unconfirmed`,e.setRecoveryPhase(`sending`,t)),n});return!e.cleanupOnCancellation()&&!o()?{status:`interrupted`}:d.status===`interrupted`?d:d.status===`cancelled`?{status:`cancelled`,cleanupError:await s(!1),recoveryPersisted:t}:d.status===`session-missing`?(e.clearRecovery(`resolved`),{status:`cancelled`,recoveryPersisted:!1}):`error`in d?a(d.error,d.status===`send-not-started`?`not-sent`:d.status===`send-definitive-rejected`?`rejected`:i):e.isLifecycleCurrent()?e.ownsRecovery()?(e.clearRecovery(`resolved`),d):(e.clearRecovery(`resolved`),{status:`ownership-lost`}):(e.clearRecovery(`interrupted`),{status:`interrupted`})}function oy(){return(oy=e((()=>{Bi(),Oc(),P(),M(),Mf(),iy()})))()}function sy(){return(sy=e((()=>{})))()}function cy(e,t){return e<t?-1:+(e>t)}function ly(e){return Cy&&Sy===e?Cy:(Sy=e,Cy=Qd(qn(e)??[]),Cy)}function uy(e,t=e.id){let n=e.id===Vi;return{name:n?I(`presence.sharedOwner.name`):e.name??e.email??t,isSharedOwner:n}}function dy(e){return uy(e).name}function fy(e){let t=(e.entries??[]).flatMap(e=>e.reason!==`disconnect`&&e.lastActivityAt!==void 0&&Number.isFinite(e.lastActivityAt)?[e.lastActivityAt]:[]);return t.length?Math.max(...t):void 0}function py(e,t=Date.now()){let n=fy(e);return n===void 0?`unknown`:t-n<12e4?`active`:`idle`}function my(e){return I(e===`active`?`presence.onlineActive`:e===`idle`?`presence.onlineIdle`:`presence.rosterTitle`)}function hy(e,t,n){let r={active:0,idle:1,unknown:2},i=r[py(e,n)]-r[py(t,n)];return i===0?cy(dy(e).toLowerCase(),dy(t).toLowerCase())||cy(df(e),df(t)):i}function gy(e,t){return t?.type===`profile`&&e.identity?.id===t.id}function _y(e,t,n,r,i=[]){let a=Cr({snapshotUser:t,presenceEntries:qn(e),presenceInstanceId:n}),o=a?df(a):void 0;return ly(e).users.filter(e=>df(e)!==o&&!i.some(t=>gy(e,t))&&(r===void 0||e.watchedSessions.includes(r)))}function vy(e){let t=Date.now();return ly(e).users.toSorted((e,n)=>hy(e,n,t))}function yy(e,t,n,r){return _y(e,t,n,r).length>0}function by(e){return ly(e).users.length>=2}var xy,Sy,Cy;function wy(){return(wy=e((()=>{Yi(),Ud(),O(),xy=12e4})))()}function Ty(e){return e===`none`||e===`person`?e:`project`}function Ey(e){let t=e?.identity;return t?t.type===`profile`||t.type===`agent`?`${t.type}:${t.id}`:JSON.stringify(t,Object.keys(t).toSorted()):``}function Dy(e){let t=e.replace(/[\\/]+$/,``);if(!t)return null;let n=t.match(/^(.*?)[\\/]\.claude[\\/]worktrees[\\/][^\\/]/);return n?n[1]||null:t}function Oy(e,t,n){let r=new Map,i=[];for(let n of e){let e=t(n,r);if(!e){i.push(n);continue}e.sessions.push(n),r.set(e.key,e)}return{groups:[...r.values()].toSorted(n),ungrouped:i}}function ky(e){return Oy(e,(e,t)=>{let n=e.customGroup?.trim();if(n){let e=`custom:${n}`;return t.get(e)??{kind:`custom`,key:e,legacySectionKey:e,label:n,title:`Custom group: ${n}`,sessions:[]}}let r=e.cwd?.trim(),i=r?Dy(r):null;return i?t.get(`project:${i}`)??{kind:`project`,key:`project:${i}`,legacySectionKey:i,label:Bt(i),title:i,sessions:[]}:null},(e,t)=>Number(t.kind===`custom`)-Number(e.kind===`custom`))}function Ay(e){return Oy(e,(e,t)=>{let n=e.createdActor,r=Ey(n);if(!n?.identity||!r)return null;let i=`person:${r}`,a=t.get(i);if(a)return a;let o=n.identity.type===`profile`?dy({id:n.identity.id,name:n.label?.trim()||n.identity.id}):n.label?.trim()||n.identity.id;return{kind:`person`,key:i,legacySectionKey:`person:${n.id}`,label:o,title:`Created by ${o}`,sessions:[]}},(e,t)=>e.label.localeCompare(t.label))}function jy(){return(jy=e((()=>{wy()})))()}function My(e,t=!1){return{write:(n,r)=>{n.setData(e,r),t&&n.setData(`text/plain`,r),n.effectAllowed=t?`copyMove`:`move`},read:t=>t?.getData(e).trim()||null,active:t=>Array.from(t?.types??[]).includes(e)}}var Ny,Py,Fy,Iy,Ly,Ry,zy,By,Vy,Hy,Uy,Wy,Gy,Ky,qy;function Jy(){return(Jy=e((()=>{Ny=`application/x-openclaw-session-key`,Py=`application/x-openclaw-session-group`,Fy=`application/x-openclaw-sidebar-route`,Iy=My(Ny,!0),Ly=My(Py),Ry=My(Fy),zy=Iy.write,By=Iy.read,Vy=Iy.active,Hy=Ly.write,Uy=Ly.read,Wy=Ly.active,Gy=Ry.write,Ky=Ry.read,qy=Ry.active})))()}function Yy(e,t){return t?{sessionKey:e,...t.agentId?{agentId:t.agentId}:{},runId:t.runId,revision:t.revision,updatedAt:t.updatedAt,headline:t.headline,health:t.health}:null}function Xy(e){return e===`stuck`||e===`waiting-on-user`}function Zy(e){return e.localRunId?e.localRunId:!e.session?.hasActiveRun||!e.digest?.runId?null:e.session.activeRunIds?.includes(e.digest.runId)?e.digest.runId:null}function Qy(e,t){return e?t?e.revision===t.revision?e.updatedAt>=t.updatedAt?e:t:e.revision>t.revision?e:t:e:t??null}function $y(){return($y=e((()=>{})))()}function eb(e,t){return typeof e.snoozedUntil==`number`&&Number.isFinite(e.snoozedUntil)&&e.snoozedUntil>t}function tb(e){let t=36e5,n=[{id:`hour`,snoozedUntil:e.getTime()+t},{id:`three-hours`,snoozedUntil:e.getTime()+3*t}],r=new Date(e);r.setHours(18,0,0,0),r.getTime()-e.getTime()>t&&n.push({id:`evening`,snoozedUntil:r.getTime()});let i=new Date(e);i.setDate(i.getDate()+1),i.setHours(9,0,0,0),n.push({id:`tomorrow`,snoozedUntil:i.getTime()});let a=new Date(e);return a.setDate(a.getDate()+((8-a.getDay())%7||7)),a.setHours(9,0,0,0),a.getTime()!==i.getTime()&&n.push({id:`next-week`,snoozedUntil:a.getTime()}),n}function nb(e,t){let n=null;for(let r of e)eb(r,t)&&(n===null||r.snoozedUntil<n)&&(n=r.snoozedUntil);return n}function rb(e,t=new Date){let n=new Date(e),r=new Date(t);if(r.setHours(0,0,0,0),n.toDateString()===r.toDateString())return We(e);if(r.setDate(r.getDate()+1),n.toDateString()===r.toDateString())return I(`sessionsView.snoozeTomorrowTime`,{time:We(e)});let i=new Date(t);return i.setDate(i.getDate()+7),E(e,{...n.getTime()>t.getTime()&&n.getTime()<=i.getTime()?{weekday:`short`}:{month:`short`,day:`numeric`},hour:`numeric`,minute:`2-digit`})}function ib(){return(ib=e((()=>{O(),Je()})))()}var ab;function ob(){return(ob=e((()=>{C(),he(),ab=class{constructor(e,t){this.host=e,this.options=t,this.lifecycle=bt({client:null,phase:`stopped`}),this.currentGateway=null,this.currentSnapshot=null,this.currentClient=null,this.currentConnected=!1,this.hasBoundGateway=!1,this.handlePageActivation=()=>{this.options.onPageActivation?.()},this.subscriptions=new re(e).effect(t.getGateway,e=>{let t=!this.hasBoundGateway,n=this.hasBoundGateway&&this.currentGateway!==e;return this.hasBoundGateway=!0,this.currentGateway=e,this.applySnapshot(e.snapshot,{initial:t,sourceChanged:n}),e.subscribe(t=>{this.currentGateway===e&&this.options.getGateway()===e&&this.applySnapshot(t,{initial:!1,sourceChanged:!1})})}),e.addController(this)}get gateway(){return this.currentGateway}get snapshot(){return this.currentSnapshot}get client(){return this.currentClient}get connected(){return this.currentConnected}get epoch(){return this.lifecycle.epoch}capture(){return this.lifecycle.capture()}isCurrent(e){return this.lifecycle.isCurrent(e)}invalidate(){this.lifecycle.invalidate()}isRouteDataCurrent(e){let t=this.options.getGateway();if(!t||e.gateway!==t)return!1;let n=t.snapshot;return e.gatewaySnapshot===n||e.gatewaySnapshot.phase===`connected`&&n.phase===`connected`&&e.gatewaySnapshot.client===n.client&&e.gatewaySnapshot.hello!==null&&e.gatewaySnapshot.hello===n.hello}hostConnected(){this.options.onPageActivation&&(document.addEventListener(`visibilitychange`,this.handlePageActivation),globalThis.addEventListener(`focus`,this.handlePageActivation))}hostDisconnected(){this.options.onPageActivation&&(document.removeEventListener(`visibilitychange`,this.handlePageActivation),globalThis.removeEventListener(`focus`,this.handlePageActivation)),this.subscriptions.clear();let e=this.currentSnapshot;if(this.currentGateway=null,e){let t={...e,client:null,phase:`stopped`},n=this.lifecycle.transition(t),r=this.currentClient!==null,i=this.currentConnected;this.currentSnapshot=null,this.currentClient=null,this.currentConnected=!1,n&&this.options.invalidateRequests?.({snapshot:t,initial:!1,sourceChanged:!1,clientChanged:r,connectionChanged:i,identityChanged:!1,becameConnected:!1,becameAvailable:!1})}else this.lifecycle.invalidate();this.host.requestUpdate()}applySnapshot(e,t){let n=this.currentClient,r=this.currentConnected,i=this.currentSnapshot!==null&&ue(this.currentSnapshot),a=e.phase===`connected`,o=n!==e.client,s=r!==a,c=this.lifecycle.transition(e);t.sourceChanged&&!c&&this.lifecycle.invalidate(),this.currentSnapshot=e,this.currentClient=e.client,this.currentConnected=a;let l={snapshot:e,initial:t.initial,sourceChanged:t.sourceChanged,clientChanged:o,connectionChanged:s,identityChanged:!t.initial&&(t.sourceChanged||o),becameConnected:a&&!r,becameAvailable:ue(e)&&!i};l.identityChanged&&this.options.onIdentityChange?.(l),!t.initial&&(c||t.sourceChanged)&&this.options.invalidateRequests?.(l),this.options.onSnapshot?.(l),a&&(t.initial||l.identityChanged||l.connectionChanged)&&this.options.ensureInitialData?.(),this.host.requestUpdate()}}})))()}function sb(){return(sb=e((()=>{})))()}async function cb(e,t,n,r){e.subscribers.add(t);let i;try{if(!n)return await e.promise;let{promise:r,reject:a}=Promise.withResolvers();return i=()=>{e.subscribers.delete(t),e.subscribers.size===0&&e.controller?.abort(n.reason),a(n.reason)},n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i(),await Promise.race([e.promise,r])}finally{i&&n?.removeEventListener(`abort`,i),e.subscribers.delete(t),r?.()}}function lb(){return(lb=e((()=>{})))()}function ub(e){let t=ll(e);return In(t)??t}function db(e){return e.status===`missing`||Array.isArray(e.profiles)&&e.profiles.some(e=>e.type===`oauth`||e.type===`token`)}function fb(e){let t=new Map;for(let n of e){let e=ub(n.provider),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t].map(([e,t])=>{let n=t.reduce((e,t)=>vb.indexOf(t.status)<vb.indexOf(e.status)?t:e),r=t.find(e=>e.apiKey)?.apiKey;return Object.assign({},n,{provider:e,profiles:t.flatMap(e=>e.profiles),...r?{apiKey:r}:{}})})}function pb(e,t){let n;for(let r of e.providers)for(let i of[r,...r.profiles])if(i.expiry)for(let r of[864e5,3e5,0]){let a=i.expiry.at-r;if(a>e.ts){let r=t+(a-e.ts);(n===void 0||r<n)&&(n=r)}}return n}function mb(e){return _b.get(e)}async function hb(e,t){t.signal?.throwIfAborted();let n={...t?.refresh?{refresh:!0}:{},agentId:t.agentId},r=async t=>{let r=Date.now(),i=(t?await e.request(`models.authStatus`,n,{signal:t}):await e.request(`models.authStatus`,n))??gb;return Array.isArray(i.providers)&&_b.set(i,pb(i,r)),i},i=gt.get(e);if(i||(i={entries:new Map,refreshes:0},gt.set(e,i)),t.refresh){i.entries.clear(),i.refreshes+=1;try{return await r(t.signal)}finally{--i.refreshes}}if(i.refreshes>0)return await r(t.signal);let a=i.entries,o=t.agentId,s=a.get(o);if(s?.refreshAt!==void 0&&s.refreshAt<=Date.now()&&(a.delete(o),s=void 0),!s){let e={promise:r(),subscribers:new Set};a.set(o,e);let t=()=>{a.get(o)===e&&a.delete(o)};e.promise.then(n=>{n===gb||n.unavailable||!Array.isArray(n.providers)?t():a.get(o)===e&&(e.refreshAt=mb(n))},t),s=e}return await cb(s,{},t.signal)}var gb,_b,vb;function yb(){return(yb=e((()=>{Ol(),Hn(),Ut(),gb={ts:0,providers:[]},_b=new WeakMap,vb=[`expired`,`missing`,`expiring`,`ok`,`static`]})))()}function bb(){return(bb=e((()=>{})))()}function xb(e,t){let n=new Set(e),r=t.map(e=>K(e.category)).filter(e=>typeof e==`string`&&!n.has(e)).toSorted((e,t)=>e.localeCompare(t));return[...e,...new Set(r)]}function Sb(e,t,n=[]){let r=Sl(t),i=new Set(r),a=Sl(n),o=new Set(a),s=(u(e)??[]).filter(e=>e.startsWith(`category:`)?i.has(e.slice(9)):!e.startsWith(`catalog:`)||o.has(e.slice(8)));for(let e of r){let t=`category:${e}`;if(s.includes(t))continue;let n=s.findIndex(e=>Fb.includes(e));s.splice(n<0?s.length:n,0,t)}for(let[e,t]of Fb.entries()){if(s.includes(t))continue;if(e===0){s.push(t);continue}let n=Fb[e-1];s.splice(s.indexOf(n)+1,0,t)}let c=a.map(e=>`catalog:${e}`).filter(e=>!s.includes(e));return s.splice(s.indexOf(`work`)+1,0,...c),s}function Cb(e){return Nb.includes(e)?e:`none`}function wb(e){let t=new Date(e),n=e=>new Date(t.getFullYear(),t.getMonth(),t.getDate()-e).getTime(),r=n(0),i=n(1),a=n(6);return({updatedAt:e})=>typeof e!=`number`||!Number.isFinite(e)||e<=0?``:e>=r?`today`:e>=i?`yesterday`:e>=a?`week`:`older`}function Tb(e,t){switch(t){case`category`:return e.category?.trim()??``;case`person`:return Ey(e.owner?.actor);case`channel`:return e.channel??l(e.key)?.channel??``;case`kind`:return Ot(e);case`agent`:return kn(e.key)?.agentId??``;default:return``}}function Eb(e){let t=e.now??Date.now(),n=e.mode===`date`?wb(t):t=>Tb(t,e.mode),r=new Map;for(let t of e.rows){let e=n(t),i=r.get(e)??[];i.push(t),r.set(e,i)}return Mb(e.mode,r,e.knownCategories??[]).map(e=>({id:e,rows:r.get(e)??[]}))}function Db(e){return e===`none`||e===`person`||e===`project`?e:`category`}function Ob(e,t){return t===`category`&&e.pinned!==!0&&!!e.category?.trim()&&e.kind===`group`}function kb(e,t={}){let n=t.grouping??`category`,r=[],i=[],a=[],o=[],s=new Map,c=n===`category`?Sl(t.knownGroups):[];for(let e of c)s.set(`category:${e}`,{id:`category:${e}`,category:e,rows:[]});for(let t of e){if(t.pinned===!0){r.push(t);continue}if(n===`none`){i.push(t);continue}let e=Ab(t,n,s);if(e){e.rows.push(t),s.set(e.id,e);continue}if(t.kind===`group`){a.push(t);continue}if(t.workSession===!0||t.acpSession===!0){o.push(t);continue}i.push(t)}let l=[];r.length>0&&l.push({id:`pinned`,rows:r});let u=n===`category`?[...c,...[...s.values()].slice(c.length).map(e=>e.category).toSorted((e,t)=>e.localeCompare(t))]:[],d=u.map(e=>s.get(`category:${e}`));n!==`category`&&l.push(...[...s.values()].toSorted((e,n)=>jb(e,n,t.selfOwnerId))),d.push({id:`ungrouped`,rows:i});let f=e.some(e=>Ob(e,n));(a.length>0||f)&&d.push({id:`groups`,groups:!0,rows:a}),d.push({id:`work`,work:!0,rows:o});let p=Sl(t.catalogIds);if(d.push(...p.map(e=>({id:`catalog:${e}`,rows:[]}))),t.sectionOrder){let e=new Map(d.map(e=>[e.id,e]));for(let n of Sb(t.sectionOrder,u,p)){let t=e.get(n);t&&(l.push(t),e.delete(t.id))}return l.push(...d.filter(t=>e.has(t.id))),l}return l.push(...d),l}function Ab(e,t,n){if(t===`project`&&e.workContext){let t=Dy(e.workContext.path);if(t)return n.get(`project:${t}`)??{id:`project:${t}`,project:{name:Bt(t),path:t},rows:[]}}let r=t===`person`?e.owner?.actor:void 0,i=r?.identity?.id,a=Ey(r);if(r&&i&&a)return n.get(`person:${a}`)??{id:`person:${a}`,personOwner:{...r,id:i},rows:[]};let o=t===`category`?e.category?.trim():void 0;return o?n.get(`category:${o}`)??{id:`category:${o}`,category:o,rows:[]}:void 0}function jb(e,t,n){if(e.project&&t.project)return e.project.name.localeCompare(t.project.name)||e.project.path.localeCompare(t.project.path);let r=e=>e.identity?.type===`agent`?2:e.identity?.type===`profile`&&e.id===n?0:1,i=e.personOwner,a=t.personOwner;return r(i)-r(a)||(i.label||i.id).localeCompare(a.label||a.id)||i.id.localeCompare(a.id)}function Mb(e,t,n){if(e===`date`)return Pb.filter(e=>t.has(e));if(e===`category`){let e=Sl(n),r=[...t.keys()].filter(t=>t!==``&&!e.includes(t)).toSorted((e,t)=>e.localeCompare(t));return[...e,...r,``]}let r=[...t.keys()].filter(e=>e!==``);return r.sort((e,t)=>e.localeCompare(t)),t.has(``)&&r.push(``),r}var Nb,Pb,Fb,Ib;function Lb(){return(Lb=e((()=>{Ul(),qt(),jy(),An(),M(),Nb=[`none`,`category`,`person`,`channel`,`kind`,`agent`,`date`],Pb=[`today`,`yesterday`,`week`,`older`,``],Fb=[`ungrouped`,`groups`,`work`],Ib=No})))()}function Rb(e,t,n){e.onNavigate&&e.sessionDataContext&&(e.sessionDataContext.agentSelection.set(n),e.onNavigate(`terminal`,{pathname:Ur(`terminal`,e.basePath),search:pn(t),hash:``}))}async function zb(e,t,n){let{prepareCatalogTerminal:r}=await $l(async()=>{let{prepareCatalogTerminal:e}=await import(`./catalog-terminal-start-DmNpGDDP.js`).then(e=>(e.n(),e.t));return{prepareCatalogTerminal:e}},__vite__mapDeps([8,0,5]),import.meta.url);return r(e,t,n)}function Bb(){return(Bb=e((()=>{br(),Jt(),Yl()})))()}var Vb;function Hb(){return(Hb=e((()=>{Vb=class{constructor(e,t,n,r=!0,i=`always`){this.intervalMs=t,this.tick=n,this.autoStart=r,this.visibility=i,this.timer=null,this.running=!1,this.handleVisibilityChange=()=>{this.running&&(this.isVisible()?this.startTimer()&&this.tick():this.clearTimer())},e.addController(this)}hostConnected(){this.autoStart&&this.start()}hostDisconnected(){this.stop()}start(){return!this.running&&(this.running=!0,this.visibility===`visible`&&document.addEventListener(`visibilitychange`,this.handleVisibilityChange),this.startTimer(),!0)}stop(){this.running=!1,this.visibility===`visible`&&document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),this.clearTimer()}isVisible(){return this.visibility===`always`||document.visibilityState!==`hidden`}startTimer(){return this.timer!==null||!this.isVisible()?!1:(this.timer=globalThis.setInterval(()=>{this.isVisible()&&this.tick()},this.intervalMs),!0)}clearTimer(){this.timer!==null&&(globalThis.clearInterval(this.timer),this.timer=null)}}})))()}function Ub(e,t){let n={},r=e.activeRouteId,i=e.sessionKey;Yb.set(e,n);let a={...t,commit:()=>!e.isConnected||e.activeRouteId!==r||e.sessionKey!==i||Yb.get(e)!==n?!1:(Yb.delete(e),t.commit())},o=new CustomEvent(qb,{cancelable:!0,detail:a});globalThis.dispatchEvent(o),o.defaultPrevented||a.commit()}function Wb(e,t,n){let{client:r,hello:i}=e.snapshot,a={pathname:t,sessionKey:n,client:r,hello:i};Jb.set(e,a),globalThis.setTimeout(()=>{Jb.get(e)===a&&Jb.delete(e)},Kb)}function Gb(e,t){let n=Jb.get(e);if(!n||n.pathname!==t)return;Jb.delete(e);let{client:r,hello:i}=e.snapshot;if(n.client===r&&n.hello===i)return n.sessionKey}var Kb,qb,Jb,Yb;function Xb(){return(Xb=e((()=>{Kb=2e3,qb=`openclaw:session-navigation-intent`,Jb=new WeakMap,Yb=new WeakMap})))()}function Zb(e,t,n){let r=[t?.nativeDirectUserId,t?.from];r.some(e=>K(e))||r.push(n);for(let t of r){let n=K(t);if(n){if(e===`matrix`){if(n=n.replace(/^matrix:/i,``),/^@[^\s:]+:[^\s]+$/.test(n))return n;continue}if(e===`whatsapp`){n=n.replace(/^whatsapp:/i,``);let e=n.match(/^(\d+)(?:@s\.whatsapp\.net)?$/i);e&&(n=`+${e[1]}`)}else if(e===`signal`)n=n.replace(/^signal:/i,``);else if([`imessage`,`bluebubbles`,`sms`,`email`].includes(e)){if(n=n.replace(/^(?:imessage|bluebubbles|sms|auto|email):/i,``),/^[^\s@:]+@[^\s@:]+$/.test(n))return n}else continue;if(/^\+[1-9]\d{1,14}$/.test(n))return n}}}function Qb(e,t){let n=t;if(n){if(e===`discord`)n=n.replace(/ (?:user|channel) id:\d+$/,``);else if(e===`telegram`){if(n=n.replace(/(?:^| )id:-?\d+(?: topic:\d+)?$/,``),/^(?:id:unknown|group:-?\d+(?: topic:\d+)?)$/.test(n))return}else e===`signal`&&(n=n.replace(/ id:\S+$/,``));return K(n)}}function $b(e){let t=sn(e.key,e.channel),n=hl(t.channel);if(!t.channelSession||!n)return;let r=hl(e.channel),i=hl(e.origin?.provider??e.origin?.surface),a=(!r||r===n)&&(!i||i===n),o=a?e.origin:void 0,s=hl(e.deliveryContext?.channel)===n?e.deliveryContext:void 0,c=of(e.key),l=e.key.match(/^agent:[^:]+:[^:]+:(direct|dm|group|channel|thread):/)?.[1]??e.key.match(/^agent:[^:]+:[^:]+:[^:]+:(direct|dm):/)?.[1],u=a?e.chatType??o?.chatType:void 0,d=u??(l===`dm`?`direct`:l===`direct`||l===`group`||l===`channel`||l===`thread`?l:void 0),f=o?.threadId??s?.threadId??Xd(e.key).threadId??(n===`telegram`?e.key.match(/:topic:(\d+)$/u)?.[1]:void 0),p=n===`telegram`&&f!=null?K(String(f)):void 0;f!=null&&String(f).trim()&&(d=n===`telegram`?`topic`:`thread`);let m=u===`direct`||d===`direct`?Zb(n,o,c?.channel===n&&(c.peerKind===`direct`||c.peerKind===`dm`)?c.peerId:void 0):void 0,h=Qb(n,K(o?.label)),g=a?K(e.subject):void 0,_=a?K(e.groupChannel):void 0,v=n===`discord`?h??_??g:(n===`msteams`&&/^(?:personal|groupChat|channel)$/.test(g??``)?void 0:g)??_??h;(v===m||v===o?.from||v===o?.to||v===o?.nativeChannelId)&&(v=void 0);let y=(!r||r===n?K(e.accountId):void 0)??K(s?.accountId)??K(o?.accountId);return{channel:n,channelLabel:fn(n),kind:d,topicId:p,conversation:v,address:m,account:y==="default"?void 0:y}}function ex(){return(ex=e((()=>{Zd(),qt()})))()}function tx(e){let t=K(e.label),n=kn(e.key)?.rest.startsWith(`dashboard:`)?K(e.displayName)??(e.worktree?void 0:K(e.derivedTitle)):void 0;return t??n??``}function nx(e,t,n){let r=K(e)??null;return r===(K(t)??null)||r===(K(n)??null)?null:{label:r}}function rx(){return(rx=e((()=>{M()})))()}function ix(e,t,n,r=new Set,i=new Set,a=new Set){let o=new Set(t.map(e=>e.key)),s=new Set(n),c=new Set,l=[],u=[];for(let t of e){let e=er(t);if(!e)continue;let n=nr(e);c.has(n)||e.type===`route`&&!s.has(e.route)||e.type===`session`&&!o.has(e.key)&&r.has(e.key)||(c.add(n),u.push(n),(e.type===`route`||(e.type===`plugin`?i.has(e.key):o.has(e.key)))&&l.push(e))}let d=e=>{let t=nr(e);c.has(t)||(c.add(t),l.push(e),u.push(t))};for(let e of t)d({type:`session`,key:e.key});for(let e of a)i.has(e)&&d({type:`plugin`,key:e});return{entries:l,sidebarEntries:u}}function ax(){return(ax=e((()=>{Gn()})))()}function ox(e,t=Date.now()){let n=e.agentStatus;return n&&n.expiresAt>t&&n.note.trim()?n:void 0}function sx(e,t=Date.now()){if(e.archived)return{kind:`none`};let n=ox(e,t);if(n?.attention)return{kind:`agent`,note:n.note,icon:n.attention,sourceSessionKey:e.key};let r=e.endedAt??e.updatedAt??0;return e.status!==`failed`&&e.status!==`timeout`||e.lastReadAt!=null&&r<=e.lastReadAt?{kind:`none`}:{kind:`error`,reason:ft(e.lastRunError)||I(e.status===`timeout`?`sessionsView.runErrorTimedOut`:`sessionsView.runErrorUnknown`),sourceSessionKey:e.key}}function cx(){return(cx=e((()=>{O(),P()})))()}async function lx(e){if(e.initialResult===null)return[];let t=new Map,n,r=0;for(let i=0;i<ux;i+=1){let a=t.size,o=new Set,s=0,c=i===0?e.initialResult:void 0;for(;!o.has(s);){o.add(s);let i=c??await e.list(s);if(c=void 0,e.isCurrent&&!e.isCurrent())return null;if(!i)throw Error(e.missingResultError);let a=e.resultKind===`window`?e.windowPagination?.():void 0,l=a?.totalCount??i.totalCount;e.resultKind===`window`&&(t.clear(),n=l),typeof l==`number`&&(n=Math.max(n??0,l));let u=e.mapPageRows?.(i.sessions)??i.sessions;for(let e of u)t.set(e.key,e);if(r=a?.count??t.size,!(a?.hasMore??i.hasMore??(typeof i.totalCount==`number`&&s+i.sessions.length<i.totalCount)))break;let d=a?.nextOffset??i.nextOffset??(i.offset??s)+i.sessions.length;if(d<=s){if(e.stalledPaginationError)throw Error(e.stalledPaginationError);break}s=d}if(e.resultKind!==`window`&&t.size===a||n===void 0||r>=n)break}if(e.incompletePaginationError&&n!==void 0&&r<n)throw Error(e.incompletePaginationError);return[...t.values()]}var ux;function dx(){return(dx=e((()=>{ux=4})))()}function fx(e,t=mx){return{spawnedBy:e,limit:t,includeGlobal:!1,includeUnknown:!1,configuredAgentsOnly:!0}}async function px(e){let t=fx(e.parentKey),n,r=()=>{let r=e.sessions.listSnapshot(t);if(r.error)throw Error(r.error);return n=r.pagination,r.result};return e.initialResult&&await e.sessions.refreshList(t),lx({list:async n=>(await e.sessions.refreshList({...t,...n>0?{offset:n,append:!0}:{}}),r()),initialResult:e.initialResult?r():void 0,resultKind:`window`,windowPagination:()=>n,isCurrent:e.isCurrent,missingResultError:`child session list returned no result`,incompletePaginationError:`The child session list kept changing. Try again.`})}var mx;function hx(){return(hx=e((()=>{dx(),mx=100})))()}function gx(e){let t=e?.repository??e?.branch??e?.pullRequests[0];return t?{owner:t.owner,repo:t.repo}:null}function _x(e,t){let n=e.find(({state:e})=>e===`open`)??e.find(({state:e})=>e===`draft`)??e.find(({state:e})=>e===`merged`)??e[0];if(!n)return;let r=[...new Set(e.map(e=>e.number))].slice(0,20).toSorted((e,t)=>e-t);return t?.state===n.state&&t.numbers.join(`,`)===r.join(`,`)?t:{numbers:r,state:n.state}}function vx(e){if(!e||typeof e!=`object`||!(`sessions`in e))return null;let t=e.sessions;return J(t)}function yx(e){let t=Sx.get(e);if(t)return t;let n=new Map,r,i=[],a=new WeakMap,o=new Map,s=new Set,c=new Map,l=new Set,u=new Map,d=bt(e.snapshot),f=null,p=null,m=0,h=null,g=null,_=()=>oa(e.snapshot,bx,`operator.read`),v=()=>{g?.abort(),g=null},y=()=>Array.from(s).forEach(e=>e()),b=(e,t)=>{let n=c.get(e);if(n){c.delete(e);for(let e of n)e(t)}},x=()=>{let e=o.size>0;o.clear();for(let e of c.keys())b(e);e&&y()},S=(t,n,r)=>St({assistantAgentId:e.snapshot.assistantAgentId,hello:e.snapshot.hello,sessionKey:t},n,r),C=()=>{if(r)return r;let e=new Map;for(let t of n.values())for(let n of t.keys){let r=t.passive?0:t.foreground?2:1;e.set(n,Math.max(e.get(n)??0,r))}let t=[...e].toSorted(([e,t],[n,r])=>r-t||e.localeCompare(n)).slice(0,200);return r=t.map(([e])=>e),i=t.filter(([,e])=>e>0).map(([e])=>e),r},w=()=>(C(),i),ee=()=>{let e=new Set(C()),t=new Set(w());for(let[e,n]of u)t.has(e)||(clearTimeout(n),u.delete(e));for(let e of l)t.has(e)||l.delete(e);for(let e of c.keys())t.has(e)||b(e);for(let t of o.keys())e.has(t)||o.delete(t)},te=()=>n.size>0||s.size>0||c.size>0,T=e=>{for(let t of h?.keys??[])e.includes(t)&&l.add(t)},ne=()=>{T(C()),m+=1,v(),h=null,f=null,p=null,x()},E=ao(e,{sync:ie,onSnapshot:e=>{let t=d.transition(e);t&&ne(),(t||e.hello!==f)&&(re.reset(),E.schedule())},onEvent:e=>{if(e.event===`agent`||e.event===`session.tool`){let t=J(e.payload),n=J(t?.data);if(typeof t?.sessionKey!=`string`||!(t.stream===`tool`&&n?.phase===`result`||t.stream===`lifecycle`&&(n?.phase===`end`||n?.phase===`error`)))return;for(let e of w())S(e,t.sessionKey,typeof t.agentId==`string`?t.agentId:void 0)&&oe(e,{automatic:!0});return}if(e.event===`sessions.changed`){let t=ae(e.payload),n=J(e.payload)?.reason;if(!t||!xx.has(n))return;let r=C().filter(e=>S(e,t.key,t.agentId));if(r.length===0)return;let i=!1;for(let e of r)i=o.delete(e)||i,oe(e,{automatic:!0});i&&y();return}if(e.event!==`controlUi.sessionPullRequests.changed`)return;let t=vx(e.payload);if(!t)return;let n=new Set(C()),r=!1;for(let[e,i]of Object.entries(t)){if(!n.has(e))continue;let t=o.get(e),a=gx(i),s=gx(t),c=t?.branch?.branch??t?.pullRequests[0]?.branch,l=(!a||a.owner===s?.owner&&a.repo===s?.repo)&&(!i.branch||!c||i.branch.branch===c),u=i;t&&l&&(i.status===`rate-limited`||i.status===`unavailable`)&&i.pullRequests.length===0&&(u={...i,pullRequests:t.pullRequests,branch:i.branch??t.branch,repository:i.repository??t.repository}),o.set(e,u),r=!0,b(e,u)}r&&y()},onAttach:()=>{d.transition(e.snapshot)&&ne(),f=null,p=null},onDetach:()=>{m+=1,v(),h=null,f=null,p=null,o.clear();for(let e of u.values())clearTimeout(e);u.clear()}}),{retry:re}=E;function ie(){let t=e.snapshot,n=t.client;if(!_()||!n){T(C()),f=null,p=null,v(),x(),te()||E.detach();return}let r=w(),i=typeof document<`u`&&document.visibilityState===`hidden`?[]:r,a=JSON.stringify(i.toSorted());h!==null&&(a!==p||t.hello!==f)&&T(r);let o=new Set(i),s=[...l].filter(e=>o.has(e));if(t.hello===f&&a===p&&s.length===0){te()||E.detach();return}if(h!==null&&t.hello===f&&a===p)return;f=t.hello,p=a;let c=++m;v(),g=new AbortController;let u=()=>E.attached&&te()&&c===m&&t.hello===f&&a===p;re.cancel(),h={generation:c,keys:s};for(let e of s)l.delete(e);let d=n.request(bx,{sessionKeys:i,...s.length>0?{refreshSessionKeys:s}:{}},{timeoutMs:jl,signal:g.signal});te()||E.detach(),d.then(()=>{u()&&re.reset()}).catch(()=>{if(u()){for(let e of s)l.add(e);p=null,re.schedule(()=>{E.attached&&te()&&E.schedule()});for(let e of i)b(e)}}).finally(()=>{h?.generation===c&&(h=null,u()&&l.size>0&&E.schedule())})}let D=(e,t,i={})=>{let a=te(),o=new Set(t.map(e=>e.trim()).filter(Boolean)),s=n.get(e);(s===void 0?o.size===0:s.keys.size===o.size&&s.foreground===(i.foreground===!0)&&s.passive===(i.passive===!0)&&[...o].every(e=>s.keys.has(e)))||(o.size===0?n.delete(e):n.set(e,{keys:o,foreground:i.foreground===!0,passive:i.passive===!0}),r=void 0,re.reset(),ee(),te()?(a||(f=null,p=null),E.attach(),E.schedule()):E.attached&&E.sync())};function oe(e,t={}){let n=e.trim();return!n||!w().includes(n)?!1:(clearTimeout(u.get(n)),u.delete(n),t.automatic?u.set(n,setTimeout(()=>oe(n),5e3)):(l.add(n),re.reset(),E.schedule()),!0)}let se={watch:D,unwatch:e=>{a.delete(e),D(e,[])},load:async(e,t)=>{let r=t.trim();if(!r)return;let i={};a.set(e,i);let s=w().includes(r);D(e,[r],{foreground:!0});try{if(!_())return;let e=o.get(r);return e&&s?e:(e&&oe(r),await new Promise(e=>{let t=c.get(r)??new Set;t.add(e),c.set(r,t),E.schedule()}))}finally{let t=n.get(e);a.get(e)===i&&t?.keys.size===1&&t.keys.has(r)&&(a.delete(e),D(e,[]))}},refresh:oe,get:e=>_()?o.get(e):void 0,subscribe:e=>{let t=te();return s.add(e),t||(f=null,p=null),E.attach(),()=>{s.delete(e)&&(te()?E.schedule():E.attached&&E.sync())}}};return Sx.set(e,se),se}var bx,xx,Sx;function Cx(){return(Cx=e((()=>{dl(),El(),sa(),so(),_(),M(),bx=`controlUi.sessionPullRequests.subscribe`,xx=new Set([`new`,`reset`,`branch-switch`,`fork`,`rewind`]),Sx=new WeakMap})))()}var wx;function Tx(){return(Tx=e((()=>{wx=`https://discord.gg/clawd`})))()}function Ex(){return(Ex=e((()=>{})))()}function Dx(e,t,n,r,i=!1,a=!1){if(i||!r)return;let o=n.currentTarget;if(!o)return;let s=()=>{e.delete(o);try{Promise.resolve(r(t)).catch(()=>void 0)}catch{}};if(a){Ox(e,n),s();return}e.has(o)||e.set(o,globalThis.setTimeout(s,50))}function Ox(e,t){let n=t.currentTarget;if(!n)return;let r=e.get(n);r!==void 0&&(globalThis.clearTimeout(r),e.delete(n))}function kx(){return(kx=e((()=>{})))()}function Ax(e,t,n=()=>e.requestUpdate()){let r,i,a=!1,o=()=>{clearTimeout(r),r=void 0,i=void 0},s=()=>{let e=Date.now(),n=a&&document.visibilityState!==`hidden`?t().flatMap(t=>{let n=fy(t),r=n===void 0?void 0:n+xy;return r!==void 0&&r>e?[r]:[]}):[],s=n.length?Math.min(...n):void 0;s!==i&&(o(),s!==void 0&&(i=s,r=setTimeout(c,s-e)))},c=()=>{o(),n(),s()},l=()=>{document.visibilityState===`hidden`?o():c()};return e.addController({hostConnected(){a=!0,document.addEventListener(`visibilitychange`,l),c()},hostDisconnected(){a=!1,document.removeEventListener(`visibilitychange`,l),o()}}),{sync:s}}function jx(){return(jx=e((()=>{wy()})))()}function Mx(e,t,n){return[e.pluginId?t.pluginIconUrls[e.pluginId]:void 0,e.imageUrl?t.iconUrls[e.imageUrl]:void 0].find(e=>!(!e||n?.has(e)))??null}function Nx(e){let t=0;for(let n of e)t=t*31+(n.codePointAt(0)??0)>>>0;return ml(Fx[t%Fx.length],`plugin fallback gradient palette entry`)}function Px(e){let[t,n]=e.trim().split(/\s+/u).filter(Boolean);return t?(n?`${Qe(t,1)}${Qe(n,1)}`:Qe(t,2)).toLocaleUpperCase():``}var Fx;function Ix(){return(Ix=e((()=>{zl(),rt(),Fx=[[`#f59e0b`,`#ea580c`],[`#38bdf8`,`#1d4ed8`],[`#34d399`,`#047857`],[`#a855f7`,`#6b21a8`],[`#f472b6`,`#be185d`],[`#22d3ee`,`#0e7490`],[`#fbbf24`,`#b45309`],[`#818cf8`,`#4338ca`],[`#4ade80`,`#166534`],[`#fb7185`,`#9f1239`]]})))()}function Lx(){return(Lx=e((()=>{})))()}function Rx(e){if(!e)return`ltr`;for(let t of e){if(Bx.test(t))return`rtl`;if(Vx.test(t))return`ltr`;if(!Hx.test(t))return zx.test(t)?`rtl`:`ltr`}return`ltr`}var zx,Bx,Vx,Hx;function Ux(){return(Ux=e((()=>{zx=/\p{Script=Hebrew}|\p{Script=Arabic}|\p{Script=Syriac}|\p{Script=Thaana}|\p{Script=Nko}|\p{Script=Samaritan}|\p{Script=Mandaic}|\p{Script=Adlam}|\p{Script=Phoenician}|\p{Script=Lydian}/u,Bx=/[\u061C\u200F\u202B\u202E\u2067]/u,Vx=/[\u200E\u202A\u202D\u2066]/u,Hx=/[\s\p{P}\p{S}\p{Cf}]/u})))()}function Wx(e,t=!1){let n=e.colorSeed%360;return V`
    <span
      class="chat-author-avatar__initials ${t?`chat-author-avatar__fallback`:``}"
      style=${`--chat-author-avatar-hue: ${n}`}
      aria-hidden="true"
    >
      ${e.initials}
    </span>
  `}function Gx(e,t=`chat-author-avatar`,n){let r=Hs(e);if(!e||!r)return B;if(e.identity?.type===`agent`){let i=Ta(e);return V`<span class=${t} role="img" aria-label=${r} title=${r}>
      ${Fu({id:e.identity.id,avatar:n?.avatar??(i.kind===`profile`?i.url:null),textAvatar:n?.textAvatar})}
    </span>`}let i=Hd(e),a=i.imageUrl?V`
        ${Bu({view:i,fallbackSelector:`.chat-author-avatar`,className:`chat-author-avatar__image`,ariaHidden:!0})}${Wx(i.fallback,!0)}
      `:Wx(i.fallback);return V`<span
    class=${zu(`chat-author-avatar`,i)}
    role="img"
    aria-label=${r}
    title=${r}
  >
    ${a}
  </span>`}function Kx(e,t){return e&&!t?`footer`:`gutter`}function qx(e,t){let n=V`<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?V`<span class=${zu(`chat-avatar-slot`,e)}>
    ${Bu({view:e,fallbackSelector:`.chat-avatar-slot`,className:`chat-avatar user`,alt:t})}${n}
  </span>`:n}function Jx(){return(Jx=e((()=>{H(),ku(),no(),Oa()})))()}function Yx(e,t,n,r){let i=va(e);if(i===`user`&&r)return r.identity?.type===`agent`?Gx(r,`chat-avatar assistant`):qx(Hd(r),Hs(r)??``);if(i===`assistant`){let e=t?.name?.trim()||`Assistant`;return Xx(t?.agentId??`main`,e,t?.avatar,t?.textAvatar??en(t?.avatar))}let a=Tr(n),o=ir(n),s=Yn(n),c=i===`user`?V`
          <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>
        `:i===`tool`?V`
            <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>
          `:V`
            <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>
          `,l=i===`user`?`user`:i===`tool`?`tool`:`other`;if(i===`user`&&o){let e=Uc(o)??o;return qx({fallback:co({name:a}),imageUrl:e,sourceUrl:o.startsWith(`/`)?o:void 0,pending:typeof e!=`string`},a)}return i===`user`&&s?V`<div class="chat-avatar ${l}" role="img" aria-label="${a}">
      ${s}
    </div>`:V`<div class="chat-avatar ${l}">${c}</div>`}function Xx(e,t,n,r=en(n)){let i=n?.trim()||``,a=Fu({id:e,name:t,textAvatar:r},`chat-avatar assistant`);if(Wd(e)||!(i.startsWith(`blob:`)||yt(i)))return a;let o=Uc(i)??i,s={imageUrl:o,sourceUrl:i,pending:typeof o!=`string`};return V`<span class=${zu(`chat-avatar-slot`,s)}>
    ${Bu({view:s,fallbackSelector:`.chat-avatar-slot`,className:`chat-avatar assistant`,alt:t})}${a}${Mu(e)}
  </span>`}function Zx(e,t){if(e&&e===t.agentId)return Yx(`assistant`,{agentId:e,name:t.assistantName??`Assistant`,avatar:t.assistantAvatar??null,textAvatar:t.assistantTextAvatar});let n=e?t.agents?.find(t=>t.id===e):void 0;if(!n)return B;let r=n.identity?.name?.trim()||n.id,i=t.senderAgentAvatars?.get(n.id)??wt(n);return Xx(n.id,r,i,en(i)??Dt(n))}function Qx(e){let t=kn(e.sessionKey);return t?.agentId?t.agentId:b(e.sessionKey)?se(e)||`main`:Ge(e)?.defaultAgentId?.trim()||`main`}function $x(e){let t=(oS.get(e)??0)+1;return oS.set(e,t),t}function eS(e){let t=dS.get(e);t?.get(uS)?.(),t?.delete(uS),e.chatAvatarUrl=null,e.chatAvatarStatus=null,e.chatAvatarReason=null}function tS(e,t,n){let r=dS.get(e);r||(r=new Map,dS.set(e,r)),r.get(t)?.(),r.set(t,n)}function nS(e){$x(e);for(let t of dS.get(e)?.values()??[])t();dS.delete(e),sS.delete(e),cS.delete(e),lS.delete(e),e.senderAgentAvatars=void 0,eS(e)}async function rS(e,t){let n=e.client,r=e.connectionEpoch,i=Qx(e);if(!n||!e.connected)return null;let a=()=>void 0;try{let o=await ad(n,t);if(!o||!e.connected||e.client!==n||e.connectionEpoch!==r||Qx(e)!==i)return null;let s=o.avatar?.trim()??``,c=s.startsWith(`/`)?Uc(s):yt(s)?s:null;a=wo(c);let l=await c;return c!==null&&l===null?(a(),null):{release:a,status:o.avatarStatus??null,reason:o.avatarReason??null,url:l}}catch{return a(),null}}async function iS(e){if(!e)return;let t=[e.chatMessages,e.agentsList,e.sessionKey,e.assistantAgentId,e.connected,e.client,e.connectionEpoch],n=lS.get(e);if(n&&t.every((e,t)=>e===n[t]))return;lS.set(e,t);let r={};cS.set(e,r);let i=e.sessionKey,a=Qx(e),o=e.client,s=e.connectionEpoch,c=e.agentsList?.agents,l=new Set(c?.map(e=>e.id)),u=[];if(e.connected)for(let t of e.chatMessages){if(ko(t)!==`assistant`)continue;let e=Ba(cu(t)?.senderSession)?.agentId;if(e&&e!==a&&l.delete(e)&&(u.push(e),u.length===23))break}let d=e.senderAgentAvatars,f=u.length?await Promise.all(u.map(t=>rS(e,t))):[];if(u.length&&(!e.connected||e.client!==o||e.connectionEpoch!==s||e.agentsList?.agents!==c||e.sessionKey!==i||Qx(e)!==a||cS.get(e)!==r)){for(let e of f)e?.release();return}let p=dS.get(e);for(let[e,t]of p??[])e!==uS&&!u.includes(e)&&(t(),p?.delete(e));let m=new Map(u.map((t,n)=>{let r=f[n];return r&&tS(e,t,r.release),[t,r?r.url:d?.get(t)??null]}));(m.size!==(d?.size??0)||[...m].some(([e,t])=>d?.get(e)!==t))&&(e.senderAgentAvatars=m,e.requestUpdate?.())}async function aS(e){if(!e.connected){nS(e);return}let t=e.sessionKey,n=e.client,r=e.connectionEpoch,i=$x(e),a=Qx(e),o=sS.get(e)===a;o||eS(e);let s=await rS(e,a);if(!e.connected||e.client!==n||e.connectionEpoch!==r||oS.get(e)!==i||e.sessionKey!==t||Qx(e)!==a){s?.release();return}s?(tS(e,uS,s.release),e.chatAvatarStatus=s.status,e.chatAvatarReason=s.reason,e.chatAvatarUrl=s.url,sS.set(e,a)):o||eS(e)}var oS,sS,cS,lS,uS,dS;function fS(){return(fS=e((()=>{H(),Gd(),id(),Zn(),ku(),Vt(),vn(),eo(),no(),ba(),Oa(),M(),Jx(),oS=new WeakMap,sS=new WeakMap,cS=new WeakMap,lS=new WeakMap,uS=Symbol(`current-chat-avatar`),dS=new WeakMap})))()}function pS(e){if(e.name.trim().toLowerCase()!==`sessions_spawn`)return null;let t=J(e.args),n=K(J(e.details)?.childSessionKey)??K(gl(e.outputText??``)?.childSessionKey);return{label:K(t?.label),childKey:n,ownSession:t?.visible===!0||n!==void 0&&Mt(n)}}function mS(e){return new Set(e.flatMap(e=>e.callId&&pS(e)?.ownSession?[e.callId]:[]))}function hS(e){let t=pS(e);return t&&!t.ownSession?t.label:void 0}function gS(e){return(e.classification===`subagent`||Ce(e.key))&&!e.swarmGroupId?.trim()}function _S(e){return Zl(e)||e.hasActiveSubagentRun===!0}function vS(e){let{runtimeMs:t,startedAt:n,endedAt:r}=e;return typeof t==`number`&&Number.isFinite(t)&&t>=0?t:typeof n==`number`&&typeof r==`number`&&r>=n?r-n:null}function yS(e){return e.status===`failed`||e.status===`timeout`?`failed`:e.status===`killed`||e.status===`interrupted`?`stopped`:void 0}function bS(e,t){let n=pS(e);if(!n?.label||n.ownSession)return null;let{label:r,childKey:i}=n,a=i?t?.find(e=>xn(e.key,i)):void 0;if(!a)return{label:r};let o=_S(a),s=o?void 0:yS(a);return{label:r,session:{key:a.key,listed:gS(a),running:o,runtimeMs:o?null:vS(a),...s?{ended:s}:{}}}}function xS(e){if(!e||e.length===0)return``;let t=SS.get(e);return t===void 0&&(t=e.map(e=>{let t=_S(e);return JSON.stringify([e.key,gS(e),t,t?null:vS(e),t?null:yS(e)])}).toSorted().join(`
`),SS.set(e,t)),t}var SS;function CS(){return(CS=e((()=>{ol(),M(),SS=new WeakMap})))()}function wS(e){return{type:`tool_result`,id:e.callId,name:e.name,text:e.outputText??``,details:e.details,isError:e.isError,exitCode:e.exitCode,__openclaw:{id:e.resultMessageId,toolOutput:e.toolOutput,truncated:e.outputTruncated}}}function TS(e,t){let n=J(e.message);if(!n)return[];let r=n,i=Array.isArray(n.content)?n.content:[],a=e=>{let t=J(e)?.type;return Rn(t)||Nn(t)},o=i.filter(a),s=new Map;if(o.some(e=>!ph(J(e),n))){let e=[...ua(n)];if(i=i.flatMap(t=>{if(!a(t))return[t];let r=J(t),i=ph(r,n),o=Rn(r.type),c=e.findIndex(e=>o===Object.hasOwn(e,`args`)&&(!i||e.callId===i));if(c<0)return[];let l=e.splice(c,1)[0],u={id:l.callId,name:l.name,details:l.details},d=[...o?[{...r,...u,arguments:l.args}]:[],...!o||l.completed||l.outputText!==void 0?[wS(l)]:[]];return d.forEach(e=>s.set(e,l)),d}),n={...n,content:i},o=i.filter(e=>a(e)&&ph(J(e),n)),o.length===0)return[]}let c=o.length===0;if(c){let[e]=ua(n);if(!e?.callId)return[];o=[wS(e)],s.set(o[0],e)}let l={item:e,originalMessage:r,message:n,index:t,standalone:c,remaining:i.filter(e=>!o.includes(e)&&(!c||J(e)?.type!==`text`))};return o.map(e=>{let t=J(e),i=ph(t,n),a=Rn(t.type),o=n.__openclawToolStreamLive===!0,c=s.get(t)??_o(r,t)[0];return{source:l,id:i,call:a,runId:K(t.runId)??Ui(n)?.runId??K(n.runId),name:K(t.name)??K(n.toolName)??K(n.tool_name)??`tool`,rank:a?o?1:2:o?n.__openclawToolStreamResultReceived===!0?2:1:3,block:{...t,id:i,...a?{arguments:c?.args}:{text:c?.outputText,__openclaw:{id:c?.resultMessageId,toolOutput:c?.toolOutput,truncated:c?.outputTruncated}},...c?.details===void 0?{}:{details:c.details},...!a&&c?.isError!==void 0?{isError:c.isError}:{},...!a&&c?.exitCode!==void 0?{exitCode:c.exitCode}:{}}}})}function ES(e,t){if(!e)return t;let[n,r]=t.rank>=e.rank?[e,t]:[t,e],i=J(n.block.details),a=J(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 DS(e){let t=e.flatMap((e,t)=>e.kind===`message`?TS(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 ag(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,ng(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);let u=e.call?`call`:`result`;l[u]=ES(l[u],e),e.source.message.__openclawToolStreamLive===!0&&(l.live=e.source.message),e.source.standalone&&(l.result?.source===e.source&&(l.attachments=e.source.remaining),e.source.remaining=[]),a.set(c,l)}let s=new Map,c=new Map,l=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=J(n.__openclaw),o=zn(a?.transcriptPosition)?.activity?t.source.index:e.first,s=e.result,d=s!==void 0&&s.rank>1,f=e.live?.__openclawToolStreamItemEnded===!0,p=d||f,m=n.messageId??a?.id??s?.source.message.messageId??J(s?.source.message.__openclaw)?.id,h=[...e.call?[{...e.call.block,name:e.call.name}]:[],...s?[{...s.block,name:e.call?.name??s.name}]:[],...e.attachments],g=JSON.stringify([t.runId,!!e.live,p,d,f,m,e.live?.__openclawToolStreamDiffStat,e.live?.__openclawToolStreamReceivedAt,(i.get(r(t))?.size??0)>1?t.name:void 0]),_=`${t.source.index}:${g}`,v=[g,r(t),t.name,...e.projections.flatMap(({source:e})=>[e.originalMessage,...Array.isArray(e.originalMessage.content)?e.originalMessage.content:[e.originalMessage.content]])],y=c.get(_),b=new Map;for(let r of[n,e.live,s?.source.message]){let e=vc(r).filter(e=>(e.toolCallId??e.itemId)===t.id&&!e.suppressChannelProgress);r===s?.source.message&&Array.isArray(J(r)?.activity)&&e.length===0&&b.clear();for(let t of e){let e=b.get(t.itemId);(e?.phase!==`end`||e.unpairedCall||t.phase===`end`)&&b.set(t.itemId,t)}}if(y){y.inputs.push(...v),y.item.message.content.push(...h),y.item.message.activity=[...vc(y.item.message),...b.values()],y.index=Math.min(y.index,o);continue}let x={...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:h,activity:[...b.values()],...m?{messageId:m}:{},...e.live?{__openclawToolStreamLive:!0,__openclawToolStreamResultReceived:d,__openclawToolStreamItemEnded:f,__openclawToolStreamDiffStat:p?void 0:e.live.__openclawToolStreamDiffStat,__openclawToolStreamReceivedAt:e.live.__openclawToolStreamReceivedAt}:{}}};c.set(_,{item:x,index:o,inputs:v}),l.set(x,{owner:t.source.originalMessage,inputs:v})}for(let{item:e,index:t}of c.values()){let n=s.get(t)??[];n.push(e),s.set(t,n)}let d=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=J(r)??{},a=ph(i,n.message);for(let n of e){let e=n.blocks.filter(e=>{let t=J(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}),f=new Map;for(let[e,{owner:t,inputs:n}]of l){n.push(e.message.content.length);for(let t of e.message.content){let e=J(t);Rn(e?.type)||Nn(e?.type)?n.push(e?.type,e?.id,e?.name):n.push(t)}let r=kS.get(t)?.get(e.key);r?.inputs.length===n.length&&n.every((e,t)=>e===r.inputs[t])&&(e.message=r.message);let i=f.get(t)??new Map;i.set(e.key,{inputs:n,message:e.message}),f.set(t,i)}for(let[e,t]of f)kS.set(e,t);return d}function OS(e,t){let n=[],r=e=>{if(e.length===0)return;let t=[],r;for(let i of e){let a=i.kind===`message`?J(i.message):null;if(i.kind!==`message`||!a||a.__openclawToolStreamLive===!0){n.push(...DS(e));return}r??=a,t.push(i.kind,i.key,a,i.duplicateCount,i.startsTurn),t.push(a.content),Array.isArray(a.content)&&t.push(...a.content)}let i=AS.get(r),a=i?.inputs.length===t.length&&t.every((e,t)=>e===i.inputs[t])?i:{inputs:t,items:DS(e).map(e=>Object.assign({},e))};AS.set(r,a);for(let e of a.items)n.push({...e})},i=[];for(let a of e){let e=Qm(a)||a.kind===`divider`;if(e&&(r(i),i=[]),!t?.has(a.key)){if(e&&(a.kind!==`message`||va(ko(a.message))===`user`)){n.push(a);continue}i.push(a)}}return r(i),n}var kS,AS;function jS(){return(jS=e((()=>{Ji(),jn(),Fn(),eo(),Ts(),Bs(),Mh(),$m(),ug(),kS=new WeakMap,AS=new WeakMap})))()}function MS(e){try{let t=new URL(e,window.location.href);return(t.protocol===`http:`||t.protocol===`https:`)&&t.origin!==location.origin}catch{return!1}}function NS(e){let t=e.trim();if(!t)return;if(t.startsWith(`/`)&&!t.startsWith(`//`)&&!t.startsWith(`/\\`))return t;let n=URL.parse(t);return n&&IS.has(n.protocol)?t:void 0}function PS(e,t){let n=e.trim(),r=LS.exec(n),i=r?.[2];return i===void 0?NS(n):(!t||r?.[1]?.toLowerCase()===t)&&i.length%4==0?n:void 0}function FS(e){let t=e.trim(),n=/^data:text\/plain;base64,([a-z0-9+/]*={0,2})$/i.exec(t)?.[1];return n===void 0?NS(t):n.length%4==0?t:void 0}var IS,LS;function RS(){return(RS=e((()=>{IS=new Set([`http:`,`https:`,`blob:`]),LS=/^data:(audio|video)\/[a-z0-9!#$&^_.+-]+;base64,([a-z0-9+/]+={0,2})$/i})))()}function zS(e,t=0){if(e||t!==0)return JSON.stringify([t,e?.permissionMode,e?.permissionModePending,e?.execNode,e?.execCwd,e?.sessionRoot,e?.spawnedWorkspaceDir,e?.spawnedCwd,e?.worktree?.id])}function BS(e,t){return`${e}\0${t}`}function VS(e){let t=mC.get(e);return t||(t={resources:new Map,children:new Set},mC.set(e,t)),t}function HS(e,t){!t.owner&&t.children.size===0&&t.resources.size===0&&mC.delete(e)}function US(e,t){let n=mC.get(e);n&&(n.children.delete(t),HS(e,n))}function WS(e,t){if(e.subscribers.delete(t),e.subscribers.size>0)return;e.releaseAuthRecovery?.(),e.releaseAuthRecovery=void 0,ZS(e);let n=BS(e.kind,e.cacheKey);pC.get(n)===e&&(pC.delete(n),e.retainUntil!==void 0&&e.retainUntil>Date.now()&&!e.discardWhenIdle&&!e.pending&&(pC.set(n,e),qS(e=>e.retainUntil!==void 0&&e.subscribers.size===0))),e.abortController?.abort(),e.abortController=void 0}function GS(e,t){return pC.get(BS(e,t))}function KS(e,t,n,r=t,i){let a=BS(e,t),o=GS(e,t);o&&o.subscribers.size===0&&(o.discardWhenIdle||o.retainUntil!==void 0&&o.retainUntil<=Date.now())&&(pC.delete(a),o.abortController?.abort(),ZS(o),o=void 0),o||(o={kind:e,cacheKey:t,cacheScope:i,discardWhenIdle:!1,value:void 0,pending:void 0,subscribers:new Set,retryAttempted:!1,unavailableAt:void 0,abortController:void 0,refresh:void 0,retainUntil:void 0},pC.set(a,o));let s=!n||!o.subscribers.has(n);if(n){let t=VS(n).resources,i=BS(e,r),a=t.get(i);o.subscribers.add(n),a&&a!==o&&WS(a,n),t.set(i,o)}if(i!==void 0&&s)for(let[t,n]of pC)n!==o&&n.kind===e&&n.cacheScope===i&&(n.discardWhenIdle=!0,n.subscribers.size===0&&!n.pending&&pC.delete(t));return o}function qS(e){let t=[...pC.entries()].filter(([,t])=>e(t));for(let[e]of t.slice(0,-64))pC.delete(e)}function JS(e){return pC.get(BS(e.kind,e.cacheKey))===e}function YS(){return _C}function XS(e){if(JS(e)){_C=(_C+1)%(2**53-1);for(let t of Array.from(e.subscribers))e.subscribers.has(t)&&t()}}function ZS(e){e.refresh&&=(clearTimeout(e.refresh.timer),void 0)}function QS(e,t,n){if(e.refresh?.at===t||(ZS(e),t===void 0||e.subscribers.size===0))return;let r={at:t,timer:setTimeout(()=>{JS(e)&&e.refresh===r&&(e.refresh=void 0,n())},Math.max(0,t-Date.now()))};e.refresh=r}function $S(e,t){let n=VS(t);n.owner!==e&&(n.owner&&US(n.owner,t),VS(e).children.add(t),n.owner=e)}function eC(e){let t=e&&mC.get(e);if(e&&t){mC.delete(e);for(let e of t.children)eC(e);t.owner&&US(t.owner,e);for(let n of new Set(t.resources.values()))WS(n,e)}}function tC(){qS(e=>e.kind===`managed-image`&&e.value===null&&e.subscribers.size===0&&!e.pending)}function nC(e){let t=hC.get(e);if(t)return hC.delete(e),hC.set(e,t),t.url}function rC(e){return hC.get(e)?.blob}function iC(){for(;hC.size>gC;){let e=[...hC].find(([,e])=>e.retainCount===0);if(!e)return;let[t,n]=e;hC.delete(t);let r=BS(`managed-image`,t),i=pC.get(r);i?.value===n.url&&i.subscribers.size===0&&pC.delete(r),URL.revokeObjectURL(n.url)}}function aC(e){let t=hC.get(e);if(!t)return;t.retainCount+=1;let n=!1;return()=>{if(n)return;n=!0;let t=hC.get(e);t&&t.retainCount>0&&--t.retainCount,iC()}}function oC(e,t){let n=URL.createObjectURL(t),r=hC.get(e);return hC.delete(e),hC.set(e,{blob:t,url:n,retainCount:r?.retainCount??0}),r&&r.url!==n&&URL.revokeObjectURL(r.url),iC(),n}function sC(e,t){return!e.some(e=>t.factIndex===void 0?e.factIndex===void 0&&e.url===t.url&&e.artifactId===t.artifactId&&e.alt===t.alt:e.factIndex===t.factIndex)&&(e.push(t),!0)}function cC(e){let t=e.mimeType?.split(`;`,1)[0]?.trim().toLowerCase()??``,n=!t||t===`application/octet-stream`;if(e.kind===`image`||e.kind===`document`&&(Wf(e.url,t)||n&&Wf(e.label,void 0)))return t===`image/svg+xml`||n&&(Gf(e.url,void 0)||Gf(e.label,void 0))?`svg`:`raster`}function lC(e,t,n=Date.now()){let r=Fl(e),i=[],a=[],o=[],s=[],c=[],l=new Set,u=new Set,d=0,f,p=e=>e.type===`attachment_error`||!u.has(e.attachment.url)?(a.push(e),e.type===`attachment`&&u.add(e.attachment.url),!0):!1,m=e=>{if(e.url&&Gf(e.url,e.mimeType)&&MS(e.url))return{type:`attachment`,attachment:{url:e.url,kind:`image`,label:e.fileName?.trim()||e.alt?.trim()||Jf(e.url),mimeType:e.mimeType??`image/svg+xml`,...e.artifactId===void 0?{}:{artifactId:e.artifactId},...e.sizeBytes===void 0?{}:{sizeBytes:e.sizeBytes}}}},h=Fl(Fl(r.__openclaw).mediaImageLayout),g=Array.isArray(h.slots)?h.slots.map(Fl):[],_=g.length>0?new Set(g.map(e=>e.factIndex)):void 0,v=_!==void 0&&!(Array.isArray(h.suppressedFactIndexes)&&h.suppressedFactIndexes.length>0)&&g.every(e=>(e.kind===`inline`||e.kind===`offloaded`)&&typeof e.factIndex==`number`&&Number.isSafeInteger(e.factIndex)&&e.factIndex>=0)&&_.size===g.length,y=v?g.filter(e=>e.kind===`inline`):[],b=0;for(let e of t){if(e.type===`text`&&typeof e.text==`string`){let t=o.at(-1);t?.type===`text`?t.text+=`\n${e.text}`:o.push({type:`text`,text:e.text});continue}if(e.type===`attachment`||e.type===`attachment_error`){if(e.type===`attachment`&&(l.add(e.attachment.url),cC(e.attachment)===`raster`)){let t={...e.attachment,alt:e.attachment.label,fileName:e.attachment.label};i.push(t),o.push({type:`image`,image:t});continue}p(e),o.push(e);continue}if(e.type===`omitted_media`){b+=1;continue}if(e.type!==`image`)continue;if(e.expiresAtMs!==void 0){if(e.expiresAtMs<=n){d+=1;continue}f=Math.min(f??e.expiresAtMs,e.expiresAtMs)}let t=e.inlineSlot?y[b++]?.factIndex:void 0,r=[],a=new Set;for(let n of e.sources){let{url:e,dataUrl:i,preferData:s,mimeType:c,...u}=n;e!==void 0&&l.add(e);let d=m(n);d&&!a.has(d.attachment.url)&&(p(d),o.push(d),a.add(d.attachment.url));let f=s?i??(d?void 0:e):(d?void 0:e)??i;f===void 0?u.artifactId&&sC(r,{...u,artifactId:u.artifactId}):sC(r,{...u,url:f,...typeof t==`number`?{factIndex:t}:{}})}i.push(...r),o.push(...r.map(e=>({type:`image`,image:e})))}if(b!==y.length)for(let e of i)delete e.factIndex;for(let{path:t,mediaType:n,fileName:r,origin:a,sizeBytes:o,durationMs:u,width:d,height:f,factIndex:m}of vo(e)){if(!v&&l.has(t))continue;let e=cC({kind:`document`,url:t,label:r?.trim()||Jf(t),mimeType:n});if(e===`raster`){let e={url:t,fileName:r,sizeBytes:o,...v&&_.has(m)?{factIndex:m}:{}};sC(i,e)&&!l.has(t)&&s.push(e)}else{let i={type:`attachment`,attachment:{url:t,kind:e===`svg`?`image`:Kf(t,n)?`audio`:qf(t,n)?`video`:`document`,label:r?.trim()||Jf(t),...a?{origin:a}:{},...typeof n==`string`?{mimeType:n}:{},...o===void 0?{}:{sizeBytes:o},...u===void 0?{}:{durationMs:u},...d===void 0?{}:{width:d},...f===void 0?{}:{height:f}}};p(i)&&!l.has(t)&&c.push(i)}}return{images:i,attachments:a,orderedContent:o,supplementalImages:s,supplementalAttachments:c,expiredPairingQrCount:d,nextPairingQrExpiresAt:f}}function uC(e,t,n){if(!n)return;if(t===void 0){let t=mC.get(n),r=BS(`pairing-qr`,e),i=t?.resources.get(r);t&&i&&(t.resources.delete(r),WS(i,n),HS(n,t));return}let r=KS(`pairing-qr`,e,n);QS(r,t,()=>XS(r))}function dC(e){return e===void 0?I(`chat.attachments.omittedFromHistory`):I(`chat.attachments.omittedFromHistoryWithSize`,{size:pt(e)})}function fC(e,t=nl(e).content){let{images:n,attachments:r}=lC(e,t);return[...n.map(e=>e.fileName?.trim()||e.alt?.trim()||I(`chat.imageLightbox.untitled`)),...t.flatMap(e=>e.type===`omitted_media`?[`${I(`chat.attachments.image`)} · ${dC(e.media.sizeBytes)}`]:[]),...r.map(e=>e.attachment.label.trim()||I(`chat.attachments.attachedFile`))].join(`
`)}var pC,mC,hC,gC,_C;function vC(){return(vC=e((()=>{O(),Vt(),Yo(),eo(),$f(),RS(),pC=new Map,mC=new Map,hC=new Map,gC=64,_C=0})))()}function yC(e,t){let n=e.senderSession?.sessionKey,r=n?kn(n):null,i=/^cron:([^:]+):run:([^:]+)$/u.exec(r?.rest??``),a=Wm(e.messages?.[0]?.message),o=a?.jobId??i?.[1],s=a?.runId??i?.[2],c=!Ce(n)&&r&&!!t.agentId&&r.agentId!==t.agentId,l=t.linkSource!==!1&&r?n:void 0,u=r?t.agents?.find(e=>e.id===r.agentId)?.identity?.name?.trim()||r.agentId:void 0,d=!!(r&&t.mainKey&&r.rest===t.mainKey),f=e.senderSession?.label??(o?I(`chat.messages.forwardedAutomation`):d?u:void 0),p=!d&&c?u:void 0,m=c&&t.updateCount===void 0&&t.showAvatar!==!1?Zx(r.agentId,t):B,h=o&&s?V`<a
          class="markdown-session-link markdown-session-link--titled markdown-session-link--automation"
          role="link"
          tabindex="0"
          href=${`${Ur(`cron`,t.basePath)}?${new URLSearchParams({job:o,run:s})}`}
          data-cron-run-link
          ><span class="session-link-icon" aria-hidden="true">${z.clock}</span
          ><span class="session-label" .textContent=${f}></span
        ></a>`:V`<a
          class="markdown-session-link${f?` markdown-session-link--titled`:``}${c&&d?` markdown-session-link--agent`:``}"
          role="link"
          tabindex="0"
          data-session-key=${l}
          ><span class="session-label" .textContent=${f??l}></span
        ></a>`,g=t.updateCount===void 0?I(`chat.messages.forwardedFrom`):I(t.updateCount===1?`chat.messages.interSessionUpdateFrom`:`chat.messages.interSessionUpdatesFrom`,{count:String(t.updateCount)});return V`
    <span class="chat-reply-attribution chat-reply-attribution--forwarded">
      <span class="chat-reply-attribution__icon" aria-hidden="true">${z.forward}</span>
      ${l?V`<span>${g}</span>
              ${c?V`<span class="chat-reply-attribution__agent">
                        ${m===B?B:V`<span
                                class="chat-reply-attribution__agent-avatar"
                                aria-hidden="true"
                                >${m}</span
                              >`}
                        ${p?V`<span>${p}</span>`:h}
                      </span>
                      ${p?V`<span aria-hidden="true">·</span> ${h}`:B}`:h} `:n?V`<span>${g}</span>
                ${p?V`<span>${p} ·</span>`:B}
                <span
                  ?data-session-title-only=${!!r&&!o}
                  data-session-key=${r&&!o?n:B}
                  class=${f?`markdown-session-link--titled`:B}
                  ><span
                    class="session-label"
                    .textContent=${f??n}
                  ></span
                ></span>`:V`<span
                >${t.updateCount===void 0?B:I(t.updateCount===1?`chat.messages.interSessionUpdate`:`chat.messages.interSessionUpdates`,{count:String(t.updateCount)})}
                ${t.updateCount===void 0?B:` · `}${e.senderSession?.agentId?I(`chat.messages.forwardedFromAgent`,{agentId:e.senderSession.agentId}):I(`chat.messages.forwardedMessage`)}</span
              >`}
    </span>
  `}function bC(){return(bC=e((()=>{H(),br(),L(),O(),tl(),M(),fS(),$m(),_a()})))()}function xC(e,t){let[n=``,...r]=e.trim().split(/\s+/u),i=wC.get(n.toLowerCase()),a=TC.get(r.at(-1)?.toLowerCase()??``);if(a&&r.pop(),n.toLowerCase()===`macintel`&&(t===`Mac`||t===`iPad`))return{label:[t===`Mac`?`macOS`:`iPadOS`,...r].join(` `),architecture:a};let o=n===n.toLowerCase()?`${n.charAt(0).toUpperCase()}${n.slice(1)}`:n;return{label:[i?`macOS`:CC.get(n.toLowerCase())??o,...r].join(` `),architecture:i??a}}function SC(e,t){let{label:n,architecture:r}=xC(e,t);return r?`${n} (${r})`:n}var CC,wC,TC;function EC(){return(EC=e((()=>{CC=new Map([[`macos`,`macOS`],[`darwin`,`macOS`],[`win32`,`Windows`],[`win64`,`Windows`],[`windows`,`Windows`],[`linux`,`Linux`],[`freebsd`,`FreeBSD`],[`openbsd`,`OpenBSD`],[`netbsd`,`NetBSD`],[`ios`,`iOS`],[`ipados`,`iPadOS`],[`watchos`,`watchOS`],[`android`,`Android`],[`web`,`Web`]]),wC=new Map([[`macarm`,`ARM`],[`macarm64`,`ARM`],[`arm64-apple-darwin`,`ARM`],[`aarch64-apple-darwin`,`ARM`],[`x86_64-apple-darwin`,`Intel`]]),TC=new Map([[`arm`,`ARM`],[`arm64`,`ARM`],[`aarch64`,`ARM`],[`armv7l`,`ARM`],[`armv8l`,`ARM`],[`x64`,`x64`],[`x86_64`,`x64`],[`amd64`,`x64`],[`x86`,`x86`],[`i386`,`x86`],[`i686`,`x86`]])})))()}var DC=t({fetchPluginThemeArtworkBlobUrl:()=>PC});function OC(e){e.bodyUsed||e.body?.cancel().catch(()=>void 0)}async function kC(e,t,n=!1){if(!ar(e.gatewayUrl))return null;let r=e.authCandidates??Wn(e.auth),i=r.length>0?r:[``];for(let r of i){let i={Accept:`image/avif,image/webp,image/png,image/jpeg,image/gif,image/svg+xml`};r&&(i.Authorization=`Bearer ${r}`);let a=await fetch(t,{method:`GET`,headers:i,credentials:`same-origin`,signal:e.signal});if(!a.ok){if(OC(a),a.status===401||a.status===403)continue;return null}let o=a.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase()??``;if(!FC.has(o)||n&&o!==`image/svg+xml`)return OC(a),null;let s=await a.blob(),c=o===`image/svg+xml`?await $l(async()=>{let{rasterizeSvg:e}=await import(`./svg-icon-rasterizer-BvEJ94Ld.js`);return{rasterizeSvg:e}},__vite__mapDeps([9,0,5]),import.meta.url).then(({rasterizeSvg:e})=>e(s)):s;return c?URL.createObjectURL(c):null}return null}function AC(e){return kC(e,cl(`pluginIcon`,e.resourceBasePath,e.pluginId))}function jC(e){let t=cl(`pluginActivityIcon`,e.resourceBasePath,e.pluginId);return kC(e,e.tool?`${t}?tool=${encodeURIComponent(e.tool)}`:t,!0)}function MC(e){return kC(e,cl(`catalogIcon`,e.resourceBasePath,e.iconUrl))}function NC(e){return kC(e,cl(`linkFavicon`,e.resourceBasePath,e.hostname))}function PC(e){return $l(async()=>{let{loadPluginThemeArtwork:e}=await import(`./theme-artwork-loader-G8GOjpDY.js`);return{loadPluginThemeArtwork:e}},__vite__mapDeps([10,0,5]),import.meta.url).then(({loadPluginThemeArtwork:t})=>t(e))}var FC;function IC(){return(IC=e((()=>{Cl(),mr(),Yl(),FC=new Set([`image/png`,`image/svg+xml`,`image/x-icon`])})))()}function LC(e,t){let n=Vf(e),r=t?.split(`;`,1)[0]?.trim().toLowerCase(),i=(n?BC.find(e=>e.extensions.includes(n)):void 0)??(r?BC.find(e=>e.mimeTypes.includes(r)):void 0)??VC,a=n?i.compactByExtension?.[n]??i.compact:i.compact,o=(n?i.accentByExtension?.[n]:void 0)??(r?i.accentByMimeType?.[r]:void 0)??i.accent;return{family:i.family,accent:o,extensionLabel:n?.toUpperCase()??(i.family===`unknown`?`FILE`:i.family.toUpperCase()),compact:a}}function RC(e){return cr(`file-icons/${e}.svg`)}function zC(e){let t=LC(e.filename,e.mimeType),n=e.mode===`large-placeholder`,r=n?`44px`:`20px`,i=e=>RC(n?`large/shell-${e}`:t.compact?`compact/${e}/${t.compact}`:`compact/unknown-${e}`);return V`<span
    class="chat-attachment-file-icon ${e.unavailable?`chat-attachment-file-icon--unavailable`:``} ${e.loading?`skeleton`:``}"
    data-family=${t.family}
    data-mode=${e.mode}
    aria-hidden="true"
    style=${ti({width:r,height:r,"--chat-file-icon-light":`url("${i(`light`)}")`,"--chat-file-icon-dark":`url("${i(`dark`)}")`,"--chat-file-icon-overlay":`url("${RC(`overlays/${t.family}`)}")`,"--chat-file-icon-accent":t.accent})}
  >
    ${n?V`<span class="chat-attachment-file-icon__overlay"></span>`:null}
  </span>`}var BC,VC;function HC(){return(HC=e((()=>{H(),qr(),dr(),$f(),BC=[{family:`unknown`,accent:`#929292`,extensions:[],mimeTypes:[`application/octet-stream`]},{family:`pdf`,accent:`#E94B64`,extensions:[`pdf`],mimeTypes:[`application/pdf`],compact:`pdf`},{family:`document`,accent:`#5B7FD6`,extensions:[`doc`,`docx`,`rtf`,`odt`,`pages`],mimeTypes:[`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/rtf`,`text/rtf`,`application/vnd.oasis.opendocument.text`],compact:`docx`,compactByExtension:{rtf:`rtf`}},{family:`spreadsheet`,accent:`#3FA66B`,extensions:[`csv`,`xls`,`xlsx`,`ods`,`numbers`],mimeTypes:[`text/csv`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/vnd.oasis.opendocument.spreadsheet`],compact:`xlsx`,compactByExtension:{csv:`csv`}},{family:`image`,accent:`#3FA66B`,extensions:[`gif`,`jpg`,`jpeg`,`png`,`webp`,`avif`,`heic`],mimeTypes:[`image/gif`,`image/jpeg`,`image/png`,`image/webp`,`image/avif`,`image/heic`],compact:`png`,compactByExtension:{gif:`gif`,jpg:`jpg`,jpeg:`jpg`}},{family:`video`,accent:`#E94B64`,extensions:[`mp4`,`mov`,`m4v`,`webm`,`mkv`],mimeTypes:[`video/mp4`,`video/quicktime`,`video/webm`,`video/x-matroska`],compact:`mp4`},{family:`audio`,accent:`#E86672`,extensions:[`mp3`,`wav`,`m4a`,`aac`,`flac`,`ogg`],mimeTypes:[`audio/mpeg`,`audio/wav`,`audio/x-wav`,`audio/mp4`,`audio/aac`,`audio/flac`,`audio/ogg`],compact:`wav`,compactByExtension:{mp3:`mp3`}},{family:`archive`,accent:`#8B7CF6`,extensions:[`zip`,`rar`,`7z`,`tar`,`gz`,`tgz`,`bz2`],mimeTypes:[`application/zip`,`application/x-rar-compressed`,`application/x-7z-compressed`,`application/x-tar`,`application/gzip`],compact:`zip`},{family:`text`,accent:`#5B7FD6`,extensions:[`txt`,`log`],mimeTypes:[`text/plain`],compact:`txt`},{family:`markdown`,accent:`#5B7FD6`,extensions:[`md`,`mdx`,`markdown`],mimeTypes:[`text/markdown`,`text/x-markdown`],compact:`md`},{family:`code`,accent:`#E76F3C`,accentByExtension:{css:`#8B7CF6`},accentByMimeType:{"text/css":`#8B7CF6`},extensions:[`css`,`html`,`htm`,`xml`,`jsx`,`tsx`,`ts`,`sh`,`bash`,`zsh`],mimeTypes:[`text/css`,`text/html`,`application/xml`,`text/xml`,`application/typescript`,`text/x-shellscript`],compact:`html`,compactByExtension:{css:`css`,xml:`xml`}},{family:`javascript`,accent:`#F2A93B`,extensions:[`js`,`cjs`,`mjs`],mimeTypes:[`text/javascript`,`application/javascript`],compact:`js`},{family:`json`,accent:`#F2A93B`,extensions:[`json`,`jsonl`,`geojson`],mimeTypes:[`application/json`,`application/ld+json`,`application/x-ndjson`,`application/geo+json`],compact:`json`},{family:`python`,accent:`#F2A93B`,extensions:[`py`,`pyw`,`pyi`],mimeTypes:[`text/x-python`,`application/x-python-code`],compact:`py`},{family:`svg`,accent:`#E76F3C`,extensions:[`svg`,`svgz`],mimeTypes:[`image/svg+xml`],compact:`svg`},{family:`yaml`,accent:`#E86672`,extensions:[`yaml`,`yml`],mimeTypes:[`application/yaml`,`text/yaml`,`application/x-yaml`,`text/x-yaml`],compact:`yaml`}],VC=BC[0]})))()}function UC(e){return I(e===`file-not-found`?`chat.attachments.failureFileNotFound`:e===`unsupported-format`?`chat.attachments.failureUnsupportedFormat`:e===`invalid-reference`?`chat.attachments.failureInvalidReference`:`chat.attachments.failureDeliveryFailed`)}function WC(e){return e.length===0?B:V`${e.map(e=>GC({label:I(`chat.attachments.image`),badge:I(`chat.attachments.history`),reason:dC(e.media.sizeBytes)}))}`}function GC(e){let t=e.reason!==void 0,n=t&&(e.onRetry!==void 0||e.onAllow!==void 0);return V`
    <div
      class="chat-assistant-attachment-card chat-assistant-attachment-card--blocked ${t?n?`chat-assistant-attachment-card--recoverable`:`chat-assistant-attachment-card--definitive`:`chat-assistant-attachment-card--checking`}"
      aria-busy=${t?B:`true`}
    >
      <div class="chat-assistant-attachment-card__header">
        <div class="chat-assistant-attachment-card__identity">
          ${zC({filename:e.label,mimeType:e.mimeType,mode:`large-placeholder`,unavailable:t})}
          <span class="chat-assistant-attachment-card__details">
            <span
              class="chat-assistant-attachment-card__title ${t?`chat-assistant-attachment-card__title--unavailable`:``}"
              title=${e.path??e.label}
              tabindex=${e.path?`0`:B}
              >${e.label}</span
            >
            <span
              class="chat-assistant-attachment-card__meta chat-assistant-attachment-card__status-meta ${t?``:`skeleton skeleton-line`}"
              aria-hidden=${t?B:`true`}
            >
              <span class="chat-assistant-attachment-card__status-badge">${e.badge}</span>
              ${e.reason?V`
                      <span
                        class="chat-assistant-attachment-card__status-separator"
                        aria-hidden="true"
                        >·</span
                      >
                      <span class="chat-assistant-attachment-card__status-reason"
                        >${e.reason}</span
                      >
                    `:B}
            </span>
          </span>
        </div>
        ${e.onAllow?V`<button
                class="chat-assistant-attachment-card__action chat-assistant-attachment-card__action--labeled"
                type="button"
                @click=${e.onAllow}
              >
                ${I(`chat.attachments.allowImage`)}
              </button>`:e.onRetry?V`<button
                  class="chat-assistant-attachment-card__action chat-assistant-attachment-card__action--labeled chat-assistant-attachment-card__retry"
                  type="button"
                  @click=${e.onRetry}
                >
                  ${z.refresh} ${I(`common.retry`)}
                </button>`:t?B:V`<span
                    class="chat-assistant-attachment-card__actions chat-assistant-attachment-card__actions--loading"
                    aria-hidden="true"
                    data-label=${I(`chat.attachments.open`)}
                  >
                    <span
                      class="chat-assistant-attachment-card__action-skeleton skeleton"
                      aria-hidden="true"
                    ></span>
                  </span>`}
      </div>
    </div>
  `}function KC(){return(KC=e((()=>{H(),L(),O(),HC(),vC()})))()}function qC(e,t,n){return V`<div
    ${t?di(t):B}
    class="chat-assistant-attachment-card chat-assistant-attachment-card--compact"
    ?data-openable=${!!e.onExpand}
    @focusin=${n??B}
    @click=${t=>YC(t,e.onExpand)}
  >
    ${XC({...e,visualMode:`large-placeholder`})}
  </div>`}function JC(){return V`<div
    class="sidebar-attachment-preview__loading"
    role="status"
    aria-label=${I(`common.loading`)}
  >
    <div class="skeleton skeleton-line" aria-hidden="true"></div>
    <div class="skeleton skeleton-line skeleton-line--long" aria-hidden="true"></div>
    <div class="skeleton skeleton-line skeleton-line--medium" aria-hidden="true"></div>
  </div>`}function YC(e,t){if(t&&!e.defaultPrevented){for(let t of e.composedPath()){if(t===e.currentTarget)break;if(t instanceof Element&&t.matches(ZC))return}t()}}function XC(e){let t=e.loading?`skeleton`:``,n=e.visualMode===`preview-with-favicon`,r=e.sizeBytes===void 0?void 0:pt(e.sizeBytes),i=QC.get(e.kind),a=[i?I(i):LC(e.label,e.mimeType).extensionLabel,r].filter(Boolean).join(` · `),o=I(`chat.mediaPlayer.download`,{filename:e.label}),s=e.onExpand!==void 0,c=e.expandLabel??I(`chat.attachments.expand`,{filename:e.label}),l=`chat-assistant-attachment-card__action chat-assistant-attachment-card__download chat-assistant-attachment-card__download--ghost ${s?`chat-assistant-attachment-card__download--secondary`:``}`;return V`
    <div
      class="chat-assistant-attachment-card__header ${n?`chat-assistant-attachment-card__header--preview`:``}"
    >
      <div class="chat-assistant-attachment-card__identity">
        ${zC({filename:e.label,mimeType:e.mimeType,mode:e.visualMode??`large-placeholder`,loading:e.loading})}
        <span
          class="chat-assistant-attachment-card__details ${n?`chat-assistant-attachment-card__details--preview`:``}"
        >
          <span class="chat-assistant-attachment-card__title ${t}" title=${e.label}
            >${e.label}</span
          >
          ${n?r?V`<span class="chat-assistant-attachment-card__separator" aria-hidden="true"
                      >·</span
                    ><span class="chat-assistant-attachment-card__meta ${t}"
                      >${r}</span
                    >`:null:V`<span class="chat-assistant-attachment-card__meta">${a}</span>`}
        </span>
      </div>
      <span class="chat-assistant-attachment-card__actions">
        ${e.voiceNote&&!n?V`<span class="chat-assistant-attachment-badge"
                >${I(`chat.messages.voiceNote`)}</span
              >`:null}
        ${e.onDownload?V`<button
                type="button"
                class=${`${l} ${t}`}
                ?disabled=${e.downloadPending}
                aria-label=${o}
                title=${o}
                @click=${e.onDownload}
              >
                ${z.download}
              </button>`:e.downloadHref||e.downloadPending?V`<a
                  class=${`${l} ${t}`}
                  href=${e.downloadPending?B:e.downloadHref}
                  aria-disabled=${e.downloadPending?`true`:B}
                  tabindex=${e.downloadPending&&e.downloadPendingFocusable?0:B}
                  role="link"
                  download=${e.label}
                  target="_blank"
                  rel="noreferrer"
                  aria-label=${o}
                  title=${o}
                  >${z.download}</a
                >`:null}
        ${s?V`<button
                type="button"
                class="chat-assistant-attachment-card__action ${n?`chat-assistant-attachment-card__expand--icon`:`chat-assistant-attachment-card__action--labeled`} chat-assistant-attachment-card__expand"
                aria-label=${c}
                title=${c}
                @click=${e.onExpand}
              >
                ${n?z.chevronsUpDown:V`<span>${I(`chat.attachments.open`)}</span>`}
              </button>`:null}
      </span>
    </div>
  `}var ZC,QC;function $C(){return($C=e((()=>{H(),Jr(),L(),O(),tl(),Vt(),HC(),_a(),ZC=`a, button, input, select, textarea, audio, video, iframe, [contenteditable='true'], [tabindex], [role='button']`,QC=new Map([[`audio`,`chat.attachments.audio`],[`video`,`chat.attachments.video`],[`image`,`chat.attachments.attachedFile`]])})))()}function ew(e,t,n){if(typeof IntersectionObserver!=`function`)return t(),()=>void 0;let r=new IntersectionObserver(e=>{let i=e.at(-1);if(i){if(!(n?i.isIntersecting:e.some(e=>e.isIntersecting))){n?.();return}n||r.disconnect(),t()}},{rootMargin:tw});return r.observe(e),()=>r.disconnect()}var tw,nw;function rw(){return(rw=e((()=>{tw=`240px 0px`,nw=class{constructor(e){this.onVisible=e,this.element=null,this.setElement=e=>{let t=e instanceof HTMLElement?e:null;this.element!==t&&(this.disconnect(),this.element=t,t&&(this.stopObserving=ew(t,this.onVisible)))}}disconnect(){this.stopObserving?.(),this.stopObserving=void 0,this.element=null}}})))()}function iw(e,t){if(sw?.media===e){sw.onSuperseded=t;return}sw?.onSuperseded(),sw?.media.pause(),sw={media:e,onSuperseded:t}}function aw(e){sw?.media===e&&(sw=null)}function ow(e){return sw===null||sw.media===e}var sw;function cw(){return(cw=e((()=>{sw=null})))()}function lw(e){return e.durationSeconds!==void 0&&Number.isFinite(e.durationSeconds)&&e.durationSeconds>=0&&e.durationSeconds<=_w&&(e.sizeBytes===void 0||Number.isFinite(e.sizeBytes)&&e.sizeBytes>=0&&e.sizeBytes<=8388608)}function uw(e,t=vw){let n=Math.max(1,Math.floor(t));if(e.length<=0||e.numberOfChannels<=0)return Array.from({length:n},()=>0);let r=Array.from({length:e.numberOfChannels},(t,n)=>e.getChannelData(n)),i=Array.from({length:n},()=>0);for(let t=0;t<n;t+=1){let a=Math.floor(t*e.length/n),o=Math.max(a+1,Math.floor((t+1)*e.length/n)),s=0;for(let e of r)for(let t=a;t<Math.min(o,e.length);t+=1)s=Math.max(s,Math.abs(e[t]??0));i[t]=s}let a=Math.max(...i);return a>0?i.map(e=>e/a):i}function dw(e){if(e>xw)return!1;let t=()=>[...yw.values()].reduce((e,t)=>e+t.sizeBytes,0);for(;yw.size+1>bw||t()+e>xw;){let e=[...yw].find(([,e])=>e.retainCount===0);if(!e)return!1;let[t,n]=e;yw.delete(t),URL.revokeObjectURL(n.blobUrl)}return!0}function fw(e){e.retainCount+=1;let t=!1;return{value:e,release:()=>{t||(t=!0,--e.retainCount)}}}function pw(e){let t=yw.get(e);return t?(yw.delete(e),yw.set(e,t),fw(t)):null}function mw(e,t){let n=yw.get(e);if(n)return n.blobUrl!==t.blobUrl&&URL.revokeObjectURL(t.blobUrl),pw(e);if(!dw(t.sizeBytes))return URL.revokeObjectURL(t.blobUrl),null;let r={...t,retainCount:0};return yw.set(e,r),fw(r)}var hw,gw,_w,vw,yw,bw,xw;function Sw(){return(Sw=e((()=>{hw=8388608,gw=16e3,_w=300,vw=96,yw=new Map,bw=32,xw=50331648})))()}function Cw(e){return e.reason instanceof Error?e.reason:new DOMException(`playback preparation aborted`,`AbortError`)}function ww(e){let t=e.trim();if(!t)return t;let n=t.indexOf(`#`),r=n===-1?``:t.slice(n),i=n===-1?t:t.slice(0,n),a=i.indexOf(`?`),o=a===-1?i:i.slice(0,a),s=new URLSearchParams(a===-1?``:i.slice(a+1));return s.set(`playback`,`1`),`${o}?${s.toString()}${r}`}function Tw(e){let t=new Headers,n=e?.trim();return n&&t.set(`Authorization`,`Bearer ${n}`),t}async function Ew(e){let t=new AbortController;return await sl(()=>fetch(e.source,{method:`HEAD`,headers:e.headers,credentials:`same-origin`,signal:t.signal}),e.timeoutMs,()=>{let e=new DOMException(`playback readiness request timed out`,`TimeoutError`);throw t.abort(e),e},{signal:e.signal,onAbort:e=>{let n=Cw(e);throw t.abort(n),n}})}async function Dw(e){let t=Tw(e.authToken);t.set(`Accept`,`audio/*, video/*`);let n=Date.now()+Aw;for(let r=0;;r+=1){if(e.signal.aborted)return`aborted`;try{let i=n-Date.now();if(i<=0)return`unavailable`;let a=await Ew({source:e.source,headers:t,signal:e.signal,timeoutMs:Math.min(kw,i)});if(a.status!==202)return a.ok?`ready`:`unavailable`;let o=Ow[r];if(o===void 0)return`unavailable`;let s=n-Date.now();if(s<=0)return`unavailable`;await ul(Math.min(o,s),e.signal)}catch{return e.signal.aborted?`aborted`:`unavailable`}}}var Ow,kw,Aw;function jw(){return(jw=e((()=>{wl(),Ow=[2e3,4e3,8e3,16e3,3e4,3e4,2e4],kw=3e4,Aw=12e4})))()}function Mw(e){return Number.isFinite(e)&&e>0?e:0}function Nw(e){return Pw.some(t=>e.has(t))}var Pw,Fw;function Iw(){return(Iw=e((()=>{jw(),Pw=[`src`,`sourceIdentity`,`playback`,`authToken`],Fw=class{constructor(){this.appliedSource=``,this.appliedIdentity=``,this.pendingSource=``,this.pendingIdentity=``,this.restore=null,this.sourceFailed=!1,this.authorizationKey=``,this.readinessRequest=null,this.playbackSource=``,this.playbackReadiness=`idle`}get currentIdentity(){return this.appliedIdentity}get readySource(){return this.playbackSource}get readiness(){return this.playbackReadiness}sync(e,t,n,r,i){let a=t.trim(),o=n.trim(),s=i?.trim()??``;if(!a||!o)return null;let c=`${o}\0${s}`;this.authorizationKey&&c!==this.authorizationKey&&this.reset(e),this.authorizationKey=c;let l=r===`transcode`?ww(a):a;if(r!==`transcode`)return this.abortReadiness(),this.sourceFailed=!1,this.playbackReadiness=`ready`,this.playbackSource=l,this.updateSource(e,l,o),null;let u=[l,o,s].join(`\0`);if(u===this.readinessRequest?.key)return this.playbackSource===l&&this.updateSource(e,l,o),this.readinessRequest.promise;this.abortReadiness();let d=new AbortController,f=()=>this.appliedIdentity===o&&!this.sourceFailed;this.playbackSource=``,this.playbackReadiness=f()?`ready`:`preparing`;let p=Dw({source:l,authToken:s||null,signal:d.signal}).then(t=>{if(this.readinessRequest?.controller===d&&t!==`aborted`){if(t!==`ready`){f()?(this.playbackSource=this.appliedSource,this.playbackReadiness=`ready`):this.playbackReadiness=`unavailable`;return}this.playbackSource=l,this.playbackReadiness=`ready`,this.updateSource(e,l,o)}});return this.readinessRequest={key:u,controller:d,promise:p},p}cancel(){this.abortReadiness(),this.cancelPendingResume(),this.playbackSource=``,this.playbackReadiness=`idle`}updateSource(e,t,n){let r=t.trim(),i=n.trim();if(r&&i){if(this.playbackReadiness=`ready`,this.appliedIdentity&&i!==this.appliedIdentity){e.paused||e.pause(),this.applySource(e,r,i,null);return}if(!(r===this.pendingSource&&i===this.pendingIdentity||r===this.appliedSource&&i===this.appliedIdentity)){if(e.error){this.applySource(e,r,i,{currentTime:Mw(e.currentTime),paused:e.paused});return}if(!this.appliedSource||e.ended||e.paused&&Mw(e.currentTime)===0){this.applySource(e,r,i,null);return}this.pendingSource=r,this.pendingIdentity=i}}}handleEnded(e){return this.applyPendingSource(e,!1)}handleError(e){return this.applyPendingSource(e)?!0:(this.sourceFailed=!0,this.playbackSource=``,this.playbackReadiness=`unavailable`,!1)}applyPendingSource(e,t=!0){return this.pendingSource?(this.applySource(e,this.pendingSource,this.pendingIdentity,t?{currentTime:Mw(e.currentTime),paused:e.paused}:null),!0):!1}seek(e,t){let n=Math.max(0,Mw(t));try{return e.currentTime=n,!0}catch{return this.pendingSource?(this.applySource(e,this.pendingSource,this.pendingIdentity,{currentTime:n,paused:e.paused}),!0):!1}}cancelPendingResume(){this.restore&&!this.restore.paused&&(this.restore={...this.restore,paused:!0})}reset(e){e.paused||e.pause(),this.appliedSource=``,this.appliedIdentity=``,this.pendingSource=``,this.pendingIdentity=``,this.restore=null,this.sourceFailed=!1,this.playbackSource=``,e.removeAttribute(`src`),e.load()}handleLoadedMetadata(e,t=()=>!0){this.sourceFailed=!1;let n=this.restore;if(!n)return;this.restore=null;let r=Number.isFinite(e.duration)?e.duration:n.currentTime;e.currentTime=Math.min(n.currentTime,Math.max(0,r)),!n.paused&&e.isConnected&&t()&&e.play().catch(()=>void 0)}applySource(e,t,n,r){this.appliedSource=t,this.appliedIdentity=n,this.pendingSource=``,this.pendingIdentity=``,this.restore=r,this.sourceFailed=!1,e.src=t}abortReadiness(){this.readinessRequest?.controller.abort(),this.readinessRequest=null}}})))()}async function Lw(e,t,n={}){let r=e.headers.get(`Content-Length`),i=r===null?void 0:Number(r);if(!n.truncate&&i!==void 0&&Number.isFinite(i)&&i>t)return await e.body?.cancel().catch(()=>void 0),null;let a=e.body?.getReader();if(!a)return null;let o=[],s=0;try{if((await Si({maxBytes:t,stopAtLimit:n.truncate,skipEmptyChunks:!1,read:()=>a.read(),onChunk:e=>{o.push(e),s+=e.byteLength},onLimit:()=>a.cancel().catch(()=>void 0)})).truncated&&!n.truncate)return null}finally{a.releaseLock()}let c=new Uint8Array(s),l=0;for(let e of o)c.set(e,l),l+=e.byteLength;return c.buffer}function Rw(){return(Rw=e((()=>{zl()})))()}function zw(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}var Bw,Vw,Hw,Uw;function Ww(){return(Ww=e((()=>{H(),ri(),Jr(),qr(),L(),O(),Ee(),$C(),RS(),rw(),cw(),Sw(),jw(),Iw(),Rw(),Bw=5,Vw=3e4,Hw=1.2,Uw=class extends c{constructor(...e){super(...e),this.src=``,this.sourceIdentity=``,this.label=``,this.mimeType=``,this.playback=`native`,this.authToken=null,this.voiceNote=!1,this.currentTime=0,this.duration=0,this.buffered=0,this.playing=!1,this.muted=!1,this.waveformPeaks=null,this.waveformWidth=0,this.media=null,this.waveformElement=null,this.waveformResizeObserver=null,this.sourceController=new Fw,this.cancelPendingResume=()=>this.sourceController.cancelPendingResume(),this.playRequest=null,this.waveformController=null,this.waveformAttempted=!1,this.waveformVisible=!1,this.viewport=new nw(()=>{this.waveformVisible=!0,this.prepareWaveformAudio().catch(()=>void 0)}),this.setMedia=e=>{this.media=e instanceof HTMLAudioElement?e:null,this.media&&(this.media.muted=this.muted),this.syncSource()},this.setWaveform=e=>{let t=e instanceof HTMLElement?e:null;if(this.waveformElement!==t){if(this.waveformResizeObserver?.disconnect(),this.waveformResizeObserver=null,this.waveformElement=t,!t){this.waveformWidth=0;return}this.updateWaveformWidth(t.getBoundingClientRect().width),typeof ResizeObserver<`u`&&(this.waveformResizeObserver=new ResizeObserver(([e])=>{e&&this.waveformElement===e.target&&this.updateWaveformWidth(e.contentRect.width)}),this.waveformResizeObserver.observe(t))}}}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.syncSource())}disconnectedCallback(){this.viewport.disconnect(),this.sourceController.cancel(),this.releaseWaveformBlob?.(),this.releaseWaveformBlob=void 0,this.waveformController?.abort(),this.waveformController=null,this.waveformAttempted=!1,this.waveformResizeObserver?.disconnect(),this.waveformResizeObserver=null,this.waveformElement=null,this.media&&(this.media.paused||this.media.pause(),aw(this.media)),super.disconnectedCallback()}willUpdate(e){this.sourceController.readiness===`unavailable`&&Nw(e)&&(this.releaseWaveformBlob?.(),this.releaseWaveformBlob=void 0,this.sourceController.cancel())}updated(e){(Nw(e)||e.has(`sizeBytes`)||e.has(`serverDurationMs`))&&((e.has(`sourceIdentity`)&&this.sourceController.currentIdentity&&this.sourceController.currentIdentity!==this.sourceIdentity.trim()||e.has(`playback`)||e.has(`authToken`))&&(this.waveformController?.abort(),this.waveformController=null,this.releaseWaveformBlob?.(),this.releaseWaveformBlob=void 0,this.waveformPeaks=null,this.waveformAttempted=!1,this.currentTime=0,this.duration=0,this.buffered=0,this.media&&!this.media.paused&&(this.media.pause(),aw(this.media))),this.syncSource(),this.waveformVisible&&this.prepareWaveformAudio().catch(()=>void 0))}updateWaveformWidth(e){let t=Math.max(0,e);Math.abs(t-this.waveformWidth)>=.5&&(this.waveformWidth=t)}syncSource(){let e=this.media;if(!e||!this.isConnected||this.releaseWaveformBlob)return;let t=this.sourceController.sync(e,this.src,this.sourceIdentity,this.playback,this.authToken);this.requestUpdate(),t?.then(()=>{this.isConnected&&(this.requestUpdate(),this.waveformVisible&&this.prepareWaveformAudio().catch(()=>void 0))})}resolveWaveformCacheKey(){return[this.sourceIdentity.trim(),this.playback,this.src.trim(),this.authToken?.trim()??``].join(`\0`)}applyPreparedAudio(e,t){let n=this.media;if(!n||e!==this.resolveWaveformCacheKey()){t.release();return}this.releaseWaveformBlob?.(),this.releaseWaveformBlob=t.release,this.waveformPeaks=t.value.peaks?.length?t.value.peaks:null,t.value.durationSeconds!==void 0&&(this.duration=t.value.durationSeconds),this.sourceController.updateSource(n,t.value.blobUrl,this.sourceIdentity)}adoptPreparedAudioForPlayback(){let e=this.media;if(e){if(!this.releaseWaveformBlob){let e=this.resolveWaveformCacheKey(),t=pw(e);t&&this.applyPreparedAudio(e,t)}this.sourceController.applyPendingSource(e)}}async prepareWaveformAudio(){let e=this.media,t=this.sourceController.readySource;if(!e||!t||this.releaseWaveformBlob||this.waveformAttempted)return;let n=this.resolveWaveformCacheKey(),r=pw(n);if(r){this.applyPreparedAudio(n,r);return}let i=this.serverDurationMs===void 0?void 0:this.serverDurationMs/1e3;if(i===void 0||!lw({sizeBytes:this.sizeBytes,durationSeconds:i}))return;let a=globalThis.AudioContext;if(!a)return;this.waveformAttempted=!0;let o=Tw(this.authToken);o.set(`Accept`,`audio/*`);let s=new AbortController;this.waveformController=s;let c=setTimeout(()=>s.abort(new DOMException(`waveform fetch timed out`,`TimeoutError`)),Vw),l,u;try{if(l=await fetch(t,{method:`GET`,headers:o,credentials:`same-origin`,signal:s.signal}),!l.ok)return;let e=await Lw(l,hw);if(!e)return;u=e}finally{clearTimeout(c),this.waveformController===s&&(this.waveformController=null)}let d=new Blob([u],{type:l.headers.get(`Content-Type`)?.split(`;`,1)[0]?.trim()||`audio/mpeg`}),f=URL.createObjectURL(d),p,m;if(lw({sizeBytes:u.byteLength,durationSeconds:i})){let e=null;try{e=new a({sampleRate:gw});let t=await e.decodeAudioData(u.slice(0)),n=Number.isFinite(t.duration)?t.duration:void 0;n!==void 0&&n<=i*Hw&&(p=uw(t),m=n)}catch{}finally{await e?.close().catch(()=>void 0)}}if(!this.isConnected||n!==this.resolveWaveformCacheKey()){URL.revokeObjectURL(f);return}let h=mw(n,{blobUrl:f,sizeBytes:u.byteLength,...p?{peaks:p}:{},...m===void 0?{}:{durationSeconds:m}});h&&this.applyPreparedAudio(n,h)}togglePlayback(){let e=this.media;if(e&&this.sourceController.readiness===`ready`){if(e.paused){this.adoptPreparedAudioForPlayback(),iw(e,this.cancelPendingResume);let t=e.play(),n=()=>{aw(e),this.playing=!1};this.playRequest?t.catch(n):this.playRequest=t.then(()=>this.prepareWaveformAudio().catch(()=>void 0)).catch(n).finally(()=>{this.playRequest=null})}else e.pause()}}seekTo(e){let t=this.media;t&&this.sourceController.seek(t,Math.min(e,this.duration||e))&&(this.currentTime=t.currentTime)}toggleMuted(){this.muted=!this.muted,this.media&&(this.media.muted=this.muted)}handlePlayerKeydown(e){let t=e.target instanceof HTMLInputElement&&e.target.type===`range`;if(e.target===e.currentTarget||t){if(!t&&e.key===` `){e.preventDefault(),this.togglePlayback();return}if(e.key===`ArrowLeft`||e.key===`ArrowRight`||t&&(e.key===`ArrowDown`||e.key===`ArrowUp`)){e.preventDefault();let t=e.key===`ArrowLeft`||e.key===`ArrowDown`?-1:1;this.seekTo(this.currentTime+t*Bw)}}}updateBuffered(){let e=this.media;if(!e||!this.duration||e.buffered.length===0){this.buffered=0;return}this.buffered=Math.min(1,e.buffered.end(e.buffered.length-1)/this.duration)}renderSeek(e){let t=this.waveformPeaks,n=V`<input
      class=${t?`chat-audio-player__seek chat-audio-player__seek--waveform`:`chat-audio-player__seek`}
      type="range"
      min="0"
      max=${String(this.duration||0)}
      step="0.01"
      .value=${String(Math.min(this.currentTime,this.duration||this.currentTime))}
      aria-label=${I(`chat.mediaPlayer.seek`)}
      aria-valuetext=${`${zw(this.currentTime)} / ${zw(this.duration)}`}
      style=${ti({"--chat-audio-progress":`${e*100}%`,"--chat-audio-buffered":`${Math.max(e,this.buffered)*100}%`})}
      @input=${e=>this.seekTo(Number(e.currentTarget.value))}
    />`;if(!t)return n;let r=this.waveformWidth>0?Math.max(1,Math.min(t.length,Math.floor(this.waveformWidth/5))):t.length,i=Array.from({length:r},(e,n)=>{let i=Math.floor(n*t.length/r),a=Math.max(i+1,Math.floor((n+1)*t.length/r)),o=0;for(let e=i;e<a;e+=1)o+=t[e]??0;let s=o/Math.max(1,a-i);return Math.min(1,Math.max(0,s))});return V`<div class="chat-audio-player__waveform" ${di(this.setWaveform)}>
      <svg viewBox="0 0 ${r} 24" preserveAspectRatio="none" aria-hidden="true">
        ${i.map((t,n)=>{let i=this.voiceNote?6+t*8:Math.max(2,t*20);return ni`<rect
              class=${n/r<e?`is-played`:``}
              x=${String(n+.25)}
              y=${String((24-i)/2)}
              width="0.5"
              height=${String(i)}
              rx="0.25"
            ></rect>`})}
      </svg>
      ${n}
    </div>`}render(){let e=this.duration>0?Math.min(1,this.currentTime/this.duration):0,t=PS(this.src),n=this.sourceController.readiness===`unavailable`;if(n&&this.voiceNote)return V`<div
        class="chat-assistant-attachment-card chat-assistant-attachment-card--voice-note"
      >
        <div class="chat-audio-player" role="group" aria-label=${I(`chat.messages.voiceNote`)}>
          <span class="chat-assistant-attachment-card__reason" role="status"
            >${I(`chat.attachments.previewUnavailable`)}</span
          >
          ${t?V`<a class="chat-assistant-attachment-card__action" href=${t} download=${this.label} target="_blank" rel="noreferrer" aria-label=${I(`chat.mediaPlayer.download`,{filename:this.label})}>${z.download}</a>`:B}
        </div>
      </div>`;let r={kind:`audio`,label:this.label,mimeType:this.mimeType,sizeBytes:this.sizeBytes,downloadHref:t,onExpand:this.onExpand,voiceNote:this.voiceNote};if(n)return qC(r);let i=`${zw(this.currentTime)} / ${zw(this.duration)}`;return V`
      <div
        class="chat-assistant-attachment-card chat-assistant-attachment-card--audio ${this.voiceNote?`chat-assistant-attachment-card--voice-note`:``}"
        ${di(this.viewport.setElement)}
        ?data-openable=${!this.voiceNote&&!!this.onExpand}
        @click=${e=>YC(e,this.voiceNote?void 0:this.onExpand)}
      >
        ${this.voiceNote?B:XC({...r,visualMode:`preview-with-favicon`})}
        ${this.sourceController.readiness===`preparing`?V`<div class="chat-assistant-attachment-card__reason chat-media-preparing">
                ${I(`chat.mediaPlayer.preparing`)}
              </div>`:V`<div
                class="chat-audio-player"
                role="group"
                aria-label=${this.voiceNote?I(`chat.messages.voiceNote`):this.label}
                tabindex="0"
                @keydown=${e=>this.handlePlayerKeydown(e)}
              >
                <button
                  type="button"
                  class="chat-audio-player__toggle"
                  ?disabled=${this.playback===`transcode`&&this.sourceController.readiness!==`ready`}
                  aria-label=${I(this.playing?`chat.mediaPlayer.pause`:`chat.mediaPlayer.play`)}
                  @click=${()=>this.togglePlayback()}
                >
                  ${this.playing?z.pause:z.play}
                </button>
                <div class="chat-audio-player__time" aria-live="off">
                  <span>${i}</span>
                </div>
                <div class="chat-audio-player__timeline">${this.renderSeek(e)}</div>
                <button
                  type="button"
                  class="chat-audio-player__volume"
                  aria-label=${I(this.muted?`chat.mediaPlayer.unmute`:`chat.mediaPlayer.mute`)}
                  @click=${()=>this.toggleMuted()}
                >
                  ${this.muted?z.volumeX:z.volume2}
                </button>
              </div>`}
        <audio
          class="chat-audio-player__media"
          preload="metadata"
          ${di(this.setMedia)}
          @loadedmetadata=${()=>{this.media&&(this.sourceController.handleLoadedMetadata(this.media,()=>ow(this.media)),this.duration=Number.isFinite(this.media.duration)?this.media.duration:0,this.currentTime=this.media.currentTime,this.updateBuffered(),this.onMediaLoaded?.())}}
          @durationchange=${()=>{this.media&&(this.duration=Number.isFinite(this.media.duration)?this.media.duration:0)}}
          @timeupdate=${()=>{this.media&&(this.currentTime=this.media.currentTime,this.updateBuffered())}}
          @progress=${()=>this.updateBuffered()}
          @play=${()=>{this.media&&iw(this.media,this.cancelPendingResume),this.playing=!0}}
          @pause=${()=>{this.playing=!1}}
          @ended=${()=>{this.media&&(aw(this.media),this.sourceController.handleEnded(this.media)),this.playing=!1}}
          @error=${()=>{this.media&&!this.sourceController.handleError(this.media)&&(aw(this.media),this.playing=!1),this.requestUpdate()}}
        ></audio>
      </div>
    `}},q([U()],Uw.prototype,`src`,void 0),q([U()],Uw.prototype,`sourceIdentity`,void 0),q([U()],Uw.prototype,`label`,void 0),q([U()],Uw.prototype,`mimeType`,void 0),q([U()],Uw.prototype,`playback`,void 0),q([U()],Uw.prototype,`authToken`,void 0),q([U({type:Number})],Uw.prototype,`sizeBytes`,void 0),q([U({type:Number})],Uw.prototype,`serverDurationMs`,void 0),q([U({type:Boolean})],Uw.prototype,`voiceNote`,void 0),q([U({attribute:!1})],Uw.prototype,`onExpand`,void 0),q([U({attribute:!1})],Uw.prototype,`onMediaLoaded`,void 0),q([W()],Uw.prototype,`currentTime`,void 0),q([W()],Uw.prototype,`duration`,void 0),q([W()],Uw.prototype,`buffered`,void 0),q([W()],Uw.prototype,`playing`,void 0),q([W()],Uw.prototype,`muted`,void 0),q([W()],Uw.prototype,`waveformPeaks`,void 0),q([W()],Uw.prototype,`waveformWidth`,void 0),customElements.get(`openclaw-chat-audio-player`)||customElements.define(`openclaw-chat-audio-player`,Uw)})))()}var Gw,Kw,qw;function Jw(){return(Jw=e((()=>{H(),ri(),O(),Ee(),$C(),RS(),rw(),Rw(),Gw=262144,Kw=1e4,qw=class extends c{constructor(...e){super(...e),this.src=``,this.sourceIdentity=``,this.label=``,this.mimeType=`image/svg+xml`,this.downloadHref=``,this.failed=!1,this.loadVersion=0,this.handleImageError=()=>{this.retireSource(),this.showFallback()},this.handleOpen=()=>{let e=this.renderSource;if(!e||!this.onOpen)return;let t=this.retainSource(e);try{this.onOpen(e.url,t)}catch(e){throw t(),e}}}connectedCallback(){super.connectedCallback(),this.src.trim()&&!this.renderSource&&!this.failed&&this.observeViewport()}disconnectedCallback(){this.stopObservingViewport?.(),this.stopObservingViewport=void 0,this.releaseSource(),super.disconnectedCallback()}updated(e){(e.has(`src`)||e.has(`sourceIdentity`)||e.has(`sizeBytes`))&&(this.releaseSource(),this.failed=!1,this.observeViewport())}observeViewport(){this.stopObservingViewport?.();let e=this.parentElement??this;this.stopObservingViewport=ew(e,()=>{this.stopObservingViewport=void 0,this.loadSource()})}retireSource(){this.renderSource&&=(this.renderSource.retired=!0,this.renderSource.retainCount===0&&URL.revokeObjectURL(this.renderSource.url),void 0)}releaseSource(){this.loadVersion+=1,this.abortController?.abort(),this.abortController=void 0,this.retireSource()}retainSource(e){e.retainCount+=1;let t=!1;return()=>{t||(t=!0,e.retainCount=Math.max(0,e.retainCount-1),e.retired&&e.retainCount===0&&URL.revokeObjectURL(e.url))}}showFallback(){this.failed||(this.failed=!0,this.onMediaLoaded?.())}async loadSource(){let e=this.loadVersion;if(this.sizeBytes!==void 0&&this.sizeBytes>Gw){this.showFallback();return}if(MS(this.src)){this.showFallback();return}let t=new AbortController;this.abortController=t;let n;try{let r=await Promise.race([fetch(this.src,{credentials:`same-origin`,headers:{Accept:`image/svg+xml`},method:`GET`,signal:t.signal}),new Promise((e,r)=>{n=setTimeout(()=>{t.abort(),r(new DOMException(`SVG attachment fetch timed out`,`TimeoutError`))},Kw)})]);if(!r.ok)throw await r.body?.cancel().catch(()=>void 0),Error(`SVG attachment is unavailable`);let i=await Lw(r,Gw);if(!i)throw Error(`SVG attachment exceeds the preview budget`);let a=URL.createObjectURL(new Blob([i],{type:`image/svg+xml`}));if(e!==this.loadVersion||!this.isConnected){URL.revokeObjectURL(a);return}this.renderSource={url:a,retainCount:0,retired:!1}}catch{e===this.loadVersion&&this.showFallback()}finally{clearTimeout(n),this.abortController===t&&(this.abortController=void 0)}}render(){if(this.failed)return qC({kind:`document`,label:this.label,mimeType:this.mimeType,sizeBytes:this.sizeBytes,downloadHref:this.downloadHref,onExpand:this.onExpand});let e=this.renderSource;return e?V`<button
      type="button"
      class="chat-message-image-button"
      aria-label=${I(`chat.imageLightbox.open`,{title:this.label})}
      @click=${this.handleOpen}
    >
      <img
        src=${e.url}
        alt=${this.label}
        class="chat-message-image"
        @load=${this.onMediaLoaded}
        @error=${this.handleImageError}
      />
    </button>`:B}},q([U()],qw.prototype,`src`,void 0),q([U()],qw.prototype,`sourceIdentity`,void 0),q([U()],qw.prototype,`label`,void 0),q([U()],qw.prototype,`mimeType`,void 0),q([U({type:Number})],qw.prototype,`sizeBytes`,void 0),q([U()],qw.prototype,`downloadHref`,void 0),q([U({attribute:!1})],qw.prototype,`onOpen`,void 0),q([U({attribute:!1})],qw.prototype,`onExpand`,void 0),q([U({attribute:!1})],qw.prototype,`onMediaLoaded`,void 0),q([W()],qw.prototype,`renderSource`,void 0),q([W()],qw.prototype,`failed`,void 0),customElements.get(`openclaw-chat-svg-attachment`)||customElements.define(`openclaw-chat-svg-attachment`,qw)})))()}var Yw;function Xw(){return(Xw=e((()=>{H(),ri(),Jr(),qr(),L(),O(),Ee(),$C(),RS(),rw(),Iw(),Yw=class extends c{constructor(...e){super(...e),this.src=``,this.preview=!1,this.sourceIdentity=``,this.label=``,this.mimeType=``,this.playback=`native`,this.authToken=null,this.frameReady=!1,this.media=null,this.mediaVisible=!1,this.viewport=new nw(()=>{this.mediaVisible=!0,this.syncSource()}),this.sourceController=new Fw,this.setMedia=e=>{this.frameReady=!1,this.media=e instanceof HTMLVideoElement?e:null,this.syncSource()},this.expand=()=>{let e=this.sourceController.readySource;e&&(this.media?.pause(),this.querySelector(`.chat-assistant-attachment-card__expand`)?.focus({preventScroll:!0}),this.onExpand?.(e))}}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.syncSource())}disconnectedCallback(){this.viewport.disconnect(),this.sourceController.cancel(),this.media&&this.sourceController.reset(this.media),super.disconnectedCallback()}willUpdate(e){e.has(`src`)&&!this.src&&this.media&&(this.sourceController.cancel(),this.sourceController.reset(this.media)),this.sourceController.readiness===`unavailable`&&Nw(e)&&this.sourceController.cancel()}updated(e){Nw(e)&&this.syncSource()}syncSource(){let e=this.media;if(!e||!this.isConnected||!this.mediaVisible)return;let t=this.sourceController.sync(e,this.src,this.sourceIdentity,this.playback,this.authToken);this.requestUpdate(),t?.then(()=>{this.isConnected&&this.requestUpdate()})}adoptPendingSource(){return!this.media||!this.sourceController.applyPendingSource(this.media)?!1:(this.requestUpdate(),!0)}render(){let e=PS(this.src),t=this.sourceController.readiness===`preparing`&&!this.preview,n={kind:`video`,label:this.label,mimeType:this.mimeType,sizeBytes:this.sizeBytes,downloadHref:e};if(this.sourceController.readiness===`unavailable`)return qC({...n,onExpand:this.onFallbackExpand});let r=this.preview&&!this.frameReady,i=this.onExpand&&this.sourceController.readySource?this.expand:void 0,a=this.mediaWidth&&this.mediaHeight?{"aspect-ratio":`${this.mediaWidth} / ${this.mediaHeight}`}:this.preview?{"aspect-ratio":`16 / 9`}:{};return V`
      <div
        class="chat-assistant-attachment-card chat-assistant-attachment-card--video ${r?`chat-assistant-attachment-card--loading`:``}"
        aria-busy=${r?`true`:B}
        ${di(this.viewport.setElement)}
        ?data-openable=${!!i}
        @click=${e=>YC(e,i)}
      >
        ${XC({...n,downloadPending:this.preview&&!e,loading:r,expandLabel:I(`chat.mediaPlayer.openVideo`,{filename:this.label}),onExpand:i,visualMode:`preview-with-favicon`})}
        ${t?V`<div class="chat-assistant-attachment-card__reason chat-media-preparing">
                ${I(`chat.mediaPlayer.preparing`)}
              </div>`:null}
        <div class="chat-assistant-video-frame" ?hidden=${t}>
          ${r?V`<div
                  class="chat-video-skeleton"
                  role="status"
                  aria-label=${I(`common.loading`)}
                >
                  <div class="chat-video-skeleton__controls" aria-hidden="true">
                    ${z.play}<span>0:00<span>/ 0:00</span></span>
                    ${z.volume2}${z.maximize}${z.moreHorizontal}
                  </div>
                  <div class="chat-video-skeleton__timeline skeleton" aria-hidden="true"></div>
                </div>`:B}
          <video
            controls
            aria-label=${this.label.trim()||I(`chat.attachments.video`)}
            preload=${this.preview?`auto`:`metadata`}
            style=${ti(a)}
            ${di(this.setMedia)}
            @loadeddata=${()=>{this.frameReady=!0}}
            @playing=${()=>{this.frameReady=!0}}
            @emptied=${()=>{this.frameReady=!1}}
            @loadedmetadata=${()=>{this.media&&(this.sourceController.handleLoadedMetadata(this.media),this.onMediaLoaded?.())}}
            @ended=${()=>{this.media&&this.sourceController.handleEnded(this.media)&&this.requestUpdate()}}
            @play=${()=>this.adoptPendingSource()}
            @seeking=${()=>{!this.adoptPendingSource()&&this.media?.error&&this.sourceController.handleError(this.media)&&this.requestUpdate()}}
            @error=${()=>{this.media&&(this.sourceController.handleError(this.media),this.requestUpdate())}}
          ></video>
        </div>
      </div>
    `}},q([U()],Yw.prototype,`src`,void 0),q([U({type:Boolean})],Yw.prototype,`preview`,void 0),q([U()],Yw.prototype,`sourceIdentity`,void 0),q([U()],Yw.prototype,`label`,void 0),q([U()],Yw.prototype,`mimeType`,void 0),q([U()],Yw.prototype,`playback`,void 0),q([U()],Yw.prototype,`authToken`,void 0),q([U({type:Number})],Yw.prototype,`sizeBytes`,void 0),q([U({type:Number})],Yw.prototype,`mediaWidth`,void 0),q([U({type:Number})],Yw.prototype,`mediaHeight`,void 0),q([U({attribute:!1})],Yw.prototype,`onExpand`,void 0),q([U({attribute:!1})],Yw.prototype,`onFallbackExpand`,void 0),q([U({attribute:!1})],Yw.prototype,`onMediaLoaded`,void 0),q([W()],Yw.prototype,`frameReady`,void 0),customElements.get(`openclaw-chat-video-player`)||customElements.define(`openclaw-chat-video-player`,Yw)})))()}function Zw(e){let t=e.trim();return/^\/(?:__openclaw__|media|api\/chat\/media\/outgoing)\//.test(t)?!1:Qw(t)||/^file:/iu.test(t)||t.startsWith(`~`)||t.startsWith(`/`)||/^[a-zA-Z]:[\\/]/.test(t)||!!t&&!/^[a-z][a-z0-9+.-]*:/iu.test(t)}function Qw(e){let t=/^media:\/\/inbound\/([^/?#]+)$/i.exec(e.trim());if(!t?.[1])return!1;try{let e=decodeURIComponent(t[1]);return e!==`.`&&e!==`..`&&!e.includes(`/`)&&!e.includes(`\\`)&&!e.includes(`\0`)}catch{return!1}}function $w(e,t,n,r,i){return Zw(e)?Cd(e,t,n,r,i):e}function eT(e,t){if(!e.startsWith(`/`)||e.startsWith(`//`))return e;try{let n=new URL(e,window.location.origin),r=vl(t??``);return`${r&&n.pathname!==r&&!n.pathname.startsWith(`${r}/`)?`${r}${n.pathname}`:n.pathname}${n.search}${n.hash}`}catch{return e}}function tT(){return(tT=e((()=>{br(),hd()})))()}function nT(e,t={},n=!1){if(!Zw(e))return{status:`available`};let r=dT(e,t),i=r.value,a=null;if(i){let e=Date.now();if(i.status===`unavailable`&&i.recoverable&&!i.retryAttempted&&e-i.checkedAt>=5e3)r.retryAttempted=!0,r.value=void 0;else if(i.status===`available`&&i.mediaTicket&&i.mediaTicketExpiresAt!==void 0&&i.mediaTicketExpiresAt<=e){let e=oT(`Attachment unavailable`,r.retryAttempted,{unconfirmed:!0});return fT(r,e),e}else if(i.status===`available`&&i.mediaTicket&&(i.refreshAfter===void 0?!i.mediaTicketExpiresAt||i.mediaTicketExpiresAt-e<=3e4:i.refreshAfter<=e)){if(r.pending)return i;a=i}else return pT(r,i),i}a||fT(r,{status:`checking`});let o=()=>{if(!a)return null;let e=Date.now(),t=a.mediaTicketExpiresAt,n=a.refreshAttempts??0;return t===void 0||t<=e||n>=2?null:{...a,refreshAfter:Math.min(e+gT,t),refreshAttempts:n+1}};if(typeof fetch==`function`){let i=Tw(t.authToken);i.set(`Accept`,`application/json`);let s=new AbortController;r.abortController=s;let c=setTimeout(()=>s.abort(new DOMException(`assistant attachment metadata fetch timed out`,`TimeoutError`)),_T),l=$w(e,t.resourceBasePath,a?.mediaTicket,t),u=Ar(`${l}&meta=1${n?`&allow=1`:``}`,{method:n?`POST`:`GET`,headers:i,credentials:`same-origin`,signal:s.signal}).then(async e=>{if(e.status===408||e.status===429||e.status>=500)throw Error(`Attachment metadata temporarily unavailable`);if(!e.ok)return oT(I(`chat.attachments.unavailable`),r.retryAttempted);let t=await e.json();if(t?.available===!1)return oT(t.code===`outside-allowed-folders`?I(`chat.attachments.outsideAllowedFolders`):ft(t.reason,I(`chat.attachments.unavailable`)),r.retryAttempted,{recoverable:t.retryable!==!1,canAllow:t.canAllow===!0});if(t?.available===!0){let e=t.mediaTicket?.trim(),n=Date.parse(t.mediaTicketExpiresAt??``);if(e&&!Number.isFinite(n))throw Error(`Attachment metadata has an invalid ticket expiry`);return{status:`available`,...e?{mediaTicket:e,mediaTicketExpiresAt:n}:{},...t.playback===`native`||t.playback===`transcode`?{playback:t.playback}:{},...typeof t.sizeBytes==`number`?{sizeBytes:t.sizeBytes}:{},...typeof t.durationMs==`number`?{durationMs:t.durationMs}:{},...typeof t.width==`number`?{width:t.width}:{},...typeof t.height==`number`?{height:t.height}:{}}}throw Error(`Attachment metadata has no availability result`)}).catch(()=>o()??oT(I(`chat.attachments.unavailable`),r.retryAttempted,{unconfirmed:!0})).then(e=>(r.pending===u&&JS(r)&&(e.status===`available`&&(r.retryAttempted=!1),fT(r,e)),e)).finally(()=>{clearTimeout(c),r.pending===u&&(r.abortController=void 0,r.pending=void 0,XS(r))});r.pending=u}return a??{status:`checking`}}async function rT(e,t={}){let n=nT(e,t);if(n.status!==`checking`)return n;let r=dT(e,t);return await r.pending,JS(r)?r.value??null:null}function iT(e,t={},n=!1){if(!Zw(e)){t.onRequestUpdate?.();return}let r=dT(e,t);aT(r),n&&nT(e,t,!0),XS(r),t.onRequestUpdate?.()}function aT(e){e.abortController?.abort(),e.abortController=void 0,e.pending=void 0,e.value=void 0,e.retainUntil=void 0,e.retryAttempted=!1,ZS(e)}function oT(e,t,n={}){return{status:`unavailable`,reason:e,checkedAt:Date.now(),recoverable:n.recoverable!==!1,...n.unconfirmed?{unconfirmed:!0}:{},...t?{retryAttempted:!0}:{},...n.canAllow?{canAllow:!0}:{}}}function sT(e,t){return JSON.stringify([t.connectionEpoch??0,t.resourceBasePath??``,t.authToken?.trim()??``,t.sessionKey,t.agentId,e])}function cT(e,t){let n=GS(`assistant-attachment`,JSON.stringify([sT(e,t),t.policyKey]));return n&&!n.discardWhenIdle&&n.value?.status===`available`&&n.retainUntil!==void 0&&n.retainUntil>Date.now()?n:void 0}function lT(e,t={}){let n=cT(e,t),r=n?.retainedImage;return n&&(n.retainedImage=void 0),r}function uT(e,t,n={},r){let i=cT(e,n),a=i?.value;i&&a?.status===`available`&&t.complete&&t.naturalWidth>0&&t.getAttribute(`src`)===$w(e,n.resourceBasePath,a.mediaTicket,n,r)&&(i.retainedImage=t)}function dT(e,t){let n=sT(e,t),r=KS(`assistant-attachment`,JSON.stringify([n,t.policyKey]),t.onRequestUpdate,e,n);return r.subscribers.size>0&&!r.releaseAuthRecovery&&(r.releaseAuthRecovery=Sr(()=>{JS(r)&&r.value?.status===`unavailable`&&(aT(r),XS(r))})),r}function fT(e,t){JS(e)&&(e.value=t,e.retainedImage=void 0,e.retainUntil=t.status===`available`?t.mediaTicketExpiresAt??1/0:void 0,pT(e,t))}function pT(e,t){QS(e,t.status===`unavailable`&&t.recoverable&&!t.retryAttempted?t.checkedAt+gT:t.status===`available`&&t.mediaTicket&&t.mediaTicketExpiresAt?t.refreshAfter??t.mediaTicketExpiresAt-3e4:void 0,()=>{e.value===t&&XS(e)})}function mT(e){try{let t=new URL(e,window.location.origin);return t.origin===window.location.origin&&t.pathname.startsWith(`/api/chat/media/outgoing/`)}catch{return!1}}function hT(e){try{let t=new URL(e,window.location.origin).pathname.split(`/`)[5];return t?decodeURIComponent(t):null}catch{return null}}var gT,_T;function vT(){return(vT=e((()=>{Ir(),O(),P(),jw(),tT(),vC(),gT=5e3,_T=3e4})))()}function yT(e){return Zw(e.url)||mT(e.url)}function bT(e,t){let{attachment:n}=e;return yT(n)&&cC(n)!==`svg`&&(t!==`inline`||n.kind!==`audio`&&n.kind!==`video`)&&(t!==`preview`||n.kind!==`video`)}var xT,ST;function CT(){return(CT=e((()=>{H(),_i(),ai(),rw(),vT(),tT(),vC(),xT=class extends Kr{constructor(...e){super(...e),this.key=``,this.generation=0,this.admitted=!1,this.admit=()=>{this.isConnected&&!this.admitted&&(this.admitted=!0,this.stopObserving?.(),this.stopObserving=void 0,this.refresh())},this.observeElement=e=>{if(this.stopObserving?.(),this.stopObserving=void 0,!e||!this.isConnected||this.admitted)return;let t=this.generation;this.stopObserving=ew(e,()=>{t===this.generation&&this.admit()})},this.refresh=()=>{this.isConnected&&this.input&&this.setValue(this.render(this.input))}}render(e){let{attachments:t,options:n}=e,r=JSON.stringify([t.map(e=>[e.url,e.artifactId]),n.sessionKey,n.agentId,n.connectionEpoch,n.resourceBasePath,n.authToken,n.policyKey]);return r!==this.key&&(this.generation++,this.stopObserving?.(),this.stopObserving=void 0,this.admitted=!1),this.key=r,this.input=e,this.isConnected?(typeof IntersectionObserver!=`function`&&(this.admitted=!0),V`${fi(r,e.render({observeElement:this.admitted?void 0:this.observeElement,onAdmit:this.admit}))}`):gi}disconnected(){this.generation++,this.stopObserving?.(),this.stopObserving=void 0,this.admitted=!1}reconnected(){this.refresh()}},ST=Qr(xT)})))()}function wT(e,t,n,r,i){let a=$t(t,window.location.href,{allowDataImage:!0});if(!a){r?.();return}if(e){let t={src:a,title:n,...r?{release:r}:{}};i===void 0?e(t):e(t,i);return}r?.(),vt(a,{allowDataImage:!0})}function TT(){return(TT=e((()=>{_n()})))()}var ET=t({requestVideoPoster:()=>kT});function DT(){if(NT||MT>=2||jT.size===0)return;NT=!0;let e=()=>{NT=!1;for(let e of jT){if(MT>=2)break;jT.delete(e),e()}};typeof requestIdleCallback==`function`?requestIdleCallback(e,{timeout:500}):setTimeout(e,0)}function OT(e,t,n){let r=new AbortController,{signal:i}=r,a=new Promise(a=>{let o=()=>{jT.delete(u)},s=!1,c=e=>{s||(s=!0,r.abort(),o(),a(e))},l=()=>c(null);i.addEventListener(`abort`,l,{once:!0});let u=()=>{MT+=1;let r=document.createElement(`video`),a=document.createElement(`canvas`),u,d=setTimeout(l,2e3);o=()=>{clearTimeout(d),u!==void 0&&r.cancelVideoFrameCallback(u),r.removeAttribute(`src`),r.load(),a.width=a.height=0,--MT,DT()};let f={once:!0,signal:i},p=(e,t)=>{let n=2,i=()=>{!s&&--n===0&&t()};r.addEventListener(e,i,f),u=r.requestVideoFrameCallback(i)},m=()=>{try{a.width=t,a.height=n;let e=a.getContext(`2d`);if(!e)return l();let i=Math.max(t/r.videoWidth,n/r.videoHeight),o=r.videoWidth*i,s=r.videoHeight*i;e.drawImage(r,(t-o)/2,(n-s)/2,o,s),a.toBlob(c,`image/jpeg`,.8)}catch{l()}};if(r.preload=`metadata`,r.muted=!0,r.playsInline=!0,r.crossOrigin=`anonymous`,r.addEventListener(`error`,l,f),r.addEventListener(`loadedmetadata`,()=>{(!Number.isFinite(r.duration)||r.duration<=0||r.videoWidth*r.videoHeight>16777216)&&l()},f),typeof r.requestVideoFrameCallback!=`function`)return l();p(`loadedmetadata`,()=>{p(`seeked`,m),r.currentTime=Math.min(.1,r.duration/10)}),r.src=e,r.load()};jT.add(u),DT()});return{controller:r,owners:new Set,promise:a}}function kT(e){let{key:t,src:n,width:r,height:i,signal:a}=e;if(a.aborted||![r,i].every(e=>Number.isInteger(e)&&e>0&&e<=512))return Promise.resolve(null);let o=AT.get(t)??OT(n,r,i);return AT.set(t,o),o.owners.has(a)||(o.owners.add(a),a.addEventListener(`abort`,()=>{o.owners.delete(a),o.owners.size===0&&(AT.delete(t),o.controller.abort())},{once:!0})),o.promise.then(e=>a.aborted?null:e)}var AT,jT,MT,NT;function PT(){return(PT=e((()=>{AT=new Map,jT=new Set,MT=0,NT=!1})))()}var FT,IT;function LT(){return(LT=e((()=>{H(),_i(),Jr(),L(),O(),PT(),rw(),FT=class extends Kr{constructor(...e){super(...e),this.failed=!1,this.visible=!1,this.setElement=e=>{this.element=e,this.observe()}}render(e){return this.input?.key!==e.key&&(this.release(),this.failed=!1),this.input=e,this.requestPoster(),this.template()}requestPoster(){if(!this.isConnected||!this.visible||!this.input||this.controller||this.failed)return;let e=new AbortController;this.controller=e,kT({key:this.input.key,src:this.input.src,width:400,height:225,signal:e.signal}).then(t=>{this.controller===e&&!e.signal.aborted&&this.isConnected&&this.visible&&(t?this.posterUrl=URL.createObjectURL(t):this.failed=!0,this.setValue(this.template()))})}release(){this.controller?.abort(),this.controller=void 0,this.posterUrl&&=(URL.revokeObjectURL(this.posterUrl),void 0)}failPoster(e){this.isConnected&&this.posterUrl===e&&(this.release(),this.failed=!0,this.setValue(this.template()))}setVisible(e){this.isConnected&&this.visible!==e&&(this.visible=e,e?this.requestPoster():(this.release(),this.setValue(this.template())))}observe(){this.stopObserving?.(),this.stopObserving=this.element&&this.isConnected?ew(this.element,()=>this.setVisible(!0),()=>this.setVisible(!1)):void 0}disconnected(){this.stopObserving?.(),this.stopObserving=void 0,this.visible=!1,this.release()}reconnected(){this.setValue(this.template()),this.observe()}template(){let e=this.input;if(!e)return B;let t=this.posterUrl;return V`<div class="chat-video-preview__content" ${di(this.setElement)}>
      ${this.failed?e.fallback:V`<button
              type="button"
              class="chat-message-image-button"
              aria-label=${`${I(`chat.attachments.open`)}: ${e.label}`}
              @click=${e.onOpen}
            >
              ${t?V`<img class="chat-message-image" src=${t} alt=${e.label} @error=${()=>this.failPoster(t)} />`:V`<span class="chat-message-image chat-video-preview__placeholder"></span>`}
              <span class="chat-video-preview__play" aria-hidden="true">${z.play}</span>
            </button>`}
    </div>`}},IT=Qr(FT)})))()}function RT(e){let t=rp(e);return V`
    <span class="chat-attachment-file__preview" aria-hidden="true">
      ${_u([t],()=>bu(t?.then(e=>e?V`
                  <img src=${e} alt="" />
                  <span class="chat-attachment-video__play">${z.play}</span>
                `:z.play)??z.play,z.play))}
    </span>
  `}function zT(e,t){let{family:n,extensionLabel:r}=LC(e.fileName??`attachment`,e.mimeType),i=t?.label??e.fileName??I(`chat.attachments.attachedFile`),a=n===`audio`?z.music:z.fileText,o=V`<div
    class=${`chat-attachment-file${n===`video`?` chat-attachment-file--video`:``}`}
    @click=${e=>{e.target instanceof Element&&!e.target.closest(`button`)&&t?.onOpen?.()}}
  >
    ${n===`video`?RT(e):V`<span class="chat-attachment-file__icon" data-family=${n}>${a}</span>`}
    <span class="chat-attachment-file__body">
      ${t?.onOpen?V`<button
              class="chat-attachment-file__name chat-attachment-file__open"
              type="button"
              title=${i}
              @click=${t.onOpen}
            >
              ${i}
            </button>`:V`<span class="chat-attachment-file__name">${i}</span>`}
      ${t?.metadata??V`<span class="chat-attachment-file__type">${r}</span>`}
    </span>
  </div>`;return t?o:V`<openclaw-tooltip .content=${i}>${o}</openclaw-tooltip>`}function BT(){return(BT=e((()=>{H(),fu(),mu(),L(),O(),Y(),HC()})))()}function VT(){return(VT=e((()=>{})))()}function HT(e){let t=V`
    <span aria-hidden="true">${e.icon}</span>
    <span
      class=${e.removal?`chat-selection-annotations__label`:`chat-attachment-preview-label`}
      dir="auto"
      >${e.label}</span
    >
  `;return V`<span
    ${e.elementRef?di(e.elementRef):B}
    class="chat-attachment-thumb chat-attachment-thumb--file chat-selection-annotations__chip"
    role=${e.removal?B:`button`}
    tabindex=${e.removal?B:`0`}
    @pointerenter=${e.onReveal}
    @focusin=${e.onReveal}
    @click=${e.onClick}
    @keydown=${t=>{!e.removal&&(t.key===`Enter`||t.key===` `)&&t.currentTarget instanceof HTMLElement&&(t.preventDefault(),t.currentTarget.click())}}
  >
    ${e.removal?V`<button
            type="button"
            class="chat-attachment-file chat-selection-annotations__trigger"
          >
            ${t}
          </button>`:V`<span class="chat-attachment-file">${t}</span>`}
    ${e.removal?V`<button
            type="button"
            class="chat-selection-annotations__remove"
            aria-label=${e.removal.label}
            ?disabled=${e.removal.disabled}
            @click=${e.removal.onRemove}
          >
            ${z.x}
          </button>`:B}
  </span>`}function UT(){return(UT=e((()=>{H(),Jr(),L(),Qn()})))()}async function WT(e,t,n,r=`full`){let i=r===`excerpt`,a=r===`html`?ea:GT;if(!i&&t!==void 0&&t>a)throw Error(`Text attachment exceeds preview limit`);let o=new AbortController,s=setTimeout(()=>o.abort(),1e4);try{let t=await fetch(e,{credentials:`same-origin`,redirect:`error`,signal:AbortSignal.any([n,o.signal])});if(!t.ok)throw await t.body?.cancel(),Error(`Text attachment unavailable`);let r=await Lw(t,a,{truncate:i});if(!r)throw Error(`Text attachment exceeds preview limit`);let s=new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0}).decode(r,{stream:i});if(s.includes(`\0`))throw Error(`Binary attachment`);return s}finally{clearTimeout(s)}}var GT;function KT(){return(KT=e((()=>{Li(),Rw(),GT=262144})))()}function qT(e){let{mimeType:t,origin:n,fileName:r}=e;return t.split(`;`,1)[0]?.trim().toLowerCase()===`text/plain`&&(n===`paste`||n===void 0&&/^pasted-text-\d+\.txt$/.test(r??``))}function JT(e){return e.type===`attachment`&&e.attachment.kind===`document`&&qT({mimeType:e.attachment.mimeType??``,fileName:e.attachment.label,origin:e.attachment.origin})}var YT;function XT(){return(XT=e((()=>{H(),ri(),L(),O(),Ee(),BT(),UT(),KT(),Yl(),YT=class extends c{constructor(...e){super(...e),this.scope=``,this.excerpt=``,this.key=``}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this.loading?.abort(),this.key=``,super.disconnectedCallback()}willUpdate(){let e=JSON.stringify([this.scope,this.src,this.sizeBytes]);if(e===this.key||(this.loading?.abort(),this.key=e,this.excerpt=``,!this.src))return;let t=new AbortController;this.loading=t,this.loadExcerpt(this.src,t)}async loadExcerpt(e,t){let n=()=>this.isConnected&&this.loading===t&&!t.signal.aborted;try{let r=await WT(e,this.sizeBytes,t.signal,`excerpt`);if(!n())return;let{derivePastedTextExcerpt:i}=await $l(async()=>{let{derivePastedTextExcerpt:e}=await import(`./pasted-text-excerpt-w6symljh.js`);return{derivePastedTextExcerpt:e}},__vite__mapDeps([11,0,1,2,3,4,5,6,7]),import.meta.url);n()&&(this.excerpt=i(r))}catch{}}render(){return this.composerAction?V`<div
        class="chat-attachment-thumb chat-attachment-thumb--file chat-attachment-thumb--pasted-text"
      >
        ${zT({id:this.scope,mimeType:`text/plain`},{label:this.excerpt||I(`chat.attachments.pastedText`),metadata:this.composerAction,onOpen:this.onOpen})}
        ${this.composerRemoveAction}
      </div>`:HT({label:this.excerpt||I(`chat.attachments.pastedText`),icon:z.fileText,onClick:this.onOpen,onReveal:this.admission?.onAdmit,elementRef:this.admission?.observeElement})}},q([U()],YT.prototype,`src`,void 0),q([U({attribute:!1})],YT.prototype,`sizeBytes`,void 0),q([U({attribute:!1})],YT.prototype,`scope`,void 0),q([U({attribute:!1})],YT.prototype,`onOpen`,void 0),q([U({attribute:!1})],YT.prototype,`composerAction`,void 0),q([U({attribute:!1})],YT.prototype,`composerRemoveAction`,void 0),q([U({attribute:!1})],YT.prototype,`admission`,void 0),q([W()],YT.prototype,`excerpt`,void 0),customElements.define(`openclaw-chat-pasted-text`,YT)})))()}function ZT(e){let t=/\n\nSource session: [^\n]+\n(?:Source message: [^\n]+\n)?(?:Source entry: [^\n]+\n)?(?:Selected text UTF-16 length: (\d+)\n)?DOM text UTF-16 range: \[(\d+), (\d+)\)$/.exec(e);if(!t||!e.startsWith(`Selected text:
`))return null;let n=Number(t[2]),r=Number(t[3]),i=t[1]===void 0?r-n:Number(t[1]);if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||r<n||!Number.isSafeInteger(i)||i<=0)return null;let a=e.slice(15,t.index),o=a.slice(0,i),s=a.slice(i);return o.length!==i||s&&!s.startsWith(`

User comment:
`)?null:{text:o,comment:s?s.slice(16):``}}function QT(e,t=B){return V`<li class="chat-comment-preview__item">
    <div class="chat-comment-preview__body">
      <span class="muted">${I(`chat.messages.annotationSelectedText`)}</span>
      <div
        class="chat-comment-preview__text chat-comment-preview__text--selection"
        .textContent=${e.text}
      ></div>
      ${e.comment?V`<span class="muted">${I(`chat.messages.annotationUserComment`)}</span>
              <div
                class="chat-comment-preview__text chat-comment-preview__text--comment"
                tabindex="0"
                role="region"
                aria-label=${I(`chat.messages.annotationUserComment`)}
                .textContent=${e.comment}
                ${rd()}
              ></div>`:B}
    </div>
    ${t}
  </li>`}function $T(e,t,n,r,i){return V`<openclaw-tooltip
    class=${r?`chat-comment-preview chat-comment-preview--editable`:`chat-comment-preview`}
    placement="top-start"
    auto-size
    .describe=${!1}
    .openOnClick=${!0}
    .hoverDismissDelay=${r?200:void 0}
  >
    ${HT({label:I(e===1?`chat.messages.annotationCount`:`chat.messages.annotationsCount`,{count:String(e)}),icon:z.messageSquare,onReveal:n,onClick:n,elementRef:i,removal:r?{...r,label:I(`chat.messages.removeAnnotations`)}:void 0})}
    <div
      slot="content"
      class="chat-comment-preview__scroll"
      tabindex="0"
      role="region"
      aria-label=${I(`chat.messages.annotations`)}
      ${rd()}
    >
      ${t}
    </div>
  </openclaw-tooltip>`}function eE(){return(eE=e((()=>{H(),L(),md(),O(),tl(),UT(),_a()})))()}function tE(e){return e.type===`attachment`&&e.attachment.kind===`document`&&e.attachment.label===`selection-comment.txt`&&e.attachment.mimeType?.split(`;`,1)[0]?.trim().toLowerCase()===`text/plain`}function nE(e,t,n){if(e.length===0)return B;let r=r=>V`<openclaw-chat-sent-comments
    .sources=${e.map(e=>r?.observeElement?{identity:e.attachment.url,pending:!0,fallback:B}:n(e))}
    .scope=${JSON.stringify([t.sessionKey,t.agentId,t.connectionEpoch,t.resourceBasePath,t.authToken,t.policyKey])}
    .admission=${r}
  ></openclaw-chat-sent-comments>`;return e.some(e=>yT(e.attachment))?ST({attachments:e.map(e=>e.attachment),options:t,render:r}):r()}var rE;function iE(){return(iE=e((()=>{H(),ri(),O(),Ee(),KT(),eE(),CT(),rE=class extends c{constructor(...e){super(...e),this.sources=[],this.scope=``,this.revealed=!1,this.comments=[],this.key=``}disconnectedCallback(){this.loading?.abort(),this.key=``,super.disconnectedCallback()}willUpdate(){let e=JSON.stringify([this.scope,this.sources.map(({fallback:e,...t})=>t)]);if(this.key!==e&&(this.loading?.abort(),this.loading=void 0,this.key=e,this.comments=this.sources.map(e=>!e.src&&!e.pending?null:void 0)),this.revealed&&!this.loading){let e=new AbortController;this.loading=e,this.sources.forEach((t,n)=>{t.src&&WT(t.src,t.sizeBytes,e.signal).then(t=>this.accept(n,ZT(t),e),()=>this.accept(n,null,e))})}}accept(e,t,n){this.isConnected&&this.loading===n&&!n.signal.aborted&&(this.comments=this.sources.map((n,r)=>r===e?t:this.comments[r]))}render(){let e=this.sources.filter((e,t)=>this.comments[t]!==null);return V`${e.length?$T(e.length,V`<ol class="chat-comment-preview__list" role="list">
              ${this.sources.map((e,t)=>{let n=this.comments[t];return n?QT(n):n===null?B:V`<li class="chat-comment-preview__item muted">
                        ${e.src||e.pending?I(`common.loading`):I(`chat.attachments.textPreviewUnavailable`)}
                      </li>`})}
            </ol>`,()=>{this.revealed=!0,this.admission?.onAdmit()},void 0,this.admission?.observeElement):B}
    ${this.sources.map((e,t)=>this.comments[t]===null?e.fallback:B)}`}},q([U({attribute:!1})],rE.prototype,`sources`,void 0),q([U()],rE.prototype,`scope`,void 0),q([U({attribute:!1})],rE.prototype,`admission`,void 0),q([W()],rE.prototype,`revealed`,void 0),q([W()],rE.prototype,`comments`,void 0),customElements.define(`openclaw-chat-sent-comments`,rE)})))()}function aE(e,t,n){return{kind:`video`,src:``,title:e.label,connectVideo:(r,i,a=!1)=>{let o=new Fw,s=!0,c=a,l=()=>{s&&i(o.readiness===`idle`?`preparing`:o.readiness)},u=()=>{if(!s)return;let n=t(u);if(n.status!==`available`){if(n.status===`unavailable`&&c&&n.onRetry){c=!1,n.onRetry();return}o.cancel(),o.reset(r),i(n.status===`checking`?`preparing`:`unavailable`,!!n.onRetry);return}let a=PS(n.source.src,`video`);if(!a){o.cancel(),o.reset(r),i(`unavailable`,!1);return}let d=o.sync(r,a,e.url,n.source.playback,n.source.authToken);l(),d?.then(l)};n&&$S(n,u);let d=()=>o.handleLoadedMetadata(r,()=>s),f=e=>()=>{e(),l()},p=f(()=>o.applyPendingSource(r)),m=f(()=>o.handleEnded(r)),h=f(()=>o.handleError(r));return r.addEventListener(`loadedmetadata`,d),r.addEventListener(`play`,p),r.addEventListener(`seeking`,p),r.addEventListener(`ended`,m),r.addEventListener(`error`,h),u(),()=>{s=!1,r.removeEventListener(`loadedmetadata`,d),r.removeEventListener(`play`,p),r.removeEventListener(`seeking`,p),r.removeEventListener(`ended`,m),r.removeEventListener(`error`,h),o.cancel(),o.reset(r),eC(u)}}}}function oE(){return(oE=e((()=>{RS(),Iw(),vC()})))()}function sE(){return{status:`unavailable`,reason:I(`chat.attachments.unavailable`),checkedAt:Date.now()}}function cE(e,t,n=Date.now()){let r=e?.expiresAt!==void 0&&e.expiresAt<=n?null:e;return t>=2?r?.expiresAt?{...r,refreshAfter:r.expiresAt,refreshAttempts:t}:sE():{...r??{status:`checking`},refreshAfter:n+gT*2**t,refreshAttempts:t+1}}function lE(e,t,n=!1){return JS(e)?(e.value=t,QS(e,t.status===`checking`?t.refreshAfter:t.status===`available`&&t.expiresAt!==void 0?n?t.expiresAt:Math.min(t.refreshAfter??t.expiresAt-3e4,t.expiresAt):t.status===`unavailable`&&!e.retryAttempted?t.checkedAt+gT:void 0,()=>{e.value?.status===`unavailable`&&(e.retryAttempted=!0,e.value=void 0),XS(e)}),t):t}function uE(e,t,n,r){if(!mT(e.url))return{status:`available`,url:e.url};if(!e.artifactId||!t)return new URL(e.url,window.location.origin).searchParams.get(`mediaTicket`)?.trim()?{status:`available`,url:e.url}:sE();let i=hT(e.url);if(!i)return sE();let a=KS(`managed-media`,`${r??0}::${e.url}::${e.artifactId}`,n,e.url),o=a.value,s=Date.now();if(o?.status===`unavailable`||o?.status===`checking`&&o.refreshAfter!==void 0&&o.refreshAfter>s)return lE(a,o);if(o?.status===`available`){let e=o.expiresAt!==void 0&&o.expiresAt<=s;if(e&&(o.refreshAttempts??0)>=2)return a.retryAttempted=!0,lE(a,sE());if(e&&(a.pending||o.refreshAfter!==void 0&&o.refreshAfter>s))return lE(a,{status:`checking`,refreshAfter:a.pending?void 0:o.refreshAfter,refreshAttempts:o.refreshAttempts});let t=o.refreshAfter??(o.expiresAt===void 0?void 0:o.expiresAt-3e4);if(t===void 0||t>s)return lE(a,o)}if(a.pending)return o?.status===`available`?o:{status:`checking`};let c=o?.status===`available`&&(o.expiresAt===void 0||o.expiresAt>s)?o:null,l=o?.refreshAttempts??0,u=()=>c||o?.status===`checking`?cE(c,l):sE();c||lE(a,{status:`checking`});let d=Promise.resolve().then(async()=>{let n;try{let r=await t({sessionKey:i,artifactId:e.artifactId}),a=r?.url.trim();if(!a)n=u();else{let e=Date.parse(r?.expiresAt??``),t=Date.now(),i=Number.isFinite(e)?e:t+3e5,o={status:`available`,url:a,expiresAt:i};n=i-t>3e4?o:cE(l>=2&&c?.expiresAt!==void 0&&c.expiresAt>=i?c:o,l,t)}}catch{n=u(),n.status===`unavailable`&&(n={...n,error:!0})}return JS(a)?(n.status===`available`&&n.refreshAttempts===void 0?a.retryAttempted=!1:n.status===`unavailable`&&l>=2&&(a.retryAttempted=!0),lE(a,n)):null}).finally(()=>{a.pending===d&&(a.pending=void 0),XS(a)});return a.pending=d,c&&lE(a,c,!0),c??{status:`checking`}}function dE(e,t,n){if(!e.artifactId||!mT(e.url))return;let r=KS(`managed-media`,`${n??0}::${e.url}::${e.artifactId}`,t,e.url);r.value=void 0,r.retryAttempted=!1,XS(r),t?.()}function fE(e,t){let{resourceBasePath:n,authToken:r,onRequestUpdate:i,resolveArtifactDownload:a,connectionEpoch:o}=t,s=nT(e.url,t);if(s.status!==`available`)return{status:s.status,reason:s.status===`unavailable`?s.reason:void 0,error:s.status===`unavailable`&&s.unconfirmed,onAllow:s.status===`unavailable`&&s.canAllow?()=>iT(e.url,t,!0):void 0,onRetry:s.status===`unavailable`&&s.recoverable?()=>iT(e.url,t):void 0};let c=uE(e,a,i,o);if(c.status!==`available`)return{status:c.status,reason:c.status===`unavailable`?c.reason:void 0,error:c.status===`unavailable`&&c.error,onRetry:c.status===`unavailable`&&e.artifactId&&a?()=>dE(e,i,o):void 0};let l=Zw(e.url),u=l?$w(e.url,n,s.mediaTicket,t,e.label):mT(e.url)?eT(c.url,n):c.url;return u?{status:`available`,source:{src:u,playback:s.playback??e.playback??`native`,authToken:l?r??null:null,sizeBytes:s.sizeBytes??e.sizeBytes,durationMs:s.durationMs??e.durationMs,width:s.width??e.width,height:s.height??e.height}}:{status:`checking`,reason:void 0,onRetry:void 0}}function pE(e){return e.some(e=>e.attachment.kind===`document`&&!tE(e)&&!JT(e))}function mE(e,t,n,r,i=!0){if(e.length===0)return B;let a=i?[]:e.filter(tE),o=e.filter(e=>i||!tE(e)),s=e=>{let i=fE(e.attachment,t);return{identity:e.attachment.url,...i.status===`available`?{src:/^data:text\/plain;base64,[a-z0-9+/]*={0,2}$/i.test(i.source.src)||NS(i.source.src)&&!MS(i.source.src)?i.source.src:void 0,sizeBytes:i.source.sizeBytes}:{pending:i.status===`checking`},fallback:hE(e,t,n,r,`card`)}},c=!i&&(a.length>0||o.some(JT));return V`<div
    class="chat-assistant-attachments ${c?`chat-assistant-attachments--preview-chips`:``}"
  >
    ${nE(a,t,s)}
    ${o.map(e=>hE(e,t,n,r,i||e.type===`attachment`&&e.attachment.kind===`audio`&&e.attachment.isVoiceNote?`inline`:`card`))}
  </div>`}function hE(e,t,n,r,i=`inline`){let a=a=>{let{onRequestOpenImage:o,onOpenImage:s,resolveArtifactDownload:c}=t;if(e.type===`attachment_error`){let{attachment:t}=e;return GC({label:t.label,mimeType:t.mimeType,badge:I(`chat.attachments.notSent`),reason:UC(t.code)})}let{attachment:l}=e,u=i===`card`&&JT(e),d=cC(l)===`svg`,f=a?.observeElement?void 0:fE(l,t);if(!u&&(f?.status===`unavailable`||f?.status===`checking`&&!a))return GC({label:l.label,mimeType:l.mimeType,badge:f.status===`unavailable`?I(`chat.attachments.unavailable`):``,reason:f.status===`unavailable`?f.reason:void 0,onRetry:f.onRetry,onAllow:d?f.onAllow:void 0,path:Zw(l.url)?l.url:void 0});let p=f?.status===`available`?f.source:void 0,m=p?.src??``,h=l.kind===`audio`||l.kind===`video`?PS(m,l.kind):u?FS(m):NS(m),g=l.kind===`video`&&s&&h?n=>{let r=o?.(),i=e=>aE(e,n=>fE(e,{...t,onRequestUpdate:n}),t.onRequestUpdate),a=t.galleryVideos?.(e),c={...i(l),src:n,originalSrc:h,...a&&a.index>=0&&a.items.length>1?{gallery:{index:a.index,items:a.items.map(({attachment:e})=>async()=>i(e))}}:{}};s(c,r)}:void 0,_=Zw(l.url)||mT(l.url)&&!!(l.artifactId&&c),v=n&&(_||h||u)?()=>n({kind:`attachment`,attachmentKind:l.kind,title:l.label,..._?{}:{src:h},mimeType:l.mimeType,...u?{plainText:!0}:{},sourceIdentity:l.url,playback:p?.playback,authToken:p?.authToken,sizeBytes:p?.sizeBytes,durationMs:p?.durationMs,width:p?.width,height:p?.height,voiceNote:l.isVoiceNote===!0,..._?{resolveSource:(e,t)=>{let n=fE(l,{...t,onRequestUpdate:e});return n.status===`available`?{status:`ready`,...n.source}:n.status===`checking`?{status:`pending`}:n.error?{status:`error`,reason:n.reason??I(`chat.attachments.unavailable`),onRetry:n.onRetry}:{status:`unavailable`,onRetry:n.onRetry}}}:{}}):void 0;if(u)return V`<openclaw-chat-pasted-text
        .src=${h&&!MS(h)?h:void 0}
        .sizeBytes=${p?.sizeBytes??l.sizeBytes}
        .scope=${JSON.stringify([l.url,t.sessionKey,t.agentId,t.connectionEpoch,t.resourceBasePath,t.authToken,t.policyKey])}
        .onOpen=${v}
        .admission=${a}
      ></openclaw-chat-pasted-text>`;let y=qC({kind:l.kind,label:l.label,mimeType:l.mimeType,sizeBytes:p?.sizeBytes??l.sizeBytes,downloadHref:h,downloadPending:!(!a||p),downloadPendingFocusable:!!a,onExpand:v,voiceNote:l.isVoiceNote===!0},a?.observeElement,a?.onAdmit);if(a&&!p)return y;if(d){let e=l.label.trim()||I(`chat.imageLightbox.untitled`);return V`<openclaw-chat-svg-attachment
        .src=${m}
        .sourceIdentity=${l.url}
        .label=${e}
        .mimeType=${l.mimeType??`image/svg+xml`}
        .sizeBytes=${p?.sizeBytes}
        .downloadHref=${NS(m)}
        .onOpen=${(t,n)=>wT(s,t,e,n,o?.())}
        .onExpand=${v}
        .onMediaLoaded=${r}
      ></openclaw-chat-svg-attachment>`}return(l.kind===`audio`||l.kind===`video`)&&!h?GC({label:l.label,mimeType:l.mimeType,badge:I(`chat.attachments.unavailable`),reason:I(`chat.attachments.previewUnavailable`)}):i===`inline`&&l.kind===`audio`?V`<openclaw-chat-audio-player
        .src=${h}
        .sourceIdentity=${l.url}
        .label=${l.label}
        .mimeType=${l.mimeType??``}
        .playback=${p?.playback}
        .authToken=${p?.authToken}
        .sizeBytes=${p?.sizeBytes}
        .serverDurationMs=${p?.durationMs}
        .voiceNote=${l.isVoiceNote===!0}
        .onExpand=${l.isVoiceNote?void 0:v}
        .onMediaLoaded=${r}
      ></openclaw-chat-audio-player>`:i===`inline`&&l.kind===`video`?V`<openclaw-chat-video-player
        .src=${h}
        .sourceIdentity=${l.url}
        .label=${l.label}
        .mimeType=${l.mimeType??``}
        .playback=${p?.playback}
        .authToken=${p?.authToken}
        .sizeBytes=${p?.sizeBytes}
        .mediaWidth=${p?.width}
        .mediaHeight=${p?.height}
        .onExpand=${g}
        .onFallbackExpand=${v}
        .onMediaLoaded=${r}
      ></openclaw-chat-video-player>`:i===`preview`&&l.kind===`video`&&p?.playback===`native`&&h&&v?IT({key:JSON.stringify([t.resourceBasePath??``,t.authToken?.trim()??``,t.sessionKey,t.agentId,t.policyKey,t.connectionEpoch??0,l.url,l.artifactId,h,400,225]),src:h,label:l.label,onOpen:v,fallback:y}):y};return e.type!==`attachment`||!bT(e,i)?a():V`${ST({attachments:[e.attachment],options:t,render:a})}`}function gE(){return(gE=e((()=>{H(),O(),$C(),Ww(),Jw(),Xw(),RS(),CT(),vT(),KC(),TT(),tT(),vC(),LT(),XT(),iE(),oE()})))()}function _E(e,t){let n=t===`image/jpeg`?`jpg`:t.split(`/`,2)[1]||`img`,r=Array.from(e,e=>e.codePointAt(0)<=31||`<>:"/\\|?*`.includes(e)?`-`:e).join(``).replace(/\.[a-z0-9]{1,10}$/iu,``).replace(/[. -]+$/u,``);return`${il(r,120)||`generated-image`}.${/^[a-z0-9.+-]{1,12}$/u.test(n)?n:`img`}`}function vE(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),globalThis.setTimeout(()=>URL.revokeObjectURL(n),3e4)}async function yE(e){if(e.type===`image/png`)return e;let t=await createImageBitmap(e);try{let e=document.createElement(`canvas`);e.width=t.width,e.height=t.height;let n=e.getContext(`2d`);if(!n)throw Error(`image conversion context is unavailable`);return n.drawImage(t,0,0),await new Promise((t,n)=>{e.toBlob(e=>e?t(e):n(Error(`image conversion failed`)),`image/png`)})}finally{t.close()}}function bE(e,t){let n=async()=>{try{let n=await t();vE(n,_E(e,n.type))}catch{yn({message:I(`chat.imageLightbox.downloadFailed`)})}},r=async()=>{rn();try{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`image clipboard is unavailable`);let e=t().then(yE);e.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":e})]),yn({message:I(`common.copied`)})}catch{yn({message:I(`chat.imageLightbox.copyFailed`)})}};return V`
    <wa-dropdown
      class="chat-image-actions"
      placement="bottom-end"
      aria-label=${I(`chat.imageLightbox.actions`)}
      @wa-select=${e=>{e.detail.item.value===`copy`?r():e.detail.item.value===`download`&&n()}}
    >
      <button
        slot="trigger"
        type="button"
        class="chat-image-action"
        title=${I(`chat.imageLightbox.actions`)}
        aria-label=${I(`chat.imageLightbox.actions`)}
      >
        ${z.moreHorizontal}
      </button>
      ${[[`copy`,`chat.imageLightbox.copy`,z.copy],[`download`,`chat.imageLightbox.download`,z.download]].map(([e,t,n])=>V`
          <wa-dropdown-item class="session-menu__item" value=${e}>
            <span slot="icon" class="session-menu__icon" aria-hidden="true">${n}</span>
            <span class="session-menu__text">${I(t)}</span>
          </wa-dropdown-item>
        `)}
    </wa-dropdown>
  `}function xE(){return(xE=e((()=>{H(),L(),O(),tt(),ot()})))()}function SE(e,t,n,r=`thumbnail`){let i=e?TE(e,r,t?.resourceBasePath):void 0,a=t?.authToken?.trim()??``,o=n?.trim()??``;return{cacheKey:JSON.stringify([t?.connectionEpoch,t?.resourceBasePath,t?.sessionKey,t?.agentId,t?.policyKey,a,i,o,r]),subscriberScope:`${i}::${o}::${r}`}}function CE(e,t,n){return nC(SE(e,t,n).cacheKey)}function wE(e,t,n,r=`thumbnail`,i=!1){let{cacheKey:a,subscriberScope:o}=SE(e,t,n,r),s=KS(`managed-image`,a,t?.onRequestUpdate,o);s.subscribers.size>0&&!s.releaseAuthRecovery&&(s.releaseAuthRecovery=Sr(()=>{JS(s)&&s.value===null&&(s.value=void 0,s.retryAttempted=!1,s.unavailableAt=void 0,ZS(s),XS(s))}));let c=nC(a);if(c)return s.value=c,s.retryAttempted=!1,s.unavailableAt=void 0,s;if(s.value===null){if(!i&&(s.retryAttempted||s.unavailableAt===void 0||Date.now()-s.unavailableAt<AE))return s;ZS(s),s.retryAttempted=!0}if(s.value=void 0,!s.pending){let i=new AbortController;s.abortController=i;let o=(async()=>{let o=await EE(e,t,n,r,i);if(!o)return OE(s);if(!JS(s))return null;let c=oC(a,o);return s.value=c,s.retryAttempted=!1,s.unavailableAt=void 0,c})().finally(()=>{s.abortController===i&&(s.abortController=void 0),s.pending===o&&(s.pending=void 0),s.value===null&&s.subscribers.size===0&&!s.pending&&tC(),XS(s)});s.pending=o}return s}function TE(e,t,n){try{let r=new URL(e,window.location.origin);return r.pathname=r.pathname.replace(/\/(?:full|thumbnail)$/u,`/${t}`),t===`thumbnail`&&r.searchParams.set(`v`,`2`),/^https?:\/\//iu.test(e)?r.href:eT(`${r.pathname}${r.search}${r.hash}`,n)}catch{return e.replace(/\/(?:full|thumbnail)(?=$|[?#])/u,`/${t}`)}}async function EE(e,t,n,r,i){let a=e?hT(e):t?.sessionKey,o=a&&n&&t?.resolveArtifactDownload?await t.resolveArtifactDownload({sessionKey:a,artifactId:n,variant:r},i.signal).catch(()=>null):null;if(i.signal.aborted)return null;if(o?.blob)return o.blob.type.startsWith(`image/`)?o.blob:null;let s=o?.url??e;if(!s||!e&&!s.startsWith(`data:image/`))return null;let c=mT(s)?TE(s,r,t?.resourceBasePath):s,l=Tw(o?void 0:t?.authToken);l.set(`Accept`,`image/*`),!o&&a&&l.set(`x-openclaw-requester-session-key`,a);let u=globalThis.setTimeout(()=>{i.abort(new DOMException(`managed outgoing image fetch timed out`,`TimeoutError`))},kE);try{let e=await Ar(c,{method:`GET`,headers:l,credentials:`same-origin`,signal:i.signal});if(!e.ok)return null;let t=await e.blob();return t.type.startsWith(`image/`)?t:null}catch{return null}finally{globalThis.clearTimeout(u)}}async function DE(e,t,n){let r=wE(e,t,n,`full`,!0);r.pending&&await r.pending;let i=rC(r.cacheKey);if(!i||!JS(r))throw Error(`managed image is unavailable`);return i}function OE(e){return JS(e)?(e.value=null,e.unavailableAt=Date.now(),e.retryAttempted||QS(e,Date.now()+AE,()=>{e.value===null&&(e.retryAttempted=!0,e.value=void 0,e.unavailableAt=void 0,XS(e))}),null):null}var kE,AE;function jE(){return(jE=e((()=>{Ir(),jw(),vT(),tT(),vC(),kE=3e4,AE=5e3})))()}function ME(e){return e?.startsWith(`data:image/`)===!0||e?.startsWith(`blob:`)===!0}function NE(e){return e.alt?.trim()||e.fileName?.trim()||I(`chat.imageLightbox.untitled`)}function PE(e,t,n){let r=NE(e),i=n?.onRequestOpenImage?.(),a=n?.galleryImages,o=a?.indexOf(e)??-1,s=n?.onOpenImage,c=t=>{let r={...t,width:e.width,height:e.height};a&&a.length>1&&o>=0&&(r.gallery={index:o,items:a.map(e=>(t=!1)=>FE(e,n,t))}),i===void 0?s?.(r):s?.(r,i)};if(e.url!==void 0&&!mT(e.url)){wT(s?c:void 0,t,r);return}if(s){c({src:t,title:r,release:aC(wE(e.url,n,e.artifactId).cacheKey),loadFullResolution:()=>FE(e,n,!0)});return}let l=wE(e.url,n,e.artifactId,`full`,!0);if(l.value){wT(void 0,l.value,r);return}let u=Ct(),d=()=>{u?.close(),yn({message:I(`chat.imageLightbox.loadFailed`)})};(l.pending??Promise.resolve(null)).then(e=>{let t=e?$t(e,window.location.href,{allowDataImage:!0}):null;t?u?u.location.replace(t):wT(void 0,t,r):d()}).catch(d)}async function FE(e,t,n){let r,i;if(e.url===void 0||mT(e.url)){let a=wE(e.url,t,e.artifactId,`full`,n);if(r=a.value??await a.pending??null,!r||!JS(a))return null;i=aC(a.cacheKey)}else{let n=await rT(e.url,t);if(n?.status!==`available`)return null;r=$w(e.url,t?.resourceBasePath,n.mediaTicket,t,e.fileName)}let a=$t(r,window.location.href,{allowDataImage:!0});return a?{src:a,title:NE(e),width:e.width,height:e.height,release:i}:(i?.(),null)}var IE,LE,RE,zE,BE,VE;function HE(){return(HE=e((()=>{H(),_i(),ei(),ai(),Jr(),vi(),O(),_n(),ot(),rw(),xE(),vT(),KC(),jE(),TT(),tT(),vC(),IE=3e4,LE=160,RE=class extends Kr{constructor(...e){super(...e),this.managed=!1,this.presentationKey=Symbol(`image-presentation`),this.admitted=!1,this.observeFrame=e=>{if(this.stopObserving?.(),this.stopObserving=void 0,!e||!this.isConnected||this.admitted||ME(this.image?.url))return;let t=this.presentationKey;this.stopObserving=ew(e,()=>{t===this.presentationKey&&this.admit()})},this.admit=()=>{this.isConnected&&!this.admitted&&(this.admitted=!0,this.stopObserving?.(),this.stopObserving=void 0,this.refreshImage())},this.refreshImage=()=>{this.isConnected&&this.image&&this.setValue(this.render(this.image,this.options))},this.onSettled=e=>{let t=e.currentTarget;this.isConnected&&t===this.previewElement&&t instanceof HTMLImageElement&&t.isConnected&&(this.element=e.type===`load`?t:void 0,this.retained?.status===`retaining`&&this.element?.getAttribute(`src`)!==this.retained.previewUrl?e.type===`error`?this.failImage():this.releaseRetainedImage():e.type===`error`&&!this.managed&&this.image?.url&&!Zw(this.image.url)&&!ME(this.image.url)&&this.failImage())}}render(e,t){let n=this.image;if(n?.url!==e.url||n?.artifactId!==e.artifactId){this.managed=e.url===void 0||mT(e.url),this.pendingPreview=void 0,this.releaseRetainedImage(),this.retained=e.factIndex!==void 0&&n&&ME(n.url)&&n.artifactId===e.artifactId&&e.url!==void 0&&Qw(e.url)&&this.element?.getAttribute(`src`)===n.url&&this.element.naturalWidth>0?{status:`retaining`,previewUrl:n.url}:void 0;let r=t?.localSubmission&&n&&ME(n.url)&&ME(e.url);!this.retained&&!r&&(this.element=void 0,this.previewElement=void 0,this.admitted=!1,this.presentationKey=Symbol(`image-presentation`)),eC(this.refreshImage)}if(this.image=e,this.options=t,!this.isConnected)return this.releaseRetainedImage(),eC(this.refreshImage),gi;if(this.admitted||(this.managed?this.admitted=!!CE(e.url,t,e.artifactId):e.url&&!this.element&&(this.element=lT(e.url,t),this.previewElement=this.element,this.admitted=!!this.element)),!this.admitted&&!ME(e.url)&&!this.retained&&typeof IntersectionObserver==`function`)return this.present(this.renderImagePlaceholder(e));this.admitted=!0;let r=t?.onRequestUpdate;r?(this.pendingPreview=void 0,$S(r,this.refreshImage)):eC(this.refreshImage);let i=r?{...t,onRequestUpdate:this.refreshImage}:t,a=e.url;if(a===void 0)return this.renderManagedImage(e,t,i);let o=nT(a,i),s=this.retained?.status===`unavailable`,c=o.status===`checking`||o.status===`unavailable`&&o.unconfirmed,l=o.status===`available`?$w(a,t?.resourceBasePath,o.mediaTicket,t,e.fileName):c?this.element?.getAttribute(`src`):void 0;if(!l||s){this.element=void 0,this.previewElement=void 0,s||this.releaseRetainedImage();let t=o.status===`unavailable`?o.reason:s?I(`chat.imageLightbox.loadFailed`):void 0;return this.present(this.renderImagePlaceholder(e,t,{path:Zw(a)?a:void 0,onAllow:!s&&o.status===`unavailable`&&o.canAllow?()=>iT(a,i,!0):void 0,onRetry:!s&&o.status===`unavailable`&&o.recoverable?()=>iT(a,i):void 0}))}if(!this.managed){let n=this.retained;return o.status===`available`&&n?.status===`retaining`&&n.timeout===void 0&&(n.timeout=setTimeout(()=>this.failImage(),IE)),this.present(this.renderImageElement(e,l,t))}return this.renderManagedImage(e,t,i,l)}renderManagedImage(e,t,n,r=e.url){let i=wE(r,n,e.artifactId),a=i.pending;return!t?.onRequestUpdate&&a&&this.pendingPreview!==a&&(this.pendingPreview=a,a.then(e=>{this.pendingPreview===a&&this.isConnected&&this.image&&(this.pendingPreview=void 0,this.setValue(this.present(e?this.renderImageElement(this.image,e,this.options):this.renderImagePlaceholder(this.image,I(`chat.imageLightbox.loadFailed`)))))})),this.present(i.value?this.renderImageElement(e,i.value,t):this.renderImagePlaceholder(e,i.value===null?I(`chat.imageLightbox.loadFailed`):void 0))}renderImageElement(e,t,n){let r=NE(e);return this.renderImageFrame(e,V`
        <button
          type="button"
          class="chat-message-image-button"
          aria-label=${I(`chat.imageLightbox.open`,{title:r})}
          aria-disabled=${t?B:`true`}
          @focus=${this.admit}
          @click=${r=>{r.stopPropagation(),t?PE(e,t,n):this.admit()}}
        >
          ${t?this.renderPreviewElement(e,t,r):V`<span class="chat-image-skeleton skeleton" aria-hidden="true"></span>`}
        </button>
      `,t?void 0:`loading`,this.managed&&t?bE(r,()=>DE(e.url,n,e.artifactId)):B)}renderPreviewElement(e,t,n){let r=this.previewElement??=document.createElement(`img`);r.addEventListener(`load`,this.onSettled),r.addEventListener(`error`,this.onSettled),r.alt=n,r.className=`chat-message-image`,r.referrerPolicy=`no-referrer`;for(let t of[`width`,`height`])e[t]===void 0?r.removeAttribute(t):r.setAttribute(t,String(e[t]));return r.getAttribute(`src`)!==t&&r.setAttribute(`src`,t),r}renderImageFrame(e,t,n,r=B){let{width:i=0,height:a=0}=e,o=Number.isFinite(i)&&i>0&&Number.isFinite(a)&&a>0,s=n===`loading`,c=n===`unavailable`,l=o?i/a:3/2,u=o?i<LE?LE:Math.min(i,400,360*l):400,d=c?Math.max(LE,u):u,f=Math.min(360,d/l);return V`<span
      ${di(this.observeFrame)}
      class="chat-image-frame ${o||s||c?`chat-image-frame--image`:``} ${this.managed&&!c?`chat-image-frame--managed`:``} ${c?`chat-image-frame--compact`:``}"
      style=${`--chat-image-width: ${d}px; --chat-image-min-width: ${LE}px; --chat-image-ratio: ${c?`auto`:`${d} / ${f}`}`}
      aria-busy=${s?`true`:`false`}
      role=${s?`status`:B}
      aria-label=${s?I(`common.loading`):B}
      >${c?t:V`<span class="chat-image-surface">${t}</span>`}${r}</span
    >`}renderImagePlaceholder(e,t,n){return t===void 0?this.renderImageElement(e,void 0,this.options):this.renderImageFrame(e,GC({label:e.fileName??e.alt??I(`chat.imageLightbox.untitled`),badge:I(`chat.attachments.unavailable`),reason:t,onRetry:this.managed?()=>{wE(e.url,this.options?.onRequestUpdate?{...this.options,onRequestUpdate:this.refreshImage}:this.options,e.artifactId,`thumbnail`,!0),this.refreshImage()}:void 0,...n}),`unavailable`)}releaseRetainedImage(){let e=this.retained;this.retained=void 0,e?.status===`retaining`&&clearTimeout(e.timeout)}failImage(){this.releaseRetainedImage(),this.retained={status:`unavailable`},this.refreshImage()}present(e){return V`${fi(this.presentationKey,e)}`}disconnected(){this.previewElement&&(this.previewElement.removeEventListener(`load`,this.onSettled),this.previewElement.removeEventListener(`error`,this.onSettled),this.previewElement.remove()),this.element&&this.image?.url&&uT(this.image.url,this.element,this.options,this.image.fileName),this.previewElement=void 0,this.stopObserving?.(),this.stopObserving=void 0,this.admitted=!1,this.releaseRetainedImage(),this.element=void 0,this.pendingPreview=void 0,this.presentationKey=Symbol(`image-presentation`),eC(this.refreshImage)}reconnected(){this.refreshImage()}},zE=Qr(RE),BE=class extends $r{constructor(...e){super(...e),this.slots=[],this.scope=``,this.localSubmission=!1}render(e,t,n=[]){let r=JSON.stringify([t?.connectionEpoch,t?.authToken?.trim(),t?.resourceBasePath,t?.sessionKey,t?.agentId]),i=this.scope===r&&(!this.localSubmission||t?.localSubmission!==!1)&&(this.canonicalMessageKey===t?.canonicalMessageKey||this.localSubmission&&!this.canonicalMessageKey),a=i?this.localSubmission:t?.localSubmission===!0,o=i&&a&&e.length===this.slots.length&&this.slots.every(({image:e})=>ME(e.url))&&e.every(e=>e.factIndex!==void 0)?e.toSorted((e,t)=>(e.factIndex??0)-(t.factIndex??0)):this.slots.map(({image:e})=>e),s=new Map(o.map((e,t)=>[e.factIndex,this.slots[t]?.key]));this.slots=e.map((e,n)=>{let r=this.slots[n],a=e.factIndex===void 0?r?.image.factIndex===void 0?r?.key:void 0:s.get(e.factIndex),o=this.policyKey===t?.policyKey||ME(e.url)||e.url!==void 0&&Qw(e.url);return{image:e,key:i&&o&&a||Symbol(`image-slot`)}}),this.scope=r,this.policyKey=t?.policyKey,this.canonicalMessageKey=t?.canonicalMessageKey,this.localSubmission=a&&!(t?.canonicalMessageKey&&e.every(e=>e.factIndex!==void 0));let c=e.length+n.length;if(!c)return B;let l=[`chat-message-images`,c===1?`chat-message-images--single`:`chat-message-images--gallery`,c===2||c===4?`chat-message-images--two-column`:``,c===5?`chat-message-images--five`:``].filter(Boolean).join(` `);return V`<div class=${l}>
      ${mi(this.slots,({key:e})=>e,({image:n})=>V`${zE(n,{...t,galleryImages:t?.galleryImages??e})}`)}
      ${n}
    </div>`}},VE=Qr(BE)})))()}function UE(e,t){let n=e.flatMap(e=>e.type===`text`?[e.text]:[]).join(`
`),r=`OPENCLAWMEDIASLOT`;for(;n.includes(r);)r+=`X`;let i=[];return{markdown:e.map(e=>e.type===`text`?e.text:(i.push(e),`${r}${i.length-1}END`)).join(`
`),media:{prefix:r,text:n,items:i,render:t}}}function WE(e){return Array.from(e.childNodes).some(e=>e.nodeType===Node.TEXT_NODE?e.textContent?.trim():e.nodeName!==`BR`)}function GE(e,t){let n=Array.from(e.childNodes,e=>({node:e,key:e instanceof Element?e.getAttribute(`data-markdown-key`):null})),r=new Map;for(let{key:e}of n)e&&r.set(e,(r.get(e)??0)+1);return mi(n,({key:e},t)=>e&&r.get(e)===1?e:t,({node:e})=>XE(e,t))}var KE,qE,JE,YE,XE,ZE,QE;function $E(){return($E=e((()=>{H(),oi(),ei(),vi(),gu(),si(),KE=class extends $r{constructor(...e){super(...e),this.previous=new Map}render(e){return gi}update(e,[t]){let n=new Map(Array.from(t.attributes,e=>[e.name,e.value]));for(let t of new Set([...this.previous.keys(),...n.keys()])){let r=this.previous.get(t),i=n.get(t);if(r!==i){if(t===`class`){let t=new Set(r?.split(/\s+/).filter(Boolean)),n=new Set(i?.split(/\s+/).filter(Boolean));for(let r of t)n.has(r)||e.element.classList.remove(r);for(let r of n)t.has(r)||e.element.classList.add(r)}else i===void 0?e.element.removeAttribute(t):e.element.setAttribute(t,i)}}return this.previous=n,gi}},qE=Qr(KE),JE=new Set([`br`,`hr`,`img`,`input`]),YE=class extends $r{update(e,[t,n]){let r=this.render(t,n);if(typeof r==`string`&&typeof Xr(e)==`string`){let t=e.startNode?.nextSibling;(!(t instanceof Text)||t.nextSibling!==e.endNode)&&Yr(e)}return r}render(e,t){let n=t.slots.get(e);if(n!==void 0){this.previous=void 0;let e=t.media?.items[n];return e?t.media?.render(e,n):B}let r=`${e.nodeType}:${e instanceof Element?e.outerHTML:e.textContent}`,i=this.previous===r;if(this.previous=r,i&&!t.mediaAncestors.has(e))return gi;if(e.nodeType===Node.TEXT_NODE)return e.textContent;if(!(e instanceof Element))return B;if(!t.incremental&&!t.mediaAncestors.has(e)||e.classList.contains(`markdown-mermaid`)||e.localName.includes(`-`))return pu(e.outerHTML);let a=li(e.localName);return JE.has(e.localName)?ci`<${a} ${qE(e)}>`:ci`<${a} ${qE(e)}>${GE(e,t)}</${a}>`}},XE=Qr(YE),ZE=class extends $r{constructor(...e){super(...e),this.source=``,this.prefix=``,this.slots=new Map,this.mediaAncestors=new Set}render(e,t,n=!1){if(!n&&!t)return pu(e);let r=t?.prefix??``;if(this.source!==e||this.prefix!==r||!this.template){this.source=e,this.prefix=r;let t=document.createElement(`template`);t.innerHTML=e,this.template=t,this.slots.clear(),this.mediaAncestors.clear();let n=RegExp(`${r}(\\d+)END`,`g`),i=document.createTreeWalker(t.content,NodeFilter.SHOW_TEXT),a=[],o=[];for(let e=i.nextNode();e;e=i.nextNode())r&&e instanceof Text&&e.data.includes(r)&&a.push(e);for(let e of a){let t=document.createDocumentFragment(),r=0;for(let i of e.data.matchAll(n)){t.append(e.data.slice(r,i.index));let n=document.createComment(i[0]);o.push(n),this.slots.set(n,Number(i[1])),t.append(n),r=i.index+i[0].length}t.append(e.data.slice(r)),e.replaceWith(t)}for(let e of o){let t=e.parentElement?.closest(`p`);if(!t)continue;let n=t.cloneNode(!1),r=document.createRange();r.setStart(t,0),r.setEndBefore(e),n.appendChild(r.extractContents()),WE(n)&&t.before(n),t.before(e),WE(t)||t.remove()}for(let e of o)for(let t=e.parentNode;t;t=t.parentNode)this.mediaAncestors.add(t)}let i={media:t,slots:this.slots,mediaAncestors:this.mediaAncestors,incremental:n};return GE(this.template.content,i)}},QE=Qr(ZE)})))()}function eD(e,t){let n=e.filter(e=>e.width>0&&e.bottom>e.top).toSorted((e,t)=>e.top-t.top),r=[];for(let e of n){let n=r.at(-1);if(!n||e.top>=Math.min(n.bottom,n.top+n.lineHeight)-tD){if(r.length>t)break;r.push({...e})}else n.bottom=Math.max(n.bottom,e.bottom),n.glyphTop=Math.min(n.glyphTop,e.glyphTop),n.lineHeight=Math.max(n.lineHeight,e.lineHeight)}if(!(r.length<t))for(let e=t-1;e>=0;e--){let t=r[e],n=r[e+1],i=Math.min(t.top+t.lineHeight*nD,n?.glyphTop??1/0);if(i>=t.top+t.lineHeight*rD)return{...t,clamp:i}}}var tD,nD,rD;function iD(){return(iD=e((()=>{tD=.5,nD=.74,rD=.66})))()}function aD(e,t,n,r){let i=[Vd(e,r)],a=V`<div class="chat-text">${pu(i[0])}</div>`;return uD(e.text,t,n,a,i)}function oD(e){return e.length>pD||e.split(`
`,41).length>mD}function sD(e){vD.add(e),!yD&&(yD=!0,queueMicrotask(()=>{yD=!1;let e=[...vD];vD.clear();for(let t of e)t.element.style.removeProperty(`--chat-disclosure-clamp`);let t=e.map(e=>e.read());for(let e of t)e?.()}))}function cD(e,t){let n=null,r,i,a=0;return o=>{let s=++a;if(i&&=(vD.delete(i),void 0),n?.disconnect(),n=null,r&&=(document.fonts?.removeEventListener(`loadingdone`,r),void 0),!(o instanceof HTMLElement))return;let c=i={element:o,read:()=>{if(a!==s)return;let n=o.parentElement,r=n?.querySelector(`:scope > .chat-message-disclosure__toggle`);if(!n||!r)return;let i,c,l=o.querySelector(`:scope > .chat-text`),u=o.scrollHeight,d=u>o.clientHeight+1;if(!t&&!e&&d&&l&&o.clientWidth>0){let e=o.getBoundingClientRect().top-o.scrollTop,t=Number.parseFloat(getComputedStyle(l).lineHeight),n=document.createTreeWalker(l,NodeFilter.SHOW_TEXT),r=document.createRange(),a=[];for(let i=n.nextNode();i;i=n.nextNode()){if(!i.textContent?.trim()||!i.parentElement?.checkVisibility()||i.parentElement.matches(`details:not([open])`))continue;let n=Number.parseFloat(getComputedStyle(i.parentElement).lineHeight)||t;r.selectNodeContents(i);for(let t of r.getClientRects()){let r=Math.floor((n-t.height)/2);a.push({top:t.top-e-r,glyphTop:t.top-e,bottom:t.bottom-e-r,width:t.width,lineHeight:n})}}for(let n of l.querySelectorAll(`details:not(:has(> summary))`)){if(!n.checkVisibility())continue;let r=getComputedStyle(n),i=Number.parseFloat(r.lineHeight)||t,o=n.getBoundingClientRect(),s=o.top-e+Number.parseFloat(r.borderTopWidth)+Number.parseFloat(r.paddingTop);a.push({top:s,glyphTop:s,bottom:s+i,width:o.width,lineHeight:i})}let s=eD(a,hD);s&&(i=`${s.clamp}px`,c=`${s.clamp-s.top-s.lineHeight*gD}px`)}let f=!e&&(t&&l?u<=Number.parseFloat(getComputedStyle(l).lineHeight)*_D+1:!d);return()=>{if(a===s){for(let[e,t]of[[`--chat-disclosure-clamp`,i],[`--chat-disclosure-fade-size`,c]])t===void 0?o.style.removeProperty(e):o.style.getPropertyValue(e)!==t&&o.style.setProperty(e,t);r.hidden=f}}}},l=()=>{a===s&&sD(c)};queueMicrotask(()=>{if(a!==s)return;let e=o.querySelector(`:scope > .chat-text`);e&&n?.observe(e)}),l(),r=l,document.fonts?.addEventListener(`loadingdone`,r),typeof ResizeObserver==`function`&&(n=new ResizeObserver(l),n.observe(o))}}function lD(e,t,n,r,i,a){let o=n.assistantMessageDisclosure,s=n.role===`assistant`,c=s||n.role===`user`&&o?.onRetryFullMessage,l=c&&o?.expanded,u=l?o.markdown??e:e,d=l?{...r,mode:`document`}:r,f=n.isStreaming?zd(u,d,s?t:void 0):[Xu(u,d),``];if(i){let e=+!!f[1].trim();f[e]=dD(f[e],i)}let p=xD(t,u,f,a),m=V`
    <div class="chat-text" dir="${Rx(a?.text??u)}">${p}</div>
  `;return c&&o?.onRetryFullMessage?V`
      ${m}
      <div class="chat-message-load-error">
        ${I(`chat.messages.fullContentLoadExhausted`)}
        <button
          type="button"
          class="chat-message-load-error__retry"
          @click=${o.onRetryFullMessage}
        >
          ${I(`common.retry`)}
        </button>
      </div>
    `:uD(e,t,n,m,f)}function uD(e,t,n,r,i){if(!n.onToggleUserMessageExpanded||(n.isForwarded?n.isStreaming:n.role!==`user`||!oD(e)))return r;let a=`${n.isForwarded?`forwarded`:`user`}-message:${t}`,o=n.isUserMessageExpanded?.(a)??!1;return V`
    <div
      class="chat-message-disclosure ${n.isForwarded?`chat-message-disclosure--forwarded`:``} ${o?`is-expanded`:``}"
    >
      <div
        class="chat-message-disclosure__content"
        ${_u([...i,o,n.isForwarded],()=>di(cD(o,!!n.isForwarded)))}
      >
        ${r}
      </div>
      <button
        class="chat-message-disclosure__toggle"
        type="button"
        aria-expanded=${String(o)}
        @click=${()=>n.onToggleUserMessageExpanded?.(a)}
      >
        ${I(o?`chat.messages.showLess`:`chat.messages.showMore`)}
        ${o?z.chevronUp:z.chevronDown}
      </button>
    </div>
  `}function dD(e,t){let n=document.createElement(`template`);n.innerHTML=e;let r=n.content.lastElementChild,i=r?fD(r):null,a=document.createElement(`span`);return a.className=`chat-duplicate-count`,a.setAttribute(`aria-label`,t.label),a.textContent=`×${t.count}`,(i??n.content).append(document.createTextNode(`\xA0`),a),n.innerHTML}function fD(e){if(/^(?:P|H[1-6])$/u.test(e.tagName))return e;if(!/^(?:BLOCKQUOTE|LI|OL|UL)$/u.test(e.tagName))return null;let t=e.lastElementChild;return t?fD(t):e.textContent?.trim()?e:null}var pD,mD,hD,gD,_D,vD,yD,bD,xD;function SD(){return(SD=e((()=>{H(),_i(),fu(),ai(),Jr(),gu(),L(),Id(),O(),tl(),Ux(),iD(),$E(),_a(),pD=1200,mD=40,hD=5,gD=.24,_D=3,vD=new Set,yD=!1,bD=class extends Kr{constructor(...e){super(...e),this.source=``,this.stableHtml=``,this.fragments=[],this.generation={},this.mediaSlots=new Map,this.mediaRender={}}disconnected(){for(let e of this.mediaSlots.values())e.part?.setConnected(!1)}reconnected(){for(let e of this.mediaSlots.values())e.part?.setConnected(!0)}render(e,t,[n,r],i){if(this.messageKey!==e){for(let e of this.mediaSlots.values())Zr(B,e.element);this.mediaSlots.clear()}if((this.messageKey!==e||!t.startsWith(this.source)||!n.startsWith(this.stableHtml))&&(this.fragments=[],this.tail=void 0,this.stableHtml=``,this.generation={}),n.length>this.stableHtml.length){let e=n.slice(this.stableHtml.length);this.tail?(this.tail.html=e,this.tail=void 0):this.fragments.push({html:e,incremental:!1})}r?this.tail?this.tail.html=r:(this.tail={html:r,incremental:!0},this.fragments.push(this.tail)):this.tail&&=(this.fragments.pop(),void 0),this.messageKey=e,this.source=t,this.stableHtml=n;let a=new Set,o=this.mediaRender={},s=i?{...i,render:(e,t)=>{let n=this.mediaSlots.get(t);return n||(n={element:document.createElement(`div`)},this.mediaSlots.set(t,n)),a.add(t),n.part=Zr(i.render(e,t),n.element),n.part.setConnected(this.isConnected),n.element}}:void 0;return queueMicrotask(()=>{if(this.mediaRender===o)for(let[e,t]of this.mediaSlots)a.has(e)||(Zr(B,t.element),this.mediaSlots.delete(e))}),fi(this.generation,V`${this.fragments.map(e=>_u([e.html,s],()=>QE(e.html,s,e.incremental)))}`)}},xD=Qr(bD)})))()}function CD(e,t={}){if(t.eligible===!1)return``;let n=(Me(e)^(t.salt??wD))>>>0;return n%1e3>=TD?``:ED[Math.floor(n/1e3)%ED.length]??``}var wD,TD,ED;function DD(){return(DD=e((()=>{wD=Math.trunc(Math.random()*4294967295),TD=50,ED=[`chat-reading-indicator--southpaw`,`chat-reading-indicator--flurry`,`chat-reading-indicator--spin`,`chat-reading-indicator--shadowbox`,`chat-reading-indicator--backflip`,`chat-reading-indicator--zen`,`chat-reading-indicator--drummer`,`chat-reading-indicator--peekaboo`,`chat-reading-indicator--nodoff`,`chat-reading-indicator--curious`,`chat-reading-indicator--omnom`,`chat-reading-indicator--fakeout`]})))()}function OD(e){return e===1?I(`chat.turnRecap.tokensOne`):I(`chat.turnRecap.tokens`,{count:jt(e)})}function kD(e,t={}){let n=t.waitingApproval===!0,r=t.waitingSubagents,i=r?0:t.runningSubagents??0,a=r?.child,o=r?.runningCount===0?r.sessionCount??0:0,s=t.workingIndicator??(t.mascot===void 0?Dr().workingIndicator:t.mascot===`none`?`dots`:`claw`),c=s===`dots`,l=t.presentation===`continuation`,u=r?r.runningCount>1?I(`chat.waitingOnSubagentsCount`,{count:String(r.runningCount)}):o>1?I(`chat.waitingOnSessionsCount`,{count:String(o)}):I(o===1?`chat.waitingOnSession`:`chat.waitingOnSubagents`):n?I(`chat.waitingForApproval`):t.startupLabel||I(`common.working`),[d=``,...f]=a?I(`chat.waitingOnSubagent`).split(`{name}`):[],p=e=>e.trim()?V`<span>${e.trim()}</span>`:B,m=a?t.onOpenSubagent?V`<button
          class="chat-working-indicator__child"
          type="button"
          title=${a.label}
          @click=${()=>t.onOpenSubagent?.(a.key)}
        >
          ${a.label}
        </button>`:V`<span class="chat-working-indicator__child" title=${a.label}
          >${a.label}</span
        >`:B,h=!a&&(r?.runningCount??0)>1&&t.onOpenSubagents!==void 0,g=i===1?I(`chat.subagentsRunningOne`):I(`chat.subagentsRunning`,{count:String(i)}),_=e=>V`<button
    class="chat-working-indicator__subagents"
    type="button"
    @click=${()=>t.onOpenSubagents?.()}
  >
    ${e}
  </button>`,v=!r&&!n&&!t.startupLabel,y=r?null:t.outputTokens,b=r?r.startedAt:e.startedAt;return V`
    <div
      class="chat-working-indicator ${l?`chat-working-indicator--continuation`:``} ${r?`chat-working-indicator--subagents`:``}"
      role="status"
      aria-live="off"
    >
      ${l||s===`none`?B:V`
              <div
                class="chat-bubble chat-reading-indicator ${c?`chat-reading-indicator--neutral`:s===`brand`?`chat-reading-indicator--brand`:CD(e.key,{eligible:!n&&!r})}"
                aria-hidden="true"
              >
                ${c?V`<span></span><span></span><span></span>`:s===`brand`?Gu():z.claw}
              </div>
            `}
      <span class="chat-working-indicator__status">
        ${a?V`${p(d)}${m}${p(f.join(``))}`:h?_(u):V`<span
                  class=${v&&!l&&s!==`none`?`sr-only`:``}
                  >${u}</span
                >`}
        ${n||b===null?B:V`
                <openclaw-elapsed-time
                  class="chat-working-indicator__elapsed"
                  .startMs=${b}
                ></openclaw-elapsed-time>
              `}
        ${y==null?v?V`
                  <openclaw-working-phrase
                    aria-hidden="true"
                    .startMs=${e.startedAt}
                    .seed=${e.key}
                    .phrases=${t.workingPhrases}
                  ></openclaw-working-phrase>
                `:B:V`
                <span aria-hidden="true">·</span>
                <span class="chat-working-indicator__tokens"
                  >${OD(y)}</span
                >
              `}
        ${i>0?V`
                <span aria-hidden="true">·</span>
                ${t.onOpenSubagents?_(g):V`<span class="chat-working-indicator__subagents">${g}</span>`}
              `:B}
      </span>
    </div>
    ${t.subagentActivity??B}
  `}function AD(e,t={}){let n=t.presentation===`continuation`,r=So(Math.max(1,Math.round(e.runtimeMs/1e3))*1e3)??``,i=typeof e.outputTokens==`number`?OD(e.outputTokens):null;return V`
    <div
      class="chat-turn-recap ${n?`chat-turn-recap--continuation`:``}"
      role="status"
    >
      ${n?B:V`<span class="chat-turn-recap__claw" aria-hidden="true"
              >${Gu(z.claw)}</span
            >`}
      <span>${I(`chat.turnRecap.doneIn`,{duration:r})}</span>
      ${i===null?B:V`
              <span class="chat-turn-recap__sep" aria-hidden="true">·</span>
              <span>${i}</span>
            `}
    </div>
  `}function jD(){return(jD=e((()=>{H(),L(),dd(),Od(),yr(),qu(),O(),rl(),Je(),DD()})))()}function MD(e=`smooth`){return e===`smooth`&&typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?`auto`:e}function ND(){return(ND=e((()=>{})))()}function PD(e){let t=sv(QD,e);if(t)return t;let n=new Map;return QD.set(e,n),pl(QD,ZD),n}function FD(e,t){let n=PD(e),r=sv(n,t);if(r!==void 0)return r;for(let[e,r]of n)if(xn(e,t))return n.delete(e),cv(n,t,r),r}function ID(e,t,n){let r=PD(e);for(let e of r.keys())xn(e,t)&&r.delete(e);cv(r,t,{scrollTop:Math.max(0,n.scrollTop),anchorToEnd:n.anchorToEnd})}function LD(e){let t=Math.max(0,e.scrollHeight-e.clientHeight),n=Math.min(Math.max(0,e.scrollTop),t);return{scrollTop:n,anchorToEnd:t-n<=8}}function RD(e){return!e.chatFollowLocked&&!$D.get(e)?.manual}function zD(e){$D.get(e)?.cancel()}function BD(e,t){e.chatNewMessagesBelow!==t&&(e.chatNewMessagesBelow=t,e.renderLifecycle.invalidate())}function VD(e,t,n,r){let i=e.chatScrollElement?.();if(!i)return;let a=i.scrollHeight-i.scrollTop-i.clientHeight,o=i.scrollHeight>(e.chatLastScrollHeight??0)+1;e.chatLastScrollHeight=i.scrollHeight;let s=r.contentChanged??r.source!==`resize`,c=r.source===`manual`,l=t&&!e.chatHasAutoScrolled;if(!(c||l||!e.chatFollowLocked&&(r.source===`resize`||e.chatUserNearBottom||a<XD))){(s||r.source===`resize`&&o)&&BD(e,!0);return}let u=MD(n?`smooth`:`auto`);e.chatScrollToEnd?.({behavior:u,source:c?`manual`:`auto`})&&(l&&(e.chatHasAutoScrolled=!0),e.chatFollowLocked=!1,e.chatUserNearBottom=!0,BD(e,!1),c&&a<=8&&JD(e,i,`toward-end`))}function HD(e,t,n,r,i){if(r.source!==`manual`&&$D.get(e)?.manual)return;zD(e);let a=null,o,s={manual:r.source===`manual`,cancel:()=>{$D.get(e)===s&&($D.delete(e),o?.(),a!==null&&cancelAnimationFrame(a))}};$D.set(e,s);let c=i=>{let o=()=>{$D.get(e)===s&&($D.delete(e),i?.(),VD(e,t,n,r))};return a=requestAnimationFrame(()=>{s.manual&&n&&MD()===`smooth`?a=requestAnimationFrame(o):o()}),s.cancel};i?c():o=e.renderLifecycle.afterCommit(c,s.cancel)}function UD(e,t=!1,n=!1,r={}){HD(e,t,n,r,!0)}function WD(e,t=!1,n=!1,r={}){HD(e,t,n,r,!1)}function GD(e,t){let n=t.currentTarget;n&&JD(e,n)}function KD(e,t=!1){zD(e);let n=e.chatScrollElement?.();n&&JD(e,n,t?`toward-end`:`reader`)}function qD(e){let t=!e.chatFollowLocked||e.chatUserNearBottom;zD(e),e.chatHasAutoScrolled=!0,e.chatFollowLocked=!0,e.chatUserNearBottom=!1,e.chatCancelScroll?.(),t&&e.renderLifecycle.invalidate()}function JD(e,t,n=!1){let r=Math.max(0,t.scrollTop),i=r-e.chatLastScrollTop;e.chatLastScrollTop=r,e.chatLastScrollHeight=t.scrollHeight;let a=n!==!1||i<0&&!e.chatIsMaintenanceScroll?.();if(e.chatIsProgrammaticScroll?.()&&!a)return;let o=t.scrollHeight-t.scrollTop-t.clientHeight,s=e.chatReadingHistory;a&&o>8?(e.chatHasAutoScrolled=!0,e.chatFollowLocked=!0,e.chatReadingHistory=!0):o<=8&&(i>0||n===`toward-end`)&&(e.chatFollowLocked=!1,e.chatReadingHistory=!1),e.chatReadingHistory!==s&&e.renderLifecycle.invalidate(),e.chatUserNearBottom=!e.chatFollowLocked&&o<XD,BD(e,t.scrollHeight-t.clientHeight>8&&o>8)}function YD(e){zD(e),e.chatHasAutoScrolled=!1,e.chatUserNearBottom=!0,e.chatFollowLocked=!1,e.chatReadingHistory=!1,e.chatLastScrollTop=0,e.chatLastScrollHeight=0,e.chatNewMessagesBelow=!1}var XD,ZD,QD,$D;function eO(){return(eO=e((()=>{M(),uv(),XD=450,ZD=8,QD=new Map,$D=new WeakMap})))()}function tO(e){return{scrollTop:e.scrollTop,clientHeight:e.clientHeight,scrollHeight:e.scrollHeight}}function nO(e,t){let n=iO.get(e)??new Set;return n.add(t),iO.set(e,n),()=>{n.delete(t),n.size===0&&iO.delete(e)}}function rO(e,t){for(let n of iO.get(e)??[])n(t)}var iO;function aO(){return(aO=e((()=>{iO=new WeakMap})))()}function oO(e){return e.matches(`.agent-chat__composer-combobox > textarea`)&&typeof CSS<`u`&&CSS.supports(`field-sizing`,`content`)}function sO(e){let t=window.visualViewport?.offsetTop??0,n=e.getBoundingClientRect().top-t-TO;e.style.setProperty(`--chat-composer-popover-max-height`,`${Math.max(0,n)}px`)}function cO(e){if(wO.has(e))return;let t=window.visualViewport,n={resizeObserver:null,toggleObserver:null,viewport:t,updateFrame:null,scheduleUpdate:()=>{n.updateFrame===null&&(n.updateFrame=requestAnimationFrame(()=>{n.updateFrame=null,wO.get(e)===n&&sO(e)}))}};typeof ResizeObserver==`function`&&(n.resizeObserver=new ResizeObserver(n.scheduleUpdate),n.resizeObserver.observe(e)),typeof MutationObserver==`function`&&(n.toggleObserver=new MutationObserver(n.scheduleUpdate),n.toggleObserver.observe(e,{attributes:!0,attributeFilter:[`open`],subtree:!0})),window.addEventListener(`resize`,n.scheduleUpdate),t?.addEventListener(`resize`,n.scheduleUpdate),t?.addEventListener(`scroll`,n.scheduleUpdate),wO.set(e,n),sO(e)}function lO(e){let t=wO.get(e);wO.delete(e),t&&(t.resizeObserver?.disconnect(),t.toggleObserver?.disconnect(),window.removeEventListener(`resize`,t.scheduleUpdate),t.viewport?.removeEventListener(`resize`,t.scheduleUpdate),t.viewport?.removeEventListener(`scroll`,t.scheduleUpdate),t.updateFrame!==null&&cancelAnimationFrame(t.updateFrame))}function uO(e,t){let n=t instanceof HTMLElement?t:null;return e&&e!==n&&lO(e),n&&cO(n),n}function dO(e,t){t.nativeInputPending=!0;let n=e.closest(`.chat`)?.querySelector(`.chat-thread`);n&&rO(n,{type:`composer-input`}),t.hasScrollbarGutter&&e.style.overflowY!==`hidden`&&(e.style.overflowY=`hidden`)}function fO(e){e.removeAttribute(`data-scroll-fade-top`),e.removeAttribute(`data-scroll-fade-bottom`);let t=CO.get(e);t&&t.overflowFrame===null&&(t.overflowFrame=requestAnimationFrame(()=>{t.overflowFrame=null,e.isConnected&&CO.get(e)===t&&pO(e,!1)}))}function pO(e,t=!0,n){if(t&&CO.get(e)?.editing&&oO(e)){fO(e);return}let r=n?.clientHeight??e.clientHeight,i=n?.scrollHeight??e.scrollHeight,a=i>r+1,o=a&&r>=64&&!CO.get(e)?.editing,s=o&&e.scrollTop>1,c=o&&e.scrollTop+r<i-1,l=a?`auto`:`hidden`;e.style.overflowY!==l&&(e.style.overflowY=l),e.toggleAttribute(`data-scroll-fade-top`,s),e.toggleAttribute(`data-scroll-fade-bottom`,c);let u=CO.get(e);if(u){if(u.hasScrollbarGutter=!1,a&&oO(e)){let t=getComputedStyle(e);u.hasScrollbarGutter=e.offsetWidth-e.clientWidth>Number.parseFloat(t.borderLeftWidth)+Number.parseFloat(t.borderRightWidth)}let t=u.height!==r;if(u.height=r,u.nativeInputPending){u.nativeInputPending=!1;let n=e.closest(`.chat`)?.querySelector(`.chat-thread`);n&&rO(n,{type:`composer-layout`,changed:t})}}}function mO(e,t={}){if(e.closest(`[data-composer-layout="single-line"]`)){e.style.height=``,e.style.overflowY=``,e.removeAttribute(`data-scroll-fade-top`),e.removeAttribute(`data-scroll-fade-bottom`);return}let n=e.closest(`.chat`)?.querySelector(`.chat-thread`)??null,r=CO.get(e);if(t.nativeInput&&r&&oO(e)){dO(e,r),e.style.height!==``&&(e.style.height=``),fO(e);return}n&&rO(n,{type:`before-resize`});let i=n?.clientHeight,a=n?LD(n):null,o=getComputedStyle(e),s=o.maxHeight.trim(),c=/^(\d+(?:\.\d+)?)px$/u.exec(s),l=c?Number(c[1]):150,u=o.boxSizing===`border-box`,d=Number.parseFloat(o.lineHeight)*e.rows+(u?Number.parseFloat(o.paddingTop)+Number.parseFloat(o.paddingBottom):0),f=Math.max(Number.parseFloat(o.minHeight),Math.round(d)+(u?Number.parseFloat(o.borderTopWidth)+Number.parseFloat(o.borderBottomWidth):0)),p=/^(\d+(?:\.\d+)?)px$/u.exec(e.style.height);if(!p||Number(p[1])<=f||c&&Number(p[1])>=l){let t=Number.parseFloat(o.height),n=e.scrollHeight,r=e.clientHeight,i=n>r+1,a=!i&&t===f,s=i&&c&&t>=l&&e.offsetWidth-e.clientWidth<=Number.parseFloat(o.borderLeftWidth)+Number.parseFloat(o.borderRightWidth);if(a||s){pO(e,!1,{scrollHeight:n,clientHeight:r});return}}e.style.overflowY=`hidden`,e.style.height=`auto`;let m=o.boxSizing===`border-box`?e.offsetHeight-e.clientHeight:0;if(e.style.height=`${Math.min(e.scrollHeight+m,l)}px`,pO(e),n){a?.anchorToEnd&&(n.scrollTop=n.scrollHeight);let e=n.scrollTop,t=n.clientHeight;if(t===i&&e===a?.scrollTop)return;rO(n,{type:`resize`,viewport:{clientHeight:t,scrollHeight:n.scrollHeight,scrollTop:e},...a?.anchorToEnd&&a.scrollTop!==e?{scrollCorrection:{before:a.scrollTop,after:e}}:{}})}}function hO(e){if(CO.has(e))return;let t={observer:null,adjustmentFrame:null,overflowFrame:null,height:e.clientHeight,nativeInputPending:!1,hasScrollbarGutter:!1,editing:!1,events:new AbortController},n=e.getBoundingClientRect().width,r=()=>pO(e,!1);t.observer=typeof ResizeObserver==`function`?new ResizeObserver(()=>{let r=e.getBoundingClientRect().width;if(r!==n){n=r,CO.get(e)===t&&t.adjustmentFrame===null&&(t.adjustmentFrame=requestAnimationFrame(()=>{t.adjustmentFrame=null,CO.get(e)===t&&mO(e)}));return}pO(e,!1)}):null;let i=n=>{n instanceof KeyboardEvent&&(n.isComposing||!/^(ArrowUp|ArrowDown|ArrowLeft|ArrowRight|PageUp|PageDown|Home|End)$/u.test(n.key))||(t.editing=[`beforeinput`,`input`,`compositionstart`,`keydown`].includes(n.type),n.type===`beforeinput`&&oO(e)&&dO(e,t),pO(e))},a={passive:!0,signal:t.events.signal};for(let t of[`beforeinput`,`input`,`compositionstart`,`wheel`,`pointerdown`,`keydown`,`blur`])e.addEventListener(t,i,a);e.addEventListener(`scroll`,r,a),CO.set(e,t),t.observer?.observe(e),pO(e)}function gO(e){let t=CO.get(e);if(CO.delete(e),t){t.observer?.disconnect(),t.events.abort();for(let e of[t.adjustmentFrame,t.overflowFrame])e!==null&&cancelAnimationFrame(e)}}function _O(e){queueMicrotask(()=>{e.isConnected&&mO(e,{nativeInput:!0})})}function vO(e,t){if(e.defaultPrevented)return;let n=e.target;if(!(n instanceof Element))return;if(e.type===`pointerdown`){e.button===0&&n.closest(`summary, wa-dropdown>[slot='trigger']`)&&e.preventDefault();return}if(!t||e.composedPath().some(e=>e instanceof Element&&e.matches(SO)))return;let r=e.currentTarget;r instanceof HTMLElement&&r.querySelector(`.agent-chat__composer-combobox > textarea`)?.focus({preventScroll:!0})}function yO(e,t){let n=t?.closest(`.agent-chat__composer-shell`);document.activeElement===t&&n&&e.preventDefault()}function bO(e,t){requestAnimationFrame(()=>{if(document.activeElement!==e)return;mO(e);let n=t===`up`?0:e.value.length;e.selectionStart=n,e.selectionEnd=n})}function xO(e,t){return`chat-${encodeURIComponent(e)}-${t}`}var SO,CO,wO,TO;function EO(){return(EO=e((()=>{eO(),aO(),SO=[`a[href]`,`button`,`input`,`select`,`textarea`,`summary`,`wa-dropdown`,`[contenteditable='true']`,`[role='button']`,`[role='listbox']`,`[role='option']`].join(`,`),CO=new WeakMap,wO=new WeakMap,TO=28})))()}function DO(e){if(!e)return;let t=/^(?![A-Za-z]:[/\\])(?:\[[^\]]+\]|[^:@/\s]+):((?!\/\/)[^\s\\]+)$/u.exec(e)?.[1];try{if(!t){let n=new URL(e);if(!n.hostname||n.username||n.password)return;t=n.pathname}let n=t.split(`/`).findLast(Boolean),r=n?decodeURIComponent(n).replace(/\.git$/iu,``).trim():``;return r&&!/[/\\\p{Cc}]/u.test(r)&&r!==`.`&&r!==`..`?r:void 0}catch{return}}function OO(e){return e.map(({displayName:e,originUrl:t})=>{let n=t?.replace(/^github\.com:/iu,`git@github.com:`).replace(/^ssh:\/\/github\.com(?::22)?\//iu,`ssh://git@github.com/`),r=n?rf(n):null,[i,a]=r?new URL(r.url).pathname.slice(1,-4).split(`/`):[];if(i&&a)return{owner:i,repo:a,aliases:[e]};let o=DO(t);return{aliases:o&&o.toLowerCase()!==e.toLowerCase()?[e,o]:[e]}})}function kO(e){let t=AO.get(e);if(t)return t;let n=bt(e.snapshot),r=new Set,i={result:null,repositories:[],ready:!1},a=``,o=null,s,c=()=>{n.invalidate(),o=null,i={result:null,repositories:[],ready:!1}},l=()=>r.forEach(e=>e()),u=()=>{let t=e.snapshot,r=JSON.stringify([e.connection.gatewayUrl,e.connectionRevision,t.selfUser?.id,t.hello?.auth?.recoveryScope,t.hello?.auth?.role,[...t.hello?.auth?.scopes??[]].toSorted(),oa(t,`projects.list`,`operator.read`)]);return n.transition(t)||r!==a?(a=r,c(),!0):!1},d=(t=!1)=>{if(u(),t&&(c(),l()),o)return o;let r=n.capture();if(!r)return Promise.resolve();if(!oa(e.snapshot,`projects.list`,`operator.read`))return i={result:{projects:[]},repositories:[],ready:!0},l(),Promise.resolve();let a=r.client.request(`projects.list`,{}).then(e=>{u(),n.isCurrent(r)&&(i={result:e,repositories:OO(e.projects),ready:!0})},()=>{u()}).finally(()=>{o===a&&(o=null,l())});return o=a,a},f={get snapshot(){return u()&&r.size&&d(),i},get loading(){return o!==null},refresh:d,subscribe(t){if(r.add(t),!s){let t=e.subscribe(()=>{u()&&(l(),d())}),n=e.subscribeEvents(e=>{e.event===`config.changed`&&d(!0)});s=()=>{t(),n()}}return u(),i.ready||d(),()=>{r.delete(t),r.size||(s?.(),s=void 0,c())}}};return AO.set(e,f),f}var AO;function jO(){return(jO=e((()=>{nf(),sa(),AO=new WeakMap})))()}function MO(e,t,n){e?.settingsAgentSelection.set(t),e?.navigate(`model-providers`,{search:`?provider=${encodeURIComponent(n)}`})}function NO(){return(NO=e((()=>{})))()}function PO(e){return e?.source===`session-key`||e?.source===`session`}function FO(e,t){if(!e||!t||e.agentRuntime?.id===t)return e;let n=e.runtimeChoices?.find(e=>e.agentRuntime.id===t);return n?{id:e.id,name:e.name,provider:e.provider,alias:e.alias,tags:e.tags,apiKeySupported:e.apiKeySupported,...n}:void 0}function IO(){return(IO=e((()=>{})))()}function LO(e){let t=e.captureConnectionScope(),n=()=>!!(t&&e.isConnectionScopeCurrent(t)),r=null,i=new Set;return{isCurrent:n,read:()=>n()?r:null,subscribe(e){return Vl(i,e)},confirm:e=>{if(!n())return;r=e;let t=[...i];for(let e of t)e()}}}function RO(e,t,n){let r=Fe(t),i=/^agent:([^:]+):(.*)$/u.exec(r),a=i?.[2]??r,o=b(t),s=[Ql,Ve(e)].includes(a.toLowerCase()),c=x(e),l=i?.[1],u=s&&ru(l??``)===`main`&&c!==`main`&&e.agentsList?.agents!=null&&!e.agentsList.agents.some(e=>ru(e.id)===`main`),d=e.agentsList?.scope?e.agentsList.scope===`global`:b(He(Ql,e.hello)),f=(u?c:n?.trim()||l)||(o?se(e):c),p=o||s&&d?`global`:s?Ql:a;return`agent:${ru(f)}:${p}`}function zO(e,t,n){let r=RO(e,t,n);return UO.get(e.sessions)?.get(r)?.ready}function BO(e,t,n,r={}){let i=e.sessions,a=RO(e,t,r.agentId),o=UO.get(i)??new Map;UO.set(i,o);let s=o.get(a),c=s?.ready,l=s?.receipt.isCurrent()?s.receipt:LO(i),u=r.canDispatch,d=(async()=>{let e=await i.patch(t,n,{agentId:r.agentId,expectedSessionId:r.expectedSessionId,ownsModelOverride:r.ownsModelOverride,canDispatch:u?()=>u(l.read()):void 0,onConfirmed:l.confirm,onRejected:e=>r.onRejected?.(e,l.read()),waitFor:c,...c?{predecessorReceipt:l}:{}});return e&&await r.reconcile?.(e),e})(),f={ready:d.then(e=>e!==null,()=>!1),receipt:l};return o.set(a,f),f.ready.finally(()=>{o.get(a)===f&&o.delete(a)}),d}function VO(e,t){let n=hl(e),r=kn(n??``),i=r&&r.agentId!==`main`&&(r.rest===`main`||r.rest===`global`)?r.agentId:void 0,a=i??hl(t.agentId);return(n===`global`||i)&&a?{agentId:a}:{}}async function HO(e,t,n,r={}){let i=await BO({sessions:e.sessions,assistantAgentId:e.agentId,agentsList:e.defaultAgentId?{defaultId:e.defaultAgentId}:null,hello:null},t,n,{...VO(t,e),...r});if(!i)throw Error(`Session capability is unavailable`);return i}var UO;function WO(){return(WO=e((()=>{dt(),M(),UO=new WeakMap})))()}function GO(e){ik.get(e)?.abort(),ik.delete(e)}function KO(e){GO(e);let t=Object.keys(e.chatModelSwitchPromises??{}),n=new Set([e.sessionKey,...t]);D(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 qO(e){return{...En,includeGlobal:!0,includeUnknown:!0,configuredAgentsOnly:!0,includeDerivedTitles:!0,archivedFilter:e.sessionsArchivedFilter??`active`}}function JO(e){return e.sessions.refresh({...qO(e),...nn(e,e.sessionKey),force:!0})}function YO(e,t){return e.sessions.refresh({...qO(e),...pe(e,t),force:!0})}function XO(e,t){return e.sessionsResult?.sessions.find(n=>hn(e,n.key,t,n.agentId??e.sessionsResultAgentId))}function ZO(e,t){let n=XO(e,t),r=e.sessions,i=r.captureConnectionScope(),a=e.client,o=nn(e,t).agentId,s=n?.sessionId,c=o??n?.agentId??e.sessionsResultAgentId,l=n=>hn(e,n.key,t,n.agentId??c),u=()=>!!(i&&e.connected&&e.client===a&&e.sessions===r&&r.isConnectionScopeCurrent(i)&&xn(e.sessionKey,t)&&nn(e,t).agentId===o),d=()=>u()&&(n?e.sessionsResult?.sessions.some(e=>l(e)&&e.sessionId===s)===!0:!e.sessionsResult?.sessions.some(e=>l(e)&&e.sessionId!==void 0));return{sessionId:s,settings:{...n,...r.settingsPreview(t,o)},agentParams:ce(e,t),isCurrent:d,row:n=>{if(!(n?!u()||!hn(e,n.key,t,c):!d()))return e.sessionsResult?.sessions.find(e=>l(e)&&e.sessionId===(s??n?.entry.sessionId))}}}async function QO(e,t,n,r,i,a){let o=i=>(n.isCurrent()||!!n.row(i))&&Ue(e.hello?.auth,{method:`sessions.patch`,params:{key:t,...r},sessionScope:!0,session:n.row(i)}).allowed;Q(e,null,!0);let s=null;try{if(!o())return!1;let c=BO(e,t,r,{...n.agentParams,expectedSessionId:n.sessionId,canDispatch:o,onRejected:(t,r)=>{(n.isCurrent()||n.row(r))&&Q(e,`Failed to set ${i}: ${F(t)}`,!0)},reconcile:()=>JO(e)});return a?.(),s=await c,s!==null}catch{return!1}finally{a?.(s)}}function $O(e,t,n=e.sessionKey){if(!e.client||!e.connected)return Promise.resolve(!1);let r=ZO(e,n);if(t.kind===`fastMode`){let i=t.value===``?void 0:t.value===`auto`||t.value===`ultrafast`?t.value:t.value===`on`;return r.settings.fastMode===i?Promise.resolve(!0):QO(e,n,r,{fastMode:i??null},`speed`)}if(t.kind===`contextWindow`){let i=t.value.trim()||void 0;return(r.settings.contextWindow??``)===(i??``)?Promise.resolve(!0):QO(e,n,r,{contextWindow:i??null},`context window`)}let i=r.settings.thinkingLevel,a=(bi(t.value)??t.value.trim())||void 0;return((typeof i==`string`&&i.trim()?bi(i)??i.trim():void 0)??``)===(a??``)?Promise.resolve(!0):QO(e,n,r,{thinkingLevel:a??null},`thinking level`,t=>{let n=r.row(t);n&&(e.chatThinkingLevel=n.thinkingLevel??null)})}function ek(e,t){ik.get(e)?.abort();let n=new AbortController;ik.set(e,n);let r=e.client,i=e.connectionEpoch,a=e.sessions,o=e.sessionKey,s=ce(e,t),c=XO(e,t),l=c?.sessionId,u=(c=l)=>!n.signal.aborted&&ik.get(e)===n&&e.connected&&e.client===r&&e.connectionEpoch===i&&e.sessions===a&&e.sessionKey===o&&ce(e,t).agentId===s.agentId&&XO(e,t)?.sessionId===c;return{owner:n,ownsSelection:u,agentScope:s,get expectedSessionId(){return l},activeRow:c,adoptCreatedSession(e){return l!==void 0||!u(e)?!1:(l=e,!0)}}}async function tk(e,t,n,r,i,a=()=>!0,o=!1){let{owner:s,ownsSelection:c,agentScope:l}=i,u=I(`chat.nativeRuntimeRecovery.reasons.${t.reason}`,{runtime:t.runtimeLabel}),d=()=>Q(e,`${u} ${I(`chat.nativeRuntimeRecovery.chooseAnother`)}`,!0),f=()=>c()&&a();try{let a=t.recovery?.sessionId;if(i.expectedSessionId===void 0&&a&&(!c()&&!c(a)||(await YO(e,{sessionKey:n,...l}),!i.adoptCreatedSession(a)))||!c())return!1;let{confirmNativeRuntimePermissionRecovery:u}=await $l(async()=>{let{confirmNativeRuntimePermissionRecovery:e}=await import(`./chat-native-runtime-recovery-StS6X2w9.js`);return{confirmNativeRuntimePermissionRecovery:e}},__vite__mapDeps([12,0,1,2,3,4,5,6,7]),import.meta.url),p=await u(e,n,t,{...l,...r===void 0?{}:{model:r||null},expectedSessionId:i.expectedSessionId,signal:s.signal,retriesMessage:o,canDispatch:f});return!p&&f()&&d(),!c()||!p?!1:(Q(e,p.listRefreshError?I(`chat.nativeRuntimeRecovery.refreshFailed`,{error:p.listRefreshError}):null,!0),!0)}catch(t){return c()&&Q(e,I(`chat.nativeRuntimeRecovery.failed`,{error:F(t)}),!0),!1}}function nk(e,t){let n=ek(e,t),r=n.expectedSessionId===void 0,i=n.activeRow?.model,a=n.activeRow?.modelProvider,o=n.activeRow?.agentRuntime?.id,s=Vs({activeSession:n.activeRow,chatModelCatalog:e.chatModelCatalog,modelOverrides:e.sessions.state.modelOverrides,sessionKey:t,sessionsResult:e.sessionsResult??null})||Wt(e.sessionsResult?.defaults?.model,e.sessionsResult?.defaults?.modelProvider,e.chatModelCatalog);return async c=>{if(!await tk(e,c,t,void 0,n,()=>{let n=XO(e,t);return r?!(!s||Wt(n?.model,n?.modelProvider,e.chatModelCatalog)!==s||n?.agentRuntime?.id!==c.runtimeId||o&&o!==c.runtimeId):!!(s&&n?.model===i&&n?.modelProvider===a&&n?.agentRuntime?.id===o&&o===c.runtimeId)},!0))return;let l=()=>XO(e,t),u=l(),d=u?.model,f=u?.modelProvider,p=u?.agentRuntime?.id;return()=>{let e=l();return n.ownsSelection()&&e?.model===d&&e?.modelProvider===f&&e?.agentRuntime?.id===p}}}async function rk(e,t,n=e.sessionKey,r){if(!e.client||!e.connected)return!1;let i=XO(e,n);if(i?.modelSelectionLocked===!0)return!1;let a=ek(e,n),{ownsSelection:o,agentScope:s}=a,c=Vs({activeSession:i,chatModelCatalog:e.chatModelCatalog,modelOverrides:e.sessions.state.modelOverrides,sessionKey:n,sessionsResult:e.sessionsResult??null}),l=i?.runtimeSelectionLocked&&r===null?void 0:r,u=l===void 0||!i?.runtimeSelectionLocked&&(l===null?!PO(i?.agentRuntime):PO(i?.agentRuntime)&&i?.agentRuntime?.id===l);if(c===t&&u)return!0;let d=ce(e,n).agentId,f=()=>!D(e,n)||se(e)===d,p={model:t||null,...l===void 0?{}:{agentRuntime:l}},m=()=>o()&&Ue(e.hello?.auth,{method:`sessions.patch`,params:{key:n,...p},sessionScope:!0,session:XO(e,n)}).allowed;if(!m())return!1;Q(e,null,!0);let h={},g=(async()=>{try{return await BO(e,n,p,{...s,expectedSessionId:a.expectedSessionId,ownsModelOverride:f,canDispatch:m,reconcile:()=>JO(e)})!==null}catch(r){if(!o())return!1;let i=r instanceof vr?aa(r.details):void 0;return i?await tk(e,i,n,t,a,()=>!l||l===i.runtimeId):(Q(e,`Failed to set model: ${F(r)}`,!0),!1)}finally{if(e.chatModelSwitchPromises?.[n]===h.current){let t={...e.chatModelSwitchPromises};delete t[n],e.chatModelSwitchPromises=t}e.requestUpdate?.()}})();return h.current=g,e.chatModelSwitchPromises={...e.chatModelSwitchPromises,[n]:g},e.requestUpdate?.(),g}var ik;function ak(){return(ak=e((()=>{ki(),Oi(),Un(),O(),Ac(),Zt(),ca(),P(),qe(),dt(),M(),rv(),WO(),Yl(),ds(),ik=new WeakMap})))()}async function ok(e,t){try{let n=t.runId===null||t.sessionAbortable===!0,r=cu(await e.request(n?`sessions.abort`:`chat.abort`,{...n?{key:t.sessionKey}:{sessionKey:t.sessionKey},...t.agentId?{agentId:t.agentId}:{},...t.runId===null?t.clearQueued?{clearQueued:!0}:{}:{runId:t.runId,...t.discardPendingInput?{discardPendingInput:!0}:{}}}));return{ok:!0,noActiveRun:r?.aborted===!1||r?.status===`no-active-run`,warning:K(r?.warning)}}catch(e){return{ok:!1,error:e,...e instanceof vr&&cu(e.details)?.errorKind===`state_contention`?{errorKind:`state_contention`}:{}}}}function sk(e,t){return b(t)||je(e)&&fe(e,t)!==null?{}:{clearQueued:!0}}function ck(e,t){return e.sessionsResult?.sessions.find(r=>n(e,t.sessionKey,r.key,r.agentId??e.sessionsResultAgentId??void 0,t.agentId))}function lk(e,t,n=`run`){let r=e.chatRunSessionAbortable===!0,i=n===`run`?e.chatRunId??null:null,a={sourceClient:t,recoveryScope:e.hello?.auth?.recoveryScope??t.recoveryScope,sessionKey:e.sessionKey,conversation:k(e,e.sessionKey),...ce(e,e.sessionKey)},o=ck(e,a)?.sessionId,s={...a,...o?{sessionId:o}:{}};return i?{...s,runId:i,...r?{sessionAbortable:!0}:{}}:{...s,runId:null,...sk(e,e.sessionKey)}}function uk(){return(uk=e((()=>{Un(),te(),M()})))()}function dk(e,t,n={}){let r=t=>T(e,{method:t,requiredScope:`operator.admin`});return{compact:r(`sessions.compact`),abort:T(e,{method:t&&!n.sessionAbortable?`chat.abort`:`sessions.abort`,requiredScope:`operator.write`,sessionScope:!0,session:n.session}),rewind:r(`sessions.rewind`),fork:T(e,{method:`sessions.fork`,requiredScope:`operator.write`}),reset:r(`sessions.reset`),branchSwitch:r(`sessions.branches.switch`)}}function fk(){return(fk=e((()=>{qe()})))()}function pk(e){return typeof e==`string`?e:e instanceof Error&&typeof e.message==`string`?e.message:`unknown error`}function mk(e){let t=pk(e.message),n=ql(t),r=du(e.details),i=Il(t),a=r?.reason??i?.reason;if(n.startsWith(`pairing required:`)&&a)return`gateway pairing required: ${Hl(a)}`;if(i&&n!==`pairing required`)return t;switch(r?.reason){case`scope-upgrade`:case`role-upgrade`:{let t=r.reason===`scope-upgrade`?`scope`:`role`,n=t===`scope`?r.approvedScopes:r.approvedRoles,i=t===`scope`?r.requestedScopes:r.requestedRole;return!n&&!i?Xl(e.details):`device ${t} upgrade requires approval (approved: ${n?.join(`, `)??`none`}; requested: ${Array.isArray(i)?i.join(`, `):i??`none`})`}case`metadata-upgrade`:return`device reconnect details changed and require approval`;default:return`gateway pairing required`}}function hk(e){let t=pk(e.message);switch(jr(e)){case Bl.AUTH_TOKEN_MISMATCH:return`gateway token mismatch`;case Bl.AUTH_UNAUTHORIZED:return`gateway auth failed`;case Bl.AUTH_RATE_LIMITED:return`too many failed authentication attempts`;case Bl.PAIRING_REQUIRED:return mk(e);case Bl.CONTROL_UI_DEVICE_IDENTITY_REQUIRED:return`device identity required (use HTTPS or localhost)`;case Bl.CONTROL_UI_ORIGIN_NOT_ALLOWED:return`origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)`;case Bl.AUTH_TOKEN_MISSING:return`gateway token missing`}let n=ql(t);return[`fetch failed`,`failed to fetch`,`connect failed`].includes(n)?`gateway connect failed`:t}function gk(e){let t=e&&typeof e==`object`?hk(e):pk(e);return F(t)}function _k(){return(_k=e((()=>{Gl(),Un(),P()})))()}function vk(e,t){let n=Math.max(0,e.length-Tk),r=[...t];for(let t=e.length-1;t>=n;t--){let n=e[t];if(!n||typeof n!=`object`)continue;let i=n;if((typeof i.role==`string`?i.role.toLowerCase():``)!==`user`)continue;let a=Ka(n);a&&a.trim()&&r.push({text:a,ts:typeof i.timestamp==`number`?i.timestamp:0})}return r.sort((e,t)=>t.ts-e.ts),[...new Set(r.map(({text:e})=>e))]}function yk(e,t){let n=t.trim();if(!n)return;let r=e.chatLocalInputHistoryBySession[e.sessionKey]??[];r[0]?.text!==n&&(e.chatLocalInputHistoryBySession[e.sessionKey]=[{text:n,ts:Date.now()},...r].slice(0,Tk))}function bk(e){e.chatInputHistorySessionKey=null,e.chatInputHistoryItems=null,e.chatInputHistoryIndex=-1,e.chatDraftBeforeHistory=null,e.chatMentionsBeforeHistory=void 0}function xk(e,t,n){e.chatMentions=n??$s(e.chatMessage,t,e.chatMentions),e.chatMessage=t,bk(e)}function Sk(e){if(e.chatInputHistoryItems!==null&&e.chatInputHistorySessionKey===e.sessionKey)return e.chatInputHistoryItems;let t=vk(e.chatMessages,e.chatLocalInputHistoryBySession[e.sessionKey]??[]);return e.chatInputHistoryItems=t,e.chatInputHistorySessionKey=e.sessionKey,e.chatInputHistoryIndex=-1,e.chatDraftBeforeHistory=e.chatMessage,e.chatMentionsBeforeHistory=e.chatMentions,t}function Ck(e,t){let n=Sk(e);if(n.length===0)return!1;let r=e.chatInputHistoryIndex+(t===`up`?1:-1);return r<-1||r>=n.length?!1:(e.chatInputHistoryIndex=r,e.chatMessage=r===-1?e.chatDraftBeforeHistory??``:n[r]??e.chatMessage,e.chatMentions=r===-1?e.chatMentionsBeforeHistory:[],!0)}function wk(e,t){if(e.chatInputHistoryIndex!==-1&&(e.chatInputHistorySessionKey!==e.sessionKey||e.chatInputHistoryItems?.[e.chatInputHistoryIndex]!==e.chatMessage)&&bk(e),e.chatLoading||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey||t.isComposing||t.keyCode===229||t.selectionStart!==t.selectionEnd||e.chatInputHistoryIndex===-1&&(t.key===`ArrowDown`||t.selectionStart!==0))return{handled:!1,preventDefault:!1,restoreCaret:null};let n=t.key===`ArrowUp`?`up`:`down`,r=Ck(e,n);return{handled:r,preventDefault:r,restoreCaret:r?n:null}}var Tk;function Ek(){return(Ek=e((()=>{ps(),Yo(),Tk=100})))()}function Dk(e){return e.toolStreamById instanceof Map&&Array.isArray(e.toolStreamOrder)&&Array.isArray(e.chatToolMessages)&&Array.isArray(e.chatStreamSegments)}function Ok(e){e.chatToolMessages=e.toolStreamOrder.map(t=>e.toolStreamById.get(t)?.message).filter(e=>!!e)}function kk(e){e.toolStreamSyncTimer!=null&&(clearTimeout(e.toolStreamSyncTimer),e.toolStreamSyncTimer=null)}function Ak(e){kk(e),e.toolStreamById.clear(),e.toolStreamOrder=[],e.activityEventSeqById?.clear(),e.chatToolMessages=[],e.chatStreamSegments=[],e.knownAgentRunIds?.clear(),e.waitingApprovalStatuses?.clear()}function jk(e,t){kk(e);let n=new Set(e.toolStreamOrder.filter(n=>e.toolStreamById.get(n)?.runId===t));for(let t of n)e.toolStreamById.delete(t);let r=`tool:[${JSON.stringify(t)},`;for(let n of e.activityEventSeqById?.keys()??[])(n.startsWith(r)||n.startsWith(`item:${t}:`))&&e.activityEventSeqById?.delete(n);e.toolStreamOrder=e.toolStreamOrder.filter(e=>!n.has(e)),Ok(e),e.chatStreamSegments=e.chatStreamSegments.filter(e=>e.runId!==t),e.knownAgentRunIds?.delete(t);for(let[n,r]of e.waitingApprovalStatuses??[])r.runId===t&&e.waitingApprovalStatuses?.delete(n)}function Mk(){return(Mk=e((()=>{})))()}function Nk(e,t){e.lastError=t,e.chatError=t}function Pk(e){return!!(e.chatSending||e.chatRunId)}function Fk(e,t,n){if(e.chatRunStatus?.runId===t||e.lastLocalTerminalReconcile?.runId===t)return;let r=Yg(e).runs[t];if(r&&r.status!==`streaming`)return;l_(e,{type:`runDelta`,runId:t});let i=e.chatRunId===t,a=i&&typeof e.chatStream==`string`;i||(Qk(e,{clearToolStreamForRun:!0,clearIndicators:!!e.chatRunId,clearRunStatus:!0,requestUpdate:!1}),e.chatRunError=null,e.providerPolicyNotice?.runId!==t&&(e.providerPolicyNotice=null)),e.chatRunId=t,Qg(e,t),a||(e.chatStream=``,e.chatStreamStartedAt=n)}function Ik(e,t,n,r){Qg(e,n),e.chatRunError={...r?{kind:r}:{},summary:m(t.trim()),...n?{runId:n}:{}}}function Lk(e,t){if(e.chatRunId)return!0;let n=ge(e.sessionKey);return!!(n&&e.sessionsResult?.sessions.some(e=>ge(e.key)===n&&(Zl(e)||t&&e.hasActiveSubagentRun===!0)))}function Rk(e){return Lk(e,!1)}function zk(e){return Lk(e,!0)}function Bk(e){return aA.has(ql(e))}function Vk(e,t){let n=k(e,e.sessionKey),r=e.chatQueue?.find(e=>e.sendState===`sending`&&e.sendRunId)?.sendRunId,i=e.chatRunId??r??null,a=e.lastLocalTerminalReconcile,o=a?k(e,a.sessionKey,a.agentId):void 0,s=t.runId!==null&&i===null&&a?.runId===t.runId&&o?.sessionKey===t.conversation.sessionKey&&o.agentId===t.conversation.agentId;return e.client===t.sourceClient&&n.sessionKey===t.conversation.sessionKey&&n.agentId===t.conversation.agentId&&(i===t.runId||s)&&ce(e,e.sessionKey).agentId===t.agentId}async function Hk(e,t,n){if(Vk(e,t)){if(n.ok)n.warning?(Ik(e,n.warning,t.runId??void 0,`stop`),e.requestUpdate?.()):n.noActiveRun&&e.connected&&await e.refreshCurrentChat?.();else{let r=gk(n.error);n.errorKind===`state_contention`?(Nk(e,null),Ik(e,r,t.runId??void 0,n.errorKind)):e.chatRunId?Nk(e,r):Ik(e,r,t.runId??void 0,`stop`),e.requestUpdate?.()}}return n.ok}async function Uk(e,t,n){let r=e.client;if(!r||!e.connected)return!1;let i=t??lk(e,r);return Hk(e,i,await ok(r,n?lk(e,r,n):i))}async function Wk(e){let t=e.pendingAbort,n=e.client;if(!t||!n||!e.connected)return!1;let r=e.hello?.auth?.recoveryScope??(n.recoveryScopeReady?n.recoveryScope:void 0);if(t.sourceClient!==n||r!==void 0&&t.recoveryScope!==r)return e.pendingAbort=null,!1;if(r===void 0)return!1;if(e.sessions?.deletionState?.(t.sessionKey,t.agentId,t.sessionId)===`confirmed`)return e.pendingAbort=null,!1;let i=ck(e,t);if(t.sessionId&&i?.sessionId&&i.sessionId!==t.sessionId)return e.pendingAbort=null,!1;let a=dk({client:n,hello:e.hello,phase:`connected`},!0,{session:i,sessionAbortable:t.sessionAbortable}).abort;return!a.allowed&&a.cause===`session-not-owned`&&!i?!1:(e.pendingAbort=null,a.allowed?Uk(e,t):(Vk(e,t)&&Nk(e,a.reason),!1))}async function Gk(e,t){let n=!e.connected&&e.client?lk(e,e.client):null,r=n?.runId&&n.recoveryScope?n:null;if(!e.connected&&!r){Nk(e,I(`chat.questions.disconnected`));return}if(t?.preserveDraft||(e.chatMessage=``,e.chatMentions=[],e.chatReplyTarget=null,bk(e)),r){e.pendingAbort=r;return}await Uk(e,void 0,t?.scope)}function Kk(e){e!=null&&globalThis.clearTimeout(e)}function qk(e){Kk(e.chatRunStatusClearTimer),e.chatRunStatusClearTimer=null,e.chatRunStatus=null}function Jk(e,t){Kk(e.chatRunStatusClearTimer),e.chatRunStatusClearTimer=globalThis.setTimeout(()=>{let n=e.chatRunStatus;n?.phase===t.phase&&n.runId===t.runId&&n.sessionKey===t.sessionKey&&n.occurredAt===t.occurredAt&&(e.chatRunStatus=null,e.chatRunStatusClearTimer=null,nA(e)||e.requestUpdate?.())},iA)}function Yk(e,t){t?e.knownAgentRunIds?.delete(t):e.knownAgentRunIds?.clear(),(!t||e.chatRunStartup?.runId===t)&&(e.chatRunStartup=null),(!t||e.compactionStatus?.runId===t)&&e.compactionStatus?.phase!==`complete`&&(Kk(e.compactionClearTimer),e.compactionClearTimer=null,e.compactionStatus=null),Kk(e.fallbackClearTimer),e.fallbackClearTimer=null,e.fallbackStatus&&=null;for(let[n,r]of e.waitingApprovalStatuses??[])(!t||!r.runId||r.runId===t)&&e.waitingApprovalStatuses?.delete(n)}function Xk(e,t){let n=G(t.sessionKey)??e.sessionKey,r=new Set(n?[n]:[]);hn(e,`global`,n)&&r.add(`global`);for(let t of e.sessionsResult?.sessions??[])hn(e,t.key,n,t.agentId)&&r.add(t.key);for(let e of t.sessionKeys??[]){let t=G(e);t&&r.add(t)}return r}function Zk(e,t,n){if(!t.outcome&&!t.yielded)return;let r=Xk(e,t);if(t.outcome&&r.size===0)return;let i=t.outcome?t.sessionStatus??(t.outcome===`done`?`done`:`killed`):`running`,a={sessionKeys:[...r],agentId:t.agentId,runId:t.runId??e.chatRunId??null,status:i,...t.outcome?{errorMessage:t.errorMessage}:{},endedAt:n};e.sessionsResult&&=Le(e.sessionsResult,a),e.sessions?.reconcileRunTerminal?.(a)}function Qk(e,t={}){let n=Date.now(),r=t.runId??e.chatRunId??null,i=G(t.sessionKey)??e.sessionKey,a=t.agentId??A(e,i),o={...t,agentId:a};if((t.clearIndicators??!0)&&Yk(e,r),t.clearChatStream&&(e.chatStream=null,e.chatStreamStartedAt=null),t.clearLocalRun&&($g(e,void 0),e.chatRunId&&(e.chatRunLifecycleGeneration=(e.chatRunLifecycleGeneration??0)+1),e.chatRunId=null,e.chatRunSessionAbortable=void 0),Dk(e)&&(t.clearToolStream?Ak(e):t.clearToolStreamForRun&&r&&jk(e,r)),t.outcome){let s={phase:t.outcome,runId:r,sessionKey:i,occurredAt:n};Zk(e,o,n),t.armLocalTerminalReconcile&&(e.lastLocalTerminalReconcile={sessionKey:i,agentId:a,runId:r,phase:t.outcome,sessionStatus:t.sessionStatus??(t.outcome===`done`?`done`:`killed`),errorMessage:t.errorMessage}),t.publishRunStatus!==!1&&(e.chatRunStatus=s,Jk(e,s))}else t.yielded?(Zk(e,o,n),e.lastLocalTerminalReconcile=null,qk(e)):t.clearRunStatus&&qk(e);t.requestUpdate!==!1&&e.requestUpdate?.()}function $k(e){return e.sessionsResult?.sessions.find(t=>hn(e,t.key,e.sessionKey,t.agentId))}function eA(e){let t=e.lastLocalTerminalReconcile;if(!t||t.sessionKey!==e.sessionKey||t.agentId!==void 0&&t.agentId!==A(e))return!1;let n=$k(e);return!n||!Zl(n)?!1:t.runId==null||n.activeRunIds?.length!==1||n.activeRunIds[0]!==t.runId?(e.lastLocalTerminalReconcile=null,!1):(Zk(e,{outcome:t.phase,sessionStatus:t.sessionStatus,errorMessage:t.errorMessage,sessionKey:t.sessionKey,agentId:t.agentId,runId:t.runId},Date.now()),e.requestUpdate?.(),!0)}function tA(e,t={}){if(!e.chatRunId&&e.chatStream==null)return eA(e);let n=$k(e);return n?rA(e,n,t):!1}function nA(e){if(e.chatRunId){let t=$k(e);if(t?.lastRunId===e.chatRunId)return rA(e,t,{publishRunStatus:!1})}return e.lastLocalTerminalReconcile!=null&&!e.chatRunId&&e.chatStream==null&&tA(e,{publishRunStatus:!1})}function rA(e,t,n={}){if(!hn(e,t.key,e.sessionKey,t.agentId)||!e.chatRunId&&e.chatStream==null||t.hasActiveRun===!0||Zl(t)||t.hasActiveRun!==!1&&t.status===void 0)return!1;let r=e.chatRunId;if(r&&t.lastRunId!==r&&(t.lastRunId||n.historyRun!==void 0)){let i=n.historyRun;return t.hasActiveRun!==!1||!i||i.runId!==r||i.sessionId!==t.sessionId||!i.isCurrent()?!1:(Qk(e,{runId:r,clearLocalRun:!0,clearChatStream:!0,clearToolStreamForRun:!0,clearRunStatus:!0}),!0)}let i;return r&&t.lastRunId===r&&(t.status===`failed`||t.status===`timeout`)&&(i=e.chatRunError?.runId===r?e.chatRunError.summary:t.lastRunError?.trim()||I(t.status===`timeout`?`sessionsView.runErrorTimedOut`:`sessionsView.runErrorUnknown`),e.chatRunError?.runId!==r&&Ik(e,i,r)),Qk(e,{outcome:t.status===`done`?`done`:`interrupted`,sessionStatus:t.status===`running`||t.status===void 0?`killed`:t.status,errorMessage:i,runId:r,sessionKey:e.sessionKey,sessionKeys:[t.key],clearLocalRun:!0,clearChatStream:!0,clearToolStreamForRun:!0,publishRunStatus:n.publishRunStatus,armLocalTerminalReconcile:!!(e.chatRunId&&t.lastRunId===e.chatRunId)}),!0}var iA,aA;function oA(){return(oA=e((()=>{O(),Re(),dt(),M(),uk(),fk(),_k(),p_(),Ek(),iA=5e3,aA=new Set([`/stop`,`stop`,`esc`,`abort`,`wait`,`exit`])})))()}function sA(e){let t=e.modelSelectionPolicy,n=t?.restricted?Vs(e)||t.defaultModel:e.catalogInitialized===!1?void 0:e.activeSession?.model??e.agentModel,r=cA(e),i=t?.restricted?void 0:e.activeSession?.modelProvider,a=e.chatModelCatalog,o=e.onSetup,s=e.catalogRetired===!0,c=e.catalogError,l=e.activeSession?.placement?.state===`active`?e.activeSession.placement.inference:void 0,u;if(s)u={kind:`above-composer`,text:I(c?`chat.modelControls.modelsUnavailable`:`chat.modelControls.loadingModels`)};else if(t?.restricted&&t.defaultModel===null&&!ho(n,i,a))u={kind:`above-composer`,text:I(a.some(e=>e.manualSelectionAllowed!==!1)?`chat.modelControls.selectionRequired`:`chat.modelControls.noPermittedModels`)};else{let e=Ko(pc(n,i,a),l);u=e?lA(o,e):void 0}return{modelSetupRequired:r,modelUnavailableBanner:u,requiredReason:r?I(`modelSetup.required.body`):u?.text}}function cA(e){return e.catalog||e.catalogRetired||e.catalogInitialized===!1||e.modelSelectionPolicy?.restricted||!e.connected||!e.agentsLoaded||!e.selectedAgentFound?!1:!e.agentModel?.trim()}function lA(e,t=I(`modelSetup.required.body`)){return{kind:`above-composer`,text:`${t} ${I(`modelSetup.commandHint`)}`,actionLabel:I(`modelSetup.required.action`),onAction:e}}function uA(){return(uA=e((()=>{O(),ca()})))()}function dA(e,t){let n=fA(e,t);return n?(Vo(`chat-${t}-${Date.now()}.md`,n,`text/markdown`),`downloaded`):`empty`}function fA(e,t){let n=ja(e),r=[];for(let e of n){let n=Wo(e)??``;if(!n.trim())continue;let i=e,a=va(ko(e)),o=a===`user`?La(e)??I(`chat.messages.unattributedSender`):a===`assistant`?La(e)??t:`Tool`,s=xl(i.timestamp)??``;r.push(`## ${o}${s?` (${s})`:``}`,``,n,``)}return r.length>0?[`# Chat with ${t}`,``,...r].join(`
`):null}function pA(){return(pA=e((()=>{uu(),O(),Yo(),eo(),os()})))()}function mA(){return document.querySelector(`openclaw-chat-page`)?.sessionSplitAvailable===!0}function hA(e){return T(e,{method:`chat.history`,requiredScope:`operator.read`,sessionScope:!0}).allowed}async function gA(e){let{context:t,session:n}=e,r=t.gateway,i=r.snapshot.client,a=T(r.snapshot,{method:`chat.history`,requiredScope:`operator.read`,sessionScope:!0});if(!a.allowed||!i)throw Error(a.allowed?I(`sessionsView.actionRequiresConnection`):a.reason);let o=kn(n.key)?.agentId??tn(t,e.agentId),s=r.snapshot.hello,c=()=>e.isCurrent()&&r.snapshot.client===i&&r.snapshot.phase===`connected`&&r.snapshot.hello===s,l=[],u=new Map,d=(e,t=1e3)=>i.request(`chat.history`,{sessionKey:n.key,agentId:o,limit:t,maxChars:5e5,offset:e}),f=0,p;for(;;){let e=await d(f);if(!c()||n.sessionId&&e.sessionId!==n.sessionId||p&&(e.sessionId!==p.sessionId||e.totalMessages!==p.totalMessages))throw Error(I(`sessionsView.copyTranscriptChanged`));p??=e;let t=new Map,r=(e.messages??[]).filter(e=>{let n=cs(e);if(!n)return!0;let r=(t.get(n)??0)+1;return t.set(n,r),r>(u.get(n)??0)});for(let[e,n]of t)u.set(e,Math.max(n,u.get(e)??0));if(l.push(r),!e.hasMore)break;if(e.nextOffset===void 0||e.nextOffset<=f)throw Error(I(`sessionsView.copyTranscriptChanged`));f=e.nextOffset}if(l.length>1){let e=await d(0,1);if(!c()||e.sessionId!==p.sessionId||e.totalMessages!==p.totalMessages||e.deltaCursor!==p.deltaCursor||e.sessionInfo?.activeLeafEntryId!==p.sessionInfo?.activeLeafEntryId)throw Error(I(`sessionsView.copyTranscriptChanged`))}let m=t.agents.state.agentsList?.agents.find(e=>e.id===o)?.name??`OpenClaw`,h=fA(l.toReversed().flat(),m);if(!h)throw Error(I(`chat.commandResults.emptyExport`));return le(h,c)}async function _A(e,t){try{if(e===`split-right`||e===`split-below`){(!mA()||window.dispatchEvent(new CustomEvent(`openclaw:ui-command`,{detail:{agentId:t.agentId,command:{kind:`split`,direction:e===`split-right`?`right`:`down`,sessionKey:t.session.key},...t.sourceSessionKey?{sessionKey:t.sourceSessionKey}:{}},cancelable:!0})))&&yn({message:I(`sessionsView.splitUnavailable`)});return}if(e===`copy-markdown`||e===`copy-session-id`){let n=e===`copy-markdown`?await gA(t):await le(t.session.sessionId??``);yn({message:I(n?`common.copied`:`common.copyFailed`)});return}let n=$e(t.context,t.session.key,t.agentId),r=t.context.gateway,i=e===`copy-session-link`||e===`copy-session-preview-link`,a=i?r.snapshot.hello?.controlUiUrl??r.snapshot.client?.gatewayUrl??r.connection.gatewayUrl:void 0,o=new URL(a||window.location.href);o.protocol=o.protocol.replace(/^ws/u,`http`);let s=a?o.pathname:t.context.basePath,c=Xe({context:t.context,basePath:e===`copy-session-preview-link`?`${vl(s)}/share`:s,face:n,sessionKey:t.session.key,agentId:t.agentId,exactKey:!0}),l=new URL(c.href,o.origin).href;if(i){let e=await le(l);yn({message:I(e?`common.copied`:`common.copyFailed`)});return}let u=Ct({popup:e===`open-new-window`});u?u.location.replace(l):yn({message:I(`sessionsView.openWindowBlocked`)})}catch(e){yn({message:F(e)})}}function vA(){return(vA=e((()=>{br(),Vr(),O(),pA(),Oc(),tt(),P(),_n(),qe(),ot(),Ye(),M()})))()}function yA(e){B_(e).branchVersion+=1,CA.delete(e)}function bA(e){yA(e),e.chatBranchesConnectionEpoch=null}function xA(e){return xn(e.chatBranchesSessionKey,e.sessionKey)?e.chatBranches??[]:[]}async function SA(e){let{sessions:t,client:n,sessionKey:r,connectionEpoch:i}=e,a=t?.listBranches;if(!a||!n||!e.connected)return;let o=CA.get(e);if(o?.matches())return o.promise;let s=B_(e),c=++s.branchVersion,l=ce(e,r),u=()=>s.branchVersion===c&&e.client===n&&e.connected&&e.connectionEpoch===i&&j(e,r,l.agentId),d=(async()=>{try{let n=await a.call(t,r,l);u()&&(e.chatBranches=n,e.chatBranchesSessionKey=r,e.chatBranchesConnectionEpoch=i)}catch{}})().finally(()=>{s.branchVersion===c&&(CA.delete(e),e.requestUpdate?.())});return CA.set(e,{matches:()=>u()&&e.sessionKey===r&&ce(e,r).agentId===l.agentId,promise:d}),d}var CA;function wA(){return(wA=e((()=>{dt(),M(),rv(),CA=new WeakMap})))()}function TA(e){return oa(e,`system.info`,`operator.read`)}async function EA(e,t,{fresh:n=!1}={}){if(t?.throwIfAborted(),document.visibilityState===`hidden`)throw new DOMException(`Page is hidden`,`AbortError`);let{client:r,hello:i}=e.snapshot,a=OA.get(e);if(!r||!TA(e.snapshot))throw a?.controller.abort(),OA.delete(e),new DOMException(`System information is unavailable`,`AbortError`);if(!a||a.client!==r||a.hello!==i||a.revision!==e.connectionRevision||a.controller.signal.aborted||a.settled&&(n||a.expiresAt<=Date.now())){a?.controller.abort();let t=new AbortController,n=performance.now(),o=r.request(`system.info`,{},{signal:t.signal,timeoutMs:DA}).then(e=>({value:e,at:Date.now(),roundTripMs:performance.now()-n})),s={client:r,hello:i,revision:e.connectionRevision,expiresAt:Date.now()+DA,settled:!1,controller:t,subscribers:new Set,promise:o};o.then(()=>{s.settled=!0},()=>{OA.get(e)===s&&OA.delete(e)}),OA.set(e,s),a=s}let o=await cb(a,{},t);if(!TA(e.snapshot)||a.client!==e.snapshot.client||a.hello!==e.snapshot.hello||a.revision!==e.connectionRevision||a.controller.signal.aborted)throw a.controller.abort(),OA.get(e)===a&&OA.delete(e),new DOMException(`System information read was retired`,`AbortError`);return o}var DA,OA;function kA(){return(kA=e((()=>{sa(),DA=1e4,OA=new WeakMap})))()}function AA(e,t){let n=()=>{if(t.aborted||e.signal.aborted)throw Error(`This plugin UI view has ended.`)},r=n=>(...r)=>{!t.aborted&&!e.signal.aborted&&n(...r)},i=new Set,a=r=>{(t.aborted||e.signal.aborted)&&(r(),n());let a=()=>{i.delete(a)&&r()};return i.add(a),a},o=e=>e instanceof Promise?e.then(e=>(n(),e)):e;t.addEventListener(`abort`,()=>{for(let e of i)try{e()}catch(e){console.error(`[openclaw] plugin UI cleanup failed`,e)}i.clear()},{once:!0});let s=(e,t={},i)=>new Proxy(e,{get(e,c,l){if(c===`dispose`&&i)return i;n();let u=Reflect.get(e,c,l);return typeof u==`function`?(...i)=>{n();let l=t[c];if(l!==void 0){let e=i[l];typeof e==`function`&&(i[l]=r((...t)=>Reflect.apply(e,void 0,t)))}let d=Reflect.apply(u,e,i);if(typeof d==`function`)return a(()=>d());if(d&&typeof d==`object`&&`dispose`in d&&typeof d.dispose==`function`){let e=d.dispose,t=a(()=>e.call(d));return s(d,{},t)}return o(d)}:u}});return{...e,signal:t,get connection(){return n(),e.connection},get locale(){return n(),e.locale},request:async(t,r)=>{n();let i=await e.request(t,r);return n(),i},onEvent:(t,i)=>(n(),a(e.onEvent(t,r(i)))),subscribe:t=>(n(),a(e.subscribe(r(t)))),sessions:s(e.sessions,{observe:1}),agents:s(e.agents),navigation:s(e.navigation),dock:e.dock?s(e.dock):void 0,ui:s(e.ui),components:s(e.components)}}function jA(){return(jA=e((()=>{})))()}function MA(e,t){return e.registrations(`actions`).filter(e=>e.value.placement===`session`).flatMap(n=>{try{let e=n.value.resolve?.({sessionKey:t.key,agentId:t.agentId,session:structuredClone(t)});return e?.hidden?[]:[{id:n.key,label:e?.label??n.value.label,disabled:e?.disabled}]}catch(t){return e.reportError(n.pluginId,t),[]}})}async function NA(e){let t=e.placement===`session`?`Reopen the session menu.`:`Try again from the current view.`;if(e.placement===`session`&&!e.session)throw Error(`This session is no longer available. ${t}`);let n=e.runtime.registrations(`actions`).find(t=>t.key===e.id&&t.value.placement===e.placement);if(!n)throw Error(`This plugin action is no longer active. ${t}`);let r=AbortSignal.any([e.signal,n.signal]);r.throwIfAborted();let i={sessionKey:e.sessionKey,agentId:e.agentId??e.session?.agentId,session:e.session?structuredClone(e.session):void 0},a=n.value.resolve?.(i);if(r.throwIfAborted(),a?.hidden||a?.disabled)throw Error(`This plugin action is currently unavailable. ${t}`);await n.value.run({...i,host:AA(n.host,r),signal:r}),r.throwIfAborted()}function PA(){return(PA=e((()=>{})))()}function FA(e,t){if(e instanceof Nl)return e.method===t;if(!(e instanceof vr)||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 IA(e){return me(e)?I(`chat.agentDatabaseWarming`):e instanceof Nl?I(`chat.historyRequestTimedOut`):F(e)}var LA;function RA(){return(RA=e((()=>{Ml(),Un(),O(),P(),C(),LA=6e4})))()}function zA(e){return`kind`in e}function BA(e){let t=au(e?.totalMessages,{min:0}),n=au(e?.nextOffset,{min:1});return e?.hasMore===!0&&n!==void 0?{hasMore:!0,nextOffset:n,...t===void 0?{}:{totalMessages:t}}:{hasMore:!1,...t===void 0?{}:{totalMessages:t},...e?.completeSnapshot===!0?{completeSnapshot:!0}:{}}}function VA(e){return G(e.sessionInfo?.sessionId)??G(e.sessionId)}function HA(e){let t=au(e.totalMessages,{min:0});if(t===void 0)return null;let n=t-(e.hasMore?e.nextOffset:t)+1;return au(n,{min:1})??null}function UA(e){if(!e.previousSessionId||e.previousSessionId!==e.nextSessionId||e.previousMessages.length===0)return null;let t=e.previousPagination.totalMessages,n=e.nextPagination.totalMessages,r=HA(e.previousPagination),i=HA(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=Pi(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 WA(e,t){t!==void 0&&fv(e,t??void 0);let n=dv(e);if(!e.chatMessagesBySession)return;let r=e.sessionKey,i=D(e,r)?A(e):void 0;yv(e.chatMessagesBySession,e,{sessionKey:r,agentId:i},{...n===void 0?{}:{deltaCursor:n},...e.chatDisplayedLeafEntryId===void 0?{}:{displayedLeafEntryId:e.chatDisplayedLeafEntryId},messages:e.chatMessages,pagination:e.chatHistoryPagination,sessionId:e.currentSessionId??null})}function GA(e,t,n){if(delete e.chatHistoryCursor,!e.chatMessagesBySession)return;let r=bv(e.chatMessagesBySession,e,{sessionKey:t,agentId:n});if(r?.deltaCursor===void 0)return;let{deltaCursor:i,...a}=r;yv(e.chatMessagesBySession,e,{sessionKey:t,agentId:n},a)}function KA(){return(KA=e((()=>{Ji(),uu(),M(),jv()})))()}function qA(e){if(zA(e)&&e.kind===`reset`||!e.activity||!e.messages)return e;let t=new Map(e.activity.map(e=>[e.messageId,e.items])),n=e=>{let n=cu(e),r=n?.messageId??cu(n?.__openclaw)?.id,i=typeof r==`string`?t.get(r):void 0;return n&&i?{...n,activity:i}:e};return{...e,messages:e.messages.map(t=>{if(!zA(e))return n(t);let r=cu(t);return r?{...r,message:n(r.message)}:t})}}function JA(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)}function YA(e,...[t,n,r,i,a,o,s,c,l=[],u={limit:80,maxBytes:tj}]){let d=aj.get(t);d||(d=new WeakMap,aj.set(t,d));let f=e??t,p=d.get(f);p||(p={ownerRequestCounts:new WeakMap,requests:new Map},d.set(f,p));let m=p.requests,h=m.get(n),g=(p.ownerRequestCounts.get(o)?.get(n)??0)>0,_={...s,retryDeadlineMs:Date.now()+LA};if(!h||g){let o={sessionKey:i,toolResultMaxChars:nj,...a?{agentId:a}:{},...c===void 0?{}:{cursor:c},...u,...l.length?{inputRunIds:l}:{}},s=new AbortController,d=new Set([_]),f=()=>[...d].some(e=>e.isCurrent()),p=()=>[...d].some(e=>e.isCurrent()&&Date.now()<e.retryDeadlineMs),g=async()=>{let n=new Map([...d].map(e=>[e,e.captureRun?.()])),i=e?{owner:e,reconcile:e.captureReconcile()}:void 0;return{...qA(await t.request(r,o,{signal:s.signal,timeoutMs:jl})),observation:i,consumersAtIssue:n}},v=s.signal,y=(async()=>{let e=0;for(;;)try{return await g()}catch(t){if(!f()||!p()||!FA(t,r))throw t;for(let e of d)e.isCurrent()&&(e.lastRetryableError=t,e.onRetry?.());if(await ul(nt(t,e++),v),!f()||!p())throw t}})().finally(()=>{m?.get(n)?.promise===y&&m.delete(n)});h={controller:s,consumers:d,promise:y},m.set(n,h)}else h.consumers.add(_);JA(p,o,n,1);let v=new AbortController,y=setTimeout(()=>{let e=new Nl({method:r,timeoutMs:LA,requestSent:!0},I(`chat.historyRequestTimedOut`));v.abort(me(_.lastRetryableError)?_.lastRetryableError:e)},Math.max(0,_.retryDeadlineMs-Date.now())),b=h;return cb({controller:b.controller,promise:b.promise,subscribers:b.consumers},_,v.signal,()=>{clearTimeout(y),JA(p,o,n,-1),b.consumers.size===0&&m.get(n)===b&&m.delete(n)}).then(({consumersAtIssue:e,observation:t,...n})=>t?{...n,observation:{...t,run:e.get(_)}}:n)}async function XA(e,t,n,r,i){let a=`chat.history`,o=await YA(null,e,`prefetch\u0000${a}\u0000${t}\u0000${i===void 0?`page`:`cursor:${i}`}`,a,t,void 0,n,{isCurrent:r},i,void 0,rj);if(zA(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:ja(o.messages),pagination:BA(o),sessionId:VA(o)}}}async function ZA(e,t,n,r){let i=qA(await e.request(`chat.history`,{sessionKey:t,toolResultMaxChars:nj,...n?{agentId:n}:{},limit:ij,offset:r}));return{...i,messages:ja(i.messages)}}async function QA(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.sessionKey,i=D(e,r)?A(e):void 0,a=Q_(e,n,e.connectionEpoch,r,i),o=await ZA(n,r,i,t);if(ev(e,a))return o}async function $A(e,t){if(!e.client||!e.connected)return;let n=e.client,r=e.connectionEpoch,i=e.sessionKey,a=B_(e).historyVersion,o=D(e,i)?A(e):void 0,s=await ZA(n,i,o,t);return{claim:{client:n,connectionEpoch:r,sessionKey:i,historyVersion:a,...o?{agentId:o}:{}},requestedOffset:t,result:s}}function ej(e,t){let n=t.claim,r=e.chatHistoryPagination;return e.client===n.client&&e.connected&&e.connectionEpoch===n.connectionEpoch&&B_(e).historyVersion===n.historyVersion&&e.sessionKey===n.sessionKey&&(!D(e,n.sessionKey)||A(e)===n.agentId)&&r.hasMore&&r.nextOffset===t.requestedOffset}var tj,nj,rj,ij,aj;function oj(){return(oj=e((()=>{dl(),Ml(),wl(),O(),os(),C(),M(),RA(),KA(),rv(),tj=262144,nj=2e3,rj={limit:20,maxBytes:65536},ij=1e3,aj=new WeakMap})))()}function sj(e,t){if(e.chatRunId!==t.runId)return;let n=e.chatRunStartup;if(n?.runId===t.runId){if(t.state===`status`&&t.phase!==`retrying`&&n.state===`activity`||n.seq!==void 0&&(t.seq===void 0?t.state===`status`:t.seq<=n.seq))return;if(t.state===`activity`&&t.seq===void 0&&n.seq!==void 0){e.chatRunStartup={...t,seq:n.seq};return}}e.chatRunStartup=t}function cj(e){return typeof e==`string`&&Object.hasOwn(dj,e)}function lj(e,t){if(e)return e.phase===`retrying`?e.message:I(dj[e.phase]);switch(t?.phase){case`reconnecting`:return I(`connection.reconnecting`);case`pending`:case`requested`:case`provisioning`:return I(`chat.startupStatus.provisioningEnvironment`);case`syncing`:return I(`chat.startupStatus.preparingWorkspace`);case`starting`:return I(`newSession.starting`);case`active`:case`sending`:return I(`chat.composer.sendingMessage`);default:return}}function uj(e){return e?.state===`status`?e:null}var dj;function fj(){return(fj=e((()=>{O(),Ns(),Os(),dj={waiting_for_state:`chat.startupStatus.waitingForState`,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`,memory_flushing:`chat.startupStatus.memoryFlushing`,starting_model:`chat.startupStatus.startingModel`}})))()}function pj(e,t){if(!Dk(e))return;let n=t?.preserveStreamSegments?[...e.chatStreamSegments]:null;Ak(e),n&&(e.chatStreamSegments=n)}function mj(e,t){Dk(e)&&jk(e,t)}function hj(e){Array.isArray(e.chatStreamSegments)&&(e.chatStreamSegments=[])}function gj(e){return J(J(e)?.openclawStreamFallback)}function _j(e,t){let n=Ui(t),r=(n?.role===`assistant`?n.runId:null)??Kh(t),i=Lh(e,r?{runId:r}:{}),a=Ka(Fi(t))?.trim()??``,o=new Set,s=[],c=0;for(let t=i.start;t<i.end;t+=1){let n=e[t],r=gj(n);if(!r||K(r.itemId))continue;let i=Ka(n)?.trim();if(r.source===`current`&&s.push(t),!i)continue;let l=a.slice(c),u=/^\s*/u.exec(l)?.[0].length??0;l.slice(u).startsWith(i)&&(o.add(t),c+=u+i.length)}let l=s[0];o.size===0&&s.length===1&&l!==void 0&&o.add(l);let u=o.values().next().value??i.end,d=Array.from(e).filter((e,t)=>!o.has(t));return d.splice(u,0,t),d}function vj(e,t){return!e?.trim()||t(e)?null:e}function yj(e,t){let n=og(e),r=[],i=null,a=Array.isArray(e.chatStreamSegments)?e.chatStreamSegments:[],o=0;for(let[e,s]of a.entries()){if(!s||typeof s.text!=`string`)continue;let a=typeof s.toolCallId==`string`&&s.toolCallId.trim()?s.toolCallId.trim():null,c=Uo(s),l=c&&typeof s.itemId==`string`?s.itemId.trim():void 0,u=c?void 0:n[o],d=K(s.runId)??u?.runId;!c&&s.persisted!==!0&&(o+=1);let f=zo(s),p=vj(f?Jo(s.text,i):s.text,t.isHiddenStreamText);p&&s.persisted!==!0&&r.push({text:p,replacementText:s.text,source:`segment`,segmentIndex:e,timestamp:typeof s.ts==`number`&&Number.isFinite(s.ts)?s.ts:Date.now(),...l?{itemId:l}:{},...d?{runId:d}:{},toolCallId:a??u?.id,afterUserSendId:s.afterUserSendId}),f&&(i=Sc(i,s.text))}if(t.includeCurrent!==!1&&typeof e.chatStream==`string`){let n=vj(Jo(e.chatStream,i),t.isHiddenStreamText);n&&r.push({text:n,replacementText:e.chatStream,source:`current`,timestamp:e.chatStreamStartedAt??Date.now(),...e.chatRunId?{runId:e.chatRunId}:{}})}return r}function bj(e,t){if(typeof e.chatStream!=`string`)return null;let n=Array.isArray(e.chatStreamSegments)?e.chatStreamSegments:[],r=Xa(n);return vj(Jo(e.chatStream,r),t)}function xj(e,t,n,r,i=e.length){if(t.itemId)return e.slice(r,i).some(e=>{let n=Wi(e);return n!==void 0&&n.itemId===t.itemId&&(!n.runId||!t.runId||n.runId===t.runId)});let a=e.slice(r,i).map(e=>{let r=Ui(e);return r?.role&&r.role!==`assistant`||r?.runId&&t.runId&&r.runId!==t.runId||n(e)||fg(e)?null:Ka(e)?.trim()??null});return[t.replacementText,t.text].some(e=>!!e.trim()&&!zh(a,e.trim()))}function Sj(e,t){let n=Ph(e)+1;return e.slice(n).some(e=>ql(J(e)?.role)!==`assistant`||t(e)?!1:!!Ka(e)?.trim())}function Cj(e,t,n){let r=yj(t,n),i=n.persistCommentary===!0?r:r.filter(e=>!e.itemId);return r.length>0&&(i.length>0||Sj(e,n.isHiddenAssistantMessage))&&i.every(t=>{let r=Lh(e,t);return xj(e,t,n.isHiddenAssistantMessage,r.start,r.end)})}function wj(e,t){return yj(e,t).length>0}function Tj(e,t,n){let r=Ka(Fi(e))?.trim();if(!r)return!1;let i=yj(t,{includeCurrent:!0,isHiddenStreamText:n.isHiddenStreamText}).filter(e=>!e.itemId);if(i.length===0)return!1;let a=0;for(let[e,t]of i.entries()){let n=t.text.trim(),i=r.indexOf(n,a);if(i<0||e===0&&i!==0)return!1;a=i+n.length}return!0}function Ej(e,t,n,r,i,a){let o=og(t),s=sg({id:i,...a?{runId:a}:{}},o);if(!s)return-1;for(let t=n;t<r;t++)if(ag(e[t]).some(e=>sg(e,o)===s))return t;return-1}function Dj(e){if(!e||typeof e!=`object`)return null;let t=e;return eu(t.timestamp)??eu(t.ts)??null}function Oj(e,t,n){let r=e,i=n.persistCommentary===!0,a=n.replacementMessages;for(let e of yj(t,n)){if(!i&&e.itemId)continue;let o=a?.length?[...r,...a]:r,s=Lh(o,e);if(xj(o,e,n.isHiddenAssistantMessage,s.start,s.end))continue;let c=o===r&&!e.afterUserSendId?s:Lh(r,e,e.afterUserSendId),l=e.source===`segment`&&e.toolCallId?Ej(r,t,c.start,c.end,e.toolCallId,e.runId):-1;if(n.requirePersistedTool&&l<0)continue;let u=l>=0?l:e.source===`segment`?Rh(r,e.timestamp,c.start,c.end,Dj):c.end,d=r.slice(0,u).map(e=>Ui(e)?.sequence).findLast(e=>typeof e==`number`),f={role:`assistant`,content:[{type:`text`,text:e.text}],timestamp:e.timestamp,openclawStreamFallback:{replacementText:e.replacementText,source:e.source,...e.itemId?{itemId:e.itemId}:{},...e.runId?{runId:e.runId}:{},...d===void 0?{}:{afterSequence:d}}};r=[...r.slice(0,u),f,...r.slice(u)]}return r}function kj(){return(kj=e((()=>{ra(),Ji(),uu(),Yo(),bg(),Vh(),tg(),ug()})))()}function Aj(e,t){let n=G(t);if(!n)return null;let r=G(e);if(r){let e=`${r}/`;return`${r}/${(ql(n).startsWith(ql(e))?n.slice(e.length).trim():n)||n}`}let i=n.indexOf(`/`);if(i>0){let e=n.slice(0,i).trim(),t=n.slice(i+1).trim();if(e&&t)return`${e}/${t}`}return n}function jj(e,t){if(Array.isArray(e)){let t=e.map(e=>G(e)).filter(e=>!!e).map(e=>F(e));if(t.length>0)return t}if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=iu(e),r=G(t?.provider),i=G(t?.model);if(!r||!i)continue;let a=F(G(t?.reason)?.replace(/_/g,` `)??G(t?.code)??(typeof t?.status==`number`?`HTTP ${t.status}`:null)??G(t?.error)??`error`),o=Aj(r,i)??`${r}/${i}`;n.push(`${o}: ${ft(a)}`)}return n}function Mj(e){if(e.localRunId)return e.localRunId;let t=new Set(e.activeRunIds??[]);return e.queue?.find(e=>e.sendState===`waiting-reconnect`&&typeof e.sendRunId==`string`&&t.has(e.sendRunId))?.sendRunId??null}function Nj(e,t){let n=e.waitingApprovalStatuses??=new Map,r=e.waitingApprovalResolvedIds??=new Set,i=new Set(t.map(e=>e.id));for(let e of r)i.has(e)||r.delete(e);let a=t.filter(t=>t.kind===`exec`&&t.request.sessionKey&&St(e,t.request.sessionKey,t.request.agentId)),o=new Set(a.map(e=>e.id)),s=!1;for(let e of n.keys())o.has(e)||(n.delete(e),s=!0);if(n.size>0)return s;for(let t of a){let i=G(t.request.runId);i&&e.knownAgentRunIds?.has(i)&&!r.has(t.id)&&(n.set(t.id,{approvalId:t.id,toolCallId:null,runId:i}),s=!0)}return s}function Pj(e){e.compactionClearTimer!=null&&(window.clearTimeout(e.compactionClearTimer),e.compactionClearTimer=null)}function Fj(e,t,n,r){let i=n===`complete`,a=e.compactionStatus,o=a?.runId===t&&(!r||!a.itemId||a.itemId===r),s=r??(o?a?.itemId:void 0);Pj(e),e.compactionStatus={phase:n,runId:t,...s?{itemId:s}:{},startedAt:o?a.startedAt:Date.now(),completedAt:i?Date.now():null},i||(e.compactionClearTimer=window.setTimeout(()=>{let r=e.compactionStatus;r?.phase!==n||t&&r?.runId!==t||(e.compactionStatus=null,e.compactionClearTimer=null,e.requestUpdate?.())},Uj))}function Ij(e,t){if(!t||t.operation!==`compact`)return;let n=G(t.sessionKey),r=G(t.agentId)??void 0;if(!n||!St(e,n,r))return;let i=G(t.operationId)??`session-compact:${n}`;if(t.phase===`start`){Fj(e,i,`active`);return}if(t.phase===`end`&&!(e.compactionStatus?.runId&&e.compactionStatus.runId!==i)){if(t.completed===!0){Fj(e,i,`complete`);return}Pj(e),e.compactionStatus=null}}function Lj(e,t){let n=t.data??{},r=typeof n.phase==`string`?n.phase:``,i=n.completed===!0,a=G(n.itemId)??void 0;if(Pj(e),r===`start`){Fj(e,t.runId,`active`,a);return}r===`end`&&(i?Fj(e,t.runId,n.willRetry===!0?`retrying`:`complete`,a):e.compactionStatus=null)}function Rj(e,t){let n=t.data??{},r=G(n.phase);(r===`end`||r===`error`)&&zj(e,t)&&e.compactionStatus?.phase===`retrying`&&(e.compactionStatus.runId&&e.compactionStatus.runId!==t.runId||Fj(e,t.runId,`complete`))}function zj(e,t){let n=typeof t.sessionKey==`string`?t.sessionKey:void 0;return n&&!St(e,n,G(t.agentId))?!1:e.chatRunId?t.runId===e.chatRunId:!!n}function Bj(e,t){let n=t.data??{},r=t.stream===`fallback`?`fallback`:G(n.phase);if(t.stream===`lifecycle`&&r!==`fallback`&&r!==`fallback_cleared`||!zj(e,t))return;let i=Aj(n.selectedProvider,n.selectedModel)??Aj(n.fromProvider,n.fromModel),a=Aj(n.activeProvider,n.activeModel)??Aj(n.toProvider,n.toModel),o=Aj(n.previousActiveProvider,n.previousActiveModel)??G(n.previousActiveModel);if(!i||!a||r===`fallback`&&i===a)return;let s=G(n.reasonSummary)??G(n.reason),c=s?F(s):null,l=jj(n.attemptSummaries,n.attempts);e.fallbackClearTimer!=null&&(window.clearTimeout(e.fallbackClearTimer),e.fallbackClearTimer=null),e.fallbackStatus={phase:r===`fallback_cleared`?`cleared`:`active`,selected:i,active:r===`fallback_cleared`?i:a,previous:r===`fallback_cleared`?o??(a===i?void 0:a):void 0,reason:c??void 0,attempts:l,occurredAt:Date.now()},e.fallbackClearTimer=window.setTimeout(()=>{e.fallbackStatus=null,e.fallbackClearTimer=null,e.requestUpdate?.()},Wj)}function Vj(e,t){let n=G(t.data?.phase);if(n!==`waiting-approval`&&n!==`approval-resolved`)return!1;let r=G(t.data?.approvalId),i=G(t.sessionKey);if(!r||!i)return!0;if(n===`waiting-approval`){let n=e.waitingApprovalStatuses??=new Map;return e.waitingApprovalResolvedIds?.delete(r),n.set(r,{approvalId:r,toolCallId:G(t.data?.toolCallId),runId:t.runId}),!0}return(e.waitingApprovalResolvedIds??=new Set).add(r),e.waitingApprovalStatuses?.delete(r),!0}function Hj(e,t){if(t.stream===`run_status`&&t.data.phase===`retrying`){let n=G(t.data.message);return n&&sj(e,{state:`status`,runId:t.runId,phase:`retrying`,message:ft(il(n,256)),seq:t.seq}),!0}if(t.stream===`assistant`)return sj(e,{state:`activity`,runId:t.runId,seq:t.seq}),!0;if(t.stream===`compaction`)return Lj(e,t),!0;if(t.stream===`lifecycle`){if(Vj(e,t))return!0;Rj(e,t)}else if(t.stream!==`fallback`)return!1;return Bj(e,t),!0}var Uj,Wj;function Gj(){return(Gj=e((()=>{P(),M(),fj(),Uj=3e5,Wj=8e3})))()}function Kj(e){if(typeof e!=`string`)return``;let t=ff(e).text.replace(/^(?:[ \t]*\r?\n)+/u,``).trimEnd(),n=t.replace(/^[\s*_`~]+|[\s*_`~]+$/gu,``).trim();return/^NO_REPLY$/iu.test(n)?``:t}function qj(e,t,n=`live`){if(t.stream!==`item`)return!1;let r=t.data??{};if(r.kind!==`preamble`)return!1;let i=K(r.itemId)??K(r.id),a=Kj(r.progressText);if(!a&&!i)return!1;if(!Ki({phase:typeof t.data.phase==`string`?t.data.phase:void 0,progressText:a})||!zj(e,t))return!0;a&&sj(e,{state:`activity`,runId:t.runId,seq:t.seq});let o=i??JSON.stringify([`openclaw-ui-preamble`,t.runId,t.seq]),s=e.chatStreamSegments.find(e=>e.itemId===o&&e.runId===t.runId);return e.chatMessages?.some(e=>{let n=Wi(e);return n?.itemId===o&&n?.runId===t.runId})||!a.trim()?(e.chatStreamSegments=e.chatStreamSegments.filter(e=>e.itemId!==o||e.runId!==t.runId),!0):s?(e.chatStreamSegments=e.chatStreamSegments.map(e=>e===s?{...e,text:a}:e),!0):(e.chatStreamSegments=[...e.chatStreamSegments,{text:a,ts:t.ts,runId:t.runId,itemId:o,afterUserSendId:n===`live`?Ih(e.chatMessages,t.runId):void 0}],!0)}function Jj(){return(Jj=e((()=>{Ji(),Di(),Yd(),fj(),Vh(),Gj()})))()}function Yj(e){return typeof e==`string`&&Object.hasOwn(lM,e)}function Xj(e){let t=iu(e);if(!t)return null;if(typeof t.text==`string`)return t.text;if(!Array.isArray(t.content))return null;let n=[];for(let e of t.content){let t=iu(e);t?.type===`text`&&typeof t.text==`string`&&t.text&&n.push(t.text)}return n.length>0?n.join(`
`):null}function Zj(e){if(e==null)return null;if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=Xj(e),n;if(typeof e==`string`)n=e;else if(t)n=t;else try{n=JSON.stringify(e,null,2)}catch{n=Be(e)}let r=de(n,fM);return r.truncated?`${r.text}\n\n… truncated (${r.total} chars, showing first ${r.text.length}).`:r.text}function Qj(e,t){let n=iu(iu(t.result)?.details);if(n?.changedModel!==!0)return;let r=G(n.sessionKey)??e.sessionKey,i=G(n.agentId);i&&St(e,r,i)&&e.sessions.reconcileMutation(i)}function $j(e){let t=e.activity?.some(t=>(t.toolCallId??t.itemId)===e.toolCallId&&t.phase===`end`&&!t.suppressChannelProgress),n=[];return n.push({type:`toolcall`,name:e.name,arguments:e.args??{},...e.parentToolCallId?{parentToolCallId:e.parentToolCallId}:{},...e.details===void 0?{}:{details:e.details}}),(e.output||e.resultReceived)&&n.push({type:`toolresult`,name:e.name,text:e.output??``,...e.parentToolCallId?{parentToolCallId:e.parentToolCallId}:{},...e.details===void 0?{}:{details:e.details},...e.isError===void 0?{}:{isError:e.isError},...e.exitCode===void 0?{}:{exitCode:e.exitCode}}),{role:`assistant`,toolCallId:e.toolCallId,runId:e.runId,...e.activity?{activity:e.activity}:{},content:n,timestamp:e.startedAt,__openclawToolStreamLive:!0,__openclawToolStreamResultReceived:e.resultReceived===!0,__openclawToolStreamItemEnded:t===!0,...e.resultReceived!==!0&&!t&&e.liveDiffStat?{__openclawToolStreamDiffStat:e.liveDiffStat}:{},__openclawToolStreamReceivedAt:e.receivedAt,...e.afterUserSendId?{openclawToolStreamAfterSendId:e.afterUserSendId}:{}}}function eM(e){kk(e),Ok(e)}function tM(e,t,n){if(t.message=$j(t),e.toolStreamOrder.length>uM){let t=e.toolStreamOrder.length-uM;for(let n of e.toolStreamOrder.splice(0,t))e.toolStreamById.delete(n)}if(n){eM(e);return}e.toolStreamSyncTimer??=window.setTimeout(()=>{eM(e),e.requestUpdate?.()},dM)}function nM(e,t){return`tool:${ng(e,t)}`}function rM(e,t){return`${e}:review:${JSON.stringify(t)}`}function iM(e,t){let n=Number.isSafeInteger(t.seq)?t.seq:0,r,i;if(t.stream===`tool`){let a=G(t.data?.toolCallId);if(!a)return!0;let o=nM(t.runId,a),s=`${o}:result`,c=e.activityEventSeqById?.get(s),l=G(t.data?.phase);if(l!==`result`&&c!==void 0&&n<=c)return!1;let u=l===`review`?G(iu(t.data.review)?.id):void 0,d=e.activityEventSeqById?.get(`${o}:review-floor`);if(u&&d!==void 0&&n<=d)return!1;r=u?rM(o,u):o,l===`result`&&(i=o)}else{let e=t.stream===`lifecycle`&&(t.data?.phase===`end`||t.data?.phase===`error`);if(t.stream===`compaction`||e)r=`compaction:${t.runId}`;else if(t.stream===`item`){let e=G(t.data.itemId)??G(t.data.id)??`latest`;r=`item:${t.runId}:${e}`}else return!0}let a=e.activityEventSeqById?.get(r);if(a!==void 0&&n<=a)return!1;let o=e.activityEventSeqById??=new Map;if(o.set(r,n),i){o.set(`${i}:result`,n);for(let e of o.keys())e.startsWith(`${i}:review:`)&&o.delete(e)}return!0}function aM(e,t){if(t.stream!==`usage`)return!1;let n=G(t.sessionKey);if(n){if(!St(e,n,G(t.agentId)))return!0}else if(!e.chatRunId||t.runId!==e.chatRunId)return!0;let r=t.data?.outputTokens;if(typeof r!=`number`||!Number.isFinite(r))return!0;let i=Math.floor(r);if(i<0)return!0;let a=e.chatRunUsageById?.get(t.runId);if(a&&t.seq<=a.seq)return!0;let o=new Map(e.chatRunUsageById);o.delete(t.runId),o.set(t.runId,{outputTokens:i,seq:t.seq});for(let e of[...o.keys()].slice(0,-50))o.delete(e);return e.chatRunUsageById=o,!0}function oM(e,t){let n=t.stream===`notice`;if(!n&&t.stream!==`codex_app_server.guardian`)return!1;if(!zj(e,t))return!0;let r=t.data??{},i=G(r.phase);if(n&&i===`provider_policy`){if(r.category!==`cyber`||r.provider!==`openai`)return!0;let n=r.state;if(n!==`cleared`&&!Yj(n))return!0;let i=e.chatRunId??Xg(e)??e.providerPolicyNotice?.runId,a=e.chatQueue?.some(n=>n.sendState===`sending`&&n.sendRunId===t.runId&&n.sessionKey&&St(e,n.sessionKey,n.agentId));if(i!==t.runId&&!a)return!0;let o=`provider-policy:${t.runId}`,s=Math.max(e.activityEventSeqById?.get(o)??-1,e.providerPolicyNotice?.runId===t.runId?e.providerPolicyNotice.seq:-1);if(!Number.isSafeInteger(t.seq)||t.seq<=s)return!0;if((e.activityEventSeqById??=new Map).set(o,t.seq),n===`cleared`)return e.providerPolicyNotice?.runId===t.runId&&e.providerPolicyNotice.state===`buffering`&&(e.providerPolicyNotice=null),!0;let c=e.providerPolicyNotice;if(c?.runId===t.runId&&lM[n]<lM[c.state])return!0;let l=G(r.model),u=G(r.fallbackModel);return e.providerPolicyNotice={runId:t.runId,seq:t.seq,state:n,...l?{model:ft(de(l,256).text)}:{},...u?{fallbackModel:ft(de(u,256).text)}:{}},!0}let a=G(r.status),o=G(r.reviewId),s=G(r.threadId),c=G(r.turnId),l=o??(s&&c&&typeof r.startedAtMs==`number`&&Number.isFinite(r.startedAtMs)?r.startedAtMs:t.seq),u=`${n?`system`:`guardian`}:${t.runId}:`+(i===`warning`?`warning:${t.seq}`:`${s??`thread`}:${c??`turn`}:${l}`),d=e.guardianNotices??[],f=i===`strict_review_required`?`strict-review-required`:i===`warning`?`warning`:i===`started`&&a===`inProgress`?`reviewing`:i===`completed`&&a===`approved`?`approved`:i===`completed`&&[`denied`,`timedOut`,`aborted`].includes(a??``)?`denied`:null;if(!f)return!0;let p=G(r.targetItemId);if((i===`started`||i===`completed`)&&p)return i===`completed`&&(e.guardianNotices=d.filter(e=>e.key!==u)),!0;let m={key:u,runId:t.runId,timestamp:t.ts,kind:f};n&&(m.source=`system`);for(let e of[`command`,`riskLevel`,`rationale`,`message`]){let t=G(r[e]);t&&(m[e]=t)}let h=d.findIndex(e=>e.key===m.key);return e.guardianNotices=h===-1?[...d.slice(-49),m]:d.map((e,t)=>t===h?m:e),!0}function sM(e,t,n,r){let i=nM(t.runId,n.toolCallId),a=e.activityEventSeqById??=new Map,o=e=>a.get(rM(i,e.id))??0,s=`${i}:review-floor`,c=Is(n.details),l=Math.max(a.get(s)??0,...c.map(o)),u=[...c.filter(e=>e.id!==r.id),r].toSorted((e,t)=>o(e)-o(t)),d=u.slice(0,-16),f=u.slice(-16);if(d.length>0){a.set(s,Math.max(a.get(s)??0,...d.map(o)));for(let e of d)a.delete(rM(i,e.id))}let p=nc(t.data),m=js(f),h=nc(n.details),g=h===`denied`?`denied`:p??m??void 0;n.details=Qo(n.details,f,g&&t.seq>=l?g:h)}function cM(e,t,n=`live`){if(!t)return!1;let r=typeof t.sessionKey==`string`?t.sessionKey:void 0;if(r&&!St(e,r,G(t.agentId))||!iM(e,t))return!1;if(t.stream===`lifecycle`||t.stream===`tool`){let n=G(t.runId);n&&(e.knownAgentRunIds??=new Set).add(n)}if(aM(e,t)||oM(e,t)||Hj(e,t)||qj(e,t,n))return!0;let i=t.stream===`item`?xu(Ni,{...t.data}):void 0;if(Cu(Ni,i)){if(!zj(e,t)||i.kind===`analysis`)return!0;let a=i,o=a.toolCallId??a.itemId,s=ng(t.runId,o),c=e.toolStreamById.get(s);return c||(c={toolCallId:o,runId:t.runId,sessionKey:r,name:a.name??a.title,startedAt:a.startedAt??t.ts,receivedAt:Date.now(),afterUserSendId:n===`live`?Ih(e.chatMessages,t.runId):void 0,message:{}},e.toolStreamById.set(s,c),e.toolStreamOrder.push(s)),c.activity=[...(c.activity??[]).filter(e=>e.itemId!==a.itemId),a],tM(e,c,a.phase===`end`),!0}if(t.stream!==`tool`)return!1;let a=t.data??{},o=typeof a.toolCallId==`string`?a.toolCallId:``;if(!o)return!1;let s=ng(t.runId,o),c=e.toolStreamById.get(s),l=typeof a.phase==`string`?a.phase:``,u=l===`review`?ef(a.review):null;if(l===`review`&&!u)return!0;let d=l!==`start`&&c?.name&&c.name!==`tool`?c.name:G(a.name)??c?.name??`tool`;t.runId===e.chatRunId&&sj(e,{state:`activity`,runId:t.runId,seq:t.seq});let f=l===`start`?a.args:void 0,p=G(a.parentToolCallId)??void 0,m=l===`update`?Zj(a.partialResult):l===`result`?Zj(a.result):void 0,h=l===`result`?iu(a.result):void 0,g=h?.details,_=nc(a)??nc(g),v=_?Qo(g,[],_):g,y=l===`result`&&typeof a.isError==`boolean`?a.isError:void 0,b=h?.exitCode,x=typeof b==`number`&&Number.isInteger(b)?b:void 0,S=l===`input_delta`?As(a.diff):void 0;d===`session_status`&&l===`result`&&Qj(e,a);let C=Date.now();if(c||(c={toolCallId:o,runId:t.runId,sessionKey:r,name:d,startedAt:typeof t.ts==`number`?t.ts:C,receivedAt:C,afterUserSendId:n===`live`?Ih(e.chatMessages,t.runId):void 0,message:{}},e.toolStreamById.set(s,c),e.toolStreamOrder.push(s)),c.name=d,c.parentToolCallId??=p,f!==void 0&&(c.args=f),m!==void 0&&(c.output=m||void 0),g!==void 0||_){let e=nc(c.details),t=e===`denied`?`denied`:_??e,n=Is(c.details);c.details=n.length?Qo(g,n,t):v}return y!==void 0&&(c.isError=y),x!==void 0&&(c.exitCode=x),S&&(c.liveDiffStat=S),l===`result`&&(c.liveDiffStat=void 0,c.resultReceived=!0),u&&sM(e,t,c,u),tM(e,c,l===`result`||u!==null),!0}var lM,uM,dM,fM;function pM(){return(pM=e((()=>{Su(),Mi(),af(),yc(),Fs(),P(),Je(),M(),fj(),p_(),Vh(),ug(),Jj(),Gj(),lM={buffering:0,fallback:1,blocked:2,escalated:3,unavailable:3},uM=50,dM=80,fM=12e4})))()}function mM(e,t,n={}){return Oj(e,t,{...n,persistCommentary:n.persistCommentary??hM(t),isHiddenAssistantMessage:Do,isHiddenStreamText:Xc})}function hM(e){return e.settings?.chatPersistCommentary!==!1}function gM(e){return typeof e==`string`&&e&&!Xc(e)?e:null}function _M(e,t,n){return Object.entries(e).every(([e,r])=>e===n||t[e]===r)&&Object.entries(t).every(([t,r])=>t===n||e[t]===r)}function vM(e,t){return e.chatMessages.some(e=>{let n=Ui(e),r=J(J(e)?.__openclaw);return n?.role===`assistant`&&!n.isImported&&(n.id!==null||n.sequence!==null)&&n.runId===t&&r?.runTerminal===!0})}function yM(e,t,n){return Yg(e,qg(e,{sessionKey:t,...n?{agentId:n}:{}})).runs}function bM(e){let{state:t,run:n,sessionInfo:r,historyRun:i,previousRunProjections:a,runProjectionsBeforeApply:o,currentRunProjections:s,resetStream:c}=e,l=e=>t.chatQueue.some(t=>t.sendState===`sending`&&t.sendRunId&&t.sendRunId!==e),u=n?.runId?.trim();if(!u||!n){if(!r)return;let e=t.chatRunId?.trim();if(e&&r.lastRunId!==e&&i&&!l(e)&&_M(a,o)&&rA(t,r,{publishRunStatus:!1,historyRun:i}))return;let n=r.lastRunId??(e&&vM(t,e)?e:void 0),c=n?s[n]:void 0;if(n&&(r.status===`done`||r.status===`failed`||r.status===`killed`||r.status===`timeout`)&&r.hasActiveRun!==!0&&!Zl(r)&&(!t.chatRunId||t.chatRunId===n)&&!l(n)&&(r.status!==`killed`&&!c||t.chatRunId===n||Xg(t)===n)&&_M(a,o)){let e=Yg(t).entries.findLast(e=>e.identity?.runId===n&&!e.identity.isImported&&e.identity.role===`custom`&&cu(e.message)?.customType===`run-failed-before-reply`),i=cu(cu(e?.message)?.details),a=i?.errorKind,o=a===`state_contention`?a:void 0,s=Ka(e?.message),l=o&&s&&typeof i?.diagnostic==`string`?`${s}\n\n${i.diagnostic}`:s,u=l_(t,{type:`runTerminal`,runId:n,...o?{errorKind:o}:{},status:r.status===`done`?`completed`:r.status===`timeout`?`timeout`:`error`,errorMessage:r.status===`failed`||r.status===`timeout`?l??r.lastRunError:r.lastRunError});Qg(t,n);let d=u.runs[n];d?.errorMessage?(t.chatRunError?.runId!==n||!c?.errorMessage)&&Ik(t,d.errorMessage,n,d.errorKind===`state_contention`?d.errorKind:void 0):d?.status===`completed`&&t.chatRunError?.runId&&t.chatRunError.runId!==n&&(t.chatRunError=null),rA(t,r,{publishRunStatus:!1})}return}let d=s[u],f=t.chatRunId===u&&d?.status===`streaming`&&_M(a,s,u),p=r?.activeRunIds,m=Zl(r??{})&&(!Array.isArray(p)||p.includes(u))&&(!d||d.status===`streaming`),h=!!(t.chatRunId&&t.chatRunId!==u&&Array.isArray(p)&&!p.includes(t.chatRunId)&&i?.runId===t.chatRunId&&i.sessionId===r?.sessionId&&i.isCurrent()&&!l(u));if(m&&(c&&(!t.chatRunId||h)&&_M(a,o)||f)){let e=t.chatRunId!==u;Fk(t,u,Date.now()),e&&r&&$g(t,u,r),t.chatRunSessionAbortable=n?.sessionAbortable===!0}if(!m||t.chatRunId!==u)return;let g=typeof n.startedAt==`number`&&Number.isFinite(n.startedAt)?n.startedAt:null;a[u]?.message!==o[u]?.message&&!h?t.chatStream=gM(Ka(o[u]?.message)):Nh(t,gM(n.text)),t.chatStreamStartedAt=g??t.chatStreamStartedAt??Date.now();let _=n.events?.findLast(e=>e.runId===u&&e.stream===`run_status`),v=_?.data.phase;if(n.text&&(t.chatRunStartup?.state!==`status`||t.chatRunStartup.phase!==`retrying`)?sj(t,{state:`activity`,runId:u}):_&&cj(v)&&sj(t,{state:`status`,runId:u,phase:v,seq:_.seq}),t.chatRunId===n.runId&&Array.isArray(n.events))for(let e of n.events)e?.runId===n.runId&&cM(t,e,`history`)}function xM(){return(xM=e((()=>{Ji(),Yo(),os(),fj(),p_(),oA(),Vh(),kj(),pM()})))()}function SM(){return typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()}function CM(e){return Math.max(0,Math.round(e))}function wM(e,t){let n=!0,r=null,i=()=>{if(n){n=!1;try{e()}finally{t()}}};return typeof window>`u`||typeof window.requestAnimationFrame!=`function`?queueMicrotask(i):r=window.requestAnimationFrame(()=>{r=null,n&&(r=window.requestAnimationFrame(()=>{r=null,i()}))}),()=>{n&&(n=!1,r!==null&&(window.cancelAnimationFrame(r),r=null))}}function TM(e,t,n,r){let i={ts:Date.now(),event:t,payload:n};if(e.eventLogBuffer){let n=0;e.eventLogBuffer=[i,...e.eventLogBuffer.filter(e=>!e||typeof e!=`object`||!(`event`in e)||e.event!==t||(n+=1,n<r.maxBufferedEventsForType))].slice(0,DM)}r.warn&&console.warn(`[openclaw] ${t}`,n)}function EM(e,t){if(e.renderLifecycle){e.renderLifecycle.afterCommit(e=>wM(t,e));return}wM(t,()=>void 0)}var DM;function OM(){return(OM=e((()=>{DM=250})))()}function kM(e){return ru(kn(e.sessionKey)?.agentId??ce(e,e.sessionKey).agentId??se(e))}function AM(){return(AM=e((()=>{dt(),M()})))()}function jM(e,t,n){return e.flatMap((e,r)=>n(e,r)?!(e.runId&&t&&e.runId!==t)&&zo(e)?[{...e,persisted:!0}]:[]:[e])}function MM(e,t){let n=Wi(t);if(!n||!e.chatStreamSegments)return;let r=e.chatStreamSegments.filter(e=>{let t=K(e.runId),r=!n.runId||!t||n.runId===t;return K(e.itemId)!==n.itemId||!r});r.length!==e.chatStreamSegments.length&&(e.chatStreamSegments=r)}function NM(e,t,n){if(!Array.isArray(t.chatStreamSegments))return!1;let r=new Set;for(let i of yj(t,{includeCurrent:!1,isHiddenStreamText:n.isHiddenStreamText})){if(i.segmentIndex===void 0||i.itemId)continue;let t=Lh(e,i);xj(e,i,n.isHiddenAssistantMessage,t.start,t.end)&&r.add(i.segmentIndex)}return r.size!==0&&(t.chatStreamSegments=jM(t.chatStreamSegments,t.chatRunId,(e,t)=>r.has(t)),!0)}function PM(e,t){if(t.size===0)return;let n=og(e);if(e.toolStreamById instanceof Map)for(let n of t)e.toolStreamById.delete(n);if(Array.isArray(e.toolStreamOrder)&&(e.toolStreamOrder=e.toolStreamOrder.filter(e=>typeof e==`string`&&!t.has(e))),Array.isArray(e.chatToolMessages)&&(e.chatToolMessages=e.chatToolMessages.filter(e=>ag(e).every(e=>{let r=sg(e,n);return r===void 0||!t.has(r)}))),!Array.isArray(e.chatStreamSegments))return;let r=0;e.chatStreamSegments=jM(e.chatStreamSegments,e.chatRunId,e=>{if(e.persisted===!0)return!1;let i=K(e.toolCallId),a=Uo(e),o=a?void 0:n[r];a||(r+=1);let s=K(e.runId),c=i?sg({id:i,...s?{runId:s}:{}},n):o?.identity;return!!(c&&t.has(c))})}function FM(){return(FM=e((()=>{Ji(),Vh(),kj(),ug()})))()}function IM(e,t,n,r,i){if(t.kind!==`live`)return null;if(t.activeRunId)return i&&i!==t.activeRunId?null:t.activeRunId;let a=e.lastLocalTerminalReconcile,o=a?.sessionKey===e.sessionKey?a.runId:null;if(!o)return null;if(i)return i===o?o:null;let s=Yg(e,r).runs[o]?.message,c=Ka(s)?.trim();return c&&c===Ka(n)?.trim()?o:null}function LM(e,t,n,r){let i=Fl(t),a=i.message,o=Fl(a),s=Ui(a,i);if(!s)return;let c=qg(e,{agentId:kM(e)}),l=!!(s.role===`assistant`&&s.sequence!==null&&s.runId&&r.kind===`live`&&r.activeRunId&&s.runId!==r.activeRunId),u=s.runId===i.runId?s.runId:null,d=s.role===`assistant`&&s.id&&!s.isImported&&(u||!s.runId&&n!==!0)?IM(e,r,a,c,u):null,f=va(s.role)===`tool`&&s.id&&s.sequence!==null&&!s.isImported&&u&&Array.isArray(o.content)&&o.content.some(e=>{let t=Fl(e);return t.type===`image`&&typeof t.artifactId==`string`&&t.artifactId.trim()})?IM(e,r,a,c,u):null;if(r.kind===`live`&&s.role!==`user`&&!l&&!d&&!f||s.isImported&&!s.externalSource&&Pi(a)===null||!s.id&&!s.idempotencyKey&&s.sequence===null)return;let p=Fl(o.__openclaw),m={...o,__openclaw:{...p,...s.id?{id:s.id}:{},...s.idempotencyKey?{idempotencyKey:s.idempotencyKey}:{},...s.sequence===null?{}:{seq:s.sequence},...u?{runId:u}:{}}},h=l_(e,{type:`messagePersisted`,message:m,envelope:d?{...i,runId:d}:i},{scope:c,runActive:n});s.role===`assistant`&&h.messages.includes(m)&&(MM(e,m),d&&n===!1&&(e.chatStream=null,e.chatStreamStartedAt=null,mj(e,d)));let g=Fh(m),_=e.chatRunId;s.role===`user`&&(n===!0||n===void 0&&_===g)&&s.runId&&g&&(!_||_===g||_===s.runId)&&(e.chatRunId=g)}function RM(){return(RM=e((()=>{Ji(),Yo(),eo(),AM(),p_(),Vh(),kj(),FM()})))()}async function zM(e,t,n,r,i,a,o,s,c,l){let u=Q_(e,t,n,i,a),d=()=>e.sessions===r&&ev(e,u),f=()=>{let t=e.chatRunId,n=e.currentSessionId,r=e.chatRunLifecycleGeneration??0;return d()&&t&&n?{runId:t,sessionId:n,isCurrent:()=>d()&&e.chatRunId===t&&(e.chatRunLifecycleGeneration??0)===r&&e.currentSessionId===n}:void 0},p=SM(),m=e.chatMessages,h=yM(e,i,a),g=e.chatHistoryPagination,_=e.currentSessionId??null,v=e.chatDisplayedLeafEntryId,y=e.chatRunId,b=(t,n={})=>TM(e,`control-ui.chat.history`,{phase:t,durationMs:CM(SM()-p),sessionKey:e.sessionKey,activeRunId:e.chatRunId,requestSessionKey:i,requestAgentId:a,previousRunId:y,...n},{maxBufferedEventsForType:30});b(`start`,{method:o}),e.resetChatInputHistoryNavigation?.(),e.chatLoading=!0;let x=n=>YA(r,t,`${l}${n===void 0?`page`:`cursor:${n}`}`,o,i,a,e,{isCurrent:d,captureRun:f,onRetry:()=>{d()&&V_(e,`history`,!0)}},n,c);try{let n=B_(e),r=n.subscriptionReady;for(;r;){let t=await r;if(!d())return;if(r===n.subscriptionReady){if(!t){n.subscriptionError&&(q_(e,{phase:`failed`,sessionKey:i,requestAgentId:a,startup:o===`chat.startup`,message:n.subscriptionError,retryable:n.historyLoad.phase===`failed`&&n.historyLoad.retryable}),e.requestUpdate?.());return}break}r=n.subscriptionReady}Q(e,null);let l=await x(s);if(!d()){b(`stale`,{reason:`apply-version`});return}if(zA(l)&&l.kind===`reset`&&(GA(e,i,a),l=await x(),!d())){b(`stale`,{reason:`reset-fallback-version`});return}if(zA(l)&&l.kind===`delta`){let t=yM(e,i,a),n=Zl(l.sessionInfo);for(let t of l.messages)LM(e,t,n,{kind:`history-delta`});let r=Yg(e);return Object.hasOwn(l.sessionInfo,`activeLeafEntryId`)&&(e.chatDisplayedLeafEntryId=l.sessionInfo.activeLeafEntryId?.trim()||null),e.currentSessionId=l.sessionInfo.sessionId?.trim()||_,t_(e,{...r,scope:{...r.scope,...qg(e)}}),w_(e,l.pendingInputs,{queriedRunIds:c,receipts:!_||_===e.currentSessionId?l.inputReceipts:void 0}),e.chatThinkingLevel=l.sessionInfo.thinkingLevel??null,e.chatQueueModeOverride=l.sessionInfo.queueMode,e.chatEffectiveQueueMode=l.sessionInfo.effectiveQueueMode,bM({state:e,run:l.inFlightRun,sessionInfo:l.sessionInfo,historyRun:l.observation.run,previousRunProjections:h,runProjectionsBeforeApply:t,currentRunProjections:r.runs,resetStream:!e.chatRunId||e.chatRunId===y}),WA(e,l.deltaCursor??null),b(`applied`,{messageCount:l.messages.length,visibleMessageCount:l.messages.length,resetStream:!1}),{messages:e.chatMessages,deltaCursor:l.deltaCursor,pendingInputs:l.pendingInputs,inputReceipts:l.inputReceipts,sessionInfo:l.sessionInfo,...l.inFlightRun?{inFlightRun:l.inFlightRun}:{},...l.metadata?{metadata:l.metadata}:{},observation:l.observation}}if(zA(l))throw Error(`chat history page request returned a cursor reset`);let u=l,f=yM(e,i,a),p=Array.isArray(u.messages)?u.messages:[],S=BA(u),C=VA(u),w=ja(p),ee=Yh({host:e,previousMessages:m,sessionKey:i,visibleMessages:w}),te=Object.hasOwn(u.sessionInfo??{},`activeLeafEntryId`)?u.sessionInfo?.activeLeafEntryId?.trim()||null:v??null,T=UA({nextMessages:w,nextPagination:S,nextSessionId:C,previousMessages:u.windowReset!==!0&&(!_||!C||_===C)&&(v===void 0||v===te)?ee:[],previousPagination:g,previousSessionId:_}),ne=T?.messages??w,E=qg(e,{sessionKey:i,agentId:a,sessionId:C,...Object.hasOwn(u.sessionInfo??{},`activeLeafEntryId`)?{activeLeafEntryId:te}:{}});e.chatSubmissions?.observeInitialSession(i,t,C);let re=l_(e,{type:`snapshotLoaded`,messages:ne,options:{shouldIncludeMessage:Ca}},{scope:E,runActive:u.sessionInfo&&(typeof u.sessionInfo.hasActiveRun==`boolean`||u.sessionInfo.status!==void 0)?Zl(u.sessionInfo):void 0});Object.hasOwn(u.sessionInfo??{},`activeLeafEntryId`)&&(e.chatDisplayedLeafEntryId=te),e.chatHistoryPagination=T?.pagination??S,e.currentSessionId=C,w_(e,u.pendingInputs,{queriedRunIds:c,receipts:!_||_===C?u.inputReceipts:void 0}),WA(e,u.deltaCursor??null),e.reconnectResumeSessionId&&e.reconnectResumeSessionId!==e.currentSessionId&&(e.reconnectResumeSessionId=null),e.chatThinkingLevel=u.sessionInfo?.thinkingLevel??u.thinkingLevel??null,e.chatVerboseLevel=u.verboseLevel??null,e.chatQueueModeOverride=u.sessionInfo?.queueMode,e.chatEffectiveQueueMode=u.sessionInfo?.effectiveQueueMode;let ie=!e.chatRunId||e.chatRunId===y;if(ie){let t={persistCommentary:e.chatRunId?!0:hM(e),isHiddenAssistantMessage:Do,isHiddenStreamText:Xc};for(let t of e.chatMessages)MM(e,t);let n=wj(e,t),r=!u.inFlightRun&&Cj(e.chatMessages,e,t);u.inFlightRun||NM(e.chatMessages,e,t);let i=e.toolStreamOrder??[];e.chatRunId&&(n||i.length>0)&&(e.chatRunStartup?.state!==`status`||e.chatRunStartup.phase!==`retrying`)&&sj(e,{state:`activity`,runId:e.chatRunId});let a=cg(e.chatMessages,e),o=i.length>0&&i.every(e=>a.has(e)),s=a.size>0,c=i.length===0||o,l=(t,n)=>{t?pj(e,{preserveStreamSegments:n}):PM(e,a)};if(!n||r)e.chatRunId&&r&&Bh(e),l(c,e.chatRunId!==null),e.chatRunId||(e.chatStream=null,e.chatStreamStartedAt=null),b(`stream-reset`,{messageCount:p.length,visibleMessageCount:w.length});else if(!e.chatRunId)n_(e,mM(e.chatMessages,e)),pj(e),e.chatStream=null,e.chatStreamStartedAt=null;else if(s){n_(e,mM(e.chatMessages,e,{includeCurrent:!1,requirePersistedTool:!o,persistCommentary:!0})),bj(e,t.isHiddenStreamText)||(e.chatStreamStartedAt=null);for(let t of e.chatMessages)MM(e,t);u.inFlightRun||NM(e.chatMessages,e,t),l(o,!0)}}return bM({state:e,run:u.inFlightRun,sessionInfo:u.sessionInfo,historyRun:u.observation.run,previousRunProjections:h,runProjectionsBeforeApply:f,currentRunProjections:re.runs,resetStream:ie}),b(`applied`,{messageCount:p.length,visibleMessageCount:w.length,resetStream:ie}),u}catch(t){if(!d()){b(`stale`,{reason:`error-version`});return}b(`error`);let n=it(t);n&&(tv(e,a),e.chatThinkingLevel=null,e.chatVerboseLevel=null),q_(e,{phase:`failed`,sessionKey:i,requestAgentId:a,startup:o===`chat.startup`,message:n?oe(`existing chat history`):IA(t),retryable:FA(t,o)||t instanceof vr&&t.retryable}),e.requestUpdate?.()}finally{$_(e,u)&&(V_(e,`history`,!1),e.chatLoading=!1)}}function BM(){return(BM=e((()=>{Un(),os(),et(),oj(),RA(),KA(),rv(),xM(),O_(),fj(),p_(),OM(),RM(),Vh(),kj(),FM(),tg(),ug()})))()}async function VM(e,t={}){let n=e.sessionKey,r=D(e,n)?A(e):void 0,i=t.startup===!0,a=e.chatSubmissions?.creation?.sessionKey===n||e.hasPendingInitialTurn?.(n),o=B_(e);if(!e.client||!e.connected){q_(e,{phase:`pending-connection`,sessionKey:n,requestAgentId:r,startup:i}),e.chatLoading=!0,e.requestUpdate?.();return}let s=i?`chat.startup`:`chat.history`,c=e.client,l=e.sessions,u=e.connectionEpoch,d=()=>e.connected&&e.client===c&&e.sessions===l&&e.connectionEpoch===u,f=()=>!D(e,n)||A(e)===r,p=i?G_(e):void 0;if(p){let i=o.historyVersion;if(e.chatLoading=!0,e.requestUpdate?.(),!await p||!d()||!xn(e.sessionKey,n)||!f())return;if(n=e.sessionKey,o.historyVersion!==i){let e=o.historyLoad;if(e.phase===`idle`)return;if(e.phase===`in-flight`&&t.supersedeInFlight!==!0&&e.startup&&e.client===c&&e.sessions===l&&e.connectionEpoch===u&&e.sessionKey===n&&e.requestAgentId===r)return e.promise}}let m=dv(e),h=m===void 0?`page`:`cursor:${m}`,g=b_(e),_=JSON.stringify([u,s,n,r??``,80,g]),v=`${_}${h}`,y=o.historyLoad;if(y.phase===`in-flight`&&y.sessionKey===n&&y.requestAgentId===r&&y.client===c&&y.sessions===l&&y.connectionEpoch===u){if(y.refresh)return y.refresh.startup||=i,y.refresh.deferBranches&&=t.deferBranches===!0,y.refresh.promise;if(t.supersedeInFlight!==!0&&y.key===v)return y.promise;let r=++o.historyVersion,a={startup:i||y.startup,deferBranches:t.deferBranches===!0,promise:Promise.resolve(void 0)};return a.promise=y.promise.then(()=>{if(o.historyVersion===r&&d()&&e.sessionKey===n&&f())return VM(e,a)}),y.refresh=a,a.promise}let b=zM(e,c,u,l,n,r,s,m,g,_).then(s=>{let d=o.historyLoad;return d.phase===`in-flight`&&d.promise===b&&(s?(t.deferBranches!==!0&&(!xn(e.chatBranchesSessionKey,n)||e.chatBranchesConnectionEpoch!==u)&&SA(e),q_(e,{phase:`committed`,sessions:l,client:c,connectionEpoch:u,sessionKey:n,requestAgentId:r,sessionInfo:s.sessionInfo,sessionId:VA(s)??(a?void 0:null)})):e.sessionKey===n&&f()&&(!e.connected||d.client!==e.client||d.sessions!==e.sessions||d.connectionEpoch!==e.connectionEpoch)?(q_(e,{phase:`pending-connection`,sessionKey:n,requestAgentId:r,startup:i}),e.chatLoading=!0):(q_(e,{phase:`idle`}),e.chatLoading=!1),e.requestUpdate?.()),s});return q_(e,{phase:`in-flight`,sessions:l,client:c,connectionEpoch:u,key:v,promise:b,sessionKey:n,requestAgentId:r,startup:i}),b}function HM(e){let t=J_(e);if(t.phase===`pending-connection`||t.phase===`failed`&&t.retryable)return VM(e,{startup:t.startup,deferBranches:!0})}function UM(e,t,n){if(!t||e.client!==n||!e.connected)return;e.agentsList=t,e.agentsError=null;let r=typeof e.agentsSelectedId==`string`&&e.agentsSelectedId.trim()?ru(e.agentsSelectedId):void 0;r&&t.agents.some(e=>ru(e.id)===r)||(e.agentsSelectedId=typeof t.defaultId==`string`&&t.defaultId.trim()?t.defaultId:t.agents[0]?.id??null)}function WM(){return(WM=e((()=>{M(),wA(),BM(),oj(),KA(),rv(),O_(),jv()})))()}function GM(e){return Mr({signal:e.signal,value:!1},({render:t,finish:n})=>{let r=!1,i=``,a=()=>!e.signal.aborted&&e.isCurrent(),o=()=>V` <openclaw-modal-dialog
      label=${I(`chat.privateDraftReload.title`)}
      description=${I(`chat.privateDraftReload.description`)}
      @modal-cancel=${()=>n(!1)}
    >
      <section class="exec-approval-card">
        <div class="exec-approval-header">
          <div>
            <div class="exec-approval-title">${I(`chat.privateDraftReload.title`)}</div>
            <div class="exec-approval-sub">${I(`chat.privateDraftReload.description`)}</div>
          </div>
        </div>
        ${e.text?V`
                <label class="field"
                  ><span>${I(`chat.privateDraftReload.text`)}</span>
                  <textarea readonly rows="6" .value=${e.text}></textarea>
                </label>
                <button
                  type="button"
                  class="btn"
                  @click=${async()=>{if(!a()){n(!1);return}r=await le(e.text,a),a()&&(i=r?``:I(`chat.privateDraftReload.copyFailed`),t(o))}}
                >
                  ${I(r?`common.copied`:`chat.privateDraftReload.copy`)}
                </button>
              `:B}
        ${e.hasGoal?V`<p>${I(`chat.privateDraftReload.goal`)}</p>`:B}
        ${e.pendingReads?V`<p>${I(`chat.privateDraftReload.reading`)}</p>`:B}
        ${e.attachments.map(e=>V`
            <div class="field">
              <span>${e.fileName??e.mimeType}</span>
              <button
                type="button"
                class="btn"
                @click=${()=>{if(!a()){n(!1);return}let r=ap(e);r?Wa(e.fileName??`attachment`,r):(i=I(`chat.privateDraftReload.attachmentUnavailable`),t(o))}}
              >
                ${I(`chat.privateDraftReload.download`,{name:e.fileName??e.mimeType})}
              </button>
            </div>
          `)}
        ${i?V`<p role="alert">${i}</p>`:B}
        <div class="exec-approval-actions">
          <button type="button" class="btn danger" @click=${()=>n(a())}>
            ${I(`chat.privateDraftReload.discard`)}
          </button>
          <button type="button" class="btn" autofocus @click=${()=>n(!1)}>
            ${I(`chat.privateDraftReload.keep`)}
          </button>
        </div>
      </section>
    </openclaw-modal-dialog>`;t(o)})}function KM(){return(KM=e((()=>{H(),gr(),O(),tt(),Y()})))()}function qM(e,t,n){let i=Ne.get(e);!i&&n&&(i=new Map,Ne.set(e,i));let a=i?.get(t);if(!a&&n&&(a=[],i?.set(t,a)),a){let e=Date.now();r(a,t=>t.expiresAt<=e)}return a}function JM(e,t,n,i){let a=qM(e,t,!0);r(a,e=>xn(e.sessionKey,n));let o=e.gateway.snapshot.client,s=lr(e.gateway,{gatewayUrl:e.gateway.connection.gatewayUrl,recoveryScope:o?.recoveryScope||void 0}),c={sessionKey:n,value:{...i},isCurrent:()=>e.gateway.snapshot.client===o&&s(),expiresAt:Date.now()+Ze};for(a.push(c),globalThis.setTimeout(()=>{qM(e,t,!1)},Ze);a.length>aN;)a.shift()}function YM(e,t,n){let r=qM(e,t,!1),i=r?.findIndex(e=>e.isCurrent()&&xn(e.sessionKey,n));return!r||i===void 0||i<0?null:r.splice(i,1)[0].value}function XM(e,t,n){r(qM(e,t,!1),e=>xn(e.sessionKey,n))}function ZM(e,t){let n=Ne.get(e);n?.delete(t)&&n.size===0&&Ne.delete(e)}function QM(e,t){let n=J(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 $M(e){let t=J(e)?.result;try{return JSON.stringify(t)||null}catch{return null}}function eN(e,t){return/^[a-z0-9]$/iu.test(t)&&e.matches(`wa-dropdown, [data-chat-autotype-shortcuts][open]`)&&e.querySelector(`[data-shortcut="${t.toLowerCase()}"]:not([disabled])`)!==null}function tN(e){return e.composedPath().some(t=>t instanceof HTMLElement&&(t.matches(uN)||eN(t,e.key)||e.key===` `&&t.matches(dN)))}function nN(e,t){return[...(e instanceof Element?e.closest(`openclaw-app`)??e:e).querySelectorAll(`wa-dropdown`)].some(e=>e.open===!0&&!e.closest(`[inert]`)&&(fN.has(t)||eN(e,t)))}function rN(e,t=[]){let n=!1;return e.querySelectorAll(cN).forEach(e=>{t.includes(e)||(e.open=!1,n=!0)}),n}function iN(e,t){if(t.defaultPrevented||t.isComposing||t.metaKey||t.ctrlKey||t.altKey||nN(e,t.key)||t.key.length!==1||tN(t)||document.openClawModalLayers?.size||document.querySelector(`dialog[open], [aria-modal='true']`))return;let n=e.querySelector(lN);!n||n.disabled||n.readOnly||(n.focus({preventScroll:!0}),t.stopImmediatePropagation())}var aN,oN,sN,cN,lN,uN,dN,fN,pN,mN,hN;function gN(){return(gN=e((()=>{fr(),M(),at(),aN=4,oN=1200,sN=new Set([`ArrowUp`,`PageUp`,`Home`]),cN=`.chat-controls__inline-select[open], .context-usage details[open], .agent-chat__attach-menu[open], .chat-pr__checks[open]`,lN=`.agent-chat__composer-combobox > textarea`,uN=`input, textarea, select, [contenteditable]:not([contenteditable='false']), [role='combobox'], [role='textbox'], [data-chat-autotype-exempt]`,dN=`a[href], button, summary, [role='button'], [role='checkbox'], [role='link'], [role='listbox'], [role='menu'], [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'], [role='option'], [role='radio'], [role='switch'], [role='tab']`,fN=new Set([` `,`Enter`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`Escape`]),pN=`Start a new session after the active run or queued messages finish.`,mN=`Session list is still refreshing. Try New Chat again in a moment.`,hN=`New Chat could not create a new thread. Try again in a moment.`})))()}function _N(e,t=`pasted-image`){let n=e.trim(),r=/^data:(image\/[a-z0-9.+-]+);base64,/i.exec(n),i=r?.[1]?.toLowerCase(),a=r?n.slice(r[0].length).replace(/\s+/g,``):void 0;if(!i||!a)return null;try{return{file:new File([d(a)],`${t}.${i.slice(6)}`,{type:i}),dataUrl:`data:${i};base64,${a}`}}catch{return null}}function vN(e){return e.type===`image/png`}async function yN(e,t){let n=new DataView(await e.slice(0,33).arrayBuffer());if(t.throwIfAborted(),n.byteLength!==33||n.getUint32(0)!==2303741511||n.getUint32(4)!==218765834||n.getUint32(8)!==13||n.getUint32(12)!==1229472850)throw Error(`Invalid PNG header`);let r=n.getUint32(16),i=n.getUint32(20);if(r===0||i===0||r*i>25e6)throw Error(`PNG dimensions exceed the resize budget`);for(let n=33;n+12<=e.size;){t.throwIfAborted();let r=new DataView(await e.slice(n,n+8).arrayBuffer());t.throwIfAborted();let i=r.getUint32(0),a=r.getUint32(4);if(i>e.size-n-12||a===1229472850)break;if(a===1633899596)throw Error(`Animated PNG cannot be resized without losing animation`);if(a===1229209940)return;n+=i+12}throw Error(`PNG image data is missing`)}async function bN(e,t,n,r){n.throwIfAborted(),await yN(e,n),r(!1);let i=xN.then(()=>(n.throwIfAborted(),r(!0),new Promise((r,i)=>{let a=new Worker(new URL(new URL(`chat-attachment-image.worker-P4E63gj9.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),o=!1,s=e=>{o||(o=!0,a.terminate(),n.removeEventListener(`abort`,c),e&&!n.aborted?r(e):i(n.aborted?new DOMException(`Image preparation aborted`,`AbortError`):Error(`Image preparation failed`)))},c=()=>s(null);n.addEventListener(`abort`,c,{once:!0}),a.addEventListener(`message`,({data:e})=>s(e),{once:!0}),a.addEventListener(`error`,e=>{e.preventDefault(),s(null)},{once:!0}),a.addEventListener(`messageerror`,()=>s(null),{once:!0});try{a.postMessage({file:e,maxBytes:t},[])}catch{s(null)}})));return xN=i.then(()=>{},()=>{}),i}var xN;function SN(){return(SN=e((()=>{xN=Promise.resolve()})))()}function CN(e){if(!e?.attachments)return;let t=jN.get(e);return t||(t={...e.attachments,maxBatchBytes:uf(e.maxPayload??1/0)},jN.set(e,t)),t}function wN(e,t){return I(e,{names:t.slice(0,3).map(e=>e.trim()?e:I(`chat.attachments.attachedFile`)).join(`, `),more:t.length>3?` +${t.length-3}`:``})}function TN(e,t){t.length!==0&&yn({message:wN(e,t.map(e=>e.name))})}function EN(e,t,n,r={}){let i=[],a=[],o=[],s=n;for(let n of e){let e=DN(n.size,n.type,t);n.size===0?a.push(n):t&&(n.size>e&&!(r.resizeImages&&vN(n))||s+e>t.maxBatchBytes)?o.push(n):(i.push(n),s+=e)}return TN(`chat.attachments.readFailed`,a),TN(`chat.attachments.tooLarge`,o),i}function DN(e,t,n){let r=t.startsWith(`image/`)?n?.maxImageBytes:n?.maxBytes;return Math.min(e,r??1/0)}function ON(e){let t=e.sizeBytes;if(typeof t==`number`&&Number.isFinite(t)&&t>=0)return t;let n=np(e)?.match(/^data:[^,]*;base64,([\s\S]*)$/i)?.[1]?.replace(/\s/g,``);return n?Math.max(0,Math.floor(n.length*3/4)-(n.match(/=+$/)?.[0].length??0)):0}function kN(e){return e.reduce((e,t)=>e+ON(t),0)}function AN(e,t){let n=CN(t);if(!n)return;let r=0,i=e.filter(e=>{let t=ON(e);return t>(e.mimeType.startsWith(`image/`)?n.maxImageBytes:n.maxBytes)||r+t>n.maxBatchBytes||(r+=t,!1)});return i.length>0?wN(`chat.attachments.tooLarge`,i.map(e=>e.fileName??``)):void 0}var jN;function MN(){return(MN=e((()=>{sf(),O(),ot(),Y(),SN(),jN=new WeakMap})))()}function NN(e){return e.getAttachments?.()??e.attachments??[]}function PN(e,t){let n=NN(t).filter(t=>t.id!==e.id);Xt(e.id),t.onAttachmentsChange?.(n)}function FN(){return(FN=e((()=>{Y()})))()}function IN(e,t,n,r){let i=r.readSignal??n.readSignal;if(i.aborted){n.remove(t);return}let a=new FileReader,o=e,s=new AbortController,c=!1,l,u=e=>{d(e);try{a.abort()}catch{}},d=e=>{if(!c){if(c=!0,s.abort(),clearTimeout(l),l=void 0,i.removeEventListener(`abort`,f),t.cancel=void 0,e===`ready`&&!Tt(r.uploadConfig))yn({message:Et()}),n.settle(t,`error`);else if(e===`ready`&&typeof a.result==`string`&&!i.aborted){let e=tp({attachment:t.attachment,dataUrl:a.result,file:o}),r=[...t.destination.getAttachments(),e],i=new Set(r.map(({id:e})=>e));t.destination.onAttachmentsChange(n.project(r).filter(({attachment:e})=>i.has(e.id)).map(({attachment:e})=>e)),n.settle(t,`ready`)}else e===`aborted`||i.aborted?n.remove(t):n.settle(t,`error`);t.destination.onPendingReadsChange?.(-1)}},f=()=>u(`aborted`),p=()=>u(`error`),m=e=>{clearTimeout(l),l=e&&!c?setTimeout(p,LN):void 0};t.cancel=f,i.addEventListener(`abort`,f,{once:!0}),a.addEventListener(`error`,()=>d(`error`),{once:!0}),a.addEventListener(`abort`,()=>d(`aborted`),{once:!0}),a.addEventListener(`load`,()=>d(`ready`),{once:!0}),a.addEventListener(`progress`,e=>{!c&&e.lengthComputable&&e.total>0&&(n.updateProgress(t,Math.min(1,Math.max(0,e.loaded/e.total))),l!==void 0&&m(!0))}),t.destination.onPendingReadsChange?.(1),m(!0);let h=e=>{if(!c){if(EN([e],r.attachmentLimits,0).length===0){d(`error`);return}o=e,t.attachment={...t.attachment,mimeType:e.type||`application/octet-stream`,sizeBytes:e.size},m(!0);try{a.readAsDataURL(e)}catch{d(`error`)}}},g=r.attachmentLimits?.maxImageBytes;g!==void 0&&e.type.startsWith(`image/`)&&e.size>g?bN(e,g,s.signal,m).then(h,()=>d(`error`)):h(e)}var LN,RN;function zN(){return(zN=e((()=>{ot(),Gt(),Y(),MN(),SN(),LN=15e3,RN=class{constructor(e){this.notify=e,this.pendingReads=0,this.controller=new AbortController,this.entries=[]}retarget(e,t){this.notify=t;for(let t of this.entries)t.destination&&=e}get readSignal(){return this.controller.signal}pendingBytes(e){return this.entries.reduce((t,n)=>t+(n.state===`reading`?DN(n.attachment.sizeBytes??0,n.attachment.mimeType,e):0),0)}updatePending(e,t){this.controller.signal===e&&(this.pendingReads=Math.max(0,this.pendingReads+t),this.notify())}begin(e,t,n){this.project(t);let r=e.map(e=>({attachment:{id:lp(),origin:`file`,mimeType:e.type||`application/octet-stream`,fileName:e.name||void 0,sizeBytes:e.size},state:`reading`,destination:n}));return this.entries.push(...r),this.notify(),r}project(e){let t=new Map(e.map(e=>[e.id,e]));this.entries=this.entries.filter(e=>{let n=t.get(e.attachment.id);return n&&(e.attachment=n,t.delete(n.id)),e.state!==`ready`||n!==void 0});for(let e of t.values())this.entries.push({attachment:e,state:`ready`});return this.entries}settle(e,t){this.entries.includes(e)&&(e.state=t,e.cancel=void 0,this.notify())}updateProgress(e,t){this.entries.includes(e)&&e.state===`reading`&&(e.progress=t,this.notify())}remove(e){this.entries=this.entries.filter(t=>t!==e),e.cancel?.(),e.cancel=void 0,this.notify()}abortReads(){let e=this.controller;this.controller=new AbortController,this.entries=[],this.pendingReads=0,e.abort(),this.notify()}}})))()}function BN(e){return`data:text/plain;base64,${bn(new TextEncoder().encode(e))}`}function VN(){return(VN=e((()=>{})))()}function HN(e){let t=/^data:([^,]*),(.*)$/s.exec(e);if(!t)return null;let n=t[1],r=t[2];try{return n.toLowerCase().includes(`;base64`)?new TextDecoder().decode(d(r)):decodeURIComponent(r.replace(/\+/g,`%20`))}catch{return null}}function UN(e,t){return e.trim()?`${e.replace(/\s+$/u,``)}\n\n${t}`:t}function WN(e,t){let n=np(e),r=n?HN(n):null;r&&t.onDraftChange&&(PN(e,t),t.onDraftChange(UN(t.getDraft?.()??t.draft??``,r)),t.onRequestUpdate?.())}function GN(e,t){let n=()=>t.readSignal?.aborted?void 0:NN(t).find(t=>t.id===e.id),r=e.fileName?.trim()?I(`chat.composer.removeNamedAttachment`,{name:e.fileName}):I(`chat.composer.removeAttachment`),i=()=>{n()&&!t.disabled&&PN(e,t)},a=()=>V`<button
    class="chat-attachment-text-action"
    type="button"
    ?disabled=${t.disabled}
    @click=${()=>{let e=n();e&&!t.disabled&&WN(e,t)}}
  >
    ${I(`chat.attachments.showInTextField`)}
  </button>`;return V`<openclaw-chat-pasted-text
    .src=${np(e)}
    .sizeBytes=${e.sizeBytes}
    .scope=${e.id}
    .onOpen=${()=>{n()&&t.onOpenSidebar?.({kind:`attachment`,attachmentKind:`document`,title:e.fileName??I(`chat.attachments.pastedText`),mimeType:`text/plain`,plainText:!0,sourceIdentity:e.id,resolveSource:()=>{let e=n();if(!e)return{status:`unavailable`};let t=op(e);return t?{status:`ready`,src:t,sizeBytes:e.sizeBytes}:{status:`unavailable`}},renderActions:()=>V`${a()}
        <button
          class="btn btn--sm"
          type="button"
          aria-label=${r}
          ?disabled=${t.disabled}
          @click=${i}
        >
          ${z.trash}
        </button>`})}}
    .composerAction=${a()}
    .composerRemoveAction=${V`<openclaw-tooltip .content=${r}>
      <button
        class="chat-attachment-remove"
        type="button"
        aria-label=${r}
        ?disabled=${t.disabled}
        @click=${i}
      >
        ${z.x}
      </button>
    </openclaw-tooltip>`}
  ></openclaw-chat-pasted-text>`}function KN(){return(KN=e((()=>{H(),L(),O(),Y(),FN()})))()}function qN(e,t,n){e.currentTarget?.dispatchEvent(new CustomEvent(`openclaw-comment-action`,{bubbles:!0,composed:!0,detail:{id:t,action:n}}))}function JN(e){let t=e.attachments?.filter(e=>e.selectionAnnotation)??[];return t.length?$T(t.length,V`<ol class="chat-comment-preview__list" role="list">
          ${t.map((t,n)=>QT(t.selectionAnnotation,V`<span class="chat-comment-preview__actions">
                ${[`edit`,`delete`].map(r=>V`<button
                    type="button"
                    data-comment-delete=${r===`delete`?t.id:B}
                    aria-label=${r===`edit`?I(`chat.messages.editAnnotation`,{number:String(n+1)}):I(`chat.messages.deleteAnnotation`)}
                    ?disabled=${e.disabled||e.readSignal?.aborted}
                    @click=${e=>qN(e,t.id,r)}
                  >
                    ${r===`edit`?z.pencil:z.trash}
                  </button>`)}
              </span>`))}
        </ol>`,void 0,{onRemove:e=>qN(e,void 0,`delete-all`),disabled:!!(e.disabled||e.readSignal?.aborted)}):B}function YN(){return(YN=e((()=>{H(),L(),O(),tl(),eE(),_a()})))()}function XN(e){return Array.from(e?.types??[]).includes(`Files`)}function ZN(e){let t=e.target;if(!(t instanceof Element))return!1;let n=t.closest(`textarea, input, [contenteditable]`);return n instanceof HTMLInputElement?lP.has(n.type)&&!n.disabled&&!n.readOnly:n instanceof HTMLTextAreaElement?!n.disabled&&!n.readOnly:n instanceof HTMLElement&&n.isContentEditable}function QN(e,t=NN(e)){return kN(t)+(e.attachmentReads?.pendingBytes(e.attachmentLimits)??0)}function $N(e,t,n=`file`){return tp({attachment:{id:lp(),origin:n,mimeType:e.type||`application/octet-stream`,fileName:e.name||void 0,sizeBytes:e.size},dataUrl:t,file:e})}function eP(e,t,n,r){let i=_N(e,t.replace(/\.[a-z0-9]+$/i,``)||`image`);return!i||EN([i.file],n,r).length===0?null:$N(i.file,i.dataUrl)}function tP(e,t){if(!t.onAttachmentsChange||e.length===0||t.readSignal?.aborted)return 0;if(!Tt(t.uploadConfig))return yn({message:Et()}),0;let n=t.imagesOnly?e.filter(e=>!e.type.startsWith(`image/`)):[];n.length&&yn({message:I(`chat.attachments.imagesOnly`)});let r=QN(t),i=EN(e.filter(e=>!n.includes(e)),t.attachmentLimits,r,{resizeImages:!0});if(i.length===0)return 0;let a=t.attachmentReads??new RN(()=>t.onRequestUpdate?.());return a.begin(i,NN(t),{getAttachments:()=>NN(t),onAttachmentsChange:t.onAttachmentsChange,onPendingReadsChange:t.onPendingReadsChange}).forEach((e,n)=>{let r=i[n];r&&IN(r,e,a,t)}),i.length}function nP(e,t,n={}){if(!e.clipboardData||!t.onAttachmentsChange)return;if(!Tt(t.uploadConfig)){let t=Array.from(e.clipboardData.items??[]).some(e=>e.kind===`file`||e.type.startsWith(`image/`)),n=/^data:image\//i.test(e.clipboardData.getData(`text/plain`).trim());(t||n)&&(e.preventDefault(),yn({message:Et()}));return}let r=Array.from(e.clipboardData.items??[]).filter(e=>e.type.startsWith(`image/`)).map(e=>e.getAsFile()).filter(e=>e!==null),i=r.length===0?e.clipboardData.getData(`text/plain`):void 0,a=i?_N(i):null;if(a&&r.push(a.file),r.length===0){if(n.imagesOnly||!i||i.length<=cP)return;e.preventDefault();let r=new File([i],`pasted-text-${Date.now()}.txt`,{type:`text/plain`}),a=QN(t);if(EN([r],t.attachmentLimits,a).length===0)return;let o=$N(r,BN(i),`paste`);t.onAttachmentsChange([...NN(t),o]);return}if(e.preventDefault(),a&&(!t.attachmentLimits||a.file.size<=t.attachmentLimits.maxImageBytes)){let e=QN(t);if(EN([a.file],t.attachmentLimits,e).length===0)return;t.onAttachmentsChange([...NN(t),$N(a.file,a.dataUrl)]);return}tP(r,t)}function rP(e){let t=0,n=(n,r)=>{XN(n.dataTransfer)&&n.stopPropagation();let i=n.currentTarget;if(i instanceof HTMLElement){if(r){if(!e.canCompose||!Tt(e.uploadConfig)||!XN(n.dataTransfer))return;t+=1}else t=Math.max(0,t-1);i.toggleAttribute(`data-attachment-drop-active`,t>0)}},r=e=>{t=0;let n=e.currentTarget;n instanceof HTMLElement&&n.removeAttribute(`data-attachment-drop-active`)};return{onDragenter:e=>n(e,!0),onDragleave:e=>n(e,!1),onDragover:t=>{if(!XN(t.dataTransfer)){ZN(t)||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`none`));return}t.preventDefault(),t.stopPropagation(),t.dataTransfer&&(t.dataTransfer.dropEffect=e.canCompose&&Tt(e.uploadConfig)?`copy`:`none`)},onDrop:t=>{if(!XN(t.dataTransfer)){ZN(t)||t.preventDefault();return}t.preventDefault(),t.stopPropagation(),r(t),e.canCompose&&tP([...t.dataTransfer?.files??[]],e)}}}function iP(e,t,n,r){let i=op(e);return i?r.onOpenImage?V`
    <button
      type="button"
      class="chat-message-image-button chat-attachment-image-button"
      aria-label=${I(`chat.imageLightbox.open`,{title:n})}
      @click=${()=>r.onOpenImage?.({src:i,title:n})}
    >
      <img src=${i} alt=${t} />
    </button>
  `:V`<img src=${i} alt=${t} />`:B}function aP(e,t,n){let r=t.title.trim()||t.displayUrl.trim()||e.fileName||I(`chat.attachments.attachedFile`),i=I(t.markedRegionCount===1?`chat.composer.browserAnnotationRegion`:`chat.composer.browserAnnotationRegions`,{count:String(t.markedRegionCount)}),a=I(`chat.composer.removeBrowserAnnotation`,{name:r});return V`
    <div
      class="chat-attachment-thumb chat-attachment-thumb--browser-annotation"
      data-attachment-id=${e.id}
      role="group"
      aria-label=${`${I(`chat.composer.browserAnnotation`)}: ${r}`}
    >
      <div class="chat-browser-annotation-card__preview">
        ${iP(e,I(`chat.composer.browserAnnotationPreview`),r,n)}
      </div>
      <div class="chat-attachment-file__body chat-browser-annotation-card__body">
        <span
          class="chat-attachment-file__name chat-browser-annotation-card__identity"
          title=${r}
          >${r}</span
        >
        <span class="chat-attachment-file__meta chat-browser-annotation-card__meta">
          <span>${i}</span>
        </span>
      </div>
      <openclaw-tooltip .content=${a}>
        <button
          class="chat-attachment-remove chat-browser-annotation-card__remove"
          type="button"
          aria-label=${a}
          ?disabled=${n.disabled}
          @click=${()=>n.onRemoveAttachment?n.onRemoveAttachment(e):PN(e,n)}
        >
          ${z.x}
        </button>
      </openclaw-tooltip>
    </div>
  `}function oP(e){return V`<div
    class="chat-attachments-status sr-only"
    role="status"
    aria-live="polite"
    aria-atomic="true"
  >
    ${e>0?I(e===1?`chat.composer.preparingAttachmentCount`:`chat.composer.preparingAttachmentsCount`,{count:String(e)}):B}
  </div>`}function sP(e){let t=e.attachments??[],n=e.attachmentReads?.project(t)??t.map(e=>({attachment:e,state:`ready`}));return n.length===0?B:V`
    <div class="chat-attachments-preview" ${rd(!0)}>
      ${JN(e)}
      ${mi(n.filter(({attachment:e})=>!e.selectionAnnotation),({attachment:e})=>e.id,t=>{let n=t.attachment,r=t.state===`reading`,i=t.state===`error`,a=I(`chat.attachments.readFailed`,{names:n.fileName??I(`chat.attachments.attachedFile`),more:``}),o=n.fileName?.trim()?I(`chat.composer.removeNamedAttachment`,{name:n.fileName}):I(`chat.composer.removeAttachment`);return n.browserAnnotation?aP(n,n.browserAnnotation,e):qT(n)?GN(n,e):V`
                  <div
                    class=${[`chat-attachment-thumb`,n.mimeType.startsWith(`image/`)?``:`chat-attachment-thumb--file`,i?`chat-attachment-thumb--error`:``].filter(Boolean).join(` `)}
                    aria-busy=${r?`true`:`false`}
                  >
                    ${i?V`<openclaw-tooltip .content=${a}>
                            <span
                              class="chat-attachment-error"
                              tabindex="0"
                              role="img"
                              aria-label=${a}
                            >
                              ${zC({filename:n.fileName??``,mimeType:n.mimeType,mode:`large-placeholder`,unavailable:!0})}
                            </span>
                          </openclaw-tooltip>`:r?B:n.mimeType.startsWith(`image/`)&&op(n)?iP(n,n.fileName?.trim()||I(`chat.composer.attachmentPreview`),n.fileName?.trim()||I(`chat.imageLightbox.untitled`),e):zT(n)}
                    <span
                      class="chat-attachment-loading"
                      data-state=${t.state}
                      data-indeterminate=${r&&t.progress===void 0?`true`:`false`}
                      aria-hidden="true"
                      ><span
                        style=${ti({transform:t.progress===void 0?void 0:`scaleX(${t.progress})`})}
                      ></span
                    ></span>
                    <openclaw-tooltip .content=${o}>
                      <button
                        class="chat-attachment-remove"
                        type="button"
                        aria-label=${o}
                        ?disabled=${e.disabled}
                        @click=${()=>{e.attachmentReads?.remove(t),PN(n,e)}}
                      >
                        ${z.x}
                      </button>
                    </openclaw-tooltip>
                  </div>
                `})}
    </div>
  `}var cP,lP;function uP(){return(uP=e((()=>{H(),vi(),qr(),L(),md(),Qn(),Iu(),O(),ot(),Gt(),Y(),MN(),FN(),HC(),BT(),SN(),zN(),VN(),KN(),XT(),YN(),cP=1e3,lP=new Set([`email`,`number`,`password`,`search`,`tel`,`text`,`url`])})))()}function dP(e){let t=e.indexOf(`,`);if(!e.startsWith(`data:`)||t<0)return null;let[n,...r]=e.slice(5,t).split(`;`);if(!n||r.pop()!==`base64`||r.some(e=>!/^[^=]+=[\s\S]*$/.test(e)))return null;let i=e.slice(t+1);return i&&!/[\r\n\u2028\u2029]/.test(i)?{mimeType:n,content:i}:null}function fP(e){return e?.length?e.map(e=>{let t=np(e),n=t?dP(t):null;if(!n)throw Error(I(`chat.sendErrors.outboxPayloadMissing`));return{type:n.mimeType.startsWith(`image/`)?`image`:`file`,mimeType:n.mimeType,fileName:e.fileName,...e.origin?{origin:e.origin}:{},content:n.content}}):void 0}function pP(){return(pP=e((()=>{O(),Y()})))()}function mP(e){let t=xP.get(e)??{attempts:new Map,timers:new Map};return xP.set(e,t),t}function hP(e,t){return!t.host.connected||t.host.client!==e||t.connectionEpoch!==t.host.connectionEpoch}function gP(e){return!(e instanceof vr)||!e.retryable?null:Math.min(Math.max(e.retryAfterMs??500,100),bP)}function _P(e,t,n,r){let i=e.client;if(!e.connected||!i)return;let a=mP(i);if(a.timers.has(t))return;let o=(a.attempts.get(t)??0)+1,s=Dl({initialMs:n,maxMs:bP,factor:2,jitter:0},o);a.attempts.set(t,o);let c={timer:setTimeout(()=>{a.timers.delete(t),hP(i,c)||r(c.host)},s),connectionEpoch:e.connectionEpoch,host:e};a.timers.set(t,c)}function vP(e,t,n,r){let i=e.client;if(!i)return!1;let a=mP(i),o=a.timers.get(t);if(!o)return!1;let s=hP(i,o);return!s&&n&&(o.connectionEpoch=e.connectionEpoch,o.host=e),!r&&!s||(clearTimeout(o.timer),a.timers.delete(t),a.attempts.delete(t),!1)}function yP(e,t){let n=mP(e);n.timers.has(t)||n.attempts.delete(t)}var bP,xP;function SP(){return(SP=e((()=>{wl(),Un(),bP=3e4,xP=new WeakMap})))()}function CP(e,t){let{sessionKey:n}=t,r=N(t),i=new Set([r]);for(let t of Object.keys(e.chatComposerFallbackByScope)){let n=kc(t);n&&e.chatComposerFallbackByScope[t]?.awaitingDefaults&&N(k(e,n.sessionKey,n.agentId))===r&&i.add(t)}let a=[...i].flatMap(t=>{let n=e.chatComposerFallbackByScope[t];return n===void 0?[]:[{fallback:n,scopeKey:t}]}),o=a.toSorted((e,t)=>t.fallback.sequence-e.fallback.sequence)[0];if(!o)return{scopeKey:r};let s=o.scopeKey,c=o.fallback;if(Oe(e)&&delete c.awaitingDefaults,a.length===1&&s===r)return{fallback:c,scopeKey:r};let l=c;if(s!==r&&c.draftRetry){let r=Yp(e,n,t.agentId).revisions.committed,i=Yp(e,n,t.agentId).revisions.latestAttempt;c.draftRetry.draftRevision>i&&(l={...c,draftRetry:{...c.draftRetry,expectedDraftRevision:r}})}let u={...e.chatComposerFallbackByScope};for(let e of a)delete u[e.scopeKey];return u[r]=l,cp(a.flatMap(e=>e.fallback.attachments),[e.chatAttachments,...Object.values(u).map(e=>e.attachments)]),e.chatComposerFallbackByScope=u,{fallback:l,scopeKey:r}}function wP(e,t,n){let r=++AP;return e.chatComposerFallbackByScope={...e.chatComposerFallbackByScope,[N(t)]:{...Oe(e)?{}:{awaitingDefaults:!0},...Ep(e,t)?{incognito:!0}:{},message:n.message,...n.mentions?.length?{mentions:n.mentions.map(e=>({...e}))}:{},...n.goalMode?{goalMode:n.goalMode}:{},...n.replyTarget?{replyTarget:{...n.replyTarget}}:{},attachments:[...n.attachments],storageFailed:n.draftRetry!==void 0,sequence:r,...n.draftRetry?{draftRetry:n.draftRetry}:{}}},{sequence:r}}function TP(e,t){return e.message===t.message&&JSON.stringify(e.mentions??[])===JSON.stringify(t.mentions??[])&&JSON.stringify(e.replyTarget??null)===JSON.stringify(t.replyTarget??null)&&e.attachments.length===t.attachments.length&&e.attachments.every((e,n)=>e.id===t.attachments[n]?.id)}function EP(e,t,n){let{fallback:r,scopeKey:i}=CP(e,t);if(r&&TP(r,n))return{sequence:r.sequence};let a=r&&!!(r.message.trim()||r.replyTarget||r.attachments.length>0);if(r?.storageFailed&&!a)return e.chatComposerFallbackByScope={...e.chatComposerFallbackByScope,[i]:{...r,message:n.message,mentions:n.mentions,replyTarget:n.replyTarget?{...n.replyTarget}:void 0,attachments:[...n.attachments]}},{sequence:r.sequence};if(!(r&&(r.storageFailed||a)))return wP(e,t,n)}function DP(e,t,n){let{fallback:r}=CP(e,t);return r&&TP(r,n)?{sequence:r.sequence}:void 0}function OP(e,t){return Object.values(e.chatComposerFallbackByScope).some(e=>e.sequence===t.sequence)}function kP(e,t){if(!t)return!1;let n=Object.entries(e.chatComposerFallbackByScope),r=n.filter(([,e])=>e.sequence!==t.sequence);return r.length!==n.length&&(e.chatComposerFallbackByScope=Object.fromEntries(r),!0)}var AP;function jP(){return(jP=e((()=>{Rs(),M(),Y(),Op(),sm(),AP=0})))()}function MP(e,t,n,r,i){return JSON.stringify([t,e.sessionKey,Ip(n.trim(),r,void 0,i)])}function NP(e,t,n,r,i,a=`none`){return Ip(e.chatMessage,e.chatAttachments,void 0,e.chatMentions,e.chatReplyTarget)===Ip(t,n,void 0,r,i)?(e.chatMessage=``,e.chatMentions=[],e.chatReplyTarget=null,a!==`all`&&(e.chatAttachments=a===`annotations`?e.chatAttachments.filter(e=>e.browserAnnotation||e.selectionAnnotation):[]),bk(e),{previousAttachments:n,previousDraft:t,previousMentions:r,previousReplyTarget:i}):{}}function PP(e){return e.map(e=>{let t=np(e);return{...e,...t?{dataUrl:t}:{}}})}function FP(e){return`chatComposerFallbackByScope`in e&&typeof e.chatComposerFallbackByScope==`object`&&e.chatComposerFallbackByScope!==null?e:void 0}function IP(e,t,n){let r=FP(e);return{client:e.client,clientGeneration:e.client?.connectionGeneration,owner:e.captureComposerRecoveryOwner?.(),...n?.previousDraft===void 0?{}:{composer:{...n,previousDraft:n.previousDraft,previousAttachments:n.previousAttachments??[],previousGoalDraftMode:e.chatGoalDraftMode,...r?{fallbackOwnership:DP(r,t,{message:n.previousDraft,mentions:n.previousMentions,replyTarget:n.previousReplyTarget,attachments:n.previousAttachments??[]})}:{}}},connectionEpoch:e.connectionEpoch,scope:t}}function LP(e,t){return e.client===t.client&&e.connectionEpoch===t.connectionEpoch&&e.client?.connectionGeneration===t.clientGeneration}function RP(e,t){return LP(e,t)&&j(e,t.scope.sessionKey,t.scope.agentId)}function zP(e,t){let n=t.composer?.fallbackOwnership,r=t.owner?t.owner.resolveOwner():e;if(!r||!LP(e,t)||r.client!==t.client)return!1;let i=FP(r);return i?kP(i,n):!1}function BP(e,t){let n=t.composer?.fallbackOwnership,r=t.owner?t.owner.resolveOwner():e,i=r&&FP(r);return!!(n&&i&&OP(i,n))}function VP(e,t,n){let r=t.owner?.resolveOwner(),i=[];for(let t of r&&r!==e?[e,r]:[e]){i.push(t.chatAttachments);for(let e of Object.values(FP(t)?.chatComposerFallbackByScope??{}))i.push(e.attachments)}let a=t.owner?.retainedAttachmentIds(n??[]);cp(n?.filter(e=>!a?.has(e.id))??[],i)}function HP(e,t){let n=t?.filter(e=>e.browserAnnotation||e.selectionAnnotation);return!!(n?.length&&n.length===e.chatAttachments.length&&n.every((t,n)=>t.id===e.chatAttachments[n]?.id&&t.browserAnnotation===e.chatAttachments[n]?.browserAnnotation&&t.selectionAnnotation===e.chatAttachments[n]?.selectionAnnotation))}function UP(e,t){let n=t.composer;if(!n)return!0;if(!LP(e,t))return n.previousAttachments.length===0||BP(e,t);let r=t.owner?t.owner.resolveOwner():e;if(!r)return!1;if(r.client!==t.client)return n.previousAttachments.length===0||BP(e,t);let i=FP(r);if(r.canRestoreComposer?.()===!1||!j(r,t.scope.sessionKey,t.scope.agentId)){if(!i)return n.previousAttachments.length===0;let e=EP(i,t.scope,{message:n.previousDraft,mentions:n.previousMentions,replyTarget:n.previousReplyTarget,attachments:n.previousAttachments});return n.fallbackOwnership=e,n.previousAttachments.length===0||e!==void 0}if(r.chatAttachments.length>0&&!HP(r,n.previousAttachments))return zP(e,t),n.previousAttachments.length===0;let a=GP(r,n);a.apply();let o=n.previousAttachments.length===0||a.attachments;return a.complete||zP(e,t),r!==e&&r.requestUpdate?.(),o}function WP(e,t,n,r){n&&LP(e,t)&&zP(e,t),(n?BP(e,t):UP(e,t))||VP(e,t,r)}function GP(e,t){let n=!e.chatMessage.trim()&&!e.chatReplyTarget&&(!e.chatGoalDraftMode||e.chatGoalDraftMode===t.previousGoalDraftMode)&&(e.chatAttachments.length===0||HP(e,t.previousAttachments)),r=!!(t.previousAttachments?.length&&n),i=t.previousDraft!=null&&n;return{attachments:r,complete:(!t.previousDraft?.trim()||i)&&(!t.previousAttachments?.length||r),apply(){i&&(e.chatMessage=t.previousDraft??``,e.chatMentions=t.previousMentions??[],e.chatReplyTarget=t.previousReplyTarget??null),r&&(e.chatAttachments=t.previousAttachments??[])}}}function KP(e,t,n){let r=GP(e,n),i=X(e).remove(e,t.id);return i?(r.apply(),r.attachments||un(Nm(e,i.attachments)),!0):!1}function qP(e,t,n={}){let r=GP(e,n);return e.canRestoreComposer?.()===!0&&j(e,t.sessionKey??e.sessionKey,t.agentId)&&(n.previousDraft!==void 0||n.previousAttachments!==void 0)&&r.complete&&KP(e,t,n)}function JP(){return(JP=e((()=>{dt(),Y(),jP(),wm(),Rm(),Up(),Ek()})))()}async function YP(e,t){t.attachments?.length&&Qt(e.uploadConfig);let n=t.sessionKey??e.sessionKey,r=t.agentId?ru(t.agentId):A(e),i=e.currentSessionId,a=n===e.sessionKey&&(!b(n)||r!==void 0&&r===A(e))&&typeof i==`string`&&i.trim()?i.trim():void 0;if(iv(e,n,r)?.providerReview)throw Error(I(`chat.providerReview.pausedBody`));let o=t.sessionId??(t.intent?void 0:a),s=!(t.intent||!o||e.reconnectResumeSessionId!==o),c=await e.client.request(`chat.send`,{sessionKey:n,...b(n)&&r?{agentId:r}:{},...o?{sessionId:o}:{},...s?{__controlUiReconnectResume:!0}:{},message:t.message,...t.workContext?{workContext:t.workContext}:{},...t.mentions?.length?{mentions:t.mentions}:{},...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:fP(t.attachments)},{timeoutMs:jl});return s&&(e.reconnectResumeSessionId=null),Ff(c,t.runId)}function XP(e){if(!(e.chatLoading||Z_(e)))return e.chatDisplayedLeafEntryId===null?null:e.chatDisplayedLeafEntryId?.trim()||void 0}function ZP(e){return e instanceof vr&&cu(e.details)?.reason===QP}var QP;function $P(){return($P=e((()=>{dl(),Un(),O(),M(),Gt(),pP(),rv(),ov(),Lf(),QP=`active-leaf-changed`})))()}function eF(e,t,n,r=t.sendSubmittedAtMs,i={}){r!=null&&TM(e,`control-ui.chat.send`,{phase:n,durationMs:CM(SM()-r),runId:t.sendRunId,sessionKey:t.sessionKey,agentId:t.agentId,sendAttempts:t.sendAttempts??0,sendState:t.sendState,...i},{maxBufferedEventsForType:40})}function tF(e,t){if(!t||typeof t!=`object`)return;let n=t,r=sF.find(e=>e===n.phase),i=K(n.runId);if(!r||!i)return;let a=e.chatSendTimingsByRun?.get(i),o=SM(),s=Wl(n.ackToPhaseMs),c=Wl(n.receivedToPhaseMs),l=Wl(n.dispatchStartedToPhaseMs),u=Wl(n.postDispatchMs),d=a?.submittedAtMs===void 0?s:CM(o-a.submittedAtMs);if(d===void 0)return;let f=r===`first-assistant-event`&&d>=cF,p={};for(let e of[`provider`,`model`,`agentRunId`]){let t=K(n[e]);t&&(p[e]=t)}TM(e,`control-ui.chat.send`,{phase:`server-${r}`,durationMs:d,runId:i,sessionKey:a?.sessionKey??K(n.sessionKey),agentId:a?.agentId??K(n.agentId),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},...p,...f?{slow:!0}:{}},{warn:f,maxBufferedEventsForType:40})}function nF(e,t,n,r){(e.chatSendTimingsByRun??=new Map).set(n,{runId:n,sessionKey:t.sessionKey,agentId:t.agentId,sendAttempts:t.sendAttempts??0,sendState:t.sendState,submittedAtMs:t.sendSubmittedAtMs??r})}function rF(e,t,n,r,i){let a=e.chatSendTimingsByRun??=new Map,o=a.get(t),s=o?.submittedAtMs??r.sendSubmittedAtMs??i,c={...o??{sendAttempts:r.sendAttempts??0,sendState:r.sendState,submittedAtMs:s},runId:n.runId,sessionKey:o?.sessionKey??r.sessionKey,agentId:o?.agentId??r.agentId,ackStatus:n.status};n.runId!==t&&a.delete(t),a.set(n.runId,c)}function iF(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 aF(e){return typeof e.sendSubmittedAtMs==`number`&&(e.sendState===`waiting-model`||e.sendState===`waiting-idle`||e.sendState===`submitting`||e.sendState===`sending`||e.sendState===`waiting-reconnect`)}function oF(e,t,n=t.sendSubmittedAtMs){let r=t.sessionKey??e.sessionKey,i=t.sendRunId;i&&n!=null&&EM(e,()=>{if(!j(e,r,t.agentId))return;let a=Am(e,r,t.agentId).find(e=>e.id===t.id&&e.sendRunId===i);a&&aF(a)&&eF(e,a,`pending-painted`,n)})}var sF,cF;function lF(){return(lF=e((()=>{uu(),dt(),Rm(),OM(),sF=[`dispatch-started`,`model-selected`,`agent-run-started`,`first-assistant-event`,`dispatch-completed`,`post-dispatch-completed`],cF=1500})))()}function uF(e){return e.connected&&e.client&&!e.client.recoveryScopeReady?null:{...k(e,e.sessionKey),gatewayOwner:ms(e.settings?.gatewayUrl).gatewayOwner,recoveryScope:e.client?.recoveryScope?.trim()||void 0}}function dF(e){let t=e.chatQueuedEdit,n=uF(e);return!t||!n||t.gatewayOwner!==n.gatewayOwner||t.recoveryScope!==n.recoveryScope||N(t)!==N(n)?null:t}function fF(e,t){let n=ms(e.settings?.gatewayUrl).gatewayOwner;return Dm(e,e=>e.chatQueuedEdit?.id===t&&e.chatQueuedEdit.gatewayOwner===n&&N(e.chatQueuedEdit)===N(k(e,e.sessionKey)))}function pF(e,t){let n=uF(e),r=Z(e,t);return!n||!r||!mo(r)||r.attachmentStorageError||r.attachments?.some(e=>!np(e))||r.localCommandName||dF(e)||fF(e,t)?`unavailable`:(e.chatQueuedEdit={...n,attachments:r.attachments??[],draftText:r.text,mentions:r.mentions,id:t,orderKey:Ws(r),revision:0,...r.replyToId?{replyToId:r.replyToId}:{},source:{...r},sourceWasDurable:X(e).durable(e,t)!==void 0},`started`)}function mF(e,t,n){let r=dF(e);return r?(r.mentions=n??$s(r.draftText,t,r.mentions),r.draftText=t,r.revision+=1,!0):!1}function hF(e){return dF(e)?(e.chatQueuedEdit=null,!0):!1}function gF(e,t,n=[],r){let i=r??dF(e);if(!(!i||r&&e.chatQueuedEdit!==i)){if(!t){let t=Z(e,i.id);if(i.sourceWasDurable||X(e).durable(e,i.id)!==void 0||!t||!Va(t,i.source))return}e.chatQueuedEdit=null,X(e).remove(e,i.id),cp(i.attachments,[n])}}var _F,vF,yF,bF,xF;function SF(){return(SF=e((()=>{ps(),oo(),Rs(),M(),Y(),wm(),Rm(),sm(),_F=`A queued message is being edited in another pane. Finish or cancel that edit before editing it here.`,vF=`A queued message is being edited in another pane. Finish or cancel that edit before removing it.`,yF=`A queued message is being edited in another pane. Finish or cancel that edit before reordering it.`,bF=`A queued message is being edited in another pane. Finish or cancel that edit before retrying it.`,xF=`A queued message is being edited in another pane. Finish or cancel that edit before steering it.`})))()}function CF(e,t,n,r,i=SM(),a,o,s,c,l,u,d,f){let p=hc(t,d),m=!!(n&&n.length>0);if(!p.text&&!m)return null;let h=vs(e,e.sessionKey),g=bc(e.hello,e.client?.instanceId,e.selfUser);return{item:{storageScope:Vc(e),id:Jl(),text:l?t:p.text,...p.mentions?{mentions:p.mentions}:{},...f?{workContext:f}:{},createdAt:Date.now(),...s===void 0?{}:{orderKey:s},attachments:m?n:void 0,refreshSessions:r,sendAttempts:0,sendRunId:Jl(),sendState:a,...c?{queueMode:c}:{},...l?{intent:l,...e.currentSessionId?{sessionId:e.currentSessionId}:{}}:{},...l&&u!==void 0?{expectedLeafEntryId:u}:{},sendSubmittedAtMs:i,...h.scope,...g?{sender:g}:{},...o?{replyToId:o}:{}},admission:h}}function wF(e,t){let n=t.sendSubmittedAtMs??SM(),r=X(e).keep(e,{sessionKey:t.sessionKey,agentId:t.agentId},t);return eF(e,r,`pending-visible`,n),(r.sendState===`waiting-model`||r.sendState===`waiting-reconnect`)&&eF(e,r,r.sendState,n),oF(e,r,n),WD(e,!0,!0,{source:`manual`}),r}function TF(e){return e.connected&&e.client?`waiting-idle`:`waiting-reconnect`}function EF(e,t=!0){let n=e.client,r=e.connectionEpoch;return()=>(!t||e.connected)&&e.client===n&&e.connectionEpoch===r}function DF(e,t,n){return n?.expectedLeafEntryId===void 0?n?.routingSessionKey&&j(e,t.sessionKey??e.sessionKey,t.agentId)?XP(e):void 0:n.expectedLeafEntryId}function OF(e,t,n,r){let i=t.sessionKey??n;if(!e.connected||!e.client||!j(e,i,t.agentId)||!e.chatLoading&&!Z_(e))return;let a=EF(e),o=e.sessions,s=J_(e);return s.phase===`failed`?Promise.resolve(null):(s.phase===`in-flight`?s.promise:VM(e,{startup:Z_(e),deferBranches:!0})).then(n=>{let s=Z(e,t.id);return!n||!a()||e.sessions!==o||!j(e,i,t.agentId)||!s||!Va(s,t)||fF(e,t.id)?null:{item:s,expectedLeafEntryId:DF(e,s,r)}})}function kF(e,t,n,r){return t===`memory`?X(e).change(e,n,r,!0):jm(e,n,r)}function AF(e,t,n){return(r,i)=>kF(e,t,n,e=>e.sendState===`held`?e:{...e,sendError:i,sendState:r})}function jF(e,t,n,r,i){let a=i?.routingSessionKey??r,o=AF(e,n,t.id),s=(n=t.agentId)=>j(e,a,n),c=Z(e,t.id);if(!c)return`failed`;if(c.sendState===`held`||c.sendState===`unconfirmed`&&!c.sendRunId||X_(e,a))return`pending`;if(c.workContextUnavailable){let t=I(`chat.messages.attachedContext.restoreFailed`);return o(`failed`,t),Bv(e,a,c.agentId,t),`failed`}if(iv(e,a,c.agentId)?.providerReview)return av(e,a,c.agentId),`pending`;let l=!!(c.queueMode||i?.allowActiveRunSend);return Fv(e,a,!1,c.agentId)||i?.routingSessionKey&&!s(c.agentId)||!l&&s(c.agentId)&&(Pk(e)||Rk(e))?o(TF(e))?`pending`:(Q(e,$),`failed`):c}function MF(e,t,n=t.sessionKey??e.sessionKey){return e.connected&&!!e.client&&!e.chatLoading&&!Z_(e)&&!X_(e,n)&&!Pk(e)&&!zO(e,n,t.agentId)&&j(e,n,t.agentId)&&e.chatQueue[0]?.id===t.id}function NF(e,t){e.chatSendingScopeKey===N(t)&&(e.chatSendingScopeKey=null,e.chatSending=!1)}function PF(e,t,n,r,i){let a=AN(n,e.hello?.policy);if(a===void 0)return!1;let o=AF(e,i?.storageMode??`durable`,t.id);return qP(e,t,i)||o(`failed`,a),Bv(e,r,t.agentId,a),!0}function FF(e,t,n,r,i,a,o){let s=n.id,{sessionKey:c}=a,l=i?.storageMode??`durable`,u=AF(e,l,s),d=ZP(r),f=d?I(`chat.sendErrors.activeLeafChanged`):gk(r),p=(t=f,r)=>{Bv(e,c,n.agentId,t,r),eF(e,n,`failed`,n.sendSubmittedAtMs,{error:t})};if(Z(e,s)?.sendState===`held`)return eF(e,n,`failed`,n.sendSubmittedAtMs,{error:f}),`pending`;if(r instanceof Lr)return qP(e,n,i)||u(`failed`,f),p(),`failed`;if(r instanceof Nl&&r.requestSent){if(NF(e,a),!Z(e,s))return`pending`;let t=u(`unconfirmed`,Hv);return Bv(e,c,n.agentId,t?Hv:$,{inline:!(!t||n.localCommandName)}),t&&l===`durable`&&o(500),eF(e,n,`failed`,n.sendSubmittedAtMs,{error:f}),`pending`}if(!d&&(r instanceof vr?r.retryable:/gateway (?:not connected|closed)|websocket|disconnected/i.test(f))){let a=r instanceof Error&&!(r instanceof vr)&&r.message===`gateway not connected`,u=gP(r),d=a||u!==null,m=d?{sendAttempts:t.sendAttempts,sendRequestStartedAtMs:t.sendRequestStartedAtMs}:{};if(l===`memory`){let t=d&&qP(e,n,i);return t||kF(e,l,s,e=>({...e,...m,sendError:d?f:Hv,sendState:d?`failed`:`unconfirmed`})),p(t?f:$),t?`failed`:`pending`}if(!jm(e,s,e=>({...e,...m,sendError:f,sendState:`waiting-reconnect`}))){let t=a&&qP(e,n,i);return t||jm(e,s,e=>({...e,sendError:$,sendState:`failed`})),p($),t?`failed`:`pending`}return j(e,c,n.agentId)&&Q(e,u===null?`Message will send when the Gateway reconnects.`:`The Gateway asked us to retry this message shortly.`),u!==null&&o(u),eF(e,n,`waiting-reconnect`,n.sendSubmittedAtMs,{error:f}),`pending`}NF(e,a);let m=i?.restoreOnTerminalFailure===!0&&qP(e,n,i);return m||u(`failed`,f),j(e,c,n.agentId)&&d&&Promise.all([VM(e),SA(e)]),p(f,{inline:l===`durable`&&!m}),`failed`}async function IF(e,t,n,r,i,a){let o=i?.routingSessionKey??r,s=AF(e,n,t.id),c=(n=t.agentId)=>j(e,o,n),l=new Set,u=i?.pendingSettings??zO(e,o,t.agentId),d=u?Z(e,t.id):t;for(;u&&!l.has(u);){if(d?.sendState===`held`||d?.sendState===`unconfirmed`&&!d.sendRunId)return`pending`;d?.sendState!==`waiting-model`&&(d=s(`waiting-model`),d||Q(e,$)),e.requestUpdate?.();let n=await u;if(l.add(u),d=Z(e,t.id),!d)return`failed`;if(d.sendState===`held`||d.sendState===`unconfirmed`&&!d.sendRunId)return`pending`;if(!n)return!(c(d.agentId)&&qP(e,d,i))&&!s(`failed`,`Chat settings update was interrupted. Review and retry when ready.`)&&Q(e,$),e.requestUpdate?.(),`failed`;u=zO(e,o,d.agentId)}return l.size&&(d=s(TF(e))),d?(l.size&&e.requestUpdate?.(),a(d)):(Q(e,$),`failed`)}async function LF(e,t,n,r){let i=n;for(;await i;){let n=zO(e,t,r);if(!n||n===i)return!0;i=n}return!1}async function RF(e,t,n){let r=t.id,i=EF(e),a=t.sessionKey??n,o=dm(e,k(e,a,t.agentId)),s=await pm(e,{...t,sessionKey:a}),c=Z(e,r);if(!i()||!o()||!c||!Va(c,t)||fF(e,r))return s.status===`ready`&&!t.attachmentPayload&&mm(s.update),`pending`;if(s.status===`failed`){let n=lm(c,s.reason);return jm(e,r,()=>n),Bv(e,a,t.agentId,n.sendError),`failed`}let l={...t,...s.update};return l.attachmentPayload?.key!==t.attachmentPayload?.key&&l.sendState===`unconfirmed`?(jm(e,r,()=>l),`pending`):(!t.attachmentPayload||t.attachmentStorageError)&&!jm(e,r,()=>l)?(t.attachmentPayload||mm(s.update),`pending`):l}function zF(){return(zF=e((()=>{Ml(),Un(),O(),tl(),Ja(),ps(),ec(),oo(),Rs(),dt(),M(),fl(),wA(),rv(),WM(),wm(),SP(),ov(),Rm(),JP(),$P(),Uv(),lF(),WO(),MN(),_k(),gm(),OM(),SF(),oA(),eO(),_a()})))()}function BF(e){return Vl(KF,e)}function VF(e){GF&&=(globalThis.clearTimeout(GF.timer),e&&un(GF.item.attachments??[]),null)}function HF(e,t,n){VF(!0),GF={item:t,sessionKey:e,timer:globalThis.setTimeout(()=>VF(!0),WF),retryAfter:n};for(let e of KF)e()}function UF(e,t){if(!GF||!xn(GF.sessionKey,t)||!ks(e,GF.item))return!1;let n=GF;VF(!1);let{item:r,retryAfter:i}=n,a=Am(e,t,r.agentId).some(e=>e.id===r.id);if(a||Om(e,t,r,r.agentId,{retryable:!0}),i){let n=Z(e,r.id),a=e.client,o=()=>e.connected&&e.client===a&&j(e,t,r.agentId);i.then(async i=>{if(!i||!o())return;let a=EF(e),s=e.captureComposerRecoveryOwner?.(),c=()=>o()&&a()&&s?.resolveOwner()===e,{retryQueuedChatMessage:l}=await $l(async()=>{let{retryQueuedChatMessage:e}=await Promise.resolve().then(()=>(vR(),uR));return{retryQueuedChatMessage:e}},void 0,import.meta.url),u=Z(e,r.id);if(!n||!u||!Va(n,u)||!c())return;let d=OF(e,u,t);if(d&&!await d)return;let f=Z(e,r.id);f&&Va(n,f)&&c()&&await l(e,r.id,c)}).catch(t=>{o()&&Q(e,F(t))})}return!a}var WF,GF,KF;function qF(){return(qF=e((()=>{ec(),oo(),P(),dt(),M(),Y(),rv(),Rm(),zF(),Yl(),WF=6e4,GF=null,KF=new Set})))()}function JF(e){let t=e.context.gateway.snapshot,n={id:Jl(),text:e.message,...e.mentions?.length?{mentions:e.mentions}:{},attachments:e.attachments,createdAt:Date.now(),kind:`queued`,refreshSessions:!0,sendAttempts:1,sendError:e.error,sendState:`failed`,sessionKey:e.sessionKey,sessionId:e.sessionId,agentId:ru(e.agentId)},r={settings:e.context.gateway.connection,client:t.client,connected:t.phase===`connected`,assistantAgentId:t.assistantAgentId,agentsList:e.context.agents.state.agentsList,hello:t.hello},i={...n,storageScope:Vc(r)},a=$p(r,{...vs(r,n.sessionKey,n.agentId),scope:{sessionKey:n.sessionKey,agentId:n.agentId},awaitingDefaults:!1},i);return(!a||e.retryAfter)&&HF(e.sessionKey,{...i,sendRunId:Jl()},e.retryAfter),!a}function YF(){return(YF=e((()=>{ec(),Rs(),M(),fl(),sm(),qF()})))()}function XF(e,t){let{context:n,client:r,result:i,turn:a}=e,{text:o,attachments:s}=a,c=i.initialRun.status===`rejected`&&JF({agentId:e.agentId,attachments:s,context:n,error:i.initialRun.error,message:o,mentions:a.mentions,sessionKey:i.key,sessionId:typeof i.entry?.sessionId==`string`?i.entry.sessionId:void 0,retryAfter:t});return i.initialRun.status===`started`&&n.chatSubmissions.retain(eh(i.key,a,r,i.initialRun.runId)),c}async function ZF(e){let{context:t,client:n,agentId:r,result:i,instant:a}=e,{key:o,initialRun:s}=i;if(a&&await a.waitForReady(),!e.isCurrent()||a&&!a.isCurrent()){s.status!==`rejected`&&await e.clearDraft(!0,!1);return}let c=s.status===`rejected`?aa(s.errorDetails):void 0,l=c?lu():void 0;try{if(s.status===`rejected`&&e.onRejectedPrompt){let t=sp(e.turn.attachments);XF({...e,turn:{...e.turn,attachments:t}},l?.promise)||un(t),e.onRejectedPrompt(s.error)}else{let t=XF(e,l?.promise);await e.clearDraft(!t)}if(!e.isCurrent()||a&&!a.isCurrent())return;if(e.completeInBackground(o,s.status===`started`?s.runId:void 0)){e.onAccepted?.();return}if(a?.admitted(o,r),await e.navigation.navigate(t,{client:n,key:o,agentId:r},a?.commit.bind(a)),e.finishNavigation(),c){let e=t.gateway.snapshot,a=()=>t.gateway.snapshot.phase===`connected`&&t.gateway.snapshot.client===n&&t.gateway.snapshot.hello===e.hello&&xn(t.gateway.snapshot.sessionKey,o);try{let{confirmNativeRuntimePermissionRecovery:n}=await $l(async()=>{let{confirmNativeRuntimePermissionRecovery:e}=await import(`./chat-native-runtime-recovery-StS6X2w9.js`);return{confirmNativeRuntimePermissionRecovery:e}},__vite__mapDeps([12,0,1,2,3,4,5,6,7]),import.meta.url),s=await n({sessions:t.sessions,hello:e.hello},o,c,{agentId:r,expectedSessionId:typeof i.entry?.sessionId==`string`?i.entry.sessionId:void 0,signal:t.lifecycleAbortSignal,retriesMessage:!0,canDispatch:a});l?.resolve(!!(s&&a()))}catch(e){a()&&yn({message:I(`chat.nativeRuntimeRecovery.failed`,{error:F(e)})})}}}finally{l?.resolve(!1)}}function QF(){return(QF=e((()=>{ki(),bl(),O(),Ac(),P(),M(),ot(),Y(),nh(),YF(),Yl(),ds()})))()}var $F;function eI(){return(eI=e((()=>{or(),_r(),vd(),Xb(),Ye(),M(),nh(),$F=class{constructor(){this.current=null,this.submitted=null}captureSubmission(e,t,n,r=()=>!0){let i=e.gateway,a=Hr(i),o=i.connection.gatewayUrl,s=i.snapshot.hello?.auth?.recoveryScope??(i.snapshot.client?.recoveryScopeReady?i.snapshot.client.recoveryScope:void 0),c=()=>{let e=i.snapshot,t=e.hello?.auth?.recoveryScope??(e.client?.recoveryScopeReady?e.client.recoveryScope:void 0);return s??=t,Hr(i)===a&&i.connection.gatewayUrl===o&&(!t||t===s)};return(i,a)=>{n&&r()&&c()&&(this.submitted={context:e,message:n,key:i,agentId:t,error:a,canDisplay:c})}}submission(e){let t=this.submitted;return t&&t.context===e&&t.canDisplay()?t:null}messageForTurn(e,t,n){return th(n,`available`)??(this.isCurrent(e,t)?this.submission(e)?.message??null:null)}async openSubmission(e,t,n){let r=e?.gateway.snapshot.client;if(!t||!e||!r||e.gateway.snapshot.phase!==`connected`||this.submission(e)!==t)return;let i=n.capture();n.publish(t.message,null);let a;try{await this.navigate(e,{client:r,key:t.key,agentId:t.agentId})}catch(e){i()&&t.canDisplay()&&(a=e instanceof Error?e.message:String(e))}finally{i()&&n.publish(null,a)}}clearSubmission(){this.submitted=null}isCurrent(e,t){let n=this.current,r=e?.gateway.snapshot;return!!(n&&r?.phase===`connected`&&r.client===n.client&&r.hello===n.hello&&r.sessionKey===n.key&&ru(t)===n.agentId)}async navigate(e,t,n){let r={...t,hello:e.gateway.snapshot.hello};this.current=r,Xn({selection:e.agentSelection,gateway:e.gateway,sessionKey:t.key,agentId:t.agentId});let i=Xe({context:e,face:`chat`,sessionKey:t.key,agentId:t.agentId,focusComposer:!0,navigationKey:t.key}).options;await Ed({document,from:`new-session`,to:`chat`,router:e.router,signal:e.lifecycleAbortSignal,prefersReducedMotion:globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches??!1,navigate:()=>{if(this.current!==r||!this.isCurrent(e,t.agentId))throw new DOMException(`Session navigation interrupted`,`AbortError`);if(n&&!n())throw new DOMException(`Session navigation superseded`,`AbortError`);return Wb(e.gateway,i.pathname,t.key),e.navigateAndWait(`chat`,i)}}),this.current===r&&(this.current=null)}}})))()}function tI(e){return e.chatRunId?!0:!!e.sessionsResult?.sessions.some(t=>t.key===e.sessionKey&&Zl(t))}function nI(e,t,n,r){e.chatMessagesBySession&&vv(e.chatMessagesBySession,e,{sessionKey:t,agentId:n},r)}function rI(e,t){return e.client===t.client&&e.connectionEpoch===t.connectionEpoch&&j(e,t.sessionKey,t.agentId)}function iI(e,t,n){n&&Object.hasOwn(n.sessionInfo??{},`activeLeafEntryId`)&&n.sessionInfo?.activeLeafEntryId===null&&e.connected&&rI(e,t)&&delete e.chatDisplayedLeafEntryId}async function aI(e){if(!e.client||!e.connected)return`failed`;let t=e.client,n=e.connectionEpoch,r=e.sessionKey,i=ce(e,r),a={client:t,connectionEpoch:n,sessionKey:r,agentId:i.agentId},o=e.chatRunId,s=e.chatSubmissions?.readInitial(r,t),c=tI(e);try{let o=await e.sessions.reset(r,i);if(o===`not-started`)return Q(e,`Gateway was unavailable before chat history could be cleared.`),WD(e),`failed`;if(s&&$n(s),nI(e,r,i.agentId),o===`uncertain`||e.client!==t||e.connectionEpoch!==n||!e.connected){let t={client:e.client,connectionEpoch:e.connectionEpoch,sessionKey:r,agentId:i.agentId},n=!1;if(e.client&&e.connected&&j(e,r,i.agentId)){tv(e,i.agentId);let t=await VM(e);n=!!t,iI(e,a,t)}return rI(e,t)&&(Q(e,n?`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.`),WD(e)),`uncertain`}}catch(t){return rI(e,a)&&(Q(e,F(t)),WD(e)),`failed`}return j(e,r,i.agentId)?(tv(e,i.agentId),e.chatRunError=null,e.chatReplyTarget=null,Qk(e,{outcome:c?`interrupted`:void 0,sessionStatus:`killed`,runId:o,sessionKey:r,clearLocalRun:!0,clearChatStream:!0,clearToolStream:!0,clearRunStatus:!c}),iI(e,a,await VM(e)),rI(e,a)&&WD(e),`completed`):`completed`}function oI(e){let t=e.sessionKey,n=ce(e,t),r=e.client,i=e.connectionEpoch,a=()=>e.connected&&e.client===r&&e.connectionEpoch===i,o=()=>j(e,t,n.agentId);return{sessionKey:t,agentParams:n,connectionIsCurrent:a,viewMatches:o,viewIsCurrent:()=>a()&&o()}}async function sI(e,t,n){if(!e.client||!e.connected)return null;let{sessionKey:r,agentParams:i,connectionIsCurrent:a,viewMatches:o,viewIsCurrent:s}=oI(e),c=()=>Ip(e.chatMessage,e.chatAttachments,e.chatGoalDraftMode,e.chatMentions,e.chatReplyTarget),l=c(),u=n.readSignal,d=Jp(e,r,i.agentId);try{let s=await e.sessions.rewind(r,t,i),f=s.editorText??``;return nI(e,r,i.agentId,`cache-eviction`),o()&&(tv(e,i.agentId),await Promise.all([VM(e),SA(e)])),!a()||!d()||c()!==l||(Qp(e,r,{agentId:i.agentId,draft:f,mentions:[],goalMode:null,replyTarget:null,expectedDraftRevision:Yp(e,r,i.agentId).revisions.committed}),!o())?null:(e.chatGoalDraftMode=null,e.chatReplyTarget=null,e.chatAttachments=up(e.chatAttachments,s.editorAttachments),e.handleChatDraftChange(f,[]),n.readSignal===u&&n.abortReads(),s)}catch(t){return s()&&(Q(e,F(t)),WD(e)),null}}async function cI(e,t){if(!e.client||!e.connected)return!1;let{sessionKey:n,agentParams:r,viewMatches:i,viewIsCurrent:a}=oI(e);try{return await e.sessions.switchBranch(n,t,r),nI(e,n,r.agentId,`cache-eviction`),i()?(tv(e,r.agentId),await Promise.all([VM(e),SA(e)]),a()):!1}catch(t){return a()&&(Q(e,F(t)),WD(e)),!1}}function lI(){return(lI=e((()=>{ur(),P(),dt(),Y(),wA(),rv(),WM(),sm(),Up(),oA(),eO(),jv()})))()}function uI(e,t){return e!=null&&Object.hasOwn(e,t)?e[t]:void 0}function dI(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function fI(e){return{...e?.mcpServers?{mcpServers:{...e.mcpServers}}:{},...e?.mcpToolsDeny?{mcpToolsDeny:Object.fromEntries(Object.entries(e.mcpToolsDeny).map(([e,t])=>[e,[...t]]))}:{},...e?.skills?{skills:{...e.skills}}:{},...e?.webSearch===void 0?{}:{webSearch:e.webSearch}}}function pI(e,t){return t??e}function mI(e,t){return e&&(t??e)}function hI(e,t,n,r,i){let a=fI(e),o=(Object.hasOwn(a,t)?a[t]:void 0)??{};return r===i?delete o[n]:dI(o,n,r),Object.keys(o).length===0?delete a[t]:a[t]=o,a}function gI(e,t,n=!0){let r=fI(e);return n?(t===n?delete r.webSearch:r.webSearch=t,r):(r.webSearch===!0&&delete r.webSearch,r)}function _I(e,t,n,r){let i=fI(e),a=Object.hasOwn(i,`mcpToolsDeny`)?i.mcpToolsDeny:void 0,o=new Set(uI(a,t)??[]);r?o.add(n):o.delete(n);let s=a??{};return o.size>0?dI(s,t,[...o].toSorted()):delete s[t],Object.keys(s).length===0?delete i.mcpToolsDeny:i.mcpToolsDeny=s,i}function vI(e){return Object.keys(e?.mcpServers??{}).length+Object.keys(e?.skills??{}).length+Object.keys(e?.mcpToolsDeny??{}).length+(e?.webSearch===void 0?0:1)}function yI(){return(yI=e((()=>{})))()}function bI(e){return J(J(J(e?.tools)?.web)?.search)?.enabled!==!1}function xI(e){let t=Object.values(e.missing).some(e=>e.length>0),n=e.blockedByAllowlist||e.blockedByAgentFilter,r=!e.disabled;return{key:e.skillKey,name:e.name,enabled:r&&!t&&!n,baseEnabled:r,...t?{missingDeps:!0}:{},...n?{blocked:!0}:{}}}var SI;function CI(){return(CI=e((()=>{SI=class{constructor(e){this.notify=e,this.skills=new Map,this.loading=new Set,this.loadErrors=new Set,this.client=null}synchronize(e,t){(this.client!==e||this.connectionEpoch!==t)&&(this.client=e,this.connectionEpoch=t,this.skills.clear(),this.loading.clear(),this.loadErrors.clear())}load(e,t,n,r){if(this.synchronize(e,t),!e||!r()||this.skills.has(n)||this.loading.has(n))return;let i=()=>this.client===e&&this.connectionEpoch===t&&r();this.loadErrors.delete(n),this.loading.add(n),this.notify(),lt(e,n).then(e=>{e&&i()&&this.skills.set(n,e.skills.map(xI).toSorted((e,t)=>e.name.localeCompare(t.name)))}).catch(()=>{i()&&this.loadErrors.add(n)}).finally(()=>{i()&&(this.loading.delete(n),this.notify())})}rows(e,t){return this.skills.get(e)?.map(e=>Object.assign({},e,{enabled:e.missingDeps||e.blocked?!1:uI(t?.skills,e.key)??e.baseEnabled}))??null}isLoading(e){return this.loading.has(e)}hasError(e){return this.loadErrors.has(e)}}})))()}function wI(e,t){let n=e&&t?kI(e,t,{allowStale:!0}):void 0;return{...n,models:n?.models??[],hasSnapshot:n!==void 0,retired:e&&t?v(e,t):!1}}function TI(e,t){return wI(e,t?{agentId:t}:null)}function EI(e,t){let n=s.get(e)??new Set;return s.set(e,n),n.add(t),()=>{n.delete(t)&&n.size===0&&s.delete(e)}}function DI(e,{connected:t=!0,loading:n=!1,error:r=null,retired:i=!1,initialized:a=!0}={}){return{hasSnapshot:a&&!i&&(e.models.length>0||!n&&!r),initialized:a,retired:i,modelSelectionPolicy:e.modelSelectionPolicy,refreshFailed:e.refreshFailed,pendingProviders:e.pendingProviders,status:t?r?`error`:n?`loading`:a?`ready`:`idle`:`offline`}}function OI(e,t){return e.refreshFailed?t??I(e.models.length?`chat.modelControls.modelsRefreshFailed`:`chat.modelControls.modelsUnavailable`):null}function kI(e,t,{allowStale:n=!1}={}){let r=g.get(e)?.entries,i=zt(Ft(t)),a=r?.get(i);if(a?.expiresAt!==void 0&&a.expiresAt<=Date.now()&&ze(e,a),!a?.invalidated||n)return r&&a?.result&&(r.delete(i),r.set(i,a)),a?.result}function AI(e,t){let n=zt(Ft(t)),r=Array.from(g.get(e)?.requests.get(n)?.values()??[]).flatMap(({active:e})=>e?[e.transportSettled]:[]);return r.length?Promise.allSettled(r).then(()=>{}):void 0}function jI(e){let{client:t,cache:n,lane:r,timeoutMs:i}=e,a=new AbortController,o=lu(),s=lu(),c=typeof i==`number`&&Number.isFinite(i)?tu(i,{minMs:0}):void 0,l=c===void 0?void 0:Date.now()+c,u,d=!1,f=!1,p=e=>v.reject(new Nl({method:`models.list`,timeoutMs:e,requestSent:f})),m=()=>!v.settled&&!a.signal.aborted&&v.subscribers.size>0&&g.get(t)===n&&n.reads.has(v.read)&&r.active===v&&!r.queued,h=t=>{v.settled||(clearTimeout(u),n.reads.delete(v.read),v.settled=!0,r.queued===v&&(r.queued=void 0,e.releaseLane()),t())},_=()=>{if(s.resolve(),r.active!==v)return;r.active=void 0;let i=r.queued;i&&g.get(t)===n&&(r.queued=void 0,r.active=i,i.start()),e.releaseLane()},v={refresh:e.scope.refresh===!0,controller:a,read:Dn(t,e.scope,a.signal),preparing:!0,settled:!1,subscribers:new Set,promise:o.promise,transportSettled:s.promise,resolve:e=>h(()=>o.resolve(e)),reject:e=>h(()=>o.reject(e)),start:()=>{if(d)return;if(d=!0,v.settled){_();return}let n=l===void 0?void 0:l-Date.now();if(e.queued&&c!==void 0&&n!==void 0&&n<=0){p(c),_();return}let r=v.read,a={...e.scope,...v.refresh?{refresh:!0}:{}};(async()=>{let e=!1,n=0,s=!1;for(;;){s&&c!==void 0&&(l=Date.now()+c,u=setTimeout(()=>p(c),c)),s=!1;try{let e=await(i===void 0?t.request(`models.list`,a):t.request(`models.list`,a,{timeoutMs:c===void 0?i:null,...c===void 0?{}:{onSent:()=>{f=!0}}}));xe(r,a,e),v.resolve(e);return}catch(r){let i=me(r);if(e&&!i||!Pl(r)||r.gatewayCode!==`UNAVAILABLE`||!r.retryable||!m()){v.reject(r);return}i?(clearTimeout(u),l=void 0,s=!0):e=!0;let a=lu(),d=setTimeout(a.resolve,i?nt(r,n++):tu(r.retryAfterMs??0,{minMs:0})),f=EI(t,()=>{m()||a.resolve()});o.promise.then(()=>a.resolve(),()=>a.resolve());try{await a.promise}finally{clearTimeout(d),f()}if(l!==void 0&&c!==void 0&&l<=Date.now()){p(c);return}if(!m()){v.reject(r);return}}}})().catch(v.reject).finally(_)}};return a.signal.addEventListener(`abort`,()=>v.reject(a.signal.reason),{once:!0}),c!==void 0&&(u=setTimeout(()=>p(c),c)),v}async function MI(e,t){let{signal:n,timeoutMs:r,...i}=t;n?.throwIfAborted();let a=Ft(i);if(!a.refresh){let t=kI(e,a);if(t)return t}let o=Tn(e),s=zt(a),c=o.requests.get(s)??new Map;o.requests.set(s,c);let l=c.get(r)??{};c.set(r,l);let u=()=>{!l.active&&!l.queued&&(c.delete(r),c.size===0&&o.requests.delete(s))},d=l.queued??l.active;if(d&&!d.settled&&!d.controller.signal.aborted&&(d.preparing||!a.refresh&&o.reads.has(d.read)))return await cb(d,{},n);let f=l.queued!==void 0,p=l.queued??jI({client:e,scope:a,timeoutMs:r,cache:o,lane:l,queued:l.active!==void 0,releaseLane:u});l.active?l.queued=p:l.active=p,p.preparing=!0,p.refresh||=a.refresh===!0;let m=cb(p,{},n);return a.refresh&&Sn(e),g.get(e)===o?(f||a.refresh)&&(o.reads.delete(p.read),p.read=Dn(e,{...a,...p.refresh?{refresh:!0}:{}},p.controller.signal)):p.reject(new DOMException(`Model catalog connection retired`,`AbortError`)),p.preparing=!1,l.active===p&&p.start(),await m}function NI(e,t,n){return e.subscribeEvents(e=>{let r=Ae(e);if(r)t(r);else if(e.event===`models.snapshot`&&n){let r=e.payload;zt(Ft(n))===zt(Ft(r.scope))&&t(`refresh`)}})}function PI(){return(PI=e((()=>{Ml(),dl(),bl(),O(),Ac(),C(),p(),ds()})))()}function FI(e,t,n,r){let i=n.trim();if(!i)return;let a=i.toLowerCase();t.has(a)||(t.add(a),e.push({value:i,label:r(i)}))}function II(){return(II=e((()=>{})))()}function LI(e,t){let n=e?.agentRuntime?.id?.trim(),r=t?.agentRuntime?.id?.trim();return(!e?.modelProvider||e.modelProvider===t?.modelProvider)&&(!e?.model||e.model===t?.model)&&(!n||!r||n===r)}function RI(){return(RI=e((()=>{})))()}function zI(e,t){let n=e?.contextBudgetStatus?.promptBudgetBeforeReserve;return typeof n==`number`&&Number.isFinite(n)&&n>0?{tokens:n,fromLastPrompt:!0}:{tokens:e?.contextTokens??t??0,fromLastPrompt:!1}}function BI(){return(BI=e((()=>{})))()}function VI(e,t){return{content:I(e,{error:F(t)}),failed:!0}}function HI(e){if(e.isCurrent?.()===!1)throw Error(`The Gateway connection changed. Retry the command.`)}function UI(e,t){HI(e);let n=T(e.readSessionAccessSnapshot?.()??e.sessionAccessSnapshot,t);if(!n.allowed)throw Error(n.reason)}async function WI(e,t,n,r,i,a){try{return UI(e,{method:`sessions.patch`,params:{key:t,...VO(t,e),...n}}),await HO(e,t,n,a),{...r(),action:`refresh`}}catch(e){return VI(i,e)}}async function GI(e,t,n,r,i){switch(n){case`help`:return KI();case`compact`:return qI(t,i);case`model`:return JI(e,t,r,i);case`think`:return YI(e,t,r,i);case`fast`:return ZI(t,r,i);case`verbose`:return XI(t,r,i);case`usage`:return QI(t,i);case`agents`:return $I(e);case`steer`:case`redirect`:return iL(e,t,r,i,n);default:return{content:I(`chat.commandResults.unknownCommand`,{command:`/${n}`})}}}function KI(){let e=[`**${I(`chat.commandResults.help.availableCommands`)}**\n`],t=``;for(let n of jo){let r=n.category??`session`;r!==t&&(t=r,e.push(`**${Ro(r)}**`));let i=n.args?` ${n.args}`:``,a=n.executeLocal?``:` *(${I(`chat.commandResults.help.agentCommand`)})*`;e.push(`\`/${n.name}${i}\` — ${go(n)}${a}`)}return e.push(`\n${I(`chat.commandResults.help.openMenu`)}`),{content:e.join(`
`)}}async function qI(e,t){try{let n=VO(e,t);UI(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?I(`chat.commandResults.compaction.failedWithReason`,{reason:e}):I(`chat.commandResults.compaction.failed`),failed:!0}}return r?.compacted?{action:`refresh`}:typeof r?.reason==`string`&&r.reason.trim()?{content:I(`chat.commandResults.compaction.skippedWithReason`,{reason:ft(r.reason)}),action:`refresh`}:{content:I(`chat.commandResults.compaction.skipped`),action:`refresh`}}catch(e){return{content:I(`chat.commandResults.compaction.failedWithReason`,{reason:F(e)}),failed:!0}}}async function JI(e,t,n,r){if(!n)try{let{session:n,defaults:i,models:a}=await rL(e,r,t),o=n?.model||i?.model||`default`,s=a.filter(e=>e.available!==!1&&e.manualSelectionAllowed!==!1).map(e=>e.id),c=[I(`chat.commandResults.model.current`,{model:`\`${o}\``})];if(s.length>0){let e=s.length>10?I(`chat.commandResults.model.more`,{count:String(s.length-10)}):``;c.push(`${I(`chat.commandResults.model.available`,{models:s.slice(0,10).map(e=>`\`${e}\``).join(`, `)})}${e}`)}return{content:c.join(`
`)}}catch(e){return VI(`chat.commandResults.model.getFailed`,e)}let i=n.trim();return WI(r,t,{model:i},()=>({content:I(`chat.commandResults.model.set`,{model:`\`${i}\``}),modelChanged:!0}),`chat.commandResults.model.setFailed`,{ownsModelOverride:r.ownsModelOverride})}async function YI(e,t,n,r){let i=n.trim();if(!i)try{let{session:n,defaults:i,models:a}=await rL(e,r,t);return{content:tL(I(`chat.commandResults.thinking.current`,{level:Co(n,i,a)}),Ds(n,i,a))}}catch(e){return VI(`chat.commandResults.thinking.getFailed`,e)}if(qi(i))return WI(r,t,{thinkingLevel:null},()=>({content:I(`chat.commandResults.thinking.reset`)}),`chat.commandResults.thinking.resetFailed`);try{let{session:e,defaults:n}=await nL(r,t),a=r.chatModelCatalog??[],o=Hc(i,e,n,a);return!o||Zc(e,n,o,a)===!1?{content:I(`chat.commandResults.thinking.${o?`unsupported`:`unrecognized`}`,{level:i,options:Ds(e,n,a)})}:WI(r,t,{thinkingLevel:o},()=>({content:I(`chat.commandResults.thinking.set`,{level:`**${o}**`})}),`chat.commandResults.thinking.setFailed`)}catch(e){return VI(`chat.commandResults.thinking.setFailed`,e)}}async function XI(e,t,n){let r=t.trim();if(!r)try{let{session:t}=await nL(n,e);return{content:tL(I(`chat.commandResults.verbose.current`,{level:Gi(t?.verboseLevel)??`off`}),`on, full, off`)}}catch(e){return VI(`chat.commandResults.verbose.getFailed`,e)}let i=Gi(r);return i?WI(n,e,{verboseLevel:i},()=>({content:I(`chat.commandResults.verbose.set`,{level:`**${i}**`})}),`chat.commandResults.verbose.setFailed`):{content:I(`chat.commandResults.verbose.unrecognized`,{level:r})}}async function ZI(e,t,n){let r=ql(t);if(!r||r===`status`)try{let{session:t}=await nL(n,e);return{content:tL(Ec(t),I(`chat.commandResults.fast.options`,{seconds:String(t?.fastAutoOnSeconds??60)}))}}catch(e){return VI(`chat.commandResults.fast.getFailed`,e)}let i=qi(r)?null:Pc(r);return i===void 0?{content:I(`chat.commandResults.fast.unrecognized`,{mode:t.trim()})}:WI(n,e,{fastMode:i},()=>({content:I(i===null?`chat.commandResults.fast.reset`:i===`auto`?`chat.commandResults.fast.setAuto`:i?`chat.commandResults.fast.enabled`:`chat.commandResults.fast.disabled`)}),i===null?`chat.commandResults.fast.resetFailed`:`chat.commandResults.fast.setFailed`)}async function QI(e,t){try{let{session:n}=await nL(t,e);if(!n)return{content:I(`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=zI(n),d=u.tokens,f=c!==null&&l&&d>0?Math.round(c/d*100):null,p=s===null?I(`chat.commandResults.usage.notAvailable`):`${l?``:`~`}${jt(s)}`,m=[`**${I(`chat.commandResults.usage.title`)}**`,I(`chat.commandResults.usage.inputTokens`,{count:`**${jt(a)}**`}),I(`chat.commandResults.usage.outputTokens`,{count:`**${jt(o)}**`}),I(`chat.commandResults.usage.totalTokens`,{count:`**${p}**`})];return f!==null&&m.push(I(u.fromLastPrompt?`chat.commandResults.usage.promptBudget`:`chat.commandResults.usage.context`,{percent:`**${f}%**`,total:jt(d)})),n.model&&m.push(I(`chat.commandResults.usage.model`,{model:`\`${n.model}\``})),{content:m.join(`
`)}}catch(e){return VI(`chat.commandResults.usage.failed`,e)}}async function $I(e){try{let t=await e.request(`agents.list`,{}),n=t?.agents??[];if(n.length===0)return{content:I(`chat.commandResults.agents.none`)};let r=[I(`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?` *(${I(`chat.commandResults.agents.default`)})*`:``,o=e.agentRuntime?.id?I(`chat.commandResults.agents.runtime`,{runtime:`\`${e.agentRuntime.id}\``}):``;r.push(`- \`${e.id}\` — ${i}${a}${o}`)}return{content:r.join(`
`)}}catch(e){return VI(`chat.commandResults.agents.failed`,e)}}function eL(e,t){let n=hl(e);return kn(n??``)?.agentId??hl(t.agentId)??(n===`main`?hl(t.defaultAgentId)??`main`:void 0)}function tL(e,t){return`${e}\n${I(`chat.commandResults.options`,{options:t})}`}async function nL(e,t){let n=eL(t,e),{session:r}=await e.sessions.describe({key:t,agentId:n});HI(e);let i=hl(e.defaultAgentId)??`main`;if(r||n&&n!==i)return{session:r??void 0,defaults:void 0};let a=await e.sessions.list({agentId:n,limit:1});if(HI(e),!a)throw Error(I(`chat.commandResults.sessionUnavailable`));return{session:void 0,defaults:a.defaults}}async function rL(e,t,n){let r=t.chatModelCatalog,i=eL(n,t),[a,o]=await Promise.all([nL(t,n),r?Promise.resolve(r):MI(e,{agentId:i,sessionKey:n}).then(e=>e.models)]);return{...a,models:o}}async function iL(e,t,n,r,i){try{let a=n.trim();if(!a)return{content:I(`chat.commandResults.${i}.usage`)};HI(r);let o=await e.request(`chat.send`,{sessionKey:t,...VO(t,r),message:a,...i===`steer`?{deliver:!1,queueMode:`steer`}:{queueMode:`interrupt`},idempotencyKey:Jl()}),s=Pf(o?.status);if(s===`timeout`||s===`error`)return{content:I(`chat.commandResults.${i}.${s===`timeout`?`timeout`:`failed`}`),failed:!0};let c={content:I(`chat.commandResults.${i}.succeeded`)};return i===`steer`&&(s===`started`||s===`in_flight`)&&(c.pendingCurrentRun=!0),i===`redirect`&&(s===`started`||s===`in_flight`)&&(c.trackRunId=typeof o?.runId==`string`?o.runId:void 0),c}catch(e){return VI(`chat.commandResults.${i}.requestFailed`,e)}}function aL(){return(aL=e((()=>{Oi(),O(),la(),ca(),Bc(),P(),Je(),PI(),qe(),M(),fl(),Lf(),WO()})))()}function oL(e){return{client:e.client??null,hello:e.hello??null,phase:e.connected?`connected`:`offline`}}function sL(e,t){let n=dk(oL(e),!1,{session:e.sessionsResult?.sessions.find(t=>j(e,t.key,t.agentId??e.sessionsResultAgentId??void 0))})[t];return n.allowed?!0:(Q(e,n.reason),!1)}function cL(e){return!e.client||!e.connected?null:{client:e.client,connectionEpoch:e.connectionEpoch,sessionKey:e.sessionKey,agentId:S(e,e.sessionKey)}}function lL(e,t){return e.connected&&e.client===t.client&&e.connectionEpoch===t.connectionEpoch}function uL(e,t){return lL(e,t)&&j(e,t.sessionKey,t.agentId)}function dL(e,t){return lL(e,t)?!D(e,t.sessionKey)||se(e)===t.agentId:!1}function fL(e,t){if(!uL(e,t))return{allowed:!1,reason:`The Gateway connection changed. Retry the command.`};let n=T(oL(e),{method:`chat.send`,requiredScope:`operator.admin`});return n.allowed?{allowed:!0}:n}function pL(e,t){return JSON.stringify([e??null,t??null])}async function mL(e,t,n){try{let r=await e.request(`commands.list`,{...t?{agentId:t}:{},...n?{sessionKey:n}:{},includeArgs:!0,scope:`text`});return Array.isArray(r?.commands)?Oo(xc(r)):void 0}catch{return}}function hL(e,t,n){let r=pa(e,{agentId:t,sessionKey:n});if(Array.isArray(r?.commands))return Promise.resolve(Oo(xc(r)));let i=TL.get(e);i||(i=new Map,TL.set(e,i));let a=pL(t,n),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={commands:o?.commands,expiresAt:o?.expiresAt??0},l=mL(e,t,n).then(e=>(e&&i.get(a)===c&&(c.commands=e,c.expiresAt=Date.now()+wL),e??o?.commands??za())).finally(()=>{i.get(a)===c&&delete c.inFlight});return c.inFlight=l,i.set(a,c),l}function gL(e,t){CL+=1,TL.get(e)?.delete(pL(t.agentId,t.sessionKey))}function _L(e){if(!Array.isArray(e?.commands))return!1;let t=Oo(xc(e));return CL+=1,wc(t),!0}async function vL(e){let t=++CL,n=e.agentId?.trim(),r=e.client?await hL(e.client,n,e.sessionKey):void 0;t===CL&&e.shouldApply?.()!==!1&&wc(r??za())}function yL(e){return![`stop`,`export-session`,`steer`,`redirect`,`new`].includes(e)}async function bL(e,t){let n=t?.sessionKey??e.sessionKey,r=t?()=>j(e,t.sessionKey,t.agentId):()=>e.sessionKey===n||xn(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 xL(e,t,n){switch(t){case`stop`:return sL(e,`abort`)?(await Gk(e,{scope:`session`}),`completed`):`failed`;case`new`:return e.createChatSession?await e.createChatSession()?`completed`:`cancelled`:(Q(e,`New Chat is unavailable.`),`failed`);case`clear`:{if(!sL(e,`reset`))return`failed`;let t=cL(e);if(!t)return`failed`;let n=await bL(e);return n===`confirmed`?uL(e,t)?sL(e,`reset`)?aI(e):`failed`:(Q(e,`The Gateway connection changed. Retry the command.`),`failed`):n}case`compact`:if(!sL(e,`compact`))return`failed`;break;case`export-session`:return n.trim()?(Q(e,I(`chat.commandResults.exportPathUnsupported`)),`failed`):(Q(e,null),await e.exportCurrentChat?.()===`empty`&&(SL(e,I(`chat.commandResults.emptyExport`)),WD(e,!1,!1,{contentChanged:!0})),`completed`)}if(!e.client||!e.connected)return Q(e,`Gateway not connected`),SL(e,`Cannot run \`/${t}\`: Control UI is not connected to the Gateway.`),WD(e,!1,!1,{contentChanged:!0}),`failed`;let r=cL(e);if(!r)return`failed`;let i=()=>uL(e,r),a;try{a=await GI(r.client,r.sessionKey,t,n,{sessions:e.sessions,sessionAccessSnapshot:oL(e),readSessionAccessSnapshot:()=>oL(e),isCurrent:i,chatModelCatalog:e.chatModelCatalog,defaultAgentId:x(e),agentId:r.agentId,ownsModelOverride:()=>dL(e,r)})}catch(n){return i()&&(Q(e,F(n)),SL(e,`Command \`/${t}\` failed unexpectedly.`),WD(e,!1,!1,{contentChanged:!0})),`failed`}return a.content&&i()&&SL(e,a.content),a.failed?(i()&&(Q(e,a.content||`Command /${t} failed.`),WD(e,!1,!1,{contentChanged:!!a.content})),`failed`):(a.trackRunId&&i()&&(e.chatRunId=a.trackRunId,e.chatStream=``,e.chatSending=!1),a.action===`refresh`&&i()&&await e.refreshCurrentChat?.(),i()&&WD(e,!1,!1,{contentChanged:!!a.content}),`completed`)}function SL(e,t){n_(e,[...e.chatMessages,{role:`system`,content:t,timestamp:Date.now()}])}var CL,wL,TL;function EL(){return(EL=e((()=>{O(),wa(),la(),P(),qe(),dt(),M(),aL(),lI(),rv(),fk(),p_(),oA(),eO(),CL=0,wL=6e4,TL=new WeakMap})))()}function DL(e,t){let n=[],r=new Set;for(let i of e){let e=i.deviceId.trim();i.kind===t&&e&&e!=="default"&&!r.has(e)&&(r.add(e),n.push({deviceId:e,label:i.label.trim()||I(t===`audioinput`?`chat.composer.microphoneFallback`:`chat.composer.cameraFallback`,{number:String(n.length+1)})}))}return n}function OL(e,t){let n=e.filter(e=>e.kind===t);return n.length===0||n.some(e=>!e.deviceId||!e.label)}function kL(e){return e instanceof DOMException||e instanceof Error&&e.name===`OverconstrainedError`?e.name:void 0}function AL(e){return UL.get(kL(e)??``)??`failed`}function jL(e,t){let[n,r]=HL[e];return I(t===`audioinput`?n:r)}function ML(e){let t=globalThis.navigator?.mediaDevices;return t?.addEventListener?(t.addEventListener(`devicechange`,e),()=>t.removeEventListener(`devicechange`,e)):()=>void 0}function NL(e){return jL(AL(e),`audioinput`)}async function PL(e,t){let n=globalThis.navigator?.mediaDevices;if(!n?.enumerateDevices)return{devices:[],permissionRequired:!1,issue:`list-unsupported`};let r=e(),i;try{i=await n.enumerateDevices()}catch(n){return!r&&e()?PL(e,t):{devices:[],permissionRequired:!1,issue:AL(n)}}let a=OL(i,t);if(!a||!n.getUserMedia||!e())return{devices:DL(i,t),permissionRequired:a,issue:null};try{return(await n.getUserMedia(t===`audioinput`?{audio:!0}:{video:!0})).getTracks().forEach(e=>e.stop()),i=await n.enumerateDevices(),{devices:DL(i,t),permissionRequired:OL(i,t),issue:null}}catch(e){return{devices:DL(i,t),permissionRequired:a,issue:AL(e)}}}async function FL(e){return PL(e,`audioinput`)}async function IL(e){return PL(e,`videoinput`)}function LL(e){let t=e?.trim();return{autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,...t?{deviceId:{exact:t}}:{}}}function RL(e){return e.reason instanceof Error?e.reason:new DOMException(`Realtime Talk input cancelled`,`AbortError`)}async function zL(e,t){if(t?.aborted)throw RL(t);let n=e();try{return await kl(n,t,RL)}catch(e){throw t?.aborted?(n.then(e=>e.getTracks().forEach(e=>e.stop()),()=>void 0),RL(t)):e}}async function BL(e,t){let n=globalThis.navigator?.mediaDevices;if(!n?.getUserMedia)throw Error(I(`chat.composer.realtimeTalkRequiresMicrophone`));let r;try{r=await zL(()=>n.getUserMedia({audio:LL(e)}),t)}catch(t){let n=kL(t);if(!n||n===`AbortError`)throw t;if(e?.trim()&&n===`OverconstrainedError`)throw new WL;r=NL(t)}if(typeof r==`string`)throw Error(r);if(t.aborted)throw r.getTracks().forEach(e=>e.stop()),RL(t);return r}async function VL(e,t={}){let n=globalThis.navigator?.mediaDevices;if(!n?.getUserMedia)throw Error(I(`chat.composer.cameraAccessFailed`));let r=e?.trim(),i;try{let e=await zL(()=>n.getUserMedia({video:!r||{deviceId:{exact:r}}}),t.signal);if(t.signal?.aborted)throw e.getTracks().forEach(e=>e.stop()),RL(t.signal);i=e}catch(e){if(t.signal?.aborted)throw RL(t.signal);let n=kL(e);i=r&&n===`OverconstrainedError`?I(`chat.composer.selectedCameraUnavailable`):jL(AL(e),`videoinput`)}if(typeof i==`string`)throw Error(i);return i}var HL,UL,WL,GL;function KL(){return(KL=e((()=>{wl(),O(),HL={"list-unsupported":[`chat.composer.microphoneListUnsupported`,`chat.composer.cameraListUnsupported`],"none-found":[`chat.composer.microphoneNoneFound`,`chat.composer.cameraNoneFound`],"permission-blocked":[`chat.composer.microphonePermissionBlocked`,`chat.composer.cameraPermissionBlocked`],busy:[`chat.composer.microphoneBusy`,`chat.composer.cameraBusy`],"page-inactive":[`chat.composer.microphonePageInactive`,`chat.composer.cameraPageInactive`],failed:[`chat.composer.microphoneAccessFailed`,`chat.composer.cameraAccessFailed`]},UL=new Map([[`NotAllowedError`,`permission-blocked`],[`NotFoundError`,`none-found`],[`NotReadableError`,`busy`],[`InvalidStateError`,`page-inactive`]]),WL=class extends Error{constructor(){super(I(`chat.composer.selectedMicrophoneUnavailable`)),this.name=`RealtimeTalkSelectedMicrophoneError`}},GL=class{constructor(e,t){this.onEnded=e,this.onConnecting=t,this.controller=null,this.media=null}get stream(){return this.media}requireStream(){let e=this.media;if(!e)throw Error(I(`chat.composer.microphoneStopped`));return e}adopt(e){let t=this.requireStream();return this.onEnded=e,t}async open(e){this.stop();let t=new AbortController;this.controller=t;try{this.onConnecting?.(I(`chat.composer.microphoneAccessPending`));let n=await BL(e,t.signal);if(t.signal.aborted)throw n.getTracks().forEach(e=>e.stop()),RL(t.signal);this.media=n;let r=()=>{this.controller===t&&(this.stop(),this.onEnded(I(`chat.composer.microphoneStopped`)))};for(let e of n.getTracks())e.addEventListener(`ended`,r,{signal:t.signal});return this.onConnecting?.(),n}catch(e){throw this.controller===t&&this.stop(),e}}stop(){let e=this.controller,t=this.media;this.controller=null,this.media=null,e?.abort(),t?.getTracks().forEach(e=>e.stop())}}})))()}var qL;function JL(){return(JL=e((()=>{qL=class{constructor(){this.listeners=new Set,this.currentLevel=0}get value(){return this.currentLevel}set(e){let t=Math.round((Number.isFinite(e)?Math.min(1,Math.max(0,e)):0)*100)/100;if(t!==this.currentLevel){this.currentLevel=t;for(let e of this.listeners)e(t)}}subscribe(e){return this.listeners.add(e),e(this.currentLevel),()=>this.listeners.delete(e)}}})))()}function YL(e,t,n,r){_P(e,N(t),n,e=>void QL(e,t,r))}async function XL(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=!b(t.sessionKey)||e.sessions.state.agentId===t.agentId?e.sessions.state.result?.sessions.find(e=>xn(e.key,t.sessionKey)):void 0;if(n&&Zl(n))return`blocked`}let c=[e,t,n,a,o,n=>YL(e,t,n,r)],l=()=>e.connected&&e.client===a&&e.connectionEpoch===o,u;try{u=await $l(()=>import(`./chat-outbox-receipts-B6_sm_Yo.js`),__vite__mapDeps([13,0,2,1,3,4,5,6,7]),import.meta.url)}catch(n){return l()&&(Bv(e,t.sessionKey,t.agentId,F(n)),e.requestUpdate?.()),`blocked`}if(!l())return`blocked`;let{readCurrentStoredChatHistory:d,isInterruptedChatInput:f}=u,p=await d(...c);if(typeof p!=`string`&&f(p,n)&&(n.queueMode===`steer`||n.queueMode===`interrupt`||!(j(e,t.sessionKey,t.agentId)&&Pk(e))))return`send`;if(p===`blocked`||p===`continue`||n.sendState===`unconfirmed`&&!i)return p===`continue`?`continue`:`blocked`;if(j(e,t.sessionKey,t.agentId)&&Pk(e))return`blocked`;if((n.sendAttempts??0)>0){let r=await d(...c);return r===`blocked`||r===`continue`?r:Dm(e,e=>{let t=e.chatQueue.find(e=>e.id===n.id);return t?.sendState===`sending`&&Va(t,{...n,sendState:`sending`})})?`blocked`:i?`send`:(jm(e,n.id,e=>({...e,sendError:`Delivery has not been confirmed. Check the conversation — retry only if your message didn't arrive.`,sendState:`unconfirmed`}))&&Bv(e,t.sessionKey,t.agentId,Hv,{inline:!n.localCommandName}),`blocked`)}return`send`}async function ZL(e,t,n){for(;;){let r=e.host;if(iv(r,t.sessionKey,t.agentId)?.providerReview)return av(r,t.sessionKey,t.agentId),`blocked`;if(!r.connected||!r.client||Fv(r,t.sessionKey,!1,t.agentId))return`blocked`;let i=Sa(r,t);if(!i)return`empty`;let a=i.queue.find(t=>e.freshAdmissions.has(t.id)&&(t.queueMode||!t.intent&&e.pendingOptions.get(t.id)?.allowActiveRunSend))??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?Z(r,a.id)??a:a;if(s.sendState===`failed`&&!o)return`empty`;if(!o&&X(r).hasPendingSubmission(i,a)||s.sendState===`held`||s.sendState===`unconfirmed`&&(!s.sendRunId||s.localCommandName)||s.sendState===`waiting-model`&&!e.pendingOptions.has(s.id)||fF(r,s.id))return X(r).syncHost(r),`blocked`;let c=j(r,i.sessionKey,i.agentId);if(s.localCommandName){let t=(e,t)=>jm(r,s.id,n=>({...n,sendError:t,sendState:e}));if(!c||Pk(r))return e.waitingForVisibleOwner=!c,e.freshAdmissions.delete(s.id),e.pendingOptions.delete(s.id),`blocked`;if(X(r).syncHost(r),s.localCommandName===`reset`){if((s.sendAttempts??0)>0||s.sendRequestStartedAtMs!==void 0)return t(`unconfirmed`,Hv),`blocked`;let a=cL(r);if(!a)return t(`failed`,`The Gateway connection changed. Retry the command.`),`blocked`;let o=fL(r,a);if(!o.allowed)return t(`failed`,o.reason),Q(r,o.reason),`blocked`;let c=await bL(r,{sessionKey:i.sessionKey,...i.agentId?{agentId:i.agentId}:{}});if(c===`deferred`)return t(`waiting-idle`),`blocked`;if(c===`cancelled`){if(!X(r).remove(r,s.id))return`blocked`;continue}let l=fL(r,a);if(!l.allowed)return t(`failed`,l.reason),Q(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 XL(r,i,s,n);if(e===`blocked`)return`blocked`;if(e===`continue`)continue}if(Fv(r,i.sessionKey,!1,i.agentId))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&&j(r,i.sessionKey,i.agentId),f=(e,n=!1)=>{let a=t(`failed`,e);return(!a||n)&&Bv(r,i.sessionKey,i.agentId,a?e:$),`blocked`};try{let e=await xL(r,o.localCommandName??s.localCommandName,o.localCommandArgs??``);if(e===`deferred`)return t(`waiting-idle`),`blocked`;if(e===`failed`){let e=d(),t=(e?r.lastError:null)??`Command /${s.localCommandName} failed.`,n=!j(r,i.sessionKey,i.agentId);return f(t,!e&&n)}if(e===`uncertain`){let e=Sa(r,i),t=e?.queue.findIndex(e=>e.id===s.id)??-1,n=t>=0?e?.queue[t+1]:void 0;if(n&&!jm(r,n.id,e=>({...e,sendError:nR,sendState:`unconfirmed`})))return Q(r,$),`blocked`}if(!X(r).remove(r,s.id))return Bv(r,i.sessionKey,i.agentId,$),`blocked`;if(e===`uncertain`)return`blocked`;d()&&Q(r,null)}catch(e){return f(F(e),!0)}continue}if(b(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||!c){let e=await XL(r,i,a,n,d);if(e===`blocked`)return`blocked`;if(e===`continue`)continue}let f=Sa(r,t),p=l?Z(r,s.id):f?.queue.find(e=>e.id===s.id);if(!f||!p||!Va(p,s)){e.pendingOptions.delete(s.id);continue}X(r).syncHost(r);let m=await n.sendQueuedChatMessage(r,s.id,c?u:{...u,routingSessionKey:void 0},i.sessionKey);if(e.outcomes.set(s.id,m),e.pendingOptions.delete(s.id),m===`pending`){let n=Sa(r,t)?.queue.find(e=>e.id===s.id);if(!n||n.orderKey!==s.orderKey)continue;return!u?.pendingSettings&&e.freshAdmissions.size===0&&(e.rerun=!1),`blocked`}}}async function QL(e,t,n,r,i,a){let o=e.client;if(!e.connected||!o)return;let s=N(t),c=rR.get(o)??new Map;rR.set(o,c);let l=j(e,t.sessionKey,t.agentId);if(vP(e,s,l,r))return;let u=c.get(s);if(u){let n=u.host===e,s=!u.owner.host.connected||u.owner.host.client!==o||u.owner.connectionEpoch!==u.owner.host.connectionEpoch;return(!u.host.connected||u.host.client!==o||!j(u.host,t.sessionKey,t.agentId)&&l)&&(u.host=e,u.rerun||=u.waitingForVisibleOwner===!0&&l),u.rerun||=(a??n)||!!r||s,r&&i&&u.pendingOptions.set(r,i),r&&u.freshAdmissions.add(r),!r&&u.pendingOptions.size?void 0:(await u.promise,r?u.outcomes.get(r):void 0)}let d={owner:{host:e,connectionEpoch:e.connectionEpoch},freshAdmissions:new Set(r?[r]:[]),host:e,outcomes:new Map,pendingOptions:new Map(r&&i?[[r,i]]:[]),promise:Promise.resolve(),rerun:!1};c.set(s,d),d.promise=(async()=>{do d.rerun=!1,d.waitingForVisibleOwner=!1,d.owner={host:d.host,connectionEpoch:d.host.connectionEpoch},await ZL(d,t,n);while(d.rerun)})();try{return await d.promise,yP(o,s),r?d.outcomes.get(r):void 0}finally{c.get(s)===d&&c.delete(s)}}async function $L(e,t,n){let r=e.client;if(!e.connected||!r)return;X(e).syncHost(e,{requestUpdate:!1});let i=n?ae(n.payload):void 0;if(n&&!i)return;let a=Yc(e).filter(e=>!i||xn(e.sessionKey,i.key)&&(!b(e.sessionKey)||i.agentId!==null&&e.agentId===ru(i.agentId))),o=tR.get(r)??new WeakSet;tR.set(r,o);let s=n?!o.has(n):void 0;n&&a.length>0&&o.add(n),await Promise.allSettled(a.filter(e=>!n||s||rR.get(r)?.has(N(e))).map(n=>QL(e,n,t,void 0,void 0,s)))}async function eR(e,t){let n=Yc(e).find(t=>j(e,t.sessionKey,t.agentId));n&&await QL(e,n,t,void 0,void 0,!0)}var tR,nR,rR;function iR(){return(iR=e((()=>{oo(),as(),Rs(),P(),dt(),M(),Pt(),EL(),rv(),wm(),SP(),ov(),Rm(),Uv(),SF(),oA(),Yl(),tR=new WeakMap,nR=`A preceding /clear may have completed. Review the current conversation before retrying.`,rR=new WeakMap})))()}async function aR(e,t,n,r=e.sessionKey,i=!0){let a=n?.storageMode??`durable`,o=Z(e,t),s=o?.localCommandName===`reset`&&!!n?.target;if(!o||o.pendingRunId||o.localCommandName&&!s)return`failed`;let c=o.sessionKey??r,l=o.agentId,u=()=>!n?.canDispatch||n.canDispatch()?!0:(AF(e,a,t)(`failed`,ro),Bv(e,c,l,ro),!1);if(!u())return`failed`;let d=DF(e,o,n),f=OF(e,o,r,n);if(f){let e=await f;if(!u())return`failed`;if(!e)return`pending`;({item:o,expectedLeafEntryId:d}=e)}if(a===`durable`&&(o.attachments?.length||o.attachmentPayload||o.attachmentStorageError)){let t=await RF(e,o,r);if(!u())return`failed`;if(typeof t==`string`)return t;o=t}return IF(e,o,a,o.sessionKey??r,n,t=>u()?oR(e,o,t,n,r,d,s,i):`failed`)}async function oR(e,t,n,r,i,a,o,s){let c=t.id,l=r?.storageMode??`durable`,u=t.sessionKey??i,d=r?.routingSessionKey??u,f=jF(e,n,l,u,r);if(typeof f!=`string`&&t.attachmentPayload&&(f={...f,attachments:t.attachments}),typeof f==`string`)return f;if(!f.sendRunId||!f.sendState){let t=f.sessionKey??i;f=kF(e,l,f.id,n=>({...n,sendAttempts:n.sendAttempts??0,sendRunId:n.sendRunId??Jl(),sendState:e.connected&&e.client?`sending`:`waiting-reconnect`,sessionKey:t,agentId:n.agentId??S(e,t)}))??`pending`}if(typeof f==`string`)return Q(e,$),f;o&&(f={...f,refreshSessions:!0,text:f.localCommandArgs?`/reset ${f.localCommandArgs}`:`/reset`});let p=hc(f.text,f.mentions),m=f.intent?f.text:p.text,h=(t.attachmentPayload?t.attachments:f.attachments)??[];if(!m&&h.length===0)return X(e).remove(e,c),`sent`;let g=f.sessionKey??e.sessionKey,_=AF(e,l,c);if(r?.target){let t=fL(e,r.target);if(!t.allowed)return _(`failed`,t.reason),Bv(e,g,f.agentId,t.reason),`failed`}if(!e.connected||!e.client){let t=_(`waiting-reconnect`);return!t&&qP(e,f,r)?`failed`:(t||(_(`failed`,$),Bv(e,g,f.agentId,$)),`pending`)}if(PF(e,f,h,g,r))return`failed`;let v=EF(e),y=f.sendRunId??Jl(),b=Date.now(),x=SM(),C=kF(e,l,c,e=>({...e,sendAttempts:(e.sendAttempts??0)+1,sendError:void 0,sendRunId:y,sendState:`sending`,sendRequestStartedAtMs:x,sessionKey:g,agentId:f.agentId}));if(!C)return Bv(e,g,f.agentId,$),`pending`;nF(e,C,y,x),eF(e,C,`request-start`,C.sendSubmittedAtMs);let w={sessionKey:g,...f.agentId?{agentId:f.agentId}:{}},ee=()=>j(e,g,f.agentId),te=s&&ee()?nk(e,d):void 0,T,ne=e=>th({...f,text:m,mentions:p.mentions,attachments:h,createdAt:b,runId:y,...e?{steerTargetRunId:e}:{}},e?`complete`:void 0);ee()&&(e.chatSendingScopeKey=N(w),e.chatSending=!0,e.chatRunId||(Ak(e),e.providerPolicyNotice=null),Q(e,null),Qk(e,{clearRunStatus:!0,clearIndicators:!e.chatRunId}));try{if(r?.canDispatch&&!r.canDispatch())return _(`failed`,ro),Bv(e,g,f.agentId,ro),`failed`;let t=f.intent?f.expectedLeafEntryId:a;if(f.queueMode===`steer`&&ee()&&e.chatRunId){let t=e.chatRunId,n=ne(t);n&&(T=e.chatSubmissions.retain({kind:`delivered`,deliveryKey:Mc(e,w,y),owner:e.client,sessionKey:g,agentId:f.agentId,sessionId:f.sessionId??e.currentSessionId??void 0,pendingRunId:y,message:n}),l_(e,{type:`sendPending`,runId:y,message:n},{scope:qg(e,{sessionKey:g,agentId:f.agentId})}))}let n=await YP(e,{message:m,workContext:f.workContext,mentions:p.mentions,attachments:h.length?h:void 0,runId:y,sessionKey:g,agentId:f.agentId,...f.sessionId?{sessionId:f.sessionId}:{},...f.intent?{intent:f.intent,sessionId:f.sessionId}:{},...f.queueMode?{queueMode:f.queueMode}:{},...f.queueMode!==`steer`&&t!==void 0?{expectedLeafEntryId:t}:{},...f.replyToId?{replyToId:f.replyToId}:{}});if(!v())return`pending`;if(rF(e,y,n,C,x),eF(e,C,`ack`,C.sendSubmittedAtMs,{ackStatus:n.status,requestDurationMs:CM(SM()-x),...iF(n)}),If(n)){if(n.stopReason===`restart`&&l===`durable`)return _(`waiting-reconnect`),`pending`;let t=Lv(n,`chat`);T&&(T.pending=!1),NF(e,w);let i=r?.restoreOnTerminalFailure===!0&&qP(e,f,r);if(i||_(`failed`,t),ee()){let t=qg(e,{sessionKey:g,agentId:f.agentId});l_(e,{type:`sendFailed`,runId:y},{scope:t});let r=e.chatRunId===n.runId;Qk(e,{outcome:`interrupted`,sessionStatus:n.status===`error`?`failed`:`killed`,runId:n.runId,sessionKey:g,clearIndicators:r,clearLocalRun:r,clearChatStream:r,clearToolStream:r,publishRunStatus:!1,armLocalTerminalReconcile:(!e.chatRunId||r)&&n.runId===y})}return Bv(e,g,f.agentId,t,{inline:l===`durable`&&!i}),eF(e,C,`failed`,C.sendSubmittedAtMs,{error:t,ackStatus:n.status}),`failed`}let i=l===`memory`||n.messageSeq!==void 0||n.status===`ok`&&!Pv(f),o=!1;if(i&&(X(e).remove(e,c),o=l===`durable`&&Z(e,c)!==null),ee()){if(i){let t=qg(e,{sessionKey:g,agentId:f.agentId}),r=ne();r&&l_(e,{type:`sendPending`,runId:y,message:r},{scope:t}),n.runId!==y&&l_(e,{type:`sendAcknowledged`,previousRunId:y,runId:n.runId},{scope:t})}if(n.status===`ok`)Qk(e,{outcome:`done`,sessionStatus:`done`,runId:n.runId,sessionKey:g,clearLocalRun:!0,clearChatStream:!0,clearToolStream:!0,publishRunStatus:!1,armLocalTerminalReconcile:!0}),VM(e).then(()=>eR(e,cR));else if(lf(n.status)){(!e.chatRunId||f.queueMode===`interrupt`)&&Fk(e,n.runId,b);let t=f.sessionId&&e.sessionsResult?.sessions.some(e=>e.sessionId===f.sessionId&&[`requested`,`provisioning`,`syncing`,`starting`].includes(e.placement?.state??``));f.queueMode!==`steer`&&n.messageSeq===void 0&&t&&VM(e,{deferBranches:!0})}}if(f.refreshSessions){let t={sessionKey:g,agentId:f.agentId};n.status===`ok`?YO(e,t):lf(n.status)&&e.refreshSessionsAfterChat.set(n.runId,t)}return dp(Nm(e,h)),o?(Bv(e,g,f.agentId,$),`pending`):i?`sent`:`pending`}catch(n){if(!v())return`pending`;T&&(T.pending=!1),f.queueMode===`steer`&&ee()&&l_(e,{type:`sendFailed`,runId:y},{scope:qg(e,{sessionKey:g,agentId:f.agentId})});let a=n instanceof vr?aa(n.details):void 0;if(a){let t=gk(n);NF(e,w);let o=_(`failed`,t);eF(e,f,`failed`,f.sendSubmittedAtMs,{error:t});let u=s?await te?.(a):void 0;if(u?.()&&v()&&ee()){let t=Z(e,c);if(!o||!t||!Va(o,t))return`failed`;if(kF(e,l,c,e=>({...e,sendRunId:Jl(),sendError:void 0,sessionId:a.recovery?.sessionId,sendState:`sending`})))return await aR(e,c,{...r,canDispatch:u,allowActiveRunSend:!0},i,!1)}let d=qP(e,f,r);return Bv(e,g,f.agentId,ee()&&e.chatError||t,{inline:l===`durable`&&!d}),`failed`}return FF(e,t,f,n,r,w,t=>YL(e,w,t,cR))}finally{v()&&NF(e,w)}}async function sR(e,t,n={}){let r=t.sessionKey??e.sessionKey,i=n.storageMode??`durable`,a=n.routingSessionKey??r,o=EF(e,!1),s=t.agentId??S(e,a)??void 0,c={...n,routingSessionKey:a,storageMode:i},l;if(i===`memory`)l=await aR(e,t.id,c,r);else{let n=Yc(e).find(e=>e.queue.some(e=>e.id===t.id));if(!n)return`pending`;let o=async o=>{let s=j(e,a,o.agentId);if(s&&!o.queueMode&&!c.allowActiveRunSend&&(Pk(e)||Rk(e))){let a=jF(e,o,i,r,c);if(typeof a==`string`)return a===`pending`&&n.queue[0]?.id!==t.id&&QL(e,n,cR),a}return!e.connected||!e.client?`pending`:(s?await QL(e,n,cR,t.id,{...c,pendingSettings:void 0}):await QL(e,n,cR))??`pending`},s=t.localCommandName?void 0:c.pendingSettings??zO(e,a,t.agentId);l=s?await IF(e,t,i,r,{...c,pendingSettings:s},o):await o(t)}return l===`sent`&&j(e,r,s)&&bk(e),o()&&j(e,a,s)&&WD(e,!0,!0),l===`sent`&&j(e,r,s)&&!e.chatRunId&&eR(e,cR),l}var cR;function lR(){return(lR=e((()=>{ki(),tf(),Un(),ps(),oo(),as(),Rs(),dt(),fl(),Y(),EL(),rv(),WM(),iR(),wm(),Rm(),Lf(),JP(),zF(),$P(),Uv(),lF(),ak(),WO(),_k(),p_(),Ek(),OM(),oA(),eO(),nh(),cR={sendQueuedChatMessage:aR}})))()}var uR=t({retryQueuedChatMessage:()=>mR});function dR(e){return!!(e.sendRunId&&!e.localCommandName&&(e.sendState===`unconfirmed`||e.sendState===`held`&&((e.sendAttempts??0)>0||e.sendRequestStartedAtMs!==void 0)))}async function fR(e,t){if(!(iv(e)?.providerReview||Z_(e))){if(Z(e,t)?.intent){Q(e,I(`chat.goals.admissionImmutable`));return}if(fF(e,t)){Q(e,xF);return}if(!jm(e,t,e=>({...e,queueMode:`steer`}))){Q(e,$);return}await mR(e,t)}}function pR(e,t,n){let r=X(e),i=r.locate(e,t);if(!i||!mo(i.item))return`noop`;if(fF(e,t))return Q(e,yF),`rejected`;let a=r.snapshot(e,i.scope),o=ha(a).find(e=>e.some(e=>e.id===t)),s=o?.findIndex(e=>e.id===t)??-1,c=o?.findIndex(e=>e.id===n)??-1;if(s<0||c<0||s===c)return`noop`;if(o.slice(Math.min(s,c),Math.max(s,c)+1).some(t=>fF(e,t.id)))return Q(e,yF),`rejected`;let l=ha(o,t=>!fF(e,t.id)).find(e=>e.some(e=>e.id===t)),u=l?.findIndex(e=>e.id===n)??-1,d=Na(l??[],t,u);if(d.length===0)return`noop`;let f=new Map(d.map(e=>[e.id,e])),p=new Set(l.map(e=>e.id));if(a.map(e=>f.get(e.id)??e).toSorted(io).some((e,t)=>!p.has(e.id)&&a[t]?.id!==e.id))return`noop`;if(X(e).update(e,d.map(e=>({id:e.id,update:t=>({...t,orderKey:e.orderKey})})))===null)return Q(e,$),`rejected`;for(let t of[`lastError`,`chatError`])e[t]===`A queued message is being edited in another pane. Finish or cancel that edit before reordering it.`&&(e[t]=null);return`moved`}async function mR(e,t,n){if(iv(e)?.providerReview||Z_(e)||n&&!n())return;let r=e.chatQueue.find(e=>e.id===t);if(X_(e,r?.sessionKey??e.sessionKey))return;let i=r?.sendState===`failed`&&!r.localCommandName,a=r!==void 0&&dR(r);if(fF(e,t)){Q(e,bF);return}if(!r||r.pendingRunId||r.sendState===`executing-command`||r.sendState===`submitting`||r.sendState===`sending`||r.sendState===`waiting-model`)return;let o=X(e),s=o.locate(e,r.id);if(!s)return;if(!s.durable){let i=X(e).hasVolatile(e,r.id),a={...vs(e,s.scope.sessionKey,s.scope.agentId),scope:s.scope};if(X(e).admit(e,a,r)!==`admitted`){if(i&&!r.localCommandName&&r.sendRunId&&(r.sendState===`failed`||r.sendState===`unconfirmed`||r.sendState===`held`)&&MF(e,r)){let r=X(e).change(e,t,e=>hR(e,void 0));if(!r){Q(e,$);return}await sR(e,r,{routingSessionKey:r.sessionKey??e.sessionKey,storageMode:`memory`,canDispatch:n});return}Q(e,$);return}}let c=jm(e,t,t=>hR(t,TF(e)));if(!c){Q(e,$);return}let l=o.locate(e,c.id);if(!l?.durable){Q(e,$);return}let u=l.scope,d=c.queueMode||i||a,f=QL(e,u,cR,d?c.id:void 0,d?{routingSessionKey:e.sessionKey,canDispatch:n,...i?{allowActiveRunSend:!0}:{}}:void 0);e.chatSending&&e.chatSendingScopeKey===N(u)||(await f,e.chatRunId||eR(e,cR))}var hR,gR,_R;function vR(){return(vR=e((()=>{O(),Zs(),Rs(),fl(),rv(),iR(),wm(),ov(),Rm(),lR(),zF(),Uv(),sm(),SF(),zc(),hR=(e,t)=>{let n=dR(e);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?Jl():e.sendRunId,sendState:n?`unconfirmed`:t}},gR=(e,t)=>$L(e,cR,t),_R=e=>eR(e,cR)})))()}var yR;function bR(){return(bR=e((()=>{hu(),H(),Jr(),cd(),Du(),O(),Qs(),EO(),yR=class{constructor(){this.target=null,this.items=[],this.index=0,this.dismissed=null,this.resolver=new xs,this.inserting=!1,this.acceptedEnter=!1,this.requestUpdate=null,this.anchor=new Ou(()=>{let e=this.requestUpdate;this.dismiss(this.textarea),e?.()}),this.popup=null,this.textarea=null,this.popupRef=e=>{this.popup=e instanceof yu?e:null,this.syncAnchor()}}syncAnchor(){this.popup&&this.textarea&&this.target&&this.open?this.anchor.update(this.popup,this.textarea,this.target.start):this.anchor.close()}get open(){return this.items.length>0}close(){this.acceptedEnter=!1,this.anchor.close(),this.requestUpdate=null,this.textarea=null,this.target=null,this.items=[],this.index=0,this.dismissed=null,this.resolver.reset()}dismiss(e){this.close(),this.dismissed=e?{value:e.value,caret:e.selectionStart}:null}activeId(e){return this.open?xO(e,`emoji-option-${this.index}`):null}activeLabel(){return this.open?`:${this.items[this.index]}:`:``}update(e,t,n=!0){if(this.dismissed&&this.dismissed.caret===e.selectionStart&&this.dismissed.value===e.value)return;let r=n&&e.isConnected&&e.ownerDocument.activeElement===e&&!e.disabled&&!e.readOnly&&e.selectionStart===e.selectionEnd?this.resolver.find(e.value,e.selectionStart):null;if(r?.start===this.target?.start&&r?.query===this.target?.query&&r?.end===this.target?.end){r&&this.syncAnchor();return}let i=this.open;this.target=r,this.items=r?Ms(r.query):[],this.index=0,this.dismissed=null,(i||this.open)&&t()}insert(e,t,n,r){if(e.disabled||e.readOnly||this.inserting)return!1;e.focus({preventScroll:!0});let i=e.selectionStart,a=e.selectionEnd;this.inserting=!0,this.close(),e.setSelectionRange(t.start,t.end);let o=!1;try{o=e.ownerDocument.execCommand?.(`insertText`,!1,n)??!1}finally{this.inserting=!1}return o||e.setSelectionRange(i,a),r(),o}complete(e,t,n=!0){let r=e.target;if(!n||this.inserting||e.isComposing||e.inputType!==`insertText`||e.data!==`:`||!(r instanceof HTMLTextAreaElement)||r.selectionStart!==r.selectionEnd||!e.cancelable)return!1;let i=r.selectionStart,a=this.resolver.find(r.value,i),o=a&&mc(a.query);return!a||!o||!this.insert(r,{...a,end:i},o,t)?!1:(e.preventDefault(),!0)}handleKeyup(e){e.key===`Enter`&&(this.acceptedEnter=!1)}handleKeydown(e,t,n){if(e.key===`Enter`){if(!e.repeat)this.acceptedEnter=!1;else if(this.acceptedEnter)return e.preventDefault(),!0}let r=e.target;return!this.open||!(r instanceof HTMLTextAreaElement)||r.disabled||r.readOnly||r.selectionStart!==r.selectionEnd||e.shiftKey||e.altKey||e.isComposing||e.keyCode===229?!1:Ru(e,{count:this.items.length,index:this.index,consumeEmpty:!1,close:()=>{this.dismiss(r),n()},move:e=>(this.index=e,n(),this.activeId(t)),select:e=>{this.select(r,n),this.acceptedEnter=e===`Enter`}})}select(e,t,n=this.index){let r=this.resolver.find(e.value,e.selectionStart),i=mc(this.items[n]??``);r&&i&&r.start===this.target?.start&&r.query===this.target.query&&this.insert(e,r,i,t)}render(e,t,n){if(!this.open||!t||t.disabled||t.readOnly)return B;this.requestUpdate=n,this.textarea=t,this.syncAnchor();let r=Tu({className:`emoji-menu`,id:xO(e,`emoji-menu-listbox`),label:I(`chat.composer.emojiSuggestions`),content:this.items.map((r,i)=>sd({id:xO(e,`emoji-option-${i}`),active:i===this.index,select:()=>this.select(t,n,i),hover:()=>{this.index=i,n()},icon:mc(r),iconHidden:!0,name:`:${r}:`,description:B}))});return V`<wa-popup ${di(this.popupRef)} class="emoji-menu-popup">${r}</wa-popup>`}}})))()}function xR(e,t){if(e.trimStart().startsWith(`/`))return null;let n=e.slice(0,t),r=n.slice(n.lastIndexOf(`
`)+1);if(/^\s*>/u.test(r)||(n.match(/```/gu)?.length??0)%2!=0||(r.match(/`/gu)?.length??0)%2!=0)return null;let i=/(?:^|[\s([{])@(?! )([\p{L}\p{N}\p{M}_. -]{0,128})$/u.exec(n);if(!i)return null;let a=i[1]??``,o=t-a.length-1,s=t;for(;s<e.length&&/[\p{L}\p{N}\p{M}_.-]/u.test(e[s]??``);)s+=1;return{start:o,end:s,query:a,value:e}}var SR,CR,wR,TR,ER,DR;function OR(){return(OR=e((()=>{Gl(),H(),Un(),cd(),O(),ps(),Jx(),EO(),SR=3e5,CR=18e5,wR=3e4,TR=15e3,ER=16,DR=class{constructor(){this.generation=0,this.target=null,this.search=null,this.index=0,this.selectedAvatars=new Map,this.results=new Map,this.requests=new Map}get open(){return this.target!==null}syncDirectory(e){(this.directory?.client!==e?.client||this.directory?.ownerKey!==e?.ownerKey||JSON.stringify(this.directory?.params)!==JSON.stringify(e?.params))&&(this.close(),this.results.clear(),this.requests.clear(),this.selectedAvatars.clear(),this.directory=e?{...e}:void 0)}cancelSearch(){this.generation+=1,clearTimeout(this.timer),this.timer=void 0}close(){this.cancelSearch(),this.target=null,this.search=null,this.index=0,this.selectedProfileId=void 0}dispose(){this.syncDirectory(void 0)}update(e,t,n=`selection`){let{value:r,selectionStart:i,selectionEnd:a}=e,o=this.directory?xR(r,i):null,s=n===`selection`&&this.target!==null&&(r!==this.target.value||o?.start!==this.target.start||a>this.target.end);if(!o||s||!this.open&&n!==`trigger`){this.open&&(this.close(),t());return}let c=this.target;c?.start===o.start&&n!==`trigger`&&(o.end=Math.max(o.end,c.end+r.length-c.value.length)),c?.start!==o.start&&(this.selectedProfileId=void 0),this.target=o,(c?.start!==o.start||c.query!==o.query)&&this.searchPeople(t)}showResults(e){this.index=Math.max(0,e.users.findIndex(e=>e.profileId===this.selectedProfileId)),this.selectedProfileId=e.users[this.index]?.profileId,this.search={kind:`ready`,result:e}}searchPeople(e){let t=this.target,n=this.directory;if(!t||!n)return;this.cancelSearch();let r=t.query,i=this.results.get(r);if(i&&Date.now()-i.fetchedAt>=CR&&(this.results.delete(r),i=void 0),i){if(this.showResults(i.result),Date.now()<i.refreshAfter&&!this.requests.has(r)){e();return}}else this.search={kind:`loading`};let a=this.generation;this.timer=setTimeout(()=>{this.timer=void 0;let t=this.results.get(r);if(t&&t!==i&&Date.now()<t.refreshAfter){this.showResults(t.result),e();return}let o=this.requests.get(r);o||(i&&(i.refreshAfter=Date.now()+wR),o=n.client.request(`users.mentionable`,{...n.params,query:r},{timeoutMs:TR}).then(e=>{if(this.directory===n){this.results.delete(r),this.results.size===ER&&this.results.delete(this.results.keys().next().value);let t=Date.now();this.results.set(r,{result:e,fetchedAt:t,refreshAfter:t+SR})}return e}).finally(()=>{this.directory===n&&this.requests.delete(r)}),this.requests.set(r,o)),o.then(t=>{a===this.generation&&(this.showResults(t),e())},t=>{let r=t instanceof vr&&(t.gatewayCode!==`UNAVAILABLE`||jr(t)===Bl.AUTHENTICATED_PROFILE_UNAVAILABLE);this.directory===n&&r?(this.results.clear(),this.requests.clear(),this.directory={...n},this.cancelSearch(),this.open&&(this.search={kind:`error`},e())):a===this.generation&&!i&&(this.search={kind:`error`},e())})},150),e()}activeId(e){return this.search?.kind===`ready`&&this.search.result.users[this.index]?xO(e,`mention-option-${this.index}`):null}activeLabel(){return this.search?.kind===`ready`?this.search.result.users[this.index]?.displayName??``:``}handleKeydown(e,t,n){if(!this.open||e.defaultPrevented||e.isComposing||e.keyCode===229||this.search?.kind===`error`&&e.key===`Tab`)return!1;let r=this.search?.kind===`ready`?this.search.result.users:[];return Ru(e,{count:r.length,index:this.index,consumeEmpty:!0,close:()=>{this.close(),n()},move:e=>(this.index=e,this.selectedProfileId=r[e]?.profileId,n(),this.activeId(t.paneId)),select:()=>this.select(r[this.index],t,n)})}select(e,t,n){let r=t.getTextarea(),i=r?.value??t.getDraft();this.update(r??{value:i,selectionStart:i.length,selectionEnd:i.length},n);let a=this.target;if(!a||t.getMentions().length>=10)return;let o=`@${e.displayName}`,s=`${o} `,c=`${i.slice(0,a.start)}${s}${i.slice(a.end)}`,l=[...$s(i,c,t.getMentions(),{value:i,start:a.start,end:a.end,inputType:`insertReplacementText`}),{profileId:e.profileId,start:a.start,end:a.start+o.length}].toSorted((e,t)=>e.start-t.start);for(let e of this.selectedAvatars.keys())l.some(t=>t.profileId===e)||this.selectedAvatars.delete(e);e.avatarUrl?this.selectedAvatars.set(e.profileId,e.avatarUrl):this.selectedAvatars.delete(e.profileId),t.commitDraft(c,l),this.close(),n(),queueMicrotask(()=>{let e=t.getTextarea();e?.focus({preventScroll:!0}),e?.setSelectionRange(a.start+s.length,a.start+s.length)})}get selectedAvatarUrls(){return this.selectedAvatars}render(e,t){if(!this.open)return B;let n=this.search?.kind===`ready`?this.search.result:void 0,r=e.getMentions().length>=10,i=this.search?.kind===`loading`,a=r?I(`chat.mentions.limit`):this.search?.kind===`error`?I(`chat.mentions.unavailable`):!i&&!n?.users.length?I(`chat.mentions.empty`):null;return Tu({id:xO(e.paneId,`mention-menu-listbox`),className:`mention-menu`,label:I(`chat.mentions.menu`),trackScroll:!1,activeId:this.activeId(e.paneId),content:V` <div class="slash-menu-group" aria-busy=${i}>
        <div class="slash-menu-group__label" role="status">
          ${a??I(`chat.mentions.menu`)}
        </div>
        ${this.search?.kind===`error`&&!r?V`<button
                type="button"
                class="btn btn--sm mention-menu__retry"
                @click=${()=>{this.searchPeople(t),e.getTextarea()?.focus({preventScroll:!0})}}
              >
                ${I(`common.retry`)}
              </button>`:B}
        ${a?B:i?[0,1,2].map(()=>V`<div class="slash-menu-item mention-menu__loading" aria-hidden="true">
                    <span class="slash-menu-icon"
                      ><span class="skeleton mention-menu__avatar"></span
                    ></span>
                    <span class="skeleton skeleton-line skeleton-line--medium"></span>
                  </div>`):n?.users.map((n,r)=>sd({id:xO(e.paneId,`mention-option-${r}`),active:r===this.index,select:()=>this.select(n,e,t),hover:()=>{this.index=r,this.selectedProfileId=n.profileId,t()},icon:Gx({id:n.profileId,name:n.displayName,identity:{type:`profile`,id:n.profileId},profileAvatarUrl:n.avatarUrl}),iconHidden:!0,name:n.displayName,description:n.online?I(`chat.mentions.online`):B}))}
        ${n?.truncated?V`<div class="slash-menu-group__label">${I(`chat.mentions.truncated`)}</div>`:B}
      </div>`})}}})))()}function kR(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/gu,`-`).replace(/^-+|-+$/gu,``)||`item`}function AR(e,t){return xO(e,`slash-option-command-${kR(t.name)}`)}function jR(e,t,n){return xO(e,`slash-option-arg-${kR(t)}-${kR(n)}`)}function MR(e,t){let n=e.toLowerCase().startsWith(t.toLowerCase())?t.length:0;return n===0?V`${e}`:V`<mark>${e.slice(0,n)}</mark>${e.slice(n)}`}function NR(e){return e?`${`/${e.name}${e.args?` ${e.args}`:``}`} ${go(e)}`:``}function PR(){return(PR=e((()=>{H(),la(),EO()})))()}function FR(){return{skillMenuOpen:!1,skillMenuItems:[],skillMenuIndex:0,skillMenuTarget:null,skillCommandRefreshPending:!1,skillCommandRefreshGeneration:0,skillCommandRefreshTargetStart:null}}function IR(e,t){let n=0;for(let r=t-1;r>=0&&e[r]===`\\`;--r)n+=1;return n%2==1}function LR(e,t){let n=Math.max(0,Math.min(t,e.length)),r=n;for(;r>0&&YR.test(e[r-1]??``);)--r;if(r===0||e[r-1]!==`$`)return null;let i=r-1;if(IR(e,i))return null;let a=n;for(;a<e.length&&YR.test(e[a]??``);)a+=1;let o=a;for(;o>r&&e[o-1]===`:`;)--o;let s=e.slice(r,o);return s.length>0&&!/[a-z]/u.test(s)?null:{start:i,end:o,query:s}}function RR(e){e.skillCommandRefreshGeneration+=1,e.skillCommandRefreshPending=!1,e.skillCommandRefreshTargetStart=null,e.skillMenuOpen=!1,e.skillMenuItems=[],e.skillMenuIndex=0,e.skillMenuTarget=null}function zR(e,t){(e.skillMenuOpen||e.skillMenuItems.length>0||e.skillMenuTarget!==null||e.skillCommandRefreshPending)&&(RR(e),t())}function BR(e,t,n){if(!t.refreshCommands||e.skillCommandRefreshPending)return;let r=t.refreshCommands();if(!r)return;let i=e.skillCommandRefreshGeneration+1;e.skillCommandRefreshGeneration=i,e.skillCommandRefreshPending=!0,r.catch(()=>void 0).finally(()=>{if(e.skillCommandRefreshGeneration!==i)return;e.skillCommandRefreshPending=!1;let r=t.getDraft();VR(r,t.getTextarea()?.selectionStart??r.length,e,t,n,{skipRefresh:!0})})}function VR(e,t,n,r,i,a={}){let o=e.trimStart().startsWith(`/`)?null:LR(e,t);if(!o){zR(n,i);return}!a.skipRefresh&&n.skillCommandRefreshTargetStart!==o.start&&(n.skillCommandRefreshTargetStart=o.start,BR(n,r,i));let s=Ga(o.query);n.skillMenuTarget=o,n.skillMenuItems=s,n.skillMenuIndex=Math.min(n.skillMenuIndex,Math.max(0,s.length-1)),n.skillMenuOpen=s.length>0||n.skillCommandRefreshPending,i()}function HR(e,t){return xO(e,`skill-option-${t.name.replace(/[^a-z0-9_-]+/giu,`-`).replace(/^-+|-+$/gu,``)||`skill`}`)}function UR(e){return e.skillMenuOpen&&(e.skillMenuItems.length>0||e.skillCommandRefreshPending)}function WR(e,t){if(!UR(e)||e.skillCommandRefreshPending)return null;let n=e.skillMenuItems[e.skillMenuIndex];return n?HR(t,n):null}function GR(e){if(e.skillCommandRefreshPending)return``;let t=e.skillMenuItems[e.skillMenuIndex];return t?`${Ho(t)} ${go(t)}`:``}function KR(e,t,n,r){if(t.skillCommandRefreshPending)return;let i=n.getTextarea(),a=i?.value??n.getDraft(),o=i?.selectionStart??t.skillMenuTarget?.end??a.length,s=LR(a,o);if(!s){RR(t),r();return}let c=s.end===a.length?` `:``,l=`$${e.name}${c}`,u=`${a.slice(0,s.start)}${l}${a.slice(s.end)}`,d=Math.max(0,o-s.end),f=s.start+l.length+d;n.commitDraft(u),RR(t),r(),queueMicrotask(()=>{let e=n.getTextarea();e&&(e.focus({preventScroll:!0}),e.setSelectionRange(f,f))})}function qR(e,t,n,r){if(!t.skillMenuOpen)return!1;let i=t.skillCommandRefreshPending?[]:t.skillMenuItems;return Ru(e,{count:i.length,index:t.skillMenuIndex,consumeEmpty:!0,close:()=>{RR(t),r()},move:e=>(t.skillMenuIndex=e,r(),WR(t,n.paneId)),select:()=>{let e=i[t.skillMenuIndex];e&&KR(e,t,n,r)}})}function JR(e,t,n){if(!UR(e))return B;let r=e.skillCommandRefreshPending||e.skillMenuItems.length===0;return Tu({id:xO(t.paneId,`skill-menu-listbox`),className:`skill-menu`,label:I(`chat.skills.menu`),content:V`<div class="slash-menu-group">
      <div class="slash-menu-group__label">
        ${I(r?`chat.skills.loading`:`chat.skills.label`)}
      </div>
      ${r?B:e.skillMenuItems.map((r,i)=>sd({id:HR(t.paneId,r),active:i===e.skillMenuIndex,select:()=>KR(r,e,t,n),hover:()=>{e.skillMenuIndex=i,n()},icon:z.pencilSparkles,name:MR(Ho(r),e.skillMenuTarget?.query??``),description:go(r)}))}
    </div>`})}var YR;function XR(){return(XR=e((()=>{H(),cd(),L(),O(),la(),EO(),PR(),YR=/[-a-zA-Z0-9_:]/u})))()}function ZR(e,t,n){let r=e.getTextarea();r&&(r.value=t,mO(r)),e.commitDraft(t),queueMicrotask(()=>{let t=e.getTextarea();t&&(t.focus({preventScroll:!0}),t.selectionStart=n,t.selectionEnd=n)})}function QR(e,t,n){let r=t.slashMenuCompletion;if(!r?.inline)return!1;let i=n.getTextarea()?.value??n.getDraft(),a=i.slice(r.end),o=a.length===0||!/^\s/u.test(a)?` `:``;return ZR(n,`${i.slice(0,r.start)}${e}${o}${a}`,r.start+e.length+o.length),!0}function $R(e,t,n){let r=t.slashMenuCompletion;if(!r?.inline)return!1;let i=n.getTextarea()?.value??n.getDraft(),a=`/${e} `,o=`${i.slice(0,r.start)}${a}${i.slice(r.end)}`,s=r.start+a.length;return ZR(n,o,s),t.slashMenuCompletion={query:e,start:r.start,end:s,inline:!0,argumentStart:s},!0}function ez(e,t){let n=e.slashMenuCompletion;if(!n?.inline)return!1;let r=t.getTextarea()?.value??t.getDraft(),i=r.slice(0,n.start),a=r.slice(n.end);return(i.length===0||/\s$/u.test(i))&&/^\s/u.test(a)&&(a=a.slice(1)),ZR(t,`${i}${a}`,i.length),!0}function tz(e,t,n,r){let i=`/${n.query}`,a=n.argumentStart??n.start+`/${r} `.length,o=e.slice(n.start,a);return t>=a&&o.startsWith(i)&&/^\s+$/u.test(o.slice(i.length))}function nz(e,t){let n=Math.max(0,Math.min(t,e.length)),r=e.slice(0,n),i=/(?:^|\s)\/([^\s/:]+)\s+/gu,a=null;for(let t of r.matchAll(i)){let i=t[1].toLowerCase(),o=qo(i,{showAll:!0,inlineOnly:!0}).find(e=>e.name.toLowerCase()===i||e.aliases?.some(e=>e.replace(/^\//u,``).toLowerCase()===i));if(!o?.args||o.source===`skill`)continue;let s=t.index+t[0].indexOf(`/`),c=r.slice(t.index+t[0].length).trim();(!/\s/u.test(c)||o.allowsInlineMultiWordArgs)&&(a={command:o,completion:{query:i,start:s,end:n,inline:e.slice(0,s).trim().length>0||e.slice(n).trim().length>0,argumentStart:t.index+t[0].length}})}return a?.completion.inline?a:null}function rz(){return(rz=e((()=>{la(),EO()})))()}function iz(){return{slashCommandDispatchConnected:!1,slashMenuOpen:!1,slashMenuItems:[],slashMenuIndex:0,slashMenuMode:`command`,slashMenuCommand:null,slashMenuArgItems:[],slashMenuCompletion:null,slashCommandRefreshPending:!1}}function az(e){e.slashMenuOpen=!1,e.slashMenuMode=`command`,e.slashMenuCommand=null,e.slashMenuArgItems=[],e.slashMenuItems=[],e.slashMenuCompletion=null}function oz(e,t){(e.slashMenuOpen||e.slashMenuMode!==`command`||e.slashMenuCommand!==null||e.slashMenuArgItems.length>0||e.slashMenuItems.length>0)&&(az(e),t())}function sz(e,t,n){e.slashMenuMode=`args`,e.slashMenuCommand=t,e.slashMenuArgItems=n,e.slashMenuOpen=!0,e.slashMenuIndex=0,e.slashMenuItems=[]}function cz(e,t,n){if(!t.refreshCommands||e.slashCommandRefreshPending)return;let r=t.refreshCommands();r&&(e.slashCommandRefreshPending=!0,r.catch(()=>void 0).finally(()=>{e.slashCommandRefreshPending=!1,(e.slashMenuOpen||e.slashMenuCompletion)&&(e.slashMenuMode===`args`&&e.slashMenuCompletion?.inline||lz(t.getDraft(),e,t,n,{skipSlashIntent:!0}))}))}function lz(e,t,n,r,i={}){if(t.slashMenuMode===`freeform-args`&&t.slashMenuCompletion?.inline&&t.slashMenuCommand){let i=n.getTextarea()?.selectionStart??e.length,a=t.slashMenuCompletion;if(tz(e,i,a,t.slashMenuCommand.name)){t.slashMenuCompletion.end=i,r();return}az(t)}let a=e.match(/^\/(\S+)\s(.*)$/);if(a){i.skipSlashIntent||cz(t,n,r);let e=a[1].toLowerCase(),o=a[2].toLowerCase(),s=jo.find(t=>t.name===e&&(n.commandFilter?.(t)??!0)),c=s?n.resolveArgOptions(s):[];if(s&&c.length>0){let e=o?c.filter(e=>e.toLowerCase().startsWith(o)):c;if(e.length>0){sz(t,s,e),t.slashMenuCompletion=null,r();return}}oz(t,r);return}let o=n.getTextarea()?.selectionStart??e.length,s=Ya(e,o);if(!s){oz(t,r);return}i.skipSlashIntent||cz(t,n,r);let c=qo(s.query,{showAll:!0,inlineOnly:s.inline,allowImmediateInlineCommands:!s.skillOnly}).filter(e=>(n.commandFilter?.(e)??!0)&&(!s.inline||e.source===`skill`||n.canRun(!0,e)));t.slashMenuCompletion=s,t.slashMenuItems=[...c.filter(e=>e.source!==`skill`),...c.filter(e=>e.source===`skill`)],t.slashMenuOpen=c.length>0,t.slashMenuIndex=0,t.slashMenuMode=`command`,t.slashMenuCommand=null,t.slashMenuArgItems=[],r()}function uz(e,t,n,r){if(!t.slashMenuCompletion?.inline||e.source===`skill`||!e.args||!n.canRun(!0,e)||!n.runInlineCommand)return!1;t.slashMenuCommand=e,t.slashMenuIndex=0,t.slashMenuItems=[];let i=n.resolveArgOptions(e);return i.length>0?(t.slashMenuMode=`args`,t.slashMenuArgItems=i,t.slashMenuOpen=!0,r(),!0):$R(e.name,t,n)?(t.slashMenuMode=`freeform-args`,t.slashMenuArgItems=[],t.slashMenuOpen=!1,r(),!0):!1}function dz(e,t,n,r,i=!1){if(n.activateComposerMode?.(e)||!i&&e.source!==`skill`&&!n.canRun(!0,e)&&t.slashMenuCompletion?.inline)return;let a=e.source===`skill`?`$${e.name}`:`/${e.name}`;if(uz(e,t,n,r))return;if(!i&&t.slashMenuCompletion?.inline&&Fa(e)&&n.canRun(!0,e)&&n.runInlineCommand&&ez(t,n)){az(t),r(),n.runInlineCommand(`/${e.name}`);return}if(QR(a,t,n)){az(t),r();return}let o=n.resolveArgOptions(e);if(o.length>0){n.commitDraft(`/${e.name} `),sz(t,e,o),r();return}i?(n.commitDraft(e.args?`/${e.name} `:`/${e.name}`),az(t),r()):e.executeLocal&&!e.args&&(e.key!==`btw`||n.canRun(!0,e))?(az(t),n.commitDraft(`/${e.name}`),n.runCommand()):(n.commitDraft(`/${e.name} `),oz(t,r))}function fz(e,t,n,r,i){let{slashMenuCommand:a,slashMenuCompletion:o}=t;if(a?.source!==`skill`&&!n.canRun(o?.inline===!0,a??void 0,e))return;let s=a?.name??``;if(i&&t.slashMenuCompletion?.inline&&a&&Fa(a)&&n.canRun(!0,a,e)&&n.runInlineCommand&&ez(t,n)){az(t),r(),n.runInlineCommand(`/${s} ${e}`);return}if(t.slashMenuCompletion?.inline&&(!i||!a||!Fa(a))&&QR(`/${s} ${e}`,t,n)){az(t),r();return}az(t),n.commitDraft(`/${s} ${e}`),i&&n.runCommand(),r()}function pz(e,t,n){let r=e.slashMenuCommand,i=e.slashMenuCompletion;if(e.slashMenuMode!==`freeform-args`||!i?.inline||!r||!Fa(r)||!t.runInlineCommand)return!1;let a=t.getTextarea()?.value??t.getDraft(),o=i.argumentStart??i.start+`/${r.name} `.length,s=a.slice(o,i.end).trim();return!t.canRun(!0,r,s)||!ez(e,t)?!1:(az(e),n(),t.runInlineCommand(`/${r.name}${s?` ${s}`:``}`),!0)}function mz(e,t){if(!t.runInlineCommand)return!1;let n=t.getTextarea()?.value??t.getDraft(),r=nz(n,t.getTextarea()?.selectionStart??n.length);return r?(e.slashMenuMode=`freeform-args`,e.slashMenuCommand=r.command,e.slashMenuCompletion=r.completion,!0):!1}function hz(e,t,n,r,i){if(e.key===`Escape`)return t.slashMenuMode!==`freeform-args`||!t.slashMenuCompletion?.inline?!1:(e.preventDefault(),az(t),r(),!0);let a=i===`enter`||e.metaKey||e.ctrlKey;return e.key!==`Enter`||e.shiftKey||!a||(t.slashMenuMode!==`freeform-args`||!t.slashMenuCompletion?.inline)&&!mz(t,n)||!t.slashMenuCommand||!Fa(t.slashMenuCommand)?!1:(e.preventDefault(),pz(t,n,r),!0)}function gz(e,t,n,r){if(!t.slashMenuOpen)return!1;let i=t.slashMenuMode===`args`?t.slashMenuArgItems:t.slashMenuItems;return Ru(e,{count:i.length,index:t.slashMenuIndex,consumeEmpty:!1,close:()=>{az(t),r()},move:e=>(t.slashMenuIndex=e,r(),vz(t,n.paneId)),select:e=>{if(t.slashMenuMode===`args`){let i=t.slashMenuArgItems[t.slashMenuIndex];i!==void 0&&fz(i,t,n,r,e===`Enter`)}else{let i=t.slashMenuItems[t.slashMenuIndex];i&&dz(i,t,n,r,e===`Tab`)}}})}function _z(e){return e.slashMenuOpen&&(e.slashMenuMode===`args`?!!(e.slashMenuCommand&&e.slashMenuArgItems.length>0):e.slashMenuItems.length>0)}function vz(e,t){if(!_z(e))return null;if(e.slashMenuMode===`args`){let n=e.slashMenuCommand?.name,r=e.slashMenuArgItems[e.slashMenuIndex];return n&&r?jR(t,n,r):null}let n=e.slashMenuItems[e.slashMenuIndex];return n?AR(t,n):null}function yz(e){if(!_z(e))return``;if(e.slashMenuMode===`args`){let t=e.slashMenuCommand?.name,n=e.slashMenuArgItems[e.slashMenuIndex];return t&&n?`/${t} ${n}`:``}return NR(e.slashMenuItems[e.slashMenuIndex])}function bz(e,t,n,r){let i=xO(t.paneId,`slash-menu-listbox`);if(!e.slashMenuOpen)return B;if(e.slashMenuMode===`args`&&e.slashMenuCommand&&e.slashMenuArgItems.length>0)return fi(`args`,Tu({id:i,label:I(`chat.commands.arguments`),content:V` <div class="slash-menu-group">
          <div class="slash-menu-group__label">
            /${e.slashMenuCommand.name} ${go(e.slashMenuCommand)}
          </div>
          ${e.slashMenuArgItems.map((n,i)=>sd({id:jR(t.paneId,e.slashMenuCommand?.name??``,n),active:i===e.slashMenuIndex,preserveFocus:!1,select:()=>fz(n,e,t,r,!0),hover:()=>{e.slashMenuIndex=i,r()},icon:e.slashMenuCommand?.icon?z[e.slashMenuCommand.icon]:z.terminal,name:n,description:V`/${e.slashMenuCommand?.name} ${n}`}))}
        </div>`}));if(e.slashMenuItems.length===0)return B;let a=n.slice(1),o=(n,i)=>sd({id:AR(t.paneId,n),active:i===e.slashMenuIndex,select:()=>dz(n,e,t,r),hover:()=>{e.slashMenuIndex=i,r()},icon:n.source===`skill`?z.pencilSparkles:n.icon?z[n.icon]:z.terminal,name:V`/${MR(n.name,a)}${n.args?V`<span class="slash-menu-args"> ${n.args}</span>`:B}`,description:go(n)}),s=e.slashMenuItems.filter(e=>e.source!==`skill`),c=e.slashMenuItems.filter(e=>e.source===`skill`),l=[];for(let[e,t]of s.entries()){let r=t.category??`session`,i=n===`/`?l.find(([e])=>e===r):l.at(-1);i?.[0]===r?i[1].push({command:t,index:e}):l.push([r,[{command:t,index:e}]])}return fi(`command`,Tu({id:i,label:I(`chat.commands.menu`),content:V`
        ${l.map(([e,t])=>V`<div class="slash-menu-group">
            <div class="slash-menu-group__label">${Ro(e)}</div>
            ${t.map(({command:e,index:t})=>o(e,t))}
          </div>`)}
        ${c.length>0?V`<div class="slash-menu-group slash-menu-group--skills">
                <div class="slash-menu-group__label">${I(`chat.skills.label`)}</div>
                ${c.map((e,t)=>o(e,s.length+t))}
              </div>`:B}
      `}))}function xz(){return(xz=e((()=>{H(),ai(),cd(),L(),O(),la(),EO(),rz(),PR()})))()}function Sz(e){return e instanceof Element?e.closest(`.chat-controls__model-menu`):null}function Cz(e){return[...e.querySelectorAll(`[data-chat-model-option]`)].filter(e=>!e.hidden&&wz(e)).toSorted((e,t)=>Number(e.dataset.chatModelRank??e.dataset.chatModelIndex??0)-Number(t.dataset.chatModelRank??t.dataset.chatModelIndex??0))}function wz(e){return!e.disabled&&e.getAttribute(`aria-disabled`)!==`true`}function Tz(e){let t=e.closest(`.chat-controls__model-picker`),n=e.querySelector(`[data-chat-model-search]`),r=[...e.querySelectorAll(`[data-chat-model-list]`)];if(!t||!n||r.length===0)return;let i=t.dataset.chatModelPickerId??`chat-model-picker-${Jl()}`;t.dataset.chatModelPickerId=i,r.forEach((e,t)=>{e.id=`${i}-listbox-${t}`,e.closest(`section`)?.querySelector(e.hasAttribute(`data-chat-model-more`)?`[data-chat-model-more-toggle]`:`[data-chat-model-group-toggle]`)?.setAttribute(`aria-controls`,e.id)}),e.querySelectorAll(`[data-chat-model-option]`).forEach((e,t)=>{e.id=`${i}-option-${t}`}),n.setAttribute(`aria-controls`,r.map(e=>e.id).join(` `)),n.setAttribute(`aria-expanded`,t.open?`true`:`false`)}function Ez(e,t){e.querySelectorAll(`[data-chat-model-option]`).forEach(e=>{e.toggleAttribute(`data-chat-model-highlighted`,e===t)});let n=e.querySelector(`[data-chat-model-search]`);t?.id?n?.setAttribute(`aria-activedescendant`,t.id):n?.removeAttribute(`aria-activedescendant`)}function Dz(e){let t=e.currentTarget,n=Sz(t);t instanceof HTMLButtonElement&&n&&Ez(n,t)}function Oz(e,t){e.querySelectorAll(`[data-chat-model-shortcut]`).forEach(e=>{e.hidden=!0,e.removeAttribute(`data-shortcut`),e.removeAttribute(`data-chat-model-shortcut-number`)}),t.slice(0,9).forEach((e,t)=>{let n=e.querySelector(`[data-chat-model-shortcut]`);n&&(n.hidden=!1,n.setAttribute(`data-shortcut`,String(t+1)),n.setAttribute(`data-chat-model-shortcut-number`,String(t+1)))})}function kz(e,t){let n=e.dataset.chatModelName??``,r=e.dataset.chatModelKeywords??``,i=e.dataset.chatModelProviderLabel??``;return n.startsWith(t)?0:n.includes(t)?1:r.includes(t)?2:i.startsWith(t)?3:i.includes(t)?4:(e.dataset.chatModelTarget??e.dataset.chatModelOption??``).toLocaleLowerCase().includes(t)?5:null}function Az(e,t){return e?.querySelector(t)?.getAttribute(`aria-expanded`)===`false`}function jz(e,t=!1){let n=Sz(e);if(!n)return;Tz(n);let r=e.value.trim().toLocaleLowerCase();n.toggleAttribute(`data-chat-model-filtering`,!!r),n.querySelectorAll(`[data-chat-model-more-toggle]`).forEach(e=>{e.hidden=!!r||e.getAttribute(`aria-expanded`)===`true`||Az(e.closest(`section`),`[data-chat-model-group-toggle]`)});let i=[...n.querySelectorAll(`[data-chat-model-option]`)],a=[];i.forEach((e,t)=>{let n=e.closest(`section`),i=Az(n,`[data-chat-model-group-toggle]`)||e.closest(`[data-chat-model-more]`)!==null&&Az(n,`[data-chat-model-more-toggle]`),o=r?kz(e,r):i?null:0;e.hidden=o===null,e.style.removeProperty(`--chat-model-rank`),delete e.dataset.chatModelRank,o!==null&&a.push({row:e,score:o,index:t})});let o=[];a.toSorted((e,t)=>e.score-t.score||e.index-t.index).forEach(({row:e},t)=>{e.dataset.chatModelRank=String(t),e.style.setProperty(`--chat-model-rank`,String(t)),wz(e)&&o.push(e)}),Oz(n,o);let s=o.find(e=>e.getAttribute(`aria-selected`)===`true`);Ez(n,(t?o.find(e=>e.hasAttribute(`data-chat-model-highlighted`)):void 0)??(r?o[0]:s??o[0]));let c=n.querySelector(`[data-chat-model-search-empty]`);c&&(c.hidden=!r||a.length>0)}function Mz(e){let t=e.querySelector(`[data-chat-model-search]`);t&&(t.value=``,jz(t))}function Nz(e){e.stopPropagation();let t=e.currentTarget,n=t.ownerDocument.activeElement===t;t.setAttribute(`aria-expanded`,String(t.getAttribute(`aria-expanded`)!==`true`));let r=Sz(t)?.querySelector(`[data-chat-model-search]`);r&&jz(r,!0),n&&t.hidden&&(t.closest(`section`)?.querySelector(`[data-chat-model-more] [data-chat-model-option]:not([hidden]):not(:disabled)`)??r)?.focus({preventScroll:!0})}function Pz(e){if(e.key!==`Escape`)return!1;let t=e.composedPath().find(e=>e instanceof HTMLInputElement&&e.matches(`[data-chat-model-search]`));return t?.value?(t.value=``,jz(t),e.preventDefault(),e.stopPropagation(),!0):!1}function Fz(e){if(e.isComposing||e.keyCode===229||e.key!==`Enter`&&e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let t=e.currentTarget,n=Sz(t);if(!n)return;let r=Cz(n);if(r.length===0)return;if(e.key===`Enter`){let t=r.find(e=>e.hasAttribute(`data-chat-model-highlighted`));t&&(e.preventDefault(),t.click());return}e.preventDefault();let i=r.findIndex(e=>e.hasAttribute(`data-chat-model-highlighted`)),a=e.key===`ArrowDown`?1:r.length-1,o=i<0?0:(i+a)%r.length;Ez(n,r[o]),r[o]?.scrollIntoView?.({block:`nearest`})}function Iz(e){let t=e.currentTarget;if(!t.open||e.target instanceof HTMLInputElement||e.composedPath().some(e=>e instanceof HTMLElement&&e.localName===`wa-dropdown`)||!/^[1-9]$/u.test(e.key))return;let n=Cz(t)[Number(e.key)-1];e.preventDefault(),n?.click()}function Lz(e){if(!(e instanceof HTMLDetailsElement)||!e.open)return;let t=e.ownerDocument.activeElement,n=t?.closest(`[data-chat-model-refresh]`)&&e.contains(t)?t:void 0;queueMicrotask(()=>{let t=e.querySelector(`[data-chat-model-search]`);t&&jz(t,!0),n&&!n.isConnected&&e.isConnected&&e.open&&e.ownerDocument.activeElement===e.ownerDocument.body&&(t&&!t.disabled?t:e.querySelector(`summary`))?.focus({preventScroll:!0})})}function Rz(){return(Rz=e((()=>{fl()})))()}function zz(e){return e instanceof HTMLDetailsElement?e.open:`open`in e&&e.open===!0||e.hasAttribute(`open`)}function Bz(e){return Array.from(e.querySelectorAll(`.agent-chat__input details, .agent-chat__input wa-dropdown`)).filter(zz)}function Vz(e){eB.delete(e),e.removeAttribute(rB),e instanceof HTMLDetailsElement?e.open=!1:(`open`in e&&(e.open=!1),e.removeAttribute(`open`))}function Hz(e){return e instanceof HTMLDetailsElement?e.querySelector(`summary`):e.querySelector(`[slot=trigger]`)}function Uz(e){return e.composedPath().find(e=>e instanceof HTMLElement&&e.localName===`wa-dropdown`)}function Wz(){this.removeEventListener(`blur`,Wz),this.removeEventListener(`keydown`,Wz),this.removeAttribute(nB)}function Gz(e){let t=tB.get(e)??{owners:new Set,dispose:Kz(e)};tB.set(e,t);let n=Symbol(`composer picker`);return t.owners.add(n),()=>{!t.owners.delete(n)||t.owners.size>0||(tB.delete(e),t.dispose())}}function Kz(e){let t=new AbortController,n={capture:!0,signal:t.signal};function r(t){let n=t.composedPath();for(let t of Bz(e))n.includes(t)||Vz(t);for(let t of e.querySelectorAll(`.agent-chat__input > :is(.slash-menu, .skill-menu, .emoji-menu-popup)`))n.includes(t)||t.closest(`.agent-chat__input`)?.dispatchEvent(new CustomEvent(iB))}function i(t){if(t.isComposing||t.keyCode===229||t.defaultPrevented||rr(t,e)||t.key!==`Escape`||e.querySelector(`.shell-nav[aria-modal='true']`)||Pz(t))return;let n=Bz(e),r=e.querySelector(`.agent-chat__input > :is(.slash-menu, .skill-menu, .emoji-menu-popup)`)?.closest(`.agent-chat__input`);if(n.length===0&&!r)return;t.preventDefault(),t.stopPropagation();let i=n.filter(e=>!n.some(t=>t!==e&&e.contains(t))),a=i.at(-1);i.forEach(Vz),r?.dispatchEvent(new CustomEvent(iB)),r?.querySelector(`.agent-chat__composer-combobox > textarea`)?.focus({preventScroll:!0}),a&&Hz(a)?.focus({preventScroll:!0})}return e.addEventListener(`pointerdown`,r,n),e.defaultView?.addEventListener(`keydown`,i,n),e.addEventListener(`keydown`,e=>{let t=Uz(e);t&&(eB.delete(t),t.removeAttribute(rB))},n),()=>t.abort()}function qz(e){let t=e.closest(`.agent-chat__input`);if(t)for(let n of Bz(t))n!==e&&!n.contains(e)&&Vz(n)}function Jz(e){let t=e.currentTarget;t instanceof HTMLDetailsElement&&t.open&&qz(t)}function Yz(e){let t=e.target;t instanceof HTMLElement&&t.localName===`wa-dropdown`&&(eB.has(t)||t.removeAttribute(rB),qz(t))}function Xz(e){let t=Uz(e);t&&(eB.add(t),t.setAttribute(rB,``))}function Zz(e){let t=e.target instanceof HTMLElement&&e.target.localName===`wa-dropdown`?e.target:e.currentTarget;if(t instanceof HTMLElement&&t.localName===`wa-dropdown`&&eB.delete(t)){let e=Hz(t);if(!e)return;e.setAttribute(nB,``),e.addEventListener(`blur`,Wz,{once:!0}),e.addEventListener(`keydown`,Wz,{once:!0}),e.focus({preventScroll:!0})}}function Qz(e){let t=typeof window.matchMedia==`function`&&window.matchMedia($z).matches?e.closest(`.agent-chat__input`)??void 0:void 0;Bd(e,`top`,{alignment:`end`,anchor:t})}var $z,eB,tB,nB,rB,iB;function aB(){return(aB=e((()=>{Fd(),Qn(),Rz(),$z=`(max-width: 640px), (max-width: 932px) and (max-height: 500px) and (orientation: landscape)`,eB=new WeakSet,tB=new WeakMap,nB=`data-chat-pointer-restored-focus`,rB=`data-chat-pointer-opened-picker`,iB=`openclaw-composer-dismiss-invocations`})))()}function oB(e){let t=new Uint8Array(e.length*2),n=new DataView(t.buffer);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n.setInt16(t*2,r<0?r*32768:r*32767,!0)}return t}function sB(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=1){let r=Math.max(-1,Math.min(1,e[n]??0)),i=Math.round(r<0?r*32768:r*32767),a=0,o=i;o<0&&(a=128,o=-o),o=Math.min(o,32635)+132;let s=7,c=16384;for(;(o&c)===0&&s>0;)--s,c>>=1;let l=o>>s+3&15;t[n]=~(a|s<<4|l)&255}return t}function cB(e){let t=0,n=0;for(let r of e){let e=Number.isFinite(r)?r:0;t=Math.max(t,Math.abs(e)),n+=e*e}return{peak:t,rms:e.length>0?Math.sqrt(n/e.length):0}}function lB(e){let t=e.endsWith(`==`)?2:+!!e.endsWith(`=`);return Math.max(0,Math.floor(e.length*3/4)-t)}var uB,dB,fB,pB,mB;function hB(){return(hB=e((()=>{uB=class{constructor(){this.source=null,this.processor=null,this.sink=null}start(e,t,n){this.stop(),this.source=t.createMediaStreamSource(e),this.processor=t.createScriptProcessor(4096,1,1),this.sink=t.createGain(),this.sink.gain.value=0,this.processor.onaudioprocess=e=>n(e.inputBuffer.getChannelData(0)),this.source.connect(this.processor),this.processor.connect(this.sink),this.sink.connect(t.destination)}stop(){this.processor&&=(this.processor.onaudioprocess=null,this.processor.disconnect(),null),this.sink?.disconnect(),this.sink=null,this.source?.disconnect(),this.source=null}},dB=class{constructor(e){this.onLevel=e,this.context=null,this.source=null,this.analyser=null,this.timer=null,this.ownsContext=!1,this.level=0,this.noiseFloor=.01,this.samples=new Float32Array(512),this.lastLevel=-1}start(e,t){this.stop(!1);try{let n=t??new AudioContext;this.context=n,this.ownsContext=!t;let r=n.createMediaStreamSource(e);this.source=r;let i=n.createAnalyser();this.analyser=i,i.fftSize=this.samples.length,i.smoothingTimeConstant=0,r.connect(i),this.timer=globalThis.setInterval(()=>this.publishCurrentLevel(),100),this.publishCurrentLevel()}catch{this.stop()}}stop(e=!0){this.timer!==null&&(globalThis.clearInterval(this.timer),this.timer=null),this.source?.disconnect(),this.source=null,this.analyser?.disconnect(),this.analyser=null,this.ownsContext&&this.context?.close(),this.context=null,this.ownsContext=!1,this.level=0,this.noiseFloor=.01,this.lastLevel=-1,e&&this.onLevel(0)}publishCurrentLevel(){if(!this.analyser)return;this.samples.fill(0),this.analyser.getFloatTimeDomainData(this.samples);let e=cB(this.samples),t=.65*e.rms+.35*e.peak;t<=Math.max(.02,this.noiseFloor*2)&&(this.noiseFloor=.95*this.noiseFloor+.05*t);let n=Math.max(0,t-this.noiseFloor*1.5),r=Math.min(1,Math.sqrt(n/.18)),i=r>this.level?.65:.18;this.level=i*r+(1-i)*this.level,this.level<.01&&(this.level=0);let a=Math.round(this.level*100)/100;a!==this.lastLevel&&(this.lastLevel=a,this.onLevel(a))}},fB=60,pB=4096,mB=class{constructor(){this.playhead=0,this.sources=new Set}get queuedUntil(){return this.playhead}get isPlaying(){return this.sources.size>0}play(e,t,n){if(!t)return`ignored`;let r=Math.max(t.currentTime,this.playhead),i=Math.max(0,r-t.currentTime),a=fB-i,o=lB(e),s=Math.floor(o/2);if(this.sources.size>=pB||a<=0||s/n>a)return`overflow`;let c;try{let t=d(e),n=new DataView(t.buffer,t.byteOffset,t.byteLength);c=new Float32Array(Math.floor(t.byteLength/2));for(let e=0;e<c.length;e+=1)c[e]=n.getInt16(e*2,!0)/32768}catch{return`ignored`}if(c.length===0)return`ignored`;let l=r+c.length/n;if(l-t.currentTime>fB)return`overflow`;let u=t.createBuffer(1,c.length,n);u.getChannelData(0).set(c);let f=t.createBufferSource();return this.sources.add(f),f.addEventListener(`ended`,()=>this.sources.delete(f)),f.buffer=u,f.connect(t.destination),f.start(r),this.playhead=l,`queued`}stop(e){let t=[...this.sources];this.sources.clear(),this.playhead=e?.currentTime??0;for(let e of t)try{e.stop()}catch{}}}})))()}function gB(e){return e.event!==`talk.event`||!e.payload||typeof e.payload!=`object`?null:e.payload}function _B(e){return e instanceof DOMException?NL(e):F(e)}function vB(e){return e instanceof DOMException&&e.name===`AbortError`}function yB(e,t,n,r){let i=t.trim();if(!i)return{value:e,caret:r};let a=Math.max(0,Math.min(n,e.length)),o=Math.max(a,Math.min(r,e.length)),s=e.slice(0,a),c=e.slice(o),l=`${s&&!/\s$/.test(s)&&!/^\s|^[,.;:!?)]/.test(i)?` `:``}${i}${c&&!/^\s|^[,.;:!?)]/.test(c)&&!/[\s([{]$/.test(i)?` `:``}`;return{value:`${s}${l}${c}`,caret:s.length+l.length}}var bB,xB,SB,CB,wB,TB,EB,DB;function OB(){return(OB=e((()=>{xr(),O(),P(),hB(),KL(),JL(),bB=150,xB=350,SB=1e4,CB=`g711_ulaw`,wB=8e3,TB=wB*10,EB=class{constructor(e,t){this.client=e,this.callbacks=t,this.input=new GL(e=>this.reportFailure(e)),this.context=null,this.inputPump=new uB,this.inputMeter=null,this.unsubscribe=null,this.sessionId=null,this.transcriptionSessionId=null,this.finalTranscripts=[],this.currentPartial=``,this.startPromise=null,this.pendingAudio=[],this.pendingAudioSamples=0,this.appendChain=Promise.resolve(),this.closePromise=null,this.stopped=!1,this.discarded=!1,this.failed=!1,this.gatewayDisconnected=!1,this.settleLateFinalDrain=null}start(){return this.startPromise??=this.startInternal(),this.startPromise}async startInternal(){let e=hr().realtimeTalkInputDeviceId?.trim()||void 0,t=await this.input.open(e);if(this.stopped)return;this.unsubscribe=this.client.addEventListener(e=>this.handleEvent(e));try{this.context=new AudioContext({sampleRate:wB})}catch{throw Error(I(`chat.composer.dictationBrowserAudioUnsupported`))}if(this.context.sampleRate!==wB)throw Error(I(`chat.composer.dictationBrowserAudioUnsupported`));this.inputMeter=new dB(this.callbacks.onLevel),this.inputMeter.start(t,this.context),this.inputPump.start(t,this.context,e=>this.appendAudio(e)),this.callbacks.onReady();let n=await this.client.request(`talk.session.create`,{mode:`transcription`,transport:`gateway-relay`,brain:`none`});if(this.sessionId=n.sessionId,this.transcriptionSessionId=n.transcriptionSessionId??n.sessionId,n.audio?.inputEncoding!==CB||n.audio.inputSampleRateHz!==wB)throw await this.closeRemote(),Error(I(`chat.composer.dictationAudioUnsupported`));this.discarded?(this.pendingAudio.length=0,this.pendingAudioSamples=0):this.flushPendingAudio(),this.stopped&&(await this.appendChain,await this.closeRemote())}transcriptSnapshot(){return[...this.finalTranscripts,this.currentPartial].filter(Boolean).join(` `).trim()}async finish(e=!1){let t=e&&!this.gatewayDisconnected?this.waitForLateFinal():null,n=this.stopAndClose(!0);return t?(n.catch(()=>void 0),t):n.then(()=>this.transcriptSnapshot())}async cancel(){this.discarded=!0,await this.stopAndClose(!1)}async stopAndClose(e){await this.stopCapture(),await this.startPromise?.catch(t=>{e&&!vB(t)&&this.reportFailure(_B(t))}),await this.appendChain,await this.closeRemote()}markGatewayDisconnected(){return this.gatewayDisconnected=!0,this.settleLateFinalDrain?.(!1),this.hasTranscript()}cancelPendingFinal(){this.settleLateFinalDrain?.(!0)}appendAudio(e){if(!this.stopped){if(!this.sessionId){let t=TB-this.pendingAudioSamples;if(t<=0)return;let n=e.slice(0,t);this.pendingAudio.push(n),this.pendingAudioSamples+=n.length;return}this.queueAudio(e)}}flushPendingAudio(){let e=this.pendingAudio.splice(0);this.pendingAudioSamples=0;for(let t of e)this.queueAudio(t)}queueAudio(e){if(!this.sessionId)return;let t=this.sessionId,n=bn(sB(e));this.appendChain=this.appendChain.then(async()=>{await this.client.request(`talk.session.appendAudio`,{sessionId:t,audioBase64:n})}).catch(e=>{this.reportFailure(_B(e))})}handleEvent(e){let t=gB(e);if(t&&t.transcriptionSessionId===this.transcriptionSessionId&&!this.stopped){if((t.type===`transcript`||t.type===`partial`)&&typeof t.text==`string`){let e=t.text.trim();t.type===`partial`||t.final!==!0?this.currentPartial=e:e&&(this.finalTranscripts.push(e),this.currentPartial=``),this.callbacks.onTranscriptChange();return}if(t.type===`error`){this.reportFailure(ft(typeof t.message==`string`?t.message:void 0,I(`chat.composer.dictationFailed`)));return}t.type===`close`&&t.reason===`error`&&this.reportFailure(I(`chat.composer.dictationDisconnected`))}}reportFailure(e){this.failed||(this.failed=!0,this.callbacks.onError(e,this.hasTranscript()))}hasTranscript(){return this.finalTranscripts.length>0||!!this.currentPartial}async stopCapture(){this.stopped||(this.stopped=!0,this.input.stop(),this.inputPump.stop(),this.unsubscribe?.(),this.unsubscribe=null,this.inputMeter?.stop(),this.inputMeter=null,await this.context?.close(),this.context=null)}closeRemote(){return this.sessionId?(this.closePromise??=this.client.request(`talk.session.close`,{sessionId:this.sessionId}).then(()=>void 0).catch(()=>void 0),this.closePromise):Promise.resolve()}waitForLateFinal(){return new Promise(e=>{let t=[],n=()=>{},r=t=>{globalThis.clearTimeout(a),n(),this.settleLateFinalDrain=null,e(t)},i=()=>t.join(` `).trim(),a=globalThis.setTimeout(()=>r(i()),SB);n=this.client.addEventListener(e=>{let n=gB(e);n&&n.transcriptionSessionId===this.transcriptionSessionId&&(n.type===`transcript`&&n.final===!0&&typeof n.text==`string`&&n.text.trim()?t.push(n.text.trim()):(n.type===`error`||n.type===`close`)&&r(i()))}),this.settleLateFinalDrain=e=>r(e?``:i())})}},DB=class{constructor(e){this.inputLevel=new qL,this.phase=`idle`,this.pointerId=null,this.pointerTarget=null,this.pointerBounds=null,this.holdTimer=null,this.session=null,this.suppressedPointerId=null,this.suppressClickTimer=null,this.pendingCommitSession=null,this.disposed=!1,this.handleDocumentPointerMove=e=>{if(e.pointerId!==this.pointerId||!this.pointerBounds)return;let t=this.pointerBounds;(e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom)&&this.stop({commit:!1})},this.handleDocumentPointerUp=e=>{if(e.pointerId===this.pointerId){if(this.phase===`pressing`||this.phase===`holding`){let e=this.phase===`pressing`;this.clearPointerGesture(),this.setPhase(`idle`),e&&this.options.onTap?.(),this.expireClickSuppression();return}this.stop({commit:!0})}},this.handleDocumentPointerCancel=e=>{e.pointerId===this.pointerId&&this.stop({commit:!1})},this.handleSuppressedPointerRelease=e=>{e.pointerId===this.suppressedPointerId&&this.expireClickSuppression()},this.handleDocumentKeyDown=e=>{e.key===`Escape`&&this.phase!==`idle`&&(e.preventDefault(),e.stopPropagation(),this.stop({commit:!1}))},this.handleVisibilityChange=()=>{document.visibilityState===`hidden`&&this.handleWindowBlur()},this.handleWindowBlur=()=>{this.clearClickSuppression(),this.stop({commit:!1})},this.options=e}get active(){return this.phase===`connecting`||this.phase===`recording`||this.phase===`stopping`}get connecting(){return this.phase===`connecting`}get arming(){return this.phase===`holding`}get finalizing(){return this.phase===`stopping`}get locksComposer(){return this.phase!==`idle`}get transcript(){return this.session?.transcriptSnapshot()??``}finishActive(){return this.stop({commit:!0})}startDirect(){return this.phase!==`idle`||!this.canHold()?!1:(this.setPhase(`holding`),this.start(),!0)}update(e){if(this.options=e,e.connected||this.pendingCommitSession?.markGatewayDisconnected(),this.phase!==`stopping`&&(this.phase!==`idle`&&!this.canHold()||this.active&&!e.connected)){let t=this.active&&!e.connected,n=t?this.session?.markGatewayDisconnected()??!1:!1;this.stop({commit:t}),t&&e.onError(I(`chat.composer.dictationDisconnected`),{kind:`interrupted`,preservesText:n})}}handlePointerDown(e){return e.button!==0||this.phase!==`idle`||!this.canHold()?!1:(e.preventDefault(),this.pointerId=e.pointerId,this.pointerTarget=e.currentTarget instanceof HTMLElement?e.currentTarget:null,this.pointerBounds=this.pointerTarget?.getBoundingClientRect()??null,this.pointerTarget?.setPointerCapture?.(e.pointerId),this.pointerTarget?.addEventListener(`lostpointercapture`,this.handleDocumentPointerCancel),this.suppressedPointerId=e.pointerId,this.setPhase(`pressing`),this.holdTimer=globalThis.setTimeout(()=>{this.phase===`pressing`&&(this.setPhase(`holding`),this.holdTimer=globalThis.setTimeout(()=>void this.start(),xB))},bB),document.addEventListener(`pointermove`,this.handleDocumentPointerMove),document.addEventListener(`pointerup`,this.handleDocumentPointerUp),document.addEventListener(`pointercancel`,this.handleDocumentPointerCancel),document.addEventListener(`pointerup`,this.handleSuppressedPointerRelease),document.addEventListener(`pointercancel`,this.handleSuppressedPointerRelease),!0)}handleClick(e){if(this.suppressedPointerId!==null){this.clearClickSuppression(),e.preventDefault();return}if(this.active){e.preventDefault(),this.finishActive();return}if(this.phase!==`idle`){e.preventDefault();return}this.options.onTap?.()}handleContextMenu(e){this.phase!==`idle`&&e.preventDefault()}dispose(){this.disposed=!0,this.retirePendingCommit(),this.clearClickSuppression(),this.stop({commit:!1})}canHold(){return this.options.enabled&&this.options.connected&&!this.options.realtimeTalkActive&&this.options.client!==null}async start(){let e=this.options.client;if(this.phase!==`holding`||!e||!this.canHold()){await this.stop({commit:!1});return}if(this.options.dictationAvailable===!1){this.clearPointerGesture(),this.setPhase(`idle`),this.options.onDictationUnavailable?.();return}this.clearPointerGesture(),this.setPhase(`connecting`);let t=new EB(e,{onError:(e,n)=>{if(this.session===t)try{this.options.onError(e,{kind:`interrupted`,preservesText:n})}finally{this.stop({commit:!0})}},onLevel:e=>this.inputLevel.set(e),onTranscriptChange:()=>this.options.onStateChange(),onReady:()=>{this.session===t&&this.phase===`connecting`&&this.setPhase(`recording`)}});this.retirePendingCommit(),this.session=t;try{await t.start()}catch(e){if(this.session!==t||this.disposed||this.finalizing)return;this.options.onError(_B(e),{kind:`start`,preservesText:!1}),await this.stop({commit:!1})}}stop(e){if(this.phase===`idle`||this.phase===`stopping`)return Promise.resolve(!1);let t=this.active;this.clearPointerGesture();let n=this.session;if(!n)return this.reset(),Promise.resolve(!1);this.setPhase(`stopping`);let r=e.commit?n.transcriptSnapshot():``,i=!!(e.commit&&r&&t&&!this.disposed);return this.session=null,this.reset(),i&&this.options.onCommit(r),e.commit?i?(n.finish().catch(()=>void 0),Promise.resolve(!0)):(this.pendingCommitSession=n,n.finish(!0).then(e=>{let r=this.pendingCommitSession===n;return r&&(this.pendingCommitSession=null),!r||!e||!t||this.disposed?!1:(this.options.onCommit(e,!0),!0)}).catch(()=>(this.pendingCommitSession===n&&(this.pendingCommitSession=null),!1))):(n.cancel().catch(()=>void 0),Promise.resolve(!1))}reset(){this.inputLevel.set(0),this.setPhase(`idle`)}retirePendingCommit(){this.pendingCommitSession?.cancelPendingFinal(),this.pendingCommitSession=null}clearPointerGesture(){if(this.holdTimer!==null&&(globalThis.clearTimeout(this.holdTimer),this.holdTimer=null),this.pointerId!==null){this.pointerTarget?.removeEventListener(`lostpointercapture`,this.handleDocumentPointerCancel);try{this.pointerTarget?.releasePointerCapture?.(this.pointerId)}catch{}}this.pointerId=null,this.pointerTarget=null,this.pointerBounds=null,document.removeEventListener(`pointermove`,this.handleDocumentPointerMove),document.removeEventListener(`pointerup`,this.handleDocumentPointerUp),document.removeEventListener(`pointercancel`,this.handleDocumentPointerCancel)}expireClickSuppression(){this.suppressedPointerId!==null&&this.suppressClickTimer===null&&(this.suppressClickTimer=globalThis.setTimeout(()=>this.clearClickSuppression(),0))}clearClickSuppression(){this.suppressClickTimer!==null&&(globalThis.clearTimeout(this.suppressClickTimer),this.suppressClickTimer=null),document.removeEventListener(`pointerup`,this.handleSuppressedPointerRelease),document.removeEventListener(`pointercancel`,this.handleSuppressedPointerRelease),this.suppressedPointerId=null}setPhase(e){this.phase!==e&&(this.phase===`idle`?(document.addEventListener(`keydown`,this.handleDocumentKeyDown),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),window.addEventListener(`blur`,this.handleWindowBlur)):e===`idle`&&(document.removeEventListener(`keydown`,this.handleDocumentKeyDown),document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),window.removeEventListener(`blur`,this.handleWindowBlur)),this.phase=e,this.options.onStateChange())}}})))()}var kB;function AB(){return(AB=e((()=>{KL(),kB=class{constructor(e){this.requestUpdate=e,this.devices=[],this.loading=!1,this.open=!1,this.issue=null,this.deviceWatch=null,this.discoveryRequest=0,this.catalogClient=null,this.catalogConnected=!1,this.catalogRequest=0,this.realtimeStatus=`unknown`,this.dictationStatus=`unknown`,this.refreshOnFocus=()=>this.loadCatalog(),this.handleOpen=()=>{this.open||(this.open=!0,this.deviceWatch??=ML(this.discover),this.discover(),this.loadCatalog())},this.handleClose=()=>{this.open&&(this.release(),this.open=!1,this.requestUpdate())},this.discover=()=>{this.loading=!0,this.issue=null;let e=++this.discoveryRequest;this.requestUpdate(),FL(()=>this.open&&e===this.discoveryRequest).then(t=>{e===this.discoveryRequest&&(this.devices=t.devices,this.issue=t.issue)}).catch(()=>{e===this.discoveryRequest&&(this.devices=[],this.issue=`failed`)}).finally(()=>{e===this.discoveryRequest&&(this.loading=!1,this.requestUpdate())})}}syncCatalog(e,t){if(e!==this.catalogClient||t!==this.catalogConnected){if(window.removeEventListener(`focus`,this.refreshOnFocus),this.catalogClient=e,this.catalogConnected=t,this.catalogRequest++,!e||!t){this.realtimeStatus=`unknown`,this.dictationStatus=`unknown`;return}window.addEventListener(`focus`,this.refreshOnFocus),this.loadCatalog(!1)}}release(){this.deviceWatch?.(),this.deviceWatch=null}dispose(){this.syncCatalog(null,!1),this.release(),this.discoveryRequest++,this.open=!1,this.loading=!1}setCatalogChecking(e){for(let t of[`realtimeStatus`,`dictationStatus`])this[t]===(e?`unknown`:`checking`)&&(this[t]=e?`checking`:`unknown`)}loadCatalog(e=!0){let t=this.catalogClient;if(!t||!this.catalogConnected)return;let n=++this.catalogRequest;this.setCatalogChecking(!0),e&&this.requestUpdate(),t.request(`talk.catalog`,{}).then(e=>{n===this.catalogRequest&&(this.realtimeStatus=e.realtime?.ready===!0?`ready`:`unavailable`,this.dictationStatus=e.transcription?.ready===!0?`ready`:`unavailable`)}).catch(()=>{n===this.catalogRequest&&this.setCatalogChecking(!1)}).finally(()=>{n===this.catalogRequest&&this.requestUpdate()})}}})))()}function jB(e,t){return t?.trim()||I(e===`thinking`?`chat.voice.asking`:e===`connecting`?`chat.voice.connecting`:`chat.voice.listening`)}function MB(e){return V`
    <openclaw-microphone-activity
      class="agent-chat__voice-activity"
      data-status=${e.status===`connecting`||e.status===`thinking`?e.status:`listening`}
      data-source="microphone"
      aria-hidden="true"
      .signal=${e.inputLevel??IB}
    >
    </openclaw-microphone-activity>
  `}function NB(e){return e.status===`connecting`?V`<div
      class="callout agent-chat__talk-status"
      role="status"
      aria-live="polite"
      aria-atomic="true"
    >
      ${jB(e.status,e.detail)}
    </div>`:e.status!==`error`||!e.detail?B:V`
    <div class="agent-chat__composer-errors agent-chat__composer-errors--standalone">
      <div class="agent-chat__composer-error agent-chat__talk-status" role="alert">
        <span class="agent-chat__composer-error-icon" aria-hidden="true"
          >${z.alertTriangle}</span
        >
        <div class="callout__content">
          <div class="agent-chat__talk-status-text">${e.detail}</div>
          ${e.onUseSystemDefaultMicrophone?V`<button
                  class="btn btn--sm"
                  type="button"
                  @click=${e.onUseSystemDefaultMicrophone}
                >
                  ${I(`chat.composer.useSystemDefaultMicrophoneForCall`)}
                </button>`:B}
        </div>
        ${e.onDismissError?V`
                <button
                  class="callout__dismiss"
                  type="button"
                  @click=${e.onDismissError}
                  aria-label=${I(`chat.composer.dismissVoiceInputError`)}
                >
                  ${z.x}
                </button>
              `:B}
      </div>
    </div>
  `}var PB,FB,IB,LB;function RB(){return(RB=e((()=>{H(),L(),Qn(),O(),JL(),PB=[.38,.62,.84,1,.84,.62,.38],FB=`openclaw-microphone-activity`,IB=new qL,LB=class extends HTMLElement{constructor(...e){super(...e),this.unsubscribe=null}set signal(e){e!==this.levelSignal&&(this.unsubscribe?.(),this.unsubscribe=null,this.levelSignal=e,this.ensureBars(),this.renderLevel(e?.value??0),this.isConnected&&this.subscribe())}connectedCallback(){this.ensureBars(),this.subscribe()}disconnectedCallback(){this.unsubscribe?.(),this.unsubscribe=null}ensureBars(){if(!this.firstElementChild)for(let[e]of PB.entries()){let t=document.createElement(`span`);t.className=`agent-chat__voice-activity-bar`,t.style.setProperty(`--talk-bar-delay`,`${e*-70}ms`),this.append(t)}}subscribe(){this.unsubscribe?.(),this.unsubscribe=this.levelSignal?.subscribe(e=>this.renderLevel(e))??null}renderLevel(e){this.dataset.level=String(e);for(let[t,n]of[...this.children].entries()){let r=.18+e*(PB[t]??1)*.82;n.style.setProperty(`--talk-bar-scale`,String(r))}}},customElements.get(FB)||customElements.define(FB,LB)})))()}function zB(e,t){t.matches(`:focus-visible`)||e instanceof HTMLElement&&queueMicrotask(()=>{let t=e.querySelector(`.chat-talk-input-picker__trigger`);t&&document.activeElement===t&&t.blur()})}function BB(e,t,n){return V`<wa-dropdown-item class="chat-talk-input-picker__notice" disabled>
    <div class=${e} role=${n??B}>${t}</div>
  </wa-dropdown-item>`}function VB(e){let t=!e.loading&&e.devices.length===0?e.issue:null,n=t?[]:[{deviceId:``,label:I(`chat.composer.systemDefaultMicrophone`)},...e.loading?[]:e.devices],r=t!==null&&t!==`none-found`&&t!==`list-unsupported`,i=I(`chat.composer.microphoneInput`),a=[{key:`realtime`,label:I(`chat.composer.realtimeTalkCapability`),status:e.realtimeStatus,unavailableReason:I(`chat.composer.realtimeTalkProviderUnavailable`),onOpenSettings:e.onOpenTalkSettings},{key:`dictation`,label:I(`chat.composer.dictationCapability`),status:e.dictationStatus,unavailableReason:I(`chat.composer.dictationProviderUnavailableShort`),onOpenSettings:e.onOpenDictationSettings}].filter(t=>t.status!==`ready`&&(t.key!==`realtime`||e.showRealtimeCapability!==!1));return V`
    <wa-dropdown
      class="chat-talk-input-picker"
      placement="top-end"
      aria-label=${i}
      .open=${e.open}
      @wa-show=${e.onOpen}
      @wa-hide=${e.onClose}
      @wa-select=${t=>{let n=t.detail.item;if(n.hasAttribute(`data-chat-talk-device`)){e.onSelect(n.value??``),zB(t.currentTarget,n);return}if(t.preventDefault(),n.dataset.chatTalkPreference===`hold-to-dictate`){e.onHoldToDictateChange?.(e.holdToDictate===!1);return}a.find(e=>e.key===n.dataset.chatTalkCapability)?.onOpenSettings?.()}}
    >
      <button
        slot="trigger"
        type="button"
        class="chat-talk-input-picker__trigger"
        aria-label=${i}
        aria-haspopup="menu"
        aria-expanded=${String(e.open)}
      >
        ${z.chevronDown}
      </button>
      <div class="chat-talk-input-picker__heading">${i}</div>
      ${t?BB(`chat-talk-input-picker__empty${r?` chat-talk-input-picker__empty--fault`:``}`,jL(t,`audioinput`),`status`):V`
              ${n.map(t=>{let n=t.deviceId===e.selectedDeviceId;return V`
                  <wa-dropdown-item
                    class="chat-talk-input-picker__item"
                    data-chat-talk-device
                    value=${t.deviceId}
                    role="menuitemradio"
                    aria-checked=${String(n)}
                    ${di(e=>Lu(e,n))}
                  >
                    <span slot="icon" class="chat-talk-input-picker__option-icon" aria-hidden="true"
                      >${z.mic}</span
                    >
                    <span class="chat-talk-input-picker__label">${t.label}</span>
                    <span slot="details" class="chat-talk-input-picker__check" aria-hidden="true"
                      >${n?z.check:B}</span
                    >
                  </wa-dropdown-item>
                `})}
              ${e.loading?BB(`chat-talk-input-picker__note`,I(`common.loading`),`status`):B}
              ${e.issue?BB(`chat-talk-input-picker__warning`,jL(e.issue,`audioinput`),`alert`):B}
              ${e.voiceActive?BB(`chat-talk-input-picker__hint`,I(`chat.composer.microphoneAppliesNextSession`)):B}
            `}
      ${a.map(e=>V`
          <wa-dropdown-item
            class="chat-talk-input-picker__capability"
            data-chat-talk-capability=${e.key}
            data-status=${e.status}
            ?disabled=${!e.onOpenSettings}
          >
            <span class="chat-talk-input-picker__capability-copy" role="status">
              <strong>
                ${e.status===`unavailable`?V`<span class="chat-talk-input-picker__capability-alert" aria-hidden="true"
                        >${z.alertTriangle}</span
                      >`:B}
                <span>${e.label}</span>
              </strong>
              <span>
                ${e.status===`checking`?I(`chat.composer.talkCapabilityChecking`):e.status===`unknown`?I(`chat.composer.talkCapabilityUnknown`):e.unavailableReason}
              </span>
            </span>
            ${e.onOpenSettings?V`<span slot="details" class="chat-talk-input-picker__settings">
                    <span aria-hidden="true">${z.settings}</span>
                    <span>${I(`chat.composer.configureCapability`)}</span>
                  </span>`:B}
          </wa-dropdown-item>
        `)}
      ${e.onHoldToDictateChange?V`
              <wa-dropdown-item
                class="chat-talk-input-picker__preference"
                data-chat-talk-preference="hold-to-dictate"
                type="checkbox"
                .checked=${hi(e.holdToDictate!==!1)}
              >
                <span>${I(`chat.composer.holdToDictate`)}</span>
                <span
                  slot="details"
                  class="chat-controls__speed-toggle ${e.holdToDictate===!1?``:`chat-controls__speed-toggle--active`}"
                  aria-hidden="true"
                >
                  <span class="chat-controls__speed-toggle-thumb"></span>
                </span>
              </wa-dropdown-item>
            `:B}
    </wa-dropdown>
  `}function HB(e){let t=e.dictation?.active===!0,n=e.dictation?.arming===!0,r=e.dictation?.finalizing===!0,i=e.dictation?.locksComposer===!0,a=e.dictation!==void 0&&e.onToggleVoice===void 0,o=t?I(`chat.composer.dictationStopAndKeep`):e.idleLabel??I(`chat.composer.startVoiceInput`),s=e.dictation&&!a&&!(t||r)?[e.submitDisabledReason,I(`chat.composer.voiceGestureHint`)].filter(Boolean).join(` · `):t?o:e.submitDisabledReason??o;return V`
    <span class="chat-talk-control${i?` chat-talk-control--holding`:``}">
      <openclaw-tooltip .content=${s}>
        <button
          class=${t?`chat-send-btn chat-send-btn--dictating`:`chat-send-btn chat-send-btn--voice${e.dictation&&!a?` chat-send-btn--hold-enabled`:``}${n?` chat-send-btn--dictation-arming`:``}`}
          type="button"
          @pointerdown=${t=>e.onDictationPointerDown?.(t)}
          @click=${n=>{if(t){n.preventDefault(),r||e.dictation?.handleClick(n);return}if(a){n.preventDefault(),e.onDirectDictationStart?.(),e.dictation?.startDirect();return}e.dictation?e.dictation.handleClick(n):e.onToggleVoice?.()}}
          @contextmenu=${t=>e.dictation?.handleContextMenu(t)}
          ?disabled=${!t&&(!e.connected||e.disabled||!e.dictation&&!!e.submitDisabledReason)}
          aria-disabled=${String(r)}
          aria-label=${o}
        >
          ${t?z.stop:V`
                  ${z.mic}
                  <span class="agent-chat__control-label">${o}</span>
                `}
        </button>
      </openclaw-tooltip>
      ${e.microphonePicker}
    </span>
  `}function UB(e,t,n){return e.active?V`
    ${e.connecting?B:V`<span class="sr-only" role="status" aria-live="polite" aria-atomic="true"
            >${e.finalizing?I(`chat.composer.dictationFinalizing`):I(`chat.composer.dictationListening`)}</span
          >`}
    <openclaw-tooltip .content=${I(`chat.runControls.send`)}>
      <button
        class="chat-send-btn chat-send-btn--send chat-send-btn--dictation-commit"
        type="button"
        @pointerdown=${n}
        @click=${async n=>{e.finalizing||(await e.finishActive(),t(n))}}
        aria-disabled=${String(e.finalizing)}
        aria-label=${I(`chat.runControls.send`)}
      >
        ${z.arrowUp}
      </button>
    </openclaw-tooltip>
  `:B}function WB(e){if(!e?.active)return B;if(e.connecting)return NB({status:`connecting`,detail:I(`chat.composer.microphoneAccessPending`)});let t=!e.finalizing;return V`
    <div class="agent-chat__composer-status-stack">
      <div
        class=${`agent-chat__dictation-status${e.finalizing?` agent-chat__dictation-status--finalizing`:``}`}
      >
        <span
          class="agent-chat__dictation-phase${t?` agent-chat__dictation-phase--listening`:``}"
        >
          ${e.finalizing?I(`chat.composer.dictationFinalizing`):I(`chat.composer.dictationListening`)}
        </span>
      </div>
    </div>
  `}function GB(e){return e.canAbort?V`
        <openclaw-tooltip .content=${I(`chat.runControls.stop`)}>
          <button
            class="chat-send-btn chat-send-btn--stop"
            @pointerdown=${e.onPrimaryActionPointerDown}
            @click=${e.onAbort}
            aria-label=${I(`chat.runControls.stopGenerating`)}
          >
            ${z.stop}
            <span class="agent-chat__control-label">${I(`chat.runControls.stop`)}</span>
          </button>
        </openclaw-tooltip>
      `:B}function KB(e){let t=!!(e.draft.trim()||e.hasAttachments),[n,r]=e.suggestionComposer?[`chat.sessionSuggestions.suggest`,`chat.sessionSuggestions.suggestMessage`]:!e.canAbort||e.followUpMode===void 0||e.followUpMode===`interrupt`?[`chat.runControls.send`,`chat.runControls.sendMessage`]:e.followUpMode===`steer`?[`chat.queue.steer`,`chat.followUpModeSteer`]:[`chat.runControls.queue`,`chat.runControls.queueMessage`],i=e.submissionLabel??I(n),a=e.submissionLabel??I(r),o=I(e.alternateFollowUpMode===`queue`?`chat.runControls.queue`:`chat.queue.steer`),s=e.alternateFollowUpMode&&e.canSend&&t,c=s?`${i} ⏎ · ${o} ${I(`chat.sendShortcutModifierEnter`)}`:i,l=s?V`${i}${` `}${kr(`⏎`,{inline:!0})}${` · `}${o}${` `}${kr(I(`chat.sendShortcutModifierEnter`).split(/(⌘)/u).filter(Boolean),{inline:!0})}`:void 0,u=GB(e),d=e.voiceStatus===`error`,f=I(e.voiceVideoEnabled?`chat.composer.turnCameraOff`:`chat.composer.turnCameraOn`),p=t=>{let n=t===`camera`,r=n?f:I(`chat.composer.realtimeTalkCapability`);return V`
      <openclaw-tooltip
        class=${n?B:`chat-mobile-talk-action`}
        .content=${n?r:e.submitDisabledReason??r}
      >
        <button
          class=${`chat-send-btn chat-send-btn--${n?`voice`:`talk-mode`}`}
          type=${n?B:`button`}
          @pointerdown=${n?void 0:e.onPrimaryActionPointerDown}
          @click=${n?e.onToggleCamera:e.onToggleVoice}
          ?disabled=${n?e.voiceVideoPending||e.voiceStatus===`connecting`||e.voiceStatus===`error`:!e.connected||e.sending||e.isBusy||!!e.submitDisabledReason}
          aria-label=${r}
          aria-pressed=${n?String(!!e.voiceVideoEnabled):B}
        >
          ${n?e.voiceVideoEnabled?z.cameraOff:z.camera:z.audioLines}
          <span class="agent-chat__control-label">${r}</span>
        </button>
      </openclaw-tooltip>
    `},m=HB({...e,disabled:!e.dictation&&(e.sending||e.isBusy)}),h=e.dictation||e.onToggleVoice?m:B,g=e.dictation?V`
        <span class="chat-mobile-dictation-action">
          ${HB({connected:e.connected,dictation:e.dictation,idleLabel:I(`chat.composer.dictationCapability`),onDirectDictationStart:e.onDirectDictationStart})}
        </span>
      `:B,_=!t&&!e.dictation?.active&&e.onToggleVoice?p(`start`):B,v=e.canSend&&Fo(e.draft)?null:e.submitDisabledReason,y=e.sending||!!(v&&e.submitPending),b=v??(e.sending?I(`chat.composer.sendingMessage`):t?null:I(`chat.composer.emptyHint`)),x=t&&e.canSend&&!e.sending&&!v,S=V`
    <openclaw-tooltip
      .content=${e.preparingAttachments?I(`chat.composer.preparingAttachments`):b??c}
      .contentTemplate=${!e.preparingAttachments&&b==null?l:void 0}
    >
      <button
        class="chat-send-btn chat-send-btn--send${e.sending?` chat-send-btn--sending`:``}"
        @pointerdown=${e.onPrimaryActionPointerDown}
        @click=${e.onSend}
        ?disabled=${!x}
        aria-label=${b??a}
        aria-busy=${y||e.preparingAttachments?`true`:`false`}
      >
        ${y?V`<span class="btn__spinner" aria-hidden="true"></span>`:z.arrowUp}
        <span class="agent-chat__control-label">${i}</span>
      </button>
    </openclaw-tooltip>
  `,C=e.dictation&&(!e.submitDisabledReason||Fo(e.draft))?UB(e.dictation,e.onSend,e.onPrimaryActionPointerDown):S,w=e.dictation?.active?C:e.canAbort&&!x?u:null,ee=w??S,te=w??(t||!e.onToggleVoice?S:_),T=te===ee?V`<span class="chat-mobile-primary-action chat-desktop-primary-action"
          >${ee}</span
        >`:V`
          <span class="chat-mobile-primary-action">${te}</span>
          <span class="chat-desktop-primary-action">${ee}</span>
        `;return V`
    ${e.voiceActive&&e.onToggleVoice?V`
            <span class="chat-talk-control chat-talk-control--active">
              <openclaw-tooltip .content=${I(`chat.composer.stopVoiceInput`)}>
                <button
                  class="chat-send-btn chat-send-btn--voice-live${d?` chat-send-btn--voice-error`:``}"
                  @click=${e.onToggleVoice}
                  aria-label=${I(`chat.composer.stopVoiceInput`)}
                >
                  ${d?B:MB({status:e.voiceStatus,inputLevel:e.voiceInputLevel})}
                  <span class="chat-send-btn__voice-stop-glyph">${z.stop}</span>
                </button>
              </openclaw-tooltip>
              ${e.microphonePicker}
            </span>
            ${d||e.voiceStatus===`connecting`?B:V`
                    <span
                      class="sr-only agent-chat__voice-status"
                      role="status"
                      aria-live="polite"
                      aria-atomic="true"
                      >${jB(e.voiceStatus,e.voiceDetail)}</span
                    >
                  `}
            ${e.voiceVideoCapable&&e.onToggleCamera?p(`camera`):B}
            <span class="chat-mobile-primary-action chat-desktop-primary-action"
              >${u}</span
            >
          `:V` ${h} ${g} ${T} `}
  `}function qB(){return(qB=e((()=>{H(),ui(),Jr(),L(),Rr(),Iu(),O(),la(),KL(),RB()})))()}function JB(){return(JB=e((()=>{})))()}function YB(e,t){return e.key===`think`?t.modelSwitching?[]:ya(t.selectedSession,t.sessions?.defaults,t.modelCatalog):e.argOptions??[]}function XB(e,t,n,r,i,a){let o=t&&UR(n),s=t&&_z(r),c=a.open?a:i.open?i:null;return{skillMenuVisible:o,slashMenuVisible:s,mentionMenuVisible:i.open,menuVisible:o||s||i.open||a.open,activeMenuOptionId:c?c.activeId(e):o?WR(n,e):vz(r,e),activeMenuOptionLabel:c?c.activeLabel():o?GR(n):yz(r),menuListboxId:xO(e,a.open?`emoji-menu-listbox`:i.open?`mention-menu-listbox`:o?`skill-menu-listbox`:`slash-menu-listbox`)}}function ZB(){return(ZB=e((()=>{Bc(),EO(),XR(),xz()})))()}function QB(){if(tr()||pr())return!1;let e=navigator.userAgent;return/Android/u.test(e)&&!/; wv\)/u.test(e)&&(/Chrome\/[\d.]+(?: Mobile)? Safari\/[\d.]+(?: EdgA\/[\d.]+)?$/u.test(e)||/Gecko\/[\d.]+ Firefox\/[\d.]+$/u.test(e))}function $B(){if(!De()||tr()||pr())return!1;let e=navigator.userAgent;return/AppleWebKit\//u.test(e)&&/Version\/[\d.]+(?: Mobile\/\S+)? Safari\/[\d.]+$/u.test(e)}function eV(){return(eV=e((()=>{Pr()})))()}var tV;function nV(){return(nV=e((()=>{H(),tV=pi`
  :host {
    display: contents;
  }
  openclaw-modal-dialog {
    --openclaw-modal-width: 640px;
  }
  .camera {
    box-sizing: border-box;
    max-height: var(--openclaw-modal-height-limit);
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    background: var(--bg);
    color: var(--text);
    box-shadow: var(--shadow-xl);
  }
  header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px;
  }
  h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
  }
  p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
  }
  .preview {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 3;
    max-height: 55dvh;
    margin: 0 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg-elevated);
  }
  video,
  img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
  }
  .notice {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    padding: 24px;
    text-align: center;
    background: var(--bg-elevated);
  }
  .notice svg {
    width: 32px;
    height: 32px;
    color: var(--muted);
  }
  .notice p {
    max-width: 38ch;
    margin: 0;
  }
  .notice strong {
    font-size: 15px;
    font-weight: 600;
  }
  .camera-selector {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 20px 0;
    font-size: 13px;
    color: var(--muted);
  }
  select {
    min-width: 0;
    flex: 1;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--text);
    font: inherit;
  }
  footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 20px;
  }
  .actions {
    display: flex;
    gap: 8px;
    margin-inline-start: auto;
  }
  button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--text);
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: default;
  }
  button:hover:not(:disabled) {
    background: var(--bg-elevated);
  }
  button:focus-visible,
  select:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
  }
  button:disabled {
    opacity: 0.45;
  }
  button svg {
    width: 16px;
    height: 16px;
  }
  .primary {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
  }
  .primary:hover:not(:disabled) {
    background: var(--primary-hover);
  }
  .icon-button {
    width: 32px;
    min-height: 32px;
    padding: 6px;
    border-color: transparent;
  }
  .upload {
    border-color: transparent;
    color: var(--muted);
    padding-inline: 0;
  }
  @media (max-width: 560px) {
    header,
    footer {
      padding: 16px;
    }
    .preview,
    .camera-selector {
      margin-inline: 16px;
    }
  }
`})))()}var rV;function iV(){return(iV=e((()=>{H(),ri(),L(),Fr(),O(),Fc(),Ee(),eV(),nV(),fs(),rV=class extends Se{constructor(...e){super(...e),this.disabled=!1,this.nativeFallback=!1,this.stage=`closed`,this.error=``,this.photoUrl=``,this.cameras=[],this.cameraId=``,this.videoReady=!1,this.generation=0,this.close=()=>{this.generation+=1,this.stopCamera(),this.clearPhoto(),this.activeSignal?.removeEventListener(`abort`,this.close),this.activeSignal=void 0,this.captureDestination=void 0,this.uploadDestination=void 0,this.nativeCaptureDestination=void 0,this.stage=`closed`},this.capture=async()=>{let e=this.renderRoot.querySelector(`video`),t=this.generation;if(this.isCurrent(t)&&this.stage===`live`&&e?.videoWidth&&e.videoHeight){this.stage=`capturing`;try{let n=document.createElement(`canvas`);n.width=e.videoWidth,n.height=e.videoHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Canvas unavailable`);r.drawImage(e,0,0),this.stopCamera();let i=await new Promise(e=>{n.toBlob(e,`image/jpeg`,.92)});if(n.width=n.height=0,!this.isCurrent(t))return;if(!i)throw Error(`Image encoding failed`);this.photo=new File([i],`camera-${Date.now()}.${i.type===`image/png`?`png`:`jpg`}`,{type:i.type}),this.photoUrl=URL.createObjectURL(i),this.stage=`review`}catch{this.isCurrent(t)&&this.fail(I(`chat.camera.captureFailed`))}}},this.usePhoto=()=>{if(!this.isCurrent(this.generation)||this.stage!==`review`||!this.photo)return;let e=this.photo,t=this.captureDestination;this.close(),t?.(e)}}static{this.styles=tV}connectedCallback(){super.connectedCallback(),window.addEventListener(`pagehide`,this.close)}disconnectedCallback(){this.close(),window.removeEventListener(`pagehide`,this.close),super.disconnectedCallback()}willUpdate(e){this.stage!==`closed`&&(e.has(`disabled`)&&this.disabled||e.has(`readSignal`)&&this.readSignal!==this.activeSignal)&&this.close()}show(){if(!(!this.isConnected||this.disabled||this.readSignal?.aborted||this.stage!==`closed`)){if(this.onNativeCapture&&QB()){this.onNativeCapture(this);return}this.activeSignal=this.readSignal,this.activeSignal?.addEventListener(`abort`,this.close,{once:!0}),this.captureDestination=this.onCapture,this.uploadDestination=this.onUpload,this.nativeCaptureDestination=this.onNativeCapture,this.cameraId=``,this.cameras=[],this.stage=`requesting`,this.startCamera()}}isCurrent(e){return e===this.generation&&this.stage!==`closed`&&this.isConnected&&!this.disabled&&this.activeSignal===this.readSignal&&!this.activeSignal?.aborted}stopCamera(){this.stream?.getTracks().forEach(e=>e.stop()),this.stream=void 0;let e=this.renderRoot.querySelector(`video`);e&&(e.srcObject=null),this.videoReady=!1}clearPhoto(){this.photoUrl&&URL.revokeObjectURL(this.photoUrl),this.photoUrl=``,this.photo=void 0}fail(e,t=!1){this.generation+=1,this.stopCamera(),this.error=e,this.nativeFallback=t,this.stage=`error`}async startCamera(){if(!this.isCurrent(this.generation))return;let e=++this.generation;if(this.stopCamera(),this.clearPhoto(),this.stage=`requesting`,this.error=``,this.nativeFallback=!1,!globalThis.isSecureContext){this.fail(I(`chat.camera.insecure`),!0);return}if(!navigator.mediaDevices?.getUserMedia){this.fail(I(`chat.camera.unsupported`),!0);return}try{let t=await navigator.mediaDevices.getUserMedia({audio:!1,video:this.cameraId?{deviceId:{exact:this.cameraId}}:{facingMode:{ideal:`environment`}}});if(!this.isCurrent(e)){t.getTracks().forEach(e=>e.stop());return}this.stream=t;let n=t.getVideoTracks()[0];if(!n||n.readyState===`ended`){this.fail(I(`chat.camera.stopped`));return}if(n.addEventListener(`ended`,()=>{this.isCurrent(e)&&this.stream===t&&this.fail(I(`chat.camera.stopped`))},{once:!0}),this.cameraId=n.getSettings().deviceId??this.cameraId,this.listCameras(e),await this.updateComplete,!this.isCurrent(e))return;let r=this.renderRoot.querySelector(`video`);if(!r||(r.srcObject=t,await r.play(),!this.isCurrent(e)))return;this.videoReady=r.videoWidth>0&&r.videoHeight>0,this.stage=`live`}catch(t){if(!this.isCurrent(e))return;let n=t instanceof DOMException||t instanceof Error?t.name:``;this.fail(I(n===`NotAllowedError`||n===`SecurityError`?`chat.camera.permissionDenied`:n===`NotFoundError`||n===`OverconstrainedError`?`chat.camera.notFound`:`chat.camera.unavailable`))}}async listCameras(e){try{let t=await navigator.mediaDevices.enumerateDevices();this.isCurrent(e)&&(this.cameras=t.filter(e=>e.kind===`videoinput`))}catch{}}openFileInput(e){if(!this.isCurrent(this.generation)||e===`camera`&&this.stage!==`error`)return;let t=e===`camera`?this.nativeCaptureDestination:this.uploadDestination;this.close(),t?.(this)}render(){if(this.stage===`closed`)return B;let e=this.stage===`review`,t=this.stage===`error`,n=t&&this.nativeFallback&&!!this.nativeCaptureDestination;return V`
      <openclaw-modal-dialog .label=${I(`chat.camera.title`)} @modal-cancel=${this.close}>
        <section class="camera">
          <header>
            <div>
              <h2>${I(`chat.camera.title`)}</h2>
              <p>${I(e?`chat.camera.reviewHint`:`chat.camera.previewHint`)}</p>
            </div>
            <button
              type="button"
              class="icon-button"
              aria-label=${I(`common.close`)}
              @click=${this.close}
            >
              ${z.x}
            </button>
          </header>
          <div
            class="preview"
            aria-busy=${this.stage===`requesting`||this.stage===`capturing`?`true`:`false`}
          >
            ${e?V`<img src=${this.photoUrl} alt=${I(`chat.camera.photoAlt`)} />`:V`<video
                    autoplay
                    muted
                    playsinline
                    aria-label=${I(`chat.composer.cameraPreview`)}
                    @loadeddata=${e=>{let t=e.currentTarget;t instanceof HTMLVideoElement&&t.srcObject===this.stream&&this.isCurrent(this.generation)&&(this.videoReady=t.videoWidth>0&&t.videoHeight>0)}}
                  ></video>`}
            ${t?V`<div class="notice" role="alert">
                    ${z.camera}<strong
                      >${I(n?`chat.camera.previewUnavailable`:`chat.camera.errorTitle`)}</strong
                    >
                    <p>${this.error}</p>
                  </div>`:this.stage===`requesting`||this.stage===`capturing`?V`<div class="notice" role="status">
                      ${z.camera}
                      <p>
                        ${this.stage===`capturing`?I(`chat.camera.capturing`):I(`chat.camera.requesting`)}
                      </p>
                    </div>`:B}
          </div>
          ${!e&&!t&&this.cameras.length>1?V`<label class="camera-selector"
                  >${I(`chat.composer.cameraInput`)}
                  <select
                    .value=${this.cameraId}
                    ?disabled=${this.stage!==`live`}
                    @change=${e=>{let t=e.currentTarget;t instanceof HTMLSelectElement&&this.isCurrent(this.generation)&&this.stage===`live`&&(this.cameraId=t.value,this.startCamera())}}
                  >
                    ${this.cameras.map((e,t)=>V`<option value=${e.deviceId} ?selected=${e.deviceId===this.cameraId}>${e.label||I(`chat.composer.cameraFallback`,{number:String(t+1)})}</option>`)}
                  </select>
                </label>`:B}
          <footer>
            <button type="button" class="upload" @click=${()=>this.openFileInput(`photo`)}>
              ${z.image}${I(`chat.camera.upload`)}
            </button>
            ${t&&!n&&this.nativeCaptureDestination?V`<button
                    type="button"
                    class="upload"
                    @click=${()=>this.openFileInput(`camera`)}
                  >
                    ${z.camera}${I(`chat.camera.useNativeCamera`)}
                  </button>`:B}
            <div class="actions">
              <button
                type="button"
                autofocus
                @click=${e?()=>void this.startCamera():this.close}
              >
                ${I(e?`chat.camera.retake`:`common.cancel`)}
              </button>
              <button
                type="button"
                class="primary"
                ?disabled=${!e&&!t&&(this.stage!==`live`||!this.videoReady)}
                @click=${e?this.usePhoto:n?()=>this.openFileInput(`camera`):t?()=>void this.startCamera():this.capture}
              >
                ${I(e?`chat.camera.usePhoto`:n?`chat.camera.useNativeCamera`:t?`chat.camera.retry`:`chat.camera.capture`)}
              </button>
            </div>
          </footer>
        </section>
      </openclaw-modal-dialog>
    `}},q([U({type:Boolean})],rV.prototype,`disabled`,void 0),q([U({attribute:!1})],rV.prototype,`readSignal`,void 0),q([U({attribute:!1,hasChanged:()=>!1})],rV.prototype,`onCapture`,void 0),q([U({attribute:!1,hasChanged:()=>!1})],rV.prototype,`onUpload`,void 0),q([U({attribute:!1,hasChanged:()=>!1})],rV.prototype,`onNativeCapture`,void 0),q([W()],rV.prototype,`nativeFallback`,void 0),q([W()],rV.prototype,`stage`,void 0),q([W()],rV.prototype,`error`,void 0),q([W()],rV.prototype,`photoUrl`,void 0),q([W()],rV.prototype,`cameras`,void 0),q([W()],rV.prototype,`cameraId`,void 0),q([W()],rV.prototype,`videoReady`,void 0),customElements.get(`openclaw-chat-camera-capture`)||customElements.define(`openclaw-chat-camera-capture`,rV)})))()}function aV(e,t){e.closest(`details`)?.removeAttribute(`open`),e.closest(`.agent-chat__composer-shell, .new-session-page__composer`)?.querySelector(t)?.click()}function oV(e,t){let n=e.target;if(!(n instanceof HTMLInputElement))return;let r=[...n.files??[]];n.value=``,tP(r,t)}function sV(e){if(!Tt(e.uploadConfig))return B;let t=t=>n=>{e.disabled||aV(n,`.agent-chat__${t}-input`)};return V`
    <openclaw-chat-camera-capture
      .disabled=${!!e.disabled||e.cameraActive===!1}
      .readSignal=${e.readSignal??e.attachmentReads?.readSignal}
      .onCapture=${t=>{e.disabled||tP([t],e)}}
      .onNativeCapture=${t(`camera`)}
      .onUpload=${t(`photo`)}
    ></openclaw-chat-camera-capture>
    ${[`file`,`photo`,`camera`].map(t=>V`
        <input
          type="file"
          accept=${t===`file`?B:`image/*`}
          ?multiple=${t!==`camera`}
          capture=${t===`camera`?`environment`:B}
          class=${`agent-chat__${t}-input`}
          ?disabled=${e.disabled}
          @change=${t=>{e.disabled||oV(t,e)}}
        />
      `)}
  `}function cV(e){let t=e.detail.item.value;if(t!==`camera`&&t!==`photo`&&t!==`file`)return!1;let n=e.currentTarget;return n instanceof HTMLElement&&(t===`camera`?n.closest(`.agent-chat__composer-shell, .new-session-page__composer`)?.querySelector(`openclaw-chat-camera-capture`)?.show():aV(n,`.agent-chat__${t}-input`)),!0}function lV(e,t=!1){return V`
    <button
      slot="trigger"
      type="button"
      class="agent-chat__input-btn agent-chat__input-btn--attach ${t?`agent-chat__input-btn--has-overrides`:``}"
      aria-label=${I(`chat.composer.addAttachment`)}
      ?disabled=${e}
      title=${I(`chat.composer.addAttachment`)}
    >
      ${z.plus}
    </button>
  `}function uV(){return($B()?[{value:`file`,icon:z.paperclip,label:I(`chat.composer.attach`)}]:[{value:`camera`,icon:z.camera,label:I(`chat.composer.takePhoto`)},{value:`photo`,icon:z.image,label:I(`chat.composer.attachPhoto`)},{value:`file`,icon:z.paperclip,label:I(`chat.composer.attachFileOption`)}]).map(({value:e,icon:t,label:n})=>V`
      <wa-dropdown-item class="agent-chat__attach-menu-option" value=${e}>
        <span slot="icon" aria-hidden="true">${t}</span>
        <span>${n}</span>
      </wa-dropdown-item>
    `)}function dV(){return(dV=e((()=>{H(),L(),Iu(),O(),Gt(),eV(),uP(),iV()})))()}function fV(){return V`<div class="agent-chat__capability-menu-divider" role="separator"></div>`}function pV(e,t){return V`<div class="agent-chat__capability-menu-state" role=${t??B}>
    ${e}
  </div>`}function mV(){return V`
    <wa-dropdown-item class="agent-chat__capability-menu-item" value="back">
      <span slot="icon" aria-hidden="true">${z.arrowLeft}</span>
      <span>${I(`chat.composer.menu.back`)}</span>
    </wa-dropdown-item>
    ${fV()}
  `}function hV(e){return V`
    <wa-dropdown-item
      class="agent-chat__capability-menu-item agent-chat__capability-menu-toggle"
      value=${e.value}
      type="checkbox"
      .checked=${hi(e.checked)}
      ?disabled=${e.disabled}
      title=${e.title??``}
    >
      ${e.icon?V`<span slot="icon" aria-hidden="true">${e.icon}</span>`:B}
      <span class="agent-chat__capability-menu-label">
        <span>${e.label}</span>
        ${e.note??B}
      </span>
      ${e.checkbox?B:V`<wa-switch
              slot="details"
              class="agent-chat__capability-menu-switch"
              size="s"
              tabindex="-1"
              inert
              aria-hidden="true"
              .checked=${e.checked}
              ?disabled=${e.disabled}
            ></wa-switch>`}
    </wa-dropdown-item>
  `}function gV(){return(gV=e((()=>{H(),ui(),L(),O()})))()}function _V(e){return V`
    ${e.loading||e.busy?pV(I(`common.loading`),`status`):B}
    ${e.error?V`${pV(e.error,`alert`)}
            <wa-dropdown-item value="library-reload">${I(`common.retry`)}</wa-dropdown-item>`:B}
    ${e.notice?pV(e.notice,`status`):B}
  `}function vV(e,t){if(!e)return B;let n=e.busy||e.loading,r=e.result?.session;if(t){let i=r?.selections.find(e=>e.skillId===t);return V`
      ${mV()} ${_V(e)}
      ${i?V`
              <div class="agent-chat__capability-menu-state">
                <span class="agent-chat__capability-menu-label">
                  <strong>${i.slug} · ${i.ownerLabel}</strong>
                  <span class="agent-chat__capability-menu-note"
                    >${I(`skillLibrary.session.pin`,{revision:i.revision.slice(0,8)})}</span
                  >
                </span>
              </div>
              ${[`read`,`refresh`,`detach`].map(t=>t===`read`||e.canWrite?V`<wa-dropdown-item
                      class="agent-chat__capability-menu-item"
                      value=${`library-${t}:${i.skillId}`}
                      ?disabled=${n}
                      >${I(`skillLibrary.session.${t}`)}</wa-dropdown-item
                    >`:B)}
            `:e.result&&!n?pV(I(`skillsPage.notFound`)):B}
    `}return e.result?.defaultTarget===`workspace`&&!r?.selections.length&&!r?.attachable.length?B:V`
    ${pV(I(`skillLibrary.session.selected`))} ${_V(e)}
    ${r?.selections.map(e=>V`<wa-dropdown-item
        class="agent-chat__capability-menu-item"
        value=${`library-selected:${e.skillId}`}
        ?disabled=${n}
        title=${`${e.slug} · ${e.ownerLabel}`}
      >
        <span class="agent-chat__capability-menu-label"
          ><span>${e.slug} · ${e.ownerLabel}</span
          ><span class="agent-chat__capability-menu-note"
            >${I(`skillLibrary.session.pin`,{revision:e.revision.slice(0,8)})}</span
          ></span
        >
        <span slot="details" class="agent-chat__capability-menu-chevron" aria-hidden="true"
          >${z.chevronRight}</span
        >
      </wa-dropdown-item>`)}
    ${r&&r.selections.length===0?pV(I(`skillLibrary.session.empty`)):B}
    ${r?.attachable.length?V`${fV()} ${pV(I(`skillLibrary.session.attachable`))}
          ${r.attachable.map(t=>V`<wa-dropdown-item
              class="agent-chat__capability-menu-item"
              value=${`library-attach:${t.skillId}`}
              ?disabled=${n||!e.canWrite}
            >
              <span class="agent-chat__capability-menu-label"
                ><span title=${`${t.slug} · ${t.ownerLabel}`}
                  >${I(`skillLibrary.session.attachNamed`,{name:t.slug,owner:t.ownerLabel})}</span
                ><span class="agent-chat__capability-menu-note" title=${t.description}
                  >${t.description}</span
                ></span
              >
            </wa-dropdown-item>`)}`:B}
    ${e.result?pV(I(`skillLibrary.defaultLimit`,{count:String(e.result.defaultSelectionLimit)})):B}
    ${e.result?.defaultSelectionNotice?pV(e.result.defaultSelectionNotice,`status`):B}
    ${fV()} ${pV(I(`skillLibrary.inventory`))}
  `}function yV(e,t,n){if(!e.startsWith(`library-`))return!1;if(e===`library-reload`)t?.onReload();else if(t&&!t.loading&&!t.busy){let r=e.slice(e.indexOf(`:`)+1),i=t.result?.session?.selections.find(e=>e.skillId===r);if(e.startsWith(`library-selected:`)&&i)n(`library:${i.skillId}`);else if(e.startsWith(`library-read:`)&&i)t.onRead(i.skillId,i.revision);else if(t.canWrite){if(e.startsWith(`library-attach:`)){let e=t.result?.session?.attachable.find(e=>e.skillId===r);e&&t.onActivate(`attach`,e.skillId,e.revision)}else i&&e.startsWith(`library-detach:`)?(t.onActivate(`detach`,i.skillId),n(`skills`)):i&&e.startsWith(`library-refresh:`)&&t.onActivate(`refresh`,i.skillId)}}return!0}function bV(){return(bV=e((()=>{H(),L(),O(),fo(),ss(),gV(),Js(),Ma()})))()}function xV(e,t){return V`<a
    class="agent-chat__capability-menu-link"
    href=${e}
    tabindex="-1"
    @click=${e=>e.preventDefault()}
    >${t}</a
  >`}function SV(e){let t=vI(e.toolOverrides),n=e.mcpServers.filter(t=>pI(t.enabled,uI(e.toolOverrides?.mcpServers,t.name))).length,r=Object.keys(e.toolOverrides?.skills??{}).length>0,i=e.skills?.filter(e=>e.enabled).length??0,a=mI(e.webSearchBaseEnabled,e.toolOverrides?.webSearch),o=!e.webSearchBaseEnabled&&e.toolOverrides?.webSearch===!0,s=e.mutationBlockedReason!==null||!e.webSearchBaseEnabled&&!o,c=e.mutationBlockedReason??(o?I(`chat.composer.menu.webSearchClearStaleEnable`):e.webSearchBaseEnabled?``:I(`chat.composer.menu.webSearchGloballyDisabled`)),l=Tt(e.attachments.uploadConfig),u=l?uV():B,d=e.rootToggles??[];return!e.showCapabilities&&d.length===0?u:V`
    ${u} ${l?fV():B}
    ${d.map(hV)}
    ${e.showCapabilities?V`${[[`skills`,z.book,r?I(`chat.composer.menu.enabledCount`,{count:String(i)}):null],[`connectors`,z.plug,n]].map(([e,t,n])=>V`<wa-dropdown-item
                class="agent-chat__capability-menu-item"
                value=${`open-${e}`}
              >
                <span slot="icon" aria-hidden="true">${t}</span>
                <span>${I(`chat.composer.menu.${e}`)}</span>
                <span slot="details" class="agent-chat__capability-menu-details">
                  ${n===null?B:V`<span class="agent-chat__capability-menu-badge">${n}</span>`}
                  <span class="agent-chat__capability-menu-chevron" aria-hidden="true"
                    >${z.chevronRight}</span
                  >
                </span>
              </wa-dropdown-item>`)}
            ${hV({value:`toggle-web-search`,label:I(`chat.composer.menu.webSearch`),checked:a,disabled:s,title:c,icon:z.globe,checkbox:!0})}
            ${fV()}
            <wa-dropdown-item class="agent-chat__capability-menu-item" value="manage-plugins">
              <span slot="icon" aria-hidden="true">${z.plug}</span>
              ${xV(Ur(`plugins`,e.basePath),I(`chat.composer.menu.managePlugins`))}
            </wa-dropdown-item>
            ${t>0?V`
                    <wa-dropdown-item
                      class="agent-chat__capability-menu-item agent-chat__capability-menu-overrides"
                      value="clear-overrides"
                      ?disabled=${e.mutationBlockedReason!==null}
                      title=${e.mutationBlockedReason??``}
                    >
                      <span slot="icon" aria-hidden="true">${z.settings}</span>
                      <span
                        >${I(t===1?`chat.composer.overrides.countOne`:`chat.composer.overrides.count`,{count:String(t)})}</span
                      >
                      <span
                        slot="details"
                        class="agent-chat__capability-menu-clear-overrides"
                        aria-hidden="true"
                        >${z.x}</span
                      >
                    </wa-dropdown-item>
                  `:B}`:B}
  `}function CV(e){let t=e.mutationBlockedReason,n=e.skillsLoading?pV(I(`chat.composer.menu.loadingSkills`),`status`):e.skillsError?pV(I(`chat.composer.menu.skillsLoadFailed`),`alert`):!e.skills||e.skills.length===0?pV(I(`chat.composer.menu.noSkills`)):e.skills.map((e,n)=>{let r=e.missingDeps?I(`chat.composer.menu.depsMissing`):e.blocked?I(`chat.composer.menu.skillBlocked`):t;return hV({value:`skill:${n}`,label:e.name,checked:e.enabled,disabled:e.missingDeps||e.blocked||t!==null,title:r,note:e.missingDeps||e.blocked?V`<span class="agent-chat__capability-menu-note">${r}</span>`:B})});return V`
    ${mV()} ${vV(e.library)} ${n} ${fV()}
    <wa-dropdown-item class="agent-chat__capability-menu-item" value="manage-skills">
      ${xV(Ur(`skills`,e.basePath),I(`chat.composer.menu.manageSkills`))}
    </wa-dropdown-item>
  `}function wV(e){let t=e.mutationBlockedReason,n=e.mcpServers.length===0?pV(I(`chat.composer.menu.noConnectors`)):e.mcpServers.map((n,r)=>{let i=uI(e.toolOverrides?.mcpServers,n.name),a=pI(n.enabled,i);return V`
            ${hV({value:`connector:${r}`,label:n.name,checked:a,disabled:t!==null,title:t,note:V`<span class="agent-chat__capability-menu-note">
                ${I(a?`common.enabled`:`common.disabled`)}
                ${i===void 0?B:V`<span class="agent-chat__capability-menu-session-tag"
                        >${I(`chat.composer.menu.sessionTag`)}</span
                      >`}
              </span>`})}
            ${e.onOpenToolAccess?V`<wa-dropdown-item
                    class="agent-chat__capability-menu-item agent-chat__capability-menu-subrow"
                    value=${`tools:${r}`}
                  >
                    <span slot="icon" aria-hidden="true">${z.wrench}</span>
                    <span>${I(`chat.composer.menu.toolAccess.label`)}</span>
                  </wa-dropdown-item>`:B}
          `}),r=!e.canAdmin;return V`
    ${mV()} ${n} ${fV()}
    ${e.onAddServer?V`<wa-dropdown-item
            class="agent-chat__capability-menu-item"
            value="add-server"
            ?disabled=${r}
            title=${r?e.adminBlockedReason??``:``}
          >
            <span slot="icon" aria-hidden="true">${z.plus}</span>
            <span>${I(`chat.composer.menu.addMcpServer`)}</span>
          </wa-dropdown-item>`:B}
  `}function TV(e,t){return(e?.groups??[]).flatMap(e=>e.tools).filter(e=>e.source===`mcp`&&e.mcpServer===t&&!!e.mcpToolName)}function EV(e,t){return e?.notices?.find(e=>MV.has(e.id)&&e.servers?.includes(t)===!0)}function DV(e,t){let n=t.mcpServer,r=t.mcpToolName;return n?e.toolOverrides==null?t.deniedBySession===!0:uI(e.toolOverrides.mcpToolsDeny,n)?.includes(r)??!1:!1}function OV(e,t){let n=TV(e.toolsEffectiveResult,t),r=n.length===0?EV(e.toolsEffectiveResult,t):null,i=n.filter(t=>!DV(e,t)).length,a=I(n.length===1?`chat.composer.menu.toolAccess.summaryOne`:`chat.composer.menu.toolAccess.summary`,{enabled:String(i),total:String(n.length)}),o=e.toolsEffectiveLoading?pV(I(`chat.composer.menu.toolAccess.loading`),`status`):e.toolsEffectiveError?pV(I(`chat.composer.menu.toolAccess.loadFailed`),`alert`):r?pV(ft(r.message),`status`):n.length===0?pV(I(`chat.composer.menu.toolAccess.noTools`)):n.map((t,n)=>{let r=t.mcpToolName,i=t.label?.trim(),a=DV(e,t);return hV({value:`mcp-tool:${n}`,label:r,checked:!a,disabled:e.toolAccessMutationBlockedReason!==null,title:e.toolAccessMutationBlockedReason,note:i&&i!==r?V`<span class="agent-chat__capability-menu-note">${i}</span>`:B})});return V`
    ${mV()}
    <div class="agent-chat__capability-menu-state">
      <span class="agent-chat__capability-menu-label">
        <strong translate="no">${t}</strong>
        ${n.length>0?V`<span class="agent-chat__capability-menu-note">${a}</span>`:B}
      </span>
    </div>
    ${o}
  `}function kV(e,t){let n=e.detail.item.value??``;if(Tt(t.attachments.uploadConfig)&&cV(e))return;let r=t.rootToggles?.find(e=>e.value===n);if(r){e.preventDefault(),r.disabled||r.onChange(!r.checked);return}let i=e.currentTarget,a=e=>{t.onViewChange(e),requestAnimationFrame(()=>i.querySelector(`wa-dropdown-item:not([disabled])`)?.focus())},o=(e,n,r,i)=>t.onPatchToolOverrides(hI(t.toolOverrides,e,n,!r,i));if(n===`back`){e.preventDefault(),a(t.view.startsWith(`tools:`)?`connectors`:t.view.startsWith(`library:`)?`skills`:`root`);return}if(n===`open-skills`||n===`open-connectors`){e.preventDefault(),a(n===`open-skills`?`skills`:`connectors`);return}if(yV(n,t.library,a)){e.preventDefault();return}if(n===`toggle-web-search`){if(e.preventDefault(),t.mutationBlockedReason||!t.webSearchBaseEnabled&&t.toolOverrides?.webSearch!==!0)return;let n=mI(t.webSearchBaseEnabled,t.toolOverrides?.webSearch);t.onPatchToolOverrides(gI(t.toolOverrides,t.webSearchBaseEnabled&&!n,t.webSearchBaseEnabled));return}if(n===`clear-overrides`){e.preventDefault(),t.mutationBlockedReason||t.onPatchToolOverrides(null);return}if(n.startsWith(`skill:`)){e.preventDefault();let r=t.skills?.[Number(n.slice(6))];r&&!r.missingDeps&&!r.blocked&&!t.mutationBlockedReason&&o(`skills`,r.key,r.enabled,r.baseEnabled);return}if(n.startsWith(`connector:`)){e.preventDefault();let r=t.mcpServers[Number(n.slice(10))];if(r&&!t.mutationBlockedReason){let e=pI(r.enabled,uI(t.toolOverrides?.mcpServers,r.name));o(`mcpServers`,r.name,e,r.enabled)}return}if(n.startsWith(`tools:`)){e.preventDefault();let r=t.mcpServers[Number(n.slice(6))];r&&(t.onOpenToolAccess?.(r.name),a(`tools:${r.name}`));return}if(n.startsWith(`mcp-tool:`)&&t.view.startsWith(`tools:`)){if(e.preventDefault(),t.toolAccessMutationBlockedReason)return;let r=t.view.slice(6),i=TV(t.toolsEffectiveResult,r)[Number(n.slice(9))];i?.mcpToolName&&t.onPatchToolOverrides(_I(t.toolOverrides,r,i.mcpToolName,!DV(t,i)));return}if(n===`add-server`){t.onAddServer?.();return}n===`manage-skills`?t.onNavigate(`skills`):n===`manage-plugins`&&t.onNavigate(`plugins`)}function AV(e){let t=vI(e.toolOverrides)>0,n=e.showCapabilities?e.view:`root`,r=n===`skills`?CV(e):n===`connectors`?wV(e):n.startsWith(`tools:`)?OV(e,n.slice(6)):n.startsWith(`library:`)?vV(e.library,n.slice(8)):SV(e);return V`
    <wa-dropdown
      class="agent-chat__attach-menu agent-chat__capability-menu"
      placement="top-start"
      aria-label=${I(`chat.composer.addAttachment`)}
      .open=${e.open}
      @wa-select=${t=>kV(t,e)}
      @wa-show=${()=>{e.open||e.onOpenChange(!0),e.onLoadSkills()}}
      @wa-hide=${()=>{e.open&&e.onOpenChange(!1)}}
      data-view=${n}
    >
      ${lV(e.disabled,t)} ${r}
    </wa-dropdown>
    ${e.addServerDialog??B} ${e.libraryDialog??B}
  `}function jV(e){let t=e.capabilityMenu;return!t&&!e.rootToggles?.length&&!Tt(e.attachments.uploadConfig)?B:AV({...e,...t,showCapabilities:t!==void 0,basePath:t?.basePath??``,skills:t?.skills??null,skillsLoading:t?.skillsLoading??!1,skillsError:t?.skillsError??!1,mcpServers:t?.mcpServers??[],toolsEffectiveResult:t?.toolsEffectiveResult??null,toolsEffectiveLoading:t?.toolsEffectiveLoading??!1,toolsEffectiveError:t?.toolsEffectiveError??!1,toolAccessMutationBlockedReason:t?.toolAccessMutationBlockedReason??null,webSearchBaseEnabled:t?.webSearchBaseEnabled??!0,mutationBlockedReason:t?.mutationBlockedReason??null,canAdmin:t?.canAdmin??!1,adminBlockedReason:t?.adminBlockedReason??null,onLoadSkills:t?.onLoadSkills??(()=>{}),onPatchToolOverrides:t?.onPatchToolOverrides??(()=>{}),onNavigate:t?.onNavigate??(()=>{})})}var MV;function NV(){return(NV=e((()=>{H(),br(),L(),vu(),O(),Po(),P(),Qn(),Iu(),Gt(),dV(),bV(),gV(),Pa(),MV=new Set([`mcp-not-yet-connected`,`mcp-not-yet-listed`,`mcp-stale-catalog`])})))()}function PV(e,t,n,r){if(!t?.length)return B;let i=[...new Map(t.map(e=>[e.profileId,e])).values()].map(t=>{let n=e.slice(t.start,t.end);return{profileId:t.profileId,label:n,name:n.replace(/^@/u,``)}});return V`<div class="chat-reply-preview composer-context-strip" role="status">
    <span class="composer-context-strip__label">
      <span class="composer-context-strip__icon" aria-hidden="true">${z.bell}</span>
      <span class="composer-context-strip__label-text">${I(`chat.mentions.selectedLabel`)}</span>
    </span>
    <span class="sr-only">${i.map(e=>e.name).join(`, `)}</span>
    <span
      class="composer-context-strip__people"
      aria-hidden="true"
      ${IV(JSON.stringify(i.map(e=>e.name)))}
    >
      ${i.map((e,t)=>V`<span class="composer-context-strip__person" title=${e.label}>
          ${Gx({id:e.profileId,name:e.name,identity:{type:`profile`,id:e.profileId},profileAvatarUrl:r?.get(e.profileId)})}
          <bdi class="composer-context-strip__person-name"
            >${e.name}${t<i.length-1?`,`:``}</bdi
          >
        </span>`)}
      <span class="composer-context-strip__more" dir="ltr" hidden></span>
    </span>
    <button
      type="button"
      class="chat-reply-preview__dismiss composer-context-strip__dismiss"
      aria-label=${I(`chat.mentions.remove`)}
      @click=${n}
    >
      ${z.x}
    </button>
  </div>`}var FV,IV;function LV(){return(LV=e((()=>{H(),_i(),ei(),L(),O(),Jx(),FV=class extends Kr{constructor(...e){super(...e),this.observer=typeof ResizeObserver>`u`?void 0:new ResizeObserver(()=>this.sync())}render(e){return B}update(e,[t]){let n=e.element instanceof HTMLElement?e.element:void 0;return this.element===n&&this.names===t?B:(this.element=n,this.names=t,this.schedule(),B)}schedule(){queueMicrotask(()=>{this.isConnected&&this.element?.isConnected&&(this.observer?.observe(this.element),this.sync(),document.fonts?.status===`loading`&&document.fonts.ready.then(()=>this.sync()))})}sync(){let e=this.element;if(!this.isConnected||!e?.isConnected)return;let t=[...e.querySelectorAll(`.composer-context-strip__person`)],n=e.querySelector(`.composer-context-strip__more`);if(!t.length||!n)return;for(let e of t)e.hidden=!1,e.style.maxWidth=``;n.hidden=!1,n.textContent=`+${t.length-1}`;let r=Number.parseFloat(getComputedStyle(e).columnGap),i=t.map(e=>e.getBoundingClientRect().width),a=e.clientWidth,o=n.getBoundingClientRect().width,s=t.length;if(i.reduce((e,t)=>e+t,0)+r*(t.length-1)>a){s=1;let e=i[0];for(;s<t.length&&e+r+i[s]+r+o<=a;)e+=r+i[s],s+=1}t.forEach((e,t)=>{e.hidden=t>=s}),n.hidden=s===t.length,n.textContent=`+${t.length-s}`,n.title=t.slice(s).map(e=>e.title).join(`, `),t[0].style.maxWidth=`${Math.max(0,a-(n.hidden?0:o+r))}px`}disconnected(){this.observer?.disconnect()}reconnected(){this.schedule()}},IV=Qr(FV)})))()}function RV(e,t){let n=e.currentTarget;if(!(n instanceof HTMLElement)||!n.hasAttribute(`open`)||!/^[1-5]$/u.test(e.key))return;let r=n.querySelector(`[data-chat-permission-shortcut="${e.key}"]`);if(!r||r.hasAttribute(`disabled`))return;let i=BV(r.dataset.chatPermissionOption);i!==void 0&&(e.preventDefault(),e.stopPropagation(),t(i),n.removeAttribute(`open`),n.querySelector(`[slot=trigger]`)?.focus())}function zV(e,t){return e?I(`chat.permissionControls.modes.${e}.label`):t?I(`chat.permissionControls.defaultWithMode`,{mode:I(`chat.permissionControls.modes.${t}.label`)}):I(`chat.permissionControls.default`)}function BV(e){return e===WV?null:UV.find(t=>t===e)}function VV(e){let t=e.disabled||e.pending,n=(e.mode??e.defaultMode)===`full`,r=zV(e.mode,e.defaultMode),i=n=>{t||n===`full`&&!e.canSelectFull||n!==(e.mode??null)&&e.onSelect(n)};return V`
    <wa-dropdown
      class="chat-controls__inline-select chat-controls__permission-picker"
      placement="top-start"
      @wa-after-show=${Zz}
      @keydown=${e=>RV(e,i)}
      @wa-select=${e=>{let t=BV(e.detail.item.value);t!==void 0&&i(t)}}
    >
      <button
        slot="trigger"
        type="button"
        class="chat-controls__inline-select-trigger chat-controls__permission-trigger ${e.disabled?`chat-controls__inline-select-trigger--disabled`:``} ${e.mode?``:`chat-controls__permission-trigger--default`} ${n?`chat-controls__permission-trigger--full`:``}"
        data-chat-permission-select="true"
        data-chat-select-value=${e.mode??``}
        aria-label=${`${I(`chat.permissionControls.label`)}: ${r}`}
        aria-disabled=${t?`true`:`false`}
        title=${e.disabledReason??I(`chat.permissionControls.help`)}
        ?disabled=${t}
      >
        <span class="chat-controls__permission-icon" aria-hidden="true"
          >${e.mode?KV[e.mode]:z.shieldCheck}</span
        >
      </button>
      <div class="chat-controls__popover-title chat-controls__permission-heading">
        ${I(`chat.permissionControls.label`)}
      </div>
      <wa-dropdown-item
        class="chat-controls__permission-learn-more learn-more-link"
        href=${HV}
        target=${qs}
        rel=${ga()}
      >
        ${I(`common.learnMore`)}
      </wa-dropdown-item>
      ${GV.map((n,r)=>{let i=n??WV,a=(e.mode??null)===n,o=n===`full`&&!e.canSelectFull;return V`
          <wa-dropdown-item
            class="chat-controls__permission-option ${a?`chat-controls__permission-option--selected`:``}"
            value=${i}
            data-chat-permission-option=${i}
            data-chat-permission-shortcut=${String(r+1)}
            role="menuitemradio"
            aria-checked=${a?`true`:`false`}
            aria-label=${o?`${zV(n,e.defaultMode)}. ${I(`chat.permissionControls.fullRequiresAdmin`)}`:zV(n,e.defaultMode)}
            title=${o?I(`chat.permissionControls.fullRequiresAdmin`):B}
            ?disabled=${t||o}
          >
            <span slot="icon" class="chat-controls__permission-option-icon" aria-hidden="true"
              >${n?KV[n]:z.shieldCheck}</span
            >
            <span class="chat-controls__permission-option-copy">
              <span class="chat-controls__permission-option-title">
                <span>${zV(n,e.defaultMode)}</span>
              </span>
              <span class="chat-controls__permission-option-description">
                ${I(n?`chat.permissionControls.modes.${n}.description`:`chat.permissionControls.defaultDescription`)}
              </span>
            </span>
            <span slot="details" class="chat-controls__permission-option-state" aria-hidden="true">
              ${a||o?B:V`<span class="chat-controls__permission-shortcut">${r+1}</span>`}
              ${o?V`<span class="chat-controls__permission-lock">${z.lock}</span>`:B}
              ${a&&!o?V`<span class="chat-controls__inline-select-check">${z.check}</span>`:B}
            </span>
          </wa-dropdown-item>
        `})}
    </wa-dropdown>
  `}var HV,UV,WV,GV,KV;function qV(){return(qV=e((()=>{H(),L(),O(),Ac(),Gs(),aB(),ds(),HV=`https://docs.openclaw.ai/gateway/permission-modes`,UV=[`read-only`,`guarded`,`workspace`,`full`],WV=`default`,GV=[null,...UV],KV={"read-only":z.shieldEllipsis,guarded:z.shieldLock,workspace:z.shieldCog,full:z.shieldAlert}})))()}function JV(e){return e.composedPath().some(e=>e instanceof HTMLElement&&e.localName===`openclaw-image-lightbox`)}function YV(e){let t=e.composedPath().find(e=>e instanceof HTMLElement&&(e.classList.contains(`markdown-inline-image`)||e.classList.contains(`markdown-inline-image-button`))),n=t instanceof HTMLImageElement?t:t?.querySelector(`.markdown-inline-image`)??null;return n?.closest(`a`)?null:n}function XV(e,t){if(e.defaultPrevented)return!1;let n=YV(e);return n?(e.preventDefault(),wT(t,n.currentSrc||n.src,n.alt.trim()||I(`chat.imageLightbox.untitled`)),!0):!1}function ZV(e,t){return e?V`
    <openclaw-image-lightbox
      .mediaKind=${e.kind??`image`}
      .gallery=${e.gallery}
      .connectVideo=${e.connectVideo}
      .loadFullResolution=${e.loadFullResolution}
      src=${e.src}
      .originalSrc=${e.originalSrc??``}
      .imageTitle=${e.title}
      .imageWidth=${e.width}
      .imageHeight=${e.height}
      @image-lightbox-close=${t}
    ></openclaw-image-lightbox>
  `:B}function QV(){return(QV=e((()=>{H(),Pd(),O(),TT()})))()}function $V(e){let t=e.replace(/[\\/]+$/u,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));if(n<0)return;let r=n===0?t.slice(0,1):t.slice(0,n);return Bt(r)||void 0}function eH(e){return e.startsWith(`/`)||e.startsWith(`\\`)||/^[A-Za-z]:[\\/]/.test(e)}function tH(e){if(!eH(e))return null;let t=e.trim().replaceAll(`\\`,`/`),n=/^[A-Za-z]:\//u.test(t)||t.startsWith(`//`),r=[],i=/^[A-Za-z]:\//u.test(t)?1:t.startsWith(`//`)?2:0;for(let e of t.split(`/`))if(e&&e!==`.`){if(e===`..`){r.length>i&&r.pop();continue}r.push(e)}let a=`${t.startsWith(`//`)?`//`:t.startsWith(`/`)?`/`:``}${r.join(`/`)}`.replace(/\/+$/u,``)||`/`;return n?a.toLowerCase():a}function nH(e,t){let n=tH(e);return n!==null&&n===tH(t)}function rH(e,t){let n=tH(t);return n!==null&&e.some(e=>{let t=tH(e);return t!==null&&(n===t||n.startsWith(t===`/`?t:`${t}/`))})}function iH(){return(iH=e((()=>{})))()}function aH(e){let t=e.loading?I(`chat.thread.loadingEarlier`):I(`chat.thread.showEarlier`);return V`
    <div class="chat-history-boundary ${e.loading?`chat-history-boundary--loading`:``}">
      <span class="chat-history-boundary__line" aria-hidden="true"></span>
      <button
        class="chat-history-boundary__action"
        type="button"
        ?disabled=${e.loading}
        aria-busy=${e.loading?`true`:`false`}
        aria-label=${t}
        @click=${e.onShowEarlier}
      >
        <span role="status">${t}</span>
      </button>
      <span class="chat-history-boundary__line" aria-hidden="true"></span>
    </div>
  `}function oH(){return(oH=e((()=>{H(),O()})))()}function sH(e){let t=e.currentAgentId??`main`,n=e.agents?.find(e=>e.id===t);return{id:t,avatar:Kt(e.assistantAvatarUrl,{identity:{avatar:e.assistantAvatar??void 0,avatarUrl:e.assistantAvatarUrl??void 0}})??(n?wt(n):null),textAvatar:en(e.assistantAvatar)??(n?Dt(n):null)}}function cH(e){if(!e.sessions)return[];let t=e.sessionHost??{},n=se(t),r=kn(e.sessionKey)?.agentId??n;return Ke(e.sessions.sessions,{agentId:r,defaultAgentId:n,filterByAgent:!0}).filter(t=>!xn(t.key,e.sessionKey)&&!sn(t.key,t.channel).channelSession).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0)||e.key.localeCompare(t.key)).slice(0,hH)}function lH(){return V`
    <div class="agent-chat__welcome-clawd" aria-hidden="true">
      <openclaw-mascot mood="idle" .size=${112}></openclaw-mascot>
    </div>
  `}function uH(e,t){return V`
    <div class="agent-chat__recents">
      <div class="agent-chat__recents-title">${I(`chat.welcome.recentSessions`)}</div>
      ${e.map(e=>{let n=ln(e);return V`
          <button type="button" class="agent-chat__recent" @click=${()=>t?.(e.key)}>
            <span class="agent-chat__recent-name">${st(e.key,e)}</span>
            ${n?V`<span class="agent-chat__recent-sub">${n}</span>`:B}
            <span class="agent-chat__recent-time">
              ${On(e.updatedAt,{fallback:``})}
            </span>
          </button>
        `})}
    </div>
  `}function dH(e){return V`
    <div class="agent-chat__suggestions">
      ${mH.map(t=>{let n=I(t);return V`
          <button
            type="button"
            class="agent-chat__suggestion"
            @click=${()=>{e.onDraftChange(n),e.onSend()}}
          >
            ${n}
          </button>
        `})}
    </div>
  `}function fH(e){let t=e.assistantName||`Assistant`,n=e.hint??V`${I(`chat.welcome.hintBeforeShortcut`)} ${kr(`/`)}
    ${I(`chat.welcome.hintAfterShortcut`)}`;return V`
    <div class="agent-chat__welcome-identity">
      <span class="agent-chat__welcome-avatar" role="img" aria-label=${t}>
        ${Fu(sH(e))}
      </span>
      <div class="agent-chat__welcome-identity-copy">
        <h2>${t}</h2>
        <p class="agent-chat__hint">${n}</p>
      </div>
    </div>
  `}function pH(e){if(e.modelSetupRequired)return V`
      <div class="agent-chat__welcome agent-chat__welcome--setup" role="alert">
        ${lH()}
        <h2>${I(`modelSetup.required.title`)}</h2>
        <p class="agent-chat__hint">${I(`modelSetup.required.body`)}</p>
        ${e.onModelSetup?V`<button class="btn primary" type="button" @click=${e.onModelSetup}>
                ${I(`modelSetup.required.action`)}
              </button>`:B}
      </div>
    `;let t=cH(e);return V`
    <div class="agent-chat__welcome" style="--agent-color: var(--accent)">
      ${fH(e)} ${e.composer??B}
      ${e.hideSecondaryContent?B:V`<div
              class="agent-chat__welcome-secondary ${e.fadeSecondaryContent?`agent-chat__welcome-secondary--hidden`:``}"
              aria-hidden=${e.fadeSecondaryContent?`true`:`false`}
              ?inert=${e.fadeSecondaryContent}
            >
              <div class="agent-chat__welcome-secondary-inner">
                ${t.length>0?uH(t,e.onOpenSession):dH(e)}
              </div>
            </div>`}
    </div>
  `}var mH,hH;function gH(){return(gH=e((()=>{H(),ku(),Rr(),O(),bd(),Ls(),Vt(),vn(),Je(),qt(),te(),M(),$o(),mH=[`chat.welcome.suggestions.whatCanYouDo`,`chat.welcome.suggestions.summarizeRecentSessions`,`chat.welcome.suggestions.configureChannel`,`chat.welcome.suggestions.checkSystemHealth`],hH=5})))()}function _H(e){let{owner:t,selection:n,client:r}=e;if(!n)return;let i=vH.get(t);(!i?.isCurrent()||i.model!==e.model||i.selection!==n)&&(i={model:e.model,selection:n,accounts:[],loading:!1,open:!1,error:null,isCurrent:e.ownsSelection},vH.set(t,i));let a=i,o=()=>vH.get(t)===a&&a.isCurrent(),s=async t=>{if(r&&o()&&!a.loading){a.loading=!0,a.error=null,e.onRequestUpdate();try{let e=await r.request(`users.listModelAccounts`,t?{cursor:t}:{});o()&&(a.accounts=t?[...a.accounts,...e.accounts]:e.accounts,a.nextCursor=e.nextCursor)}catch(e){o()&&(a.error=F(e,I(`profilePage.modelAccounts.inventoryFailed`)))}finally{o()&&(a.loading=!1,e.onRequestUpdate())}}},c=e.model.includes(`/`)?_t(e.model.slice(0,e.model.indexOf(`/`))):``,l=n.kind===`automatic`?void 0:n.authProfileId,u=e.modelAuthStatusResult?.providers.filter(e=>ub(_t(e.provider))===ub(c)).flatMap(e=>e.profiles)??[],d=e=>u.find(t=>t.profileId===e)?.email,f=u.find(e=>e.profileId===l),p=f?.displayName||n.label,m=[...new Set([f?.email,p].filter(Boolean))].join(` · `),h=e=>d(e?.authProfileId)??(e&&a.accounts.some(t=>t.authProfileId!==e.authProfileId&&t.provider===e.provider&&t.label===e.label)?e.authProfileId:void 0),g=`current`,_=[{value:g,label:p,description:d(l)??h(a.accounts.find(e=>e.authProfileId===l))},...a.accounts.filter(e=>e.provider===c&&e.authProfileId!==l).map(e=>({value:`account:${e.authProfileId}`,label:e.label,description:h(e)})),...e.onAutomatic?[{value:`automatic`,label:I(`chat.modelAccounts.automatic`)}]:[],...a.loading?[{value:`loading`,label:I(`common.loading`),disabled:!0}]:[],...a.nextCursor?[{value:`more`,label:I(`profilePage.modelAccounts.loadMore`),disabled:a.loading}]:[],...e.onManage?[{value:`manage`,label:I(`chat.modelAccounts.manage`)}]:[]],v=(t,n)=>{if(n.stopPropagation(),o()&&!e.disabled){if(t===`manage`)e.onManage?.();else if(t===`automatic`)e.onAutomatic?.();else if(t===`more`)n.preventDefault(),s(a.nextCursor);else{let n=a.accounts.find(e=>`account:${e.authProfileId}`===t&&e.provider===c);n&&e.onSelect(n)}}};return{onClose:()=>{a.open=!1,e.onRequestUpdate()},render:t=>V`
      <section
        class="chat-controls__provider-model-group"
        data-chat-account-selection=${n.kind}
        aria-label=${I(`chat.modelAccounts.section`)}
      >
        <button
          class="chat-controls__provider-heading chat-controls__account-heading"
          type="button"
          data-chat-account-group-toggle
          data-chat-model-group-toggle
          aria-expanded=${a.open}
          ?disabled=${e.disabled}
          @click=${()=>{a.open=!a.open,e.onRequestUpdate(),a.open&&a.accounts.length===0&&!a.loading&&s()}}
        >
          <span class="chat-controls__provider-icon chat-controls__target-icon" aria-hidden="true"
            >${z.users}</span
          >
          <span class="chat-controls__provider-label">${I(`chat.modelAccounts.section`)}</span>
          <span class="chat-controls__account-selection" title=${m}
            >${m}</span
          >
          <span class="chat-controls__inline-select-chevron" aria-hidden="true"
            >${a.open?z.chevronUp:z.chevronDown}</span
          >
        </button>
        <div
          class="chat-controls__provider-model-list"
          data-chat-model-list="true"
          role="listbox"
          aria-label=${I(`chat.modelAccounts.section`)}
        >
          ${mi(_,e=>e.value,(n,r)=>V`
              <button
                class="chat-controls__inline-select-option chat-controls__model-option"
                type="button"
                role="option"
                aria-selected=${n.value===g}
                data-chat-account-option=${n.value}
                data-chat-model-option=${`account:${n.value}`}
                data-chat-model-index=${t+r}
                data-chat-model-name=${n.label.toLocaleLowerCase()}
                data-chat-model-keywords=${n.description?.toLocaleLowerCase()??``}
                data-chat-model-provider-label="account"
                ?hidden=${!a.open}
                aria-disabled=${n.disabled?`true`:B}
                ?disabled=${e.disabled||n.disabled&&n.value!==`more`}
                @mouseenter=${Dz}
                @click=${e=>v(n.value,e)}
              >
                <span class="chat-controls__model-option-provider" aria-hidden="true"
                  >${z.users}</span
                >
                <span class="chat-controls__model-option-copy">
                  <span class="chat-controls__model-option-name">${n.label}</span>
                  ${n.description?V`<span class="chat-controls__auth-meta" title=${n.description}><span class="chat-controls__model-option-name">${n.description}</span></span>`:B}
                </span>
                <span class="chat-controls__model-option-action">
                  ${n.value===g?V`<span class="chat-controls__inline-select-check" aria-hidden="true">${z.check}</span>`:B}
                </span>
              </button>
            `)}
        </div>
        ${a.error?V`<span class="chat-controls__account-error" role="alert"
                >${a.error}</span
              >`:B}
      </section>
    `}}var vH;function yH(){return(yH=e((()=>{H(),vi(),L(),O(),cc(),Zt(),P(),yb(),Rz(),Dc(),vH=new WeakMap})))()}function bH(e,t={}){let n=t.projection===`available-credentials`,r=e.profiles.filter(e=>[`ok`,`expiring`,`static`].includes(e.status)),i=n?r:e.profiles,a=i.filter(e=>e.type===`oauth`||e.type===`token`),o=i.find(e=>e.profileId===t.authProfileId),s=!!(e.apiKey||i.some(e=>e.type===`api_key`));if(n&&t.authProfileId&&!o||([`missing`,`expired`].includes(e.status)||n&&e.profiles.length>0)&&!e.apiKey&&r.length===0)return{kind:`missing`,label:I(`modelSetup.candidates.signInNeeded`)};if(a.length&&o?.type!==`api_key`){if(n&&s&&!o)return{kind:`subscription`,label:`${I(`chat.modelControls.api`)} / ${I(`chat.modelControls.subscription`)}`};let t=o??(n&&a.length===1&&!s?a[0]:void 0),r=e.profiles.filter(e=>e.type===`oauth`||e.type===`token`).length;return{kind:`subscription`,label:o?.displayName||(r===1?e.usage?.plan:void 0)||I(`chat.modelControls.subscription`),detail:t?.email}}return s?{kind:`api`,label:I(`chat.modelControls.api`)}:void 0}function xH(){return(xH=e((()=>{O(),Ac(),ds()})))()}function SH(e){return e.replace(/^Inherited:\s*/u,``)}function CH(e){let t=e.thinking.options,n=t.length>0;if(!e.reserved&&!n&&!e.fastMode.supported)return B;let r=e.thinking.selection,i=r.value===`off`,a=-120+(i||r.kind===`unanchored`?0:t.length>1?r.index/(t.length-1):1)*240,o=r.source===`override`,s=o?r.value:``,c=r.kind===`anchored`?r.index:0,l=r.kind===`unanchored`,u=t.findLastIndex(e=>e.label!==`On`&&[`minimal`,`low`,`medium`,`high`,`xhigh`,`max`].includes(e.value)),d=e=>t[e]?.value===`ultra`?`ultra`:e===u?`max`:``,f=l?``:d(c),p=e=>t.length>1?e/(t.length-1)*100:0,m=SH(e.thinking.inherited.displayLabel),h=SH(r.displayLabel),g=o?h:I(`chat.modelControls.defaultWithLevel`,{level:m}),_=e.fastMode.currentOverride===`ultrafast`,v=_?I(`chat.modelControls.ultrafast`):e.fastMode.currentOverride===`auto`?e.fastMode.label:I(`chat.modelControls.fast`),y=n?h:I(`chat.modelControls.speed`),b=[n?e.fastMode.active?`${y} · ${v}`:y:`${y}: ${e.fastMode.label}`,e.fastMode.hint].filter(Boolean).join(` · `),x=t=>{t.finally(()=>e.onRequestUpdate?.()),e.onRequestUpdate?.()},S=[{value:e.fastMode.nextValue===``?``:`off`,label:I(`chat.modelControls.standard`)},...e.fastMode.nextValue===``?[]:[{value:`on`,label:I(`chat.modelControls.fast`)}],...e.fastMode.ultrafastSupported!==void 0||_?[{value:`ultrafast`,label:I(`chat.modelControls.ultrafast`),disabled:!e.fastMode.ultrafastSupported}]:[]],C=e.fastMode.currentOverride===`auto`?`auto`:_?`ultrafast`:e.fastMode.active?`on`:`off`,w=S.findIndex(e=>e.value===C&&!e.disabled),ee=w>=0?w:S.findIndex(e=>!e.disabled),te=e=>{if(![`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key))return;let t=e.currentTarget;if(!(t instanceof HTMLElement))return;let n=[...t.querySelectorAll(`button:not(:disabled)`)];if(n.length===0)return;let r=n.findIndex(e=>e===document.activeElement),i=e.key===`Home`?0:e.key===`End`?n.length-1:(r+([`ArrowLeft`,`ArrowUp`].includes(e.key)?-1:1)+n.length)%n.length;e.preventDefault(),n[i]?.focus(),n[i]?.click()},T=(e,n)=>{let r=n===void 0?void 0:t[n],i=n??c;e.style.setProperty(`--reasoning-fill`,`${p(i)}%`),e.dataset.effortBoost=r?d(i):f,e.setAttribute(`aria-valuetext`,r?SH(r.label):g);let a=e.closest(`.chat-controls__reasoning-panel`);a?.querySelectorAll(`[data-chat-thinking-preview-index]`).forEach(t=>{t.hidden=!r||t.dataset.chatThinkingPreviewIndex!==e.value});let o=a?.querySelector(`[data-chat-thinking-preview-committed]`);o&&(o.hidden=!!r)},ne=(e,t=!1)=>{t&&(e.value=String(c)),T(e)},E=e=>{let n=e.currentTarget,r=Number(n.value);t[r]&&T(n,r)},re=n=>{let r=n.currentTarget,i=t[Number(r.value)];ne(r),!e.thinkingDisabled&&i&&i.value!==s&&x(e.onThinkingSelect(i.value,e.sessionKey))},ie=e=>{let t=e.currentTarget;l&&Number(t.value)===c&&re(e)},D=e=>{l&&[`Home`,`ArrowLeft`,`ArrowDown`,`PageDown`].includes(e.key)&&re(e)},ae=t.length===1?t[0]:void 0,oe=r.kind===`anchored`&&r.index===0;return V`
    <details
      class="chat-controls__inline-select chat-controls__effort-picker ${e.reserved?`chat-controls__effort-picker--reserved`:``}"
      aria-hidden=${String(e.reserved===!0)}
      ?inert=${e.reserved===!0}
      @toggle=${e=>{let t=e.currentTarget;Jz(e),Qz(t)}}
    >
      <summary
        class="chat-controls__inline-select-trigger chat-controls__effort-trigger ${_?`chat-controls__effort-trigger--ultrafast`:``} ${e.disabled?`chat-controls__inline-select-trigger--disabled`:``}"
        data-chat-thinking-select="true"
        data-chat-thinking-value=${s}
        data-chat-thinking-disabled=${e.thinkingDisabled?`true`:`false`}
        data-chat-fast-mode=${e.fastMode.active?`true`:`false`}
        aria-label=${n?`${I(`chat.selectors.thinkingLevel`)}: ${b}`:b}
        aria-disabled=${e.disabled?`true`:`false`}
        title=${e.disabledReason??b}
        @click=${t=>{e.disabled&&t.preventDefault()}}
      >
        ${n?V`
                <span
                  class="chat-controls__effort-gauge ${i?`chat-controls__effort-gauge--off`:``}"
                  aria-hidden="true"
                >
                  ${Br(ni`
                  <path class="chat-controls__effort-gauge-dial" d="M3.34 17a10 10 0 1 1 17.32 0" />
                  <path
                    class="chat-controls__effort-gauge-needle"
                    d="M12 12V6"
                    style=${`transform: rotate(${a}deg)`}
                  />
                  <circle cx="12" cy="12" r="1" fill="currentColor" stroke="none" />
                `)}
                  ${e.fastMode.active?V`<span class="chat-controls__effort-fast-badge">${z.zap}</span>`:B}
                </span>
              `:V`<span class="chat-controls__effort-speed" aria-hidden="true">${z.zap}</span>`}
        ${e.fastMode.active?V`<span
                class="chat-controls__effort-zap ${_?`chat-controls__effort-zap--ultrafast`:``}"
                aria-hidden="true"
              >
                ${_?z.zap:B}${z.zap}
              </span>`:B}
        <span class="chat-controls__inline-select-label">${y}</span>
        <span class="chat-controls__inline-select-chevron" aria-hidden="true"
          >${z.chevronUp}</span
        >
      </summary>
      <wa-popup data-anchored-overlay>
        <div
          class="chat-controls__inline-select-menu chat-controls__effort-menu"
          aria-label=${I(n?`chat.modelControls.effort`:`chat.modelControls.fastMode`)}
        >
          ${n?V`
                  <div class="chat-controls__reasoning-panel">
                    <div class="chat-controls__reasoning-head">
                      <span class="chat-controls__effort-heading">
                        ${I(`chat.modelControls.effort`)}
                      </span>
                      <span class="chat-controls__effort-value" aria-hidden="true">
                        <span data-chat-thinking-preview-committed>${h}</span>
                        ${t.map((e,t)=>V`<span
                            data-chat-thinking-preview-index=${t}
                            hidden
                            >${SH(e.label)}</span
                          >`)}
                      </span>
                    </div>
                    ${t.length>1?V`
                            <div class="chat-controls__reasoning-slider">
                              <div class="chat-controls__reasoning-dots" aria-hidden="true">
                                ${t.map(e=>V`<span
                                    class="chat-controls__reasoning-dot"
                                    data-stop=${e.value}
                                  ></span>`)}
                              </div>
                              <input
                                class="chat-controls__reasoning-range ${o?``:`chat-controls__reasoning-range--inherit`} ${l?`chat-controls__reasoning-range--unanchored`:``}"
                                type="range"
                                min="0"
                                max=${t.length-1}
                                step="1"
                                .value=${String(c)}
                                style=${`--reasoning-fill: ${p(c)}%`}
                                data-chat-thinking-slider="true"
                                data-effort-boost=${f}
                                data-chat-thinking-values=${t.map(e=>e.value).join(`,`)}
                                aria-label=${I(`chat.selectors.thinkingLevel`)}
                                aria-valuetext=${g}
                                ?disabled=${e.thinkingDisabled}
                                @input=${E}
                                @change=${re}
                                @click=${ie}
                                @keydown=${D}
                                @pointercancel=${e=>ne(e.currentTarget,!0)}
                                @blur=${e=>ne(e.currentTarget,!0)}
                              />
                            </div>
                          `:ae?V`
                              <button
                                class="chat-controls__reasoning-option ${oe?`chat-controls__reasoning-option--selected`:``}"
                                data-chat-thinking-option=${ae.value}
                                type="button"
                                aria-pressed=${oe?`true`:`false`}
                                ?disabled=${e.thinkingDisabled}
                                @click=${t=>{if(t.stopPropagation(),e.thinkingDisabled||oe){t.preventDefault();return}x(e.onThinkingSelect(ae.value,e.sessionKey))}}
                              >
                                <span>${ae.label}</span>
                                ${oe?V`<span
                                        class="chat-controls__inline-select-check"
                                        aria-hidden="true"
                                        >${z.check}</span
                                      >`:B}
                              </button>
                            `:B}
                  </div>
                `:B}
          ${e.fastMode.supported?V`
                  <div class="chat-controls__speed-panel">
                    <span class="chat-controls__effort-heading"
                      >${I(`chat.modelControls.speed`)}</span
                    >
                    <div
                      class="chat-controls__speed-options"
                      role="radiogroup"
                      aria-label=${I(`chat.modelControls.speed`)}
                      @keydown=${te}
                    >
                      ${S.map((t,n)=>{let r=t.value===C;return V`<button
                          type="button"
                          role="radio"
                          class="chat-controls__speed-option"
                          data-chat-speed-option=${t.value}
                          aria-checked=${String(r)}
                          tabindex=${n===ee?`0`:`-1`}
                          ?disabled=${e.fastMode.disabled||t.disabled}
                          @click=${n=>{n.stopPropagation(),!e.fastMode.disabled&&!t.disabled&&t.value!==e.fastMode.currentOverride&&x(e.onFastModeSelect(t.value,e.sessionKey))}}
                        >
                          ${t.label}
                        </button>`})}
                    </div>
                  </div>
                `:B}
        </div>
      </wa-popup>
    </details>
  `}function wH(){return(wH=e((()=>{H(),Er(),L(),Qn(),O(),Ac(),aB(),ds()})))()}function TH(e){let t=e.trim().toLowerCase();return OH.get(t)??`${t.charAt(0).toUpperCase()}${t.slice(1)}`}function EH(e,t){let n=cf(e,t);return n?{label:I(`chat.modelControls.routes.${n}.label`),detail:I(`chat.modelControls.routes.${n}.detail`)}:t?{label:TH(t)}:void 0}function DH(e){if(!e)return;let t={runtime:e.label};return{label:I(`chat.modelControls.completionRoutes.${e.kind}.label`,t),detail:I(`chat.modelControls.completionRoutes.${e.kind}.detail`,t)}}var OH;function kH(){return(kH=e((()=>{O(),Ac(),ds(),OH=new Map([[`claude-cli`,`Claude CLI`],[`codex`,`Codex`],[`codex-cli`,`Codex`],[`google-gemini-cli`,`Gemini CLI`],[`openclaw`,`OpenClaw`]])})))()}function AH(){return kr(``,{ariaHidden:!0,hidden:!0,ref:e=>e?.setAttribute(`data-chat-model-shortcut`,`true`)})}function jH(e){return JSON.stringify([e.value,e.agentRuntime??null])}function MH(e,t,n){return(e.value===t||e.isDefault&&t===``)&&(e.agentRuntime===void 0||(e.agentRuntime??void 0)===n)}function NH(e){let t=e.contextTokens,n=e.contextWindow;return t&&n&&t!==n?I(`chat.modelControls.contextActiveAndMax`,{active:ve(t),maximum:ve(n)}):n?ve(n):``}function PH(e){let t=[Yu(e.provider),Eu(e.provider)].toSorted((e,t)=>t.length-e.length);for(let n of t){if(e.label.toLowerCase().startsWith(`${n.toLowerCase()} `))return e.label.slice(n.length+1);let t=` (${n.toLowerCase()})`;if(e.label.toLowerCase().endsWith(t))return e.label.slice(0,e.label.length-t.length)}return e.label}function FH(e){return Hu(e,{className:`chat-controls__provider-icon`})}function IH(e){let t=MH(e.entry,e.selectedModelValue,e.selectedAgentRuntime),n=PH(e.entry),r=EH(e.entry.provider,e.entry.agentRuntimeId),i=r?.detail!==void 0,a=r?.label??``,o=r?.detail??``,s=e.entry.supportsTools===!1?I(`chat.modelControls.chatOnlyHelp`):``,c=[o,s].filter(Boolean).join(` `),l=e.entry.isDefault&&e.sessionModelPinned,u=e.entry.disabled&&(e.entry.unavailableReason===`missing-auth`||e.entry.unavailableReason===`auth-failed`),d=u?e.onModelSetup:void 0,f=u?i?a:``:[NH(e.entry),a].filter(Boolean).join(` · `),p=u?I(`modelSetup.candidates.signInNeeded`):e.entry.unavailableReason===`unsupported-runtime`?I(`chat.modelControls.runtimeUnavailable`):``,m=V`<button
    class="chat-controls__inline-select-option chat-controls__model-option ${t?`chat-controls__inline-select-option--selected`:``}"
    data-chat-model-option=${e.entry.value}
    data-chat-model-runtime=${e.entry.agentRuntime??B}
    data-chat-model-default=${e.entry.isDefault?`true`:B}
    data-chat-model-index=${e.index}
    data-chat-model-keywords=${[e.entry.isDefault?I(`chat.modelControls.default`):``,a].filter(Boolean).join(` `).toLocaleLowerCase()}
    data-chat-model-name=${n.toLocaleLowerCase()}
    data-chat-model-provider-label=${Eu(e.entry.provider).toLocaleLowerCase()}
    role="option"
    hidden
    aria-selected=${t?`true`:`false`}
    title=${p||B}
    aria-label=${[n,a,p,s].filter(Boolean).join(`. `)}
    type="button"
    ?disabled=${e.disabled||e.entry.disabled&&!d&&!l}
    data-chat-model-setup=${d?`true`:B}
    @mouseenter=${Dz}
    @click=${t=>{if(e.entry.disabled&&!l){t.stopPropagation(),d?.();return}e.onSelect(e.entry,t)}}
  >
    <span class="chat-controls__model-option-provider">
      ${FH(e.entry.provider)}
    </span>
    <span class="chat-controls__model-option-copy">
      <span class="chat-controls__model-option-title">
        <span class="chat-controls__model-option-name">${n}</span>
        ${e.entry.isDefault?V`<span
                class="chat-controls__model-state-label chat-controls__model-state-label--default"
                >${I(`chat.modelControls.default`)}</span
              >`:B}
        ${f?V`<span class="chat-controls__model-option-meta">${f}</span>`:B}
        ${u?V`<span
                class="chat-controls__model-option-auth-warning"
                data-chat-model-auth-warning
              >
                ${z.alertTriangle}<span>${p}</span>
              </span>`:B}
        ${e.entry.supportsTools===!1?V`<span class="chat-controls__model-chat-only-info" aria-hidden="true"
                >${z.info}</span
              >`:B}
      </span>
    </span>
    <span class="chat-controls__model-option-action">
      ${t?V`<span class="chat-controls__inline-select-check" aria-hidden="true"
              >${z.check}</span
            >`:AH()}
    </span>
  </button>`;return c?V`<openclaw-tooltip .content=${c}> ${m} </openclaw-tooltip>`:m}function LH(e){return V`
    <button
      class="chat-controls__inline-select-option chat-controls__model-option"
      data-chat-model-option=${`target:${e.groupId}:${e.entry.value}`}
      data-chat-model-target=${e.entry.value}
      data-chat-model-index=${e.index}
      data-chat-model-name=${e.entry.label.toLocaleLowerCase()}
      data-chat-model-provider-label=${e.groupLabel.toLocaleLowerCase()}
      role="option"
      aria-selected="false"
      type="button"
      ?disabled=${e.disabled}
      @mouseenter=${Dz}
      @click=${t=>e.onSelect(e.groupId,e.entry.value,t)}
    >
      <span
        class="chat-controls__model-option-provider chat-controls__target-icon"
        aria-hidden="true"
        >${z.terminal}</span
      >
      <span class="chat-controls__model-option-copy">
        <span class="chat-controls__model-option-title">
          <span class="chat-controls__model-option-name">${e.entry.label}</span>
        </span>
      </span>
      <span class="chat-controls__model-option-action"> ${AH()} </span>
    </button>
  `}function RH(){return(RH=e((()=>{H(),L(),Rr(),Vu(),Qn(),O(),Ac(),Je(),kH(),Rz(),ds()})))()}function zH(e,t){let n=e.options.find(t=>t.id===e.selected);if(!n)return B;let r=I(`chat.modelControls.contextWindowAria`,{state:n.label}),i;if(e.options.length===2){let[a,o]=e.options.toSorted((e,t)=>e.contextWindow-t.contextWindow);if(!a||!o)return B;let s=n.id===o.id,c=s?a:o;i=V`
      <button
        class="chat-controls__speed-toggle ${s?`chat-controls__speed-toggle--active`:``}"
        data-chat-context-window-toggle=${c.id}
        type="button"
        role="switch"
        aria-checked=${s?`true`:`false`}
        aria-label=${r}
        ?disabled=${e.disabled}
        @click=${n=>{if(n.stopPropagation(),e.disabled){n.preventDefault();return}e.onSelect(c.id,t)}}
      >
        <span class="chat-controls__speed-toggle-thumb"></span>
      </button>
    `}else i=Wu({mode:`buttons`,variant:`compact`,className:`chat-controls__context-window-options`,value:n.id,ariaLabel:r,disabled:e.disabled,options:e.options.map(e=>({value:e.id,label:e.label})),onClick:(t,r)=>{t.stopPropagation(),(e.disabled||r===n.id)&&t.preventDefault()},onChange:n=>{e.onSelect(n,t)}});return V`
    <div class="chat-controls__fast-mode-row chat-controls__context-window-row">
      <span
        class="chat-controls__fast-mode-icon chat-controls__context-window-icon"
        aria-hidden="true"
        >${z.scrollText}</span
      >
      <span class="chat-controls__fast-mode-copy">
        <span class="chat-controls__fast-mode-title">
          ${I(`chat.modelControls.contextWindow`)}
        </span>
        <span class="chat-controls__fast-mode-description">${n.label}</span>
      </span>
      ${i}
    </div>
  `}function BH(){return(BH=e((()=>{H(),L(),ju(),O(),Ac(),ds()})))()}function VH(e){if(!e||e.status!==`loading`&&!(e.status===`ready`&&e.pendingProviders?.length))return B;let t=e.pendingProviders?.map(Eu).join(`, `),n=t?I(`chat.modelControls.refreshingProviderModels`,{providers:t}):I(`chat.modelControls.refreshingModels`);return V`
    <span class="chat-controls__model-refresh" data-chat-model-refresh role="status">
      <openclaw-tooltip .content=${n} .describe=${!1} open-on-click>
        <button class="chat-controls__model-refresh-details" type="button" aria-label=${n}>
          <span class="btn__spinner" aria-hidden="true"></span>
        </button>
      </openclaw-tooltip>
      <span class="sr-only">${n}</span>
    </span>
  `}function HH(e,t,n,r,i=I(`chat.modelControls.modelsUnavailable`),a,o){if(!e)return B;let{status:s}=e,c=!!e.pendingProviders?.length;if(s===`ready`&&n&&!c||t&&(s===`loading`||s===`ready`&&c))return B;let l=s===`offline`?I(`common.offline`):s===`error`?t?I(`chat.modelControls.modelsRefreshFailed`):i:s===`ready`&&!c?o??I(e.modelSelectionPolicy?.restricted?`chat.modelControls.noPermittedModels`:`chat.modelControls.noModelsAvailable`):I(`chat.modelControls.loadingModels`),u=e=>V`<button
    class="chat-controls__model-catalog-action"
    data-chat-model-target-retry=${e===`retry`?a?.groupId:B}
    data-chat-model-setup=${e===`setup`?`true`:B}
    type="button"
    ?disabled=${e===`retry`&&a?.disabled}
    @click=${t=>{t.stopPropagation(),e===`retry`?a?.onRetry(a.groupId):r?.()}}
  >
    ${I(e===`retry`?`common.retry`:`chat.modelControls.emptyModelsAction`)}
  </button>`;return V`
    <div
      class="chat-controls__model-catalog-state ${t?``:`chat-controls__model-catalog-state--empty`}"
      data-chat-model-catalog-state=${s}
      role="status"
      aria-live="polite"
    >
      <span class="chat-controls__model-catalog-state-label">
        ${s===`error`?z.alertTriangle:s===`loading`||s===`idle`||s===`ready`&&c?V`<span class="btn__spinner" aria-hidden="true"></span>`:B}
        <span>${l}</span>
      </span>
      ${s===`error`&&a?u(`retry`):B}
      ${s===`ready`&&!n&&r?u(`setup`):B}
    </div>
  `}function UH(){return(UH=e((()=>{H(),L(),Vu(),Qn(),O(),Ac(),ds()})))()}function WH(e){let t=e.currentTarget.closest(`details`);t&&(t.open=!1,e.detail===0&&t.querySelector(`summary`)?.focus({preventScroll:!0}))}function GH(e,t,n=!1){return V`<div
    class="chat-controls__provider-model-list"
    data-chat-model-list="true"
    data-chat-model-more=${n?``:B}
    role="listbox"
    aria-label=${e}
  >
    ${t}
  </div>`}function KH(e){let t=e.modelOptions.find(e=>e.isDefault),n=e.modelOptions.find(t=>MH(t,e.selectedModelValue,e.selectedAgentRuntime)),r=n??t,i=e.triggerModelValue,a=i===void 0?n:i===``?void 0:e.modelOptions.find(t=>MH(t,i,e.selectedAgentRuntime)),o=a?.supportsTools===!1,s=e.contextWindow?.options.find(t=>t.id===e.contextWindow?.selected),c=s!==void 0&&e.contextWindow?.selected!==e.contextWindow?.defaultId,l=[e.triggerStatusLabel??e.triggerModelLabel,o?I(`chat.modelControls.chatOnly`):``].filter(Boolean).join(` · `),u=!e.triggerLoading&&!e.triggerStatusLabel&&a&&Rd(a.provider)?Hu(a.provider,{className:`chat-controls__trigger-provider-icon`}):B,d=e=>cf(e.provider,e.agentRuntimeId)===`claudeCli`?`claude-cli`:e.provider,f=new Set(e.modelOptions.filter(e=>e.recommended).map(d)),p=new Map;for(let t of e.modelOptions){let e=d(t),n=p.get(e)??{lead:[],more:[]};t.isDefault?n.lead.unshift(t):t===r?n.lead.splice(+!!n.lead[0]?.isDefault,0,t):t.recommended||!f.has(e)?n.lead.push(t):n.more.push(t),p.set(e,n)}let m=[...p],h=r&&d(r),g=n&&d(n),_=m.findIndex(([e])=>e===h);_>0&&m.unshift(...m.splice(_,1));let v=m.flatMap(([,{lead:e,more:t}])=>[...e,...t]),y=new Map(v.map((e,t)=>[jH(e),t])),b=t=>IH({disabled:e.disabled,entry:t,index:y.get(jH(t))??0,selectedModelValue:e.selectedModelValue,selectedAgentRuntime:e.selectedAgentRuntime,sessionModelPinned:e.sessionModelPinned,onSelect:ee,onModelSetup:e.onModelSetup}),x=e.targetGroups??[],S=x.reduce((e,t)=>e+t.options.length,0),C=e.modelOptions.length+S>0||x.some(e=>e.status!==`ready`),w=e.modelOptions.some(e=>!e.disabled),ee=(t,n)=>{n.stopPropagation();let r=t.isDefault&&e.sessionModelPinned;if(e.disabled||e.modelSelectionLocked||t.disabled&&!r){n.preventDefault();return}e.onModelSelect(t.commitValue,e.sessionKey,t.runtimeOverride??(t.isDefault||t.agentRuntime!==void 0?null:void 0)).finally(()=>e.onRequestUpdate?.()),e.onRequestUpdate?.(),WH(n)},te=(t,n,r)=>{if(r.stopPropagation(),e.disabled||e.modelSelectionLocked){r.preventDefault();return}e.onTargetSelect?.(t,n),WH(r)};return V`
    <details
      class="chat-controls__inline-select chat-controls__model-picker"
      data-chat-autotype-shortcuts
      ?open=${e.open===!0}
      ${di(e=>Lz(e))}
      @keydown=${Iz}
      @toggle=${t=>{let n=t.currentTarget;if(e.onOpenChange?.(n.open),Jz(t),Qz(n),!n.open){e.accountSection?.onClose(),Mz(n);return}e.onOpen?.(),Lz(n);let r=n.ownerDocument.activeElement;requestAnimationFrame(()=>{n.isConnected&&n.open&&n.ownerDocument.activeElement===r&&n.querySelector(`[data-chat-model-search]`)?.focus({preventScroll:!0})})}}
    >
      <summary
        class="chat-controls__inline-select-trigger chat-controls__model-trigger ${e.triggerLoading?`chat-controls__model-trigger--loading`:``} ${e.disabled?`chat-controls__inline-select-trigger--disabled`:``}"
        data-chat-model-select="true"
        data-chat-model-locked=${e.modelSelectionLocked?`true`:`false`}
        data-chat-select-value=${e.selectedModelValue}
        data-chat-model-tools=${o?`unavailable`:`available`}
        aria-label=${`${I(`chat.selectors.model`)}: ${l}${e.selectionScopeDescription?`. ${e.selectionScopeDescription}`:``}`}
        aria-busy=${e.triggerLoading?`true`:`false`}
        aria-disabled=${e.disabled?`true`:`false`}
        title=${e.disabledReason?.trim()||B}
        @click=${t=>{if(e.disabled){t.preventDefault();return}t.currentTarget.focus({preventScroll:!0})}}
      >
        ${o?V`
                <openclaw-tooltip .content=${I(`chat.modelControls.chatOnlyHelp`)}>
                  <span class="chat-controls__model-capability-badge" aria-hidden="true">
                    ${z.alertTriangle}
                    <span>${I(`chat.modelControls.chatOnly`)}</span>
                  </span>
                </openclaw-tooltip>
              `:B}
        ${u}
        <span class="chat-controls__inline-select-label">
          ${e.triggerLoading?V`<span
                  class="skeleton chat-controls__model-trigger-skeleton"
                  aria-hidden="true"
                ></span>`:e.triggerStatusLabel??e.triggerModelLabel}
        </span>
        ${c?V`
                <span
                  class="chat-controls__locked-model-badge chat-controls__model-context-badge"
                  data-chat-model-context-badge
                >
                  ${s.label}
                </span>
              `:B}
        <span class="chat-controls__inline-select-chevron" aria-hidden="true"
          >${z.chevronUp}</span
        >
      </summary>
      <wa-popup data-anchored-overlay>
        <div
          class="chat-controls__inline-select-menu chat-controls__model-menu"
          aria-label=${I(`chat.selectors.model`)}
        >
          ${e.modelSelectionLocked?V`
                  <div
                    class="chat-controls__locked-model"
                    aria-label=${I(`chat.selectors.modelLockedLabel`)}
                  >
                    <span class="chat-controls__inline-select-section-label">
                      ${I(`chat.selectors.modelSection`)}
                    </span>
                    <span class="chat-controls__locked-model-value"
                      >${e.triggerModelLabel}</span
                    >
                    <span class="chat-controls__locked-model-badge">
                      ${I(`chat.selectors.modelLocked`)}
                    </span>
                  </div>
                `:V`
                  ${C||e.accountSection?V`
                          <div class="chat-controls__model-search-wrap">
                            ${z.search}
                            <input
                              class="chat-controls__model-search"
                              data-chat-model-search="true"
                              type="search"
                              role="combobox"
                              aria-autocomplete="list"
                              autocomplete="off"
                              spellcheck="false"
                              placeholder=${I(`chat.modelControls.searchModels`)}
                              aria-label=${I(`chat.modelControls.searchModels`)}
                              ?disabled=${e.disabled}
                              @input=${e=>jz(e.currentTarget)}
                              @keydown=${Fz}
                            />
                            ${e.modelOptions.length>0?VH(e.modelCatalogState):B}
                          </div>
                        `:B}
                  ${HH(e.modelCatalogState,e.modelOptions.length>0,w,e.onModelSetup,void 0,void 0,e.modelOptions.some(e=>e.unavailableReason===`missing-auth`&&cf(e.provider,e.agentRuntimeId)===`claudeCli`)?I(`chat.modelControls.claudeCliNotReady`):void 0)}
                  ${C||e.accountSection?V`
                          <div class="chat-controls__model-options">
                            ${mi(m,([e])=>e,([t,{lead:n,more:r}])=>{let i=[...n,...r],a=Eu(t),o=I(`chat.modelControls.providerModels`,{provider:a}),s=e.providerAuth?.get(ub(t)),c=s&&!(s.kind===`missing`&&i.some(e=>e.disabled&&(e.unavailableReason===`missing-auth`||e.unavailableReason===`auth-failed`))),l=c?[s.label,s.detail].filter(Boolean).join(` · `):void 0,u=cf(t),d=u?I(`chat.modelControls.routes.${u}.detail`):void 0;return V`
                                  <section
                                    class="chat-controls__provider-model-group"
                                    data-chat-model-provider-group=${t}
                                    aria-label=${o}
                                  >
                                    <div
                                      class="chat-controls__provider-heading"
                                      data-chat-model-provider=${t}
                                      title=${[d,l].filter(Boolean).join(` · `)||B}
                                    >
                                      <button
                                        class="chat-controls__provider-toggle"
                                        type="button"
                                        data-chat-model-group-toggle
                                        data-chat-model-provider-toggle
                                        aria-expanded=${String(t===g)}
                                        aria-label=${`${o} (${i.length})`}
                                        aria-description=${d??B}
                                        ?disabled=${e.disabled}
                                        @click=${Nz}
                                      >
                                        ${FH(t)}
                                        <span class="chat-controls__provider-label"
                                          >${a}</span
                                        >
                                        <span>${i.length}</span>
                                        <span
                                          class="chat-controls__inline-select-chevron"
                                          aria-hidden="true"
                                          >${z.chevronDown}</span
                                        >
                                      </button>
                                      ${c?V`<span class="chat-controls__auth-meta" data-auth-kind=${s.kind}><span aria-hidden="true">${s.kind===`subscription`?z.circleUser:s.kind===`api`?z.key:z.alertTriangle}</span><span class="chat-controls__auth-meta-label">${l}</span></span>`:B}
                                      ${e.onProviderSettings?V`<button
                                              class="chat-controls__provider-settings"
                                              data-chat-model-provider-settings
                                              type="button"
                                              aria-label=${I(`chat.modelControls.configureModels`)}
                                              @click=${n=>{n.stopPropagation(),e.onProviderSettings?.(t)}}
                                            >
                                              ${z.settings}
                                            </button>`:B}
                                    </div>
                                    ${GH(o,mi(n,jH,b))}
                                    ${r.length>0?V`
                                            <button
                                              class="chat-controls__inline-select-option chat-controls__model-more-toggle"
                                              type="button"
                                              data-chat-model-more-toggle
                                              aria-expanded="false"
                                              hidden
                                              ?disabled=${e.disabled}
                                              @click=${Nz}
                                            >
                                              <span
                                                class="chat-controls__model-option-provider"
                                                aria-hidden="true"
                                              ></span>
                                              <span
                                                >${I(`chat.modelControls.allModels`,{count:String(r.length)})}</span
                                              >
                                              <span
                                                class="chat-controls__inline-select-chevron"
                                                aria-hidden="true"
                                                >${z.chevronDown}</span
                                              >
                                            </button>
                                            ${GH(o,mi(r,jH,b),!0)}
                                          `:B}
                                  </section>
                                `})}
                            ${mi(x,e=>e.id,t=>V`
                                <section
                                  class="chat-controls__provider-model-group"
                                  data-chat-model-target-group=${t.id}
                                  aria-label=${t.label}
                                >
                                  <div class="chat-controls__provider-heading">
                                    <span
                                      class="chat-controls__provider-icon chat-controls__target-icon"
                                      aria-hidden="true"
                                      >${z.terminal}</span
                                    >
                                    <span>${t.label}</span>
                                  </div>
                                  ${t.status===`ready`?B:HH({hasSnapshot:!1,status:t.status},!1,!1,void 0,t.errorLabel,e.onTargetRetry?{disabled:e.disabled,groupId:t.id,onRetry:e.onTargetRetry}:void 0)}
                                  ${GH(t.label,mi(t.options,e=>e.value,(n,r)=>LH({disabled:e.disabled,entry:n,groupId:t.id,groupLabel:t.label,index:v.length+r,onSelect:te})))}
                                </section>
                              `)}
                            ${e.accountSection?.render(v.length+S)??B}
                          </div>
                          <div
                            class="chat-controls__model-search-empty"
                            data-chat-model-search-empty
                            hidden
                          >
                            ${I(`chat.modelControls.noMatchingModels`)}
                          </div>
                          ${e.contextWindow?zH(e.contextWindow,e.sessionKey):B}
                        `:B}
                `}
          ${e.modelSelectionLocked&&e.accountSection?V`<div class="chat-controls__model-options">
                  ${e.accountSection.render(0)}
                </div>`:B}
          ${e.modelCatalogState?.modelSelectionPolicy?.restricted?V`<div class="chat-controls__model-catalog-state" data-chat-model-policy>
                  ${I(`chat.modelControls.restrictedModelsHelp`)}
                </div>`:B}
        </div>
      </wa-popup>
    </details>
  `}function qH(){return(qH=e((()=>{H(),Jr(),vi(),L(),Qn(),Vu(),O(),Ac(),yb(),BH(),UH(),RH(),Rz(),aB(),ds()})))()}function JH(e){let t=_t(e);return eU[t]??t}function YH(e){let t=new Map,n=new Map;for(let r of e){let e=r.id.trim().toLowerCase(),i=`${_t(r.provider)}/${e}`,a=t.get(i)??[];a.push(r),t.set(i,a);let o=n.get(e)??[];o.push(r),n.set(e,o)}return{provider(e,r=``){let i=e.trim(),a=i.toLowerCase(),o=t.get(a)?.[0];if(o)return JH(o.provider);let s=n.get(a)??[],c=_t(r),l=s.some(e=>_t(e.provider)===c);if(c&&(s.length===0||l))return JH(c);if(s.length===1)return JH(s[0]?.provider??``);let u=i.indexOf(`/`);return u>0?JH(i.slice(0,u)):`other`},entry(e){let r=e.trim().toLowerCase(),i=r.indexOf(`/`),a=i>0?`${_t(r.slice(0,i))}/${r.slice(i+1)}`:r;if(!a)return;let o=t.get(a)??[];if(o.length>0)return o.find(e=>e.provider.trim().toLowerCase()===`openai`)??o[0];let s=n.get(a)??[];return s.length===1?s[0]:void 0}}}function XH(e,t,n=e?.agentRuntime?.id){let r=e&&_t(e.provider)===`openai`&&e.name.trim()||t;if(n!==`codex`||!e)return r;let i=new Set([e.agentRuntime?.id,...(e.runtimeChoices??[]).map(e=>e.agentRuntime.id)]);return i.has(`openclaw`)&&i.has(`codex`)?`${r} codex`:r}function ZH(e){return/^Default \((.+)\)$/u.exec(e)?.[1]??e}function QH(e,t,n){if(e.status!==`offline`){if(e.status===`error`)return t===0?I(`chat.modelControls.modelsUnavailable`):void 0;if(!e.hasSnapshot&&[`idle`,`loading`].includes(e.status))return n?void 0:I(`chat.modelControls.loadingModels`);if(e.hasSnapshot&&t===0)return I(`chat.modelControls.noModelsAvailable`)}}function $H(e){let t=YH(e.modelCatalog),n=e.modelCatalogState,r=n.modelSelectionPolicy,i=n.retired===!0,a=n.initialized===!1,o=i||a||r?.restricted===!0,s=e=>!o||!i&&t.entry(e)?e:``,c=tU.get(e.modelSelectionTarget??``),l=new Map,u=e=>JH(ub(_t(e)));for(let t of fb((e.modelAuthStatusResult?.providers??[]).map(e=>Object.assign({},e,{provider:u(e.provider)})))){let n=bH(t,{authProfileId:e.accountSelection?.kind===`automatic`?void 0:e.accountSelection?.authProfileId});n&&l.set(u(t.provider),n)}let{currentOverride:d,defaultModel:f,defaultLabel:p,modelOverrideSource:m,options:h}=rs({activeSession:e.selectedSession,agentDefaultModel:e.agentDefaultModel,chatModelCatalog:e.modelCatalog,modelOverrides:e.modelOverrides??{},sessionKey:e.sessionKey,sessionsResult:e.sessionsResult,modelSelectionPolicy:r,catalogRetired:i,catalogInitialized:n.initialized}),g=s(d),_=Kc({catalog:e.modelCatalog,defaults:e.thinkingDefaults,session:e.thinkingSession,sessionKey:e.sessionKey,sessionsResult:e.sessionsResult}),v=e.selectedSession,y=!!(e.activeRunId&&e.activeRunSessionKey&&xn(e.activeRunSessionKey,e.sessionKey)),b=y?e.activeRunId:null,x=y?e.stream:null,S=sc({activeRunId:b,catalog:e.modelCatalog,connected:e.connected,currentModelOverride:g,fastModeTarget:e.fastModeTarget??e.selectedSession,gatewayAvailable:e.gatewayAvailable,loading:e.loading,sending:e.sending,sessionsResult:e.sessionsResult,stream:x}),C=e.modelSwitching?{...S,disabled:!0}:S,w=v?.runtimeSelectionLocked===!0,ee=v?.modelProvider??``,te=Object.hasOwn(e.modelOverrides??{},e.sessionKey),T=Zl(v??{}),ne=e.sending||!!b||x!==null||T,E=T&&!e.sending&&(!b||(v?.activeRunIds?v.activeRunIds.includes(b):e.modelObservedRunId===b)),re=s(te?``:ne?E&&v?.activeModel?.trim()&&v.activeModelProvider?.trim()?At(v.activeModel,v.activeModelProvider):``:Wt(v?.activeModel,v?.activeModelProvider,e.modelCatalog)),ie=ne&&!re,D=re||g,ae=ie&&!D&&(e.modelSelectionLocked||!f),oe=e.sessionsResult?.defaults?.modelProvider??``,se=t.entry(f),ce=XH(se,p),le=f&&ce!==p?I(`chat.modelControls.defaultWithModel`,{model:ce}):p,ue=f.trim().toLowerCase(),de=h.flatMap(n=>{let r=t.entry(n.value),i=n.value.trim().toLowerCase()===ue||r!==void 0&&r===se,a=r?.agentRuntime,o=a&&(a.source===`model`||a.source===`provider`||cf(r?.provider??``,a.id))?a.id.trim():void 0,s={...r?.runtimeChoices?.length&&!w?{agentRuntime:a?.id??null,agentRuntimeId:a?.id}:{},commitValue:i?``:n.value,isDefault:i,value:n.value,label:XH(r,n.label),provider:t.provider(n.value,i?oe:n.value===g?ee:``)};o&&(s.agentRuntimeId=o),i&&PO(e.selectedSession?.agentRuntime)&&cf(s.provider)&&(s.agentRuntimeId=void 0),r?.contextWindow&&(s.contextWindow=r.contextWindow),typeof r?.supportsTools==`boolean`&&(s.supportsTools=r.supportsTools),r?.recommended&&(s.recommended=!0),n.disabled&&(s.disabled=!0,s.unavailableReason=n.unavailableReason);let c=[s];for(let e of w?[]:r?.runtimeChoices??[])e.manualSelectionAllowed!==!1&&c.push({value:n.value,commitValue:n.value,isDefault:!1,label:XH(r,n.label,e.agentRuntime.id),provider:s.provider,agentRuntime:e.agentRuntime.id,runtimeOverride:e.agentRuntime.id,agentRuntimeId:e.agentRuntime.id,contextWindow:e.contextWindow,supportsTools:e.supportsTools,disabled:e.available===!1,unavailableReason:e.unavailableReason,...s.recommended?{recommended:!0}:{}});return c}),fe=e.selectedSession?.modelOverrideSource===`user`||!w&&PO(e.selectedSession?.agentRuntime);f&&(fe||r?.restricted)&&!i&&!a&&!de.some(e=>e.isDefault)&&de.unshift({commitValue:``,isDefault:!0,value:f,label:ZH(le),provider:t.provider(f,oe)});let pe=t.entry(g);g&&(!o||pe)&&pe?.manualSelectionAllowed!==!1&&de.length>0&&!de.some(e=>e.value===g)&&de.push({commitValue:g,...pe?.contextWindow?{contextWindow:pe.contextWindow}:{},...typeof pe?.supportsTools==`boolean`?{supportsTools:pe.supportsTools}:{},...pe?.available===!1?{disabled:!0,unavailableReason:pe.unavailableReason}:{},isDefault:!1,value:g,label:XH(pe,pe?.name.trim()||g),provider:t.provider(g,ee)});let me=e.selectedAgentRuntime??e.selectedSession?.agentRuntime?.id??t.entry(g||f)?.agentRuntime?.id,he=se?.agentRuntime?.id??e.sessionsResult?.defaults?.agentRuntime?.id,ge=m===null&&(!me||me===he)?``:g||f,_e=de.find(e=>MH(e,ge,me)),ve=v?.model?t.entry(Wt(v.model,v.modelProvider,e.modelCatalog)):void 0,ye=_e?t.entry(_e.value):void 0,be=v?.agentRuntime?.id.trim().toLowerCase(),xe=(FO(ye,_e?.agentRuntime)?.agentRuntime?.id??(_e?.isDefault?e.sessionsResult?.defaults?.agentRuntime?.id:void 0))?.trim().toLowerCase(),Se=!!be&&be===xe;!e.modelSwitching&&_e&&v?.contextTokens&&Se&&ve!==void 0&&ve===ye&&(_e.contextTokens=v.contextTokens);let Ce=re?null:me??he,we=e.modelSelectionLocked===!0&&!D?I(`chat.selectors.lockedSessionModel`):XH(t.entry(D||f),ZH(h.find(e=>e.value===D)?.label??(t.entry(D)?.name.trim()||D||p)),D||f?Ce:null),Te=!n.hasSnapshot&&[`idle`,`loading`].includes(n.status),Ee=!!(g||m===null&&f),De=i?QH(n,0,!1):r?.restricted&&!g&&!f?I(de.length?`chat.modelControls.selectionRequired`:`chat.modelControls.noPermittedModels`):QH(n,de.length,Ee),Oe=n.hasSnapshot&&(n.status===`ready`||n.status===`error`)&&_e?.disabled!==!0&&de.some(e=>!e.disabled),ke=e.sending||!!e.activeRunId||e.stream!==null,Ae=!e.connected||ke||e.modelSwitching||!e.gatewayAvailable,je=Ae||e.loading,Me=!!e.effortMutationDisabledReason,O=Ae||!!e.modelMutationDisabledReason,Ne=je||Me||!n.hasSnapshot||_.options.length===0&&_.selection.source==="default",Pe=e.contextWindowTarget??v??e.sessionsResult?.defaults,Fe=Pe?.contextWindows??[],Ie=Pe?.contextWindow??Pe?.contextWindowDefault??``,Le=Pe?.contextWindowDefault,Re=je||Me||_.options.length===0&&C.disabled,ze=!Oe&&(Te||e.modelPickerOpen===!0),Be=Oe||ze;return V`
    <div class="chat-controls__session chat-controls__model chat-controls__model-settings">
      ${KH({providerAuth:e.modelAuthStatusResult?l:void 0,accountSection:e.renderAccountSection?.(g||f),contextWindow:Fe.length>1?{options:Fe,selected:Ie,...Le?{defaultId:Le}:{},disabled:je||!!e.contextWindowMutationDisabledReason,onSelect:async(t,n)=>{await e.onContextWindowSelect?.(t,n)}}:void 0,disabled:O,disabledReason:e.modelMutationDisabledReason,modelCatalogState:n,open:e.modelPickerOpen,modelSelectionLocked:e.modelSelectionLocked===!0,selectionScopeDescription:r?.restricted?I(`chat.modelControls.restrictedModelsHelp`):c?I(c):void 0,modelOptions:de,targetGroups:e.modelPickerTargetGroups,selectedModelValue:ge,selectedAgentRuntime:me,sessionModelPinned:fe,sessionKey:e.sessionKey,triggerModelLabel:ZH(we),triggerModelValue:ae?``:D||void 0,triggerStatusLabel:ae?I(`chat.modelControls.modelPending`):ie||e.modelSelectionLocked?void 0:De,triggerLoading:!ie&&!e.modelSelectionLocked&&Te&&!Ee,onModelSetup:r?.restricted||i||a?void 0:e.onModelSetup,onProviderSettings:r?.restricted||i||a?void 0:e.onProviderSettings,onOpen:e.onModelPickerOpen,onOpenChange:e.onModelPickerOpenChange,onModelSelect:async(t,n,r)=>e.onModelSelect?.(t,n,r),onTargetRetry:e.onModelPickerTargetRetry,onTargetSelect:e.onModelPickerTargetSelect,onRequestUpdate:e.onRequestUpdate})}
      ${Be?CH({disabled:Re,disabledReason:e.effortMutationDisabledReason,fastMode:{...C,disabled:C.disabled||je||Me},sessionKey:e.sessionKey,thinkingDisabled:Ne,thinking:_,onFastModeSelect:async(t,n)=>e.onFastModeSelect?.(t,n),onRequestUpdate:e.onRequestUpdate,onThinkingSelect:async(t,n)=>e.onThinkingSelect?.(t,n),reserved:ze}):B}
    </div>
  `}var eU,tU;function nU(){return(nU=e((()=>{H(),O(),Ac(),Zt(),ca(),Bc(),yb(),xH(),M(),wH(),RH(),qH(),ds(),eU={"google-gemini-cli":`google`,"moonshot-ai":`moonshot`,moonshotai:`moonshot`,"opencode-go":`opencode`,"opencode-zen":`opencode`},tU=new Map([[`session`,`chat.modelControls.selectionScopeSession`],[`agent`,`chat.modelControls.selectionScopeAgent`],[`global`,`chat.modelControls.selectionScopeGlobal`]])})))()}function rU(){window.dispatchEvent(new CustomEvent(zr))}function iU(){return(iU=e((()=>{Vr()})))()}var aU=t({default:()=>Sf});function oU(){return(oU=e((()=>{Mf()})))()}var sU=t({boundSessionRosterRecord:()=>gU,hydrateSessionRoster:()=>vU,parseSessionRosterRecord:()=>pU,readSessionRoster:()=>_U});function cU(e){return e===null||typeof e==`string`}function lU(e){return ou(e)&&Object.entries(e).every(([e,t])=>e===`agentId`?typeof t==`string`:e===`limit`?typeof t==`number`&&Number.isFinite(t):[`includeGlobal`,`includeUnknown`,`configuredAgentsOnly`,`includeDerivedTitles`,`includeLastMessage`,`ownerFirst`,`excludeDock`].includes(e)&&typeof t==`boolean`)}function uU(e){return ou(e)&&e.version===1&&typeof e.scope==`string`&&e.scope.length>0&&typeof e.savedAt==`number`&&Number.isFinite(e.savedAt)&&e.savedAt>=0&&cU(e.profileId)&&cU(e.agentId)&&lU(e.query)&&ou(e.result)&&Array.isArray(e.result.sessions)&&e.result.sessions.length<=200&&e.result.sessions.every(e=>ou(e)&&typeof e.key==`string`)&&Array.isArray(e.groups)&&e.groups.every(e=>typeof e==`string`)&&Array.isArray(e.groupSettings)&&e.groupSettings.every(e=>ou(e)&&typeof e.name==`string`&&typeof e.position==`number`)&&Array.isArray(e.sectionOrder)&&e.sectionOrder.every(e=>typeof e==`string`)}function dU(e){return{...e,sessions:e.sessions.filter(e=>e.incognito!==!0).map(fU)}}function fU(e){let t={...e};return delete t.hasActiveRun,delete t.activeRunIds,delete t.activeModel,delete t.activeModelProvider,delete t.status,delete t.runtimeMs,delete t.runtimeSampledAt,delete t.snapshotAt,delete t.agentStatus,delete t.observerDigest,delete t.swarmPhase,delete t.swarmPhaseRank,delete t.swarmLog,delete t.placement,delete t.placementMove,delete t.subagentRunState,delete t.hasActiveSubagentRun,delete t.channelAvatarUrl,t}function pU(e){return uU(e)?e:null}function mU(e){let{source:t,rowMode:n,...r}=f({...e,includeDerivedTitles:e.includeDerivedTitles??!0,includeLastMessage:e.includeLastMessage??!0});return r}function hU(e,t){return e.agentId===t.agentId&&(e.query.agentId===void 0||e.query.agentId.trim()===e.agentId)&&(t.query.agentId===void 0||t.query.agentId.trim()===t.agentId)&&(t.profileId===void 0||e.profileId===t.profileId)&&Te(e.query)&&Te(t.query)}function gU(e){try{if(!Te(e.query))return null;let t={...e,query:mU(e.query),result:dU(e.result)},n=JSON.stringify(t,(e,t)=>e===`avatarUrl`||e===`channelAvatarUrl`?void 0:t);return new TextEncoder().encode(n).byteLength<=1572864?pU(JSON.parse(n)):null}catch{return null}}async function _U(e,t,n){if(n!==Rt(e))return null;let r=await a();if(!r)return null;try{let i=r.transaction(h),a=we(i),o=await ye(i.objectStore(h).get(e));if(await a,o===void 0||n!==Rt(e))return null;let s=pU(o);return!s||s.scope!==e||Date.now()-s.savedAt>2592e6||new TextEncoder().encode(JSON.stringify(s)).byteLength>1572864?(r.close(),await Nt(),null):hU(s,t)?{...s,result:dU(s.result)}:null}catch{return r.close(),await Nt(),null}finally{r.close()}}async function vU(e,t,n,r,i,a){if(!i.scope||a.aborted||r.readState().result!==null)return;let s=await n.read(i.scope,i),c=Or({client:e.snapshot.client}),l=e.connection?nu(e.connection.gatewayUrl):void 0,u=l&&c?o(l,c):i.scope;s&&!a.aborted&&r.readState().result===null&&e.snapshot.phase!==`connected`&&t.state.selectedId===i.agentId&&u===i.scope&&e.connectionRevision===i.connectionRevision&&hU(s,i)&&r.publish({...r.readState(),result:s.result,agentId:s.agentId,groups:s.groups,groupSettings:s.groupSettings,sectionOrder:s.sectionOrder,resultCached:!0})}function yU(){return(yU=e((()=>{Nr(),be(),Ie(),Lt(),ke()})))()}function bU(e){if(!e)return I(`common.na`);let t=y(e,{weekday:`short`});return t===I(`common.na`)?t:`${t}, ${Pe(e)} (${On(e)})`}function xU(e){if(e.totalTokens==null)return I(`common.na`);let t=e.totalTokens??0,n=zI(e).tokens;return n?`${t} / ${n}`:String(t)}function SU(e){if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return Be(e)}}function CU(e){let t=e.state??{},n=t.nextRunAtMs?Pe(t.nextRunAtMs):I(`common.na`),r=t.lastRunAtMs?Pe(t.lastRunAtMs):I(`common.na`);return`${Ra(e)} · next ${n} · last ${r}`}function wU(e){let t=e.schedule;if(t.kind===`at`){let e=Date.parse(t.at);return Number.isFinite(e)?`At ${Pe(e)}`:`At ${t.at}`}return t.kind===`every`?`Every ${Bn(t.everyMs)?.map(w).join(` `)??I(`common.na`)}`:t.kind===`on-exit`?`On exit: ${t.command}${t.cwd?` (cwd: ${t.cwd})`:``}`:t.kind===`stream`?`Stream: ${t.command.join(` `)}${t.cwd?` (cwd: ${t.cwd})`:``}`:`Cron ${t.expr}${t.tz?` (${t.tz})`:``}`}function TU(e){let t=e.payload;if(t.kind===`systemEvent`)return`System: ${t.text}`;if(t.kind===`command`)return`Command: ${t.argv.join(` `)}`;if(t.kind===`script`)return`Script: ${t.script}`;if(t.kind===`heartbeat`)return`Heartbeat monitor`;let n=`Agent: ${t.message}`,r=e.delivery;if(r&&r.mode!==`none`){let e=r.mode===`webhook`?r.to?` (${r.to})`:``:r.channel||r.to?` (${r.channel??`last`}${r.to?` -> ${r.to}`:``})`:``;return`${n} · ${r.mode}${e}`}return n}function EU(){return(EU=e((()=>{Vn(),O(),Je()})))()}function DU(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return``}}function OU(){try{return Intl.supportedValuesOf?.(`timeZone`)??[]}catch{return[]}}function kU(e,t=DU(),n=OU()){return Sl([t,`UTC`,...e,...Rl(n)])}function AU(){return(AU=e((()=>{Ul()})))()}function jU(e,t){return(`deliveryMode`in t&&t.deliveryMode!==e.deliveryMode||`deliveryChannel`in t&&t.deliveryChannel!==e.deliveryChannel||`deliveryAccountId`in t&&t.deliveryAccountId!==e.deliveryAccountId||`deliveryTo`in t&&t.deliveryTo!==e.deliveryTo||`agentId`in t&&t.agentId!==e.agentId)&&t.deliveryThreadId===void 0?{...t,deliveryThreadId:void 0}:t}function MU(e,t){return t.deliveryMode!==e.deliveryMode||t.deliveryChannel!==e.deliveryChannel||t.agentId!==e.agentId}function NU(e){return{mode:e.cronForm.deliveryMode,channel:e.cronForm.deliveryChannel.trim(),agentId:e.cronForm.agentId.trim()||e.cronAgentId?.trim()||``}}function PU(e,t){return e!==null&&e.mode===t.mode&&e.channel===t.channel&&e.agentId===t.agentId}var FU;function IU(){return(IU=e((()=>{P(),FU=class{constructor(e){this.host=e,this.conversations=[],this.error=null,this.requestId=0,this.editorGeneration=0,this.readRoute=null}clear(e=this.host.currentCronState()){this.requestId+=1,this.conversations=[],this.error=null,this.readRoute=null,this.host.notify(e)}get generation(){return this.editorGeneration}retireEditor(e=this.host.currentCronState()){this.editorGeneration+=1,this.clear(e)}openEditor(){this.editorGeneration+=1,this.load()}retireExitedEditor(e,t,n){this.ownedBy(e,t,n)&&this.retireEditor(e)}afterSave(e,t,n,r){this.ownedBy(e,t,n)&&(this.clear(e),r?this.load(e):this.editorGeneration+=1)}reconcileRoute(e,t,n){PU(this.readRoute,NU(e))||this.afterSave(e,t,n,!!e.cronEditingJob)}ownedBy(e,t,n){return this.host.currentCronState()===e&&t!==null&&this.host.isCurrentConnection(t)&&this.host.canManage()&&(n===void 0||this.editorGeneration===n)}async load(e=this.host.currentCronState()){let t=++this.requestId;this.conversations=[],this.error=null,this.host.notify(e);let n=e.client,r=NU(e);this.readRoute=r;let{mode:i,channel:a,agentId:o}=r;if(!this.host.canManage()||!n||i!==`announce`||!o||a===`last`)return;let s=this.host.captureConnection();if(!s)return;let c=()=>t===this.requestId&&this.ownedBy(e,s);try{let t=await n.request(`conversations.list`,{agentId:o,channel:a,limit:100});c()&&(this.conversations=t.conversations,this.error=null,this.host.notify(e))}catch(t){c()&&(this.conversations=[],this.error=`Could not load recipient suggestions: ${F(t)}`,this.host.notify(e))}}}})))()}var LU;function RU(){return(RU=e((()=>{LU=class{constructor(e){this.host=e,this.footer=null,this.scroller=null,this.observer=null,this.previousPadding=``,e.addController(this)}hostUpdated(){let e=this.host.querySelector(`.cron-editor-actions`),t=this.host.closest(`.content`);if(e===this.footer&&t===this.scroller||(this.hostDisconnected(),!e||!t))return;this.footer=e,this.scroller=t,this.previousPadding=t.style.scrollPaddingBlockEnd;let n=()=>{let n=getComputedStyle(t).paddingBlockEnd;t.style.scrollPaddingBlockEnd=`calc(${e.getBoundingClientRect().height}px + ${n})`};n(),typeof ResizeObserver==`function`&&(this.observer=new ResizeObserver(n),this.observer.observe(e),this.observer.observe(t))}hostDisconnected(){this.observer?.disconnect(),this.observer=null,this.scroller&&(this.scroller.style.scrollPaddingBlockEnd=this.previousPadding),this.footer=null,this.scroller=null}}})))()}function zU(e,t,n){return kU(e.map(e=>e.schedule.kind===`cron`&&typeof e.schedule.tz==`string`?e.schedule.tz:``),t,n)}function BU(){return(BU=e((()=>{AU()})))()}function VU(e,t){let n=t.trim();return n?Rl(e.filter(e=>e.accountId===n).map(e=>e.target)):[]}function HU(e){let t=ut(e.runtimeConfig),n=e.cron.cronForm.deliveryChannel.trim()||`last`,r=new Set((e.agentsList?.agents??[]).filter(e=>e.kind===`system`).map(e=>e.id.trim())),i=Rl([...gn(e.agentsList?.agents??[]).map(e=>e.id.trim()),...e.cron.cronJobs.map(e=>typeof e.agentId==`string`&&!r.has(e.agentId.trim())?e.agentId.trim():``)]),a=Rl([...e.modelSuggestions,...us(t),...e.cron.cronJobs.map(e=>{let t=Jc(e);return t?.kind===`agentTurn`&&typeof t.model==`string`?t.model.trim():``})]),o=Rl(e.cron.cronJobs.map(e=>e.delivery?.to)),s=Rl([...o,...e.cron.cronForm.deliveryMode===`announce`?e.conversationTargets??[]:[]]),c=yl((n===`last`?Object.values(e.channels.channelsSnapshot?.channelAccounts??{}).flat():e.channels.channelsSnapshot?.channelAccounts?.[n]??[]).flatMap(e=>[e.accountId,e.name])),l=t=>e.cron.cronForm.deliveryMode===`webhook`?t.filter(e=>/^https?:\/\//i.test(e)):t;return{agentSuggestions:i,modelSuggestions:a,timezoneSuggestions:zU(e.cron.cronJobs),accountTargets:c,failureAlertToSuggestions:l(o),deliveryToSuggestions:l(s)}}var UU;function WU(){return(WU=e((()=>{Ul(),Vt(),wn(),Bo(),BU(),UU=[`off`,`minimal`,`low`,`medium`,`high`]})))()}function GU(e){let t=new URLSearchParams(e),n=t.get(`job`)?.trim()||null,r=t.get(`session`)?.trim(),i=t.get(`agent`)?.trim();return{jobId:n,runId:n&&t.get(`run`)?.trim()||null,...!n&&r&&i?{session:{sessionKey:r,sessionAgentId:i}}:{}}}function KU(e,t){if(t.runId===e||t.sessionId===e)return!0;let n=qU.exec(e);return n!==null&&n[1]===t.jobId&&t.runAtMs===Number(n[2])}var qU;function JU(){return(JU=e((()=>{qU=/^cron:(.+):(\d+)$/u})))()}function YU(e){let t=gh(e);if(t)return t.externalSource?`external:${t.externalSource}`:t.id?`id:${t.id}`:t.sequence==null?void 0:`seq:${t.sequence}`}function XU(e,t){let n=new Set(t.map(YU).filter(Boolean)),r=e.findIndex(e=>{let t=YU(e);return t!==void 0&&n.has(t)});return{messages:[...e.slice(0,r<0?e.length:r),...t],hasOverlap:r>=0}}function ZU(){return(ZU=e((()=>{Mh()})))()}function QU(e){let t=[],n=[];for(let t of e){let e=J(t),r;if(Array.isArray(e?.content))for(let[t,n]of e.content.entries()){let i=J(n);i&&!Rn(i.type)&&ns(i)&&(r??=e.content.slice(),r[t]={...i,type:`tool_call`})}n.push(r?{...e,content:r}:t)}for(let e of OS(xh(n))){if(e.kind!==`message`||xo(e.message))continue;let n=nl(e.message),r=ua(e.message),i=J(e.message)?.role,a=Vm(e.message,typeof i==`string`?i:n.role),o=0,s,c=Th(e.message);for(let[i,l]of n.content.entries()){let u=`${e.key}:${i}`;if(ns(l)){let e=r[o++];if(!e)continue;let n=t.at(-1);n?.kind===`tools`?(n.calls.push({key:u,card:e}),e.activity&&n.activity.push(e.activity)):t.push({kind:`tools`,key:u,timestamp:c,calls:[{key:u,card:e}],activity:e.activity?[e.activity]:[]})}else if(Nn(l.type)||[`thinking`,`commentary`].includes(l.type))continue;else if(l.type===`text`){if(Jd(e.message)===`commentary`)continue;let r=n.role===`user`?ia(l.text??``):qd(l.text??``);if(!r.trim())continue;if(a&&s?.cappedMessageId===a){s.text=`${s.text}\n\n${r}`;continue}let i={kind:n.role===`user`?`user`:`assistant`,key:u,timestamp:c,text:r,cappedMessageId:a,senderSession:n.role===`user`?void 0:n.senderSession};s=a?i:void 0,t.push(i)}else{let n=J(e.message),r=J(Array.isArray(n?.content)?n.content[i]:void 0),a=`attachment`in l?l.attachment.label:r?.fileName??r?.name;t.push({kind:`block`,key:u,timestamp:c,text:[l.type,typeof a==`string`?a:void 0].filter(Boolean).join(`: `)})}}}return t}function $U(e){switch(Es(e).kind){case`read`:return z.fileText;case`edit`:case`write`:return z.pencil;case`search`:case`fetch`:return z.search;default:return z.terminal}}function eW(e){let t=Xs(e),n=Es(t),r=Cn((n.command??n.code??t.inputText??t.name).trim()),i=n.command?Ii(n.command).command:void 0,a=il(Cn(n.title??n.target??(i||n.command)?.split(`
`)[0]??t.name),160),o=Rc(t,!1),s=I(`chat.toolCards.${o===`succeeded`?`completed`:o===`unknown`?`outcomeUnknown`:o}`);return V`<details
    class="chat-task-feed__tool-line ${fc(t)?`chat-task-feed__error`:``}"
  >
    <summary>
      <span class="chat-task-feed__row-icon" aria-hidden="true">${$U(t)}</span>
      <span class="chat-task-feed__row-label">${a}</span>
      <span class="chat-task-feed__row-outcome" title=${s}
        >${o===`succeeded`?V`<span role="img" aria-label=${s}>${z.check}</span>`:s}</span
      >
      <span class="chat-task-feed__chevron" aria-hidden="true">${z.chevronRight}</span>
    </summary>
    <pre class="chat-task-feed__tool-line--full"><code>${r}</code></pre>
  </details>`}function tW(e){let t=gs(e.activity,{ownSessionLaunches:mS(e.calls.map(({card:e})=>e))});return V`<details class="chat-task-feed__tool-group">
    <summary>
      <span class="chat-task-feed__overview">
        <span class="chat-task-feed__overview-heading">
          <strong
            >${t.total?I(`chat.toolCards.activity.title${t.total===1?`One`:`Many`}`,{count:String(t.total)}):I(`chat.toolCards.rawDetails`)}</strong
          >
          ${t.outcomes.map(({kind:e,label:t})=>V`<span class="chat-task-feed__outcome chat-task-feed__outcome--${e}">${t} </span>`)}
        </span>
        ${t.label?V`<span class="chat-task-feed__summary">${t.label}</span>`:B}
      </span>
      <span class="chat-task-feed__chevron" aria-hidden="true">${z.chevronRight}</span>
    </summary>
    <div class="chat-task-feed__calls">
      ${mi(e.calls,({key:e})=>e,({card:e})=>eW(e))}
    </div>
  </details>`}function nW(e){return V`<div class="chat-task-feed">
    ${mi(QU(e),e=>e.key,e=>V` <div class="chat-task-feed__entry" data-task-feed-entry=${e.key}>
        <span class="chat-task-feed__icon" aria-hidden="true"
          >${e.kind===`tools`?$U(e.calls[0].card):e.kind===`user`?z.users:e.kind===`block`?z.paperclip:z.messageSquare}</span
        >
        <div class="chat-task-feed__body">
          ${e.kind===`assistant`&&e.senderSession?yC(e,{linkSource:!1}):e.kind===`user`||e.kind===`assistant`?V`<span class="sr-only">${I(`sessionsView.${e.kind}`)}: </span>`:B}
          ${e.kind===`tools`?tW(e):e.kind===`assistant`?lD(e.text,e.key,{role:`assistant`,isStreaming:!1},{}):V`<div class="chat-task-feed__${e.kind}">${e.text}</div>`}
        </div>
        ${e.timestamp===null?B:V`<time class="chat-task-feed__time" datetime=${new Date(e.timestamp).toISOString()}>${new Date(e.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,hour12:!1})}</time>`}
      </div>`)}
  </div>`}function rW(){return(rW=e((()=>{Ai(),H(),vi(),$i(),jn(),Kd(),L(),O(),Re(),eo(),Ts(),_s(),Bs(),Rf(),Hm(),CS(),Mh(),jS(),bC(),SD()})))()}var iW;function aW(){return(aW=e((()=>{H(),O(),os(),P(),oj(),ZU(),oH(),rW(),iW=class{constructor(e,t){this.host=e,this.capture=t,this.attempt=0,this.entry=null,this.trigger=null,this.scope=null,this.messages=[],this.cursors=new Set,this.loading=!1,this.error=null,e.addController(this)}hostDisconnected(){this.close()}close(e=!1){let t=this.trigger;this.trigger=null,this.attempt++,this.entry=null,this.scope=null,this.messages=[],this.nextCursor=void 0,this.cursors.clear(),this.loading=!1,this.error=null,this.failedCursor=void 0,this.host.requestUpdate(),e&&t?.isConnected&&t.focus()}async open(e,t){this.close();let n=this.capture();if(!n||(this.entry=e,this.trigger=t,this.scope=n,await this.load(),this.entry!==e||this.scope!==n||!n.isCurrent())||(await this.host.updateComplete,this.entry!==e||this.scope!==n||!n.isCurrent()))return;let r=this.host.querySelector(`[data-cron-run-transcript]`);r?.focus({preventScroll:!0}),r?.scrollIntoView({block:`start`,behavior:`instant`})}async load(e){let{entry:t,scope:n,attempt:r}=this;if(!t||!n||this.loading||!n.isCurrent())return;let i=()=>this.attempt===r&&this.host.isConnected&&n.isCurrent();this.loading=!0,this.error=null,this.failedCursor=e,this.host.requestUpdate();try{if(!t.jobId||!t.runId&&(typeof t.runAtMs!=`number`||!Number.isFinite(t.runAtMs)))throw Error(I(`cron.runEntry.transcriptMissingMetadata`));let r=await n.client.request(`cron.history`,{id:t.jobId,...t.runId?{runId:t.runId}:{runAtMs:t.runAtMs},limit:100,...e?{cursor:e}:{}});if(!i())return;if(!Array.isArray(r.messages))throw Error(I(`cron.runEntry.transcriptUnavailable`));let a=ja(qA(r).messages);e&&this.cursors.add(e),this.messages=e?XU(a,this.messages).messages:a,this.nextCursor=r.nextCursor&&!this.cursors.has(r.nextCursor)?r.nextCursor:void 0,this.failedCursor=void 0}catch(e){if(!i())return;this.error=F(e,I(`cron.runEntry.transcriptUnavailable`))}i()&&(this.loading=!1,this.host.requestUpdate())}render(){return this.entry?V`<section
      class="card"
      role="region"
      tabindex="-1"
      aria-label=${I(`cron.runEntry.transcript`)}
      data-cron-run-transcript
    >
      <div class="row">
        <h2>${I(`cron.runEntry.transcript`)}</h2>
        <button class="btn btn--sm" @click=${()=>this.close(!0)}>${I(`common.close`)}</button>
      </div>
      ${this.error?V`<p role="alert">${this.error}</p>
              <button
                class="btn btn--sm"
                ?disabled=${this.loading}
                @click=${()=>void this.load(this.failedCursor)}
              >
                ${I(`common.retry`)}
              </button>`:B}
      ${this.loading?V`<p role="status">${I(`common.loading`)}</p>`:B}
      ${this.nextCursor?aH({hasMore:!0,loading:this.loading,onShowEarlier:()=>void this.load(this.nextCursor)}):B}
      ${!this.loading&&!this.error&&this.messages.length===0?V`<p>${I(`cron.runEntry.transcriptEmpty`)}</p>`:B}
      ${nW(this.messages)}
    </section>`:B}}})))()}function oW(e,t,n,r){return{id:e,emoji:t,nameKey:`cron.suggestions.ideas.${e}.name`,taglineKey:`cron.suggestions.ideas.${e}.tagline`,promptKey:`cron.suggestions.ideas.${e}.prompt`,scheduleKey:n,schedule:r}}function sW(e){return{name:I(e.nameKey),payloadText:I(e.promptKey),payloadKind:`agentTurn`,sessionTarget:`isolated`,wakeMode:`now`,deleteAfterRun:!1,enabled:!0,...e.schedule}}var cW,lW,uW,dW,fW;function pW(){return(pW=e((()=>{O(),jc(),rc(),cW={scheduleKind:`cron`,cronExpr:`0 9 * * 1-5`},lW={scheduleKind:`cron`,cronExpr:`0 8 * * *`},uW={scheduleKind:`cron`,cronExpr:`0 9 * * 1`},dW={scheduleKind:`every`,everyAmount:`1`,everyUnit:`hours`},fW=[oW(`repoPulse`,`🐙`,`cron.suggestions.schedules.weekdayMornings`,cW),oW(`standupGhostwriter`,`👻`,`cron.suggestions.schedules.weekdayMornings`,cW),oW(`hackerNewsScout`,`🔭`,`cron.suggestions.schedules.everyMorning`,lW),oW(`dependencyRadar`,`🛰️`,`cron.suggestions.schedules.weekly`,uW),oW(`watchdog`,`🦉`,`cron.suggestions.schedules.hourly`,dW),oW(`polyglotMinute`,`🗣️`,`cron.suggestions.schedules.everyMorning`,lW)]})))()}function mW(e,t){return V`
    <div class="cron-condition-activity__metric">
      <dt>${e}</dt>
      <dd>${t}</dd>
    </div>
  `}function hW(e){let t=On(e.lastCheckedAtMs,{fallback:I(`cron.runs.notChecked`)}),n=On(e.lastFiredAtMs,{fallback:I(`cron.runs.neverFired`)});return V`
    <div class="cron-condition-activity" data-test-id="cron-condition-activity">
      <div class="cron-condition-activity__intro">
        <div class="settings-row__title">
          <span class="cron-condition-activity__icon" aria-hidden="true">${R(`gitBranch`)}</span>
          ${I(`cron.runs.conditionActivity`)}
        </div>
        <div class="settings-row__desc">${I(`cron.runs.conditionActivityHint`)}</div>
      </div>
      <dl class="cron-condition-activity__metrics">
        ${mW(I(`cron.runs.checks`),String(e.checkCount))}
        ${mW(I(`cron.runs.lastChecked`),t)}
        ${mW(I(`cron.runs.lastFired`),n)}
      </dl>
    </div>
  `}function gW(e){if(e.checkCount===0)return I(`cron.runs.emptyConditionUnchecked`);let t=e.checkCount===1?`cron.runs.emptyConditionHintOne`:`cron.runs.emptyConditionHint`;return I(t,{count:String(e.checkCount)})}function _W(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function vW(e){let t=e.options.filter(t=>e.selected.includes(t.value)).map(e=>e.label),n=t.length===0?e.allLabel:t.length<=2?t.join(`, `):`${t[0]} +${t.length-1}`,r=t.length>2?`${n} (${new Intl.ListFormat(_e.getLocale(),{style:`long`,type:`conjunction`}).format(t)})`:n;return V`
    <div class="cron-filter-dropdown" data-filter=${e.id}>
      <wa-dropdown
        class="cron-filter-dropdown__details"
        placement="bottom-start"
        @wa-select=${t=>{let n=t.detail.item.value;if(n===`${DW}clear`){e.onClear();return}if(n?.startsWith(EW)){t.preventDefault();let r=n.slice(7);e.onToggle(r,!e.selected.includes(r))}}}
      >
        <button
          slot="trigger"
          type="button"
          class="btn btn--sm cron-filter-dropdown__trigger ${e.selected.length>0?`active`:``}"
          title=${e.title}
          aria-label=${`${e.title} ${r}`}
        >
          <span>${n}</span>
          ${R(`chevronDown`)}
        </button>
        ${e.options.map(t=>V`
            <wa-dropdown-item
              class="cron-filter-dropdown__option"
              type="checkbox"
              value=${`${EW}${t.value}`}
              .checked=${e.selected.includes(t.value)}
            >
              ${t.label}
            </wa-dropdown-item>
          `)}
        <div class="session-menu__separator" role="separator"></div>
        <wa-dropdown-item value=${`${DW}clear`}>
          ${I(`cron.runs.clear`)}
        </wa-dropdown-item>
      </wa-dropdown>
    </div>
  `}function yW(e){let t=i(),n=e.runs.toSorted((t,n)=>e.runsSortDir===`asc`?t.ts-n.ts:n.ts-t.ts),r=e.runsQuery.trim().length>0||e.runsStatuses.length>0||e.runsDeliveryStatuses.length>0,a=e.runsSortDir===`asc`?I(`cron.runs.oldestFirst`):I(`cron.runs.newestFirst`);return V`
    <div class="cron-runs" aria-busy=${String(e.runsState===`pending`)}>
      ${e.conditionActivity?hW(e.conditionActivity):B}
      <div class="cron-run-filters">
        <div class="cron-search-box cron-run-filter-search">
          <span class="cron-search-box__icon" aria-hidden="true">${R(`search`)}</span>
          <input
            type="search"
            class="settings-input"
            .value=${e.runsQuery}
            aria-label=${I(`cron.runs.searchRuns`)}
            placeholder=${I(`cron.runs.searchPlaceholder`)}
            @input=${t=>e.onRunsFiltersChange({cronRunsQuery:t.target.value})}
          />
        </div>
        ${vW({id:`status`,title:I(`cron.runs.status`),allLabel:I(`cron.runs.allStatuses`),options:Array.from(wW,([e,t])=>({value:e,label:I(t)})),selected:e.runsStatuses,onToggle:(t,n)=>{let r=_W(e.runsStatuses,t,n);e.onRunsFiltersChange({cronRunsStatuses:r})},onClear:()=>{e.onRunsFiltersChange({cronRunsStatuses:[]})}})}
        ${vW({id:`delivery`,title:I(`cron.runs.delivery`),allLabel:I(`cron.runs.allDelivery`),options:Array.from(TW,([e,t])=>({value:e,label:I(t)})),selected:e.runsDeliveryStatuses,onToggle:(t,n)=>{let r=_W(e.runsDeliveryStatuses,t,n);e.onRunsFiltersChange({cronRunsDeliveryStatuses:r})},onClear:()=>{e.onRunsFiltersChange({cronRunsDeliveryStatuses:[]})}})}
        <div class="cron-filter-dropdown">
          <wa-dropdown
            class="cron-filter-dropdown__details"
            placement="bottom-start"
            @wa-select=${t=>{let n=t.detail.item.value;(n===`asc`||n===`desc`)&&e.onRunsFiltersChange({cronRunsSortDir:n})}}
          >
            <button
              slot="trigger"
              type="button"
              class="btn btn--sm cron-filter-dropdown__trigger cron-run-sort"
              aria-label=${`${I(`cron.jobs.sort`)} ${a}`}
            >
              <span>${a}</span>
              ${R(`chevronDown`)}
            </button>
            <wa-dropdown-item value="desc" aria-current=${String(e.runsSortDir===`desc`)}>
              ${I(`cron.runs.newestFirst`)}
              <span slot="details" aria-hidden="true">
                ${e.runsSortDir===`desc`?R(`check`):B}
              </span>
            </wa-dropdown-item>
            <wa-dropdown-item value="asc" aria-current=${String(e.runsSortDir===`asc`)}>
              ${I(`cron.runs.oldestFirst`)}
              <span slot="details" aria-hidden="true">
                ${e.runsSortDir===`asc`?R(`check`):B}
              </span>
            </wa-dropdown-item>
          </wa-dropdown>
        </div>
      </div>
      ${e.runsState===`failed`?V`<button class="btn btn--sm" @click=${e.onRefresh}>${I(`common.retry`)}</button>`:B}
      ${n.length===0?e.runsState===`pending`?V`<div
                class="cron-empty-state"
                role="status"
                aria-live="polite"
                data-test-id="cron-runs-loading"
              >
                ${I(`cron.list.loading`)}
              </div>`:e.runsState===`ready`?r?V`<div class="muted cron-runs__empty">${I(`cron.runs.noMatching`)}</div>`:V`
                    <div class="cron-empty-state">
                      <div class="cron-empty-state__title">
                        ${e.conditionActivity?I(`cron.runs.emptyConditionTitle`):I(`cron.runs.emptyTitle`)}
                      </div>
                      <div class="cron-empty-state__copy">
                        ${e.conditionActivity?gW(e.conditionActivity):I(`cron.runs.emptyHint`)}
                      </div>
                    </div>
                  `:B:V`
              <div class="cron-runs__list">
                ${n.map(n=>CW(n,t,e.highlightedRunId,e.onViewRunTranscript))}
              </div>
            `}
      ${e.runsHasMore?V`
              <button
                class="btn btn--sm cron-load-more"
                ?disabled=${e.runsLoadingMore}
                @click=${e.onLoadMoreRuns}
              >
                ${e.runsLoadingMore?I(`cron.list.loading`):I(`cron.runs.loadMore`)}
              </button>
            `:B}
    </div>
  `}function bW(e,t=Date.now()){let n=On(e);return I(e>t?`cron.runEntry.next`:`cron.runEntry.due`,{rel:n})}function xW(e,t){if(e===`ok`&&(t===`failed`||t===`unknown`)){let e=I(t===`failed`?`cron.runs.runStatusError`:`cron.runs.runStatusUnknown`);return`${I(`cron.runs.runStatusOk`)} · ${e}`}return I(wW.get(e)??`cron.runs.runStatusUnknown`)}function SW(e){return V`<div class="muted">${ft(e)}</div>`}function CW(e,t,n,r){let i=xW(e.status??`unknown`,e.completionStatus),a=I(TW.get(e.deliveryStatus??`not-requested`)??`cron.runs.deliveryUnknown`),o=e.usage,s=o&&typeof o.total_tokens==`number`?`${jt(o.total_tokens)} ${I(`usage.metrics.tokens`)}`:o&&typeof o.input_tokens==`number`&&typeof o.output_tokens==`number`?`${jt(o.input_tokens)} in / ${jt(o.output_tokens)} out`:null,c=e.summary||ft(e.error)||I(`cron.runEntry.noSummary`),l=!!e.error&&!!e.summary,u=ft(e.deliverySuppressionReason),d=[a,u?I(`cron.runEntry.deliverySuppression`,{reason:u}):null,e.model,e.provider,s].filter(Boolean),f=!!(n&&KU(n,e));return V`
    <div class="cron-run-entry ${f?`cron-run-entry--highlighted`:``}">
      <div class="cron-run-entry__header">
        <div class="cron-run-entry__main">
          <div class="cron-run-entry__title">
            ${e.jobName??e.jobId}
            <span class="muted"> · ${i}</span>
          </div>
          <div class="cron-run-entry__facts muted">${d.join(` · `)}</div>
        </div>
        <div class="cron-run-entry__meta">
          <div>${t(e.ts)}</div>
          ${typeof e.runAtMs==`number`?V`<div class="muted">
                  ${I(`cron.runEntry.runAt`)} ${t(e.runAtMs)}
                </div>`:B}
          <div class="muted">
            ${typeof e.durationMs==`number`&&Number.isFinite(e.durationMs)?Ua(e.durationMs)??to(e.durationMs,I(`common.na`)):I(`common.na`)}
          </div>
          ${typeof e.nextRunAtMs==`number`?V`<div class="muted">${bW(e.nextRunAtMs)}</div>`:B}
          ${e.runId||e.runAtMs!==void 0||e.sessionKey?V`<div>
                  <button
                    class="btn btn--sm"
                    @click=${t=>{t.currentTarget instanceof HTMLButtonElement&&r?.(e,t.currentTarget)}}
                  >
                    ${I(`cron.runEntry.viewTranscript`)}
                  </button>
                </div>`:B}
          ${l?SW(e.error):B}
          ${e.deliveryError?SW(e.deliveryError):B}
        </div>
      </div>
      <div class="cron-run-entry__body chat-text">
        ${pu(Xu(c))}
      </div>
    </div>
  `}var wW,TW,EW,DW;function OW(){return(OW=e((()=>{H(),gu(),L(),Iu(),Id(),O(),jc(),rl(),P(),Je(),JU(),rc(),wW=new Map([[`ok`,`cron.runs.runStatusOk`],[`error`,`cron.runs.runStatusError`],[`skipped`,`cron.runs.runStatusSkipped`]]),TW=new Map([[`delivered`,`cron.runs.deliveryDelivered`],[`not-delivered`,`cron.runs.deliveryNotDelivered`],[`unknown`,`cron.runs.deliveryUnknown`],[`not-requested`,`cron.runs.deliveryNotRequested`]]),EW=`option:`,DW=`command:`})))()}function kW(e){let t=e.state?.autoDisabled,[n,r,i]=Lo(e)?[`running`,`loader`,I(`cron.runs.runStatusRunning`)]:t?[`error`,`lock`,MW(t)]:Ao(e)?[`error`,`alertTriangle`,I(`cron.runs.runStatusError`)]:e.enabled?[`active`,null,I(`cron.detail.active`)]:[`paused`,`pause`,I(`cron.list.paused`)];return V`<span
    class="cron-table__state cron-table__state--${n}"
    role="img"
    aria-label=${i}
    title=${i}
    >${r?R(r):V`<span class="cron-table__state-dot"></span>`}</span
  >`}function AW(){let e=I(`cron.form.triggerConfigured`);return V`<span class="cron-trigger-icon" role="img" aria-label=${e} title=${e}
    >${R(`gitBranch`)}</span
  >`}function jW(e){let t=e.state?.autoDisabled;if(!t)return V`<span class="muted cron-table__paused-note">${I(`cron.list.paused`)}</span>`;let n=MW(t),r=e.state?.lastError?.trim();return V`<span
    class="cron-table__paused-note cron-table__auto-disabled"
    data-test-id=${`cron-row-auto-disabled-${e.id}`}
    title=${r?ft(r):n}
    >${n}</span
  >`}function MW(e){return I(e.reason===`schedule-errors`?`cron.list.autoDisabledScheduleErrors`:`cron.list.autoDisabledRunFailures`,{count:String(e.consecutiveErrors)})}function NW(e){let t=Ra(e),n=e.state?.lastRunAtMs,r=typeof n==`number`&&Number.isFinite(n)?On(n):null;if(t===`unknown`||!r)return V`<span class="muted">${I(`common.na`)}</span>`;let i=t===`ok`?V`<span class="cron-last-glyph cron-last-glyph--ok">${R(`check`)}</span>`:t===`error`?V`<span class="cron-last-glyph cron-last-glyph--error">${R(`x`)}</span>`:V`<span class="cron-last-glyph">${R(`cornerDownRight`)}</span>`,a=xW(t);return V`
    <span class="cron-table__last-run" role="img" aria-label=${a} title=${a}>
      ${i}
      <span class="cron-table__last-time">${r}</span>
    </span>
  `}function PW(){return(PW=e((()=>{H(),L(),O(),P(),Je(),OW()})))()}function FW(e,t,n){return V`
    <label class="field">
      <span>${n.label}</span>
      <select
        class="settings-select"
        data-test-id=${yi(n.testId)}
        .value=${n.value}
        @change=${n=>{if(n.currentTarget instanceof HTMLSelectElement)return e.onJobsFiltersChange({[t]:n.currentTarget.value})}}
      >
        ${n.options.map(({value:e,label:t})=>V`<option value=${e} ?selected=${e===n.value}>${t}</option>`)}
      </select>
    </label>
  `}function IW(e,t){return V`
    <button
      id="cron-jobs-filter-trigger"
      type="button"
      class="btn btn--sm cron-filter-popover__trigger ${t?`active`:``}"
      title=${I(`cron.list.filters`)}
      aria-label=${I(`cron.list.filters`)}
      aria-haspopup="dialog"
      aria-expanded="false"
    >
      ${R(`listFilter`)}
    </button>
    <wa-popover
      ${di(Nd)}
      class="cron-filter-popover"
      for="cron-jobs-filter-trigger"
      aria-label=${I(`cron.list.filters`)}
      placement="bottom-end"
      without-arrow
      @wa-show=${fd}
      @wa-hide=${fd}
    >
      <div class="cron-filter-popover__panel">
        ${FW(e,`cronJobsScheduleKindFilter`,{label:I(`cron.jobs.schedule`),value:e.jobsScheduleKindFilter,testId:`cron-jobs-schedule-filter`,options:Object.entries(LW).map(([e,t])=>({value:e,label:I(t)}))})}
        ${FW(e,`cronJobsLastStatusFilter`,{label:I(`cron.jobs.lastRun`),value:e.jobsLastStatusFilter,testId:`cron-jobs-last-status-filter`,options:[{value:`all`,label:I(`cron.jobs.all`)},{value:`ok`,label:I(`cron.runs.runStatusOk`)},{value:`error`,label:I(`cron.runs.runStatusError`)},{value:`skipped`,label:I(`cron.runs.runStatusSkipped`)},{value:`unknown`,label:I(`cron.runs.runStatusUnknown`)}]})}
        ${FW(e,`cronJobsTriggerFilter`,{label:I(`cron.jobs.condition`),value:e.jobsTriggerFilter,testId:`cron-jobs-trigger-filter`,options:[{value:`all`,label:I(`cron.jobs.all`)},{value:`conditional`,label:I(`cron.jobs.conditional`)},{value:`unconditional`,label:I(`cron.jobs.unconditional`)}]})}
        ${FW(e,`cronJobsSortBy`,{label:I(`cron.jobs.sort`),value:e.jobsSortBy,options:[{value:`nextRunAtMs`,label:I(`cron.jobs.nextRun`)},{value:`updatedAtMs`,label:I(`cron.jobs.recentlyUpdated`)},{value:`name`,label:I(`cron.jobs.name`)}]})}
        ${FW(e,`cronJobsSortDir`,{label:I(`cron.jobs.direction`),value:e.jobsSortDir,options:[{value:`asc`,label:I(`cron.jobs.ascending`)},{value:`desc`,label:I(`cron.jobs.descending`)}]})}
        <button
          class="btn btn--sm"
          data-test-id="cron-jobs-filters-reset"
          ?disabled=${!t}
          @click=${e.onJobsFiltersReset}
        >
          ${I(`cron.jobs.reset`)}
        </button>
      </div>
    </wa-popover>
  `}var LW;function RW(){return(RW=e((()=>{H(),ii(),Jr(),L(),Qu(),O(),jc(),rc(),LW={all:`cron.jobs.all`,at:`cron.form.at`,every:`cron.form.every`,cron:`cron.form.cronOption`,"on-exit":`cron.form.repeatOnExit`,stream:`cron.form.repeatStream`}})))()}function zW(e){return Object.entries({"cron-agent-suggestions":e.agentSuggestions,"cron-thinking-suggestions":e.thinkingSuggestions,"cron-tz-suggestions":e.timezoneSuggestions,"cron-delivery-to-suggestions":e.deliveryToSuggestions,"cron-failure-alert-to-suggestions":e.failureAlertToSuggestions,"cron-delivery-account-suggestions":e.accountSuggestions}).map(([e,t])=>{let n=su(t);return n.length===0?B:V`<datalist id=${e}>
          ${n.map(e=>V`<option value=${e}></option> `)}
        </datalist>`})}function BW(){return(BW=e((()=>{Ul(),H()})))()}function VW(e){return[{value:`last`,label:`last`,kind:`neutral`},...al(e.channels.filter(Boolean)).map(t=>({value:t,label:e.channelMeta?.find(e=>e.id===t)?.label||e.channelLabels?.[t]||t}))]}function HW(e){return`cron-error-${e}`}function UW(e){return`cron-${e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}`}function WW(e,t,n){return e===`payloadText`&&t.payloadKind===`systemEvent`?I(`cron.form.mainTimelineMessage`):I(e===`deliveryTo`&&n===`webhook`?`cron.form.webhookUrl`:TG[e])}function GW(e,t,n){return Object.keys(TG).flatMap(r=>{let i=e[r];return i?[{label:WW(r,t,n),message:i,inputId:UW(r)}]:[]})}function KW(e){let t=document.getElementById(e);t instanceof HTMLElement&&(typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`center`,behavior:MD()}),t.focus())}function qW(e,t){return e?V`<div id=${yi(t)} class="cron-help cron-error">${I(e)}</div>`:B}function JW(e){return V`
    ${e}
    <span class="cron-required-marker" aria-hidden="true">*</span>
    <span class="cron-required-sr">${I(`cron.form.requiredSr`)}</span>
  `}function YW(e){let t=e.wide?`cron-control cron-control--wide`:`cron-control`,n=V`<div class=${t}>
    ${e.control}${qW(e.error,e.errorId)}
  </div>`;return V`
    <div class=${e.stacked?`settings-row settings-row--stacked`:`settings-row`}>
      <label class="settings-row__text" for=${yi(e.controlId||void 0)}>
        <span class="settings-row__title">
          ${e.required?JW(e.label):e.label}
        </span>
        ${e.help?V`<span class="settings-row__desc">${e.help}</span>`:B}
      </label>
      <div class="settings-row__control">${n}</div>
    </div>
  `}function XW(e,t,n){let r=n.errorKey?e.fieldErrors[n.errorKey]:void 0,i=r&&n.errorKey&&n.describeError!==!1?HW(n.errorKey):void 0,a=V`
    <input
      id=${UW(t)}
      class=${n.mono?`settings-input mono`:`settings-input`}
      type=${yi(n.type)}
      aria-required=${yi(n.required?`true`:void 0)}
      .value=${e.form[t]}
      list=${yi(n.list)}
      ?disabled=${n.disabled??!1}
      aria-invalid=${yi(n.errorKey?r?`true`:`false`:void 0)}
      aria-describedby=${yi(i)}
      placeholder=${yi(n.placeholder)}
      @input=${n=>e.onFormChange({[t]:n.currentTarget.value})}
    />
  `;return n.inline?a:YW({label:n.label,controlId:UW(t),required:n.required,help:n.help,error:r,errorId:n.errorKey?HW(n.errorKey):void 0,control:a})}function ZW(e,t,n){let r=n.value??e.form[t],i=n.errorKey?e.fieldErrors[n.errorKey]:void 0,a=(n.channel?Md:nd)({id:n.inline?void 0:UW(t),label:n.label,value:n.channel?r||`last`:r,options:n.options,disabled:n.disabled,invalid:n.errorKey?!!i:void 0,describedBy:i&&n.errorKey?HW(n.errorKey):void 0,onChange:n=>e.onFormChange({[t]:n})});return n.inline?a:YW({label:n.label,controlId:UW(t),help:n.help,error:i,errorId:n.errorKey?HW(n.errorKey):void 0,control:a})}function QW(e,t,n){return ed({title:n.label,description:n.help,checked:e.form[t],onChange:n=>e.onFormChange({[t]:n})})}function $W(e){let t=e.editingJob?`job`:e.createOpen?`create`:`overview`;return V`
    ${t===`overview`?nG(e):uG(e,t)}
    ${zW(e)}
  `}function eG(e){return e?V`<div class="cron-error-banner" role="alert">${e}</div>`:B}function tG(e){return e.canManage?B:V`<div class="cron-admin-note" role="note">
        <span aria-hidden="true">${R(`lock`)}</span>
        <span>${I(`cron.adminRequired`)}</span>
      </div>`}function nG(e){let t=e.jobsScheduleKindFilter!==`all`||e.jobsLastStatusFilter!==`all`||e.jobsTriggerFilter!==`all`||e.jobsSortBy!==`nextRunAtMs`||e.jobsSortDir!==`asc`,n=t||e.jobsQuery.trim().length>0||e.jobsEnabledFilter!==`all`,r=!e.loading&&e.hasLoaded&&!e.listError&&!e.error&&e.jobsTotal===0&&!n&&e.canManage,i=[V`
      <div class="cron-overview-header">
        ${tG(e)}
        ${e.status&&!e.status.enabled?V`
                <div class="cron-error-banner" data-test-id="cron-scheduler-banner">
                  <strong>${I(`cron.list.schedulerOff`)}</strong>
                  ${I(`cron.runNotStarted.stopped`)}
                </div>
              `:B}
        ${eG(e.listError)} ${eG(e.error)}
        ${iG(e,t)}
      </div>
    `,V`
      <div
        id="cron-list-panel"
        class="cron-tab-panel"
        role="tabpanel"
        aria-labelledby=${`cron-list-tab-${e.listTab===`activity`?`activity`:e.jobsEnabledFilter}`}
      >
        ${e.listTab===`activity`?Ku({},V`<div class="cron-activity">${yW(e)}</div>`):[Ku({},aG(e,n)),r?lG(e):B]}
      </div>
    `];return V`
    <section class="cron-page" data-panel-mode="overview">
      ${Au(i,{wide:!0})}
    </section>
  `}function rG(e){return pd({id:`cron-list`,panelId:`cron-list-panel`,className:`cron-tabs`,active:e.listTab===`activity`?`activity`:e.jobsEnabledFilter,tabs:[...EG.map(e=>({value:e.value,label:I(e.labelKey),testId:`cron-tab-${e.value}`})),{value:`activity`,label:I(`cron.list.activityTab`),testId:`cron-list-tab-activity`}],ariaLabel:I(`cron.list.viewLabel`),onSelect:t=>{if(t===`activity`){e.onListTabChange(`activity`);return}e.onListTabChange(`tasks`),t!==e.jobsEnabledFilter&&e.onJobsFiltersChange({cronJobsEnabledFilter:t})}})}function iG(e,t){return V`
    <div class="cron-toolbar">
      ${e.listTab===`tasks`?V`
              <div class="cron-toolbar__filters">
                <div class="cron-search-box">
                  <span class="cron-search-box__icon" aria-hidden="true">${R(`search`)}</span>
                  <input
                    type="search"
                    class="settings-input"
                    .value=${e.jobsQuery}
                    aria-label=${I(`cron.list.searchPlaceholder`)}
                    placeholder=${I(`cron.list.searchPlaceholder`)}
                    @input=${t=>e.onJobsFiltersChange({cronJobsQuery:t.target.value})}
                  />
                </div>
                ${IW(e,t)}
              </div>
            `:B}
      <div class="cron-toolbar__primary">
        ${rG(e)}
        <div class="cron-toolbar__actions">
          <button
            type="button"
            class="btn btn--sm btn--ghost cron-refresh ${e.loading?`cron-refresh--loading`:``}"
            ?disabled=${e.loading}
            title=${e.loading?I(`cron.list.refreshing`):I(`cron.list.refresh`)}
            aria-label=${I(`cron.list.refresh`)}
            @click=${e.onRefresh}
          >
            ${R(`refresh`)}
          </button>
          ${e.canManage?V`
                  <button
                    type="button"
                    class="btn primary btn--sm cron-new-task"
                    data-test-id="cron-new-task"
                    @click=${()=>e.onOpenCreate()}
                  >
                    ${R(`plus`)} ${I(`cron.list.newTask`)}
                  </button>
                `:B}
        </div>
      </div>
    </div>
  `}function aG(e,t){let n=e.loading&&!e.hasLoaded,r=e.loading||e.jobsLoadingMore,i=e.jobs.toSorted((e,t)=>Number(Ao(t))-Number(Ao(e)));return V`
    <div
      class="cron-table ${e.canManage?``:`cron-table--read-only`}"
      aria-busy=${r?`true`:B}
    >
      <div class="cron-table__head">
        <span>${I(`cron.jobs.name`)}</span>
        <span>${I(`cron.jobs.schedule`)}</span>
        <span>${I(`cron.jobs.nextRun`)}</span>
        <span>${I(`cron.jobs.lastRun`)}</span>
        ${e.canManage?V`<span aria-hidden="true"></span>`:B}
      </div>
      ${i.length===0?n?V`
                <div
                  class="cron-empty-state"
                  role="status"
                  aria-live="polite"
                  data-test-id="cron-jobs-loading"
                >
                  <div class="cron-empty-state__title">${I(`cron.list.loading`)}</div>
                </div>
              `:e.hasLoaded?V`
                  <div class="cron-empty-state">
                    <div class="cron-empty-state__title">
                      ${I(t?`cron.list.noMatching`:`cron.list.emptyTitle`)}
                    </div>
                    ${t?B:V`<div class="cron-empty-state__copy">
                            ${I(`cron.list.emptyHint`)}
                          </div>`}
                  </div>
                `:B:mi(i,e=>e.id,t=>oG(t,e))}
      ${od({jobsShown:e.jobs.length,jobsTotal:e.jobsTotal,hasMore:e.jobsHasMore,loading:e.loading,loadingMore:e.jobsLoadingMore,onLoadMore:e.onLoadMoreJobs})}
    </div>
  `}function oG(e,t){let n=e.displayName??e.name,r=e.description?.trim(),i=Pn(e.declarationKey),a=e.state?.nextRunAtMs,o=typeof a==`number`&&Number.isFinite(a),s=Lo(e)?V`<span class="cron-table__running">${I(`cron.runs.runStatusRunning`)}</span>`:o?On(a):I(`common.na`);return V`
    <div
      class="cron-table__row ${e.enabled?``:`cron-table__row--paused`}"
      data-test-id=${`cron-row-${e.id}`}
      @click=${()=>t.onSelectJob(e)}
    >
      <button type="button" class="cron-table__name">
        ${kW(e)}
        <span class="cron-table__name-copy">
          <span class="cron-table__name-line">
            <span class="cron-table__name-text">${n}</span>
            ${e.trigger?AW():B}
          </span>
          ${i?B:Zu(e.agentId)}
          ${r||!e.enabled?V`
                  <span class="cron-table__name-meta">
                    ${r?V`
                            <span
                              class="cron-table__description"
                              data-test-id=${`cron-row-description-${e.id}`}
                              title=${`${I(`cron.form.description`)}: ${r}`}
                              >${r}</span
                            >
                          `:B}
                    ${r&&!e.enabled?V`<span class="cron-table__meta-separator" aria-hidden="true">·</span>`:B}
                    ${e.enabled?B:jW(e)}
                  </span>
                `:B}
        </span>
      </button>
      ${sG(`cron-table__schedule`,I(`cron.jobs.schedule`),wU(e))}
      ${sG(`cron-table__next`,I(`cron.jobs.nextRun`),s)}
      ${sG(`cron-table__last`,I(`cron.jobs.lastRun`),NW(e))}
      ${t.canManage?V`
              <span class="cron-table__actions" @click=${e=>e.stopPropagation()}>
                <button
                  type="button"
                  class="btn btn--sm btn--ghost cron-row-run"
                  data-test-id=${`cron-row-run-${e.id}`}
                  title=${I(`cron.actions.runNowJob`,{name:n})}
                  aria-label=${I(`cron.actions.runNowJob`,{name:n})}
                  ?disabled=${t.busy}
                  @click=${()=>t.onRun(e,`force`)}
                >
                  ${R(`play`)}
                </button>
                ${i?B:fG(t,e,!0)}
                ${cG(t,e)}
              </span>
            `:B}
    </div>
  `}function sG(e,t,n){return V`<span class="cron-table__cell ${e}">
    <span class="cron-table__cell-label">${t}</span>
    <span class="cron-table__cell-value">${n}</span>
  </span>`}function cG(e,t){if(!e.canManage)return B;let n=Pn(t.declarationKey),r=t.displayName??t.name;return V`
    <wa-dropdown
      class="cron-job-menu"
      placement="bottom-end"
      @wa-select=${r=>{if(e.canManage)switch(r.detail.item.value){case`run-if-due`:e.onRun(t,`due`);break;case`clone`:n||e.onClone(t);break;case`remove`:n||e.onRemove(t);break;case void 0:}}}
    >
      <button
        slot="trigger"
        type="button"
        class="btn btn--sm btn--ghost cron-job-menu__trigger"
        aria-label=${I(`cron.actions.moreJob`,{name:r})}
        title=${I(`cron.actions.moreJob`,{name:r})}
      >
        ${R(`moreHorizontal`)}
      </button>
      ${hG(e,`run-if-due`,I(`cron.actions.runIfDue`))}
      ${n?B:hG(e,`clone`,I(`cron.actions.clone`))}
      ${n?B:hG(e,`remove`,I(`cron.actions.remove`),!0)}
    </wa-dropdown>
  `}function lG(e){return Ku({title:I(`cron.suggestions.title`)},fW.map(t=>V`
        <button
          type="button"
          class="settings-row settings-row--nav cron-suggestion"
          data-suggestion=${t.id}
          @click=${()=>e.onOpenCreate(sW(t))}
        >
          <div class="settings-row__text">
            <span class="settings-row__title">
              <span aria-hidden="true">${t.emoji}</span> ${I(t.nameKey)}
            </span>
            <span class="settings-row__desc">${I(t.taglineKey)}</span>
          </div>
          <div class="settings-row__control">
            <span class="settings-row__value">${I(t.scheduleKey)}</span>
            <span class="settings-row__chevron">${z.chevronRight}</span>
          </div>
        </button>
      `))}function uG(e,t){let n=t===`job`?e.editingJob??void 0:void 0,r=t===`job`&&!!n,i=t===`job`&&e.detailTab===`history`,a=n?.trigger?{checkCount:n.state?.triggerEvalCount??0,lastCheckedAtMs:n.state?.lastTriggerEvalAtMs,lastFiredAtMs:n.state?.lastTriggerFireAtMs}:void 0,o=[V`
      <div class="cron-back-row">
        <button
          type="button"
          class="cron-back"
          data-test-id="cron-back"
          ?disabled=${e.busy}
          @click=${e.onClosePanel}
        >
          ${R(`arrowLeft`)} ${I(`cron.detail.back`)}
        </button>
      </div>
    `,dG(e,t,n),tG(e),r?pG(e):B,eG(e.error),V`
      <div
        id="cron-detail-panel"
        class="cron-tab-panel"
        role=${r?`tabpanel`:B}
        aria-labelledby=${r?`cron-detail-tab-${e.detailTab}`:B}
      >
        ${i?Ku({title:I(`cron.detail.historyTitle`)},V`<div class="cron-history">
                  ${yW({...e,conditionActivity:a})}
                </div>`):mG(e,t)}
      </div>
    `];return V`
    <section class="cron-page cron-page--detail" data-panel-mode=${t}>
      ${Au(o,{wide:!0})}
    </section>
  `}function dG(e,t,n){let r=t===`job`?n?.displayName??n?.name??e.form.name:I(`cron.detail.newTitle`),i=t===`job`?n?.description?.trim():void 0,a=Pn(n?.declarationKey),o=n?.state?.nextRunAtMs,s=typeof o==`number`&&Number.isFinite(o)?` · ${I(`cron.jobState.next`)} ${On(o)}`:``,c=t===`job`&&n?`${wU(n)}${s}`:I(`cron.detail.newSubtitle`);return V`
    <div class="cron-detail-header">
      <div class="cron-detail-header__copy">
        <div class="cron-detail-title">${r}</div>
        ${i?V`<div class="cron-detail-description" data-test-id="cron-detail-description">
                <span class="cron-detail-description__label">${I(`cron.form.description`)}:</span>
                ${i}
              </div>`:B}
        <div class="cron-detail-meta">
          ${t===`job`&&n&&e.canManage&&!a?fG(e,n):B}
          <span class="cron-detail-sub">${c}</span>
          ${n?.trigger?AW():B}
        </div>
      </div>
      <div class="cron-detail-actions">
        ${t===`job`&&n&&e.canManage?V`
                <button
                  type="button"
                  class="btn btn--sm"
                  data-test-id="cron-run-now"
                  ?disabled=${e.busy}
                  @click=${()=>e.onRun(n,`force`)}
                >
                  ${R(`play`)} ${I(`cron.actions.runNow`)}
                </button>
                ${cG(e,n)}
              `:B}
      </div>
    </div>
  `}function fG(e,t,n=!1){let r=t.enabled?I(`cron.detail.active`):I(`cron.detail.paused`),i=I(t.enabled?`cron.actions.pauseJob`:`cron.actions.resumeJob`,{name:t.displayName??t.name});return V`
    <span
      class="cron-enabled-toggle"
      data-test-id=${n?`cron-row-toggle-${t.id}`:`cron-toggle-enabled`}
      title=${n?i:B}
    >
      ${wu({checked:t.enabled,disabled:e.busy||!e.canManage,ariaLabel:n?i:r,onChange:n=>{e.canManage&&e.onToggle(t,n)}})}
      ${n?B:V`<span class="cron-detail-sub">${r}</span>`}
    </span>
  `}function pG(e){return pd({id:`cron-detail`,panelId:`cron-detail-panel`,className:`cron-tabs`,variant:`sub`,active:e.detailTab,tabs:[{value:`settings`,label:I(`cron.detail.settingsTab`),testId:`cron-detail-tab-settings`},{value:`history`,label:I(`cron.detail.historyTitle`),testId:`cron-detail-tab-history`}],ariaLabel:I(`cron.detail.tabsLabel`),onSelect:e.onDetailTabChange})}function mG(e,t){let n=e.form.payloadLocked,r=t===`job`&&Pn(e.editingJob?.declarationKey),i=!n&&e.form.payloadKind===`agentTurn`,a=e.form.sessionTarget!==`main`&&(e.form.payloadKind===`agentTurn`||n),o=e.form.deliveryMode===`announce`&&!a?`none`:e.form.deliveryMode,s=GW(e.fieldErrors,e.form,o),c=e.canManage&&!e.busy&&s.length>0,l=c&&!e.canSubmit?s.length===1?I(`cron.form.fixFields`,{count:String(s.length)}):I(`cron.form.fixFieldsPlural`,{count:String(s.length)}):``;return V`
    <fieldset
      class="cron-editor"
      ?disabled=${e.busy||!e.canManage||r}
      aria-busy=${String(e.busy)}
    >
      ${gG(e,{payloadLocked:n,isAgentTurn:i})} ${_G(e)}
      ${bG(e)}
      ${xG(e,{supportsAnnounce:a,selectedDeliveryMode:o})}
      ${SG(e,{mode:t,isAgentTurn:i,selectedDeliveryMode:o})}
      ${c?V`
              <div class="cron-form-status" role="status" aria-live="polite">
                <div class="cron-form-status__title">${I(`cron.form.cantAddYet`)}</div>
                <div class="cron-help">${I(`cron.form.fillRequired`)}</div>
                <ul class="cron-form-status__list">
                  ${s.map(e=>V`
                      <li>
                        <button
                          type="button"
                          class="cron-form-status__link"
                          @click=${()=>KW(e.inputId)}
                        >
                          ${e.label}: ${I(e.message)}
                        </button>
                      </li>
                    `)}
                </ul>
              </div>
            `:B}
      ${e.canManage&&!r?V`
              <div class="cron-editor-actions">
                <button
                  class="btn primary"
                  data-test-id="cron-submit"
                  ?disabled=${e.busy||!e.canSubmit}
                  @click=${e.onSubmit}
                >
                  ${e.busy?I(`cron.form.saving`):I(t===`job`?`cron.form.saveChanges`:`cron.form.createTask`)}
                </button>
                ${t===`create`?V`
                        <button
                          class="btn"
                          data-test-id="cron-submit-run"
                          ?disabled=${e.busy||!e.canSubmit}
                          @click=${e.onSubmitRunNow}
                        >
                          ${I(`cron.form.createAndRun`)}
                        </button>
                      `:B}
                <button class="btn" ?disabled=${e.busy} @click=${e.onClosePanel}>
                  ${I(`cron.form.cancel`)}
                </button>
                ${l?V`<div class="cron-submit-reason" aria-live="polite">
                        ${l}
                      </div>`:B}
              </div>
            `:B}
    </fieldset>
  `}function hG(e,t,n,r=!1){return V`
    <wa-dropdown-item
      class=${r?`cron-job-menu__item danger`:`cron-job-menu__item`}
      value=${t}
      variant=${r?`danger`:`default`}
      ?disabled=${e.busy||!e.canManage}
    >
      ${n}
    </wa-dropdown-item>
  `}function gG(e,t){let n=e.form.payloadKind===`script`?I(`cron.form.script`):e.form.payloadKind===`heartbeat`?`Heartbeat monitor`:e.form.payloadKind===`agentTurn`?I(`cron.form.assistantTaskPrompt`):I(`cron.form.command`),r=t.payloadLocked?n:e.form.payloadKind===`systemEvent`?I(`cron.form.mainTimelineMessage`):I(`cron.form.assistantTaskPrompt`),i=t.payloadLocked?I(`cron.form.readOnlyPayloadHelp`):e.form.payloadKind===`systemEvent`?I(`cron.form.systemEventHelp`):I(`cron.form.agentTurnHelp`),a=t.payloadLocked?DG[e.form.payloadKind]:``,o=e.form.payloadKind===`heartbeat`?e.heartbeatScratch:e.form.payloadText,s=YW({label:r,controlId:a?``:`cron-payload-text`,required:!0,help:i,stacked:!0,wide:!0,error:e.fieldErrors.payloadText,errorId:HW(`payloadText`),control:a?V`
          <pre
            id="cron-payload-text"
            class="code-block cron-payload-code"
            data-test-id="cron-payload-code"
            tabindex="0"
            role="region"
            aria-label=${r}
          ><code class="hljs">${pu(Uu(o,a))}</code></pre>
        `:V`
          <textarea
            id="cron-payload-text"
            class="settings-input"
            rows="6"
            .value=${o}
            ?readonly=${t.payloadLocked}
            aria-required="true"
            placeholder=${I(`cron.form.promptPlaceholder`)}
            aria-invalid=${e.fieldErrors.payloadText?`true`:`false`}
            aria-describedby=${yi(e.fieldErrors.payloadText?HW(`payloadText`):void 0)}
            @input=${t=>e.onFormChange({payloadText:t.target.value})}
          ></textarea>
        `}),c=I(`cron.form.action`),l=t.payloadLocked?YW({label:c,controlId:UW(`payloadKind`),control:V`
          <input
            id=${UW(`payloadKind`)}
            class="settings-input"
            .value=${n}
            readonly
          />
        `}):ZW(e,`payloadKind`,{label:c,options:[{value:`systemEvent`,label:I(`cron.form.systemEvent`)},{value:`agentTurn`,label:I(`cron.form.agentTurn`)}]}),u=I(`cron.form.model`),d=e.fieldErrors.payloadModel,f=al(e.modelSuggestions).map(e=>({value:e,label:e,provider:Ld(e)??void 0})),p=t.isAgentTurn?V`
        ${YW({label:u,controlId:``,help:I(`cron.form.modelHelp`),error:d,errorId:HW(`payloadModel`),control:yd({id:`cron-payload-model-picker`,label:u,value:e.form.payloadModel,options:[{value:``,label:I(`quickSettings.model.default`)},...f],custom:{id:UW(`payloadModel`),label:I(`cron.form.customModel`),placeholder:I(`cron.form.modelPlaceholder`),invalid:!!d,describedBy:d?HW(`payloadModel`):void 0},onChange:t=>e.onFormChange({payloadModel:t})})})}
        ${XW(e,`payloadThinking`,{label:I(`cron.form.thinking`),help:I(`cron.form.thinkingHelp`),errorKey:`payloadThinking`,describeError:!1,list:`cron-thinking-suggestions`,placeholder:I(`cron.form.thinkingPlaceholder`)})}
      `:B;return Ku({},V`${s}${l}${p}`)}function _G(e){let t=e.form.sessionTarget,n=t===`main`||t===`isolated`;return Ku({title:I(`cron.detail.generalSection`)},V`
      ${XW(e,`name`,{label:I(`cron.form.fieldName`),required:!0,errorKey:`name`,placeholder:I(`cron.form.namePlaceholder`)})}
      ${XW(e,`agentId`,{label:I(`cron.form.agentId`),help:I(`cron.form.agentHelp`),list:`cron-agent-suggestions`,disabled:e.form.clearAgent,placeholder:I(`cron.form.agentPlaceholder`)})}
      ${ZW(e,`sessionTarget`,{label:I(`cron.form.runsIn`),help:I(`cron.form.sessionHelp`),options:[{value:`main`,label:I(`cron.form.mainSession`)},{value:`isolated`,label:I(`cron.form.isolatedSession`)},...n?[]:[{value:t,label:t}]]})}
    `)}function vG(e){if(e.scheduleKind===`every`){let t=e.everyAmount.trim();if(Wc(t,e.everyUnit)===void 0)return null;let[n,r]=OG[e.everyUnit];return Number(t)===1?I(n):I(r,{amount:t})}if(e.scheduleKind===`at`){let t=Date.parse(e.scheduleAt);return Number.isFinite(t)?I(`cron.form.summaryOnce`,{at:Pe(t)}):null}if(e.scheduleKind===`cron`){let t=e.cronExpr.trim();if(!t)return null;let n=e.cronTz.trim();return n?I(`cron.form.summaryCronTz`,{expr:t,tz:n}):I(`cron.form.summaryCron`,{expr:t})}return e.scheduleKind===`on-exit`?I(`cron.form.repeatOnExit`):e.scheduleKind===`stream`?I(`cron.form.repeatStream`):null}function yG(e,t){let n=t===`every`,r=n?`everyAmount`:`staggerAmount`,i=n?`everyUnit`:`staggerUnit`,a=I(n?`cron.form.every`:`cron.form.staggerWindow`),o=n?!0:void 0,s=n?void 0:e.form.scheduleExact,c=n?[`seconds`,`minutes`,`hours`,`days`]:[`seconds`,`minutes`];return YW({label:a,controlId:UW(r),required:o,error:e.fieldErrors[r],errorId:HW(r),control:V`
      <div class="cron-inline-controls">
        ${XW(e,r,{inline:!0,label:a,required:o,disabled:s,errorKey:r,placeholder:I(n?`cron.form.everyAmountPlaceholder`:`cron.form.staggerPlaceholder`)})}
        ${ZW(e,i,{label:I(n?`cron.form.unit`:`cron.form.staggerUnit`),inline:!0,disabled:s,options:c.map(e=>({value:e,label:I(`cron.form.${e}`)}))})}
      </div>
    `})}function bG(e){let t=e.form,n=t.scheduleKind===`on-exit`,r=t.scheduleKind===`stream`,i=n?{value:`on-exit`,label:I(`cron.form.repeatOnExit`)}:r?{value:`stream`,label:I(`cron.form.repeatStream`)}:null,a=[...i?[{...i,testId:`cron-schedule-kind-${i.value}`}]:[],{value:`every`,label:I(`cron.form.repeatInterval`),testId:`cron-schedule-kind-every`},{value:`at`,label:I(`cron.form.repeatOnce`),testId:`cron-schedule-kind-at`},{value:`cron`,label:I(`cron.form.cronOption`),testId:`cron-schedule-kind-cron`}],o=vG(t);return Ku({title:I(`cron.detail.scheduleSection`)},V`
      ${wd({title:I(`cron.form.repeat`),description:n?I(`cron.form.onExitHelp`):void 0,stacked:!0,control:Wu({value:t.scheduleKind,options:a,ariaLabel:I(`cron.form.repeat`),onChange:n=>e.onFormChange({scheduleKind:n,...n===`at`&&(t.scheduleKind===`every`||t.scheduleKind===`cron`)?{deleteAfterRun:!0}:n===`every`||n===`cron`?{deleteAfterRun:!1}:{}})})})}
      ${t.scheduleKind===`at`?XW(e,`scheduleAt`,{label:I(`cron.form.runAt`),required:!0,errorKey:`scheduleAt`,type:`datetime-local`}):B}
      ${t.scheduleKind===`every`?yG(e,`every`):B}
      ${t.scheduleKind===`cron`?V`
              ${XW(e,`cronExpr`,{label:I(`cron.form.expression`),required:!0,errorKey:`cronExpr`,mono:!0,placeholder:I(`cron.form.expressionPlaceholder`)})}
              ${XW(e,`cronTz`,{label:I(`cron.form.timezoneOptional`),help:I(`cron.form.timezoneHelp`),list:`cron-tz-suggestions`,placeholder:I(`cron.form.timezonePlaceholder`)})}
            `:B}
      ${o?V` <div class="cron-schedule-summary">${R(`clock`)}<span>${o}</span></div> `:B}
    `)}function xG(e,t){let n=VW(e);return Ku({title:I(`cron.detail.deliverySection`)},V`
      ${ZW(e,`deliveryMode`,{label:I(`cron.form.deliveryModeLabel`),help:I(`cron.form.deliveryHelp`),value:t.selectedDeliveryMode,errorKey:`deliveryMode`,options:[...t.selectedDeliveryMode===``?[{value:``,label:I(`cron.form.selectDeliveryMode`),disabled:!0}]:[],...t.supportsAnnounce?[{value:`announce`,label:I(`cron.form.announceDefault`)}]:[],{value:`webhook`,label:I(`cron.form.webhookPost`)},{value:`none`,label:I(`cron.form.noneInternal`)}]})}
      ${t.selectedDeliveryMode===`announce`?V`
              ${ZW(e,`deliveryChannel`,{label:I(`cron.form.channel`),help:I(`cron.form.channelHelp`),options:n,channel:!0})}
              ${XW(e,`deliveryTo`,{label:I(`cron.form.to`),help:I(`cron.form.toHelp`),list:`cron-delivery-to-suggestions`,placeholder:I(`cron.form.toPlaceholder`)})}
            `:B}
      ${t.selectedDeliveryMode===`webhook`?XW(e,`deliveryTo`,{label:I(`cron.form.webhookUrl`),required:!0,help:I(`cron.form.webhookHelp`),errorKey:`deliveryTo`,list:`cron-delivery-to-suggestions`,placeholder:I(`cron.form.webhookPlaceholder`)}):B}
    `)}function SG(e,t){let n=e.form.scheduleKind===`cron`,r=VW(e);return V`
    <section class="settings-section">
      <details class="cron-advanced">
        <summary class="settings-section__heading cron-advanced__summary">
          ${I(`cron.form.advanced`)}
          ${e.form.triggerEnabled?V`<span class="cron-trigger-summary">
                  ${R(`gitBranch`)} ${I(`cron.form.triggerConfigured`)}
                </span>`:B}
        </summary>
        <p class="settings-section__desc">${I(`cron.form.advancedHelp`)}</p>
        <div class="settings-group">
          ${CG(e)}
          ${XW(e,`description`,{label:I(`cron.form.description`),placeholder:I(`cron.form.descriptionPlaceholder`)})}
          ${t.mode===`create`?QW(e,`enabled`,{label:I(`cron.form.startEnabled`)}):B}
          ${ZW(e,`wakeMode`,{label:I(`cron.form.wakeMode`),help:I(`cron.form.wakeModeHelp`),options:[{value:`now`,label:I(`cron.form.now`)},{value:`next-heartbeat`,label:I(`cron.form.nextHeartbeat`)}]})}
          ${t.isAgentTurn?XW(e,`timeoutSeconds`,{label:I(`cron.form.timeoutSeconds`),help:I(`cron.form.timeoutHelp`),errorKey:`timeoutSeconds`,placeholder:I(`cron.form.timeoutPlaceholder`)}):B}
          ${e.form.scheduleKind===`at`||e.form.scheduleKind===`on-exit`?QW(e,`deleteAfterRun`,{label:I(`cron.form.deleteAfterRun`),help:I(`cron.form.deleteAfterRunHelp`)}):B}
          ${QW(e,`clearAgent`,{label:I(`cron.form.clearAgentOverride`),help:I(`cron.form.clearAgentHelp`)})}
          ${XW(e,`sessionKey`,{label:I(`cron.form.sessionKey`),help:I(`cron.form.sessionKeyHelp`),placeholder:`agent:main:main`})}
          ${n?V`
                  ${QW(e,`scheduleExact`,{label:I(`cron.form.exactTiming`),help:I(`cron.form.exactTimingHelp`)})}
                  ${yG(e,`stagger`)}
                `:B}
          ${t.isAgentTurn?V`
                  ${XW(e,`deliveryAccountId`,{label:I(`cron.form.accountId`),help:I(`cron.form.accountIdHelp`),list:`cron-delivery-account-suggestions`,disabled:t.selectedDeliveryMode!==`announce`,placeholder:`default`})}
                  ${QW(e,`payloadLightContext`,{label:I(`cron.form.lightContext`),help:I(`cron.form.lightContextHelp`)})}
                  ${wG(e,r)}
                `:B}
          ${t.selectedDeliveryMode===`none`?B:QW(e,`deliveryBestEffort`,{label:I(`cron.form.bestEffortDelivery`),help:I(`cron.form.bestEffortHelp`)})}
        </div>
      </details>
    </section>
  `}function CG(e){let t=e.form.payloadKind===`script`;return!t&&e.status===null?B:e.status?.triggersEnabled!==!0||t?wd({title:I(`cron.form.conditionTrigger`),description:t?I(`cron.errors.triggerScriptPayloadUnsupported`):e.form.triggerEnabled?I(`cron.form.triggerDisabledConfigured`):I(`cron.form.triggerDisabled`),control:e.form.triggerEnabled?V`<button
            type="button"
            class="btn btn--sm"
            @click=${()=>e.onFormChange({triggerEnabled:!1})}
          >
            ${I(`cron.form.clearTrigger`)}
          </button>`:B}):V`
    ${QW(e,`triggerEnabled`,{label:I(`cron.form.conditionTrigger`),help:I(`cron.form.conditionTriggerHelp`)})}
    ${e.form.triggerEnabled?V`
            ${YW({label:I(`cron.form.triggerScript`),controlId:`cron-trigger-script`,required:!0,help:I(`cron.form.triggerScriptHelp`),error:e.fieldErrors.triggerScript,errorId:HW(`triggerScript`),stacked:!0,wide:!0,control:V`<textarea
                id="cron-trigger-script"
                class="settings-input cron-trigger-script mono"
                rows="8"
                spellcheck="false"
                aria-invalid=${e.fieldErrors.triggerScript?`true`:`false`}
                aria-describedby=${yi(e.fieldErrors.triggerScript?HW(`triggerScript`):void 0)}
                .value=${e.form.triggerScript}
                @input=${t=>{let n=t.currentTarget;n instanceof HTMLTextAreaElement&&e.onFormChange({triggerScript:n.value})}}
              ></textarea>`})}
            ${QW(e,`triggerOnce`,{label:I(`cron.form.triggerOnce`),help:I(`cron.form.triggerOnceHelp`)})}
          `:B}
  `}function wG(e,t){return V`
    ${ZW(e,`failureAlertMode`,{label:I(`cron.form.failureAlerts`),help:I(`cron.form.failureAlertsHelp`),options:[{value:`inherit`,label:I(`cron.form.failureAlertInherit`)},{value:`disabled`,label:I(`cron.form.failureAlertDisabled`)},{value:`custom`,label:I(`cron.form.failureAlertCustom`)}]})}
    ${e.form.failureAlertMode===`custom`?V`
            ${XW(e,`failureAlertAfter`,{label:I(`cron.form.failureAlertAfter`),help:I(`cron.form.failureAlertAfterHelp`),errorKey:`failureAlertAfter`,placeholder:I(`cron.form.failureAlertInherit`)})}
            ${XW(e,`failureAlertCooldownSeconds`,{label:I(`cron.form.failureAlertCooldown`),help:I(`cron.form.failureAlertCooldownHelp`),errorKey:`failureAlertCooldownSeconds`,placeholder:I(`cron.form.failureAlertInherit`)})}
            ${ZW(e,`failureAlertChannel`,{label:I(`cron.form.failureAlertChannel`),options:t,channel:!0})}
            ${XW(e,`failureAlertTo`,{label:I(`cron.form.failureAlertTo`),help:I(`cron.form.failureAlertToHelp`),list:`cron-failure-alert-to-suggestions`,placeholder:I(`cron.form.failureAlertToPlaceholder`)})}
            ${ZW(e,`failureAlertDeliveryMode`,{label:I(`cron.form.failureAlertMode`),options:[{value:``,label:I(`cron.form.failureAlertInherit`)},{value:`announce`,label:I(`cron.form.failureAlertAnnounce`)},{value:`webhook`,label:I(`cron.form.failureAlertWebhook`)}]})}
            ${XW(e,`failureAlertAccountId`,{label:I(`cron.form.failureAlertAccountId`),placeholder:I(`cron.form.failureAlertAccountPlaceholder`)})}
          `:B}
  `}var TG,EG,DG,OG;function kG(){return(kG=e((()=>{Ul(),H(),ii(),vi(),gu(),Ln(),Dd(),ud(),Td(),xd(),L(),Pu(),Ju(),Vu(),$u(),Qn(),Iu(),ju(),O(),jc(),xa(),Je(),EU(),pW(),PW(),RW(),OW(),BW(),rc(),TG={name:`cron.form.fieldName`,scheduleAt:`cron.form.runAt`,everyAmount:`cron.form.every`,cronExpr:`cron.form.expression`,staggerAmount:`cron.form.staggerWindow`,triggerScript:`cron.form.triggerScript`,payloadText:`cron.form.assistantTaskPrompt`,payloadModel:`cron.form.model`,payloadThinking:`cron.form.thinking`,timeoutSeconds:`cron.form.timeoutSeconds`,deliveryMode:`cron.form.deliveryModeLabel`,deliveryTo:`cron.form.to`,failureAlertAfter:`cron.form.failureAlertAfter`,failureAlertCooldownSeconds:`cron.form.failureAlertCooldown`},EG=[{value:`all`,labelKey:`cron.tabs.all`},{value:`enabled`,labelKey:`cron.tabs.active`},{value:`disabled`,labelKey:`cron.tabs.paused`}],DG={script:`javascript`,command:`bash`,heartbeat:``,systemEvent:``,agentTurn:``},OG={seconds:[`cron.form.summaryEverySecondOne`,`cron.form.summaryEverySeconds`],minutes:[`cron.form.summaryEveryMinuteOne`,`cron.form.summaryEveryMinutes`],hours:[`cron.form.summaryEveryHourOne`,`cron.form.summaryEveryHours`],days:[`cron.form.summaryEveryDayOne`,`cron.form.summaryEveryDays`]}})))()}var AG=t({cronPageComponent:()=>MG}),jG,MG;function NG(){return(NG=e((()=>{Al(),H(),ri(),Gn(),br(),Kn(),Wr(),kd(),Ad(),ju(),ld(),O(),jc(),ie(),Zt(),Bo(),ws(),P(),C(),p(),PI(),ob(),Ee(),he(),IU(),RU(),WU(),JU(),aW(),kG(),rc(),jG=class extends It{constructor(){super(),this.routeSearch=``,this.cron=qa(),this.agentsList=null,this.cronModelSuggestions=[],this.modelSuggestionsError=null,this.listTab=`tasks`,this.detailTab=`settings`,this.heartbeatScratch=``,this.runTranscript=new iW(this,()=>{let e=this.gateway.capture(),t=this.cron;return e?{client:e.client,isCurrent:()=>this.gateway.isCurrent(e)&&this.cron===t}:null}),this.pendingRouteData=null,this.routeJobRequested=!1,this.highlightedRunId=null,this.pendingRunScroll=!1,this.modelSuggestionsRequest=null,this.deliveryDirectory=new FU({currentCronState:()=>this.cron,canManage:()=>this.canManageCron,captureConnection:()=>this.gateway.capture(),isCurrentConnection:e=>this.gateway.isCurrent(e),notify:e=>this.requestCronUpdate(e)}),this.heartbeatScratchRequest=0,this.pageHidden=document.visibilityState===`hidden`,this.gateway=new ab(this,{getGateway:()=>this.context?.gateway,invalidateRequests:e=>this.resetGatewayState(e.snapshot),onSnapshot:e=>{e.initial?this.resetGatewayState(e.snapshot):sr(e.snapshot).canAdmin||(this.clearHeartbeatScratch(),this.deliveryDirectory.clear()),!e.initial&&e.becameAvailable&&!e.becameConnected&&this.ensureInitialData(!0)},ensureInitialData:()=>this.ensureInitialData(),onPageActivation:()=>{let e=document.visibilityState===`hidden`,t=this.pageHidden&&!e;this.pageHidden=e,t&&this.ensureInitialData(!0)}}),this.observeAgentScope=Qa((e,t)=>{if(!t){this.cron.cronAgentId=e,this.refreshCron(),this.loadModelSuggestions(this.cron),(this.cron.cronEditingJob||this.cron.cronCreateOpen)&&!this.cron.cronForm.agentId.trim()&&this.deliveryDirectory.load(),this.requestUpdate();return}this.pendingRouteData=null,this.resetGatewayState(this.context.gateway.snapshot),this.cron.cronAgentId=e,this.listTab=`tasks`,this.detailTab=`settings`,this.ensureInitialData(),this.requestUpdate()}),this.subscriptions=new re(this).watchStore(()=>this.context?.agents,()=>this.agentsList=this.context.agents.state.agentsList).watchStore(()=>this.context?.channels).watchStore(()=>this.context?.runtimeConfig).effect(()=>this.context?.agentSelection,e=>{let t=this.observeAgentScope(e),n=ee(e,e=>{this.modelSuggestionsRequest?.agentId!==e&&this.loadModelSuggestions(this.cron)});return()=>[n,t].forEach(e=>e())}).effect(()=>this.context?.gateway,e=>e.subscribeEvents(t=>{this.gateway.gateway===e&&this.context.gateway===e&&(t.event===`cron`?this.refreshCron({coalesce:!0}):Ae(t)&&this.loadModelSuggestions(this.cron))})),this.lastPanelKey=null,new LU(this)}get canManageCron(){return sr(this.context.gateway.snapshot).canAdmin}disconnectedCallback(){this.subscriptions.clear(),super.disconnectedCallback()}resetGatewayState(e){this.runTranscript.close(),this.clearHeartbeatScratch(),Xo(this.cron);let t=e?.phase===`connected`,n=qa({client:e?.client??null,connected:t});n.canRefresh=()=>this.canRefreshCron(n),this.cron=n,n.cronSessionFilter=GU(this.routeSearch).session,this.routeJobRequested=!1,this.pageHidden=document.visibilityState===`hidden`,this.cron.cronAgentId=this.context.agentSelection.state.scopeId,this.agentsList=t?this.context.agents.state.agentsList:null,this.cronModelSuggestions=[],this.deliveryDirectory.retireEditor(),this.modelSuggestionsError=null,this.modelSuggestionsRequest=null}canRefreshCron(e=this.cron){return this.isConnected&&this.cron===e&&ue(this.context.gateway.snapshot)&&document.visibilityState!==`hidden`}ensureInitialData(e=!1){this.canRefreshCron()&&this.cron.connected&&this.cron.client&&(!this.agentsList&&!this.context.agents.state.agentsLoading&&this.context.agents.ensureList(),e||!this.cron.cronStatus&&!this.cron.cronLoading?this.refreshCron({coalesce:!0}):!this.cron.cronRuns.length&&!this.cron.cronRunsLoadingMore&&this.loadRuns(),(e||this.modelSuggestionsRequest?.state!==this.cron)&&this.loadModelSuggestions(this.cron))}requestCronUpdate(e=this.cron){this.cron===e&&this.requestUpdate()}willUpdate(e){if(e.has(`routeSearch`)){this.runTranscript.close(),this.cron.cronError=null;let e=GU(this.routeSearch);JSON.stringify(this.cron.cronSessionFilter)!==JSON.stringify(e.session)&&(this.resetGatewayState(this.context.gateway.snapshot),this.ensureInitialData()),this.listTab=`tasks`,this.detailTab=`settings`,this.pendingRouteData=e.jobId||e.session?e:null,this.routeJobRequested=!1,this.highlightedRunId=null,this.pendingRunScroll=!1}let t=this.cron.cronEditingJob?.id??null,n=`${t?`job`:this.cron.cronCreateOpen?`create`:`overview`}:${t??``}`;if(n!==this.lastPanelKey){this.lastPanelKey=n,this.runTranscript.close(),this.detailTab=t&&this.highlightedRunId?`history`:`settings`;let e=this.closest(`.content`);e instanceof HTMLElement&&typeof e.scrollTo==`function`&&e.scrollTo({top:0})}}updated(){let e=this.pendingRouteData,t=this.cron.client;if(e?.session&&this.cron.cronJobsSnapshotRevision&&!this.cron.cronLoading){this.pendingRouteData=null;let[e]=this.cron.cronJobs;this.cron.cronJobsTotal===1&&e&&this.selectJob(e)}if(e?.jobId&&t&&this.cron.connected&&!this.routeJobRequested&&(this.routeJobRequested=!0,this.runCronTask(async n=>{let r=()=>this.isConnected&&this.cron===n&&this.pendingRouteData===e;try{let n=await t.request(`cron.get`,{id:e.jobId});r()&&this.selectJob(n,e.runId)}catch(e){r()&&(this.pendingRouteData=null,n.cronError=F(e))}})),this.pendingRunScroll){let e=this.querySelector(`.cron-run-entry--highlighted`);e&&(e.scrollIntoView?.({block:`nearest`}),this.pendingRunScroll=!1)}}async refreshCron(e={}){let t=this.cron;this.canRefreshCron(t)&&t.connected&&t.client&&(this.loadRuns(e.coalesce),this.context.channels.refresh(!1),await Promise.all([this.runCronTask(t=>yo(t,e)),this.runCronTask(e=>$c(e,{tableFilters:!0}))]))}loadRuns(e=!1){return this.runCronTask(t=>_c(t,{coalesce:e}))}updateJobsFilters(e){this.runCronTask(async t=>{ts(t,e),await $c(t,{append:!1,tableFilters:!0})})}async loadModelSuggestions(e){let t=e.client,n=this.context.agentSelection.state.selectedId;if(this.modelSuggestionsRequest?.agentId!==n&&(this.modelSuggestionsRequest=null,this.cronModelSuggestions=[],this.modelSuggestionsError=null),!t||!n||!ue(this.context.gateway.snapshot))return;let r={state:e,agentId:n};this.modelSuggestionsRequest=r;let i=()=>this.cron===e&&this.modelSuggestionsRequest===r&&this.context.agentSelection.state.selectedId===n;try{let e=await MI(t,{agentId:n});i()&&(this.cronModelSuggestions=e.models.filter(e=>e.manualSelectionAllowed!==!1).map(e=>At(e.id,e.provider)),this.modelSuggestionsError=OI(e))}catch(e){i()&&(this.modelSuggestionsError=F(e))}}async runCronTask(e){let t=this.cron;try{let n=e(t);return this.requestCronUpdate(t),await n}finally{this.requestCronUpdate(t)}}runCronAdminTask(e){this.canManageCron&&this.runCronTask(e)}patchForm(e){if(!this.canManageCron)return;let t=this.cron.cronForm,n=jU(t,e),r=fa({...this.cron.cronForm,...n},n);this.cron.cronForm=r,this.cron.cronFieldErrors=dc(this.cron.cronForm),MU(t,r)&&this.deliveryDirectory.load(),this.requestCronUpdate()}selectJob(e,t=null){this.clearHeartbeatScratch(),this.pendingRouteData=null,this.highlightedRunId=t,this.pendingRunScroll=!!t,t&&(this.detailTab=`history`),this.cron.cronCreateOpen=!1,Tc(this.cron,e),this.deliveryDirectory.openEditor(),this.requestCronUpdate(),e.payload?.kind===`heartbeat`&&this.loadHeartbeatScratch(this.cron,e.id,this.heartbeatScratchRequest),this.runCronTask(async t=>{await this.refreshRunsScope(t,e.id)})}refreshRunsScope(e,t){return Ps(e,{cronRunsScope:t===null?`all`:`job`}),e.cronRunsJobId=t,_c(e)}clearHeartbeatScratch(){this.heartbeatScratchRequest+=1,this.heartbeatScratch=``}async loadHeartbeatScratch(e,t,n){let r=e.client;if(!this.canManageCron||!r||!e.connected)return;let i=this.gateway.capture();if(!i)return;let a=()=>this.cron===e&&this.heartbeatScratchRequest===n&&this.gateway.isCurrent(i)&&this.canManageCron&&e.cronEditingJob?.id===t&&e.cronForm.payloadKind===`heartbeat`;try{let e=await r.request(`cron.scratch.get`,{id:t});a()&&(this.heartbeatScratch=e.scratch?.content??``)}catch(t){a()&&(e.cronError=F(t),this.requestCronUpdate(e))}}resetEditor(e){this.clearHeartbeatScratch(),this.pendingRouteData=null,this.deliveryDirectory.retireEditor(),Cc(this.cron,this.context.agentSelection.state.selectedId),this.cron.cronCreateOpen=e}openCreate(e){if(this.canManageCron){if(this.resetEditor(!0),e){this.patchForm(e);return}this.requestCronUpdate()}}cloneJob(e){this.canManageCron&&(this.clearHeartbeatScratch(),this.pendingRouteData=null,oc(this.cron,e),this.cron.cronCreateOpen=!0,this.deliveryDirectory.openEditor(),this.requestCronUpdate())}async removeJob(e){let t=this.context,n=this.cron,r=this.gateway.capture(),i=this.canManageCron,a=n.cronEditingJob?.id===e.id?n.cronEditingJob:n.cronJobs.find(t=>t.id===e.id&&t.updatedAtMs===e.updatedAtMs);if(!r||!i||!a)return;let o=a.id,s=a.updatedAtMs,c=a.name,l=await _d({title:I(`cron.actions.removeConfirmTitle`,{name:c}),message:I(`cron.actions.removeConfirmMessage`),confirmLabel:I(`cron.actions.remove`),danger:!0}),u=n.cronEditingJob?.id===o?n.cronEditingJob:n.cronJobs.find(e=>e.id===o);if(!l||this.context!==t||this.cron!==n||!this.gateway.isCurrent(r)||!this.canManageCron||!u||u.updatedAtMs!==s)return;let d=this.deliveryDirectory.generation;await this.runCronTask(async e=>{let t=e.cronEditingJob?.id===o;await ys(e,u),t&&e.cronEditingJob?.id!==o&&this.deliveryDirectory.retireExitedEditor(e,r,d),e.cronRunsScope===`job`&&e.cronRunsJobId===null&&await this.refreshRunsScope(e,null)})}closePanel(){this.resetEditor(!1),this.requestCronUpdate(),this.runCronTask(async e=>{await this.refreshRunsScope(e,null)})}submitForm(e=!1){let t=this.gateway.capture(),n=this.deliveryDirectory.generation;this.runCronAdminTask(async r=>{let i=!!r.cronEditingJob,a=await Za(r);if(!a.saved){this.deliveryDirectory.reconcileRoute(r,t,n);return}let o=i||!!r.cronEditingJob;this.deliveryDirectory.afterSave(r,t,n,o),!o&&(e&&a.jobId&&await Nc(r,a.jobId,`force`),r.cronCreateOpen=!1,r.cronRunsScope===`job`&&await this.refreshRunsScope(r,null))})}render(){let e=this.context.channels.state,t=HU({channels:e,runtimeConfig:this.context.runtimeConfig.state,cron:this.cron,agentsList:this.agentsList,modelSuggestions:this.cronModelSuggestions,conversationTargets:VU(this.deliveryDirectory.conversations,this.cron.cronForm.deliveryAccountId)}),n=this.canManageCron;return V`
      ${Nu({title:Jn(`cron`),subtitle:this.cron.cronSessionFilter?I(`cron.list.sessionFilter`):Gr(`cron`),actions:this.cron.cronSessionFilter?V`<a
              class="btn"
              href=${Ur(`cron`,this.context.basePath)}
              @click=${e=>{ne(e)&&(e.preventDefault(),this.context.navigate(`cron`,{search:``}))}}
              >${I(`cron.list.showAll`)}</a
            >`:gd({agents:this.agentsList?.agents??[],selection:this.context.agentSelection})})}
      ${this.runTranscript.render()}
      ${jd($W({loading:this.cron.cronLoading,hasLoaded:this.cron.cronJobsSnapshotRevision!==null,listError:this.cron.cronJobsError,canManage:n,status:this.cron.cronStatus,jobs:this.cron.cronJobs,jobsLoadingMore:this.cron.cronJobsLoadingMore,jobsTotal:this.cron.cronJobsTotal,jobsHasMore:this.cron.cronJobsHasMore,jobsQuery:this.cron.cronJobsQuery,jobsEnabledFilter:this.cron.cronJobsEnabledFilter,jobsScheduleKindFilter:this.cron.cronJobsScheduleKindFilter,jobsLastStatusFilter:this.cron.cronJobsLastStatusFilter,jobsTriggerFilter:this.cron.cronJobsTriggerFilter,jobsSortBy:this.cron.cronJobsSortBy,jobsSortDir:this.cron.cronJobsSortDir,editingJob:this.cron.cronEditingJob,createOpen:this.cron.cronCreateOpen,listTab:this.listTab,detailTab:this.detailTab,error:this.cron.cronError??this.cron.cronRunsError??this.deliveryDirectory.error??this.modelSuggestionsError,busy:this.cron.cronBusy,form:this.cron.cronForm,heartbeatScratch:n?this.heartbeatScratch:``,channels:e.channelsSnapshot?.channelMeta?.length?e.channelsSnapshot.channelMeta.map(e=>e.id):e.channelsSnapshot?.channelOrder??[],channelLabels:e.channelsSnapshot?.channelLabels??{},channelMeta:e.channelsSnapshot?.channelMeta??[],runs:this.cron.cronRuns,runsState:hs(this.cron),highlightedRunId:this.highlightedRunId,runsHasMore:this.cron.cronRunsHasMore,runsLoadingMore:this.cron.cronRunsLoadingMore,runsStatuses:this.cron.cronRunsStatuses,runsDeliveryStatuses:this.cron.cronRunsDeliveryStatuses,runsQuery:this.cron.cronRunsQuery,runsSortDir:this.cron.cronRunsSortDir,fieldErrors:this.cron.cronFieldErrors,canSubmit:!Go(this.cron.cronFieldErrors),agentSuggestions:t.agentSuggestions,modelSuggestions:t.modelSuggestions,thinkingSuggestions:UU,timezoneSuggestions:t.timezoneSuggestions,deliveryToSuggestions:t.deliveryToSuggestions,failureAlertToSuggestions:t.failureAlertToSuggestions,accountSuggestions:t.accountTargets,onListTabChange:e=>{this.listTab=e},onDetailTabChange:e=>{this.detailTab=e},onFormChange:e=>this.patchForm(e),onRefresh:()=>void this.refreshCron(),onSubmit:()=>this.submitForm(),onSubmitRunNow:()=>this.submitForm(!0),onSelectJob:e=>this.selectJob(e),onOpenCreate:e=>this.openCreate(e),onClosePanel:()=>this.closePanel(),onClone:e=>this.cloneJob(e),onToggle:(e,t)=>this.runCronAdminTask(n=>zs(n,e,t)),onRun:(e,t)=>this.runCronAdminTask(n=>Nc(n,e.id,t??`force`)),onRemove:e=>void this.removeJob(e),onLoadMoreJobs:()=>void this.runCronTask(e=>$c(e,{append:!0,tableFilters:!0})),onJobsFiltersChange:e=>this.updateJobsFilters(e),onJobsFiltersReset:()=>this.updateJobsFilters({cronJobsScheduleKindFilter:`all`,cronJobsLastStatusFilter:`all`,cronJobsTriggerFilter:`all`,cronJobsSortBy:`nextRunAtMs`,cronJobsSortDir:`asc`}),onLoadMoreRuns:()=>void this.runCronTask(e=>tc(e)),onRunsFiltersChange:e=>void this.runCronTask(async t=>{Ps(t,e),await _c(t)}),onViewRunTranscript:(e,t)=>void this.runTranscript.open(e,t)}))}
    `}},q([Tl({context:wr,subscribe:!0})],jG.prototype,`context`,void 0),q([U({attribute:!1})],jG.prototype,`routeSearch`,void 0),q([W()],jG.prototype,`cron`,void 0),q([W()],jG.prototype,`agentsList`,void 0),q([W()],jG.prototype,`cronModelSuggestions`,void 0),q([W()],jG.prototype,`modelSuggestionsError`,void 0),q([W()],jG.prototype,`listTab`,void 0),q([W()],jG.prototype,`detailTab`,void 0),q([W()],jG.prototype,`heartbeatScratch`,void 0),MG={header:!0,render:e=>V`<openclaw-cron-page
    .routeSearch=${typeof e==`string`?e:``}
  ></openclaw-cron-page>`},customElements.get(`openclaw-cron-page`)||customElements.define(`openclaw-cron-page`,jG)})))()}export{GB as $,fk as $a,tx as $c,bg as $d,Wm as $f,VA as $i,Gy as $l,zF as $n,lD as $o,Rf as $p,MN as $r,PS as $s,JL as $t,J_ as $u,aH as A,sA as Aa,Ox as Ac,l_ as Ad,Oh as Af,mM as Ai,cb as Al,NI as An,aO as Ao,Lp as Ap,gP as Ar,zC as As,bz as At,Nv as Au,qV as B,rA as Ba,_x as Bc,Mg as Bd,Dh as Bf,pj as Bi,Xy as Bl,cI as Bn,eO as Bo,Ep as Bp,QN as Br,SC as Bs,DR as Bt,jv as Bu,xH as C,vA as Ca,Lx as Cc,Zg as Cd,ch as Cf,RM as Ci,ub as Cl,OI as Cn,EO as Co,mm as Cp,JP as Cr,XC as Cs,Xz as Ct,$ as Cu,pH as D,lA as Da,Mx as Dc,t_ as Dd,Sh as Df,OM as Di,hb as Dl,DI as Dn,uO as Do,Yp as Dp,jP as Dr,KC as Ds,hz as Dt,Mv as Du,gH as E,pA as Ea,Px as Ec,$g as Ed,uh as Ef,SM as Ei,fb as El,wI as En,yO as Eo,sm as Ep,RP as Er,UC as Es,iz as Et,Iv as Eu,nH as F,oA as Fa,Tx as Fc,Og as Fd,Th as Ff,Nj as Fi,ib as Fl,yI as Fn,zD as Fo,Fp,rP as Fr,kC as Fs,XR as Ft,Dv as Fu,jV as G,Ak as Ga,dx as Gc,Ng as Gd,nh as Gf,sj as Gi,Jy as Gl,YF as Gn,UD as Go,op as Gp,VN as Gr,YS as Gs,vR as Gt,sv as Gu,LV as H,Wk as Ha,px as Hc,Ig as Hd,_h as Hf,uj as Hi,Yy as Hl,eI as Hn,YD as Ho,Sp as Hp,YN as Hr,yC as Hs,yR as Ht,_v as Hu,QV as I,Pk as Ia,bx as Ic,Ag as Id,gh as If,Mj as Ii,eb as Il,hI as In,LD as Io,zp as Ip,nP as Ir,DC as Is,UR as It,gv as Iu,ZB as J,Ek as Ja,sx as Jc,wg as Jd,Zm as Jf,ej as Ji,Uy as Jl,qF as Jn,jD as Jo,cp as Jp,NN as Jr,eC as Js,mR as Jt,iv as Ju,dV as K,xk as Ka,ox as Kc,Lg as Kd,Km as Kf,$A as Ki,By as Kl,JF as Kn,ND as Ko,Y as Kp,RN as Kr,vC as Ks,pR as Kt,uv as Ku,JV as L,Bk as La,Cx as Lc,Fg as Ld,hh as Lf,_j as Li,nb as Ll,aI as Ln,FD as Lo,wp as Lp,uP as Lr,IC as Ls,JR as Lt,hv as Lu,eH as M,Gk as Ma,Dx as Mc,r_ as Md,ih as Mf,pM as Mi,ab as Ml,bI as Mn,tO as Mo,Pp as Mp,pP as Mr,NC as Ms,lz as Mt,Pv as Mu,rH as N,zk as Na,Ex as Nc,Qg as Nd,vh as Nf,Ij as Ni,ob as Nl,CI as Nn,nO as No,Rp as Np,tP as Nr,jC as Ns,FR as Nt,zv as Nu,sH as O,uA as Oa,Ax as Oc,n_ as Od,Mh as Of,EM as Oi,mb as Ol,AI as On,bO as Oo,qp as Op,wP as Or,WC as Os,gz as Ot,Lv as Ou,$V as P,Rk as Pa,wx as Pc,kg as Pd,wh as Pf,Gj as Pi,rb as Pl,vI as Pn,RD as Po,Up as Pp,eP as Pr,AC as Ps,qR as Pt,Bv as Pu,qB as Q,_k as Qa,nx as Qc,gg as Qd,Jm as Qf,WA as Qi,zy as Ql,CF as Qn,aD as Qo,Gf as Qp,kN as Qr,NS as Qs,qL as Qt,Y_ as Qu,XV as R,nA as Ra,gx as Rc,Hg as Rd,ph as Rf,hj as Ri,tb as Rl,lI as Rn,GD as Ro,Op as Rp,sP as Rr,xC as Rs,RR as Rt,yv as Ru,bH as S,mA as Sa,Ux as Sc,e_ as Sd,sh as Sf,LM as Si,bb as Sl,MI as Sn,vO as So,pm as Sp,NP as Sr,$C as Ss,Gz as St,Wv as Su,_H as T,dA as Ta,Nx as Tc,p_ as Td,dh as Tf,kM as Ti,db as Tl,TI as Tn,xO as To,om as Tp,PP as Tr,qC as Ts,Qz as Tt,Fv as Tu,PV as U,Ik as Ua,hx as Uc,Rg as Ud,eh as Uf,lj as Ui,Zy as Ul,ZF as Un,ID as Uo,sp as Up,JN as Ur,zS as Us,bR as Ut,bv as Uu,VV as V,Qk as Va,fx as Vc,Dg as Vd,lh as Vf,Tj as Vi,Qy as Vl,$F as Vn,qD as Vo,Cp as Vp,qN as Vr,bC as Vs,OR as Vt,pv as Vu,NV as W,Mk as Wa,lx as Wc,Pg as Wd,th as Wf,fj as Wi,Ny as Wl,QF as Wn,WD as Wo,lp as Wp,BN as Wr,fC as Ws,_R as Wt,lv as Wu,XB as X,bk as Xa,ix as Xc,_g as Xd,$m as Xf,XA as Xi,qy as Xl,MF as Xn,AD as Xo,Vf as Xp,EN as Xr,RS as Xs,sR as Xt,ov as Xu,YB as Y,yk as Ya,ax as Yc,yg as Yd,Ym as Yf,QA as Yi,Vy as Yl,BF as Yn,kD as Yo,up as Yp,FN as Yr,uC as Ys,fR as Yt,av as Yu,JB as Z,gk as Za,rx as Zc,hg as Zd,qm as Zf,YA as Zi,Wy as Zl,EF as Zn,SD as Zo,$f as Zp,AN as Zr,MS as Zs,lR as Zt,B_ as Zu,rU as _,wA as _a,Jx as _c,h_ as _d,Vh as _f,GM as _i,Lb as _l,RI as _n,jO as _o,_m as _p,YP as _r,wT as _s,hB as _t,sy as _u,TU as a,RA as aa,_S as ac,U_ as ad,ng as af,hN as ai,Wb as al,xf as am,ML as an,YO as ao,Lm as ap,dF as ar,gE as as,RB as at,by as au,DH as b,yA as ba,Kx as bc,E_ as bd,rh as bf,VM as bi,Cb as bl,FI as bn,lO as bo,gm as bp,IP as br,Rw as bs,Yz as bt,Xv as bu,SU as c,MA as ca,hS as cc,V_ as cd,Xh as cf,QM as ci,Hb as cl,Ef as cm,_L as cn,rk as co,Rm as cp,SF as cr,iE as cs,AB as ct,my as cu,EU as d,AA as da,nS as dc,k_ as dd,Zh as df,rN as di,zb as dl,Tf as dm,gL as dn,WO as do,Z as dp,mF as dr,qT as ds,yB as dt,py as du,KA as ea,FS as ec,rv as ed,fg as ef,CN as ei,ex as el,Lf as em,GL as en,dk as eo,Um as ep,wF as er,$E as es,KB as et,Hy as eu,yU as f,DA as fa,aS as fc,P_ as fd,qh as ff,YM as fi,Nb as fl,vL as fn,BO as fo,Fm as fp,lF as fr,JT as fs,dB as ft,dy as fu,iU as g,xA as ga,Qx as gc,g_ as gd,Hh as gf,KM as gi,kb as gl,zI as gn,MO as go,X as gp,ZP as gr,TT as gs,oB as gt,_y as gu,aU as h,EA as ha,Zx as hc,w_ as hd,Jh as hf,JM as hi,Eb as hl,BI as hn,NO as ho,jm as hp,$P as hr,VT as hs,lB as ht,ly as hu,kU as i,IA as ia,gS as ic,tv as id,dg as if,pN as ii,Xb as il,Mf as im,KL as in,ak as io,Bm as ip,vF as ir,pE as is,VB as it,Ty as iu,iH as j,Fk as ja,kx as jc,a_ as jd,mh as jf,cM as ji,sb as jl,SI as jn,rO as jo,Ip as jp,fP as jr,MC as js,az as jt,Vv as ju,oH as k,cA as ka,jx as kc,qg as kd,kh as kf,xM as ki,lb as kl,EI as kn,_O as ko,Qp as kp,SP as kr,HC as ks,xz as kt,Uv as ku,bU as l,NA as la,xS as lc,W_ as ld,tg as lf,XM as li,Bb as ll,Cf as lm,xL as ln,$O as lo,Tm as lp,fF as lr,tE as ls,DB as lt,gy as lu,oU as m,kA as ma,Yx as mc,M_ as md,Kh as mf,gN as mi,xb as ml,yL as mn,FO as mo,Em as mp,eF as mr,WT as ms,mB as mt,vy as mu,NG as n,BA as na,jS as nc,X_ as nd,pg as nf,oN as ni,qb as nl,Ff as nm,IL as nn,ok as no,zm as np,LF as nr,HE as ns,WB as nt,ky as nu,wU as o,FA as oa,mS as oc,Q as od,ag as of,mN as oi,Ub as ol,pf as om,VL as on,JO as oo,Mm as op,pF as or,mE as os,NB as ot,yy as ou,sU as p,TA as pa,iS as pc,N_ as pd,Uh as pf,iN as pi,Ob as pl,sL as pn,IO as po,Pm as pp,tF as pr,KT as ps,uB as pt,fy as pu,sV as q,wk as qa,cx as qc,Tg as qd,Qm as qf,oj as qi,Ky as ql,UF as qn,MD as qo,tp as qp,zN as qr,lC as qs,gR as qt,cv as qu,AU as r,LA as ra,CS as rc,Z_ as rd,vg as rf,sN as ri,Gb as rl,Df as rm,FL as rn,GO as ro,Vm as rp,_F as rr,VE as rs,HB as rt,jy as ru,CU as s,PA as sa,bS as sc,q_ as sd,ug as sf,$M as si,Vb as sl,Of as sm,jL as sn,KO as so,km as sp,hF as sr,hE as ss,kB as st,wy as su,AG as t,zA as ta,OS as tc,H_ as td,mg as tf,lN as ti,$b as tl,If as tm,WL as tn,uk as to,Hm as tp,TF as tr,UE as ts,UB as tt,Ay as tu,xU as u,jA as ua,fS as uc,z_ as ud,Wh as uf,ZM as ui,Rb as ul,wf as um,EL as un,zO as uo,Im as up,gF as ur,XT as us,OB as ut,uy as uu,nU as v,bA as va,Gx as vc,__ as vd,Fh as vf,UM as vi,Ib as vl,LI as vn,kO as vo,wm as vp,XP as vr,Xw as vs,cB as vt,ay as vu,yH as w,_A as wa,Ix as wc,Yg as wd,ah as wf,AM as wi,yb as wl,kI as wn,hO as wo,am as wp,WP as wr,JC as ws,Zz as wt,Hv as wu,kH as x,hA as xa,Rx as xc,c_ as xd,xh as xf,HM as xi,Db as xl,PI as xn,gO as xo,cm as xp,MP as xr,Lw as xs,aB as xt,iy as xu,$H as y,SA as ya,qx as yc,O_ as yd,Nh as yf,WM as yi,Sb as yl,II as yn,mO as yo,dm as yp,KP as yr,Ww as ys,Jz as yt,oy as yu,ZV as z,tA as za,yx as zc,Eg as zd,Ch as zf,kj as zi,$y as zl,sI as zn,KD as zo,Tp as zp,oP as zr,EC as zs,VR as zt,vv as zu};