UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

50 lines 5.45 kB
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{J as t,K as n,X as r,q as i}from"./lit-runtime-CV_MH99K.js";import{E as a,M as o,N as s,T as c}from"./control-ui-core-YphAl4aM.js";import{Rt as l,Yt as u,en as d}from"./control-ui-core-vvcQQV2m.js";import{n as f,t as p}from"./en-update-actions-BD3m-_AA.js";import{t as m}from"./update-run-view-DVwiT6Fy.js";function h(e,t){let n=e?.currentVersion?.trim(),r=n?d(`updates.target.version`,{version:n}):null,i=c(t,e);if(r&&i){let n=t?.target?.kind===`git`||e?.commitsBehind!==void 0;return d(n?`updates.confirm.versionsBehind`:`updates.confirm.versions`,{available:i,installed:r})}return r??i??void 0}function g(e){return d(e?`updates.dialog.installing`:`updates.dialog.disconnected`)}async function _(e){if(b)return;let n=document.createElement(`div`);document.body.append(n),document.body.classList.add(y);let a=e.viaNativeApp?{confirmLabel:d(`updates.confirm.macAction`),message:d(`updates.confirm.macMessage`),title:d(`chat.sidebar.updateMacAndGateway`)}:{confirmLabel:d(`updates.confirm.action`),message:d(`updates.confirm.message`),title:d(`chat.sidebar.updateGateway`)},o=h(e.updateAvailable,e.updateSchedule);await new Promise(c=>{let l=e.existingRun?{kind:`run`,run:e.existingRun,connected:!0}:{kind:`confirm`},u=!1,f,p,m=!1,h=()=>{u||(u=!0,f?.(),p!==void 0&&globalThis.clearTimeout(p),t(i,n),n.remove(),document.body.classList.remove(y),b=!1,c())},_=()=>{!u&&l.kind===`run`&&l.run.status!==`running`&&e.onAcknowledge?.(),h()},x=(e,t)=>{let n=e(e=>{if(!u){if(l.kind===`run`&&!e.run){h();return}t(e)}});u?n():f=n};b=!0;let S=()=>{if(u)return;let s=l,c=s.kind===`run`?s.run:null,p=s.kind===`working`||c?.status===`running`,m=s.kind===`failed`||c!==null&&c.status!==`running`&&c.status!==`succeeded`,h=c!==null&&c.status!==`running`,v=s.kind===`run`?``:s.kind===`failed`?s.message:s.kind===`working`?g(s.connected):`${a.message} ${d(`updates.confirm.impact`)}`;t(r` <openclaw-modal-dialog label=${a.title} description=${v} @modal-cancel=${_}> <div class="exec-approval-card update-run-dialog"> <div class="exec-approval-header"> <div> <div class="exec-approval-title">${a.title}</div> <div class="exec-approval-sub" style="white-space: pre-line">${v}</div> </div> </div> ${o&&s.kind===`confirm`?r`<div class="exec-approval-command mono">${o}</div>`:i} ${c&&s.kind===`run`?r`<openclaw-update-run-view .run=${c} .connected=${s.connected} ></openclaw-update-run-view>`:i} <div class="exec-approval-actions"> ${m||h?r` ${m&&e.onCheckStatus?r`<button type="button" class="btn" @click=${()=>void e.onCheckStatus?.()}>${d(`updates.dialog.checkStatus`)}</button>`:i} ${m?r`<button type="button" class="btn primary" @click=${()=>{l={kind:`confirm`},f?.(),S()}} > ${d(`updates.dialog.retryUpdate`)} </button>`:i} ${m&&e.onReviewUpdate?r`<button type="button" class="btn" @click=${()=>{_(),e.onReviewUpdate?.()}} > ${d(`updates.reviewUpdate`)} </button>`:i} <button type="button" class="btn" autofocus @click=${_}> ${d(`common.close`)} </button>`:r` <button type="button" class="btn danger ${p?`btn--busy`:``}" ?disabled=${p} @click=${C} > ${p?r`<span class="btn__spinner" aria-hidden="true"></span>${d(`chat.updating`)}`:a.confirmLabel} </button> <button type="button" class="btn" autofocus @click=${_}> ${d(p?`common.close`:`common.cancel`)} </button> `} </div> </div> </openclaw-modal-dialog> `,n)};function C(){if(l.kind!==`confirm`)return;if(e.viaNativeApp&&s()){_();return}let t=e.watchUpdateProgress;if(!t){e.startGatewayUpdate(),_();return}m=!1,p!==void 0&&globalThis.clearTimeout(p),l={kind:`working`,connected:!0},S(),e.startGatewayUpdate();let n=!0;x(t,e=>{let t=n;if(n=!1,l.kind!==`confirm`){if(e.run&&(!t||e.run.status===`running`)){m=!0,l={kind:`run`,run:e.run,connected:e.connected},S();return}if(e.failure&&!t){l={kind:`failed`,message:e.failure},S();return}m||=e.busy,l={kind:`working`,connected:e.connected},S()}}),!u&&(p=globalThis.setTimeout(()=>{u||m||l.kind!==`working`||(l={kind:`failed`,message:d(`updates.dialog.notStarted`)},S())},v))}e.existingRun&&e.watchUpdateProgress&&x(e.watchUpdateProgress,e=>{e.run&&(l={kind:`run`,run:e.run,connected:e.connected},S())}),S()})}var v,y,b;function x(){return(x=e((()=>{n(),u(),p(),l(),m(),o(),a(),f(),v=4e3,y=`update-dialog-open`,b=!1})))()}x();export{_ as confirmAndStartUpdateRuntime}; //# sourceMappingURL=update-confirmation.runtime-CS0ySheH.js.map