openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
50 lines • 5.45 kB
JavaScript
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