openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
1 lines • 2.73 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Bs as t,Cu as n,Ul as r,Wl as i,gn as a,hn as o,hu as s,uu as c}from"./control-ui-core-3P365fbR.js";import{Cc as l,Sc as u,Tc as d,bc as f,dc as p,fc as m,gc as h,mc as g,n as _,s as v,vc as y,xc as b}from"./control-ui-boot-shared-DoKu-5Ju.js";function x(e,r){let i=h(e.settings?.gatewayUrl);if(r.length===0)return{gatewayOwner:i.gatewayOwner,retirements:[],storageFailed:!1};let a=n();if(!a)return{gatewayOwner:i.gatewayOwner,retirements:r.flatMap(e=>e.key.trim()?[{scope:{sessionKey:e.key,agentId:e.agentId},minimumRevision:e.retireBeforeRevision,retireBeforeRevision:e.retireBeforeRevision}]:[]),storageFailed:!0};let o=[],s=[],c=!1;try{let e=g(a,i),n=!1;for(let d of r){if(!d.key.trim())return{gatewayOwner:i.gatewayOwner,retirements:o,storageFailed:!0};let r={sessionKey:d.key,agentId:d.agentId},f=t(r),p=e.sessions[f],m=p?.draftRevision??0,h=u(a,i.key,f,m).latestAttempt,g=d.retireBeforeRevision;m<d.retireBeforeRevision&&(g=b(Math.max(h,d.retireBeforeRevision)),l(a,i.key,f,g),c||=!!p?.draft||!!p?.queue?.length,e.sessions[f]={draftRevision:g,updatedAt:Date.now()},s.push({storeSessionKey:f,revision:g}),n=!0),o.push({scope:r,minimumRevision:g,retireBeforeRevision:d.retireBeforeRevision})}if(!n)return{gatewayOwner:i.gatewayOwner,retirements:o,storageFailed:!1};y(a,i,e);let f=g(a,i);for(let{storeSessionKey:e,revision:t}of s){let n=f.sessions[e];if(n?.draftRevision!==t||n.draft||n.queue?.length)return{gatewayOwner:i.gatewayOwner,retirements:o,storageFailed:!0};d(a,i.key,e,t)}return c&&m(),{gatewayOwner:i.gatewayOwner,retirements:o,storageFailed:!1}}catch{return{gatewayOwner:i.gatewayOwner,retirements:o,storageFailed:!0}}}function S(){return(S=e((()=>{f(),p()})))()}async function C(e,n,r){try{if(n.client&&!n.client.recoveryScopeReady&&n.isCurrent()){let t=()=>{},r;await new Promise((i,a)=>{r=setTimeout(()=>a(Error(`Draft recovery scope unavailable`)),1e4);let o=()=>{(n.client?.recoveryScopeReady||!n.isCurrent())&&i()};t=e.gateway.subscribe(o),o()}).finally(()=>{clearTimeout(r),t()})}if(!n.client||!n.isCurrent())throw Error(`Draft cleanup connection changed`);let{recoveryScope:i,recoveryScopeReady:a}=n.client,s=x({settings:{gatewayUrl:n.gatewayUrl}},r),c=s.retirements.map(e=>({scopeKey:`chat:v3:${t(e.scope)}`,minimumRevision:e.minimumRevision,retireBeforeRevision:e.retireBeforeRevision})),[,l]=await Promise.all([o(n,r),a&&i?v({gatewayOwner:s.gatewayOwner,recoveryScope:i},c):`storage-failed`]);if(s.storageFailed||l===`storage-failed`)throw Error(`Draft storage cleanup failed`)}catch{i({message:s(`sessionsView.draftCleanupFailed`)})}}function w(){return(w=e((()=>{c(),a(),r(),_(),S(),p()})))()}w();export{C as retireDeletedComposerDrafts};