openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
1 lines • 6.99 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Fl as t,Ko as n,Zo as r,br as i,kl as a,wl as o}from"./control-ui-core-CBJ5efDh.js";import{$n as s,er as c}from"./control-ui-core-DtLivg_r.js";import{Zt as l,en as u}from"./control-ui-boot-shared-CkXlyZBY.js";import{Cr as d,Ii as f,Ni as p,br as m,la as h,oa as g,sa as _,ua as v}from"./control-ui-boot-shared-UG5ko-VG.js";import{Kt as y,Wt as b,Xt as x,Yt as S,mt as C,xa as w}from"./ui-CmSP4d14.js";import{Ar as T,Ba as ee,Cu as E,Fa as D,Mu as O,Nu as k,Pu as A,Qa as j,Za as te,ap as M,bi as N,cp as P,ea as F,fp as I,gp as L,hd as R,hp as z,kr as B,ku as V,op as H,ta as U,vp as W,wu as G,yd as K,yi as q}from"./control-ui-boot-shared-dOnP4mAA.js";async function J(e,t,n,r,i){let a=e,o=g(a.messages,t.sendRunId,n),s=e.sessionInfo?.sessionId??e.sessionId;if(o||!e.hasMore||!t.sendRunId||(t.sendAttempts??0)===0&&t.sendRequestStartedAtMs===void 0&&t.sendState!==`unconfirmed`||v(e,t)||t.sessionId&&t.sessionId!==s)return{submission:o};let c=[],u=[],d=new TextEncoder,f=e=>{let t=h(e.messages??[],c),n=t.slice(0,t.length-c.length);c=t;let r=h(e.activity??[],u),i=r.slice(0,r.length-u.length),a=i.length&&!u.length?13:0;return u=r,{count:n.length,bytes:(n.length?d.encode(JSON.stringify(n)).byteLength-1:0)+(i.length?d.encode(JSON.stringify(i)).byteLength-1+a:0)}},p=f(a),m=p.count,_=p.bytes+1,y=l;for(;!o&&a.hasMore&&m<1e3&&_<Q;){let c=a.nextOffset;if(c===void 0||c<=(a.offset??0)||!i()||y===0||(--y,a=await r(c,l-m),!i()||a.windowReset||a.offset!==c||(a.sessionInfo?.sessionId??a.sessionId)!==s||a.totalMessages!==e.totalMessages))return;o=g(a.messages,t.sendRunId,n);let u=f(a);if(a.hasMore&&(a.nextOffset===void 0||a.nextOffset<=c))return;m+=u.count,_+=u.bytes}return{submission:o}}function Y(e,t){return v(e,t)===`pending`&&e.pendingInputs?.items.some(e=>e.runId===t.sendRunId&&e.state===`interrupted`)===!0}function X(e,t,n,i,a){let o=i.sessionInfo?.sessionId??i.sessionId;if(n.sessionId&&n.sessionId!==o){if(n.sendState!==`unconfirmed`||n.sendError!==`Delivery has not been confirmed. Check the conversation — retry only if your message didn't arrive.`){let r=z(e,n.id,e=>({...e,sendState:`unconfirmed`,sendError:G}));A(e,t.sessionKey,t.agentId,r?G:E)}return`blocked`}let s=v(i,n);if(s===`pending`||s===`cancelled`){let c=i.pendingInputs?.items.find(e=>e.runId===n.sendRunId),l=s===`cancelled`||c?.state===`cancelled`,u=!(l||!o||n.sessionId&&n.sendState!==`unconfirmed`);return u&&!H(e,n,o)?`blocked`:(r(e,t.sessionKey,t.agentId)&&o===e.currentSessionId&&a===void 0&&R(e,i.pendingInputs,{receipts:i.inputReceipts}),l?I(e,n.sendRunId,t)!==null||!d(e,t)?.queue.some(e=>e.id===n.id)?`continue`:`blocked`:u?`continue`:c?.state===`interrupted`&&n.sendState!==`sending`&&i.sessionInfo&&(n.queueMode===`steer`||n.queueMode===`interrupt`||i.sessionInfo.hasActiveRun!==!0&&i.sessionInfo.status!==`running`&&i.sessionInfo.status!==`queued`)?i:`blocked`)}}async function Z(e,i,a,s,l,u){let p=e.chatRunId,m=e.chatRunLifecycleGeneration,h=e.currentSessionId,_=e.sessions,y=()=>{if(i.agentId||t(i.sessionKey))return i.agentId;let r=h?e.sessionsResult?.sessions.find(e=>e.sessionId===h&&o(e.key,i.sessionKey)):void 0;return n(e,{sessionKey:i.sessionKey,agentId:r?.agentId??(r?e.sessionsResultAgentId??void 0:void 0)}).agentId},x=y(),D=p&&h&&x&&r(e,i.sessionKey,i.agentId)?_.observeRow({key:i.sessionKey,agentId:x},()=>{}):void 0,j=D?.captureReconcile(),P=()=>e.client===s&&e.connectionEpoch===l&&e.connected,F=L(e).history.capture(e,i,a,s,l),I=F.cursor,R=()=>P()&&e.sessions===_&&e.currentSessionId===h&&y()===x&&r(e,i.sessionKey,i.agentId);try{let n,o,l,_=[...new Set([a.sendRunId,...i.queue.map(e=>e.sendRunId)])].filter(e=>!!(e&&e.length<=256)).slice(0,50),y={sessionKey:i.sessionKey,toolResultMaxChars:2e3,...t(i.sessionKey)&&i.agentId?{agentId:i.agentId}:{},..._.length?{inputRunIds:_}:{}},x=async(e,t)=>{let n=n=>s.request(`chat.history`,{...y,limit:e,...t?{pendingBefore:t}:{},...n?{cursor:n}:{}},{timeoutMs:b}),r=await n(I);if(U(r)&&r.kind===`reset`){if(!P())return;I=void 0,F.accept(void 0),r=await n()}return U(r)?r.kind===`delta`?{...r,messages:r.messages.map(e=>w(e)?.message)}:void 0:r};try{if(n=await x(1e3),!n)return`blocked`;for(;v(n,a)===`pending`&&!n.pendingInputs?.items.some(e=>e.runId===a.sendRunId)&&n.pendingInputs?.nextBefore!==void 0&&(l===void 0||n.pendingInputs.nextBefore<l);)if(!P()||(l=n.pendingInputs.nextBefore,n=await x(20,l),!n))return`blocked`;if(o=await J(n,a,O(a),(e,t)=>s.request(`chat.history`,{...y,offset:e,limit:t},{timeoutMs:b}),P),!o)return`blocked`}catch(t){let n=t instanceof S?500:T(t);if(n!==null)return P()&&u(n),`blocked`;if(!P()||!(t instanceof c))return`blocked`;let r=d(e,i)?.queue.find(e=>e.id===a.id);if(!r||!f(r,a))return`blocked`;let o=(a.sendAttempts??0)>0||a.sendRequestStartedAtMs!==void 0||a.sendState===`unconfirmed`,s=o?G:te(t),l=o?`unconfirmed`:`failed`;if(a.sendState===l&&a.sendError===s)return`blocked`;let p=z(e,a.id,e=>({...e,sendError:s,sendState:l}));return A(e,i.sessionKey,i.agentId,p?s:E,{inline:!!(p&&o&&!a.localCommandName)}),p&&!o?`continue`:`blocked`}let D=d(e,i),B=D?.queue.find(e=>e.id===a.id);if(!P())return`blocked`;if(!D||!B||B.sessionId!==a.sessionId||!f(B,a))return`continue`;let{submission:V}=o;if(!V){let e=n.sessionInfo?.sessionId??n.sessionId;F.accept(!a.sessionId||a.sessionId===e?n.deltaCursor:void 0)}let H=!1;for(let t of i.queue){if(t.id===a.id||!O(t))continue;let r=n.sessionInfo?.sessionId??n.sessionId;if(t.sessionId&&t.sessionId!==r)continue;let o=v(n,t);if(o===`pending`)continue;let s=g(n.messages,t.sendRunId,!0);if(o!==`consumed`&&o!==`cancelled`&&(!s||s.id===null&&s.sequence===null))continue;let c=d(e,i)?.queue.find(e=>e.id===t.id);if(!c||c.sessionId!==t.sessionId||!f(c,t))continue;let l=await k(e,t.sendRunId,i,{inputConsumed:!0});if(!P())return`blocked`;H||=l!==`retired`}H&&F.accept(void 0);let W=d(e,i)?.queue.find(e=>e.id===a.id);if(!W||W.sessionId!==a.sessionId||!f(W,a))return`continue`;L(e).syncHost(e);let K=X(e,i,a,n,l);if(K!==void 0)return K;let q=v(n,a);if(q||V||!O(a)&&a.sendRunId&&(n.sessionInfo?.activeRunIds?.includes(a.sendRunId)||n.sessionInfo?.lastRunId===a.sendRunId))return await k(e,a.sendRunId,i,{inputConsumed:O(a)})!==`retired`||!P()?`blocked`:(r(e,i.sessionKey,i.agentId)&&N(e,{supersedeInFlight:!!q}),`continue`);if(!n.sessionInfo||n.sessionInfo.hasActiveRun===!0||C(n.sessionInfo))return`blocked`;if(j&&p&&e.chatRunId===p&&e.chatRunLifecycleGeneration===m&&n.sessionInfo.lastRunId===p&&h&&n.sessionInfo.sessionId===h&&R()){let t=j(n.sessionInfo);if(!R()||t.status!==`current`||!t.row||t.row.sessionId!==h||t.row.lastRunId!==p||t.row.hasActiveRun===!0||C(t.row)||e.chatRunId===p&&e.chatRunLifecycleGeneration===m&&!ee(e,t.row,{publishRunStatus:!1})||!R())return`blocked`;M(e,p)}return n}finally{D?.dispose()}}var Q;function $(){return($=e((()=>{y(),x(),u(),s(),_(),p(),m(),i(),a(),F(),q(),W(),B(),K(),P(),V(),j(),D(),Q=6291456})))()}$();export{Y as isInterruptedChatInput,Z as readCurrentStoredChatHistory};