import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Dn as t,Gt as n,Jt as r,er as i}from"./control-ui-foundation-CeFMP1Ly.js";import{_ as a,b as o,fl as s,g as c,ml as l,w as u}from"./control-ui-core-pH6nakZ-.js";import{G as d,J as f,W as p,X as m,Z as h,at as g,rt as _}from"./lit-runtime-BEtFSUCp.js";import{m as v,p as y}from"./control-ui-core-DGVkFhVB.js";import{Ht as b,qt as x}from"./control-ui-core-Br5DB0Zj.js";import{In as S,Ln as C}from"./control-ui-boot-wpHCbPL9.js";import{Ns as w,Ps as T}from"./control-ui-boot-Cdpgu1Gm.js";import{i as E,n as D,t as O}from"./lane-table-QMAsbx-S.js";function k(){return M+=1,`debug-vital-gradient-${M}`}var A,j,M,N;function P(){return(P=e((()=>{p(),h(),u(),l(),A=100,j=40,M=0,N=class extends s{constructor(...e){super(...e),this.label=``,this.sub=``,this.samples=[],this.format=String,this.floorMax=0,this.autorange=!1,this.hoverIndex=null,this.gradientId=k(),this.handlePointerMove=e=>{if(this.samples.length<2)return;let t=e.currentTarget;if(!(t instanceof HTMLElement))return;let n=e.offsetX/Math.max(t.clientWidth,1),r=Math.round(n*(this.samples.length-1));this.hoverIndex=Math.min(Math.max(r,0),this.samples.length-1)},this.handlePointerLeave=()=>{this.hoverIndex=null}}get yRange(){let e=this.floorMax,t=1/0;for(let n of this.samples)n.value>e&&(e=n.value),n.value0?e:1};let n=Math.max(e-t,e*.02,1e-9),r=Math.max(t-n*.5,0);return{min:r,span:Math.max(e-r,1e-9)}}toY(e){let{min:t,span:n}=this.yRange,r=Math.min(Math.max((e-t)/n,0),1);return j-r*36}renderChart(){let e=this.samples;if(e.length<2)return d;let t=A/(e.length-1),n=e.map((e,n)=>`${n*t},${this.toY(e.value)}`).join(` `),r=e.at(-1);if(!r)return d;let i=this.toY(r.value),a=this.hoverIndex===null?void 0:e[this.hoverIndex],o=this.hoverIndex===null?0:this.hoverIndex/(e.length-1)*100;return f`
${a?f`
`:f`
`}
`}render(){let e=this.samples,t=e.at(-1),n=this.hoverIndex===null?null:e[this.hoverIndex],r=n??t,i=n&&t&&t.at>n.at?c(t.at-n.at):null;return f`
${this.label} ${this.sub?f`${this.sub}`:d}
${r?this.format(r.value):`–`} ${i?f`−${i}`:d}
${this.renderChart()} `}},i([g()],N.prototype,`label`,void 0),i([g()],N.prototype,`sub`,void 0),i([g({attribute:!1})],N.prototype,`samples`,void 0),i([g({attribute:!1})],N.prototype,`format`,void 0),i([g({attribute:!1})],N.prototype,`floorMax`,void 0),i([g({type:Boolean})],N.prototype,`autorange`,void 0),i([_()],N.prototype,`hoverIndex`,void 0),customElements.get(`openclaw-debug-sparkline`)||customElements.define(`openclaw-debug-sparkline`,N)})))()}function F(e){return{...e,render:(t,n)=>e.render(t,n)}}function I(e){return f`
${D(e,{compact:!0})}
${x(`debug.lanes.lane`)} ${x(`debug.lanes.active`)} ${x(`debug.lanes.queued`)} ${x(`debug.lanes.blocked`)}
`}function L(e,t){let n=[];for(let r of e){let e=t(r.status);typeof e==`number`&&Number.isFinite(e)&&n.push({value:e,at:r.at})}return n}function R(e){return`${Math.round(e*100)}%`}function z(e){return x(`debug.overlay.memoryMb`,{value:String(Math.round(e/1048576))})}function B(e){return c(e)??x(`common.na`)}function V(e){return x(`debug.overlay.freeShort`,{value:H(e)})}function H(e){return t(e,{style:`legacy-binary`,maxUnit:`tera`,separator:` `,fractionDigits:(e,t)=>t===`byte`?null:+(e<10)})}function U(e,t){let n=e.eventLoop,r=n?.reasons??[],i=r.includes(`cpu`)||r.includes(`event_loop_utilization`),o=r.includes(`event_loop_delay`),s=typeof n?.utilization==`number`?x(`debug.overlay.loopShort`,{value:R(n.utilization)}):``,c=typeof e.processMemory?.heapUsedBytes==`number`?x(`debug.overlay.heapShort`,{value:z(e.processMemory.heapUsedBytes)}):``,l=typeof n?.delayMaxMs==`number`?x(`debug.overlay.maxShort`,{value:B(n.delayMaxMs)}):``,u=typeof e.diskSpace?.totalBytes==`number`?x(`debug.overlay.totalShort`,{value:H(e.diskSpace.totalBytes)}):``;return f`
e.eventLoop?.cpuCoreRatio)} .format=${R} .floorMax=${1} > e.processMemory?.rssBytes)} .format=${z} autorange > e.eventLoop?.delayP99Ms)} .format=${B} .floorMax=${20} > ${e.diskSpace?f`e.diskSpace?.availableBytes)} .format=${V} autorange >`:d}
${typeof e.uptimeMs==`number`?f``:d} `}function W(e){return f`
${x(`debug.overlay.activeRunsCount`,{count:String(e.length)})}
${e.length>0?f``:f`
${x(`debug.overlay.noActiveRuns`)}
`} `}function G(e){let t=e.eventLog.slice(0,8);return t.length>0?f``:f`
${x(`debug.noEvents`)}
`}var K;function q(){return(q=e((()=>{n(),p(),b(),u(),O(),P(),K=[F({id:`lanes`,titleKey:`debug.overlay.lanes`,load:(e,t)=>E(e.client,t),render:I}),F({id:`status`,titleKey:`debug.overlay.status`,load:async(e,t)=>{let[n,r]=await Promise.all([e.client.request(`status`,{},{signal:t}),e.client.request(`system.info`,{},{signal:t}).catch(()=>null)]),i=typeof r?.diskAvailableBytes==`number`&&typeof r.diskTotalBytes==`number`?{availableBytes:r.diskAvailableBytes,totalBytes:r.diskTotalBytes,...r.diskPath?{path:r.diskPath}:{}}:void 0;return{eventLoop:n.eventLoop,processMemory:n.processMemory,...i?{diskSpace:i}:{},...typeof n.uptimeMs==`number`?{uptimeMs:n.uptimeMs}:{}}},render:U}),F({id:`active-runs`,titleKey:`debug.overlay.activeRuns`,load:async(e,t)=>((await e.client.request(`sessions.list`,{},{signal:t})).sessions??[]).filter(e=>e.hasActiveRun===!0),render:W}),F({id:`events`,titleKey:`debug.overlay.events`,load:async e=>e.gateway,render:G})]})))()}var J,Y;function X(){return(X=e((()=>{C(),p(),h(),v(),b(),l(),T(),q(),J=2e3,Y=class extends s{constructor(...e){super(...e),this.open=!1,this.sections=new Map,this.requestController=null,this.requestActive=!1,this.requestGeneration=0,this.statusHistory=[],this.eventLogSource=null,this.unsubscribeEventLog=null,this.polling=new w(this,J,()=>void this.refreshSections(),!1),this.handleKeydown=e=>{e.key!==`Escape`||e.defaultPrevented||(e.preventDefault(),this.close())},this.close=()=>{!this.open&&!this.requestController&&!this.unsubscribeEventLog||(this.open=!1,this.polling.stop(),document.removeEventListener(`keydown`,this.handleKeydown,!0),this.requestGeneration+=1,this.requestController?.abort(),this.requestController=null,this.requestActive=!1,this.unsubscribeEventLog?.(),this.unsubscribeEventLog=null,this.eventLogSource=null)}}disconnectedCallback(){this.close(),super.disconnectedCallback()}updated(){this.open&&this.syncEventLogSubscription()}toggle(){if(this.open){this.close();return}this.open=!0,this.statusHistory=[],document.addEventListener(`keydown`,this.handleKeydown,!0),this.syncEventLogSubscription(),this.sections=new Map(K.map(e=>[e.id,{status:`loading`}])),this.refreshSections(),this.polling.start()}syncEventLogSubscription(){let e=this.context?.gateway??null;!this.open||e===this.eventLogSource||(this.unsubscribeEventLog?.(),this.eventLogSource=e,this.unsubscribeEventLog=e?.subscribeEventLog(()=>this.requestUpdate())??null)}async refreshSections(){let e=this.context?.gateway,t=e?.snapshot.phase===`connected`?e.snapshot.client:null;if(!this.open||this.requestActive)return;if(!e||!t){this.sections=new Map(K.map(e=>[e.id,{status:`unavailable`}]));return}this.requestActive=!0;let n=++this.requestGeneration,r=new AbortController;this.requestController?.abort(),this.requestController=r;let i=K.map(async i=>{try{let a=await i.load({client:t,gateway:e},r.signal);this.updateSection(n,i.id,{status:`ready`,value:a})}catch{this.updateSection(n,i.id,{status:`unavailable`})}});await Promise.allSettled(i),!(!this.open||n!==this.requestGeneration)&&(this.requestController=null,this.requestActive=!1)}updateSection(e,t,n){if(!this.open||e!==this.requestGeneration)return;if(t===`status`&&n.status===`ready`){let e=n.value;this.statusHistory=[...this.statusHistory.slice(-89),{at:Date.now(),status:e}]}let r=new Map(this.sections);r.set(t,n),this.sections=r}renderSection(e){let t=this.sections.get(e.id)??{status:`loading`};return f`

${x(e.titleKey)}

${t.status===`loading`?f`
${x(`common.loading`)}
`:t.status===`unavailable`?f`
${x(`debug.overlay.unavailable`)}
`:e.render(t.value,this.statusHistory)}
`}render(){return this.open?f` `:d}},i([S({context:y,subscribe:!0})],Y.prototype,`context`,void 0),i([_()],Y.prototype,`open`,void 0),i([_()],Y.prototype,`sections`,void 0),customElements.get(`openclaw-debug-overlay`)||customElements.define(`openclaw-debug-overlay`,Y)})))()}X();export{Y as DebugOverlay}; //# sourceMappingURL=debug-overlay-ptF-J8ul.js.map