openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
25 lines • 221 kB
JavaScript
import{n as e,r as t}from"./rolldown-runtime-8BhlS34s.js";import{$i as n,$l as r,At as i,Bt as a,Ds as o,Dt as s,Et as c,Eu as l,F as u,G as d,Gl as f,H as p,Hs as m,Hu as h,Il as g,Iu as _,Ji as v,Jl as y,Lt as b,Lu as x,Mt as S,Nt as ee,Ot as C,Ql as te,R as ne,Rs as re,Rt as ie,Sl as ae,St as oe,Tt as se,U as ce,Vu as le,W as ue,Xi as de,Xl as fe,Yl as pe,Zl as me,_l as he,ac as ge,bt as _e,ct as ve,du as ye,eu as be,gt as xe,gu as Se,ht as Ce,jl as we,jt as Te,ju as w,kt as Ee,ku as De,lt as Oe,mu as ke,oc as Ae,pu as je,qi as Me,sc as T,tu as Ne,wt as Pe,xl as Fe,yt as Ie,z as Le,zs as Re,zt as ze,zu as Be}from"./control-ui-core-BncvAZjR.js";import{$ as Ve,A as He,B as Ue,F as We,G as Ge,H as Ke,I as qe,J as Je,K as Ye,L as Xe,M as Ze,N as Qe,O as $e,P as et,Q as tt,U as nt,V as rt,W as it,Z as at,_ as ot,a as st,b as ct,ct as lt,d as ut,f as dt,g as ft,h as pt,j as mt,k as ht,lt as gt,n as _t,o as vt,p as yt,q as bt,st as xt,t as St,u as Ct,v as wt,x as Tt,y as Et,z as Dt}from"./control-ui-boot-shared-Dfs-gZII.js";import{$a as Ot,At as kt,Ya as At,cr as jt,dr as Mt,jt as Nt,kt as Pt,sr as Ft,ur as It}from"./control-ui-core-9qYjK5B2.js";import{$ as Lt,B as Rt,I as zt,R as Bt,X as Vt,Y as Ht,g as Ut}from"./lit-runtime-B8uOr6OX.js";import{A as Wt,At as Gt,Ct as Kt,Et as qt,Gn as Jt,M as Yt,O as Xt,Ot as Zt,St as Qt,Tt as $t,Xt as en,Yt as tn,_ as nn,_r as rn,_t as an,at as on,bt as sn,ct as cn,g as ln,hr as un,i as dn,it as fn,j as pn,nn as mn,nr as hn,o as gn,ot as _n,qn as vn,r as yn,rr as bn,rt as xn,st as Sn,tr as Cn,v as wn,vt as Tn,wt as En,xt as Dn,y as On,yt as kn}from"./control-ui-boot-shared-umGE-sEP.js";import{c as An,d as jn,l as Mn}from"./gateway-runtime-Cr51Pi7N.js";import{$ as Nn,$t as Pn,Ar as Fn,Do as E,Ei as In,Eo as Ln,Er as Rn,Fi as zn,Ft as Bn,Gr as Vn,Jr as Hn,Kr as Un,Oi as Wn,Oo as D,Pi as Gn,Pt as Kn,Q as qn,Qa as Jn,Qi as Yn,Si as Xn,To as Zn,Tr as O,X as Qn,Xt as $n,Y as er,Yi as tr,Za as nr,Zt as rr,_a as k,_i as ir,bi as A,co as ar,da as j,ea as or,en as sr,et as cr,fa as M,fi as lr,gi as ur,hi as dr,jr as fr,ko as pr,lo as mr,ma as N,mi as hr,oa as gr,pa as _r,qi as vr,ro as yr,sa as br,tn as xr,tt as Sr,va as P,wo as F,yo as Cr}from"./ui-DuRgK6kL.js";import{D as wr,E as Tr,H as Er,U as Dr,Y as Or,Z as kr}from"./control-ui-boot-shared-em9-jnbz.js";import{b as Ar,h as jr,n as Mr,t as Nr}from"./control-ui-boot-shared-Sj2zqjOr.js";import{ea as Pr,ta as Fr}from"./control-ui-boot-shared-xfDhIVun.js";import{Bc as Ir,Rf as Lr,cn as Rr,ln as zr,on as Br,un as Vr}from"./control-ui-boot-shared-D3oo_6Fq.js";import{C as Hr,F as Ur,G as Wr,H as Gr,I as Kr,S as qr,U as Jr,_ as Yr,d as Xr,f as Zr,g as Qr,it as $r,n as ei,rt as ti,w as ni}from"./control-ui-boot-shared-D4XEBdOG.js";import{N as ri,P as ii}from"./markdown-runtime-ORQpioyT.js";function ai(e){let t;return n=>{let r=()=>{let r=n.state.scopeId,i=t;t={selection:n,scopeId:r,revision:n.intentRevision},i&&r!==i.scopeId&&e(r,n!==i.selection||n.intentRevision!==i.revision)};return r(),n.subscribe(r)}}function oi(){return(oi=e((()=>{})))()}function si(e){return e.startsWith(`/`)&&!e.startsWith(`//`)&&!e.includes(`#`)&&!e.includes(`\\`)&&!e.includes(` `)&&!ar(e)}function ci(e){let t;try{t=new URL(e)}catch{return null}let n=(t.protocol===`codex:`||t.protocol===`chatgpt:`||t.protocol===`openclaw:`)&&t.hostname===`plugins`,r=t.protocol===`https:`&&t.hostname===`chatgpt.com`;if(!n&&!r||t.hash||t.username||t.password||t.port)return null;let i=(n?t.pathname:t.pathname.replace(/^\/plugins(?=\/)/u,``)).match(/^\/([^/]+)\/app\/([^/]+)\/?$/u);if(!i?.[1]||!i[2]||r&&!t.pathname.startsWith(`/plugins/`))return null;try{let e=n?i[1].split(`@`):[i[1]];if(e.length>2||!e[0]||e.length===2&&!e[1])return null;let r=decodeURIComponent(e[0]),a=e[1]?decodeURIComponent(e[1]):void 0,o=decodeURIComponent(i[2]),s=t.searchParams.get(`path`)??`/`;return!r||!o||!si(s)?null:{kind:`plugin`,pluginId:r,...a?{marketplace:a}:{},toolName:o,deepLink:s}}catch{return null}}function li(e){let t=new URLSearchParams({tool:e.toolName,path:e.deepLink});return e.kind===`server`?t.set(`server`,e.serverName):(t.set(`plugin`,e.pluginId),e.marketplace&&t.set(`marketplace`,e.marketplace)),`?${t}`}function ui(e){let t=new URLSearchParams(e),n=t.get(`server`),r=t.get(`plugin`),i=t.get(`marketplace`),a=t.get(`tool`),o=t.get(`path`)??`/`;return!a||!si(o)||!!n==!!r?null:n?i?null:{kind:`server`,serverName:n,toolName:a,deepLink:o}:r?{kind:`plugin`,pluginId:r,...i?{marketplace:i}:{},toolName:a,deepLink:o}:null}function di(e,t,n=!1){let r=e.filter(e=>(t.kind===`server`?e.serverName===t.serverName:e.pluginId===t.pluginId&&(e.marketplace??void 0)===t.marketplace)&&(e.entrypoints.some(e=>e.toolName===t.toolName&&(e.entrypoint.type===`global`||n&&e.entrypoint.type===`settings`))||n&&e.settings?.readTool===t.toolName));return r.length===1?r[0]:void 0}function fi(){return(fi=e((()=>{mr()})))()}var pi,mi;function hi(){return(hi=e((()=>{x(),pi={newSession:{title:_.newSession.title,hint:_.newSession.hint,environments:`Environments`,gateway:`Gateway · local`,cloudWorkerMachine:`{profile} · {machine}`,cloudWorkerOsMachine:`{profile} · {os} · {machine}`,cloudWorkerOs:`{profile} · {os}`,cloudRuntimeUnsupported:`The {runtime} runtime does not support cloud workers.`,cloudProfileRuntimeUnsupported:`The {runtime} runtime cannot use this cloud worker. Choose a compatible cloud worker or run locally.`,deviceRuntimeUnsupported:`This runtime does not support paired devices`,placementStartFailed:`The session was created, but startup needs attention: {error}`,placementCreateFailed:`Couldn't prepare session recovery. Your draft has been kept.`,placementStillStarting:`Worker setup is still in progress. Retry to check the existing worker; your message has not been sent.`,placementCompletionUnconfirmed:`Could not confirm whether worker setup finished. Retry to check again; your message has not been sent.`,placementReloadBlocked:_.newSession.placementReloadBlocked,placementCancelled:`Session setup was interrupted and the temporary session was cleaned up. Your prompt is kept here.`,discardUnsavedAndReload:_.newSession.discardUnsavedAndReload,yourDevices:`Your devices`,autoDeviceSub:`Least-busy device`,autoDeviceSubEligible:`First eligible device`,cloud:`Cloud`,machine:`Machine`,operatingSystem:`Operating system`,runsOn:`Runs on {place}`,browse:`Browse folders`,worktree:`Worktree`,checkingGit:`Checking Git availability…`,gitCheckUnavailable:`Couldn't verify Git for this folder. Choose it again to retry.`,starting:`Starting…`,createFailed:`Couldn't create the session.`,checkoutCurrentNote:`Works in the selected folder on its current branch.`,preferenceSaveUnconfirmed:`Saving your new-session choices could not be confirmed. Check them before starting a session.`,worktreeNameClearUnconfirmed:`Session accepted, but clearing the saved worktree name could not be confirmed. Check Name before starting another worktree.`,agent:`Agent`,agents:`Agents`,where:`Where`,gatewayNamed:`Gateway · {name}`,cloudWorker:`Cloud · {profile}`,cloudWorkerProvider:`Cloud worker provider: {provider}`,cloudRecoveryUnavailable:`Cloud workers are unavailable because this connection does not support task recovery. Reconnect or update the Gateway.`,placementSyncsFolder:`Syncs {folder} to the selected runner`,placementClonesRepository:`Clones {folder} on the selected runner. No Gateway checkout is created.`,folder:`Folder`,autoDevice:`Auto`,neverConnected:`Never connected`,offlineFor:`Offline for {duration}`,lastSeen:`Last seen {time}`,nodeUpdateRequired:`Update required: run {updateCommand}, then reconnect. For a headless node, run {restartCommand}.`,nodeCommandPendingApproval:`Ask an administrator to approve the pending {command} request, or pick another device.`,nodeCommandUndeclared:`Make {command} available on this device, then reconnect, or pick another device.`,nodeCommandUnauthorized:`Authorize {command} in the Gateway node command policy, or pick another device.`,capabilityCamera:`Camera`,capabilityLocation:`Location`,capabilityTalk:`Talk`,capabilityScreenCapture:`Screen capture`,capabilityCanvas:`Canvas`,capabilityVoice:`Voice`,environmentDisposable:`Disposable`,environmentPersistent:`Persistent`,registerProject:`Register as project`,machineShape:`{cpu} vCPU · {memory} GB`,machineCpu:`{cpu} vCPU`,machineMemory:`{memory} GB`,machineDefault:`Default`,browseRequiresAdmin:`To browse outside agent workspaces, open Inbox, select Limited access, request admin, then approve in Devices.`,connectMachine:`Connect a device`,browserUp:`Parent folder`,browserUse:`Use this folder`,browserEmpty:`No subfolders`,browserNoMatches:`No matching folders`,browserLoadFailed:`Couldn't list that folder.`,hiddenFolder:`Hidden folder`,worktreeUnavailable:`Selected folder is not a Git checkout`,worktreeBaseRef:`From`,worktreeBranchesLimited:`Suggestions are limited. Enter any branch or commit.`,worktreeBranchesUnavailable:`Branch suggestions are unavailable. Enter a branch or commit.`,worktreeName:`Name`,worktreeNamePlaceholder:`Named from the session title`,worktreeBranchNote:`Creates branch {branch} in a separate checkout.`,worktreeBranchFromTitleNote:`Creates a branch from the session title in a separate checkout.`,worktreeNameInvalid:`Use lowercase letters, digits, and dashes.`,incognito:`Incognito`,incognitoDescription:`Keep this session for 24 hours or until the Gateway restarts, whichever comes first`,draft:`Draft`,draftDescription:`Keep this session to yourself until you publish it`,messagePlaceholder:`What should this session work on?`,dictate:`Dictate`,readingAttachment:`Reading attachment`,start:`Start session`,created:`Session created`,startInTerminal:`Start in terminal`,nativeTerminalHint:`Start the native CLI on the selected machine using its own account and configuration. This does not create an OpenClaw Chat.`,chooseNativeHost:`Choose a native CLI host`,nativeHostsUnavailable:`No native CLI is available. Install it on the Gateway or connect a machine with CLI access, then reconnect to the Gateway.`,nativeTerminalPrompt:`Optional initial prompt for the native CLI`,terminalNodeFolder:`Existing absolute folder on this node`,terminalAttachmentsUnsupported:`Remove attachments before starting a native CLI. Add files from the terminal after it opens.`,createOutcomeUnknown:`The Gateway changed while this session was starting. Check recent sessions before starting this task again.`,cliAgentsGroup:`CLI agents`,cliAgentsUnavailable:`CLI agents unavailable`,placementSetupInterrupted:`This session's runner setup was interrupted. Check recent sessions before starting this task again.`,catalogUnavailable:`This session target is unavailable.`,placementNotReady:`The selected runner isn't ready yet. Try again in a moment.`,nodeUnavailable:`The selected device is unavailable. Pick another place.`,terminalCapabilityOverridesUnsupported:`Clear session capability overrides before starting in a terminal.`,checkout:`Checkout`,checkoutCurrent:`Current checkout`,checkoutWorktree:`New worktree`,checkoutWorktreeNamed:`Worktree · {name}`,checkoutWorktreeSub:`Isolated copy of the repo`,checkoutWorktreeFrom:`New worktree from {branch}`,checkoutCloud:`Starting branch`,checkoutCloudFrom:`From {branch}`,checkoutRepository:`Remote checkout`,checkoutRepositoryFrom:`Remote checkout from {branch}`,checkoutRemoteLocked:`Devices and cloud run in a worktree`,local:`Local`,folderPlaceholder:`Agent workspace`,projects:`Projects`,projectsAdminHint:`Admins can register projects from Browse folders`,projectSearchPlaceholder:`Search projects or paste a Git URL`,githubProjects:`GitHub`,githubTokenHint:`No Control UI GitHub credential or shared Gateway environment token is configured; public GitHub results only.`,cloneProject:`Clone`,recentFolders:`Recent`,what:`What`,newWorkspace:`New workspace`,newWorkspaceDescription:`Start in an empty folder for this session.`,remoteSourceUnavailable:`This folder cannot provide a Git checkout. Select New workspace to start empty, or choose a repository.`,environmentSearchPlaceholder:`Search environments`,environmentSearchEmpty:`No matching environments`,gatewayHost:`Gateway host`,device:`Device`,environmentDetails:`Show details for {name}`,concurrentSessionsValue:`{used} of {total} session slots in use`,autoDeviceChoose:`Any available device`,manageCloudWorkers:`Manage cloud workers`,persistentEnvironmentHint:`Reusable host`,disposableEnvironmentHint:`Disposable host`,sessionHostingAction:`Session hosting is disabled. Run the following command on the device:`,updateAction:`This device needs an update. Run the following command:`,reconnectAction:`Then reconnect the device. For a headless device, run:`,runsOnGateway:`Runs on your gateway`,autoDeviceHint:`Chooses the least-busy connected device`,autoDeviceHintEligible:`Chooses the first eligible connected device`,autoDeviceInfo:`About automatic device selection`,autoDeviceScope:`Connected devices only`,restoringPreferences:`Restoring your last session setup…`,checkingPlace:`Checking the selected place…`,agentsUnavailable:`No agents are available on this Gateway yet.`,loadingAgentDefaults:`Refreshing agent defaults…`,agentDefaultsUnavailable:`Could not refresh agent defaults. Reload to try again.`,terminalHostUnavailable:`Native CLI host unavailable. Check that the CLI is installed and the node is connected with its fresh-start command approved, then retry the catalog.`,terminalDisabled:`Enable CLI agents and terminals in Gateway settings to start a native CLI.`,terminalPlacementUnsupported:`Native CLI sessions use a specific host, not OpenClaw worker placement. Reset this draft and choose a native host.`,terminalNeedsFolder:`Pick a folder before starting in a terminal.`,noSessionHosts:`No session hosts are paired. Connect a machine with session hosting enabled.`,deviceUnavailable:`Device unavailable. Reconnect it and try again.`,sessionHostingDisabled:`Session hosting is disabled. Run openclaw connect --service --session-host on the device.`,deviceCapacityUnavailable:`Worker capacity is unavailable. Restart the device session host and try again.`,deviceNoSlots:`No worker slots are available. Wait for a slot or pick another device.`,connectMachineTitle:`Connect a machine`,connectMachineDescription:`Run this command on the machine you want to connect.`,connectMachineGenerating:`Creating a secure connection link…`,connectMachineFailed:`Couldn't create a connection link.`,connectMachineMissingUrl:`The Gateway did not return a join URL. Update it and try again.`,connectMachineUnavailable:`Reconnect to the Gateway and try again.`,connectMachineTeamHint:`Running it pairs that machine as a device for your team.`,connectMachineSingleUse:`This link is single-use and expires soon.`,connectMachineSingleUseExpires:`This link is single-use and expires at {time}.`,connectMachineFreshCode:`Mint fresh code`,connectMachineRefreshing:`Minting…`,connectMachineManageDevices:`Manage devices`}},mi=Object.assign(()=>{Object.assign(_.newSession,pi.newSession)},{catalog:pi})})))()}function gi(e,t){if(!Array.isArray(t)||t.length===0||t.length>10)return;let n=[],r=0;for(let i of t){if(!k(i)||typeof i.profileId!=`string`||!i.profileId.trim()||i.profileId.length>256||typeof i.start!=`number`||!Number.isSafeInteger(i.start)||typeof i.end!=`number`||!Number.isSafeInteger(i.end)||i.start<r||i.end<=i.start+1||i.end>e.length||e[i.start]!==`@`||/[\p{L}\p{N}\p{M}_@.%+-]/u.test(e[i.start-1]??``)||!e.slice(i.start+1,i.end).trim())return;for(let t=i.start;t<i.end;t+=1)if(e.charCodeAt(t)<32)return;n.push({profileId:i.profileId,start:i.start,end:i.end}),r=i.end}return n}function _i(e,t,n=[],r){if(!r&&e===t||n.length===0)return n;let i=0;for(;i<e.length&&i<t.length&&e[i]===t[i];)i+=1;let a=0,o=Math.min(e.length,t.length);for(;a<o&&e[e.length-a-1]===t[t.length-a-1];)a+=1;let s=e.length-a;if(i+a>o&&(s=i+Math.max(0,e.length-t.length),i=o-a),r?.value===e&&!r.inputType.startsWith(`history`)){let n=e.length-t.length,a=r.start,o=r.end;a===o&&r.inputType.startsWith(`delete`)&&n>0&&(r.inputType.endsWith(`Backward`)?a-=n:o+=n);let c=t.length-e.length+o-a;a>=0&&c>=0&&e.slice(0,a)===t.slice(0,a)&&e.slice(o)===t.slice(a+c)&&(i=a,s=o)}let c=t.length-e.length;return gi(t,n.flatMap(e=>e.end<=i?e.end===i&&/[\p{L}\p{N}\p{M}_-]/u.test(t[i]??``)?[]:[e]:e.start>=s?[{...e,start:e.start+c,end:e.end+c}]:[]))??[]}function vi(e,t=[]){let n=e.trim(),r=e.length-e.trimStart().length,i=gi(n,t.map(e=>({...e,start:e.start-r,end:e.end-r})));return{text:n,...i?{mentions:i}:{}}}function yi(){return(yi=e((()=>{mn()})))()}function bi(e,t){if(!t.sendRunId||t.sessionId&&t.sessionId!==(e.sessionInfo?.sessionId??e.sessionId))return;let n=e.inputReceipts?.find(e=>e.runId===t.sendRunId);return n?.state===`pending`&&n.cancelled?`cancelled`:n?.state}function xi(e,t,n=!1){let r=null;if(!t||!Array.isArray(e))return r;for(let i of e){let e=rn(i);if(e&&(!n||e.role===`user`)&&(e.idempotencyKey===t||e.idempotencyKey===`${t}:user`)&&(r=e,e.id!==null||e.sequence!==null))return e}return r}function Si(e){let t=M(e),n=M(t?.__openclaw),r=n?.seq,i=n?.id??t?.messageId;return typeof r==`number`&&Number.isSafeInteger(r)&&r>0?`seq:${r}`:typeof i==`string`&&i.trim()?`id:${i}`:null}function Ci(e){let t=Si(e);if(!t)return null;let n=M(e),r=M(n?.__openclaw),{recordTimestampMs:i,...a}=r??{},o=r?{...n,__openclaw:a}:n;try{return`${t}:${JSON.stringify(o)}`}catch{return t}}function wi(e,t){let n=new Set;for(let t of e){let e=Si(t);e&&n.add(e)}let r=new Set,i=new Map;for(let e of t){let t=Si(e);if(!t||!n.has(t))continue;let a=Ci(e);a&&(r.add(t),i.set(a,(i.get(a)??0)+1))}return[...e.filter(e=>{let t=Si(e);if(!t||!r.has(t))return!0;let n=Ci(e),a=n?i.get(n)??0:0;return!n||a===0||(i.set(n,a-1),!1)}),...t]}function Ti(){return(Ti=e((()=>{un()})))()}var I,Ei;function Di(){return(Di=e((()=>{x(),I={commandPalette:{newSessionSettings:`New session settings`,rememberSettings:`Remember settings for {shortcut}`,rememberUnavailable:`Reconnect to remember settings.`,settingsSaveFailed:`Could not save settings.`},palette:{placeholder:_.palette.placeholder,noResults:`No results found`,noResultsStart:`Press {shortcut} to start a new session.`,startSession:`New session`,startSessionBackground:`Start new session in background`,startingSession:`Starting…`,promptRequired:`Write a prompt to start a session.`,searchingSessions:`Searching sessions…`,searchingCommands:`Searching commands…`,clearSearch:`Clear search`,escapeKey:`esc`,filterLabel:`Filter search results`,filters:{all:`All`,sessions:`Sessions`,messages:`Messages`},searchFailed:`Chat search failed — check the gateway logs and retry`,modelSearchFailed:`Model search unavailable. Change your search to retry.`,searchPartial:`Transcript search unavailable — showing chat titles and metadata`,searchIndexing:`Indexing older messages — search again shortly.`,categories:{search:`Search`,navigation:_.palette.categories.navigation,skills:`Skills`,messages:`In messages`},items:{apps:`Apps`,sessions:`Sessions`,scheduled:`Automations`,skills:`Skills`,plugins:`Plugins`,settings:`Settings`,agents:`Agents`,desktop:`Desktop`},descriptions:{verboseMode:`Toggle verbose mode.`},footer:{navigate:`navigate`,select:`select`,close:`close`,newline:`newline`}},sessionsView:{transcriptSearchTitle:`Search transcripts`,transcriptSearchDescription:`Find exact words or phrases in user and assistant messages across the default agent's sessions.`,transcriptSearchInputLabel:`Search session transcripts`,transcriptSearchPlaceholder:`Search exact words or phrases…`,transcriptSearchAction:`Search`,transcriptSearchClear:`Clear`,transcriptSearchRetry:`Retry`,transcriptSearchSearching:`Searching transcripts…`,transcriptSearchUnavailable:`Transcript search requires a newer Gateway.`,transcriptSearchError:`Transcript search failed`,transcriptSearchIndexing:`The transcript index is still updating. Retry to include recent messages.`,transcriptSearchArchivedExcluded:`{count} archived transcripts excluded; open a session to restore its searchable history.`,transcriptSearchEmpty:`No transcript messages match that search.`,transcriptSearchMatches:`Transcript matches: {count}`,transcriptSearchTruncated:`Showing the first 25 matches.`},shortcutsOverlay:{title:_.shortcutsOverlay.title,sections:{general:`General`,chat:`Chat`,panels:`Panels`,sidebar:`Sidebar`,imageViewer:`Image viewer`,approvals:`Approvals`},labels:{commandPalette:`Open command palette`,newSession:`Open New Session`,archiveSession:`Archive current session`,paletteStartSession:`Start a background session (in the command palette)`,keyboardShortcuts:`Show keyboard shortcuts`,toggleSidebar:`Toggle sidebar`,debugOverlay:`Toggle debug overlay`,appearanceSettings:`Open appearance settings`,startNewSession:`Start new session (from the new-session page)`,closeDialog:`Close dialog or exit settings`,sendMessage:`Send message`,newline:`Insert new line`,steerImmediately:`Steer active response`,historyRecall:`Browse sent message history`,transcriptSearch:`Search conversation`,clearReply:`Clear reply`,stopResponse:`Stop active response`,cancelDictation:`Cancel dictation`,saveQueuedMessage:`Save queued message`,toggleSessionSelect:`Select multiple sessions`,extendSessionSelect:`Extend session selection`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,zoomReset:`Reset zoom`,panImageHorizontal:`Pan image horizontally`,panImageVertical:`Pan image vertically`,terminalPanel:`Toggle terminal panel`,homePanel:`Talk to your Home agent`,workspaceFiles:`Toggle workspace files`,sideChat:`Toggle side chat`,browserPanel:`Toggle browser panel`,desktopPanel:`Toggle desktop panel`,discussionPanel:`Toggle discussion panel`,dashboardPanel:`Toggle dashboard panel`,reviewPanel:`Toggle review panel`,approveOnce:`Approve once`,approveAlways:`Always allow`,denyApproval:`Deny approval`}},chat:{welcome:{hintBeforeShortcut:`Type a message below ·`,hintAfterShortcut:`for commands`,recentSessions:`Recent chats`,suggestions:{whatCanYouDo:_.chat.welcome.suggestions.whatCanYouDo,summarizeRecentSessions:`Summarize my recent sessions`,configureChannel:`Help me configure a channel`,checkSystemHealth:`Check system health`}},commands:{arguments:`Command arguments`,menu:`Slash commands`,optionCount:`{count} options`,clearDescription:`Clear chat history`,redirectDescription:`Abort and restart with a new message`,steerDescription:`Inject a message into the active run`,exportDescription:`Download this conversation as Markdown`,categories:{session:`Session`,model:`Model`,agents:`Agents`,tools:`Tools`}}}},Ei=Object.assign(()=>{Object.assign(_.shortcutsOverlay,I.shortcutsOverlay),Object.assign(_.chat.welcome,I.chat.welcome),Object.assign(_.chat.commands,I.chat.commands),Object.assign(_.commandPalette,I.commandPalette),Object.assign(_.palette,I.palette),Object.assign(_.sessionsView,I.sessionsView)},{catalog:I})})))()}function Oi(e){return e.source!==`skill`}function ki(e){return(e.aliases??[]).map(e=>e.trim()).filter(Boolean).map(e=>e.startsWith(`/`)?e.slice(1):e)}function Ai(e){if(e.args?.length)return e.args.map(e=>e.required?`<${e.name}>`:`[${e.name}]`).join(` `)}function ji(e,t,n){let r=typeof n==`string`?n:n.value;return e.formatArgs?.({[t]:r})??r}function Mi(e){let t=e.args?.[0];if(!t)return;let n=t.choices?.map(n=>ji(e,t.name,n)).filter(Boolean);return n?.length?n:void 0}function Ni(e){let t=e.tier;return t===`essential`||t===`standard`||t===`power`?t:`standard`}function Pi(e,t=`local`){let n=e.name.trim();if(!n)return null;let r=e.source??(t===`local`?`native`:void 0),i=ua[e.key.replace(/[:.-]/g,`_`)];return{key:e.key,name:n,aliases:ki(e).filter(e=>e!==n),description:e.description,args:Ai(e),...ma[e.key],icon:i?.icon??`terminal`,category:i?.category??(e.category===`session`?`session`:e.category===`options`?`model`:`tools`),executeLocal:t===`local`&&fa.has(e.key),modelIndependent:e.modelIndependent,argOptions:Mi(e),allowsInlineMultiWordArgs:da.has(e.key),tier:t===`local`?Ni(e):`standard`,...r?{source:r}:{},...e.skillDisplayName?{skillDisplayName:e.skillDisplayName}:{},...e.skillModelVisible===void 0?{}:{skillModelVisible:e.skillModelVisible},...e.clientPresentation?{clientPresentation:e.clientPresentation}:{}}}function Fi(e){let t=e.trim().replace(/^\//u,``).slice(0,sa),n=F(t);return!n||!na.test(n)?null:n}function Ii(e,t){return vr(typeof e==`string`?e:``,t)}function Li(e){if(e.dynamic===!0)return[];let t=e.choices;return Array.isArray(t)?t.map(e=>{if(typeof e==`string`)return Ii(e,sa);let t=M(e);return t?{value:Ii(t.value,sa),label:Ii(t.label,sa)}:null}).filter(e=>!!(typeof e==`string`?e:e?.value)):[]}function Ri(e){let t=M(e);if(!t||Object.keys(t).length!==2||!Object.hasOwn(t,`when`)||!Object.hasOwn(t,`action`)||t.when!==`no-arguments`)return;let n=M(t.action);if(n&&Object.keys(n).length===1&&Object.hasOwn(n,`kind`)&&n.kind===`device-pairing`)return{when:`no-arguments`,action:{kind:`device-pairing`}}}function zi(){return[...En().map(e=>({key:e.key,name:e.textAliases[0]?.replace(/^\//u,``)??e.key,aliases:e.textAliases,description:e.description,modelIndependent:e.modelIndependent,args:e.args?.map(e=>({name:e.name,required:e.required,choices:Array.isArray(e.choices)?e.choices:void 0})),formatArgs:e.formatArgs,category:e.category,tier:e.tier})).map(e=>Pi(e,`local`)).filter(e=>e!==null),...pa]}function Bi(e=zi()){let t=new Set;for(let n of e){t.add(F(n.name));for(let e of n.aliases??[]){let n=Fi(e);n&&t.add(n)}}return t}function Vi(e,t){let n=(Array.isArray(e.textAliases)?e.textAliases:[]).slice(0,ia).filter(e=>typeof e==`string`).map(Fi).filter(e=>!!e).filter(e=>!t.has(e)),r=n[0]??(typeof e.name==`string`?Fi(e.name):null);if(!r||t.has(r))return null;let i=(Array.isArray(e.args)?e.args:[]).map(e=>M(e)).filter(e=>e!==null).slice(0,aa).map(e=>({name:Ii(e.name,la),required:e.required===!0,choices:Li(e).slice(0,oa)})).filter(e=>e.name.length>0);return{key:r,name:r,aliases:n.map(e=>`/${e}`),description:Ii(e.description,ca),...i.length>0?{args:i}:{},category:typeof e.category==`string`?e.category:void 0,source:e.source===`native`||e.source===`plugin`||e.source===`skill`?e.source:void 0,skillDisplayName:typeof e.skillDisplayName==`string`&&Ii(e.skillDisplayName,sa).trim()||void 0,skillModelVisible:typeof e.skillModelVisible==`boolean`?e.skillModelVisible:void 0,clientPresentation:e.source===`plugin`?Ri(e.clientPresentation):void 0}}function Hi(e){L.splice(0,L.length,...e)}function Ui(e){let t=zi(),n=Bi(t),r=e.slice(0,ra).map(e=>Vi(e,n)).filter(e=>e!==null).map(e=>Pi(e,`remote`)).filter(e=>e!==null),i=new Map;for(let e of[...t,...r]){let t=F(e.name);t&&!i.has(t)&&i.set(t,e)}return Array.from(i.values())}function Wi(e){let t=e?.commands;return Array.isArray(t)?t.map(e=>M(e)).filter(e=>e!==null):[]}function Gi(e){return w(`chat.commands.categories.${e}`)}function Ki(e){return e.descriptionKey?w(e.descriptionKey):e.description}function qi(e,t){let n=[e.name,...e.aliases??[]].map(F);return n.some(e=>e===t)?0:n.some(e=>e.startsWith(t))?1:n.some(e=>e.includes(t))?2:F(Ki(e)).includes(t)?3:_a}function Ji(e,t){let n=F(e),r=t?.showAll??!1,i=t?.inlineOnly?L.filter(e=>e.source===`skill`&&e.skillModelVisible===!0||Oi(e)&&t.allowImmediateInlineCommands!==!1):L;return i=n?i.filter(e=>qi(e,n)<_a):i,!n&&!r&&(i=i.filter(e=>(e.tier??`standard`)!==`power`)),i.toSorted((e,t)=>(n?qi(e,n)-qi(t,n):0)||(ga[e.tier??`standard`]??1)-(ga[t.tier??`standard`]??1)||ha.indexOf(e.category??`session`)-ha.indexOf(t.category??`session`))}function Yi(e,t=e.length){let n=Math.max(0,Math.min(t,e.length)),r=e.slice(0,n).match(/(?:^|\s)\/([^\s/:]*)(:?)$/u);if(!r||r.index===void 0)return null;let i=r[0].indexOf(`/`),a=r.index+i;if(e[a+1]===`/`)return null;let o=n;for(;o<e.length&&!/\s/u.test(e[o]??``);)o+=1;return{query:r[1]??``,start:a,end:o,inline:e.slice(0,a).trim().length>0||e.slice(o).trim().length>0||r[2]===`:`,...r[2]===`:`?{skillOnly:!0}:{}}}function Xi(e){return e.skillDisplayName?.trim()||e.name}function Zi(e){let t=F(e),n=t.replace(/[\s_]+/gu,`-`);return L.filter(e=>e.source===`skill`&&e.skillModelVisible===!0).filter(e=>{let r=F(Xi(e)),i=r.replace(/[\s_]+/gu,`-`),a=F(e.name).replace(/[\s_]+/gu,`-`);return!t||r.includes(t)||i.includes(n)||a.startsWith(n)||F(Ki(e)).includes(t)}).toSorted((e,t)=>Xi(e).localeCompare(Xi(t)))}function Qi(e){let t=e.trim();if(!t.startsWith(`/`))return null;let n=t.slice(1),r=n.search(/[\s:]/u),i=r===-1?n:n.slice(0,r),a=r===-1?``:n.slice(r).trimStart();a.startsWith(`:`)&&(a=a.slice(1).trimStart());let o=a.trim();if(!i)return null;let s=F(i),c=L.find(e=>e.name===s||e.aliases?.some(e=>F(e)===s));return c?{command:c,args:o}:null}function $i(e){let t=Qi(e)?.command.key;return F(e.trim())===`/stop`||t===`approve`}function ea(e){return!e.trimStart().startsWith(`/`)||$i(e)}function ta(e){let t=Qi(e);if(!t)return!1;let n=t.command.modelIndependent;if(n===`directive`){let e=Dn(t.command.key);return e!==void 0&&(e===`model`&&!qt(t.args)||sn(e,t.args))}return n===`always`||(n===`no-args`?t.args===``:typeof n==`function`&&n(t.args))}var na,ra,ia,aa,oa,sa,ca,la,ua,da,fa,pa,ma,L,ha,ga,_a;function va(){return(va=e((()=>{$t(),kn(),l(),Di(),Ei(),na=/^[a-z0-9][a-z0-9_-]*$/u,ra=500,ia=20,aa=20,oa=50,sa=200,ca=2e3,la=200,ua={help:{icon:`book`,category:`tools`},status:{icon:`barChart`,category:`tools`},usage:{icon:`barChart`,category:`tools`},export:{icon:`download`},export_session:{icon:`download`,category:`tools`},tools:{icon:`terminal`,category:`tools`},dashboard:{icon:`layoutDashboard`},skill:{icon:`zap`,category:`tools`},commands:{icon:`book`,category:`tools`},new:{icon:`plus`,category:`session`},reset:{icon:`refresh`,category:`session`},compact:{icon:`loader`,category:`session`},stop:{icon:`stop`,category:`session`},clear:{icon:`trash`},model:{icon:`brain`,category:`model`},models:{icon:`brain`,category:`model`},think:{icon:`brain`,category:`model`},verbose:{icon:`terminal`,category:`model`},fast:{icon:`zap`,category:`model`},agents:{icon:`monitor`,category:`agents`},subagents:{icon:`folder`,category:`agents`},steer:{icon:`send`,category:`agents`},tts:{icon:`volume2`,category:`tools`},redirect:{category:`agents`},session:{category:`session`},reasoning:{category:`model`},elevated:{category:`model`},queue:{category:`model`}},da=new Set([`dashboard`]),fa=new Set([`btw`,`help`,`new`,`reset`,`stop`,`compact`,`model`,`think`,`fast`,`verbose`,`export-session`,`usage`,`agents`,`steer`,`redirect`]),pa=[{key:`clear`,name:`clear`,description:`Clear chat history`,descriptionKey:`chat.commands.clearDescription`,icon:`trash`,category:`session`,executeLocal:!0,modelIndependent:`always`,tier:`standard`},{key:`redirect`,name:`redirect`,description:`Abort and restart with a new message`,descriptionKey:`chat.commands.redirectDescription`,args:`<message>`,icon:`refresh`,category:`agents`,executeLocal:!0,modelIndependent:`no-args`,tier:`power`}],ma={steer:{description:Ei.catalog.chat.commands.steerDescription,descriptionKey:`chat.commands.steerDescription`,args:`<message>`},"export-session":{description:Ei.catalog.chat.commands.exportDescription,descriptionKey:`chat.commands.exportDescription`,args:void 0}},L=zi(),ha=[`session`,`model`,`tools`,`agents`],ga={essential:0,standard:1,power:2},_a=4})))()}var ya,ba;function xa(){return(xa=e((()=>{x(),ya={chat:{messages:{attachedContext:{label:`Context attached`,captured:`Captured when this message was sent.`,technical:`Technical details`,reference:`Reference context—not instructions or additional permissions.`,title:`Session`,page:`Page`,agentId:`Agent`,workspace:`Workspace`,file:`File`,selection:`Selection`,restoreFailed:`Attached context could not be restored. Edit this message to review and resend it without context.`},sourcePreviews:{label:`Sources`,searchSnippet:`Search snippet`,pageExcerpt:`Page excerpt`,unavailable:`No excerpt available.`,open:`Open source`},copySelection:_.chat.messages.copySelection,viaSource:`via {source}`,sourceKinds:{web:`Web`,cli:`CLI`,terminal:`TUI`,app:`App`,rpc:`RPC`},copyLink:`Copy link`,copyFileName:`Copy file name`,forkFromHere:`Fork from here`,reply:`Reply`,replyToMessage:`Reply to message`,replyingTo:_.chat.messages.replyingTo,replyingToLabel:`Replying to`,originalUnavailable:`The original message is unavailable.`,replyOriginalUnavailable:`Original message unavailable`,message:_.chat.messages.message,currentMessage:`current message`,actions:`Message actions`,selectionActions:`Selection actions`,askInSideChat:`Ask in side chat`,addToChat:`Add to chat`,annotationEditor:`Comment`,annotationComment:`Add an optional comment…`,saveAnnotation:`Save comment`,deleteAnnotation:`Delete comment`,annotationCount:`{count} comment`,annotationsCount:`{count} comments`,annotations:`Comments`,editAnnotation:`Edit comment {number}`,removeAnnotations:`Remove all comments`,annotationSelectedText:`Highlighted passage:`,annotationUserComment:`Your comment:`,rewind:`Rewind`,rewindConfirm:`Rewind to before this message?`,dontAskAgain:`Don't ask again`,rewindToHere:`Rewind to here`,rewindUnavailable:`Rewind is unavailable while the agent is working`,forkUnavailable:`Fork is unavailable while the agent is working`,showLess:_.chat.messages.showLess,showMore:_.chat.messages.showMore,tooLargeToDisplay:_.chat.messages.tooLargeToDisplay,unknownDate:`Unknown date`,unattributedSender:_.chat.messages.unattributedSender,toolSender:_.chat.messages.toolSender,errorSender:_.chat.messages.errorSender,forwardedFrom:`From`,interSessionUpdateFrom:`1 update from`,interSessionUpdatesFrom:`{count} updates from`,interSessionUpdate:`1 update`,interSessionUpdates:`{count} updates`,forwardedAutomation:`Automation`,forwardedFromAgent:`Forwarded from {agentId}`,forwardedMessage:`Forwarded message`,fullContentLoadExhausted:`Could not load the full message.`,voiceNote:`Voice note`,duplicatesCollapsed:`{count} consecutive identical messages collapsed`,contextFor:`Message context for {timestamp}`}}},ba=Object.assign(()=>Object.assign(_.chat.messages,ya.chat.messages),{catalog:ya})})))()}function Sa(e){if(!k(e)||e.sessionId!==void 0&&typeof e.sessionId!=`string`)return!1;let t=e.action===`start`?[`action`,`sessionId`]:[`action`,`sessionId`,`goalId`,`previousDraft`];return Object.keys(e).every(e=>t.includes(e))&&(e.action===`start`||e.action===`edit`&&typeof e.goalId==`string`&&e.goalId.length>0&&typeof e.previousDraft==`string`)}function Ca(){return(Ca=e((()=>{})))()}function wa(e){return k(e)&&typeof e.messageId==`string`&&e.messageId.length>0&&typeof e.text==`string`&&(e.senderLabel==null||typeof e.senderLabel==`string`)&&(e.sourceMessageId==null||typeof e.sourceMessageId==`string`)}function Ta(){return(Ta=e((()=>{})))()}function Ea(e){if(!(!k(e)||typeof e.text!=`string`||typeof e.comment!=`string`||typeof e.sessionKey!=`string`||typeof e.start!=`number`||!Number.isSafeInteger(e.start)||e.start<0||typeof e.end!=`number`||!Number.isSafeInteger(e.end)||e.end<e.start||e.messageId!==void 0&&typeof e.messageId!=`string`||e.entryId!==void 0&&typeof e.entryId!=`string`))return{text:e.text,comment:e.comment,sessionKey:e.sessionKey,start:e.start,end:e.end,...typeof e.messageId==`string`?{messageId:e.messageId}:{},...typeof e.entryId==`string`?{entryId:e.entryId}:{}}}function Da(){return(Da=e((()=>{})))()}function Oa(e){let t=Zn(e?.name)??Zn(e?.username);if(t)return t;let n=Zn(e?.id);return n?/^([^@\s]+)@[^@\s]+$/.exec(n)?.[1]??n:null}function ka(e){let t=Zn(e?.id),n=Zn(e?.name),r=Zn(e?.username),i=Zn(e?.profileAvatarUrl),a=Je(e?.identity);return!t&&!n&&!r&&!i?null:{...a?{identity:a}:{},...t?{id:t}:{},...n?{name:n}:{},...r?{username:r}:{},...i?{profileAvatarUrl:i}:{}}}function Aa(e){return e?e.identity?JSON.stringify(e.identity,Object.keys(e.identity).toSorted()):[e.id??``,e.name??``,e.username??``,e.profileAvatarUrl??``].join(`\0`):null}function ja(e){switch(e.type){case`profile`:case`agent`:return JSON.stringify([e.type,e.id]);case`remote`:return JSON.stringify([e.type,e.pluginId,e.domain,e.idKind,e.id]);case`observation`:return JSON.stringify([e.type,e.pluginId,e.accountId,e.senderKind,e.id]);case`legacy`:return JSON.stringify([e.type,e.actorType,e.source,e.id]);default:return e}}function Ma(e){return e?ja({type:`profile`,id:e}):JSON.stringify([`local`])}function Na(){return(Na=e((()=>{bt()})))()}function Pa(e,t){return e.id===t.id&&e.storageScope===t.storageScope&&e.asyncQuestionItemId===t.asyncQuestionItemId&&e.text===t.text&&e.workContextUnavailable===t.workContextUnavailable&&JSON.stringify(e.workContext)===JSON.stringify(t.workContext)&&JSON.stringify(e.mentions??[])===JSON.stringify(t.mentions??[])&&e.sendRunId===t.sendRunId&&e.sendAttempts===t.sendAttempts&&e.sendState===t.sendState&&e.agentId===t.agentId&&e.sessionKey===t.sessionKey&&e.orderKey===t.orderKey&&e.attachmentPayload?.key===t.attachmentPayload?.key}function Fa(e){if(!k(e))return null;let t=e,n=D(t.id),r=D(t.mimeType);if(!n||!r)return null;let i={id:n,mimeType:r};(t.origin===`paste`||t.origin===`file`)&&(i.origin=t.origin);let a=Ea(t.selectionAnnotation);a&&(i.selectionAnnotation=a);let o=D(t.fileName);o&&(i.fileName=o),typeof t.sizeBytes==`number`&&Number.isFinite(t.sizeBytes)&&(i.sizeBytes=t.sizeBytes);let s=D(t.dataUrl);return s&&(i.dataUrl=s),i}function Ia(e){if(!k(e))return null;let t=e,n=D(t.id),r=typeof t.text==`string`?t.text:``,i=A(t.createdAt)??Date.now();if(!n||!r.trim()&&!Array.isArray(t.attachments)&&t.attachmentPayload===void 0&&t.attachmentStorageError===void 0)return null;let a=Array.isArray(t.attachments)?t.attachments.map(Fa).filter(e=>e!==null):[],o={id:n,text:r,createdAt:i},s=D(t.storageScope);s&&(o.storageScope=s);let c=D(t.asyncQuestionItemId);c&&c.length<=256&&(o.asyncQuestionItemId=c),t.workContext!==void 0&&(o.workContext=Ve(t.workContext),o.workContext||(o.workContextUnavailable=!0));let l=gi(r,t.mentions);if(l&&(o.mentions=l),t.attachmentPayload!==void 0){let e=t.attachmentPayload;k(e)&&typeof e.key==`string`&&typeof e.recoveryScope==`string`&&typeof e.tabId==`string`?o.attachmentPayload={key:e.key,recoveryScope:e.recoveryScope,tabId:e.tabId}:o.attachmentStorageError=`missing`}if((t.attachmentStorageError===`missing`||t.attachmentStorageError===`unavailable`||t.attachmentStorageError===`capacity`)&&(o.attachmentStorageError=t.attachmentStorageError),Array.isArray(t.attachments)&&a.length!==t.attachments.length&&(o.attachmentStorageError=`missing`),o.attachmentPayload&&!a.length&&(o.attachmentStorageError=`missing`),t.intent!==void 0){let e=t.intent;if(!k(e)||Object.keys(e).length!==3||e.kind!==`session-goal-start`||e.version!==1||typeof e.issuedAtMs!=`number`||!Number.isSafeInteger(e.issuedAtMs)||e.issuedAtMs<=0)return null;o.intent={kind:e.kind,version:e.version,issuedAtMs:e.issuedAtMs},(t.expectedLeafEntryId===null||typeof t.expectedLeafEntryId==`string`)&&(o.expectedLeafEntryId=t.expectedLeafEntryId)}let u=D(t.sessionId);u&&(o.sessionId=u),typeof t.orderKey==`number`&&Number.isFinite(t.orderKey)&&(o.orderKey=t.orderKey);let d=ka(t.sender);d&&(o.sender=d);let f=t.kind===`steered`||D(t.steerTargetRunId)!==void 0||t.sendState===`steering`?`steer`:Kt(typeof t.queueMode==`string`?t.queueMode:void 0);f&&(o.queueMode=f),a.length&&(o.attachments=a),typeof t.refreshSessions==`boolean`&&(o.refreshSessions=t.refreshSessions);let p=D(t.replyToId);p&&(o.replyToId=p),t.sendState===`steering`||t.sendState===`executing-command`?o.sendState=`unconfirmed`:t.sendState===`submitting`?o.sendState=`waiting-idle`:t.sendState===`sending`?o.sendState=`waiting-reconnect`:t.sendState===`failed`||t.sendState===`unconfirmed`||t.sendState===`held`||t.sendState===`waiting-idle`||t.sendState===`waiting-reconnect`?o.sendState=t.sendState:t.sendState===`waiting-model`&&(o.sendState=`failed`,o.sendError=za);for(let e of[`sendError`,`sendRunId`]){let n=D(t[e]);n&&(o[e]=n)}typeof t.sendAttempts==`number`&&Number.isFinite(t.sendAttempts)&&(o.sendAttempts=t.sendAttempts);for(let e of[`localCommandArgs`,`localCommandName`,`sessionKey`]){let n=D(t[e]);n&&(o[e]=n)}let m=D(t.agentId);return m&&(o.agentId=yr(m)),t.mentions!==void 0&&(!Array.isArray(t.mentions)||t.mentions.length!==(l?.length??0))&&(o.sendState=o.sendState===`held`?`held`:`failed`,o.sendError=w(`chat.mentions.restoreFailed`)),(t.workContextUnavailable===!0||o.workContextUnavailable)&&(o.workContextUnavailable=!0,o.sendState=o.sendState===`held`?`held`:`failed`,o.sendError=w(`chat.messages.attachedContext.restoreFailed`)),o}function La(e){if(!k(e))return null;let t=e,n=typeof t.draft==`string`?t.draft:void 0,r=n?gi(n,t.draftMentions):void 0;if(t.goalMode!==void 0&&!Sa(t.goalMode))return null;let i=t.goalMode;if(t.replyTarget!==void 0&&!wa(t.replyTarget))return null;let a=t.replyTarget;if(Array.isArray(t.queue)&&t.queue.length>Ra)return null;let o=Array.isArray(t.queue)?t.queue.map(Ia).filter(e=>e!==null):void 0,s=Array.isArray(t.removedQueueItemIds)?t.removedQueueItemIds.map(D).filter(e=>e!==void 0):void 0,c=new Set(s??[]),l=o?.filter(e=>!c.has(e.id)),u=A(t.updatedAt)??Date.now(),d=(typeof t.draftRevision==`number`&&Number.isSafeInteger(t.draftRevision)?t.draftRevision:void 0)??(n?u:void 0);return!n&&!i&&!a&&d===void 0&&(!l||l.length===0)?null:{...t.awaitingDefaults===!0?{awaitingDefaults:!0}:{},...n?{draft:n}:{},...r?{draftMentions:r}:{},...i?{goalMode:i}:{},...a?{replyTarget:{...a}}:{},...d===void 0?{}:{draftRevision:d},...l&&l.length>0?{queue:l}:{},updatedAt:u}}var Ra,za;function Ba(){return(Ba=e((()=>{In(),Qt(),at(),l(),xa(),ae(),Ca(),yi(),Ta(),Da(),Na(),ba(),Ra=1e3,za=`Chat settings update was interrupted. Review and retry when ready.`})))()}function Va(e,t){return e??Error(t)}function R(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>n(Va(e.error,`IndexedDB request failed`)),{once:!0})})}function z(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>n(Va(e.error,`IndexedDB transaction aborted`)),{once:!0}),e.addEventListener(`error`,()=>n(Va(e.error,`IndexedDB transaction failed`)),{once:!0})})}function Ha(){if(qa)return qa;let e=new Promise((t,n)=>{let r=()=>{qa===e&&(qa=null)};if(typeof indexedDB>`u`){n(Error(`IndexedDB is unavailable`));return}let i=indexedDB.open(Ua,Wa);i.addEventListener(`upgradeneeded`,()=>{let e=i.result;e.objectStoreNames.contains(`outboxPayloads`)||e.createObjectStore(`outboxPayloads`,{keyPath:`key`});let t=e.objectStoreNames.contains(Ga)?i.transaction?.objectStore(Ga):e.createObjectStore(Ga,{keyPath:`key`});t&&!t.indexNames.contains(Ka)&&t.createIndex(Ka,Ka,{unique:!1})},{once:!0});let a=!1;i.addEventListener(`success`,()=>{let e=i.result;if(a){e.close(),r();return}e.addEventListener(`close`,r,{once:!0}),e.addEventListener(`versionchange`,()=>{e.close(),r()}),t(e)},{once:!0}),i.addEventListener(`error`,()=>{r(),n(Va(i.error,`IndexedDB open failed`))},{once:!0}),i.addEventListener(`blocked`,()=>{a=!0,n(Error(`IndexedDB upgrade was blocked`))},{once:!0})});return qa=e,e}var Ua,Wa,Ga,Ka,qa;function Ja(){return(Ja=e((()=>{Ua=`openclaw-control-ui`,Wa=2,Ga=`composerDrafts`,Ka=`ownerKey`,qa=null})))()}function Ya(e){return{status:`failed`,reason:e instanceof DOMException&&e.name===`QuotaExceededError`?`capacity`:`unavailable`}}async function Xa(e,t){let n=t.reduce((e,t)=>e+t.blob.size,0);if(n>io)return{status:`failed`,reason:`capacity`};try{let r=(await Ha()).transaction(B,`readwrite`,{durability:`strict`}),i=z(r),a=r.objectStore(B),o=await R(a.getAll()).catch(async e=>{throw await i,e}),s=o.reduce((e,t)=>e+(k(t)&&typeof t.bytes==`number`&&Number.isSafeInteger(t.bytes)&&t.bytes>=0?t.bytes:ao),0);if(o.length>=oo||s+n>ao)return await i,{status:`failed`,reason:`capacity`};let c=JSON.stringify([e.gatewayOwner,e.recoveryScope,e.queueId,Kn()]);return a.add({key:c,owner:e,bytes:n,attachments:t}),await i,{status:`ready`,value:{key:c,recoveryScope:e.recoveryScope,tabId:e.tabId}}}catch(e){return Ya(e)}}async function Za(e,t){if(t.recoveryScope!==e.recoveryScope)return{status:`failed`,reason:`missing`};try{let n=(await Ha()).transaction(B),r=z(n),[i]=await Promise.all([R(n.objectStore(B).get(t.key)),r]);if(!k(i)||!k(i.owner)||i.key!==t.key||i.owner.gatewayOwner!==e.gatewayOwner||i.owner.recoveryScope!==e.recoveryScope||i.owner.queueId!==e.queueId||i.owner.tabId!==t.tabId||!Array.isArray(i.attachments)||!i.attachments.length)return{status:`failed`,reason:`missing`};let a=[];for(let e of i.attachments){if(!k(e)||!(e.blob instanceof Blob)||typeof e.mimeType!=`string`||e.origin!==void 0&&e.origin!==`paste`&&e.origin!==`file`||e.fileName!==void 0&&typeof e.fileName!=`string`||e.sizeBytes!==void 0&&e.sizeBytes!==e.blob.size)return{status:`failed`,reason:`missing`};let t=Ea(e.selectionAnnotation);a.push({blob:e.blob,mimeType:e.mimeType,...e.origin?{origin:e.origin}:{},...t?{selectionAnnotation:t}:{},...typeof e.fileName==`string`?{fileName:e.fileName}:{},...typeof e.sizeBytes==`number`?{sizeBytes:e.sizeBytes}:{}})}return i.bytes===a.reduce((e,t)=>e+t.blob.size,0)?{status:`ready`,value:a}:{status:`failed`,reason:`missing`}}catch(e){return Ya(e)}}async function Qa(e){try{let t=await $a(),n=e.filter(e=>e.tabId===t);if(!n.length)return;let r=(await Ha()).transaction(B,`readwrite`),i=r.objectStore(B);for(let e of n)i.delete(e.key);await z(r)}catch{}}function $a(){return co??=(async()=>{let e=Be();if(!e)throw Error(`Outbox ownership unavailable`);let t=globalThis.navigator?.locks;if(!t){let t=Kn();return e.setItem(so,t),t}let n=e=>new Promise((n,r)=>{t.request(`openclaw-outbox:${e}`,{ifAvailable:!0},e=>(n(!!e),e?new Promise(()=>{}):void 0)).catch(r)}),r=e.getItem(so),i=r&&await n(r)?r:Kn();if(i!==r&&!await n(i))throw Error(`Outbox ownership unavailable`);return e.setItem(so,i),i})().catch(e=>{throw co=null,e})}function eo(e){let t=Mt(e);return t?JSON.stringify([e.settings?.gatewayUrl?.trim()||`default`,t]):void 0}function to(e){return Mt(e)}function no(e,t){return(!t.storageScope||t.storageScope===eo(e))&&(!t.attachmentPayload||t.attachmentPayload.recoveryScope===to(e))}function ro(e,t){return!!(t.storageScope&&no(e,t))}var B,io,ao,oo,so,co;function lo(){return(lo=e((()=>{It(),Bn(),Ja(),Da(),B=`outboxPayloads`,io=26214400,ao=262144e3,oo=1e3,so=`openclaw.control.outboxTab.v1`,co=null})))()}function uo(e){yo=Math.max(yo,e??0)}function fo(e=0){let t=Math.max(Date.now(),yo+1,e+1);return yo=t,t}function po(e,t,n,r){if(r===void 0)return;let i=_o(e,t,n);i.committed=Math.max(i.committed,r)}function mo(e,t,n,r){let i=_o(e,t,n);i.attempted=Math.max(i.attempted,r)}function ho(e,t,n,r){let i=_o(e,t,n);i.edited=Math.max(i.edited,r)}function go(e,t,n,r){let i=_o(e,t,n),a=Symbol(`composer-replacement`),o=Math.max(r,i.committed,i.attempted,i.edited);return i.replacement=a,()=>i.replacement===a&&Math.max(i.committed,i.attempted,i.edited)<=o}function _o(e,t,n){let r=bo.get(e);r||(r=new Map,bo.set(e,r));let i=r.get(t);i||(i=new Map,r.set(t,i));let a=i.get(n);return a||(a={committed:0,attempted:0,edited:0},i.set(n,a)),a}function vo(e,t,n,r){let i=bo.get(e)?.get(t)?.get(n),a=Math.max(r??0,i?.committed??0);return{committed:a,latestAttempt:Math.max(a,i?.attempted??0)}}var yo,bo;function xo(){return(xo=e((()=>{yo=0,bo=new WeakMap})))()}function So(e,t,n,r){if(n)try{if([t.legacyKey,t.previousKey,t.blobKey].some(t=>e.getItem(t)!==null))return;let i=e=>{if(e===null)return[];if(!k(e)||e.version!==4||e.gatewayOwner!==t.gatewayOwner||!k(e.sessions)||!k(e.recovery))throw Error(`Unreadable outbox retention source`);return[...Object.values(e.sessions),...Object.values(e.recovery).map(e=>{if(!k(e))throw Error(`Unreadable recovery source`);return e.session})].flatMap(e=>{if(!k(e)||e.queue!==void 0&&!Array.isArray(e.queue))throw Error(`Unreadable outbox row`);return(e.queue??[]).flatMap(e=>{if(!k(e))throw Error(`Unreadable outbox item`);let t=e.attachmentPayload;if(t===void 0)return[];if(!k(t)||typeof t.key!=`string`||typeof t.recoveryScope!=`string`||typeof t.tabId!=`string`)throw Error(`Unreadable outbox payload reference`);return[{key:t.key,recoveryScope:t.recoveryScope,tabId:t.tabId}]})})},a=new Set(i(r).map(e=>e.key));for(let n=0;n<e.length;n+=1){let r=e.key(n);if(r&&r!==t.key&&(r===t.unscopedKey||r.startsWith(t.unscopedKey+`:account:`))){let t=e.getItem(r);if(t)for(let e of i(JSON.parse(t)))a.add(e.key)}}let o=i(JSON.parse(n)).filter(e=>!a.has(e.key));o.length&&Qa(o)}catch{}}function Co(){return(Co=e((()=>{lo()})))()}function V(e){return!!(e.draft||e.goalMode||e.replyTarget)}function wo(e,t){V(e)!==V(t)&&ko()}function To(e){return!e.draft&&!e.draftMentions&&!e.goalMode&&!e.replyTarget?!1:(delete e.draft,delete e.draftMentions,delete e.goalMode,delete e.replyTarget,!0)}function Eo(e){let t=!1,n=[...Object.entries(e.sessions),...Object.values(e.recovery).map(e=>[e.sourceScopeKey,e.session])];for(let[e,r]of n)Jn(H(e)?.sessionKey)&&(t=To(r)||t);return t}function Do(e){for(let[t,{session:n}]of Object.entries(e.recovery))!V(n)&&!n.queue?.length&&n.draftRevision!==void 0&&delete e.recovery[t]}function Oo(e){return Ko.add(e),!qo&&typeof window<`u`&&(qo=!0,window.addEventListener(`storage`,Ao)),()=>{Ko.delete(e),qo&&Ko.size===0&&typeof window<`u`&&(qo=!1,window.removeEventListener(`storage`,Ao))}}function ko(){for(let e of Ko)try{e()}catch(e){console.error(`[openclaw] stored chat outbox listener failed`,e)}}function Ao(e){if(e.key===null&&e.storageArea){Xo.get(e.storageArea)?.clear(),ko();return}(e.key?.startsWith(Go)||e.key?.startsWith(Ho)||e.key?.startsWith(Uo)||e.key?.startsWith(Wo))&&(e.storageArea&&Xo.get(e.storageArea)?.clear(),ko())}function jo(e,t){let n=e?.trim()||`default`,r=encodeURIComponent(n);return{key:`${Go}${r}${t?`:account:${encodeURIComponent(t)}`:``}`,unscopedKey:`${Go}${r}`,recoveryScope:t,legacyKey:`${Ho}${r.slice(0,240)}`,previousKey:`${Uo}${r}`,blobKey:`${Wo}${r}`,gatewayOwner:n,legacyOwnerIsUnambiguous:r.length<240}}function Mo(e){let t=to(e);return{...jo(e.settings?.gatewayUrl,t),unavailable:!(!e.client||t)}}function H(e){let t=e.lastIndexOf(`\0agent:`);if(t<1)return null;let n=e.slice(0,t),r=e.slice(t+7),i=we(n)?.agentId;if(i&&yr(r)!==yr(i))return null;let a=i??(n===`global`&&r!==`@unresolved`?r:void 0);return{sessionKey:n,...a?{agentId:yr(a)}:{}}}function No(e,t){let n=!1;for(let[r,i]of Object.entries(e.sessions)){if(!i.awaitingDefaults||!Fe(t))continue;let a=H(r);if(!a)continue;let o=g(t,a.sessionKey,a.agentId),s=T(o),{awaitingDefaults:c,...l}=i,u=e.sessions[s];if(s!==r&&u){let t=new Set(u.queue?.map(e=>e.id)),n=l.queue?.some(e=>t.has(e.id)),i=(l.draftRevision??0)>(u.draftRevision??0);if(n||V(l)&&!i)Io(e,`pending:${r}`,4,r,l);else{let t=i?l:u;e.sessions[s]={...t,queue:[...u.queue??[],...(l.queue??[]).map(e=>Vo(e,o))],updatedAt:Math.max(l.updatedAt,u.updatedAt)}}}else e.sessions[s]={...l,...l.queue?{queue:l.queue.map(e=>Vo(e,o))}:{}};s!==r&&delete e.sessions[r],n=!0}return n}function Po(e,t,n){return{owner:to(e),gatewayOwner:jo(e.settings?.gatewayUrl).gatewayOwner,scope:g(e,t,n),awaitingDefaults:!Fe(e)}}function Fo(e,t,n=``){return JSON.stringify([e.settings?.gatewayUrl,e.client?.recoveryScope,T(t)])+n}function Io(e,t,n,r,i){let{queue:a,...o}=i,s=new Map;V(o)&&s.set(void 0,[]);for(let e of a??[]){let t=e.attachmentPayload?.recoveryScope,n=s.get(t)??[];n.push(e),s.set(t,n)}for(let[a,c]of s)e.recovery[`${t}:${JSON.stringify(a??null)}`]={sourceVersion:n,sourceScopeKey:r,session:{...a===void 0?o:{updatedAt:i.updatedAt,draftRevision:i.draftRevision},...c.length?{queue:c}:{}}}}function Lo(e,t,n,r,i,a){let o=i?T(i):n,s=r.queue?.some(e=>e.sessionKey&&e.sessionKey!==i?.sessionKey||e.agentId&&e.agentId!==i?.agentId);i&&!s&&!e.sessions[o]&&Object.keys(e.sessions).length<20?e.sessions[o]={...r,...r.queue?{queue:r.queue.map(e=>({...e,...i}))}:{}}:Io(e,`${t}:${a}:${n}`,t,n,r)}function Ro(e,t){if(t.unavailable)throw Error(`Offline account recovery is unavailable`);let n=e.getItem(t.key),r=n?JSON.parse(n):{version:4,gatewayOwner:t.gatewayOwner,sessions:{},recovery:{}};if(n){if(r.version!==4||r.gatewayOwner!==t.gatewayOwner||!r.sessions||!r.recovery)throw Error(`Chat outbox owner or version mismatch`);for(let[n,i]of Object.entries(r.sessions)){let a=La(i);if(!a)throw Error(`Invalid chat outbox record`);r.sessions[n]=a,uo(a.draftRevision),po(e,t.key,n,a.draftRevision)}}if(t.recoveryScope)return r;let i=[];for(let[a,o]of[[t.blobKey,3],[t.previousKey,2],...t.legacyOwnerIsUnambiguous?[[t.legacyKey,1]]:[]]){let s=e.getItem(a);if(!s){s===``&&i.push({key:a,raw:s});continue}let c=Or(Dr(new TextEncoder().encode(s)));if(r.legacyReceipts?.[o]===c){i.push({key:a,raw:s});continue}let l=JSON.parse(s);if(l.version!==o||o!==1&&l.gatewayOwner!==t.gatewayOwner||!l.sessions)throw Error(`Chat outbox legacy owner or version mismatch`);let u={...r.sessions},d={...r.recovery},f=!1;for(let[e,t]of Object.entries(l.sessions)){let i=La(t),a=k(t)&&Array.isArray(t.removedQueueItemIds)?t.removedQueueItemIds:[],s=k(t)&&Array.isArray(t.queue)?t.queue.filter(e=>!k(e)||!a.includes(e.id)):[];if(!i||s.length!==(i.queue?.length??0))throw Error(`Invalid legacy chat outbox record`);let u=H(e);k(t)&&Jn(u?.sessionKey)&&(f=To(t)||f,To(i),La(t)||delete l.sessions[e]);let d=u&&(we(u.sessionKey)||o===1&&u.sessionKey===`global`&&u.agentId||u.sessionKey!==`global`&&u.sessionKey!==`main`&&u.sessionKey!==l.mainAlias?.key);if(!n&&o!==1&&u?.sessionKey===`global`){let t=new Map;i.queue=i.queue?.filter(e=>{let n=we(e.sessionKey);if(!n||e.agentId&&e.agentId!==n.agentId)return!0;let i=T({sessionKey:e.sessionKey,agentId:n.agentId});if(!t.has(i)&&Object.keys(r.sessions).length+t.size>=20)return!0;let a=t.get(i)??[];return a.push(e),t.set(i,a),!1});for(let[n,a]of t)Lo(r,o,`${e}:${n}`,{queue:a,updatedAt:i.updatedAt},H(n),c)}(V(i)||i.draftRevision!==void 0||i.queue?.length)&&Lo(r,o,e,i,!n&&d?u:null,c)}if(Do(r),Object.keys(r.recovery).length>Jo){if(r.sessions=u,r.recovery=d,r.recoveryBlocked=!0,f&&e.getItem(a)===s)try{e.setItem(a,JSON.stringify(l))}catch{}continue}r.legacyReceipts={...r.legacyReceipts,[o]:c},i.push({key:a,raw:s})}let a=Eo(r);if(i.length||a){i.length&&Yo.set(r,i);try{Bo(e,t,r)}catch{}}return r}function zo(e,t){if(t.unavailable)throw Error(`Offline account recovery is unavailable`);let n=Xo.get(e),r=n?.get(t.key);if(r)return r;let i=Ro(e,t),a=n??new Map;return a.set(t.key,i),Xo.set(e,a),i}function Bo(e,t,n,r={}){if(t.unavailable)throw Error(`Offline account recovery is unavailable`);Eo(n),Do(n);let i=e.getItem(t.key);if(Xo.get(e)?.delete(t.key),Object.keys(n.recovery).length>Jo)throw Error(`Chat outbox recovery limit reached; legacy source retained`);let a=Object.entries(n.sessions),o=a.filter(([,e])=>e.queue?.length);if(o.length>20)throw Error(`Chat outbox session limit reached`);let s=a.filter(([,e])=>!e.queue?.length),c=`global\u0000agent:${ge}`,l=(e,t)=>Number(t[1].awaitingDefaults===!0&&!we(t[0]))-Number(e[1].awaitingDefaults===!0&&!we(e[0]))||t[1].updatedAt-e[1].updatedAt||(t[1].draftRevision??0)-(e[1].draftRevision??0)||e[0].localeCompare(t[0]),u=s.find(([e])=>e===c),d=[...u?[u]:[],...s.filter(([e,t])=>e!==c&&!V(t)&&t.draftRevision!==void 0).toSorted(l)].slice(0,20),f=[...[...o.toSorted(l),...s.filter(([e,t])=>e!==c&&V(t)).toSorted(l)].slice(0,20),...d];if(r.requiredSessionKey!==void 0){let e=new Set([r.requiredSessionKey,...a.filter(([,e])=>e.queue?.length||V(e)).map(([e])=>e)]);for(let[t]of f)e.delete(t);if(e.size>0)throw Error(`Required chat outbox destination exceeds retention; source retained`)}if(f.length===0&&Object.keys(n.recovery).length===0&&!Yo.has(n)&&!n.legacyReceipts){if(r.beforeCommit?.(),e.removeItem(t.key),e.getItem(t.key)!==null)throw Error(`Chat outbox removal verification failed`);So(e,t,i,null);return}if(Yo.has(n)&&f.length<a.length)throw Error(`Chat outbox migration exceeds retention; source retained`);let p={version:4,gatewayOwner:t.gatewayOwner,sessions:Object.fromEntries(f),recovery:n.recovery,...n.legacyReceipts?{legacyReceipts:n.legacyReceipts}:{}},m=JSON.stringify(p);if(r.beforeCommit?.(),e.setItem(t.key,m),e.getItem(t.key)!==m)throw Error(`Chat outbox write verification failed`);for(let t of Yo.get(n)??[])if(e.getItem(t.key)===t.raw){try{e.removeItem(t.key)}catch{}try{e.getItem(t.key)===t.raw&&e.setItem(t.key,``)}catch{}}Yo.delete(n),So(e,t,i,p)}function Vo(e,t){let{agentId:n,...r}=e,i=t.agentId??we(t.sessionKey)?.agentId;return{...r,sessionKey:t.sessionKey,...i?{agentId:i}:{}}}var Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo;function Zo(){return(Zo=e((()=>{Er(),kr(),nr(),ae(),lo(),Ba(),xo(),Co(),Ae(),Ho=`openclaw.control.chatComposer.v1:`,Uo=`openclaw.control.chatComposer.v2:`,Wo=`openclaw.control.chatComposer.v3:`,Go=`openclaw.control.chatComposer.v4:`,Ko=new Set,qo=!1,Jo=80,Yo=new WeakMap,Xo=new WeakMap})))()}function Qo(e){let t=es.exec(e);return t?.groups?(t.groups.label??``)+t.groups.body:e}function $o(e){let t=N(e);if(!t||t.role!==`user`&&t.role!==`assistant`)return e;let n=N(t.__openclaw)?.idempotencyKey??t.idempotencyKey;if(typeof n!=`string`||!/^[^:\s]+-catalog:/u.test(n))return e;let r=t.content;return{...t,...typeof t.text==`string`?{text:Qo(t.text)}:{},...typeof r==`string`?{content:Qo(r)}:Array.isArray(r)?{content:r.map(e=>{let n=N(e);return n&&typeof n.text==`string`&&(n.type===`text`||n.type===`input_text`||t.role===`assistant`&&n.type===`output_text`)?Object.assign({},n,{text:Qo(n.text)}):e})}:{}}}var es;function ts(){return(ts=e((()=>{es=/^(?<label>(?:Thinking|Tool call|Tool result|Other)\r?\n\r?\n)?<<<EXTERNAL_UNTRUSTED_CONTENT id="(?<id>[a-f0-9]{16})">>>\r?\nSource: External\r?\n---\r?\n(?<body>[\s\S]*?)\r?\n<<<END_EXTERNAL_UNTRUSTED_CONTENT id="\k<id>">>>$/u})))()}function ns(e,t){return e===`text`||t===`user`&&e===`input_text`||t===`assistant`&&(e===`input_text`||e===`output_text`)}function rs(e,t){let n=F(t)===`user`,r=Tn(e);return t===`assistant`?Gr(r):n?_n(r):$r(r)}function is(e){if(e==null)return null;let t=tt($o(e)),n=t,r=typeof n.role==`string`?n.role:``,i=r===`assistant`?Jr(t):ls(t);return i?rs(i,r):null}function as(e,t,n){if(!e||typeof e!=`object`)return n(e);if(t.has(e))return t.get(e)??null;let r=n(e);return t.set(e,r),r}function os(e){return as(e,ps,is)}function ss(e){if(e==null)return null;let t=e.content,n=[];if(Array.isArray(t))for(let e of t){let t=N(e);if(t?.type===`thinking`&&typeof t.thinking==`string`){let e=t.thinking.trim();e&&n.push(e)}}return n.length>0?n.join(`
`):null}function cs(e){return as(e,ms,ss)}function ls(e){if(e==null)return null;let t=e,n=F(t.role),r=t.content;if(typeof r==`string`)return r;if(Array.isArray(r)){let e=r.map(e=>{let t=N(e);return t&&ns(t.type,n)&&typeof t.text==`string`?t.text:null}).filter(e=>typeof e==`string`);if(e.length>0)return e.join(`
`)}return typeof t.text==`string`?t.text:null}function us(e){return!e||typeof e!=`object`?[]:(Ye(e)??[]).flatMap((e,t)=>{let n=e.path??e.url;return n?[{factIndex:t,path:n,mediaType:e.contentType??e.kind,fileName:e.fileName,...e.origin?{origin:e.origin}:{},...e.sizeBytes===void 0?{}:{sizeBytes:e.sizeBytes},...e.durationMs===void 0?{}:{durationMs:e.durationMs},...e.width===void 0?{}:{width:e.width},...e.height===void 0?{}:{height:e.height}}]:[]})}function ds(e){if(typeof e==`string`)return!0;if(!Array.isArray(e))return!1;for(let t of e){if(!t||typeof t!=`object`)return!1;let e=t;if(e.type!==`text`||typeof e.text!=`string`)return!1}return!0}function fs(e){if(!e||typeof e!=`object`)return!1;let t=e;return F(t.role)!==`user`||us(t).length>0||!ds(t.content??t.text)?!1:(is(e)?.trim()??``)===``}var ps,ms;function hs(){return(hs=e((()=>{an(),on(),at(),Ge(),ti(),Wr(),Lr(),ts(),ps=new WeakMap,ms=new WeakMap})))()}function gs(e){return e.startsWith(`/`)&&Ts.some(t=>e.includes(t))}function _s(e){let t=e.trim();if(!t)return;let n;try{if(/^https?:\/\//i.test(t)||gs(t)){let e=new URL(t,`https://openclaw.invalid`).pathname;n=e.slice(e.lastIndexOf(`/`)+1);try{let e=n.replace(/%2f/gi,`%252F`).replace(/%5c/gi,`%255C`);n=decodeURIComponent(e)}catch{}}else n=t.split(/[\\/]/).pop()??t}catch{n=t.split(/[\\/]/).pop()??t}return n||void 0}function vs(e){let t=_s(e);if(t)return/\.([a-zA-Z0-9]+)$/.exec(t)?.[1]?.toLowerCase()}function ys(e){let t=vs(e);return t!==void 0&&Es.has(t)}function bs(e,t){if(typeof t==`string`&&t.trim()){let e=t.trim().toLowerCase();if(e.startsWith(`image/`))return!0;if(e!==`application/octet-stream`)return!1}let n=vs(e);return n!==void 0&&[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`heic`,`heif`,`avif`].includes(n)}function xs(e,t){return(typeof t==`string`?t.split(`;`,1)[0]?.trim().toLowerCase():``)===`image/svg+xml`||vs(e)===`svg`}function Ss(e,t){if(typeof t==`string`&&t.trim().toLowerCase().startsWith(`audio/`))return!0;let n=vs(e);return n!==void 0&&[`aac`,`flac`,`m2a`,`m4a`,`mp3`,`oga`,`ogg`,`opus`,`wav`].includes(n)}function Cs(e,t){return typeof t==`string`&&t.trim().toLowerCase().startsWith(`video/`)?!0:ys(e)}function ws(e){let t=e.trim();if(t.startsWith(Ds)){let e=t.split(`/`).pop()?.trim()||t;return e.replace(Os,``)||e}try{if(/^https?:\/\//i.test(t)){let e=new URL(t);return _s(t)?.trim()||e.hostname||t}}catch{}return t.split(/[\\/]/).pop()?.trim()||t}var Ts,Es,Ds,Os;function ks(){return(ks=e((()=>{Ts=[`/__openclaw__/assistant-media`,`/__openclaw__/media/`,`/api/chat/media/outgoing/`,`/media/inbound/`],Es=new Set([`avi`,`m4v`,`mkv`,`mov`,`mp4`,`mpeg`,`mpg`,`webm`]),Ds=`media://inbound/`,Os=/---[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}(?=\.[^./]*$|$)/i})))()}function As(e){return e===`image`||e===`audio`||e===`video`||e===`document`}function js(e){let t=N(e);if(!t||t.type!==`attachment`&&t.type!==`attachment_error`)return;let n=N(t.attachment);if(!n||!As(n.kind)||typeof n.label!=`string`)return[];let r=typeof n.mimeType==`string`?n.mimeType:void 0;if(t.type===`attachment_error`)return n.code!==`file-not-found`&&n.code!==`unsupported-format`&&n.code!==`delivery-failed`&&n.code!==`invalid-reference`?[]:[{type:`attachment_error`,attachment:{code:n.code,kind:n.kind,label:n.label,...r===void 0?{}:{mimeType:r}}}];if(typeof n.url!=`string`)return[];let i={url:n.url,kind:n.kind,label:n.label,...r===void 0?{}:{mimeType:r},...n.origin===`paste`||n.origin===`file`?{origin:n.origin}:{},...n.isVoiceNote===!0?{isVoiceNote:!0}:{},...typeof n.artifactId==`string`?{artifactId:n.artifactId}:{},...n.playback===`native`||n.playback===`transcode`?{playback:n.playback}:{}};for(let e of[`sizeBytes`,`durationMs`,`width`,`height`]){let t=A(n[e]);t!==void 0&&(e===`width`||e===`height`?t>0:t>=0)&&(i[e]=t)}return[{type:`attachment`,attachment:i}]}function Ms(){return(Ms=e((()=>{In()})))()}function Ns(e,t){return typeof e==`string`?e.startsWith(`data:`)?e:`data:${typeof t==`string`?t:`image/png`};base64,${e}`:void 0}function Ps(e){let t=N(e.source);if(e.type===`image`){let n=t?.type===`base64`&&typeof t.data==`string`,r={url:E(e.url)??E(t?.url),dataUrl:Ns(n?t.data:e.data,n?t.media_type:e.mimeType),preferData:!0,mimeType:P(e,`mimeType`)??P(t,`media_type`)};for(let t of[`artifactId`,`fileName`,`openUrl`,`alt`]){let n=P(e,t);n!==void 0&&(r[t]=n)}for(let t of[`sizeBytes`,`width`,`height`]){let n=A(e[t]);n!==void 0&&(r[t]=n)}return{type:`image`,sources:[r],inlineSlot:!0}}if(e.type===`image_url`)return{type:`image`,sources:[{url:E(N(e.image_url)?.url)}]};if(e.type===`input_image`)return{type:`image`,sources:[{url:E(e.image_url)??E(N(e.image_url)?.url)},{url:E(t?.url),dataUrl:Ns(t?.data,t?.media_type),mimeType:P(t,`media_type`)}]};if(e.type===`openclaw_pairing_qr`)return{type:`image`,sources:[{url:E(e.image_url),alt:P(e,`alt`)}],expiresAtMs:A(e.expiresAtMs)}}function Fs(){return(Fs=e((()=>{In()})))()}function Is(e,t){return!!(e.viewId&&e.viewId===t.viewId||e.url&&e.url===t.url)}function Ls(e){let t=N(e);if(!(!t||t.audioAsVoice!==void 0&&t.audioAsVoice!==!0||t.replyToCurrent!==void 0&&t.replyToCurrent!==!0))return{audioAsVoice:t.audioAsVoice,replyToCurrent:t.replyToCurrent,replyToId:P(t,`replyToId`)}}function Rs(e){let t=N(e);if(!t)return;let n=E(t.sessionKey),r=E(t.agentId),i=E(t.label);return n||r?{...`sessionKey`in t?{sessionKey:n}:{},...`agentId`in t?{agentId:r}:{},...i?{label:i}:{}}:void 0}function zs(e){if(e.type!==`image`||e.omitted!==!0||E(e.artifactId)!==void 0||E(e.url)!==void 0)return null;let t=Xn(e.bytes);return{type:`omitted_media`,media:{kind:`image`,...t===void 0?{}:{sizeBytes:t}}}}function Bs(e){let t=e.toLowerCase();return[`user`,`assistant`,`system`].includes(t)?t:[`toolresult`,`tool_result`,`tool`,`function`].includes(t)?`tool`:e}function Vs(e){return typeof e?.toolCallId==`string`||typeof e?.tool_call_id==`string`||typeof e?.toolUseId==`string`||typeof e?.tool_use_id==`string`||typeof e?.toolName==`string`||typeof e?.tool_name==`string`}function Hs(e){let t=N(e),n=t?.content;return Array.isArray(n)&&n.some(e=>{let t=N(e)?.type;return Qe(t)||mt(t)})||Vs(t)?`toolResult`:P(t,`role`)??`unknown`}function Us(e){let t=Je(e?.senderIdentity);return ka({identity:t,id:e?.senderId,name:e?.senderName,username:e?.senderUsername,profileAvatarUrl:t?.type===`profile`?e?.senderProfileAvatarUrl:void 0})}function Ws(e,t){let n=N(e),r=P(n,`senderLabel`)?.trim()??``;return r?r.replace(rc,``).trim():Oa(t===void 0?Us(N(n?.__openclaw)):t)}function Gs(e){return Qe(N(e)?.role)}function Ks(e){let t=N(e);return(typeof t?.role==`string`?Bs(t.role):`unknown`)===`tool`||Vs(t)}function qs(e){let t=N(e),n=t?.type===`canvas`?N(t.preview):void 0;if(!n||n.kind!==`canvas`||n.surface===`tool_card`||n.render!==`url`)return null;let r={kind:`canvas`,surface:`assistant_message`,render:`url`};for(let e of[`title`,`url`,`viewId`,`className`,`style`]){let t=P(n,e);t!==void 0&&(r[e]=t)}let i=A(n.preferredHeight);i!==void 0&&(r.preferredHeight=i);let a=n.sandbox;(a===`strict`||a===`scripts`)&&(r.sandbox=a);let o=n.boardWidgetName;it(o)&&(r.boardWidgetName=o);let s=N(n.mcpApp),c=P(s,`viewId`);if(c?.trim()){r.mcpApp={viewId:c};for(let e of[`serverName`,`toolName`,`uiResourceUri`,`toolCallId`,`originSessionKey`]){let t=P(s,e);t!==void 0&&(r.mcpApp[e]=t)}}return r}function Js(e){let t=vs(e);return t?ic[t]:void 0}function Ys(e){let t=Js(e),n=fn(t);return{kind:!n||n===`sticker`||n===`unknown`?`document`:n,mimeType:t,label:(()=>{try{if(/^https?:\/\//i.test(e)){let t=new URL(e);return t.pathname.split(`/`).pop()?.trim()||t.hostname||e}}catch{}return e.split(/[\\/]/).pop()?.trim()||e})()}}function Xs(e){if(e.type!==`audio`)return null;let t=N(e.source);if(!t)return null;let n=P(t,`media_type`)?.trim(),r=n?.toLowerCase().startsWith(`audio/`)?n:`audio/mpeg`,i=t.type,a=P(t,i===`base64`?`data`:`url`)?.trim();return!a||i!==`base64`&&i!==`url`?null:{type:`attachment`,attachment:{url:i===`base64`&&!a.startsWith(`data:`)?`data:${r};base64,${a}`:a,kind:`audio`,label:P(e,`label`)?.trim()||`Audio`,mimeType:r,...e.isVoiceNote===!0?{isVoiceNote:!0}:{}}}}function Zs(e){let t=e.type,n=P(e,`url`)?.trim();if(t!==`audio`&&t!==`video`||!n)return null;let r={url:n,kind:t,label:P(e,`fileName`)?.trim()||P(e,`label`)?.trim()||(t===`audio`?`Audio`:`Video`)};for(let t of[`mimeType`,`artifactId`]){let n=P(e,t);n!==void 0&&(r[t]=n)}t===`audio`&&e.isVoiceNote===!0&&(r.isVoiceNote=!0);let i=e.playback;(i===`native`||i===`transcode`)&&(r.playback=i);for(let n of[`sizeBytes`,`durationMs`,`width`,`height`]){let i=A(e[n]);i!==void 0&&(n===`width`||n===`height`?t===`video`&&i>0:i>=0)&&(r[n]=i)}return{type:`attachment`,attachment:r}}function Qs(e){let t=[];for(let n of e){let e=t[t.length-1];if(n.type===`text`&&e?.type===`text`){e.text=[e.text,n.text].filter(e=>e!==void 0).join(`
`);continue}t.push(n)}return t.filter(e=>e.type!==`text`||!!e.text?.trim())}function $s(e,t){return e.map(e=>e.type!==`text`||typeof e.text!=`string`?e:{...e,text:t.toLowerCase()===`user`?_n(e.text):cn(e.text)}).filter(e=>e.type!==`text`||!!e.text?.trim())}function ec(e){let t=e?.replyToId?.trim();return t?{kind:`id`,id:t}:e?.replyToCurrent===!0?{kind:`current`}:null}function tc(e,t,n){let r=Ke(e),i=ht(r.text,{extractAudioDirectives:!1}),a=[],o=t?.audioAsVoice===!0,s=ec(t),c=i.segments??[{type:`text`,text:i.text}];for(let e of c){if(e.type===`media`){let t=Ys(e.url);a.push({type:`attachment`,attachment:{url:e.url,...t,...t.kind===`audio`&&o?{isVoiceNote:!0}:{}}});continue}e.text&&a.push({type:`text`,text:e.text})}for(let e of r.previews)e.surface!==`assistant_message`||n.some(t=>Is(e,t))||a.push({type:`canvas`,preview:{...e,surface:`assistant_message`},rawText:null});let l=Qs(a);return{content:l.length>0?l:s===null&&!o&&i.text.trim().length>0?[{type:`text`,text:i.text}]:[],audioAsVoice:o}}function nc(e){let t=N(e),n=t&&ac.get(t);if(n)return n;let r=N(tt($o(e)))??{},i=Hs(r),a=typeof r.content==`string`||Array.isArray(r.content)?r.content:typeof r.text==`string`?r.text:void 0,o=Array.isArray(a)?a:null,s=i===`assistant`,c=s?Ls(r.openclawDelivery):void 0,l=(o??[]).flatMap(e=>{let t=qs(e);return t?[t]:[]}),u=[],d=!1,f=ec(c);if(typeof a==`string`){if(s){let e=tc(a,c,l);u=e.content,d=e.audioAsVoice}else u=[{type:`text`,text:a}]}else o&&(u=o.flatMap(e=>{let t=N(e);if(!t)return[];let n=zs(t);if(n)return[n];let r=Ps(t);if(r)return[r];let a=t.type;if(a===`clawhub`){let e=s?Kr(t):null;return e?[e]:[]}let o=P(t,`text`);if(a===`thinking`){let e=P(t,`thinking`);return e===void 0?[]:[{type:a,thinking:e}]}if(s){let e=Zs(t);if(e)return[e];let n=Xs(t);if(n)return[n]}else if(a===`audio`)return[];if(a===`attachment`||a===`attachment_error`)return js(t)??[];if(a===`canvas`){let e=qs(t);return e?[{type:`canvas`,preview:e,rawText:P(t,`rawText`)??null}]:[]}if(o!==void 0&&(a===`text`||i===`user`&&a===`input_text`||i===`assistant`&&(a===`input_text`||a===`output_text`))){if(s){let e=tc(o,c,l);return d||=e.audioAsVoice,e.content}return[{type:`text`,text:o,name:void 0,args:void 0}]}return[{type:a||`text`,text:o,name:t.name,args:We(t)}]}));let p=A(r.timestamp)??Date.now(),m=P(r,`id`),h=N(r.__openclaw),g=P(h,`replyToId`)?.trim()??``;g&&(f={kind:`id`,id:g});let _=N(h?.replyToPreview),v=P(_,`text`)?.trim()??``,y=P(_,`senderLabel`)?.trim()??``,b=Us(h),x=Ws(r,b),S=b??(x?{name:x}:null),ee=i===`user`?Dt(r):[];u=$s(u,i);let C=Rs(r.senderSession),te={role:i,content:u,timestamp:p,id:m,senderLabel:x,...C?{senderSession:C}:{},...S?{sender:S}:{},...ee.length?{sourceClients:ee}:{},...d?{audioAsVoice:!0}:{},...v||y?{replyPreview:{text:v,...y?{senderLabel:y}:{}}}:{},...f?{replyTarget:f}:{}};return t&&A(r.timestamp)!==void 0&&ac.set(t,te),te}var rc,ic,ac;function oc(){return(oc=e((()=>{xn(),In(),Sn(),on(),nt(),Xe(),bt(),He(),at(),$e(),Ur(),ks(),ts(),Ms(),Fs(),Na(),rc=/\s+\(([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)$/iu,ic={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,webp:`image/webp`,gif:`image/gif`,heic:`image/heic`,heif:`image/heif`,ogg:`audio/ogg`,oga:`audio/ogg`,mp3:`audio/mpeg`,wav:`audio/wav`,flac:`audio/flac`,aac:`audio/aac`,opus:`audio/opus`,m4a:`audio/mp4`,m2a:`audio/mpeg`,mp4:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,pdf:`application/pdf`,txt:`text/plain`,md:`text/markdown`,csv:`text/csv`,json:`application/json`,zip:`application/zip`},ac=new WeakMap})))()}function sc(e){return e.orderKey??e.createdAt}function cc(e,t){return sc(e)-sc(t)}function lc(e){return!e.pendingRunId&&!e.intent&&(e.sendAttempts??0)===0&&(e.sendState===void 0||e.sendState===`waiting-idle`||e.sendState===`waiting-reconnect`||e.sendState===`failed`)}function uc(e,t=lc){let n=[],r=[];for(let i of e.toSorted(cc)){if(t(i)){r.push(i);continue}r.length>0&&(n.push(r),r=[])}return r.length>0&&n.push(r),n}function dc(e,t,n){let r=e.toSorted(cc),i=r.findIndex(e=>e.id===t),a=Math.min(Math.max(n,0),r.length-1);if(i<0||i===a)return[];let o=r.map(sc);for(let e=1;e<o.length;e+=1)o[e]=Math.max(o[e],o[e-1]+1);let s=r.splice(i,1)[0];return r.splice(a,0,s),r.flatMap((e,t)=>sc(e)===o[t]?[]:[{...e,orderKey:o[t]}])}function fc(){return(fc=e((()=>{})))()}var pc=t({createStoredChatOutboxReader:()=>mc});function mc(){let e=null,t,n=new Set,r,i,a=0,o=!0,s=!1,c,l,u,d=()=>{e=null},f=()=>{d();for(let e of n)try{e()}catch(e){console.error(`[openclaw] stored outbox reader listener failed`,e)}},p=()=>{a+=1,o=!0},m=e=>[e.settings?.gatewayUrl,e.assistantAgentId,e.agentsList,e.hello,e.client,e.client?.recoveryScope,e.client?.recoveryScopeReady,r?.recoveryScope,e.connected,i],h=n=>{let r=e,a=t?m(t):void 0;if(i=n,o=!1,r&&t&&a?.every((e,t)=>Object.is(e,r.inputs[t]))&&vc(t,i).draftSignature===r.draftSignature){r.inputs=m(t);return}f()},g=async()=>{if(s||!o||!r||!n.size)return;s=!0;let e=r,t=a;try{if(c??=await gr(()=>Promise.resolve().then(()=>(t_(),Ag)),void 0,import.meta.url),!n.size||(l??=c.subscribeDurableComposerDraftChanges(()=>{p(),g()}),t!==a))return;let r=await c.listDurableChatDraftPresence(e);if(t!==a)return;h(r.status===`ready`?r.presence:void 0)}catch{t===a&&h(void 0)}finally{s=!1,g()}};return{invalidate:d,subscribe(e){return n.add(e),u??=Oo(f),g(),()=>{n.delete(e),n.size||(u?.(),u=void 0,l?.(),l=void 0,p(),i=void 0,d())}},read(n){t=n;let a=Mo(n).gatewayOwner,o=to(n);(r?.gatewayOwner!==a||r?.recoveryScope!==o)&&(r=o?{gatewayOwner:a,recoveryScope:o}:void 0,i=void 0,p()),g();let s=m(n),c=e;return c&&s.every((e,t)=>Object.is(e,c.inputs[t]))?c.summary:(e={inputs:s,...vc(n,i)},e.summary)}}}function hc(e){let t=Be();if(!t)return[];try{let n=Mo(e),r=zo(t,n);if(No(r,e))try{Bo(t,n,r)}catch{}return Object.entries(r.sessions).flatMap(([t,n])=>{let r=H(t);return r?[{scope:r,session:{...n,queue:n.queue?.filter(t=>ro(e,t))}}]:[]})}catch{return[]}}function gc(e){return hc(e).flatMap(({scope:e,session:t})=>t.queue?.length?[{...e,queue:t.queue.toSorted(cc)}]:[]).toSorted((e,t)=>(e.queue[0]?.createdAt??2**53-1)-(t.queue[0]?.createdAt??2**53-1)||e.sessionKey.localeCompare(t.sessionKey))}function _c(e,t){return gc(e).find(e=>e.sessionKey===t.sessionKey&&e.agentId===t.agentId)}function vc(e,t){let n=new Map,r=new Map,i=new Map;for(let{scope:t,session:a}of hc(e)){let e=T(t);i.set(e,t),Jn(t.sessionKey)||r.set(e,{revision:a.draftRevision??0,active:V(a)});let o=n.get(e)??{all:new Set,attention:new Set};for(let e of a.queue??[])e.pendingRunId||(o.all.add(e.id),(e.sendState===`failed`||e.sendState===`unconfirmed`||e.sendState===`held`)&&o.attention.add(e.id));o.all.size&&n.set(e,o)}for(let[e,n]of t??[]){let t=H(e);t&&!Jn(t.sessionKey)&&n.revision>=(r.get(e)?.revision??0)&&(r.set(e,n),i.set(e,t))}let a=new Map,o=0;for(let[e,t]of n)o+=t.all.size,t.attention.size&&a.set(e,t.attention.size);let s=t=>T(g(e,t));return{draftSignature:JSON.stringify([...r].flatMap(([e,t])=>t.active?[e]:[]).toSorted()),summary:{total:o,sessions:[...i.entries()].filter(([e])=>r.get(e)?.active||a.has(e)).toSorted(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({sessionKey:t.sessionKey,agentId:t.agentId,hasComposerDraft:!!r.get(e)?.active,outboxAttentionCount:a.get(e)??0})),attentionCountForSession:e=>a.get(s(e))??0,hasSessionDraft:e=>!!r.get(s(e))?.active}}}function yc(){return(yc=e((()=>{nr(),ae(),lo(),Zo(),br()})))()}function bc(e,{readError:t=`Blob read failed`,invalidResultError:n=`Blob read returned no data`}={}){let r=e=>Error(typeof e==`function`?e():e);return new Promise((i,a)=>{let o=new FileReader;o.addEventListener(`error`,()=>a(o.error??r(t)),{once:!0}),o.addEventListener(`load`,()=>typeof o.result==`string`?i(o.result):a(r(n)),{once:!0}),o.readAsDataURL(e)})}function xc(){return(xc=e((()=>{})))()}function Sc(e){let t=j(e),n=t?.added,r=t?.removed;return typeof n==`number`&&Number.isInteger(n)&&n>=0&&typeof r==`number`&&Number.isInteger(r)&&r>=0?{added:n,removed:r}:void 0}function Cc(e){let t=0,n=0;for(let r of e)r.kind===`add`?t+=1:r.kind===`del`&&(n+=1);return{added:t,removed:n}}function wc(e){if(!e.trim())return null;let t=[],n=!1;for(let r of e.split(`
`)){if(!r)continue;if(/^\s*\.\.\.\(truncated\)\.\.\.\s*$/.test(r)){n=!0,t.push({kind:`skip`,text:``});continue}if(/^\s*\.\.\.\s*$/.test(r)){t.push({kind:`skip`,text:``});continue}let e=r.match(/^([+\- ])\s*(\d+) ?(.*)$/s);if(!e)return null;let[,i,a,o]=e;if(!i||!a)return null;if(t.push({kind:i===`+`?`add`:i===`-`?`del`:`ctx`,lineNo:Number.parseInt(a,10),text:o??``}),t.length>400){t.push({kind:`skip`,text:``}),n=!0;break}}return t.some(e=>e.kind===`add`||e.kind===`del`)?n?{kind:`truncated`,lines:t}:{kind:`complete`,lines:t,stat:Cc(t)}:null}function U(e){let t=e.replace(/\r\n/g,`
`).replace(/\r/g,`
`);if(t===``)return[];let n=t.split(`
`);return n.length>1&&n[n.length-1]===``&&n.pop(),n}function Tc(e,t){if(e.length<=400&&!t)return e;if(!e.some(e=>e.kind===`add`||e.kind===`del`))return t?[{kind:`skip`,text:``}]:[...e.slice(0,400),{kind:`skip`,text:``}];let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++){let r=e[t];if(!r||r.kind!==`add`&&r.kind!==`del`)continue;let i=Math.max(0,t-3),a=Math.min(e.length,t+4);n.fill(1,i,a)}let r=[],i=!1,a=t;for(let t=0;t<e.length;t++){if(n[t]===0){i=!0,a=!0;continue}if(i&&r.at(-1)?.kind!==`skip`&&r.push({kind:`skip`,text:``}),i=!1,r.length>=400){a=!0;break}let o=e[t];o&&r.push(o)}return a&&r.at(-1)?.kind!==`skip`&&r.push({kind:`skip`,text:``}),r}function Ec(e,t){let n=U(e),r=U(t),i=n.length>kc||r.length>kc,a=n.length===r.length&&n.every((e,t)=>e===r[t]),o=i&&!a,s=[],c=0;for(;c<Math.min(n.length,r.length,kc)&&n[c]===r[c];)s.push({kind:`ctx`,text:n[c]}),c++;let l=n.slice(c,kc),u=r.slice(c,kc),d=u.length+1,f=new Uint16Array((l.length+1)*d);for(let e=l.length-1;e>=0;e--)for(let t=u.length-1;t>=0;t--){let n=e*d+t;f[n]=l[e]===u[t]?(f[n+d+1]??0)+1:Math.max(f[n+d]??0,f[n+1]??0)}for(let e=0,t=0;e<l.length||t<u.length;){let n=l[e],r=u[t];n!==void 0&&n===r?(s.push({kind:`ctx`,text:n}),e++,t++):n!==void 0&&(r===void 0||(f[(e+1)*d+t]??0)>=(f[e*d+t+1]??0))?(s.push({kind:`del`,text:n}),e++):r!==void 0&&(s.push({kind:`add`,text:r}),t++)}let p=Tc(s,o);return o?{kind:`truncated`,lines:p}:{kind:`complete`,lines:p,stat:Cc(s)}}function Dc(e,t=80){let n=U(e),r=[];for(let[e,i]of n.slice(0,t).entries())r.push({kind:`add`,lineNo:e+1,text:i});return n.length>t&&r.push({kind:`skip`,text:``}),r}function Oc(e,t){let n=[],r=t?.truncated===!0||e.some(e=>e.kind===`truncated`),i=r;for(let t of e){if(t.lines.length===0)continue;if(n.length>0){if(n.length>=400){i=!0;break}n.push({kind:`skip`,text:``})}let e=400-n.length;if(t.lines.length>e){n.push(...t.lines.slice(0,e)),i=!0;break}n.push(...t.lines)}return i&&n.at(-1)?.kind!==`skip`&&n.push({kind:`skip`,text:``}),r?{kind:`truncated`,lines:n}:{kind:`complete`,lines:n,stat:e.reduce((e,t)=>({added:e.added+(t.kind===`complete`?t.stat.added:0),removed:e.removed+(t.kind===`complete`?t.stat.removed:0)}),{added:0,removed:0})}}var kc;function Ac(){return(Ac=e((()=>{kc=600})))()}function jc(e){let t=N(e)?.activity;return Array.isArray(t)?t.filter(e=>Ar(tn,e)):[]}function Mc(e){let t=Wt(e),n=Object.entries(t.counts).filter(([,e])=>e>0).map(([e,t])=>w(`chat.toolCards.activity.${e}${t===1?`One`:`Many`}`,{count:String(t)})).join(` · `),r=Object.entries(t.outcomes).filter(([,e])=>e>0).map(([e,t])=>({kind:e,label:w(e===`skipped`?`chat.toolCards.skippedCount`:`chat.toolCards.activity.${e}`,{count:String(t)})}));return{total:t.total,label:n,outcomes:r}}function Nc(e,t={}){let n=Mc(e);return[n.label,...n.outcomes.filter(({kind:e})=>t.includeInlineOutcomes!==!1||e!==`failed`&&e!==`skipped`).map(({label:e})=>e)].filter(Boolean).join(` · `)||w(`chat.toolCards.rawDetails`)}function Pc(){return(Pc=e((()=>{jr(),en(),Xt(),l()})))()}function Fc(e){return D(e.messageId)??D(M(e.__openclaw)?.id)}function Ic(e){let t=M(M(e)?.__openclaw),n=M(t?.toolOutput);return(n?.source===`provider-response`||n?.source===`execution`)&&n.modelInput===`unverified`?{source:n.source,modelInput:n.modelInput,...n.outcome===`unknown`?{outcome:`unknown`}:{},...n.captureTruncated===!0?{captureTruncated:!0}:{}}:void 0}function Lc(e){return Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`):[]}function Rc(e){if(typeof e!=`string`)return e;let t=e.trim();return t.startsWith(`{`)||t.startsWith(`[`)?Gn(t)??e:e}function zc(e){if(typeof e.text==`string`)return e.text;if(typeof e.content==`string`)return e.content;if(Array.isArray(e.content)){let t=e.content.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e.text;return typeof t==`string`?[t]:[]});if(t.length>0)return t.join(`
`)}}function Bc(...e){for(let t of e){let e=j(t),n=e?.exitCode??e?.exit_code;if(typeof n==`number`&&Number.isInteger(n))return n}}function Vc(e){if(e.activity)return e.activity.status===`skipped`;let t=j(e.details);return(e.live!==!0||e.completed===!0)&&t?.status===`skipped`&&t.deniedReason===`steering`}function Hc(e){if(Vc(e))return!1;if(e.activity)return e.activity.status===`failed`;let t=e.live!==!0||e.completed===!0;return e.isError??(t&&Ze(e.outputText))}function Uc(e,t){if(Vc(e))return`skipped`;if(e.toolOutput?.outcome===`unknown`)return Hc(e)?`failed`:`unknown`;if(e.activity)switch(e.activity.status){case`failed`:case`blocked`:return e.activity.status;case`completed`:return`succeeded`;case`running`:return t===!0&&e.live===!0?`running`:`unknown`;default:return t===!0&&e.live===!0&&e.completed!==!0?`running`:`unknown`}return Hc(e)?`failed`:t===!0&&e.live===!0&&e.completed!==!0?`running`:e.completed===!0||e.live!==!0&&e.outputText!==void 0?`succeeded`:`unknown`}function Wc(e){let t=rt(e);return t?.surface===`assistant_message`?{...t,surface:`assistant_message`}:void 0}function Gc(e,t,n,r=n){let i=Ue(e),a=i?.surface===`assistant_message`?{...i,surface:`assistant_message`}:Wc(t);if(a)return{preview:{...a,surface:`assistant_message`}};let o=M(M(e)?.browserTab),s=Fr(o);if(r!==`browser`||!o||!s)return{};let c=typeof o.url==`string`?vr(o.url,2048):``;return{browserTab:s,preview:bn(c)?{kind:`browser-tab`,...s,url:c,...typeof o.title==`string`?{title:vr(o.title,512)}:{}}:void 0}}function Kc(e,t){return qe(e)??E(e.callId)??E(t.toolCallId)??E(t.tool_call_id)??E(t.toolUseId)??E(t.tool_use_id)}function qc(e,t){return E(e.name)??E(t.toolName)??E(t.tool_name)??`tool`}function Jc(e){if(e!=null){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return typeof e==`bigint`?String(e):Object.prototype.toString.call(e)}}}function Yc(e){let t=Yt(e);return t===e?e:{...e,...t,inputText:Jc(t.args)}}function Xc(e){let t=e?.trim().replace(/\s+/g,` `);if(t)return t.replace(/^with\s+/i,``).trim()||t}function Zc(e){return Xc(e)?.toLowerCase().replace(/[\s._-]+/g,``)}function Qc(e,t){let n=Xc(e);if(!n)return;let r=Zc(n),i=Zc(t);return r&&i&&r===i?void 0:n}function $c(e){let t=Xc(e);if(t)return vr(t,120)}function el(e){if(!k(e))return;let t=e;for(let e of al){let n=t[e];if(typeof n!=`string`)continue;let r=n.search(/\S/),i;if(r>=0){let e=Math.max(n.lastIndexOf(`\r`,r),n.lastIndexOf(`
`,r))+1,t=/[\r\n]/g;t.lastIndex=r,i=n.slice(e,t.exec(n)?.index??n.length)}let a=$c(i?Se(i):void 0);if(a)return a}}function tl(e){return mt(e.type)||typeof e.name==`string`&&(e.arguments!=null||e.args!=null||e.input!=null)}function nl(e){let t=e,n=typeof t.role==`string`?t.role.toLowerCase():``,r=Gs(e)||n===`tool`||n===`function`||typeof t.toolName==`string`||typeof t.tool_name==`string`,i=Lc(t.content),a=et(t),o=t.__openclawToolStreamLive===!0,s=Sc(t.__openclawToolStreamDiffStat),c=[],l=new WeakSet,u=Fc(t),d=rn(t)?.runId??D(t.runId);for(let e=0;e<i.length;e++){let n=i[e]??{},f=D(n.runId)??d,p=D(n.parentToolCallId);if(tl(n)){let r=Rc(n.arguments??n.args??n.input),i=Kc(n,t),a=qc(n,t),l=n.details??t.details;c.push({id:i??`${a}:${e}`,...i?{callId:i}:{},...f?{runId:f}:{},...p?{parentToolCallId:p}:{},name:a,args:r,inputText:Jc(r),...l===void 0?{}:{details:l},...o?{live:!0,completed:t.__openclawToolStreamResultReceived===!0||t.__openclawToolStreamItemEnded===!0}:{},...s?{liveDiffStat:s}:{},messageId:u});continue}if(Qe(n.type)){let i=qc(n,t),s=Kc(n,t),d=s??`${i}:${e}`,m=c.find(e=>e.id===d)??c.find(e=>(!s||!e.callId)&&e.name===i&&e.outputText===void 0&&!l.has(e)),h=zc(n),g=M(n.__openclaw),_=g&&Object.hasOwn(g,`id`)?D(g.id):u,v=Ic(n)??Ic(t),y=(g&&Object.hasOwn(g,`truncated`)?g:M(t.__openclaw))?.truncated===!0,b=n.details??t.details,x=r?qc({},t):void 0,S=Gc(b,h,i,x&&x!==`browser`?x:m?.name??x??i),ee=et(n)??a,C=Bc(n,b,h?zn(h.trim()):void 0,t);if(m){l.add(m),m.callId??=s,m.runId??=f,m.parentToolCallId??=p,o||(m.completed=!0),m.outputText=h,m.resultMessageId=_,m.outputTruncated=y,m.toolOutput=v,m.preview=S.preview,m.browserTab=S.browserTab,b!==void 0&&(m.details=b),ee!==void 0&&(m.isError=ee),C!==void 0&&(m.exitCode=C);continue}c.push({id:d,...s?{callId:s}:{},...f?{runId:f}:{},...p?{parentToolCallId:p}:{},name:i,completed:!0,outputText:h,resultMessageId:_,outputTruncated:y,toolOutput:v,...b===void 0?{}:{details:b},messageId:u,...ee===void 0?{}:{isError:ee},...C===void 0?{}:{exitCode:C},...S})}}if(r&&c.length===0){let r=typeof t.toolName==`string`&&t.toolName||typeof t.tool_name==`string`&&t.tool_name||`tool`,i=zc(t),o=Kc({},t),s=Bc(t,t.details,i?zn(i.trim()):void 0);c.push({id:o??`${qc({},t)}:0`,...o?{callId:o}:{},...d?{runId:d}:{},name:r,completed:Gs(e)||n===`tool`||n===`function`,outputText:i,resultMessageId:u,outputTruncated:M(t.__openclaw)?.truncated===!0,toolOutput:Ic(t),...t.details===void 0?{}:{details:t.details},messageId:u,...a===void 0?{}:{isError:a},...s===void 0?{}:{exitCode:s},...Gc(t.details,i,r)})}let f=new Map(jc(e).filter(e=>!e.suppressChannelProgress).map(e=>[e.toolCallId??e.itemId,e])),p;for(let[e,t]of c.entries()){let n=t.callId?f.get(t.callId):void 0;n&&(t.activity=n),!(!t.browserTab||t.callId||t.messageId)&&(p??=++ol,t.previewRevision=`${p}:${e}`)}return c}function rl(e){if(!e||typeof e!=`object`)return nl(e);let t=sl.get(e);if(t)return t;let n=nl(e);return sl.set(e,n),n}function il(e,t){let n=cl.get(e),r=n?.get(t);if(r)return r;let i=nl({...e,content:[t]});return n||(n=new WeakMap,cl.set(e,n)),n.set(t,i),i}var al,ol,sl,cl;function ll(){return(ll=e((()=>{un(),hn(),dr(),pn(),nt(),He(),Pr(),ke(),oc(),Ac(),Pc(),al=[`message`,`prompt`,`task`,`query`,`text`,`description`],ol=0,sl=new WeakMap,cl=new WeakMap})))()}var ul,dl;function fl(){return(fl=e((()=>{x(),ul={chat:{providerReview:{pausedTitle:`Chat paused as a precaution`,stoppedTitle:`Chat stopped as a precaution`,pausedBody:`The provider could not confirm the agent was interpreting your instructions correctly. Review its findings before deciding to continue.`,stoppedBody:`The provider stopped this chat without reviewable findings. This conversation remains stopped; no continuation is available.`,stoppedWithFindingsBody:`The provider stopped this conversation. Review its findings before starting further work.`,review:`Review findings`,findings:`Provider findings`,continuationTitle:`Continuation message`,continuationBody:`Acknowledging sends this exact provider-supplied message:`,acknowledge:`Acknowledge findings and continue`,continuing:`Requesting continuation…`,waiting:`Continuation requested. Waiting for the provider to accept it.`,checkStatus:`Check continuation status`,checkingStatus:`Checking continuation status…`,refreshFailed:`Continuation was requested, but its status could not be refreshed. Check again to see whether it was accepted.`,noContinuation:`Continuation is not available for this conversation. It remains stopped.`,continuationFailed:`Continuation was not accepted. This conversation remains paused.`,queueHelp:`Queued messages stay held. Review and retry each message separately after continuation is accepted.`,queueStopped:`Queued messages remain held.`,queueHoldFailed:`Could not save the queued-message review hold. Free browser storage and try again. No continuation was sent.`,queuedInputHeld:`Held when the provider paused this conversation. Review the findings, then retry this message separately if it is still needed.`}}},dl=Object.assign(()=>Object.assign(_.chat,ul.chat),{catalog:ul})})))()}function pl(e,t,n=ze().resourceBasePath){try{let r=new URL(e,vl),i=At();if(i){let e=new URL(i.gatewayUrl).pathname.replace(/\/$/u,``),t=cr(r.pathname,e);t&&(r.pathname=`${e}${t}`);let n=r.origin===vl?`${r.pathname}${r.search}`:r.href;r=new URL(Ot(n),vl)}let a=r.origin===vl,o=cr(r.pathname,n),s=qn(`agentAvatar`,r.pathname,n),c=o?`${n}${o}`:s.matched&&s.value?er(`agentAvatar`,n,s.value):null;if(!c)return null;let l=`${c}${r.search}`;return a?t?new URL(l,t).toString():l:t&&r.origin===t?t+l:null}catch{return null}}function ml(e){return e.trim().split(/\s+/u).filter(Boolean).slice(0,2).map(e=>h(e,1)).join(``).toUpperCase()||`?`}function hl(e){let t=e.id?.trim(),n=Oa(e)??`?`;return{kind:`initials`,initials:ml(n),colorSeed:o(t||n)}}function gl(e){return hl(e).colorSeed%360}function _l(e){let t=e.identity;if(t&&t.type!==`profile`&&t.type!==`agent`)return hl(e);let{origin:n,resourceBasePath:r}=ze(),i=e.profileAvatarUrl?.trim();if(i){let e=pl(i,n);if(e&&(!t||qn(t.type===`agent`?`agentAvatar`:`userAvatar`,new URL(e,vl).pathname,r).matched))return{kind:`profile`,url:e}}if(t?.type===`profile`){let e=pl(Nn(t.id),n);if(e)return{kind:`profile`,url:e}}return hl(e)}var vl;function yl(){return(yl=e((()=>{Qn(),Sr(),Na(),le(),ie(),vl=`https://origin-probe.invalid`})))()}function bl(){Ol+=1;for(let e of W.values())e.blobUrl&&URL.revokeObjectURL(e.blobUrl);W.clear()}function xl(){for(let[e,t]of W){if(W.size<=Tl)break;!t.settled||t.references>0||(W.delete(e),t.blobUrl&&URL.revokeObjectURL(t.blobUrl))}}function Sl(e){let t=W.get(e);if(W.delete(e),t&&(t.retryAt===void 0||Date.now()<t.retryAt))return W.set(e,t),t.blobUrl??t.promise;let n={blobUrl:null,references:0,settled:!1,promise:Promise.resolve(null)};return n.promise=(async()=>{try{let t=await b(e,El);if(!t.ok)return null;let r=await t.blob();if(r.size===0||r.size>2097152||!fr(r.type))return null;let i=URL.createObjectURL(r);return W.get(e)===n?(n.blobUrl=i,xl(),i):(URL.revokeObjectURL(i),null)}catch{return null}finally{!n.blobUrl&&W.get(e)===n&&(n.settled=!0,n.retryAt=Date.now()+Dl,xl())}})(),W.set(e,n),xl(),n.promise}function Cl(e){let{authTokens:t,origin:n,resourceBasePath:r}=ze(),i=pl(e,n,r);return i?n||t.length?Sl(i):i:null}function wl(e){let t=e?[...W.values()].find(t=>t.blobUrl===e||t.promise===e):void 0;if(!t)return()=>void 0;t.references+=1;let n=!1;return()=>{n||(n=!0,--t.references,t.settled=!0,xl())}}var Tl,El,Dl,W,Ol,kl;function Al(){return(Al=e((()=>{Fn(),ie(),yl(),Tl=128,El=3e4,Dl=6e4,W=new Map,Ol=0,a(bl),kl=class{constructor(e){this.host=e,this.connected=!1,this.routes=new Map,this.activeRoutes=null,this.generation=Ol,e.addController(this)}hostConnected(){this.connected=!0,this.unsubscribeGatewayReset=a(()=>this.host.requestUpdate()),this.host.requestUpdate()}hostDisconnected(){this.connected=!1,this.unsubscribeGatewayReset?.(),this.unsubscribeGatewayReset=void 0,this.clearRoutes()}clearRoutes(){for(let e of this.routes.values())e.release?.();this.routes.clear()}withActiveRoutes(e){this.activeRoutes=new Set;try{return e()}finally{for(let[e,t]of this.routes)this.activeRoutes.has(e)||(t.release?.(),this.routes.delete(e));this.activeRoutes=null}}imageErrorHandler(e){let t=this.routes.get(e);return()=>{t?.url&&this.connected&&this.generation===Ol&&this.routes.get(e)===t&&(t.url=null,this.host.requestUpdate())}}resolve(e){if(!this.connected)return null;this.generation!==Ol&&(this.clearRoutes(),this.generation=Ol),this.activeRoutes?.add(e);let t=e.startsWith(`/`)?Cl(e):e,n=this.routes.get(e);if(n&&n.result===t)return n.url;let r={url:e,result:t,release:wl(t)};this.routes.set(e,r);let i=t=>{if(this.generation!==Ol||this.routes.get(e)!==r){r.release?.();return}r.url=t};return typeof t==`string`||t===null?i(t):t.then(t=>{i(t),this.connected&&this.routes.get(e)===r&&this.host.requestUpdate()}),n?.release?.(),r.url}}})))()}function jl(e,t,n={}){return Lt`<span
class="${t} hover-marquee ${n.loop?`hover-marquee--loop`:``}"
dir=${n.loop?`auto`:Vt}
${Rl(n,t)}
><span class="hover-marquee__text">${e}</span></span
>`}var Ml,Nl,Pl,Fl,Il,Ll,Rl;function zl(){return(zl=e((()=>{Ht(),Ut(),Rt(),Ml=40,Nl=500,Pl=.4,Fl=new Set,Ll=class extends zt{constructor(...e){super(...e),this.visible=!1,this.readyToScroll=!1,this.options={},this.shift=0,this.schedule=()=>{this.isConnected&&(Fl.add(this.measure),Il===void 0&&(Il=requestAnimationFrame(()=>{Il=void 0;let e=[...Fl];Fl.clear(),e.map(e=>e()).forEach(e=>e?.())})))},this.measure=()=>{let e=this.label;if(!this.isConnected||!e?.isConnected||((!this.host||this.options.loop)&&!this.visibilityObserver&&(this.visibilityObserver=new IntersectionObserver(e=>{for(let t of e)this.visible=t.isIntersecting;this.schedule()}),this.visibilityObserver.observe(e)),!this.host&&!this.visible))return;if(!this.host){if(this.text=e.querySelector(`.hover-marquee__text`)??void 0,this.host=e.closest(`.session-row-host, .sidebar-recent-sessions__head, .sidebar-identity-card, .sidebar-agent-card__main, .sidebar-workspace-header__main`)??void 0,!this.host||!this.text)return;for(let e of[`pointerenter`,`pointerleave`,`focusin`,`focusout`])this.host.addEventListener(e,this.schedule);this.motion=matchMedia(`(prefers-reduced-motion: reduce)`),this.motion.addEventListener(`change`,this.schedule),this.observer=new ResizeObserver(this.schedule),this.observer.observe(e),this.observer.observe(this.text),this.contentObserver=new MutationObserver(this.schedule),this.contentObserver.observe(e,{childList:!0,characterData:!0,subtree:!0,attributes:!0,attributeFilter:[`dir`]}),this.contentObserver.observe(this.host,{attributes:!0,attributeFilter:[`aria-expanded`,`dir`]}),this.contentObserver.observe(e.ownerDocument.documentElement,{attributes:!0,attributeFilter:[`dir`]})}!this.options.loop&&this.visibilityObserver&&(this.visibilityObserver.disconnect(),this.visibilityObserver=void 0,this.visible=!0);let t=e.clientWidth;if(t<=0)return()=>this.clearOverflow(e);let n=this.text,r=getComputedStyle(e),i=Number.parseFloat(r.paddingLeft)+Number.parseFloat(r.paddingRight),a=r.whiteSpace===`nowrap`?n.scrollWidth+i-t:0,o=a>+!this.options.loop;if(!o)return()=>this.clearOverflow(e);if(!(this.host.matches(`:hover, :focus-visible`)||this.host.querySelector(`:focus-visible`)||this.options.loop&&this.host.getAttribute(`aria-expanded`)===`true`)||!this.visible||this.motion?.matches)return()=>{e.classList.toggle(`hover-marquee--overflowing`,o),this.stop()};let s=Number.parseFloat(r.getPropertyValue(`--hover-marquee-fade-width`)),c=(a+(this.options.loop?0:s))*(r.direction===`rtl`?1:-1),l=e.classList.contains(`hover-marquee--scrolling`),u;if(c!==this.shift||!l){let e=getComputedStyle(n).transform,t=e===`none`?0:new DOMMatrixReadOnly(e).m41;u=(this.options.loop?Math.abs(c)/Pl:Math.abs(c-t))/(this.options.speed??Ml)*1e3}return()=>{e.classList.toggle(`hover-marquee--overflowing`,o),u!==void 0&&(e.style.setProperty(`--hover-marquee-shift`,`${c}px`),e.style.setProperty(`--hover-marquee-duration`,`${u}ms`),this.shift=c),this.readyToScroll?(this.readyToScroll=!1,e.classList.add(`hover-marquee--scrolling`)):this.timer===void 0&&!l&&(this.timer=window.setTimeout(()=>{this.timer=void 0,this.readyToScroll=!0,this.schedule()},this.options.delay??Nl))}}}render(e,t){return Vt}update(e,[t,n]){return this.label=e.element instanceof HTMLElement?e.element:void 0,(!this.host||n!==this.className||t.delay!==this.options.delay||t.speed!==this.options.speed||t.loop!==this.options.loop)&&this.schedule(),this.options={...t},this.className=n,Vt}reconnected(){this.schedule()}disconnected(){Fl.delete(this.measure),Fl.size===0&&Il!==void 0&&(cancelAnimationFrame(Il),Il=void 0),this.stop(),this.observer?.disconnect(),this.observer=void 0,this.contentObserver?.disconnect(),this.contentObserver=void 0,this.visibilityObserver?.disconnect(),this.visibilityObserver=void 0,this.visible=!1,this.motion?.removeEventListener(`change`,this.schedule);for(let e of[`pointerenter`,`pointerleave`,`focusin`,`focusout`])this.host?.removeEventListener(e,this.schedule);this.host=void 0}clearOverflow(e){e.classList.toggle(`hover-marquee--overflowing`,!1),this.stop(),e.style.removeProperty(`--hover-marquee-shift`),e.style.removeProperty(`--hover-marquee-duration`),this.shift=0}stop(){window.clearTimeout(this.timer),this.timer=void 0,this.readyToScroll=!1,this.label?.classList.remove(`hover-marquee--scrolling`)}},Rl=Bt(Ll)})))()}function Bl(e,t,n){if(e instanceof MouseEvent){e.preventDefault(),e.stopPropagation(),n(t,e.clientX,e.clientY);return}let r=e.key===`ContextMenu`||e.key===`F10`&&e.shiftKey;if(e.altKey||e.ctrlKey||e.metaKey||!r||!t&&!(e.target instanceof HTMLElement))return;e.preventDefault(),e.stopPropagation();let i=t??e.target,a=i.getBoundingClientRect();n(i,a.right,a.bottom+4)}function Vl(){return(Vl=e((()=>{or()})))()}function Hl(e,t){return e<t?-1:+(e>t)}function Ul(e){return ru&&nu===e?ru:(nu=e,ru=qr(Pt(e)??[]),ru)}function Wl(e,t=e.id){let n=e.id===Jt;return{name:n?w(`presence.sharedOwner.name`):e.name??e.email??t,isSharedOwner:n}}function Gl(e){return Wl(e).name}function Kl(e){let t=(e.entries??[]).flatMap(e=>e.reason!==`disconnect`&&e.lastActivityAt!==void 0&&Number.isFinite(e.lastActivityAt)?[e.lastActivityAt]:[]);return t.length?Math.max(...t):void 0}function ql(e,t=Date.now()){let n=Kl(e);return n===void 0?`unknown`:t-n<12e4?`active`:`idle`}function Jl(e){return w(e===`active`?`presence.onlineActive`:e===`idle`?`presence.onlineIdle`:`presence.rosterTitle`)}function Yl(e,t,n){let r={active:0,idle:1,unknown:2},i=r[ql(e,n)]-r[ql(t,n)];return i===0?Hl(Gl(e).toLowerCase(),Gl(t).toLowerCase())||Hl(ni(e),ni(t)):i}function Xl(e,t){return t?.type===`profile`&&e.identity?.id===t.id}function Zl(e,t,n,r,i=[]){let a=kt({snapshotUser:t,presenceEntries:Pt(e),presenceInstanceId:n}),o=a?ni(a):void 0;return Ul(e).users.filter(e=>ni(e)!==o&&!i.some(t=>Xl(e,t))&&(r===void 0||e.watchedSessions.includes(r)))}function Ql(e){let t=Date.now();return Ul(e).users.toSorted((e,n)=>Yl(e,n,t))}function $l(e,t,n,r){return Zl(e,t,n,r).length>0}function eu(e){return Ul(e).users.length>=2}var tu,nu,ru;function iu(){return(iu=e((()=>{vn(),Hr(),l(),tu=12e4})))()}function au(e,t){return t?{sessionKey:e,...t.agentId?{agentId:t.agentId}:{},runId:t.runId,revision:t.revision,updatedAt:t.updatedAt,headline:t.headline,health:t.health}:null}function ou(e){return e===`stuck`||e===`waiting-on-user`}function su(e){return e.localRunId?e.localRunId:!e.session?.hasActiveRun||!e.digest?.runId?null:e.session.activeRunIds?.includes(e.digest.runId)?e.digest.runId:null}function cu(e,t){return e?t?e.revision===t.revision?e.updatedAt>=t.updatedAt?e:t:e.revision>t.revision?e:t:e:t??null}function lu(){return(lu=e((()=>{})))()}function uu(e,t=300){let n=On(e,{mode:`message`}),r=n.didStrip&&/^[*`~_]+$/.test(n.text)?``:n.text;return{shouldSkip:n.shouldSkip||n.didStrip&&r.length<=t,text:r}}function du(e){if(typeof e==`string`)return{text:e,hasVisibleNonTextContent:!1};if(!Array.isArray(e))return{text:``,hasVisibleNonTextContent:e!=null};let t=!1,n=[];return e.forEach(e=>{let r=_r(e);r?.type===`text`&&typeof r.text==`string`?n.push(r.text):r?.type!==`thinking`&&r?.type!==`reasoning`&&(t=!0)}),{text:n.join(``),hasVisibleNonTextContent:t}}function fu(e){let t=_r(e);if(!t||F(t.role)!==`assistant`||typeof t.senderLabel==`string`&&t.senderLabel.trim())return!1;let{text:n,hasVisibleNonTextContent:r}=du(typeof t.content==`string`||Array.isArray(t.content)?t.content:t.text);return!r&&n.trim().length>0&&uu(n).shouldSkip}function pu(){return(pu=e((()=>{wn()})))()}var mu,hu;function gu(){return(gu=e((()=>{x(),mu={sessionsView:{searchPeople:`Search people and agents…`,noPeopleMatch:`No matching people or agents`}},hu=Object.assign(()=>{Object.assign(_.sessionsView,mu.sessionsView)},{catalog:mu})})))()}function _u(e,t,n){let r=t.replaceAll(`\\`,`/`);return`${e}://file${(r.startsWith(`/`)?r:`/${r}`).split(`/`).map((e,t)=>t===1&&/^[a-z]:$/i.test(e)?e:encodeURIComponent(e)).join(`/`)}${n?`:${n}`:``}`}function vu(e,t,n){return window.open(_u(e,t,n))}var yu,bu;function xu(){return(xu=e((()=>{yu=[`cursor`,`vscode`,`windsurf`,`zed`],bu={cursor:`Cursor`,vscode:`VS Code`,windsurf:`Windsurf`,zed:`Zed`}})))()}var Su,Cu;function wu(){return(wu=e((()=>{x(),Su={mcpApp:{title:`MCP App`,catalogTitle:`Plugin apps`,catalogDescription:`Open an app directly, without sending a message to your agent.`,open:`Open app`,threadApps:`Conversation apps`,empty:`No plugin apps are available for this agent.`,loading:`Loading plugin apps…`,disconnected:`Connect to the Gateway to use plugin apps.`,configure:`Configure MCP servers`,settings:`App settings`,onboarding:`Set up app`,settingsSaved:`App settings saved.`,settingsDescription:`These settings are provided by the app. Changes are sent only when you save.`,save:`Save settings`,actionComplete:`App action completed.`,resources:`App resources`,resourceSearch:`Search app resources`,resourceQuery:`Search resources…`,resourceDescription:`Attach a resource reference from an app. This does not mention or notify a person.`,noResources:`No matching resources.`,attach:`Attach resource`,contextTitle:`App context`,contextDescription:`Included with your next message. Apps can replace their own context; you can remove it here.`,removeContext:`Remove {title}`,textContent:`Text`,imageContent:`Image`,resourceContent:`Resource`,openWith:`Open with app`,fileViewer:`App file viewer`,invalidLink:`This app link is invalid or the app is unavailable.`,close:`Close app`,retry:`Try again`,relaunch:`Relaunch`,sessionEnded:`This app session ended. Relaunch to interact`,reconstructed:`Send a message to interact again`,newConversation:`Start a new conversation`,confirmMessage:`Send this message to the assistant?`,sendMessage:`Send`,cancel:`Cancel`,confirmFile:`Open this file?`,openFile:`Open`,unavailable:`MCP App unavailable: {error}`,errors:{sessionUnavailable:`The App conversation could not be opened`,gatewayUnavailable:`MCP App gateway unavailable`,mountUnavailable:`MCP App mount unavailable`,sandboxTimedOut:`MCP App sandbox timed out`,sandboxUnavailable:`MCP App sandbox unavailable`,initializationTimedOut:`MCP App initialization timed out`,requestFailed:`Request failed`,unsupportedResources:`This app returned an unsupported resource list`,invalidSandboxUrl:`MCP App sandbox URL is invalid`}}},Cu=Object.assign(()=>Object.assign(_.mcpApp,Su.mcpApp),{catalog:Su})})))()}var Tu;function Eu(){return(Eu=e((()=>{jt(),l(),je(),Mn(),Tu=class{constructor(e,t,n,r=()=>!1){this.host=e,this.context=t,this.target=n,this.prepareSession=r,this.servers=[],this.onboarding=[],this.loading=!1,this.error=null,this.generation=0,this.identity=``,this.preparedSessionIdentity=``,this.cleanup=[],this.connected=!1,e.addController(this)}get available(){return jn(this.context()?.gateway.snapshot??{},`mcp.app.discover`)===!0}hostConnected(){this.connected=!0}hostUpdate(){let e=this.context();if(e){if(!this.cleanup.length){let t=()=>{this.sync(),this.host.requestUpdate()};this.cleanup.push(e.gateway.subscribe(t)),this.cleanup.push(e.agentSelection.subscribe(t)),this.cleanup.push(e.gateway.subscribeEvents(e=>{e.event===`config.changed`&&this.refresh()}))}this.sync()}}hostDisconnected(){this.connected=!1,this.generation++,this.identity=``,this.preparedSessionIdentity=``;for(let e of this.cleanup.splice(0))e()}sync(){let e=this.context();if(!e)return;let t=e.gateway,n=this.target(),r=JSON.stringify([Ft(t).key,t.snapshot.phase===`connected`,this.available,n.agentId,n.sessionKey]);r!==this.identity&&(this.identity=r,this.generation++,this.servers=[],this.onboarding=[],this.error=null,this.loading=!1,t.snapshot.phase===`connected`&&this.available&&n.sessionKey&&this.refresh())}async refresh(){let e=this.context(),t=e?.gateway.snapshot.client,n=this.target();if(!e||!t||e.gateway.snapshot.phase!==`connected`||!this.available||!n.sessionKey)return;let r=++this.generation,i=Ft(e.gateway).key;this.loading=!0,this.error=null,this.host.requestUpdate();let a=()=>this.connected&&r===this.generation&&t===e.gateway.snapshot.client&&i===Ft(e.gateway).key&&JSON.stringify(n)===JSON.stringify(this.target());try{if(this.prepareSession()&&this.preparedSessionIdentity!==this.identity){let t={key:n.sessionKey,agentId:n.agentId},r=await e.sessions.describe(t);if(!a())return;if(!r.session){let n=await e.sessions.createResult(t,{reconciliation:`background`});if(!a())return;if(!n)throw Error(e.sessions.state.error??w(`mcpApp.errors.sessionUnavailable`))}this.preparedSessionIdentity=this.identity}let r=await t.request(`mcp.app.discover`,n);a()&&(this.servers=r.servers,this.onboarding=r.onboarding??[])}catch(e){a()&&(this.error=ye(e))}finally{a()&&(this.loading=!1,this.host.requestUpdate())}}}})))()}var Du,Ou;function ku(){return(ku=e((()=>{x(),Du={connection:{scopeUpgrade:{limited:`This browser has limited access.`,guidance:`This browser has limited access. Manage it with openclaw devices on the Gateway or from Devices on an admin browser.`,status:`Limited access`,inboxState:`Administrator access required`,showDetails:`Show limited access details`,closeDetails:`Close limited access details`,request:`Request admin`,requesting:`Requesting administrator access…`,requestingAction:`Requesting…`,pending:`Approve this browser by running {command} on the Gateway or from Devices on an admin browser. Retry reattaches to the request; Cancel stops waiting.`,retry:`Retry`,cancel:`Cancel`,rejected:`The administrator access request was rejected.`,expired:`The administrator access request expired.`,error:`Administrator access request failed: {error}`}},attention:{cronErrorUnknown:`Unknown error`,cronFailed:`{job} failed`,cronOverdue:`{job} overdue`,automationFailed:`Failed · {time}`,automationOverdue:`Overdue · {time}`,failed:`Failed`,overdue:`Overdue`,dismissItem:`Dismiss {item}`,dismissShown:`Dismiss shown`,emptyTitle:`Nothing waiting`,emptyBody:`New requests and alerts land here.`,issues:`Inbox`,issueCount:`{count} inbox item`,issueCountPlural:`{count} inbox items`,tabs:{label:`Inbox categories`,all:`All`,approvals:`Approvals`,mentions:`Mentions`,automations:`Automations`,system:`System`},mentions:{from:`{sender} mentioned you`,open:`Open`,dismiss:`Dismiss`,dismissing:`Dismissing…`,emptyTitle:`No mentions yet`,emptyBody:`When someone mentions you in a chat, it appears here.`,retention:`Mentions expire after 7 days.`,notifications:`Notification settings`,loading:`Loading mentions…`,unavailable:`Sign in and connect to the Gateway to see your mentions.`,refresh:`Refresh mentions`,error:`Mentions could not be updated. Refresh or try dismissing again.`},outbox:{conversation:`Conversation`,failed:`Your message wasn’t sent`,unconfirmed:`Your message may not have arrived`,commandFailed:`Your command failed`,commandUnconfirmed:`Your command may not have run`,review:`Review in chat`,reviewShort:`Review`,reviewHint:`Open the conversation to review it before trying again.`,checkBeforeRetry:`Open the conversation to check whether it arrived before trying again.`,checkCommandBeforeRetry:`The command may already have run. Review the conversation before retrying.`,offline:`Offline`,offlineHint:`Offline: reconnect before retrying.`},modelAuthExpired:`Model auth expired: {providers}`,authExpired:`Auth expired`,modelAuthExpiredState:`Auth expired · {time}`,modelAuthExpiredWithScope:`{scope} · Auth expired · {time}`,reconnect:`Reconnect`,pendingApproval:`{count} pending approval`,pendingApprovals:`{count} pending approvals`,alerts:{updateQuestion:`These are the available update facts:
{facts}
Summarize what is new and whether anything needs my attention before updating.`,cronFailedQuestion:`These automations failed:
{facts}
Explain why they failed and how to fix them.`,cronOverdueFact:`{job}: {duration} late`,cronOverdueQuestion:`These automations are overdue:
{facts}
Explain why they have not run and how to fix them.`,modelAuthExpiredQuestion:`These model-provider credentials need attention:
{facts}
Explain what expired and how to re-authenticate them.`}}},Ou=Object.assign(()=>{Object.assign(_.connection,Du.connection),_.attention=Du.attention},{catalog:Du})})))()}function Au(e,t,n=!1){let r=e.trim();if(n&&!ju.test(r)&&(r=String(Number(r))),!ju.test(r))return;let[i,a=``]=r.split(`.`),o=(i||`0`).replace(/^0+/u,``)||`0`,s=a.replace(/0+$/u,``);if(o.length>16||s.length>10)return;let c=10n**BigInt(s.length),l=(BigInt(o)*c+BigInt(s||`0`))*BigInt(Mu[t]);if(l%c!==0n)return;let u=l/c;return u>0n&&u<=BigInt(864e13)?Number(u):void 0}var ju,Mu;function Nu(){return(Nu=e((()=>{In(),ju=/^(?:\d+(?:\.\d*)?|\.\d+)$/u,Mu={seconds:1e3,minutes:6e4,hours:36e5,days:864e5}})))()}function Pu(e){let t=Date.parse(e);if(!Number.isFinite(t))return``;let n=new Date(t);return`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}T${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`}function Fu(e){return e%864e5==0?{everyAmount:String(e/864e5),everyUnit:`days`}:e%36e5==0?{everyAmount:String(e/36e5),everyUnit:`hours`}:e%6e4==0?{everyAmount:String(e/6e4),everyUnit:`minutes`}:{everyAmount:Iu(e),everyUnit:`seconds`}}function Iu(e){let t=BigInt(e),n=t/1000n,r=t%1000n;return r===0n?String(n):`${n}.${r.toString().padStart(3,`0`).replace(/0+$/u,``)}`}function Lu(e){if(e===0||typeof e!=`number`||!Number.isFinite(e)||e<0)return{scheduleExact:e===0,staggerAmount:``,staggerUnit:`seconds`};let t=e%6e4==0;return{scheduleExact:!1,staggerAmount:t?String(e/6e4):Iu(e),staggerUnit:t?`minutes`:`seconds`}}function Ru(e,t){let n=t.schedule;if(e.scheduleKind!==n.kind)return!1;if(n.kind===`at`)return e.scheduleAt===Pu(n.at);if(n.kind===`every`)return Au(e.everyAmount,e.everyUnit)===n.everyMs;if(n.kind===`cron`){let t=Lu(n.staggerMs);return e.cronExpr.trim()===n.expr&&e.cronTz.trim()===(n.tz??``)&&e.scheduleExact===t.scheduleExact&&e.staggerAmount.trim()===t.staggerAmount&&e.staggerUnit===t.staggerUnit}return!0}function zu(e,t){if(e.scheduleKind===`at`){let t=Date.parse(e.scheduleAt);if(!Number.isFinite(t))throw Error(w(`cron.errors.invalidRunTime`));return{kind:`at`,at:new Date(t).toISOString()}}if(e.scheduleKind===`every`){let t=Au(e.everyAmount,e.everyUnit);if(t===void 0)throw Error(w(`cron.errors.invalidIntervalAmount`));return{kind:`every`,everyMs:t}}let n=e.cronExpr.trim();if(!n)throw Error(w(`cron.errors.cronExprRequiredShort`));let r,i=e.staggerAmount.trim();if(e.scheduleExact)r=0;else if(!i){let e=t?.kind===`cron`&&t.expr===n&&t.staggerMs!==void 0;r=yt(n)??(e?0:void 0)}else if(r=Au(i,e.staggerUnit,!0),r===void 0)throw Error(w(`cron.errors.invalidStaggerAmount`));return{kind:`cron`,expr:n,tz:e.cronTz.trim()||void 0,staggerMs:r}}function Bu(){return(Bu=e((()=>{dt(),l(),Nu()})))()}function Vu(e){return k(e)?e.kind===`systemEvent`?typeof e.text==`string`:e.kind===`agentTurn`?typeof e.message==`string`:e.kind===`command`?Array.isArray(e.argv)&&e.argv.every(e=>typeof e==`string`):e.kind===`script`?typeof e.script==`string`:pt(e.kind):!1}function Hu(e){let t=e.payload;return Vu(t)?t:null}function Uu(){return(Uu=e((()=>{})))()}function Wu(e,t){if(!k(e)||!Array.isArray(e.jobs)||typeof e.snapshotRevision!=`string`||e.snapshotRevision.length===0||typeof e.total!=`number`||!Number.isSafeInteger(e.total)||e.total<0||typeof e.offset!=`number`||!Number.isSafeInteger(e.offset)||e.offset<0||typeof e.limit!=`number`||!Number.isSafeInteger(e.limit)||e.limit<1||e.limit>t||e.jobs.length>e.limit||typeof e.hasMore!=`boolean`||e.nextOffset!==null&&(typeof e.nextOffset!=`number`||!Number.isSafeInteger(e.nextOffset)||e.nextOffset<0))throw Error(`cron.list returned an invalid inventory page`);return e}function Gu(e,t){let n=t+e.jobs.length;if(e.offset!==t||!Number.isSafeInteger(n)||n>e.total||(e.hasMore?e.nextOffset!==n||n<=t||n>=e.total:e.nextOffset!==null||n!==e.total))throw Error(`cron.list returned an invalid inventory page`)}function Ku(e,t){e.cronJobsReloadPending||(e.cronJobsReloadPending=!0,e.cronJobsReloadPendingTableFilters=t)}async function qu(e,t){if(!e.cronJobsReloadPending)return;let n=e.cronJobsReloadPendingTableFilters;e.cronJobsReloadPending=!1,e.cronJobsReloadPendingTableFilters=!1,await Qu(e,t,{tableFilters:n})}function Ju(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0}function Yu(e){if(!k(e))return!1;let t=e.autoDisabled;return typeof e.id==`string`&&e.id.trim().length>0&&typeof e.name==`string`&&(e.agentId===void 0||typeof e.agentId==`string`)&&typeof e.enabled==`boolean`&&Ju(e.updatedAtMs)&&(e.nextRunAtMs===null||Ju(e.nextRunAtMs))&&(e.lastRunAtMs===null||Ju(e.lastRunAtMs))&&(e.lastRunStatus===null||e.lastRunStatus===`ok`||e.lastRunStatus===`error`||e.lastRunStatus===`skipped`)&&(e.runningAtMs===void 0||Ju(e.runningAtMs))&&(t===void 0||k(t)&&(t.reason===`consecutive-failures`||t.reason===`schedule-errors`)&&Ju(t.atMs)&&typeof t.consecutiveErrors==`number`&&Number.isSafeInteger(t.consecutiveErrors)&&t.consecutiveErrors>0)}function Xu(e,t){return Qu(e,ed,t)}function Zu(e,t){return Qu(e,td,t)}async function Qu(e,t,n){if(!e.client||!e.connected||e.canRefresh?.()===!1)return;let r=e.cronSessionFilter??e.cronAgentId,i=()=>(e.cronSessionFilter??e.cronAgentId)===r;$u.has(e)&&$u.get(e)!==r&&(e.cronJobs=[],e.cronJobsSnapshotRevision=null,e.cronJobsTotal=0,e.cronJobsHasMore=!1,e.cronJobsNextOffset=null),$u.set(e,r);let a=n?.append===!0;if(e.cronLoading||e.cronJobsLoadingMore){a||(e.cronJobsReloadPending=!0,e.cronJobsReloadPendingTableFilters=n?.tableFilters===!0);return}if(!a||e.cronJobsHasMore){a?e.cronJobsLoadingMore=!0:e.cronLoading=!0,e.cronJobsError=null;try{let r=a?Math.max(0,e.cronJobsNextOffset??e.cronJobs.length):0,o=await e.client.request(`cron.list`,{...e.cronSessionFilter??(e.cronAgentId?{agentId:e.cronAgentId}:{}),includeDisabled:e.cronJobsEnabledFilter===`all`,includeDeliveryPreviews:!1,...t.compact?{compact:!0}:{},limit:e.cronJobsLimit,offset:r,query:e.cronJobsQuery.trim()||void 0,enabled:e.cronJobsEnabledFilter,...n?.tableFilters?{scheduleKind:e.cronJobsScheduleKindFilter,lastRunStatus:e.cronJobsLastStatusFilter,trigger:e.cronJobsTriggerFilter}:{},sortBy:e.cronJobsSortBy,sortDir:e.cronJobsSortDir});if(!i())return;let s=Wu(o,e.cronJobsLimit);if(a&&(s.snapshotRevision!==e.cronJobsSnapshotRevision||s.total!==e.cronJobsTotal)){Ku(e,n?.tableFilters===!0);return}Gu(s,r);let c=t.readRows(s.jobs);e.cronJobs=a?[...e.cronJobs,...c]:c,e.cronJobsSnapshotRevision=s.snapshotRevision,e.cronJobsTotal=s.total,e.cronJobsHasMore=s.hasMore,e.cronJobsNextOffset=s.nextOffset}catch(t){i()&&(e.cronJobsError=ye(t))}finally{a?e.cronJobsLoadingMore=!1:e.cronLoading=!1,await qu(e,t)}}}var $u,ed,td;function nd(){return(nd=e((()=>{je(),Uu(),$u=new WeakMap,ed={readRows:e=>e.filter(e=>Hu(e)!==null)},td={compact:!0,readRows:e=>{if(!e.every(Yu))throw Error(`cron.list returned an invalid compact inventory row`);return e}}})))()}function rd(e){if(!(`reason`in e))return w(`cron.runNotStarted.unknown`);switch(e.reason){case`not-due`:return w(`cron.runNotStarted.notDue`);case`already-running`:return w(`cron.runNotStarted.alreadyRunning`);case`invalid-spec`:return w(`cron.runNotStarted.invalidSpec`);case`stopped`:return w(`cron.runNotStarted.stopped`)}return w(`cron.runNotStarted.unknown`)}function id(){return(id=e((()=>{l()})))()}function ad(e,t){let n=Math.max(0,Math.floor(A(e.total)??t)),r=Math.max(0,Math.floor(A(e.offset)??0)),i=typeof e.hasMore==`boolean`?e.hasMore:r+t<n,a=A(e.nextOffset);return{total:n,hasMore:i,nextOffset:a===void 0?i?r+t:null:Math.max(0,Math.floor(a))}}function od(e){md.delete(e),e.cronRunsError=null,e.cronRuns=[],e.cronRunsTotal=0,e.cronRunsHasMore=!1,e.cronRunsNextOffset=null}function sd(e,t){return e.client===t.client&&e.cronAgentId===t.agentId&&e.cronRunsScope===t.scope&&(t.scope!==`job`||e.cronRunsJobId===t.jobId)&&e.cronRunsLimit===t.limit&&e.cronRunsStatusFilter===t.status&&e.cronRunsQuery.trim()===t.query&&e.cronRunsSortDir===t.sortDir&&e.cronRunsStatuses.length===t.statuses.length&&e.cronRunsStatuses.every((e,n)=>e===t.statuses[n])&&e.cronRunsDeliveryStatuses.length===t.deliveryStatuses.length&&e.cronRunsDeliveryStatuses.every((e,n)=>e===t.deliveryStatuses[n])}function cd(e,t){return G.get(e)===t&&e.connected&&sd(e,t)&&(!t.append||Math.max(0,e.cronRunsNextOffset??e.cronRuns.length)===t.offset)}function ld(e){let t=G.get(e);if(t&&cd(e,t))return`pending`;let n=md.get(e);return!n||!sd(e,n)?`idle`:e.cronRunsError===null?`ready`:`failed`}async function ud(e,t){let n=e.client;if(!n||!e.connected||e.canRefresh?.()===!1)return`skipped`;let r=e.cronRunsScope,i=e.cronRunsJobId;if(r===`job`&&!i)return od(e),`skipped`;let a=md.get(e);(!a||!sd(e,a))&&od(e);let o=t?.append===!0;if(o&&!e.cronRunsHasMore)return`skipped`;let s=G.get(e);if(t?.coalesce&&!o&&s&&!s.append&&s.jobId===(r===`job`?i:null)&&cd(e,s))return(s.queued??=O()).promise;let c={client:n,agentId:e.cronAgentId,scope:r,jobId:r===`job`?i:null,limit:e.cronRunsLimit,offset:o?Math.max(0,e.cronRunsNextOffset??e.cronRuns.length):0,statuses:[...e.cronRunsStatuses],status:e.cronRunsStatusFilter,deliveryStatuses:[...e.cronRunsDeliveryStatuses],query:e.cronRunsQuery.trim(),sortDir:e.cronRunsSortDir,append:o};G.set(e,c),o||(e.cronRunsHasMore=!1,e.cronRunsNextOffset=null),e.cronRunsLoadingMore=o;try{let t=await n.request(`cron.runs`,{...c.scope===`all`&&c.agentId?{agentId:c.agentId}:{},scope:c.scope,id:c.jobId??void 0,limit:c.limit,offset:c.offset,statuses:c.statuses.length>0?c.statuses:void 0,status:c.status,deliveryStatuses:c.deliveryStatuses.length>0?c.deliveryStatuses:void 0,query:c.query||void 0,sortDir:c.sortDir});if(!cd(e,c))return`skipped`;md.set(e,c),e.cronRunsError=null;let r=Array.isArray(t.entries)?t.entries:[];e.cronRuns=o?[...e.cronRuns,...r]:r;let i=ad(t,r.length);return e.cronRunsTotal=Math.max(i.total,e.cronRuns.length),e.cronRunsHasMore=i.hasMore,e.cronRunsNextOffset=i.nextOffset,`ok`}catch(t){return!cd(e,c)||c.queued?`skipped`:(md.set(e,c),e.cronRunsError=ye(t),`error`)}finally{let n=cd(e,c);G.get(e)===c&&(G.delete(e),o&&(e.cronRunsLoadingMore=!1)),c.queued?.resolve(n?ud(e,t):`skipped`)}}async function dd(e){(e.cronRunsScope!==`job`||e.cronRunsJobId)&&await ud(e,{append:!0})}function fd(e,t){e.cronRunsScope=t.cronRunsScope??e.cronRunsScope,Array.isArray(t.cronRunsStatuses)&&(e.cronRunsStatuses=t.cronRunsStatuses,e.cronRunsStatusFilter=t.cronRunsStatuses[0]??`all`),Array.isArray(t.cronRunsDeliveryStatuses)&&(e.cronRunsDeliveryStatuses=t.cronRunsDeliveryStatuses),t.cronRunsStatusFilter&&(e.cronRunsStatusFilter=t.cronRunsStatusFilter,e.cronRunsStatuses=t.cronRunsStatusFilter===`all`?[]:[t.cronRunsStatusFilter]),typeof t.cronRunsQuery==`string`&&(e.cronRunsQuery=t.cronRunsQuery),e.cronRunsSortDir=t.cronRunsSortDir??e.cronRunsSortDir}function pd(e){G.get(e)?.queued?.resolve(`skipped`),G.delete(e)}var G,md;function hd(){return(hd=e((()=>{In(),Rn(),je(),G=new WeakMap,md=new WeakMap})))()}function gd(e){let t=e.trim();if(!t)return`cron.errors.webhookUrlRequired`;if(!Cn(t))return`cron.errors.webhookUrlInvalid`;try{let e=new URL(t);return e.username||e.password||e.hostname.includes(`%`)?`cron.errors.webhookUrlInvalid`:void 0}catch{return`cron.errors.webhookUrlInvalid`}}function _d(){return(_d=e((()=>{hn()})))()}async function vd(e){if(!e.client||!e.connected||!e.cronAgentId){e.cronScopedTotal=null,e.cronScopedNextWakeAtMs=null;return}try{let[t,n]=await Promise.all([e.client.request(`cron.list`,{agentId:e.cronAgentId,includeDisabled:!0,includeDeliveryPreviews:!1,limit:1,offset:0}),e.client.request(`cron.list`,{agentId:e.cronAgentId,enabled:`enabled`,includeDeliveryPreviews:!1,limit:1,offset:0,sortBy:`nextRunAtMs`,sortDir:`asc`})]);e.cronScopedTotal=typeof t.total==`number`?t.total:null;let r=n.jobs[0]?.state?.nextRunAtMs;e.cronScopedNextWakeAtMs=typeof r==`number`&&Number.isFinite(r)?r:null}catch{e.cronScopedTotal=null,e.cronScopedNextWakeAtMs=null}}function yd(){return(yd=e((()=>{})))()}function bd(e,t){let n=E(t);n&&e.add(n)}function xd(e,t){for(let n of nn(t))bd(e,n)}function Sd(e){let t=j(e?.agents);if(!t)return[];let n=new Set,r=j(t.defaults);if(r){xd(n,r.model);for(let e of Object.keys(j(r.models)??{}))bd(n,e)}for(let e of Object.values(M(t.entries)??{}))xd(n,j(e)?.model);return Cr([...n])}function Cd(){return(Cd=e((()=>{ln(),mr()})))()}function wd(e){return e===`main`||e===`isolated`||e===`current`||e.startsWith(`session:`)&&e.length>8}function Td(e={}){return{client:e.client??null,connected:e.connected??!1,cronLoading:!1,cronJobsError:null,cronJobsLoadingMore:!1,cronJobsReloadPending:!1,cronJobsReloadPendingTableFilters:!1,cronJobs:[],cronJobsSnapshotRevision:null,cronJobsTotal:0,cronJobsHasMore:!1,cronJobsNextOffset:null,cronJobsLimit:50,cronJobsQuery:``,cronJobsEnabledFilter:`all`,cronJobsScheduleKindFilter:`all`,cronJobsLastStatusFilter:`all`,cronJobsTriggerFilter:`all`,cronJobsSortBy:`nextRunAtMs`,cronJobsSortDir:`asc`,cronAgentId:null,cronStatus:null,cronScopedTotal:null,cronScopedNextWakeAtMs:null,cronError:null,cronForm:{...sf},cronCreateOpen:!1,cronFieldErrors:{},cronEditingJob:null,cronCloningJob:null,cronRunsError:null,cronRunsJobId:null,cronRunsLoadingMore:!1,cronRuns:[],cronRunsTotal:0,cronRunsHasMore:!1,cronRunsNextOffset:null,cronRunsLimit:50,cronRunsScope:`all`,cronRunsStatuses:[],cronRunsDeliveryStatuses:[],cronRunsStatusFilter:`all`,cronRunsQuery:``,cronRunsSortDir:`desc`,cronBusy:!1}}function Ed(e){return e.sessionTarget!==`main`&&(e.payloadKind===`agentTurn`||e.payloadLocked)}function Dd(e,t={}){let n=e;if(!e.payloadLocked){if(t.sessionTarget!==void 0){let t=e.sessionTarget===`main`?`systemEvent`:`agentTurn`;e.payloadKind!==t&&(n={...n,payloadKind:t})}else e.payloadKind===`systemEvent`&&e.sessionTarget!==`main`?n={...n,sessionTarget:`main`}:e.payloadKind===`agentTurn`&&e.sessionTarget===`main`&&(n={...n,sessionTarget:`isolated`})}return n.deliveryMode!==`announce`||Ed(n)?n:{...n,deliveryMode:`none`}}function Od(e){let t={};if(e.name.trim()||(t.name=`cron.errors.nameRequired`),e.scheduleKind===`at`){let n=Date.parse(e.scheduleAt);Number.isFinite(n)||(t.scheduleAt=`cron.errors.scheduleAtInvalid`)}else if(e.scheduleKind===`every`){let n=Au(e.everyAmount,e.everyUnit);n===void 0?t.everyAmount=`cron.errors.everyAmountInvalid`:e.triggerEnabled&&n<Tt()&&(t.everyAmount=`cron.errors.triggerIntervalTooShort`)}else if(e.scheduleKind===`cron`&&(e.cronExpr.trim()||(t.cronExpr=`cron.errors.cronExprRequired`),!e.scheduleExact)){let n=e.staggerAmount.trim();n&&!Au(n,e.staggerUnit,!0)&&(t.staggerAmount=`cron.errors.staggerAmountInvalid`)}if(e.triggerEnabled&&(e.payloadKind===`script`?t.triggerScript=`cron.errors.triggerScriptPayloadUnsupported`:e.scheduleKind!==`every`&&e.scheduleKind!==`cron`&&e.scheduleKind!==`stream`?t.triggerScript=`cron.errors.triggerScheduleUnsupported`:e.triggerScript.trim()||(t.triggerScript=`cron.errors.triggerScriptRequired`)),!e.payloadLocked&&!e.payloadText.trim()&&(t.payloadText=e.payloadKind===`systemEvent`?`cron.errors.systemTextRequired`:`cron.errors.agentMessageRequired`),!e.payloadLocked&&e.payloadKind===`agentTurn`){let n=e.timeoutSeconds.trim();if(n){let e=d(n,NaN);(!Number.isFinite(e)||e<0)&&(t.timeoutSeconds=`cron.errors.timeoutInvalid`)}}if(e.deliveryMode||(t.deliveryMode=`cron.errors.deliveryModeRequired`),e.deliveryMode===`webhook`){let n=gd(e.deliveryTo);n&&(t.deliveryTo=n)}if(e.failureAlertMode===`custom`){let n=e.failureAlertAfter.trim();if(n){let e=d(n,0);(!Number.isFinite(e)||e<1)&&(t.failureAlertAfter=`Failure alert threshold must be at least 1.`)}let r=e.failureAlertCooldownSeconds.trim();r&&Gd(r)===void 0&&(t.failureAlertCooldownSeconds=`Cooldown must be finite and 0 or greater.`)}return t}function kd(e){return Object.keys(e).length>0}function Ad(e){K.get(e)?.queued?.resolve(),K.delete(e)}function jd(e){let t=K.get(e);t&&(t.reportErrors=!1)}async function Md(e,t){let n=e.client;if(!n||!e.connected||e.canRefresh?.()===!1)return;let r=K.get(e);if(t?.coalesce&&r?.client===n)return(r.queued??=O()).promise;let i=e.cronAgentId,a=e.cronEditingJob,o={client:n,selectedJob:a,reportErrors:!t?.coalesce||!e.cronBusy};K.set(e,o);let s=()=>K.get(e)===o&&e.connected&&e.client===n&&e.cronAgentId===i,c=()=>s()&&o.selectedJob===a&&e.cronEditingJob===a,l=a?n.request(`cron.get`,{id:a.id}).then(e=>{c()&&e.id===a.id&&(a.state=e.state)},n=>{c()&&o.reportErrors&&(!t?.coalesce||!o.queued)&&(e.cronError=ye(n))}):Promise.resolve();try{let t=await n.request(`cron.status`,{});s()&&(e.cronStatus=t)}catch(n){if(!s()||!o.reportErrors||t?.coalesce&&o.queued)return;de(n)?(e.cronStatus=null,e.cronError=Me(`cron status`)):e.cronError=ye(n)}finally{await l;let t=s();if(K.get(e)===o&&K.delete(e),o.queued){let n=t?Md(e,{coalesce:!0}):void 0;t&&!o.reportErrors&&jd(e),o.queued.resolve(n)}}}async function Nd(e,t,n){let r=e.client;if(!r||!e.connected||e.cronBusy)return;let i=t?{id:t.id,name:t.displayName??t.name}:null,a=t=>{e.cronError=i&&e.cronEditingJob?.id!==i.id?`${i.name}: ${t}`:t};jd(e),e.cronBusy=!0,e.cronError=null;try{await n(r,a)}catch(e){a(ye(e))}finally{jd(e),e.cronBusy=!1}}function Pd(e){if(e)return e;throw Error(`This automation is missing its configuration revision. Refresh and try again.`)}function Fd(e,t){e.cronJobs=e.cronJobs.map(e=>e.id===t.id?t:e)}function Id(e){return(k(e)&&k(e.details)?e.details:null)?.code===`CRON_JOB_CHANGED`}function Ld(e,t){typeof t.cronJobsQuery==`string`&&(e.cronJobsQuery=t.cronJobsQuery),e.cronJobsEnabledFilter=t.cronJobsEnabledFilter??e.cronJobsEnabledFilter,e.cronJobsScheduleKindFilter=t.cronJobsScheduleKindFilter??e.cronJobsScheduleKindFilter,e.cronJobsLastStatusFilter=t.cronJobsLastStatusFilter??e.cronJobsLastStatusFilter,e.cronJobsTriggerFilter=t.cronJobsTriggerFilter??e.cronJobsTriggerFilter,e.cronJobsSortBy=t.cronJobsSortBy??e.cronJobsSortBy,e.cronJobsSortDir=t.cronJobsSortDir??e.cronJobsSortDir}function Rd(e){let t=K.get(e);t&&(t.selectedJob=null)}function zd(e){Rd(e),e.cronError=null,e.cronEditingJob=null,e.cronCloningJob=null}function Bd(e,t){e.cronCloningJob=null,e.cronForm={...sf,agentId:t??``},e.cronFieldErrors={}}function Vd(e,t){return e?.kind===`command`||e?.kind===`script`||pt(e?.kind)||ot(t)}function Hd(e,t){let n=typeof e.failureAlert==`object`?e.failureAlert:void 0,r=Hu(e),i=Vd(r,e.declarationKey);if(!wd(e.sessionTarget))throw TypeError(`Invalid cron session target: ${e.sessionTarget}`);let a={...t,name:e.name,description:e.description??``,agentId:e.agentId??``,sessionKey:e.sessionKey??``,clearAgent:!1,enabled:e.enabled,deleteAfterRun:e.deleteAfterRun??e.schedule.kind===`at`,scheduleKind:e.schedule.kind,scheduleAt:``,cronTz:``,scheduleExact:!1,staggerAmount:``,staggerUnit:`seconds`,triggerEnabled:e.trigger!==void 0,triggerScript:e.trigger?.script??``,triggerOnce:e.trigger?.once===!0,sessionTarget:e.sessionTarget,wakeMode:e.wakeMode,payloadKind:r?.kind??sf.payloadKind,payloadLocked:i,payloadText:r?.kind===`systemEvent`?r.text:r?.kind===`agentTurn`?r.message:r?.kind===`command`?r.argv.join(` `):r?.kind===`script`?r.script:``,payloadModel:r?.kind===`agentTurn`?r.model??``:``,payloadThinking:r?.kind===`agentTurn`?r.thinking??``:``,payloadLightContext:r?.kind===`agentTurn`&&r.lightContext===!0,deliveryMode:wt(e.delivery)?e.delivery?.mode??`none`:``,deliveryChannel:e.delivery?.channel??of,deliveryTo:e.delivery?.to??``,deliveryAccountId:e.delivery?.accountId??``,deliveryBestEffort:e.delivery?.bestEffort??!1,deliveryThreadId:e.delivery?.threadId,deliveryCompletionDestination:e.delivery?.mode===`announce`?e.delivery.completionDestination:void 0,deliveryFailureDestination:e.delivery?.failureDestination,failureAlertMode:e.failureAlert===!1?`disabled`:n?`custom`:`inherit`,failureAlertAfter:typeof n?.after==`number`?String(n.after):``,failureAlertCooldownSeconds:typeof n?.cooldownMs==`number`?Iu(n.cooldownMs):``,failureAlertChannel:n?.channel??of,failureAlertTo:n?.to??``,failureAlertDeliveryMode:n?.mode??``,failureAlertAccountId:n?.accountId??``,timeoutSeconds:r?.kind===`agentTurn`&&typeof r.timeoutSeconds==`number`?String(r.timeoutSeconds):``};if(e.schedule.kind===`at`)a.scheduleAt=Pu(e.schedule.at);else if(e.schedule.kind===`every`){let t=Fu(e.schedule.everyMs);a.everyAmount=t.everyAmount,a.everyUnit=t.everyUnit}else if(e.schedule.kind===`cron`){a.cronExpr=e.schedule.expr,a.cronTz=e.schedule.tz??``;let t=Lu(e.schedule.staggerMs);a.scheduleExact=t.scheduleExact,a.staggerAmount=t.staggerAmount,a.staggerUnit=t.staggerUnit}return Dd(a)}function Ud(e,t,n){let r=!n&&t&&`toolsAllow`in t?t.toolsAllow:void 0,i=r?{toolsAllow:[...r]}:{};if(e.payloadKind===`systemEvent`){let t=e.payloadText.trim();if(!t)throw Error(w(`cron.errors.systemEventTextRequired`));return{kind:`systemEvent`,text:t,...i}}if(e.payloadKind!==`agentTurn`)throw Error(`Cron ${e.payloadKind} payloads are read-only in Control UI.`);let a=e.payloadText.trim();if(!a)throw Error(w(`cron.errors.agentMessageRequiredShort`));let o=t?.kind===`agentTurn`?t:void 0,s=n?void 0:o,c=e.payloadModel.trim()||(n&&o?.model!==void 0?null:void 0),l=e.payloadThinking.trim()||(n&&o?.thinking!==void 0?null:void 0),u=e.timeoutSeconds.trim(),f=d(u,NaN),p=e.payloadLightContext||o?.lightContext!==void 0?e.payloadLightContext:void 0;return{kind:`agentTurn`,message:a,...c===void 0?{}:{model:c},...l===void 0?{}:{thinking:l},...u&&Number.isFinite(f)&&f>=0?{timeoutSeconds:f}:n&&o?.timeoutSeconds!==void 0?{timeoutSeconds:null}:{},...p===void 0?{}:{lightContext:p},...i,...s?.fallbacks?{fallbacks:[...s.fallbacks]}:{},...s?.allowUnsafeExternalContent===void 0?{}:{allowUnsafeExternalContent:s.allowUnsafeExternalContent}}}function Wd(e,t={}){let n=e.trim();if(n)return n===of?t.preserveLast?of:void 0:n}function Gd(e){let t=e.trim(),n=d(t,NaN);if(!t||!Number.isFinite(n)||n<0)return;let[r,i=`0`]=(n===0||Wn(t)===void 0?String(n):t).split(/[eE]/u),a=Number(`${r}e${Number(i)+3}`);return Number.isFinite(a)&&a>=0?Math.floor(a):void 0}function Kd(e,t,n=!1){if(e.failureAlertMode===`disabled`)return!1;if(e.failureAlertMode!==`custom`)return n&&t!==void 0?null:void 0;let r=t&&typeof t==`object`?t:void 0,i=n?r:void 0,a=d(e.failureAlertAfter.trim(),0),o=Gd(e.failureAlertCooldownSeconds),s=e.failureAlertAccountId.trim(),c=e.failureAlertTo.trim();return{after:a>0?Math.floor(a):i?.after===void 0?void 0:null,channel:Wd(e.failureAlertChannel,{preserveLast:!!r?.channel}),to:c||(i?.to?null:void 0),...o===void 0?i?.cooldownMs===void 0?{}:{cooldownMs:null}:{cooldownMs:o},mode:e.failureAlertDeliveryMode||(i?.mode===void 0?void 0:null),accountId:s||(i?.accountId?null:void 0),includeSkipped:r?.includeSkipped}}function qd(e){let t=j(e),n=t&&`job`in t?j(t.job):t;return pr(n?.id)??null}async function Jd(e){let t={saved:!1};return await Nd(e,void 0,async n=>{let r=Dd(e.cronForm);r!==e.cronForm&&(e.cronForm=r);let i=Od(r);if(e.cronFieldErrors=i,kd(i))return;let a=e.cronEditingJob,o=a?Pd(a.configRevision):void 0,s=a??e.cronCloningJob,c=s?Hu(s):null,l=s&&Ru(r,s)?a?void 0:s.schedule:zu(r,a?.schedule),u=a&&r.payloadLocked&&Vd(c,s?.declarationKey)?void 0:Ud(r,c,!!a),d=r.deliveryMode,f=r.deliveryAccountId.trim(),p=d===`announce`?f||(a?.delivery?.accountId?null:void 0):void 0,m=d&&d!==`none`?{mode:d,channel:d===`announce`?Wd(r.deliveryChannel,{preserveLast:!!a?.delivery?.channel}):void 0,to:r.deliveryTo.trim()||(d===`announce`&&a?.delivery?.to?null:void 0),accountId:p,bestEffort:r.deliveryBestEffort,...r.deliveryThreadId===void 0?{}:{threadId:r.deliveryThreadId},...d===`announce`&&r.deliveryCompletionDestination?{completionDestination:r.deliveryCompletionDestination}:{},...r.deliveryFailureDestination?{failureDestination:r.deliveryFailureDestination}:{}}:d===`none`?{mode:`none`,...r.deliveryBestEffort?{bestEffort:!0}:{},...r.deliveryThreadId===void 0?{}:{threadId:r.deliveryThreadId},...r.deliveryFailureDestination?{failureDestination:r.deliveryFailureDestination}:{}}:void 0,h=Kd(r,s?.failureAlert,!!a),g=r.triggerScript.trim(),_=r.triggerEnabled?a?.trigger?.script===g&&a.trigger.once===!0===r.triggerOnce?void 0:{script:g,once:r.triggerOnce}:a?.trigger?null:void 0,v=r.clearAgent?null:r.agentId.trim(),y=r.sessionKey.trim()||(a?.sessionKey?null:void 0),b={name:r.name.trim(),description:r.description.trim(),agentId:v===null?null:v||void 0,sessionKey:y,enabled:r.enabled,...r.scheduleKind===`at`||r.scheduleKind===`on-exit`?{deleteAfterRun:r.deleteAfterRun}:{},sessionTarget:r.sessionTarget,wakeMode:r.wakeMode,trigger:_,delivery:m,failureAlert:h};if(l&&(b.schedule=l),s?.pacing&&(l?.kind===`every`||l?.kind===`cron`?a||(b.pacing={...s.pacing}):a&&l&&(b.pacing=null)),u&&(b.payload=u),a){let i=a.id,s=()=>e.cronEditingJob===a&&e.cronForm===r;try{let t=await n.request(`cron.update`,{id:i,expectedConfigRevision:o,patch:b});Fd(e,t),s()&&tf(e,t)}catch(t){if(!Id(t)){if(s())throw t;return}if(await Yd(e),!s())return;try{let t=await n.request(`cron.get`,{id:i});if(!s())return;tf(e,t),e.cronError=`This automation changed on the Gateway. The latest definition is loaded; review it before retrying.`}catch{s()&&(e.cronError=`This automation changed on the Gateway, but the latest definition could not be loaded. Refresh before retrying.`)}return}t={saved:!0,jobId:i}}else{let r=await n.request(`cron.add`,b);Bd(e,v),t={saved:!0,jobId:qd(r)}}await Yd(e)}),t}async function Yd(e){await Xu(e,{tableFilters:!0}),await Md(e)}async function Xd(e,t,n){let r=!1;return await Nd(e,t,async i=>{let a=await i.request(`cron.update`,{id:t.id,expectedConfigRevision:Pd(t.configRevision),patch:{enabled:n}});Fd(e,a),e.cronEditingJob?.id===a.id&&ef(e,a,{...e.cronForm,enabled:a.enabled}),r=!0,await Yd(e)}),r}async function Zd(e,t,n=`force`){await Nd(e,e.cronEditingJob?.id===t?e.cronEditingJob:e.cronJobs.find(e=>e.id===t)??{id:t,name:t},async(r,i)=>{let a=await r.request(`cron.run`,{id:t,mode:n});if(!a.ok||`ran`in a&&!a.ran){i(rd(a)),`reason`in a&&a.reason===`invalid-spec`&&await ud(e);return}await ud(e),`enqueued`in a&&a.enqueued&&i(`Run queued. Run ID: ${a.runId}`)})}async function Qd(e,t){await Nd(e,t,async n=>{await n.request(`cron.remove`,{id:t.id});let r=e.cronJobs.length;e.cronJobs=e.cronJobs.filter(e=>e.id!==t.id),e.cronJobs.length!==r&&(e.cronJobsTotal=Math.max(0,e.cronJobsTotal-1)),e.cronEditingJob?.id===t.id&&zd(e),e.cronRunsJobId===t.id&&(e.cronRunsJobId=null,od(e)),await Yd(e)})}function $d(e){Ad(e),pd(e),e.cronJobsReloadPending=!1,e.cronJobsReloadPendingTableFilters=!1}function ef(e,t,n){Rd(e),e.cronError=null,e.cronEditingJob=t,e.cronCloningJob=null,e.cronRunsJobId=t.id,e.cronForm=n,e.cronFieldErrors=Od(n)}function tf(e,t){ef(e,t,Hd(t,e.cronForm))}function nf(e,t){let n=e.trim()||`Job`,r=`${n} copy`;if(!t.has(F(r)))return r;let i=2;for(;i<1e3;){let e=`${n} copy ${i}`;if(!t.has(F(e)))return e;i+=1}return`${n} copy ${Date.now()}`}function rf(e,t){zd(e),e.cronCloningJob=t,e.cronRunsJobId=t.id;let n=new Set(e.cronJobs.map(e=>F(e.name))),r=Hd(t,e.cronForm);r.name=nf(t.name,n),r.payloadLocked&&(r.payloadLocked=!1,r.payloadKind=sf.payloadKind,r.payloadText=``),e.cronForm=Dd(r,{payloadKind:r.payloadKind}),e.cronFieldErrors=Od(e.cronForm)}function af(e,t){zd(e),Bd(e,t)}var of,sf,K;function cf(){return(cf=e((()=>{In(),ct(),Et(),ft(),Rn(),l(),je(),ue(),v(),Nu(),Bu(),nd(),Uu(),id(),hd(),_d(),Cd(),of=`last`,sf={name:``,description:``,agentId:``,sessionKey:``,clearAgent:!1,enabled:!0,deleteAfterRun:!1,scheduleKind:`every`,scheduleAt:``,everyAmount:`30`,everyUnit:`minutes`,cronExpr:`0 7 * * *`,cronTz:``,scheduleExact:!1,staggerAmount:``,staggerUnit:`seconds`,triggerEnabled:!1,triggerScript:``,triggerOnce:!1,sessionTarget:`isolated`,wakeMode:`now`,payloadKind:`agentTurn`,payloadLocked:!1,payloadText:``,payloadModel:``,payloadThinking:``,payloadLightContext:!1,deliveryMode:`none`,deliveryChannel:`last`,deliveryTo:``,deliveryAccountId:``,deliveryBestEffort:!1,deliveryThreadId:void 0,deliveryCompletionDestination:void 0,deliveryFailureDestination:void 0,failureAlertMode:`inherit`,failureAlertAfter:``,failureAlertCooldownSeconds:``,failureAlertChannel:`last`,failureAlertTo:``,failureAlertDeliveryMode:``,failureAlertAccountId:``,timeoutSeconds:``},K=new WeakMap})))()}function lf(e){let t=Un(e);return ut(t)??t}function uf(e){return e.status===`missing`?!0:Array.isArray(e.profiles)?e.profiles.some(e=>e.type===`oauth`||e.type===`token`):!1}function df(e){let t=new Map;for(let n of e){let e=lf(n.provider),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t].map(([e,t])=>{let n=t.reduce((e,t)=>_f.indexOf(t.status)<_f.indexOf(e.status)?t:e),r=t.find(e=>e.apiKey)?.apiKey;return Object.assign({},n,{provider:e,profiles:t.flatMap(e=>e.profiles),...r?{apiKey:r}:{}})})}function ff(e,t){let n;for(let r of e.providers)for(let i of[r,...r.profiles])if(i.expiry)for(let r of[864e5,3e5,0]){let a=i.expiry.at-r;if(a>e.ts){let r=t+(a-e.ts);(n===void 0||r<n)&&(n=r)}}return n}function pf(e){return gf.get(e)}async function mf(e,t){t.signal?.throwIfAborted();let n={...t?.refresh?{refresh:!0}:{},agentId:t.agentId},r=async t=>{let r=Date.now(),i=(t?await e.request(`models.authStatus`,n,{signal:t}):await e.request(`models.authStatus`,n))??hf;return Array.isArray(i.providers)&&gf.set(i,ff(i,r)),i},i=ve.get(e);if(i||(i={entries:new Map,refreshes:0},ve.set(e,i)),t.refresh){i.entries.clear(),i.refreshes+=1;try{return await r(t.signal)}finally{--i.refreshes}}if(i.refreshes>0)return await r(t.signal);let a=i.entries,o=t.agentId,s=a.get(o);if(s?.refreshAt!==void 0&&s.refreshAt<=Date.now()&&(a.delete(o),s=void 0),!s){let e={promise:r(),subscribers:new Set};a.set(o,e);let t=()=>{a.get(o)===e&&a.delete(o)};e.promise.then(n=>{n===hf||n.unavailable||!Array.isArray(n.providers)?t():a.get(o)===e&&(e.refreshAt=pf(n))},t),s=e}return await Ir(s,{},t.signal)}var hf,gf,_f;function vf(){return(vf=e((()=>{Vn(),Ct(),Oe(),hf={ts:0,providers:[]},gf=new WeakMap,_f=[`expired`,`missing`,`expiring`,`ok`,`static`]})))()}function yf(e){return e.state?.lastRunStatus??e.state?.lastStatus??`unknown`}function bf(e){let t=e.state?.runningAtMs;return typeof t==`number`&&Number.isFinite(t)}function xf(e){return e.state?.autoDisabled?!0:e.enabled&&yf(e)===`error`}function Sf(){return(Sf=e((()=>{})))()}function Cf(e,t,n,r){let i=[...e],a=i.indexOf(t),o=i.indexOf(n);if(a<0||o<0||a===o)return i;let[s]=i.splice(a,1);if(s===void 0)return i;let c=i.indexOf(n)+ +(r===`after`);return i.splice(c,0,s),i}function wf(){return(wf=e((()=>{})))()}function Tf(e){return lt(e)?.map(p).join(` `)}function Ef(e){let t=lt(e);if(!t)return;let n=De.getLocale();return Of?.locale!==n&&(Of={locale:n,formatter:new Intl.ListFormat(n,{type:`unit`,style:`long`})}),Of.formatter.format(t.map(e=>p({...e,unitDisplay:`long`})))}function Df(e,t=w(`common.na`)){return e==null||!Number.isFinite(e)||e<0?t:gt(e).map(p).join(` `)}var Of;function kf(){return(kf=e((()=>{xt(),l(),ue()})))()}function Af(e){let t=e.trim().toLowerCase(),n=jf.get(t);if(n)return n;let r=wr.tools[t]??wr.fallback;return Mf[r.emoji??``]??`puzzle`}var jf,Mf;function Nf(){return(Nf=e((()=>{Tr(),jf=new Map([[`exec`,`squareTerminal`],[`bash`,`squareTerminal`],[`shell`,`squareTerminal`],[`terminal`,`squareTerminal`],[`process`,`squareTerminal`],[`gateway_process`,`squareTerminal`],[`search`,`search`],[`grep`,`search`],[`find`,`search`],[`glob`,`search`],[`web_search`,`search`],[`memory_search`,`search`],[`sessions_search`,`search`]]),Mf={"🧩":`puzzle`,"🛠️":`wrench`,"🧰":`wrench`,"📖":`fileText`,"✍️":`edit`,"📝":`penLine`,"📎":`paperclip`,"🌐":`globe`,"📺":`monitor`,"🧾":`fileText`,"🔐":`settings`,"💻":`monitor`,"🔌":`plug`,"💬":`messageSquare`}})))()}function Pf(){let e=null,t=Ff,n=()=>{e!==null&&(globalThis.clearTimeout(e),e=null)};return{cancel:n,reset(){n(),t=Ff},schedule(r){n();let i=t;t=Math.min(t*2,If),e=globalThis.setTimeout(()=>{e=null,r()},i)}}}var Ff,If;function Lf(){return(Lf=e((()=>{Ff=3e4,If=3e5})))()}function Rf(e,t){let n=Pf(),r=!1,i=!1,a=0,o=null,s=null,c=null;function l(){i=!1,r&&t.sync()}function u(){if(!r||i)return;i=!0;let e=a;globalThis.queueMicrotask(()=>{e===a&&l()})}let d=()=>{n.reset(),u()};return{get attached(){return r},get retry(){return n},sync:l,schedule:u,attach(){r||(r=!0,t.onAttach(),o=e.subscribe(t.onSnapshot??u),s=t.onEvent?e.subscribeEvents(t.onEvent):null,typeof document<`u`&&(document.addEventListener(`visibilitychange`,d),c=document))},detach(){r&&(r=!1,o?.(),o=null,s?.(),s=null,c?.removeEventListener(`visibilitychange`,d),c=null,n.reset(),a+=1,i=!1,t.onDetach())}}}function zf(){return(zf=e((()=>{Lf()})))()}function Bf(e){let t=new Set(Vf);for(let n of(e??``).split(/\s+/)){let e=Ln(n);e&&t.add(e)}return[...t].join(` `)}var Vf,Hf;function Uf(){return(Uf=e((()=>{Vf=[`noopener`,`noreferrer`],Hf=`_blank`})))()}var Wf;function Gf(){return(Gf=e((()=>{Wf=`https://discord.gg/clawd`})))()}function Kf(e,t){let n=M(M(e)?.__openclaw);if(n?.truncated===!0&&n.reason===`oversized`)return w(`chat.messages.tooLargeToDisplay`);let r=t.content.flatMap(e=>e.type===`text`&&typeof e.text==`string`?e.text:[]).join(`
`);return t.role.toLowerCase()===`assistant`?Gr(r):r}function qf(){return(qf=e((()=>{l(),Lr()})))()}function Jf(e,t){let n=!1;for(let e of t.content)if(e.type===`text`)n||=!!e.text?.trim();else if(e.type!==`thinking`&&!mt(e.type)&&!Qe(e.type))return`non-text`;return n||os(e)?.trim()?`text`:`none`}function Yf(e){return np.test(e)}function Xf(e){let t=M(e);if(!t||F(t.role)!==`assistant`)return!1;if(typeof t.text==`string`)return Yf(t.text);let n=is(e);return typeof n==`string`&&Yf(n)}function Zf(e){let t=M(e);if(!t||F(t.role)!==`toolresult`)return!1;let n=is(e);return typeof n==`string`&&n.trim()===rp}function Qf(e){return Yf(e)||uu(e).shouldSkip}function $f(e){return Xf(e)||fu(e)}function ep(e){return!($f(e)||Zf(e)||fs(e))}function tp(e){return Array.isArray(e)?e.filter(ep):[]}var np,rp;function ip(){return(ip=e((()=>{He(),pu(),hs(),np=/^\s*NO_REPLY\s*$/,rp=`[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.`})))()}var ap,op;function sp(){return(sp=e((()=>{x(),ap={chat:{codeBlock:{languageFallback:`Code`,hiddenLine:`1 hidden line`,hiddenLines:`{count} hidden lines`,showHiddenLine:`Show 1 hidden line`,showHiddenLines:`Show {count} hidden lines`,enableWrap:`Enable word wrap`,disableWrap:`Disable word wrap`,jsonView:`JSON view`,jsonTree:`Tree`,jsonRaw:`Raw`,jsonArrayItem:`Array ({count} item)`,jsonArrayItems:`Array ({count} items)`,jsonObjectKeys:`Object ({count} keys)`}}},op=Object.assign(()=>Object.assign(_.chat.codeBlock,ap.chat.codeBlock),{catalog:ap})})))()}function cp(e){let t=M(e)?.approvalReviews;return Array.isArray(t)?t.slice(-16).map(Yr).filter(e=>e!==null):[]}function lp(e,t,n){return{...M(e)??(e===void 0?{}:{toolDetails:e}),approvalReviews:[...t],...n?{approvalReviewOutcome:n}:{}}}function up(e){let t=M(e)?.approvalReviewOutcome;return t===`approved`||t===`denied`||t===`reviewing`?t:void 0}function dp(e,t=[]){return t.includes(`denied`)||e.some(e=>[`denied`,`timed_out`,`aborted`].includes(e.status))?`denied`:t.includes(`reviewing`)||e.some(e=>e.status===`in_progress`)?`reviewing`:t.includes(`approved`)||e.some(e=>e.status===`approved`)?`approved`:null}function fp(){return(fp=e((()=>{Qr()})))()}function pp(e){return typeof e.itemId==`string`&&e.itemId.trim().length>0}function mp(e){return e.boundaryMarker!==!0&&!pp(e)}function hp(e,t){return t.trim()&&(e===null||t.startsWith(e))?t:e}function gp(e,t){return!t||!e.startsWith(t)?e:e.slice(t.length).trimStart()}function _p(e,t=e=>e){let n=null;for(let r of e)mp(r)&&(n=hp(n,t(r.text)));return n}function vp(){return(vp=e((()=>{})))()}function yp(e,t,n){let r=n.trim(),i={operation:t,sourcePath:r,path:r,lines:[],stat:{added:0,removed:0}};return e.sections.push(i),i}function bp(e,t,n){n.kind===`add`?t.stat.added+=1:n.kind===`del`&&(t.stat.removed+=1),e.storedRows<400?(t.lines.push(n),e.storedRows+=1):e.truncated=!0}function xp(e,t){t.lines.length!==0&&t.lines.at(-1)?.kind!==`skip`&&bp(e,t,{kind:`skip`,text:``})}function Sp(e){let t=e.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);return t?{oldLine:Number.parseInt(t[1]??``,10),oldLeft:t[2]===void 0?1:Number.parseInt(t[2],10),newLine:Number.parseInt(t[3]??``,10),newLeft:t[4]===void 0?1:Number.parseInt(t[4],10)}:{}}function Cp(e,t,n,r){let i=n.startsWith(`+`)?`add`:n.startsWith(`-`)?`del`:`ctx`,a=i===`del`?r?.oldLine:r?.newLine;return r&&(i!==`ctx`||r.oldLine!==void 0&&r.newLine!==void 0)&&(i!==`add`&&r.oldLine!==void 0&&(r.oldLine+=1,r.oldLeft=Math.max(0,(r.oldLeft??0)-1)),i!==`del`&&r.newLine!==void 0&&(r.newLine+=1,r.newLeft=Math.max(0,(r.newLeft??0)-1))),bp(e,t,{kind:i,...a===void 0?{}:{lineNo:a},text:n===``?``:n.slice(1)}),r?.oldLeft===0&&r.newLeft===0?null:r}function wp(e){return e.operation===`update`&&e.path!==e.sourcePath?`Move ${e.sourcePath} → ${e.path}`:`${e.operation===`add`?`Add`:e.operation===`delete`?`Delete`:`Update`} ${e.path}`}function Tp(e){if(e.sections.length===0)return null;let t=[...new Set(e.sections.map(e=>e.path).filter(Boolean))],n=e.sections.map(({operation:e,path:t,sourcePath:n})=>({operation:e,path:t,...e===`update`&&n!==t?{oldPath:n}:{}})),r=e.sections.reduce((e,t)=>({added:e.added+t.stat.added,removed:e.removed+t.stat.removed}),{added:0,removed:0}),i=[],a=e.truncated,o=e=>{i.length<400?i.push(e):a=!0};for(let[t,r]of e.sections.entries()){e.sections.length>1&&(i.length>0&&i.at(-1)?.kind!==`skip`&&o({kind:`skip`,text:``}),o({kind:`file`,path:r.path,...`oldPath`in n[t]?{oldPath:r.sourcePath}:{},text:wp(r)}));for(let e of r.lines)o(e)}a&&i.at(-1)?.kind!==`skip`&&i.push({kind:`skip`,text:``});let s=e.sections.length===1?e.sections.at(0):void 0,c=s&&s.operation===`update`&&s.sourcePath!==s.path?{from:s.sourcePath,to:s.path}:void 0;return{paths:t,fileOperations:n,lines:i,stat:r,...c?{move:c}:{}}}function Ep(e){let t={sections:[],storedRows:0,truncated:!1},n=null,r=`outside`,i=null;for(let a of U(e)){let e=r===`update`?a.trimEnd():a.trim(),o=e.match(/^\*\*\* (Update|Add|Delete) File: (.+)$/);if(o){let e=o[1],a=o[2];if(!e||!a)continue;r=e.toLowerCase(),n=yp(t,r,a),i=null;continue}let s=r===`update`?e.match(/^\*\*\* Move to: (.+)$/):null;if(s&&n){n.path=s[1]?.trim()??n.path;continue}if(!(e===`*** Begin Patch`||e===`*** End Patch`||e===`*** End of File`||e.startsWith(`*** Environment ID:`))&&n){if(r===`update`&&a.startsWith(`@@`)){xp(t,n),i=Sp(a);continue}r===`add`&&a.startsWith(`+`)?bp(t,n,{kind:`add`,lineNo:n.stat.added+1,text:a.slice(1)}):r===`update`&&(a===``||a.startsWith(`+`)||a.startsWith(`-`)||a.startsWith(` `))&&(i=Cp(t,n,a,i))}}return Tp(t)}function Dp(e){return(e.split(` `,1)[0]?.trim()??``).replace(/^[ab]\//,``)}function Op(e,t,n,r,i){let a=Dp(n.slice(4)),o=Dp(r.slice(4)),s=a===`/dev/null`?`add`:o===`/dev/null`?`delete`:`update`,c=o===`/dev/null`?a:o,l=i&&t?t:yp(e,s,c);return l.operation=s,l.sourcePath=a||l.sourcePath,l.path=c||l.path,l}function kp(e){let t={sections:[],storedRows:0,truncated:!1},n=U(e),r=null,i=null,a=!1;for(let e=0;e<n.length;e++){let o=n[e];if(o===void 0)continue;let s=o.match(/^diff --git a\/(.+) b\/(.+)$/);if(s){let e=s[1],n=s[2];if(!e||!n)continue;r=yp(t,`update`,n),r.sourcePath=e,i=null,a=!0;continue}let c=n[e+1];if(!i&&o.startsWith(`--- `)&&c?.startsWith(`+++ `)){r=Op(t,r,o,c,a),a=!1,e+=1;continue}if(o.startsWith(`@@`)){r&&xp(t,r),i=Sp(o),a=!1;continue}/^index |^new file mode |^deleted file mode |^similarity index /.test(o)||r&&i&&(o.startsWith(`+`)||o.startsWith(`-`)||o.startsWith(` `))&&(i=Cp(t,r,o,i))}return Tp(t)}function Ap(e){let t=typeof e==`string`?e:M(e)?.type;return t===`add`||t===`delete`?t:`update`}function jp(e){let t=M(e),n=t?.added,r=t?.removed;return typeof n==`number`&&typeof r==`number`&&n>=0&&r>=0?{added:Math.trunc(n),removed:Math.trunc(r)}:null}function Mp(e,t,n){let r=null;for(let i of U(n))i.startsWith(`@@`)?(xp(e,t),r=Sp(i)):r&&(i.startsWith(`+`)||i.startsWith(`-`)||i.startsWith(` `))&&(r=Cp(e,t,i,r))}function Np(e){let t={sections:[],storedRows:0,truncated:!1};for(let n of e){let e=M(n),r=D(e?.path)?.trim();if(!e||!r)continue;let i=Ap(e.kind),a=yp(t,i,r),o=D(M(e.kind)?.move_path??M(e.kind)?.movePath);if(o&&(a.path=o.trim()),typeof e.diff==`string`){if(i===`update`)Mp(t,a,e.diff);else{let n=i===`add`?`add`:`del`;for(let[r,i]of U(e.diff).entries())bp(t,a,{kind:n,lineNo:r+1,text:i})}}let s=jp(e.stat);s&&(a.stat=s),t.truncated||=e.diffTruncated===!0}return Tp(t)}function Pp(e){let t=M(e);if(!t)return null;if(Array.isArray(t.changes)){let e=Np(t.changes);if(e)return e}let n=D(t.patch)??D(t.input)??D(t.diff);return n?/(?:^|\n)\s*\*\*\* (?:Begin Patch|Update File:|Add File:|Delete File:)/.test(n)?Ep(n):kp(n):null}function Fp(){return(Fp=e((()=>{Ac()})))()}function Ip(e){return D(e?.path)??D(e?.file_path)??D(e?.filePath)??D(e?.file)??D(e?.filepath)??D(e?.filename)??D(e?.notebook_path)}function Lp(e){let t=e.replace(/\\/g,`/`).replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n<=0?{base:t||e}:{base:t.slice(n+1),dir:t.slice(0,n)}}function Rp(e){let t=[],n=0,r=!1,i=Array.isArray(e.edits)?e.edits:[e];for(let[e,a]of i.entries()){if(e>=Zp){r=!0;break}let i=M(a);if(!i)continue;let o=i.oldText??i.old_string??i.oldString??i.old_str,s=i.newText??i.new_string??i.newString??i.new_str;if(typeof o==`string`&&typeof s==`string`){let e=o.length+s.length;if(n+e>Qp){r=!0;break}n+=e,t.push({oldText:o,newText:s})}}return{pairs:t,truncated:r}}function zp(e){let t=M(e),n=D(t?.diff);if(!n)return null;let r=wc(n);return r?{diff:r.lines,...r.kind===`complete`?{stat:r.stat}:{}}:null}function Bp(e){if(!e)return null;let{pairs:t,truncated:n}=Rp(e);if(t.length===0)return n?{diff:[{kind:`skip`,text:``}]}:null;let r=Oc(t.map(e=>Ec(e.oldText,e.newText)),{truncated:n});return r.lines.length===0?null:{diff:r.lines,...r.kind===`complete`?{stat:r.stat}:{}}}function Vp(e){let t=D(e?.insert_text);if(!t)return null;let n=Ec(``,t).lines;return n.length>0?{diff:n}:null}function Hp(e){let t=Pp(e);if(!t)return null;let n={kind:`edit`,fileOperations:t.fileOperations,diff:t.lines,stat:t.stat};if(t.paths.length>1)return{...n,target:`${t.paths.length} files`};if(t.move){let e=Lp(t.move.from),r=Lp(t.move.to),i=e.dir===r.dir?e.dir:void 0;return{...n,target:i?`${e.base} → ${r.base}`:`${t.move.from} → ${t.move.to}`,targetDetail:i}}let r=t.paths[0]?Lp(t.paths[0]):null;return{...n,target:r?.base,targetDetail:r?.dir}}function Up(e,t,n){if(Jp.has(e))switch(n){case`view`:return`read`;case`str_replace`:case`insert`:case`undo_edit`:return`edit`;case`create`:return`write`;default:return`generic`}for(let[t,n]of Xp)if(n.has(e))return t;return t&&typeof t.command==`string`&&Object.keys(t).length<=3?`command`:`generic`}function Wp(e){let t=Yt(e),n=M(t.args),r=n??M(e.details),i=t.name.trim().toLowerCase();if(r){let t=$p.get(r);if(t&&t.details===e.details&&t.name===i)return t.view}let a=Kp(e,n,i);return r&&$p.set(r,{details:e.details,name:i,view:a}),a}function Gp(e){return e.match(/^\s*(?:\/(?:usr\/)?bin\/)?(?:ba|z|da)?sh\s+-l?c\s+(['"])([\s\S]+)\1\s*$/)?.[2]??e}function Kp(e,t,n){let r=Jp.has(n)?D(t?.command)?.trim().toLowerCase():void 0,i=Up(n,t,r);if(i===`command`){let e=t?D(t.command):void 0;return{kind:i,title:qp.has(n)?gn(t):void 0,command:e&&Gp(e),code:dn(t)}}if(i===`edit`&&Yp.has(n))return Hp(t)??{kind:`generic`};if(i===`read`||i===`edit`||i===`write`){let n=Ip(t);if(!n)return{kind:`generic`};let{base:a,dir:o}=Lp(n),s={kind:i,target:a,targetDetail:o};if(i===`read`)return s;let c=zp(e.details);if(c)return{...s,...c};if(i===`edit`){let e=r===`insert`?Vp(t):r===`undo_edit`?null:Bp(t);return{...s,...e}}let l=M(e.details);if(l?.changed===!1)return s;let u=t?D(r===`create`?t.file_text:t.content):void 0;if(!u)return s;let d=Dc(u);return{...s,diff:d,...l&&l.created!==!0?{}:{stat:{added:U(u).length,removed:0}}}}if(i===`search`){let e=t?D(t.pattern)??D(t.query)??D(t.glob):void 0,n=Ip(t);return!e&&!n?{kind:`generic`}:{kind:i,target:e??n,targetDetail:e?n:void 0}}if(i===`fetch`){let e=t?D(t.url):void 0;return e?{kind:i,target:e}:{kind:`generic`}}return{kind:`generic`}}var qp,Jp,Yp,Xp,Zp,Qp,$p;function em(){return(em=e((()=>{pn(),yn(),Ac(),Fp(),qp=new Set([`bash`,`exec`,`shell`,`run_command`,`run_terminal_cmd`]),Jp=new Set([`str_replace_editor`,`str_replace_based_edit_tool`]),Yp=new Set([`apply_patch`,`applypatch`,`patch`]),Xp=[[`command`,qp],[`read`,new Set([`read`,`read_file`,`readfile`,`notebookread`,`notebook_read`])],[`edit`,new Set([`edit`,`edit_file`,`multiedit`,`multi_edit`,`notebookedit`,`notebook_edit`,...Yp])],[`write`,new Set([`write`,`write_file`,`create_file`])],[`search`,new Set([`grep`,`find`,`glob`,`ls`,`list`,`codebase_search`])],[`fetch`,new Set([`web_fetch`,`webfetch`,`fetch`])]],Zp=8,Qp=12e4,$p=new WeakMap})))()}function tm(e,t){let[n=``,...r]=e.trim().split(/\s+/u),i=im.get(n.toLowerCase()),a=am.get(r.at(-1)?.toLowerCase()??``);if(a&&r.pop(),n.toLowerCase()===`macintel`&&(t===`Mac`||t===`iPad`))return{label:[t===`Mac`?`macOS`:`iPadOS`,...r].join(` `),architecture:a};let o=n===n.toLowerCase()?`${n.charAt(0).toUpperCase()}${n.slice(1)}`:n;return{label:[i?`macOS`:rm.get(n.toLowerCase())??o,...r].join(` `),architecture:i??a}}function nm(e,t){let{label:n,architecture:r}=tm(e,t);return r?`${n} (${r})`:n}var rm,im,am;function om(){return(om=e((()=>{rm=new Map([[`macos`,`macOS`],[`darwin`,`macOS`],[`win32`,`Windows`],[`win64`,`Windows`],[`windows`,`Windows`],[`linux`,`Linux`],[`freebsd`,`FreeBSD`],[`openbsd`,`OpenBSD`],[`netbsd`,`NetBSD`],[`ios`,`iOS`],[`ipados`,`iPadOS`],[`watchos`,`watchOS`],[`android`,`Android`],[`web`,`Web`]]),im=new Map([[`macarm`,`ARM`],[`macarm64`,`ARM`],[`arm64-apple-darwin`,`ARM`],[`aarch64-apple-darwin`,`ARM`],[`x86_64-apple-darwin`,`Intel`]]),am=new Map([[`arm`,`ARM`],[`arm64`,`ARM`],[`aarch64`,`ARM`],[`armv7l`,`ARM`],[`armv8l`,`ARM`],[`x64`,`x64`],[`x86_64`,`x64`],[`amd64`,`x64`],[`x86`,`x86`],[`i386`,`x86`],[`i686`,`x86`]])})))()}var sm=t({requestVideoPoster:()=>um});function cm(){if(mm||pm>=2||fm.size===0)return;mm=!0;let e=()=>{mm=!1;for(let e of fm){if(pm>=2)break;fm.delete(e),e()}};typeof requestIdleCallback==`function`?requestIdleCallback(e,{timeout:500}):setTimeout(e,0)}function lm(e,t,n){let r=new AbortController,{signal:i}=r,a=new Promise(a=>{let o=()=>{fm.delete(u)},s=!1,c=e=>{s||(s=!0,r.abort(),o(),a(e))},l=()=>c(null);i.addEventListener(`abort`,l,{once:!0});let u=()=>{pm+=1;let r=document.createElement(`video`),a=document.createElement(`canvas`),u,d=setTimeout(l,2e3);o=()=>{clearTimeout(d),u!==void 0&&r.cancelVideoFrameCallback(u),r.removeAttribute(`src`),r.load(),a.width=a.height=0,--pm,cm()};let f={once:!0,signal:i},p=(e,t)=>{let n=2,i=()=>{!s&&--n===0&&t()};r.addEventListener(e,i,f),u=r.requestVideoFrameCallback(i)},m=()=>{try{a.width=t,a.height=n;let e=a.getContext(`2d`);if(!e)return l();let i=Math.max(t/r.videoWidth,n/r.videoHeight),o=r.videoWidth*i,s=r.videoHeight*i;e.drawImage(r,(t-o)/2,(n-s)/2,o,s),a.toBlob(c,`image/jpeg`,.8)}catch{l()}};if(r.preload=`metadata`,r.muted=!0,r.playsInline=!0,r.crossOrigin=`anonymous`,r.addEventListener(`error`,l,f),r.addEventListener(`loadedmetadata`,()=>{(!Number.isFinite(r.duration)||r.duration<=0||r.videoWidth*r.videoHeight>16777216)&&l()},f),typeof r.requestVideoFrameCallback!=`function`)return l();p(`loadedmetadata`,()=>{p(`seeked`,m),r.currentTime=Math.min(.1,r.duration/10)}),r.src=e,r.load()};fm.add(u),cm()});return{controller:r,owners:new Set,promise:a}}function um(e){let{key:t,src:n,width:r,height:i,signal:a}=e;if(a.aborted||![r,i].every(e=>Number.isInteger(e)&&e>0&&e<=512))return Promise.resolve(null);let o=dm.get(t)??lm(n,r,i);return dm.set(t,o),o.owners.has(a)||(o.owners.add(a),a.addEventListener(`abort`,()=>{o.owners.delete(a),o.owners.size===0&&(dm.delete(t),o.controller.abort())},{once:!0})),o.promise.then(e=>a.aborted?null:e)}var dm,fm,pm,mm;function hm(){return(hm=e((()=>{dm=new Map,fm=new Set,pm=0,mm=!1})))()}function gm(e){if(!e)return;let t=/^(?![A-Za-z]:[/\\])(?:\[[^\]]+\]|[^:@/\s]+):((?!\/\/)[^\s\\]+)$/u.exec(e)?.[1];try{if(!t){let n=new URL(e);if(!n.hostname||n.username||n.password)return;t=n.pathname}let n=t.split(`/`).findLast(Boolean),r=n?decodeURIComponent(n).replace(/\.git$/iu,``).trim():``;return r&&!/[/\\\p{Cc}]/u.test(r)&&r!==`.`&&r!==`..`?r:void 0}catch{return}}function _m(e){return e.map(({displayName:e,originUrl:t})=>{let n=t?.replace(/^github\.com:/iu,`git@github.com:`).replace(/^ssh:\/\/github\.com(?::22)?\//iu,`ssh://git@github.com/`),r=n?Zr(n):null,[i,a]=r?new URL(r.url).pathname.slice(1,-4).split(`/`):[];if(i&&a)return{owner:i,repo:a,aliases:[e]};let o=gm(t);return{aliases:o&&o.toLowerCase()!==e.toLowerCase()?[e,o]:[e]}})}function vm(e){let t=ym.get(e);if(t)return t;let r=n(e.snapshot),i=new Set,a={result:null,repositories:[],ready:!1},o=``,s=null,c,l=()=>{r.invalidate(),s=null,a={result:null,repositories:[],ready:!1}},u=()=>{for(let e of i)e()},d=()=>{let t=e.snapshot,n=JSON.stringify([e.connection.gatewayUrl,e.connectionRevision,t.selfUser?.id,t.hello?.auth?.recoveryScope,t.hello?.auth?.role,[...t.hello?.auth?.scopes??[]].toSorted(),An(t,`projects.list`,`operator.read`)]);return r.transition(t)||n!==o?(o=n,l(),!0):!1},f=(t=!1)=>{if(d(),t&&(l(),u()),s)return s;let n=r.capture();if(!n)return Promise.resolve();if(!An(e.snapshot,`projects.list`,`operator.read`))return a={result:{projects:[]},repositories:[],ready:!0},u(),Promise.resolve();let i=n.client.request(`projects.list`,{}).then(e=>{d(),r.isCurrent(n)&&(a={result:e,repositories:_m(e.projects),ready:!0})},()=>{d()}).finally(()=>{s===i&&(s=null,u())});return s=i,i},p={get snapshot(){return d()&&i.size&&f(),a},get loading(){return s!==null},refresh:f,subscribe(t){if(i.add(t),!c){let t=e.subscribe(()=>{d()&&(u(),f())}),n=e.subscribeEvents(e=>{e.event===`config.changed`&&f(!0)});c=()=>{t(),n()}}return d(),a.ready||f(),()=>{i.delete(t),i.size||(c?.(),c=void 0,l())}}};return ym.set(e,p),p}var ym;function bm(){return(bm=e((()=>{Xr(),Mn(),ym=new WeakMap})))()}var xm,Sm;function Cm(){return(Cm=e((()=>{x(),xm={chat:{goals:{composerMode:`Goal`,sessionChanged:`Conversation changed. Cancel and select Goal again.`,start:`Start goal`,save:`Save goal`,startHint:`Enter your objective.`,editHint:`Save without starting a run.`,objectivePlaceholder:`What should this goal accomplish?`,cancel:`Cancel goal entry`,offline:`Reconnect to manage goals.`,busy:`Wait for this run to finish. Your draft is unchanged.`,annotationUnsupported:`Send or remove browser annotations first. Your draft is unchanged.`,actionPending:`Wait for the pending goal action.`,invalidRequest:`Goal update is invalid. Check the objective and try again.`,outcomeUnknown:`Goal update not confirmed. Check its outcome before making another change.`,recoveryTitle:`Goal update not confirmed`,recoveryHint:`Check the saved request. If it already succeeded, it will not run again.`,checking:`Checking goal update…`,checkOutcome:`Check outcome`,refreshCurrent:`Review current goal`,recoveryExpired:`The saved request expired after 24 hours. Review the current goal before making another change.`,recoveryUnavailable:`Goal update was not sent because its recovery request could not be saved.`,recoveryInvalid:`The saved goal request is invalid; review the current goal before retrying.`,admissionImmutable:`Retry or remove this request. Editing requires a new goal.`,edit:`Edit goal`,editChip:`Edit`,pause:`Pause goal`,pauseChip:`Pause`,resume:`Resume goal`,resumeChip:`Resume`,clear:`Clear goal`,clearChip:`Clear`,showDetails:`Show goal details`,hideDetails:`Hide goal details`}}},Sm=Object.assign(()=>Object.assign(_.chat.goals,xm.chat.goals),{catalog:xm})})))()}var wm,Tm;function Em(){return(Em=e((()=>{x(),wm={chat:{modelControls:{subscription:`Subscription`,api:`API`,default:`Default`,routes:{claudeCli:{label:`Claude CLI · native`,detail:`Runs through Claude Code, using its native login or a selected saved account. An explicitly selected API-key account has separate API billing; CLI does not mean free or subscription-only.`},anthropicApi:{label:`API · OpenClaw`,detail:`Uses the configured Anthropic API connection with OpenClaw's runtime. API-key usage is billed separately from a Claude subscription.`},anthropicConfigured:{label:`Configured route`,detail:`Anthropic models can use the API or Claude CLI, depending on their configured runtime and account. The provider name alone does not determine billing.`}},completionRoutes:{api:{label:`API · OpenClaw`,detail:`Uses the provider's API connection with OpenClaw's runtime. API usage is billed to that provider account.`},cli:{label:`{runtime} · native`,detail:`Runs through {runtime} using its own login. Billing follows the account it is signed in with; an API-key login is billed as API usage.`},harness:{label:`{runtime}`,detail:`Runs through the {runtime} agent runtime and the account it uses.`}},decisionLabel:`Decision Model`,decisionDisabled:`Disabled`,decisionInherit:`Use global default · {model}`,decisionUnavailable:`This decision model is unavailable. Enable its plugin or choose another model.`,decisionHelp:`Makes typed choices, scores, and yes/no judgments. Disabled until you select a decision model; chat models are not used as a fallback.`,decisionAgentHelp:`Use the global decision model, choose an override, or disable decisions for this agent.`,effort:`Effort`,faster:`Faster`,smarter:`Smarter`,fastMode:`Fast mode`,speed:`Speed`,standard:`Standard`,fast:`Fast`,ultrafast:`Ultrafast`,searchModels:`Search models`,noMatchingModels:`No models match your search`,configureModels:`Configure models`,selectionScopeSessionLabel:`This session`,selectionScopeAgentLabel:`Agent default`,selectionScopeGlobalLabel:`Global default`,selectionScopeSession:`Selecting a model changes only this session.`,selectionScopeAgent:`Selecting a model updates this agent's default.`,selectionScopeGlobal:`Selecting a model updates the global default.`,defaultWithModel:`Default ({model})`,defaultWithLevel:`Default ({level})`,fastHelp:`Faster responses, higher usage of limits.`,contextWindow:`Context window`,contextWindowAria:`Context window: {state}`,speedUnsupported:`Speed control is not supported for this model.`,contextActiveAndMax:`{active} active · {maximum} max`,chatOnly:`Chat only`,chatOnlyHelp:`This model can chat, but it cannot use tools. Choose another model for files, commands, web, or media tasks.`,loadingModels:`Loading models…`,refreshingModels:`Refreshing models…`,refreshingProviderModels:`Refreshing models for {providers}…`,modelPending:`Model pending`,modelStarting:`Starting…`,modelsUnavailable:`Models unavailable`,runtimeUnavailable:`This harness is unavailable for this model.`,modelsRefreshFailed:`Some models could not be refreshed. Open Models to try again.`,checkingProviderModels:`{providers}: checking models…`,noModelsAvailable:`No models available`,noPermittedModels:`No models are permitted by your administrator.`,selectionRequired:`Choose a model`,restrictedModelsHelp:`Your administrator centrally configures the models available here.`,emptyModelsAction:`Manage models`,providerModels:`{provider} models`,useDefaultReasoning:`Use default reasoning ({level})`,fastResponsesAria:`Fast responses: {state}`},nativeRuntimeRecovery:{title:`Use {runtime}’s native permissions?`,confirm:`Continue for this chat`,confirmMessage:`{runtime} will run on the Gateway host under its own permissions. OpenClaw’s optional native tool and sandbox restrictions, including workspace-only restrictions, will not be enforced for this harness. Only this chat is changed; other chats and global configuration stay unchanged. OpenClaw-hosted tools keep their own policy checks.`,retryMessage:`Continue will retry the message you just sent.`,chooseAnother:`Choose another model to keep this chat’s current execution restrictions.`,failed:`Could not change this chat’s execution permissions: {error}`,refreshFailed:`The model and permissions were saved, but refreshing this chat failed: {error}`,reasons:{"sandbox-required":`{runtime} cannot run because this chat requires a sandbox.`,sandbox:`{runtime} uses native tools that cannot run inside the OpenClaw sandbox.`,"workspace-only":`{runtime} cannot enforce this chat’s OpenClaw workspace-only restriction.`,"permission-mode":`{runtime} cannot enforce this chat’s current execution permissions.`,"tool-policy":`{runtime} cannot enforce this chat’s OpenClaw native tool restrictions.`,"remote-execution":`{runtime} cannot use this chat’s remote execution target.`}},permissionControls:{label:`Execution permissions`,help:`Choose what available tools may do in this session. This does not change the tool profile.`,default:`Default`,defaultDescription:`Follow the agent's configured execution permissions.`,defaultWithMode:`Default ({mode})`,fullRequiresAdmin:`Full access requires operator.admin access.`,updateFailed:`Failed to update permissions: {error}`,refreshFailed:`Permissions were saved, but refreshing the session failed: {error}`,modes:{"read-only":{label:`Read Only`,description:`Agent tools can read within the session root, but cannot write or run commands.`},guarded:{label:`Guarded`,description:`A human reviews requests beyond the session root.`},workspace:{label:`Workspace`,description:`An AI reviewer checks requests beyond the session root.`},full:{label:`Full Access`,description:`No reviewer; files and commands are unrestricted.`}}}}},Tm=Object.assign(()=>{_.chat=Object.assign({},_.chat,wm.chat)},{catalog:wm})})))()}function Dm(e){return e?.source===`session-key`||e?.source===`session`}function Om(e,t){if(!e||!t||e.agentRuntime?.id===t)return e;let n=e.runtimeChoices?.find(e=>e.agentRuntime.id===t);return n?{id:e.id,name:e.name,provider:e.provider,alias:e.alias,tags:e.tags,apiKeySupported:e.apiKeySupported,...n}:void 0}function km(){return(km=e((()=>{})))()}function Am(e){return Km.has(be(e??``))}function jm(e){return Object.hasOwn(e.modelOverrides,e.sessionKey)?e.modelOverrides[e.sessionKey]==null?null:`user`:e.activeSession?.modelOverrideSource}function Mm(e){let t=e.chatModelCatalog??[],n=e.modelOverrides;if(Object.hasOwn(n,e.sessionKey))return r(n[e.sessionKey],t);let i=e.activeSession;return Ne(i?.model,i?.modelProvider,t)}function Nm(e){return e.catalogRetired||e.catalogInitialized===!1?``:e.modelSelectionPolicy?.restricted?e.modelSelectionPolicy.defaultModel??``:Ne(e.agentDefaultModel,void 0,e.chatModelCatalog??[])||Ne(e.sessionsResult?.defaults?.model,e.sessionsResult?.defaults?.modelProvider,e.chatModelCatalog??[])}function Pm(e){let t=e.trim().toLowerCase(),n=t.indexOf(`/`);return n<=0?t:`${be(t.slice(0,n))}/${t.slice(n+1)}`}function Fm(e){return Pm(fe(e.id,e.provider))}function Im(e,t){let n=e.trim().toLowerCase();if(!n)return e;let r=Pm(e);for(let e of[!1,!0]){let i=t.find(t=>!!t.disabled===e&&(t.value.trim().toLowerCase()===n||Pm(t.value)===r));if(i)return i.value}return e}function Lm(e,t){let n=new Set,r=[];for(let i of e.toSorted((e,t)=>Number(e.available===!1)-Number(t.available===!1)||Number(e.provider.trim().toLowerCase()!==be(e.provider))-Number(t.provider.trim().toLowerCase()!==be(t.provider)))){if(i.manualSelectionAllowed===!1)continue;let e=pe(i,t),a=e.value.trim(),o=a.toLowerCase();a&&!n.has(o)&&(n.add(o),r.push({...e,...i.available===!1?{disabled:!0,unavailableReason:i.unavailableReason}:{}}))}return r}function Rm(e,t,n){let r=Pm(Ne(e,t,n)),i=n.filter(e=>Fm(e)===r);if(i.length&&!i.some(e=>e.available!==!1||!e.unavailableReason))return i.some(e=>e.unavailableReason===`cooldown`)?`cooldown`:i.some(e=>e.unavailableReason===`auth-failed`)?`auth-failed`:`missing-auth`}function zm(e,t,n){let r=Pm(Ne(e,t,n));return n.some(e=>e.manualSelectionAllowed!==!1&&Fm(e)===r)}function Bm(e){return e===`missing-auth`?w(`modelSetup.missingAuth`):e===`unsupported-runtime`?w(`chat.modelControls.runtimeUnavailable`):e===`auth-failed`?`${w(`modelSetup.failure.auth`)}. ${w(`modelSetup.failureGuidance.auth`)}`:void 0}function Vm(e){let t=e.chatModelCatalog??[],n=new Set(t.filter(e=>e.available!==!1).map(Fm)),r=t.filter(e=>e.available!==!1||!n.has(Fm(e))),i=y(r),a=Lm(r,i),o=Im(Mm(e),a),s=Im(Nm(e),a),c=me(s,i);return{currentOverride:o,defaultModel:s,defaultLabel:s?`Default (${c})`:`Default model`,modelOverrideSource:jm(e),options:a}}function Hm(e){if(e===`auto`||e===`ultrafast`)return e;if(e===`on`)return!0;if(e===`off`)return!1}function Um(e){let t=e?.effectiveFastMode??e?.fastMode,n=t===`auto`?w(`chat.commandResults.fast.autoValue`,{seconds:String(e?.fastAutoOnSeconds??60)}):w(t===`ultrafast`?`chat.modelControls.ultrafast`:t===!0?`chat.commandResults.fast.on`:`chat.commandResults.fast.off`),r=e?.effectiveFastModeSource,i=r===`session`?w(`chat.commandResults.fast.sourceSession`):r===`agent`?w(`chat.commandResults.fast.sourceAgent`):r===`config`?w(`chat.commandResults.fast.sourceModel`):r==="default"?w(`chat.commandResults.fast.sourceDefault`):``;return`${w(`chat.commandResults.fast.current`,{value:n})}${i}.`}function Wm(e,t,n,r){let i=e.trim().toLowerCase();if(!i)return n??r;let a=new Set,o=new Set,s=!1;for(let e of t){let t=e.id.trim().toLowerCase()===i,n=fe(e.id,e.provider).trim().toLowerCase()===i;if(!t&&!n)continue;s=!0;let r=be(e.provider);r&&(t&&a.add(r),n&&o.add(r))}return o.size===1?[...o][0]??null:n&&a.has(n)&&!o.has(n)?n:a.size===1?[...a][0]??null:s?null:n??r}function Gm(e){let t=e.fastModeTarget,n=be(t?.modelProvider??``)||null,i=be(e.sessionsResult?.defaults?.modelProvider??``)||null,a=Wm(e.currentModelOverride,e.catalog,n,i),o=t?.fastMode===`auto`||t?.fastMode===`ultrafast`?t.fastMode:t?.fastMode===!0?`on`:t?.fastMode===!1?`off`:``,s=a===`openai`,c=t?.effectiveFastMode??t?.fastMode,l=s?c===!0?`on`:c===`auto`||c===`ultrafast`?c:`off`:o,u=Pm(r(e.currentModelOverride||fe(t?.model??e.sessionsResult?.defaults?.model??``,a),e.catalog)),d=e.catalog.filter(e=>Fm(e)===u).map(e=>({entry:e,runtime:Om(e,t?.agentRuntime?.id)})),f=new Set(d.map(({entry:e,runtime:t})=>(t??e).supportsFastMode)),p=(f.size===1?[...f][0]:void 0)??Am(a),m=p&&d.length>0&&d.every(({runtime:e})=>e?.available===!0&&e.serviceTiers?.includes(`ultrafast`)),h=p||!!o,g=c===!0||c===`auto`||c===`ultrafast`,_=c===`auto`?`Auto`:c===`ultrafast`&&m?`Ultrafast`:g?`Fast`:s||l===`off`?`Standard`:`Default`,v=p?g?`off`:`on`:``;return{active:g,currentOverride:l,disabled:!h||!e.connected||e.loading||e.sending||!!e.activeRunId||e.stream!==null||!e.gatewayAvailable,label:_,nextValue:v,supported:h,ultrafastSupported:m}}var Km;function qm(){return(qm=e((()=>{l(),Em(),te(),Tm(),Km=new Set([`anthropic`,`minimax`,`minimax-portal`,`openai`,`xai`])})))()}function Jm(e,t,n=`text/plain`){Ym(e,new Blob([t],{type:n}))}function Ym(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.click(),setTimeout(()=>URL.revokeObjectURL(n),0)}function Xm(){return(Xm=e((()=>{})))()}function Zm(e,t,n){let r=n===void 0?Nt(Pt(e?.snapshot)??[],t?.trim()):N(n);return r?ka({id:r.id??r.email,name:r.name,identity:r.identity,profileAvatarUrl:r.avatarUrl}):null}function Qm(){return(Qm=e((()=>{Na()})))()}var $m,eh;function th(){return(th=e((()=>{x(),$m={mcpServers:{signIn:`Sign in`,authenticationSaved:`Authentication saved`,signInFailed:`Sign-in did not finish. Check the connector settings and try again.`,signInExpired:`This sign-in session ended. Close the dialog and sign in again.`,profileSignIn:`Sign in through the linked account in Models.`,requesterSignIn:`Each person signs in through this connector in chat.`,add:`Add server`,adding:`Adding…`,nameLabel:`Name`,transportLabel:`Transport`,transportStreamableHttp:`Streamable HTTP`,transportSse:`SSE`,transportStdio:`Stdio`,targetLabel:`URL or command`,nameInvalid:`Server names use letters, numbers, dots, dashes, or underscores.`,targetInvalid:`Enter a URL for HTTP transports or a valid command line for stdio.`,sessionEnableFailed:`The server was saved disabled globally, but enabling it for this session failed: {error}`,sessionChanged:`The active session changed before it could be enabled.`,sessionUnavailable:`The active session is unavailable; refresh and try again.`,nameTaken:`An MCP server named “{name}” already exists.`,missing:`MCP server “{name}” was not found in the configuration.`,missingTransport:`missing transport`,addedSuccess:`Added MCP server {name}.`,enabledSuccess:`Enabled MCP server {name}.`,disabledSuccess:`Disabled MCP server {name}.`,removedSuccess:`Removed MCP server {name}.`,configUnavailable:`Configuration is unavailable; refresh and try again.`,connectRequired:`Connect to the gateway to change MCP servers.`,adminRequired:`MCP server changes require operator.admin access.`,enable:`Enable`,disable:`Disable`,removeNamed:`Remove {name}`,working:`Working…`},mcpPage:{intro:`Connect and manage MCP servers that provide tools to OpenClaw.`,servers:`Servers`,oauth:`OAuth`,filtered:`Filtered`,configuredServers:`Configured servers`,noServers:`No MCP servers configured.`,setUpFirstServer:`Set up your first MCP server`,operatorCommands:`MCP operator commands`,operatorCommandsHint:`Status, diagnostics, auth, probing, and runtime reload.`,runtimeHint:`Edits save automatically. With automatic reload enabled, MCP connections rebuild on next use.`,toolFilter:`tool filter`,parallel:`parallel`,tlsVerifyOff:`TLS verify off`,mtls:`mTLS`}},eh=Object.assign(()=>{Object.assign(_.mcpServers,$m.mcpServers),Object.assign(_.mcpPage,$m.mcpPage)},{catalog:$m})})))()}function nh(e){let t=[],n=``,r=null,i=!1;for(let a=0;a<e.length;a+=1){let o=e[a]??``;if(!r&&/\s/u.test(o)){i&&=(t.push(n),n=``,!1);continue}if(i=!0,o===`\\`&&r===`"`){let t=1;for(;e[a+t]===`\\`;)t+=1;e[a+t]===`"`?(n+=`\\`.repeat(Math.floor(t/2)),t%2==0?r=null:n+=`"`,a+=t):(n+=`\\`.repeat(t),a+=t-1);continue}if(o===`\\`&&r===null){let t=e[a+1];t&&(t===`"`||t===`'`||/\s/u.test(t))?(n+=t,a+=1):n+=o;continue}if(r){o===r?r=null:n+=o;continue}if(o===`'`||o===`"`){r=o;continue}n+=o}return r?null:(i&&t.push(n),t)}function rh(e,t){if(t!==`stdio`)return bn(e)?{url:e,transport:t}:null;if(/^https?:\/\//i.test(e))return null;let[n,...r]=nh(e.trim())??[];return n?r.length>0?{command:n,args:r}:{command:n}:null}function ih(e){if(!e)return null;let t=M(M(e.mcp)?.servers)??{};return Object.entries(t).map(([e,t])=>{let n=M(t)??{},r=typeof n.url==`string`?n.url:``,i=typeof n.command==`string`?n.command:``,a=M(n.oauth),o=i?`stdio`:r?n.transport===`streamable-http`?`streamable-http`:n.transport===void 0||n.transport===`sse`?`sse`:`invalid`:`invalid`;return{name:e,enabled:n.enabled!==!1,transport:o,target:i||hr(r),auth:typeof n.auth==`string`?n.auth:null,signIn:n.auth===`oauth`?a?.authProfileId?`profile`:a?.identity===`per-requester`?`requester`:o!==`stdio`&&o!==`invalid`&&rh(r,o)?`operator`:null:null,toolFilter:!!n.toolFilter,parallel:n.supportsParallelToolCalls===!0,tls:n.sslVerify===!1?`verify-off`:n.clientCert||n.clientKey?`mtls`:null}}).toSorted((e,t)=>e.name.localeCompare(t.name))}function ah(e,t,n){return Object.hasOwn(e,t)?{error:w(`mcpServers.nameTaken`,{name:t})}:{patch:{[t]:n}}}function oh(e,t,n){return Object.hasOwn(e,t)?{patch:{[t]:{enabled:n?null:!1}}}:{error:w(`mcpServers.missing`,{name:t})}}function sh(e,t){return Object.hasOwn(e,t)?{patch:{[t]:null},replacePaths:st(e[t],`mcp.servers.${t}`)}:{error:w(`mcpServers.missing`,{name:t})}}async function ch(e,t){try{return await e.ensureLoaded(),await e.patchFromSnapshot(e=>{let n=M(M(e.mcp)?.servers)??{},r=t.buildPatch(n);return`error`in r?r:{options:{raw:{mcp:{servers:r.patch}},note:t.note,...r.replacePaths?.length?{replacePaths:r.replacePaths}:{}}}})?(await e.refresh(),{ok:!0}):{ok:!1,error:e.state.lastError??w(`mcpServers.configUnavailable`)}}catch(e){return{ok:!1,error:ye(e)}}}var lh;function uh(){return(uh=e((()=>{lr(),hn(),vt(),l(),th(),je(),eh(),lh=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/})))()}var dh,fh;function ph(){return(ph=e((()=>{x(),dh={skillDiscovery:{search:`Search skills`,settings:`Skill settings`,libraryStatus:`Library skill. Session selections control when it is used.`},skillLibrary:{library:`Skill library`,mine:`My skills`,team:`Team`,all:`All libraries`,inventory:`Agent & workspace`,create:`Create skill`,import:`Import skill`,save:`Save skill`,propose:`Save workspace proposal`,apply:`Apply to workspace`,slug:`Skill name`,slugHelp:`Use 1–63 lowercase letters, digits, or hyphens; start with a letter or digit.`,description:`Description`,file:`File`,newFile:`New text file path`,addFile:`Add file`,deleteFile:`Delete file`,deleteFileConfirm:`Remove {path} from the next saved bundle?`,fileExists:`That file already exists. Select it to edit its contents.`,binary:`Binary attachment. Its original bytes are preserved when you save.`,binaryRead:`Binary attachment retained with this revision.`,readOnly:`You can read this skill. Only its owner or an authorized administrator can edit it.`,personalTarget:`My skills. Save to your personal library; existing session selections change only when you explicitly attach or refresh.`,workspaceTarget:`Workspace: {agent}. Save creates a Workshop proposal; apply it after review.`,technicalDetails:`Skill details`,skillId:`Skill ID`,command:`Command`,ownerRevision:`{owner} · revision {revision}`,executable:`Executable supporting file`,defaultLimit:`New sessions select up to {count} default skills. Existing sessions keep their selected revisions.`,session:{selected:`Selected for this session`,attachable:`Add from your libraries`,pin:`Selected revision {revision}`,read:`Read selected revision`,empty:`No managed skills selected.`,refresh:`Refresh revision`,attachNamed:`Attach {name} · {owner}`,detach:`Detach`,queued:`Skill selections updated for the next turn. An active turn keeps its current revision.`,readOnly:`This is the exact revision selected for this session. Session access allows reading this pin, not editing its library or browsing other revisions.`},search:`Search names, descriptions, and owners`,empty:`No skills in this library. Create one or import a bundle.`,you:`You`,shared:`Shared with team`,private:`Private`,share:`Share with team`,unshare:`Make private`,transfer:`Transfer to team`,remove:`Remove skill`,enable:`Enable`,disable:`Disable`,revision:`Retained revision`,selectRevision:`Select a revision`,rollback:`Restore revision`,discard:`Discard your unsaved skill changes?`,conflict:`This skill changed since you opened it. Your draft is preserved. Copy your changes, then close and reopen the skill to review the current revision before saving.`,signIn:`Sign in with a Gateway profile to create personal skills. Administrators can still create skills in the selected agent workspace.`,connectionChanged:`The Gateway connection changed. Reopen the skill before saving.`,selectAgent:`Select an agent workspace before creating a skill.`,workspaceTextOnly:`Workshop imports support UTF-8 text files. Keep executable and binary assets in the file-authored workspace workflow.`,bundleLimit:`Use at most 256 files, 1 MiB per file, and 8 MiB per bundle or ZIP.`,missingSkill:`Choose SKILL.md together with its supporting files, or a folder containing SKILL.md at its root.`,uploadFailed:`The Gateway did not confirm the upload. Check your library before retrying the import.`,pending:`Proposal {id} saved for workspace {agent}. It is pending review and is not active yet.`,workspaceSaved:`Workspace {agent}: {state}. Start a new session to use the skill.`,importHelp:`Import a skill into your private library.`,importWorkspace:`Prepare a skill for review in the selected workspace.`,importClawHub:`Import {source} into your private library.`,files:`Files`,filesHelp:`SKILL.md with supporting files, a folder, or a ZIP (saved on import).`,workspaceFilesHelp:`SKILL.md with supporting text files, or a folder.`,chooseFilesButton:`Choose files`,chooseFolderButton:`Choose folder`,noFilesSelected:`No files selected.`,selectedFile:`{count} file · {names}`,selectedFiles:`{count} files · {names}`,clearSelection:`Clear`,confirm:{remove:`Remove {slug} from the library?`,transfer:`Transfer {slug} to team ownership? Team administrators will manage it.`},receipt:{published:`Saved {slug} to {target} library (owner: {owner}).`,unchanged:`Unchanged: {slug} in {target} library (owner: {owner}).`,removed:`Removed {slug} from {target} library (owner: {owner}).`}}},fh=Object.assign(()=>{_.skillLibrary=dh.skillLibrary,_.skillDiscovery=dh.skillDiscovery},{catalog:dh})})))()}function mh(e,t){let n=e&&t?vh(e,{agentId:t},{allowStale:!0}):void 0;return{...n,models:n?.models??[],hasSnapshot:n!==void 0,retired:e&&t?s(e,{agentId:t}):!1}}function hh(e,t){let n=Te.get(e)??new Set;return Te.set(e,n),n.add(t),()=>{n.delete(t)&&n.size===0&&Te.delete(e)}}function gh(e,{connected:t=!0,loading:n=!1,error:r=null,retired:i=!1,initialized:a=!0}={}){return{hasSnapshot:a&&!i&&(e.models.length>0||!n&&!r),initialized:a,retired:i,modelSelectionPolicy:e.modelSelectionPolicy,refreshFailed:e.refreshFailed,pendingProviders:e.pendingProviders,status:t?r?`error`:n?`loading`:a?`ready`:`idle`:`offline`}}function _h(e,t){return e.refreshFailed?t??w(e.models.length?`chat.modelControls.modelsRefreshFailed`:`chat.modelControls.modelsUnavailable`):null}function vh(e,t,{allowStale:n=!1}={}){let r=C.get(e)?.entries,a=i(S(t)),o=r?.get(a);if(o?.expiresAt!==void 0&&o.expiresAt<=Date.now()&&c(e,o),!o?.invalidated||n)return r&&o?.result&&(r.delete(a),r.set(a,o)),o?.result}function yh(e,t){let n=i(S(t)),r=Array.from(C.get(e)?.requests.get(n)?.values()??[]).flatMap(({active:e})=>e?[e.transportSettled]:[]);return r.length?Promise.allSettled(r).then(()=>{}):void 0}function bh(e,t,n){let r=C.get(e),a=i(S(t)),o=Array.from(r?.requests.get(a)?.values()??[]).find(({active:e})=>e&&r?.reads.has(e.read)&&!n.has(e.read))?.active;return o?.promise.then(()=>C.get(e)===r&&r?.entries.get(a)?.publishedRead===o.read.order?vh(e,t):void 0,()=>void 0)}function xh(e){let{client:t,cache:n,lane:r,timeoutMs:i}=e,a=new AbortController,o=O(),s=O(),c=typeof i==`number`&&Number.isFinite(i)?rr(i,{minMs:0}):void 0,l=c===void 0?void 0:Date.now()+c,u,d=!1,f=!1,p=e=>v.reject(new Pn({method:`models.list`,timeoutMs:e,requestSent:f})),h=()=>!v.settled&&!a.signal.aborted&&v.subscribers.size>0&&C.get(t)===n&&n.reads.has(v.read)&&r.active===v&&!r.queued,g=t=>{v.settled||(clearTimeout(u),n.reads.delete(v.read),v.settled=!0,r.queued===v&&(r.queued=void 0,e.releaseLane()),t())},_=()=>{if(s.resolve(),r.active!==v)return;r.active=void 0;let i=r.queued;i&&C.get(t)===n&&(r.queued=void 0,r.active=i,i.start()),e.releaseLane()},v={refresh:e.scope.refresh===!0,controller:a,read:_e(t,e.scope,a.signal),preparing:!0,settled:!1,subscribers:new Set,promise:o.promise,transportSettled:s.promise,resolve:e=>g(()=>o.resolve(e)),reject:e=>g(()=>o.reject(e)),start:()=>{if(d)return;if(d=!0,v.settled){_();return}let n=l===void 0?void 0:l-Date.now();if(e.queued&&c!==void 0&&n!==void 0&&n<=0){p(c),_();return}let r=v.read,a={...e.scope,...v.refresh?{refresh:!0}:{}};(async()=>{let e=!1,n=0,s=!1;for(;;){s&&c!==void 0&&(l=Date.now()+c,u=setTimeout(()=>p(c),c)),s=!1;try{let e=await(i===void 0?t.request(`models.list`,a):t.request(`models.list`,a,{timeoutMs:c===void 0?i:null,...c===void 0?{}:{onSent:()=>{f=!0}}}));ee(r,a,e),v.resolve(e);return}catch(r){let i=Re(r);if(e&&!i||!xr(r)||r.gatewayCode!==`UNAVAILABLE`||!r.retryable||!h()){v.reject(r);return}i?(clearTimeout(u),l=void 0,s=!0):e=!0;let a=O(),d=setTimeout(a.resolve,i?m(r,n++):rr(r.retryAfterMs??0,{minMs:0})),f=hh(t,()=>{h()||a.resolve()});o.promise.then(()=>a.resolve(),()=>a.resolve());try{await a.promise}finally{clearTimeout(d),f()}if(l!==void 0&&c!==void 0&&l<=Date.now()){p(c);return}if(!h()){v.reject(r);return}}}})().catch(v.reject).finally(_)}};return a.signal.addEventListener(`abort`,()=>v.reject(a.signal.reason),{once:!0}),c!==void 0&&(u=setTimeout(()=>p(c),c)),v}async function Sh(e,t){let{signal:n,timeoutMs:r,...a}=t;n?.throwIfAborted();let o=S(a);if(!o.refresh){let t=vh(e,o);if(t)return t}let s=oe(e),c=i(o),l=s.requests.get(c)??new Map;s.requests.set(c,l);let u=l.get(r)??{};l.set(r,u);let d=()=>{!u.active&&!u.queued&&(l.delete(r),l.size===0&&s.requests.delete(c))},f=u.queued??u.active;if(f&&!f.settled&&!f.controller.signal.aborted&&(f.preparing||!o.refresh&&s.reads.has(f.read)))return await Ir(f,{},n);let p=u.queued!==void 0,m=u.queued??xh({client:e,scope:o,timeoutMs:r,cache:s,lane:u,queued:u.active!==void 0,releaseLane:d});u.active?u.queued=m:u.active=m,m.preparing=!0,m.refresh||=o.refresh===!0;let h=Ir(m,{},n);return o.refresh&&se(e),C.get(e)===s?(p||o.refresh)&&(s.reads.delete(m.read),m.read=_e(e,{...o,...m.refresh?{refresh:!0}:{}},m.controller.signal)):m.reject(new DOMException(`Model catalog connection retired`,`AbortError`)),m.preparing=!1,u.active===m&&m.start(),await h}function Ch(e,t,n){return e.subscribeEvents(e=>{let r=Ee(e);if(r)t(r);else if(e.event===`models.snapshot`&&n){let r=e.payload;i(S(n))===i(S(r.scope))&&t(`refresh`)}})}function wh(){return(wh=e((()=>{sr(),$n(),Rn(),l(),Em(),re(),Pe(),Tm()})))()}function Th(e,t){Hn(Array.from(e.listeners.keys()),t,e=>console.error(`[chat-metadata] listener error:`,e))}function Eh({agentId:e,sessionKey:t,authProfileId:n}){return JSON.stringify([e?.trim()??``,t??null,n??null])}function Dh(e,t){let n=Eh(t),r=Ce.get(e);if(!r){let t=new Map;r={entries:t,invalidate:(n,r,i)=>{if(i!==void 0&&i?.catalogChanged!==!0&&(!n&&i?.reason!==`delete`&&i?.reason!==`cleanup`||i?.phase!==`reset`&&![`reset`,`patch`,`command-metadata`,`create`,`new`,`delete`,`recovery`,`cleanup`].some(e=>e===i?.reason)))return;let a=Array.from(t.values()).filter(e=>(i===void 0||n!==void 0||e.scope.sessionKey!==void 0)&&(r&&n?.sessionKey?f(r,e.scope.sessionKey,n.sessionKey,n.agentId,e.scope.agentId):(!n?.agentId||e.scope.agentId===n.agentId)&&(!n?.sessionKey||e.scope.sessionKey===n.sessionKey))&&(!n?.authProfileId||e.scope.authProfileId===n.authProfileId)),o=n?.sessionKey!==void 0&&Ie(i),s=o?oe(e):void 0,c=s&&new Set(Array.from(s.requests.values()).flatMap(e=>Array.from(e.values()).flatMap(({active:e})=>e?e.read:[])));for(let e of a)e.refreshRevision+=1,e.refreshAfter=o?Date.now()+zh:void 0,e.validateCatalog=e.listeners.size>0?c:void 0,e.result=void 0,e.writer=void 0,e.activeRequest?.controller.abort();for(let e of a)Th(e,{type:`invalidated`,scope:o?`session`:`full`,refreshSessionFacts:o||i===void 0&&!n?.sessionKey}),e.release()}},Ce.set(e,r)}let a=r.entries,o=a.get(n);if(o)a.delete(n),a.set(n,o);else{let r=S(t),s=i(r),c={scope:t,catalogController:new AbortController,listeners:new Map,refreshRevision:0,catalogRevision:0,release:()=>{c.listeners.size===0&&!c.activeRequest&&!c.queuedRequest&&(!c.result||a.size>Rh)&&(c.writer=void 0,a.get(n)===c&&(a.delete(n),l()))}},l=hh(e,e=>{e.type===`invalidated`&&e.matches(r,s)&&(c.catalogRevision+=1)});o=c,a.set(n,o);for(let e of a.values()){if(a.size<=Rh)break;e!==o&&e.release()}}return o}function Oh(e){return ir([e.models?.map(({manualSelectionAllowed:e,runtimeChoices:t,...n})=>({...n,runtimeChoices:t?.map(({manualSelectionAllowed:e,...t})=>t)})),e.accountSelection,e.modelSelectionPolicy])}function kh(e,t){let n={};t.writer=n;let r=()=>t.writer===n;return{isCurrent:r,publish:n=>{let{models:i,accountSelection:a,modelSelectionPolicy:o,...s}=n;if(r()){let n=!1,c=t.validateCatalog;if(c){t.validateCatalog=void 0;let l=t.catalogRevision,u=vh(e,t.scope),d=e=>!e||l!==t.catalogRevision||Oh({models:i,accountSelection:a,modelSelectionPolicy:o})!==Oh(e),f=u?void 0:bh(e,t.scope,c);f?f.then(n=>{r()&&d(n)&&(se(e,t.scope),Th(t,{type:`result`,result:s,catalogChanged:!0}))}):n=d(u),n&&se(e,t.scope)}t.result=s,Th(t,{type:`result`,result:s,...n?{catalogChanged:!0}:{}})}return t.release(),s},fail:e=>{r()&&Th(t,{type:`error`,error:e}),t.release()}}}function Ah(e,t,n){let r=kh(e,t),i=t.queuedRequest;if(i)return i.controller.signal.aborted&&(i.controller=new AbortController),i.publication=r,i.revalidation||=n,Th(t,{type:`loading`}),i.promise;let{promise:a,resolve:o,reject:s}=O(),c=t.activeRequest!==void 0,l={controller:new AbortController,promise:a,publication:r,revalidation:n,start:()=>{let n=l.publication;(async()=>{try{let r;try{c&&l.controller.signal.throwIfAborted();let n=0;for(;;){n>0&&l.controller.signal.throwIfAborted();try{r=await e.request(`chat.metadata`,t.scope);break}catch(e){if(!Re(e))throw e;await Yn(m(e,n++),l.controller.signal)}}}finally{t.activeRequest=void 0;let e=t.queuedRequest;t.queuedRequest=void 0,e&&(t.activeRequest=e,e.start())}o(n.publish(r))}catch(e){n.fail(e),s(e)}finally{t.release()}})()}};return t.activeRequest?t.queuedRequest=l:t.activeRequest=l,Th(t,{type:`loading`}),t.activeRequest===l&&l.start(),a}function jh(e,t){return Ce.get(e)?.entries.get(Eh(t))?.result}function Mh(e,t,n,r=()=>!0){let i=Dh(e,t);return i.listeners.set(n,r),()=>{i.listeners.delete(n),i.listeners.size===0&&(i.activeRequest?.controller.abort(),i.queuedRequest?.controller.abort(),i.catalogController.abort()),(t.sessionKey||t.authProfileId)&&i.listeners.size===0&&(i.refreshRevision+=1,i.writer=void 0,i.validateCatalog&&(i.validateCatalog=void 0,se(e,t))),i.refresh?.start(),i.release()}}function Nh(e,t){let n=Dh(e,t);if(n.result)return Promise.resolve(n.result);let r=n.queuedRequest??n.activeRequest;return r?.publication.isCurrent()&&!r.controller.signal.aborted?r.promise:Ah(e,n,!1)}function Ph(e,t){let n=Dh(e,t),r=n.queuedRequest??n.activeRequest;return r?.publication.isCurrent()&&!r.controller.signal.aborted&&(r.revalidation||r===n.queuedRequest)?(r.revalidation=!0,r.promise):Ah(e,n,!0)}function Fh(e,t){let n=Dh(e,t),{isCurrent:r,publish:i}=kh(e,n);return Th(n,{type:`loading`}),{isCurrent:r,publish:i}}function Ih(e,t){let n=Dh(e,t);n.refreshRevision+=1,n.refreshAfter=void 0;let r=n.refresh;n.refresh=void 0,r?.start()}function Lh(e,t,n){let r=Dh(e,t);r.catalogController.signal.aborted&&(r.catalogController=new AbortController),vh(e,t);let i=r.refresh,a=n?.kind===void 0&&i?.revision===r.refreshRevision&&!i.controller.signal.aborted&&!i.metadataRequired,o=n?.kind!==`startup`&&!a;if(i?.phase===`waiting`&&!i.controller.signal.aborted)return i.metadataRequired||=o,i.revalidateMetadata=n?.revalidateMetadata??i.revalidateMetadata,i.revision=r.refreshRevision,i.catalogRevision=r.catalogRevision,i.start(),i;if(i&&!i.controller.signal.aborted&&i.phase!==`inactive`&&i.revision===r.refreshRevision&&i.catalogRevision===r.catalogRevision&&!n?.revalidateMetadata&&(!o||i.metadataRequired||n?.kind===void 0))return i;let s=r.refreshRevision,c=r.catalogRevision,l=i?.revision===s&&!i.controller.signal.aborted&&i.catalogRevision===c&&i.phase!==`inactive`&&n?.kind===`metadata`?i.catalog:void 0,u=O(),d=O(),f=!1,p,m={controller:r.catalogController,catalog:u.promise,completed:d.promise,revision:s,catalogRevision:c,phase:`waiting`,metadataRequired:o,revalidateMetadata:n?.revalidateMetadata,isCurrent:()=>Ce.get(e)?.entries.get(Eh(t))===r&&m.revision===r.refreshRevision&&m.catalogRevision===r.catalogRevision,start:()=>{if(m.phase!==`waiting`)return;clearTimeout(p),vh(e,t);let n=r.refresh===m,i=n&&!m.controller.signal.aborted&&Array.from(r.listeners.values()).some(e=>e()),a=(r.refreshAfter??0)-Date.now();if(i&&a>0){p=setTimeout(m.start,a);return}i&&m.metadataRequired&&r.queuedRequest&&Nh(e,t);let o=s===r.refreshRevision&&c===r.catalogRevision?l:void 0,h=o&&i?void 0:yh(e,t),g=[r.activeRequest?.promise,h].filter(e=>e!==void 0);if(n&&g.length){f||(f=!0,Promise.allSettled(g).then(()=>{f=!1,m.start()}));return}if(!i){m.phase=`inactive`,u.resolve(void 0),d.resolve(),r.release();return}m.phase=`admitted`,m.revision=r.refreshRevision,m.catalogRevision=r.catalogRevision;let _=o??Sh(e,{...t,signal:m.controller.signal}),v=m.metadataRequired?m.revalidateMetadata?.()?Ph(e,t):Nh(e,t):Promise.resolve();_.then(u.resolve,u.reject),Promise.allSettled([v,u.promise]).then(()=>{d.resolve(),r.release()})}};return r.refresh=m,m.start(),m}var Rh,zh;function Bh(){return(Bh=e((()=>{ur(),tr(),Rn(),re(),Pe(),wh(),ae(),xe(),Rh=64,zh=2500})))()}function Vh(e,t,n){let r=e?.model||e?.modelProvider?e:t,i=Jh(n,r?.modelProvider??null,r?.model??null,e?.agentRuntime?.id),a=[e,Rr(e,t)?t:void 0,i].find(e=>e?.thinkingLevels!==void 0||e?.thinkingOptions!==void 0||e?.thinkingDefault!==void 0);if(a)return{agentRuntime:a.agentRuntime,thinkingLevels:a.thinkingLevels??a.thinkingOptions?.map(e=>({id:q(e),label:e})),thinkingDefault:a.thinkingDefault,reasoning:i?.reasoning}}function Hh(e,t,n=[]){let r=(Vh(e,t,n)?.thinkingLevels??[]).map(e=>q(e.id));return r.length>0?[`default`,...new Set(r.filter(e=>e&&e!=="default"))]:[]}function Uh(e,t,n=[]){let r=Vh(e,t,n)?.thinkingLevels;if(r===void 0)return w(`common.unknown`);let i=r.map(e=>e.label);return i.length===0?w(`common.none`):(i.includes(`default`)?i:[`default`,...i]).join(`, `)}function Wh(e,t,n,r=[]){let i=Gt(e);if(i)return i;let a=F(e);return(Vh(t,n,r)?.thinkingLevels??[]).map(e=>({id:q(e.id),label:F(e.label)})).find(e=>e.id===a||e.label===a)?.id}function Gh(e,t,n,r=[]){return Vh(e,t,r)?.thinkingLevels?.some(e=>q(e.id)===n||Gt(e.label)===n)}function Kh(e,t,n){let r=e?.thinkingLevel?.trim(),i=Vh(e,t,n);return r?i?.thinkingLevels?.find(e=>q(e.id)===q(r))?.label??r:i?.thinkingDefault??w(`common.unknown`)}function qh(e){let t=new Set,n=[];for(let r of e){let e=q(r.id);Vr(n,t,e,()=>Zh(e,r.label))}return n}function Jh(e,t,n,r){let i=r?.trim(),a=e.find(e=>{let r=e.agentRuntime?.id?.trim();return e.provider===t&&e.id===n&&(!i||!r||i===r||e.runtimeChoices?.some(e=>e.agentRuntime.id===i))});return i&&(a?.agentRuntime?.id||a?.runtimeChoices?.length)?Om(a,i):a}function Yh(e){let t=e.session??e.sessionsResult?.sessions?.find(t=>he(t.key,e.sessionKey)),n=t?.thinkingLevel,r=typeof n==`string`&&n.trim()?Gt(n)??n.trim():``,i=Vh(t,e.defaults??e.sessionsResult?.defaults,e.catalog),a=i?.thinkingLevels??[],o=i?.reasoning===!1&&a.length>0&&a.every(e=>q(e.id||e.label)===`off`),s=o?[]:a,c=i?.thinkingDefault??``,l=o&&r===`off`?``:r,u=qh(s),d=q(c),f={value:d,displayLabel:Xh(c)},p=l||d,m=u.findIndex(e=>e.value===p),h=l?`override`:`default`,g=l?u[m]?.label??Zh(l):f.displayLabel;return{selection:m>=0?{kind:`anchored`,source:h,value:p,displayLabel:g,index:m}:{kind:`unanchored`,source:h,value:p,displayLabel:g},inherited:f,options:u}}function q(e){return Gt(e)??F(e)}function Xh(e){return e?`Inherited: ${Qh(q(e))}`:w(`common.unknown`)}function Zh(e,t){let n=q(e);return!n||n===`off`?`Off`:Qh(t?.trim()||n)}function Qh(e){let t=F(e);if([`on`,`enable`,`enabled`].includes(t))return`On`;switch(q(e)){case`adaptive`:return`Adaptive`;case`minimal`:return`Minimal`;case`low`:return`Low`;case`medium`:return`Medium`;case`high`:return`High`;case`xhigh`:return`Extra high`;case`max`:return`Maximum`;case`ultra`:return`Ultra`;default:return e.charAt(0).toUpperCase()+e.slice(1)}}function $h(){return($h=e((()=>{Zt(),l(),zr(),ae()})))()}function eg(e,t,n){if(e.trimStart().startsWith(`/`))return!0;let r=e.slice(0,n),i=r.split(`
`).length-1,a=!1,o;ag??=new ri().disable([`inline`,`linkify`,`replacements`,`smartquotes`,`text_join`]);for(let e of ag.parse(r,{}))if(e.map&&(a=e.map[0]<=i&&e.map[1]>i),a){if([`fence`,`code_block`,`html_block`].includes(e.type))return!0;e.type===`inline`&&e.content&&(o=e.content)}if(o===void 0)return!0;let s=0,c=0,l=0,u=``,d=!1,f=!1,p=!1,m=0;for(let e=0;e<o.length;){let t=o[e++];if(s){if(t!=="`")continue;let n=1;for(;o[e]==="`";)n+=1,e+=1;s===n&&(s=0,m=e);continue}if(f){p?t===`>`&&(f=!1,m=e):u?t===u&&(u=``):t===`"`||t===`'`?u=t:t===`>`&&(f=!1,m=e);continue}if(t===`\\`){e+=1;continue}if(l){d?t===`>`&&(d=!1):u?t===u&&(u=``):(t===`"`||t===`'`)&&/\s/u.test(o[e-2]??``)?u=t:t===`<`&&o[e-2]===`(`?d=!0:t===`(`?l+=1:t===`)`&&--l===0&&(m=e);continue}if(t==="`")for(s=1;o[e]==="`";)s+=1,e+=1;else if(t===`[`)c+=1;else if(t===`]`&&c>0)--c,o[e]===`(`&&(l=1,e+=1);else if(t===`<`){let t=o.slice(e);p=/^[a-zA-Z][a-zA-Z0-9+.-]*:/u.test(t)||/^[^\s<>]*@/u.test(t),f=p||/^[a-zA-Z!?/]/u.test(t)}}if(s||l||f)return!0;let h=o.length-(n-t),g=h,_=/\s/u;for(;g>m&&!_.test(o[g-1]);)--g;let v=o.slice(g,h);if(v.toLowerCase().includes(`www.`)||/[/?#]/u.test(v))return!0;let y=!1;for(let e=0;e<v.length;e+=1){let t=v.charCodeAt(e);if(t===58&&y&&e+1<v.length)return!0;t>=65&&t<=90||t>=97&&t<=122?y=!0:y&&(t>=48&&t<=57||t===43||t===45||t===46)||(y=!1)}return!1}function tg(e){let t=0,n=J.length;for(;t<n;){let r=t+n>>>1;J[r]<e?t=r+1:n=r}return t}function ng(e){return Object.hasOwn(Nr,e)?Nr[e]:void 0}function rg(e){let t=[];for(let n=tg(e);n<J.length&&t.length<12;n+=1){let r=J[n];if(!r.startsWith(e))break;t.push(r)}return t}var J,ig,ag,og;function sg(){return(sg=e((()=>{ii(),Mr(),J=Object.keys(Nr).toSorted(),ig=J.reduce((e,t)=>Math.max(e,t.length),0),og=class{constructor(){this.context=null,this.snapshot=null}reset(){this.context=null,this.snapshot=null}find(e,t){if(this.snapshot?.value===e&&this.snapshot.caret===t)return this.snapshot.target;let n=this.resolve(e,t);return this.snapshot={value:e,caret:t,target:n},n}resolve(e,t){let n=e.slice(Math.max(0,t-ig-1),t),r=/:([a-z0-9_+-]+)$/u.exec(n);if(!r||!J[tg(r[1])]?.startsWith(r[1]))return this.context=null,null;let i=t-r[0].length;if(/[\p{L}\p{N}_/:\\]$/u.test(e.slice(Math.max(0,i-2),i)))return null;let a=t;for(;a-i<=ig&&/[a-z0-9_+-]/u.test(e[a]??``);)a+=1;if(/[a-z0-9_+-]/u.test(e[a]??``))return null;e[a]===`:`&&(a+=1);let o=e.slice(0,i);return this.context?.prefix!==o&&(this.context={prefix:o,literal:eg(e,i,t)}),this.context.literal?null:{start:i,end:a,query:r[1]}}}})))()}var cg,lg;function ug(){return(ug=e((()=>{x(),cg={chat:{camera:{title:`Take photo`,previewHint:`Preview your camera before taking a photo.`,reviewHint:`Use this photo or retake it. Your camera is off.`,photoAlt:`Captured photo`,requesting:`Waiting for your camera. Allow access if prompted.`,capturing:`Preparing your photo…`,capture:`Capture`,retake:`Retake`,usePhoto:`Use photo`,upload:`Upload photo`,retry:`Try again`,errorTitle:`Camera unavailable`,previewUnavailable:`Camera preview unavailable`,useNativeCamera:`Use device camera`,insecure:`Live preview requires HTTPS or localhost. Use your device camera or upload a photo. Your browser may show a camera or file picker.`,unsupported:`This browser cannot show a live camera preview. Use your device camera or upload a photo. Your browser may show a camera or file picker.`,permissionDenied:`Camera access was denied. Allow camera access in your browser and system settings, then try again.`,notFound:`No camera was found. Connect a camera, or upload a photo instead.`,unavailable:`The camera could not start. Check that another app is not using it, then try again.`,stopped:`Your camera stopped. Reconnect it and try again, or upload a photo instead.`,captureFailed:`The photo could not be captured. Try again, or upload a photo instead.`}}},lg=Object.assign(()=>Object.assign(_.chat,cg.chat),{catalog:cg})})))()}var dg,fg;function pg(){return(pg=e((()=>{x(),dg={skillsPage:{title:`Skills`,tabs:{all:`All`,ready:`Ready`,needsSetup:`Needs Setup`,disabled:`Disabled`},defaultAgent:`{name} (default)`,filterPlaceholder:`Filter installed skills`,shown:`{count} shown`,clawHub:`ClawHub`,clawHubSubtitle:`Search and install skills from the registry`,searchClawHub:`Search ClawHub skills…`,searching:`Searching…`,disconnected:`Not connected to gateway.`,empty:`No skills found.`,noClawHubResults:`No skills found on ClawHub.`,notScannedByClawHub:`Not scanned by ClawHub`,install:`Install`,installed:`Installed`,installing:`Installing…`,close:`Close`,by:`By`,latest:`Latest: v{version}`,platforms:`Platforms: {platforms}`,installNamed:`Install {name}`,notFound:`Skill not found.`,openDetails:`Open {name} details`,enabledNamed:`{name} enabled`,invalidLink:`ClawHub link invalid`,overview:`Overview`,skillCard:`Skill Card`,missingRequirements:`Missing requirements`,reason:`Reason: {reasons}`,disabled:`Disabled`,enabled:`Enabled`,apiKey:`API key`,getKey:`Get your key:`,saveKey:`Save key`,source:`Source:`,refreshing:`Refreshing…`,fullSecurityReport:`Full security report`,loadingSkillCard:`Loading Skill Card…`,skillCardNotLoaded:`Skill Card not loaded.`,verdict:{unavailable:`Unavailable`,clean:`Clean`,pending:`Pending`,blocked:`Blocked`,review:`Review`}}},fg=Object.assign(()=>{_.skillsPage=dg.skillsPage},{catalog:dg})})))()}var mg,hg;function gg(){return(gg=e((()=>{x(),mg={profilePage:{modelAccounts:{title:`Connected accounts`,addAccount:`Add account`,provider:`Provider`,method:`Sign-in method`,noMethods:`No personal sign-in methods are available. Ask your administrator for help.`,gateway:`Gateway`,gatewayUnavailable:`Endpoint unavailable`,person:`Person`,currentPerson:`Current person`,noPerson:`Not identified`,scope:`Scope`,personal:`Personal`,personalDescription:`Sign-in saves an account for this person on this Gateway. System and agent credentials are unchanged.`,signInUnavailable:`Sign-in not ready`,connectionSettings:`Connection settings`,unavailable:{identity:`Use the identity-enabled Gateway address supplied by your administrator, through Tailscale Serve or a trusted proxy. A shared token or device pairing alone does not identify a person.`,write:`Personal account sign-in requires operator.write access. Ask your administrator for access, then reconnect to the Gateway.`,profile:`Wait for your identity profile to load. If it does not appear, use Refresh or Set identity above to retry.`},description:`Choose the account new chats prefer. Existing chats keep their account choice. Gateway fallback rules still apply; this preference is not a billing guarantee.`,empty:`No personal default selected. New chats use the gateway's default account.`,linkedDescription:`Preferred for new chats with this provider. Clearing the default keeps the saved credential and existing chat choices.`,linkedStatus:`New chat default`,gatewayAccount:`Selected saved account`,selectAction:`Use for new chats`,savedAccounts:`Saved accounts`,loadMore:`Load more saved accounts`,inventoryFailed:`Could not load saved accounts. Refresh to retry.`,authTypes:{oauth:`Browser sign-in · saved account`,token:`Token · saved account`,api_key:`API key · saved account`},checkStatusAction:`Check status`,actionFailed:`Could not update connected accounts. Try again.`,statusFailed:`Could not check sign-in status. Check again or cancel this attempt.`,statusTimedOut:`Sign-in has not finished. Check its status or cancel and sign in again.`,notices:{connected:`Account added.`,cancelled:`Sign-in cancelled. No account was added by this attempt.`,expired:`Sign-in expired. Sign in again to start a new attempt.`,selected:`Default updated for new chats. Existing chats are unchanged.`,cleared:`New chats use the gateway default for this provider. Saved credentials and existing chats are unchanged.`},connectErrors:{exchange:`Sign-in failed while exchanging the authorization code. Sign in again.`,identity:`The account identity could not be verified. Sign in again with your own account.`,authority:`Your access changed before sign-in finished. Reconnect to the gateway and try again.`,unavailable:`The gateway could not save the account. Sign in again or ask an administrator for help.`},inputLabel:`Use an existing gateway credential`,inputDescription:`Admin only: choose an existing Gateway credential for this person's new chats. This does not sign in or change the stored credential.`,inputPlaceholder:`openai:alice`,linkAction:`Use for new chats`,unlinkAction:`Use gateway default`,connectAction:`Sign in`,cancelAction:`Cancel`}}},hg=Object.assign(()=>{_.profilePage=Object.assign({},_.profilePage,mg.profilePage)},{catalog:mg})})))()}function _g(e,t={}){let n=t.projection===`available-credentials`,r=e.profiles.filter(e=>[`ok`,`expiring`,`static`].includes(e.status)),i=n?r:e.profiles,a=i.filter(e=>e.type===`oauth`||e.type===`token`),o=i.find(e=>e.profileId===t.authProfileId),s=!!(e.apiKey||i.some(e=>e.type===`api_key`));if(n&&t.authProfileId&&!o||([`missing`,`expired`].includes(e.status)||n&&e.profiles.length>0)&&!e.apiKey&&r.length===0)return{kind:`missing`,label:w(`modelSetup.candidates.signInNeeded`)};if(a.length&&o?.type!==`api_key`){if(n&&s&&!o)return{kind:`subscription`,label:`${w(`chat.modelControls.api`)} / ${w(`chat.modelControls.subscription`)}`};let t=o??(n&&a.length===1&&!s?a[0]:void 0),r=e.profiles.filter(e=>e.type===`oauth`||e.type===`token`).length;return{kind:`subscription`,label:o?.displayName||(r===1?e.usage?.plan:void 0)||w(`chat.modelControls.subscription`),detail:t?.email}}return s?{kind:`api`,label:w(`chat.modelControls.api`)}:void 0}function vg(){return(vg=e((()=>{l(),Em(),Tm()})))()}function yg(e){let t=e.trim().toLowerCase();return Sg[t]??`${t.charAt(0).toUpperCase()}${t.slice(1)}`}function bg(e,t){let n=ei(e,t);return n?{label:w(`chat.modelControls.routes.${n}.label`),detail:w(`chat.modelControls.routes.${n}.detail`)}:t?{label:yg(t)}:void 0}function xg(e){if(!e)return;let t={runtime:e.label};return{label:w(`chat.modelControls.completionRoutes.${e.kind}.label`,t),detail:w(`chat.modelControls.completionRoutes.${e.kind}.detail`,t)}}var Sg;function Cg(){return(Cg=e((()=>{l(),Em(),Tm(),Sg={"claude-cli":`Claude CLI`,codex:`Codex`,"codex-cli":`Codex`,"google-gemini-cli":`Gemini CLI`,openclaw:`OpenClaw`}})))()}function wg(e){return Tg.add(e),()=>void Tg.delete(e)}function Y(){for(let e of Tg)try{e()}catch(e){console.error(`[openclaw] durable composer draft listener failed`,e)}}var Tg;function Eg(){return(Eg=e((()=>{Tg=new Set})))()}function Dg(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.blob instanceof Blob&&typeof t.mimeType==`string`&&(t.origin===void 0||t.origin===`paste`||t.origin===`file`)}function Og(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.itemId==`string`&&typeof t.signature==`string`&&typeof t.edited==`boolean`&&(t.dismissed===void 0||typeof t.dismissed==`boolean`)&&(t.reopenedAfterBoundary===void 0||typeof t.reopenedAfterBoundary==`string`)&&Array.isArray(t.answers)&&t.answers.every(e=>e&&typeof e==`object`&&typeof e.freeText==`string`&&Array.isArray(e.selected)&&e.selected.every(e=>typeof e==`string`))}function X(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.key!=`string`||typeof t.ownerKey!=`string`||typeof t.gatewayOwner!=`string`||typeof t.recoveryScope!=`string`||typeof t.scopeKey!=`string`||typeof t.updatedAt!=`number`||typeof t.writeId!=`string`||typeof t.text!=`string`||t.goalMode!==void 0&&!Sa(t.goalMode)||t.replyTarget!==void 0&&!wa(t.replyTarget)||typeof t.revision!=`number`||!Number.isSafeInteger(t.revision)||t.revision<=0||!Array.isArray(t.attachments)||!t.attachments.every(Dg)||t.questionDrafts!==void 0&&(!Array.isArray(t.questionDrafts)||!t.questionDrafts.every(Og)))return null;let n=t.modelSelection;return n!==void 0&&(!n||typeof n!=`object`||typeof n.agentId!=`string`||typeof n.model!=`string`||typeof n.thinkingLevel!=`string`||n.agentRuntime!==void 0&&typeof n.agentRuntime!=`string`)&&(t.modelSelection=void 0),t.mentions=gi(t.text,t.mentions),t}function kg(){return(kg=e((()=>{Ca(),yi(),Ta()})))()}var Ag=t({discardDurableComposerRecovery:()=>Vg,listDurableChatDraftPresence:()=>Ig,prepareDurableComposerRecovery:()=>Bg,readDurableComposerDraft:()=>Ug,restoreDurableComposerRecovery:()=>Hg,retireDurableComposerDraft:()=>Gg,retireDurableComposerDrafts:()=>qg,subscribeDurableComposerDraftChanges:()=>wg,writeDurableComposerDraft:()=>Wg});async function jg(){let e=await Ha();return e_!==e&&(e_=e,globalThis.setTimeout(()=>void Lg(e).catch(()=>void 0),0)),e}function Mg(e){return JSON.stringify([e.gatewayOwner,e.recoveryScope])}function Z(e){return JSON.stringify([e.gatewayOwner,e.recoveryScope,e.scopeKey])}function Ng(e){let t=Math.max(Date.now(),e+1,$g+1);return $g=t,t}function Q(e){return!!(e.text||e.goalMode||e.replyTarget||e.modelSelection||e.attachments.length>0||e.questionDrafts?.length)}function Pg(e,t){let n=Ng(e.revision);return{...e,revision:n,text:``,mentions:void 0,goalMode:void 0,replyTarget:void 0,modelSelection:void 0,attachments:[],questionDrafts:void 0,updatedAt:t,writeId:`fence:${n}`}}function Fg(e,t){if(!(zg(e)||e.updatedAt>t-Xg))return Q(e)?Pg(e,t):null}async function Ig(e){try{let t=(await Ha()).transaction($,`readonly`),n=await R(t.objectStore($).index(Jg).getAll(Mg(e))),r=new Map;for(let t of n){let n=X(t);n&&n.gatewayOwner===e.gatewayOwner&&n.recoveryScope===e.recoveryScope&&n.scopeKey.startsWith(Yg)&&r.set(n.scopeKey.slice(8),n.updatedAt>Date.now()-Xg?{revision:n.revision,active:Q(n)}:{revision:2**53-1,active:!1})}return await z(t),{status:`ready`,presence:r}}catch{return{status:`storage-failed`}}}async function Lg(e){let t=e.transaction($,`readwrite`),n=t.objectStore($),r=Date.now(),i=n.openCursor(),a=!1;i.addEventListener(`success`,()=>{try{let e=i.result;if(!e)return;let t=X(e.value),n=t?Fg(t,r):void 0;n===null?(e.delete(),a=!0):n&&(e.update(n),a=!0),e.continue()}catch{t.abort()}}),await z(t),a&&Y()}async function Rg(e,t,n){let r=(await R(e.index(Jg).getAll(t))).flatMap(e=>{let t=X(e);return t?[t]:[]}),i=[];for(let t of r){let r=Fg(t,n);if(r===null){e.delete(t.key);continue}if(r){e.put(r);continue}Q(t)&&!zg(t)&&i.push(t)}i.sort((e,t)=>t.updatedAt-e.updatedAt);for(let t of i.slice(Zg))e.put(Pg(t,n))}function zg(e){return!e.scopeKey.startsWith(Yg)&&!e.scopeKey.startsWith(`questions:v1:`)&&e.scopeKey.includes(`\0agent:`)&&Q(e)}async function Bg(e){let t;try{t=(await jg()).transaction($,`readwrite`);let n=t.objectStore($),r=(await R(n.index(Jg).getAll(Mg(e)))).map(X).filter(e=>e!==null),i=[],a=!1,o=r.filter(e=>Q(e)&&!zg(e)).length;for(let t of r){if(!zg(t))continue;if(t.gatewayOwner!==e.gatewayOwner||t.recoveryScope!==e.recoveryScope)throw Error(`Composer recovery owner mismatch`);let r=H(t.scopeKey),s=r&&![`global`,`main`].includes(r.sessionKey),c={...e,scopeKey:`${Yg}${r?T(r):t.scopeKey}`},l=s?await R(n.get(Z(c))):void 0,u=X(l);s&&u&&!Q(u)&&u.revision>t.revision?n.put(Pg(t,Date.now())):s&&o<Zg&&l===void 0?(n.put({...t,key:Z(c),scopeKey:c.scopeKey,updatedAt:Date.now()}),o++,n.put(Pg(t,Date.now())),a=!0):i.push({owner:{gatewayOwner:t.gatewayOwner,recoveryScope:t.recoveryScope},scopeKey:t.scopeKey,revision:t.revision,writeId:t.writeId,updatedAt:t.updatedAt,text:t.text,...t.goalMode?{goalMode:{...t.goalMode}}:{},...t.replyTarget?{replyTarget:{...t.replyTarget}}:{},attachmentNames:t.attachments.map(e=>e.fileName??e.mimeType)})}return await z(t),a&&Y(),{status:`ready`,entries:i}}catch{try{t?.abort()}catch{}return{status:`storage-failed`}}}async function Vg(e,t,n){let r;try{if(!n()||t.owner.gatewayOwner!==e.gatewayOwner||t.owner.recoveryScope!==e.recoveryScope)return{status:`conflict`};r=(await jg()).transaction($,`readwrite`);let i=r.objectStore($),a={...e,scopeKey:t.scopeKey},o=X(await R(i.get(Z(a))));return!o||!zg(o)||o.gatewayOwner!==e.gatewayOwner||o.recoveryScope!==e.recoveryScope||o.scopeKey!==t.scopeKey||o.key!==Z(a)||o.ownerKey!==Mg(e)||o.revision!==t.revision||o.writeId!==t.writeId||!n()?(r.abort(),{status:`conflict`}):(i.put(Pg(o,Date.now())),await z(r),Y(),{status:`discarded`})}catch{try{r?.abort()}catch{}return{status:`storage-failed`}}}async function Hg(e,t,n,r,i,a){let o;try{o=(await jg()).transaction($,`readwrite`);let s=o.objectStore($),c=X(await R(s.get(Z({...e,scopeKey:t.scopeKey})))),l=X(await R(s.get(Z(e))));if(!i()||!c||!zg(c)||c.gatewayOwner!==e.gatewayOwner||c.recoveryScope!==e.recoveryScope||c.revision!==t.revision||c.writeId!==t.writeId||(l?.revision??0)!==n||l?.writeId!==r||l&&Q(l))return o.abort(),{status:`conflict`};let u=Ng(Math.max(a,c.revision,l?.revision??0));return s.put({...c,key:Z(e),scopeKey:e.scopeKey,revision:u,writeId:`recovered:${u}`,updatedAt:Date.now()}),s.put(Pg(c,Date.now())),await z(o),Y(),{status:`persisted`,revision:u}}catch{try{o?.abort()}catch{}return{status:`storage-failed`}}}async function Ug(e){try{let t=(await jg()).transaction($,`readwrite`),n=t.objectStore($),r=await R(n.get(Z(e))),i=X(r),a=Date.now();if(!i)return r!==void 0&&n.delete(Z(e)),await z(t),{status:`not-found`};if(i.gatewayOwner!==e.gatewayOwner||i.recoveryScope!==e.recoveryScope||i.scopeKey!==e.scopeKey)return t.abort(),{status:`storage-failed`};let o=Fg(i,a);return o===null?(n.delete(i.key),await z(t),Y(),{status:`not-found`}):o?(n.put(o),await z(t),Y(),{status:`not-found`,revision:o.revision,writeId:o.writeId}):(await z(t),Q(i)?{status:`found`,draft:{revision:i.revision,writeId:i.writeId,text:i.text,...i.mentions?.length?{mentions:i.mentions}:{},...i.goalMode?{goalMode:i.goalMode}:{},...i.replyTarget?{replyTarget:{...i.replyTarget}}:{},...i.modelSelection?{modelSelection:i.modelSelection}:{},attachments:i.attachments,...i.questionDrafts?.length?{questionDrafts:i.questionDrafts}:{}}}:{status:`not-found`,revision:i.revision,writeId:i.writeId})}catch{return{status:`storage-failed`}}}async function Wg(e,t,n){if(t.attachments.reduce((e,t)=>e+t.blob.size,0)>Qg){let r=await Wg(e,{...t,attachments:[]},n);return r.status===`persisted`?{status:`payload-too-large`,revision:r.revision,writeId:r.writeId}:r}try{let r=(await jg()).transaction($,`readwrite`),i=r.objectStore($),a=Z(e),o=X(await R(i.get(a)));if(o?.revision===t.revision)return r.abort(),o.writeId===n.writeId?{status:`persisted`,revision:o.revision,writeId:o.writeId}:{status:`conflict`};if(!(o?o.revision===n.expectedRevision&&(n.expectedWriteId===void 0||o.writeId===n.expectedWriteId)||n.expectedWriteIds?.includes(o.writeId)===!0:n.expectedRevision===0&&n.expectedWriteId===void 0)||(o?.revision??0)>t.revision)return r.abort(),{status:`conflict`};let s=Date.now(),c={key:a,ownerKey:Mg(e),gatewayOwner:e.gatewayOwner,recoveryScope:e.recoveryScope,scopeKey:e.scopeKey,revision:t.revision,text:t.text,...t.mentions?.length?{mentions:t.mentions.map(e=>({...e}))}:{},...t.goalMode?{goalMode:t.goalMode}:{},...t.replyTarget?{replyTarget:{...t.replyTarget}}:{},...t.modelSelection?{modelSelection:{...t.modelSelection}}:{},attachments:t.attachments,...t.questionDrafts?.length?{questionDrafts:t.questionDrafts}:{},updatedAt:s,writeId:n.writeId};return i.put(c),await Rg(i,c.ownerKey,s),await z(r),Y(),{status:`persisted`,revision:t.revision,writeId:n.writeId}}catch{return{status:`storage-failed`}}}async function Gg(e,t=0,n){try{let r=(await jg()).transaction($,`readwrite`),i=r.objectStore($),a=Date.now(),o=await Kg(i,e,t,n,a);return o.status===`conflict`?(r.abort(),o):(await Rg(i,Mg(e),a),await z(r),Y(),o)}catch{return{status:`storage-failed`}}}async function Kg(e,t,n,r,i){t.scopeKey.startsWith(Yg)&&await Kg(e,{...t,scopeKey:`questions:v1:${t.scopeKey}`},n,r,i);let a=Z(t),o=X(await R(e.get(a)));if(r!==void 0&&(o?.revision??0)>=r)return{status:`conflict`};let s=Ng(Math.max(n,o?.revision??0)),c=`retired:${s}`;return e.put({key:a,ownerKey:Mg(t),gatewayOwner:t.gatewayOwner,recoveryScope:t.recoveryScope,scopeKey:t.scopeKey,revision:s,text:``,attachments:[],questionDrafts:void 0,updatedAt:i,writeId:c}),{status:`persisted`,revision:s,writeId:c}}async function qg(e,t){try{let n=(await jg()).transaction($,`readwrite`),r=n.objectStore($),i=Date.now();for(let n of t)await Kg(r,{...e,scopeKey:n.scopeKey},n.minimumRevision,n.retireBeforeRevision,i);return await Rg(r,Mg(e),i),await z(n),Y(),`completed`}catch{return`storage-failed`}}var $,Jg,Yg,Xg,Zg,Qg,$g,e_;function t_(){return(t_=e((()=>{Eg(),kg(),Ja(),Zo(),$=`composerDrafts`,Jg=`ownerKey`,Yg=`chat:v3:`,Xg=6048e5,Zg=20,Qg=26214400,$g=0,e_=null})))()}var n_,r_;function i_(){return(i_=e((()=>{x(),n_={cron:{suggestions:{title:`Starter automations`,schedules:{weekdayMornings:`Weekdays at 9:00 AM`,everyMorning:`Daily at 8:00 AM`,weekly:`Mondays at 9:00 AM`,hourly:`Every hour`},ideas:{repoPulse:{name:`Repo pulse`,tagline:`Overnight issues, PRs, and CI failures, ranked by urgency.`,prompt:`Review overnight activity in my repositories: new issues, pull requests, and CI failures. Summarize the three things that most need my attention today, each with a link and a one-line reason.`},standupGhostwriter:{name:`Standup ghostwriter`,tagline:`Your standup update, drafted from yesterday's work.`,prompt:`Draft my standup update from yesterday's commits, merged pull requests, and open review threads. Three bullets max: done, doing, blocked.`},hackerNewsScout:{name:`Hacker News scout`,tagline:`Three links worth your coffee, with hot takes.`,prompt:`Scan today's Hacker News front page for posts about AI agents, developer tooling, and TypeScript. Send me the three most interesting links, each with a one-line hot take.`},dependencyRadar:{name:`Dependency radar`,tagline:`Outdated or vulnerable dependencies, with upgrade notes.`,prompt:`Check my main project for outdated or vulnerable dependencies. List the notable updates with a one-line risk note each, and draft the upgrade command.`},watchdog:{name:`Night watch`,tagline:`Hourly health check with a one-line verdict.`,prompt:`Check that my services and gateway are healthy: scan recent logs for new errors, restarts, or unusual load. Reply with a single short all-clear line when everything is fine; if something looks broken, report what failed and where to start looking.`},polyglotMinute:{name:`Polyglot minute`,tagline:`One useful foreign phrase with your morning coffee.`,prompt:`Teach me one useful phrase in Japanese: the phrase, how to pronounce it, its literal meaning, and when to use it. Keep it under five lines.`}}},list:{viewLabel:`Automation views`,sessionFilter:`Automations attached to this session.`,showAll:`Show all automations`,searchPlaceholder:`Search automations`,newTask:`New automation`,filters:`Filters`,shownOf:`{shown} of {total}`,emptyTitle:`No automations yet`,emptyHint:`Describe what OpenClaw should do and when — it runs on schedule.`,noMatching:`No automations match the current filters.`,loadMore:`Load more`,loading:`Loading...`,schedulerOff:`Scheduler disabled`,refresh:`Refresh`,refreshing:`Refreshing...`,paused:`Paused`,autoDisabledRunFailures:`Auto-disabled · {count} run failures`,autoDisabledScheduleErrors:`Auto-disabled · {count} schedule errors`,tasksTab:`Automations`,activityTab:`Run history`}}},r_=Object.assign(()=>{Object.assign(_.cron,n_.cron)},{catalog:n_})})))()}function a_(e){if(!e)return w(`common.na`);let t=u(e,{weekday:`short`});return t===w(`common.na`)?t:`${t}, ${ne(e)} (${Le(e)})`}function o_(e){if(e.totalTokens==null)return w(`common.na`);let t=e.totalTokens??0,n=Br(e).tokens;return n?`${t} / ${n}`:String(t)}function s_(e){if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return ce(e)}}function c_(e){let t=e.state??{},n=t.nextRunAtMs?ne(t.nextRunAtMs):w(`common.na`),r=t.lastRunAtMs?ne(t.lastRunAtMs):w(`common.na`);return`${yf(e)} · next ${n} · last ${r}`}function l_(e){let t=e.schedule;if(t.kind===`at`){let e=Date.parse(t.at);return Number.isFinite(e)?`At ${ne(e)}`:`At ${t.at}`}return t.kind===`every`?`Every ${_t(t.everyMs)?.map(p).join(` `)??w(`common.na`)}`:t.kind===`on-exit`?`On exit: ${t.command}${t.cwd?` (cwd: ${t.cwd})`:``}`:t.kind===`stream`?`Stream: ${t.command.join(` `)}${t.cwd?` (cwd: ${t.cwd})`:``}`:`Cron ${t.expr}${t.tz?` (${t.tz})`:``}`}function u_(e){let t=e.payload;if(t.kind===`systemEvent`)return`System: ${t.text}`;if(t.kind===`command`)return`Command: ${t.argv.join(` `)}`;if(t.kind===`script`)return`Script: ${t.script}`;if(t.kind===`heartbeat`)return`Heartbeat monitor`;let n=`Agent: ${t.message}`,r=e.delivery;if(r&&r.mode!==`none`){let e=r.mode===`webhook`?r.to?` (${r.to})`:``:r.channel||r.to?` (${r.channel??`last`}${r.to?` -> ${r.to}`:``})`:``;return`${n} · ${r.mode}${e}`}return n}function d_(){return(d_=e((()=>{St(),l(),ue()})))()}export{Ch as $,Na as $a,js as $i,Sd as $n,kl as $r,dp as $t,$h as A,fo as Aa,xc as Ai,yf as An,bi as Ao,uu as Ar,Em as At,Nh as B,eo as Ba,lc as Bi,kd as Bn,ci as Bo,Jl as Br,om as Bt,lg as C,No as Ca,Mc as Ci,Ef as Cn,Hi as Co,bu as Cr,Um as Ct,rg as D,Bo as Da,Ac as Di,Sf as Dn,Ti as Do,hu as Dr,km as Dt,sg as E,Oo as Ea,Nc as Ei,Cf as En,xi as Eo,gu as Er,Rm as Et,Hh as F,lo as Fa,_c as Fi,mf as Fn,hi as Fo,su as Fr,vm as Ft,Mh as G,R as Ga,nc as Gi,Qd as Gn,Kl as Gr,hp as Gt,jh as H,Qa as Ha,Is as Hi,$d as Hn,oi as Ho,Wl as Hr,em as Ht,Wh as I,to as Ia,uc as Ii,pf as In,mi as Io,tu as Ir,hm as It,_h as J,Ba as Ja,Rs as Ji,tf as Jn,Zl as Jr,mp as Jt,wh as K,z as Ka,Bs as Ki,Zd as Kn,Ql as Kr,vp as Kt,Vh as L,no as La,sc as Li,Jd as Ln,fi as Lo,eu as Lr,um as Lt,q as M,mo as Ma,yc as Mi,vf as Mn,gi as Mo,ou as Mr,Cm as Mt,Yh as N,ho as Na,gc as Ni,uf as Nn,vi as No,cu as Nr,Sm as Nt,Uh as O,go as Oa,Sc as Oi,xf as On,Ci as Oo,pu as Or,Dm as Ot,Kh as P,po as Pa,pc as Pi,df as Pn,_i as Po,au as Pr,bm as Pt,hh as Q,Oa as Qa,Ms as Qi,Cd as Qn,jl as Qr,cp as Qt,Fh as R,ro as Ra,cc as Ri,af as Rn,ui as Ro,$l as Rr,sm as Rt,ug as S,Ro as Sa,Uc as Si,Df as Sn,Qi as So,yu as Sr,Gm as St,ng as T,jo as Ta,jc as Ti,wf as Tn,Ei as To,vu as Tr,Vm as Tt,Ih as U,Xa as Ua,oc as Ui,Md as Un,ai as Uo,ql as Ur,Wp as Ut,Lh as V,Za as Va,dc as Vi,cf as Vn,di as Vo,Xl as Vr,nm as Vt,Ph as W,Ja as Wa,Ks as Wi,Dd as Wn,Gl as Wr,_p as Wt,mh as X,La as Xa,Us as Xi,Ld as Xn,Vl as Xr,fp as Xt,vh as Y,Ia as Ya,Hs as Yi,Xd as Yn,Bl as Yr,gp as Yt,gh as Z,Pa as Za,Ws as Zi,Od as Zn,zl as Zr,up as Zt,vg as _,V as _a,tl as _i,Rf as _n,Ji as _o,Ou as _r,Bm as _t,a_ as a,xs as aa,hl as ai,Yf as an,xa as ao,dd as ar,oh as at,pg as b,ko as ba,el as bi,Af as bn,$i as bo,wu as br,Am as bt,i_ as c,is as ca,fl as ci,$f as cn,zi as co,nd as cr,ch as ct,t_ as d,hs as da,rl as di,Kf as dn,Oi as do,Wu as dr,eh as dt,vs as ea,Al as ei,lp as en,Ma as eo,yd as er,ph as et,qg as f,us as fa,Wc as fi,Wf as fn,Yi as fo,Hu as fr,Qm as ft,_g as g,To as ga,ll as gi,Uf as gn,Gi as go,ku as gr,Xm as gt,Cg as h,Fo as ha,Qc as hi,Bf as hn,Xi as ho,Au as hr,Jm as ht,s_ as i,bs as ia,_l as ii,Qf as in,Ea as io,ud as ir,sh as it,Gh as j,vo as ja,bc as ji,lf as jn,yi as jo,lu as jr,Tm as jt,Zh as k,xo as ka,U as ki,bf as kn,wi as ko,fu as kr,Om as kt,r_ as l,os as la,dl as li,tp as ln,Ui as lo,Zu as lr,ih as lt,bg as m,Po as ma,Xc as mi,Hf as mn,Zi as mo,Nu as mr,Ym as mt,l_ as n,ks as na,wl as ni,op as nn,ja as no,ld as nr,lh as nt,o_ as o,Cs as oa,gl as oi,ep as on,ba as oo,fd as or,uh as ot,xg as p,Vo as pa,$c as pi,Gf as pn,Wi as po,Uu as pr,Zm as pt,Sh as q,za as qa,qs as qi,rf as qn,Ul as qr,pp as qt,c_ as r,Ss as ra,yl as ri,ip as rn,Da as ro,hd as rr,ah as rt,d_ as s,ws as sa,pl as si,Jf as sn,L as so,Gu as sr,rh as st,u_ as t,ys as ta,Cl as ti,sp as tn,Aa as to,vd as tr,fh as tt,Ag as u,cs as ua,il as ui,qf as un,ea as uo,Xu as ur,th as ut,gg as v,Zo as va,Hc as vi,zf as vn,Ki as vo,Tu as vr,zm as vt,og as w,Mo as wa,Pc as wi,kf as wn,Di as wo,xu as wr,Mm as wt,fg as x,H as xa,Yc as xi,Tf as xn,ta as xo,Cu as xr,Hm as xt,hg as y,wo as ya,Vc as yi,Nf as yn,va as yo,Eu as yr,qm as yt,Bh as z,$a as za,fc as zi,Td as zn,li as zo,iu as zr,tm as zt};