import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{$t as t,Ei as n,Ut as r,Yt as i,Zt as a,er as o,mt as s,pt as c,rn as l,wn as u}from"./control-ui-foundation-CeFMP1Ly.js";import{$n as d,Ao as f,Dc as p,Fr as m,Gn as h,Gs as g,Jn as _,Ks as v,Nr as y,Pr as b,Qc as ee,Qn as x,Qs as S,Us as C,Ws as w,Ys as T,Zc as te,Zn as E,Zs as ne,_i as D,ac as O,ar as k,b as re,bc as A,cc as ie,di as ae,dr as oe,ec as j,el as se,er as ce,fl as le,fr as ue,fs as M,h as de,ic as fe,jo as pe,jr as me,lc as he,ml as ge,ms as N,nc as _e,nr as ve,oc as ye,or as be,pr as xe,ps as Se,qs as P,rc as Ce,sc as we,tc as Te,tr as Ee,uc as De,vr as Oe,w as ke,yl as Ae,yr as je}from"./control-ui-core-pH6nakZ-.js";import{C as Me,G as F,J as I,W as L,Z as Ne,at as Pe,i as Fe,n as Ie,rt as R,w as Le}from"./lit-runtime-BEtFSUCp.js";import{Cn as Re,Dt as ze,Sn as Be,Wn as Ve,ln as He,m as Ue,p as We,wt as Ge,zn as Ke}from"./control-ui-core-DGVkFhVB.js";import{Ft as qe,Ht as z,Lt as B,Nt as Je,Q as Ye,Rt as Xe,Z as Ze,qt as V}from"./control-ui-core-Br5DB0Zj.js";import{In as Qe,Ln as $e}from"./control-ui-boot-wpHCbPL9.js";import{n as et,r as tt}from"./gateway-runtime-DUNO4Mi1.js";import{$i as nt,Ca as rt,Cn as H,Zs as it,_n as at,ac as ot,an as st,as as ct,bn as U,cn as lt,ea as ut,gn as W,is as dt,nc as ft,on as G,pn as pt,tc as mt,uc as ht,un as K,vn as q,wa as gt,xn as _t,yc as vt,yn as yt}from"./control-ui-boot-Cdpgu1Gm.js";import{n as bt,t as xt}from"./hub-tabs-mHLCJmKB.js";import{n as St,t as Ct}from"./settings-workspace-Bo4nqRhI.js";import{n as wt,t as Tt}from"./gateway-page-controller-bzyUg03c.js";import{t as Et}from"./agent-select-registration-Bgp9CYzQ.js";import{a as Dt,n as Ot,o as kt,r as At,s as jt,t as Mt}from"./skills-shared-BNHPZbfC.js";import{t as Nt}from"./memory-panel-DzvRfI2l.js";import{n as Pt,t as Ft}from"./model-picker-CTfQ10Hi.js";import{n as It,t as Lt}from"./cron-jobs-pagination-BITiheQo.js";import{a as Rt,n as zt,r as Bt,s as Vt,t as Ht}from"./presenter-CKFufLDk.js";async function Ut(e,t,n,r){let i=r.kind===`write`,a=i?`agentFileSaving`:`agentFilesLoading`,o=e.client,s=e.agents;if(!o||!e.connected||e[a])return!1;if(r.kind===`read`&&!r.force&&Object.hasOwn(e.agentFileContents,n))return!0;let c=e.requestGeneration,l=()=>e.client===o&&e.agents===s&&e.connected&&e.requestGeneration===c,u=()=>{e.agentFileWriteRevisions.set(n,(e.agentFileWriteRevisions.get(n)??0)+1)};i&&u();let d=e.agentFileWriteRevisions.get(n),f=()=>l()&&(i||e.agentFileWriteRevisions.get(n)===d);e[a]=!0,e.agentFilesError=null;try{let a=await o.request(i?`agents.files.set`:`agents.files.get`,{agentId:t,name:n,...r.kind===`write`?{content:r.content}:{}});if(a?.file&&f()){let t=r.kind===`write`?r.content:a.file.content??``,o=e.agentFileContents[n]??``,c=e.agentFileDrafts[n];return e.agentFileContents={...e.agentFileContents,[n]:t},(!Object.hasOwn(e.agentFileDrafts,n)||c===(i?t:o))&&(e.agentFileDrafts={...e.agentFileDrafts,[n]:t}),e.agentFilesError=null,s.recordFile(a),!0}}catch(t){return f()&&(e.agentFilesError=M(t)),!1}finally{l()&&(i&&u(),e[a]=!1)}return!1}function Wt(e,t,n,r){return Ut(e,t,n,{kind:`read`,force:r?.force})}function Gt(e,t,n,r){return Ut(e,t,n,{kind:`write`,content:r})}function Kt(){return(Kt=e((()=>{N()})))()}async function qt(e,t){await e.request(`secrets.store.delete`,{name:t}).catch(()=>void 0)}async function Jt(e,t){return await e.runExternalMutation(n=>{if(n!==e.owner.client)throw Error(`Connection changed before the GitHub identity update started.`);return n.request(`tools.github.configure`,t)},{canDispatch:()=>e.isCurrent()&&e.isConfigurable(),dispatchError:`Access changed before the GitHub identity update started.`})}async function Yt(e){let t=e.draft.name.trim(),n=e.draft.email.trim();e.begin();let r=!1,i=``,a=!1;try{if(i=`github-setup-${f().replaceAll(`-`,``).toLowerCase()}`,await e.owner.client.request(`secrets.store.set`,{name:i,value:e.draft.token,kind:`secret`,allowedHosts:[]}),r=!0,!e.isCurrent()){await qt(e.owner.client,i);return}let o=await Jt(e,{scope:e.scope,agentId:e.owner.agentId,mode:`managed`,secretName:i,...t||n?{gitAuthor:{...t?{name:t}:{},...n?{email:n}:{}}}:{}});if(!o.ok)throw Error(o.error);r=!1,e.applyStatus(o.value,{...e.draft,token:``},o.refresh.ok?null:o.refresh.error),a=!0}catch(t){r&&await qt(e.owner.client,i),e.isCurrent()&&e.setError(M(t))}finally{e.finish(a)}}async function Xt(e){e.setConfirmationPending(!0);let t=!1;try{t=await gt({title:e.scope===`agent`?V(`agentTools.githubUseSystemConfirmTitle`):V(`agentTools.githubUseNativeConfirmTitle`),message:e.scope===`agent`?V(`agentTools.githubUseSystemConfirmMessage`):V(`agentTools.githubUseNativeConfirmMessage`),confirmLabel:e.scope===`agent`?V(`agentTools.githubUseSystemNewRuns`):V(`agentTools.githubUseNativeNewRuns`)})}finally{e.setConfirmationPending(!1)}if(!t||!e.isCurrent()||!e.canContinue())return;e.begin();let n=!1;try{let t=await Jt(e,{scope:e.scope,agentId:e.owner.agentId,mode:`inherit`});if(!t.ok)throw Error(t.error);e.isCurrent()&&(e.applyStatus(t.value,{token:``,name:``,email:``},t.refresh.ok?null:t.refresh.error),n=!0)}catch(t){e.isCurrent()&&e.setError(M(t))}finally{e.finish(n)}}function Zt(){return(Zt=e((()=>{rt(),z(),N(),pe()})))()}function J(e){return JSON.stringify(e??null)}function Y(e){let t=u(e)?e:void 0,n=u(t?.gitAuthor)?t.gitAuthor:void 0;return{token:``,name:typeof n?.name==`string`?n.name:``,email:typeof n?.email==`string`?n.email:``}}function Qt(e){e.requestId&&e.owner.client.request(`tools.github.authorize.cancel`,{requestId:e.requestId}).catch(()=>void 0)}function $t(){return($t=e((()=>{})))()}var en;function tn(){return(tn=e((()=>{c(),z(),P(),N(),Zt(),$t(),en=class{constructor(e){this.host=e,this.status=null,this.scope=`system`,this.authorization={phase:`idle`},this.loading=!1,this.busy=!1,this.error=null,this.statusReadable=!1,this.configurable=!1,this.authorizable=!1,this.tokenRevealed=!1,this.patVisible=!1,this.agentId=null,this.client=null,this.connected=!1,this.clientRevision=-1,this.agentRevision=-1,this.requestRevision=0,this.displayedIdentityFingerprint=``,this.identityInitialized=!1,this.verificationQueued=!1,this.confirmationPending=!1,this.mutationOwner=null,this.mutationIdentityChanged=!1,this.authorizationOperation=null,this.drafts={system:Y(void 0),agent:Y(void 0)},this.draftDirty={system:!1,agent:!1},this.configFingerprints={system:``,agent:``},this.dispose=()=>this.retireAuthorization(!0)}get authorizationActive(){return this.authorization.phase===`starting`||this.authorization.phase===`code`||this.authorization.phase===`pending`||this.authorization.phase===`network_error`||this.authorization.phase===`cancelling`||this.authorization.phase===`finishing`||this.authorization.phase===`cancel_error`}get connectionReady(){return this.connected&&this.client!==null}get draft(){return this.drafts[this.scope]}queueVerification(){this.verificationQueued||this.confirmationPending||!this.statusReadable||!this.connected||!this.agentId||this.authorizationActive||(this.verificationQueued=!0,queueMicrotask(()=>{this.verificationQueued=!1,this.verify()}))}sync(e){let t=this.client!==e.client||this.connected!==e.connected||this.clientRevision!==e.clientRevision,n=this.agentId!==e.agentId,r=this.statusReadable!==e.statusReadable||this.configurable!==e.configurable||this.authorizable!==e.authorizable;this.authorizationActive&&(t||n||!e.authorizable)&&(this.retireAuthorization(!0),this.authorization={phase:`idle`}),(t||n||r)&&(this.requestRevision+=1),this.client=e.client,this.connected=e.connected,this.clientRevision=e.clientRevision,this.statusReadable=e.statusReadable,this.configurable=e.configurable,this.authorizable=e.authorizable,this.agentId=e.agentId,n&&(this.agentRevision+=1);let i=e.agentId?S(e.config,e.agentId):null,a={system:i?.globalTools?.github,agent:i?.entry?.tools?.github},o=n?a.agent?`agent`:`system`:this.scope,s=J({effective:a.agent??a.system,selectedScope:o,selected:a[o]}),c=this.identityInitialized&&this.displayedIdentityFingerprint!==s;this.displayedIdentityFingerprint=s,this.identityInitialized=!0;let l=this.mutationOwner,u=c&&l!==null&&this.busy&&this.isCurrent(l);if(u?this.mutationIdentityChanged=!0:c&&(this.requestRevision+=1,this.authorizationActive&&(this.retireAuthorization(!0),this.authorization={phase:`idle`})),(t||n||r)&&(this.mutationOwner=null,this.mutationIdentityChanged=!1),t||n){this.status=null,this.error=null,this.loading=!1,this.busy=!1,this.tokenRevealed=!1,this.patVisible=!1,this.authorization={phase:`idle`},this.drafts={system:Y(a.system),agent:Y(a.agent)},this.draftDirty={system:!1,agent:!1},this.configFingerprints={system:J(a.system),agent:J(a.agent)},this.scope=o;return}r&&(this.loading=!1,this.busy=!1);for(let e of[`system`,`agent`]){let t=J(a[e]);!this.draftDirty[e]&&this.configFingerprints[e]!==t&&(this.drafts={...this.drafts,[e]:Y(a[e])},this.configFingerprints={...this.configFingerprints,[e]:t})}c&&!u&&(this.status=null,this.error=null,this.loading=!1,this.queueVerification())}selectScope(e){e===this.scope||this.authorizationActive||(this.retireAuthorization(!0),this.requestRevision+=1,this.scope=e,this.status=null,this.error=null,this.tokenRevealed=!1,this.authorization={phase:`idle`},this.host.requestUpdate(),this.queueVerification())}showPatFallback(){this.authorizationActive||(this.patVisible=!0,this.host.requestUpdate())}hidePatFallback(){this.busy||(this.patVisible=!1,this.tokenRevealed=!1,this.host.requestUpdate())}toggleTokenVisibility(){this.tokenRevealed=!this.tokenRevealed,this.host.requestUpdate()}setDraft(e,t){this.drafts={...this.drafts,[this.scope]:{...this.drafts[this.scope],[e]:t}},this.draftDirty={...this.draftDirty,[this.scope]:!0},this.host.requestUpdate()}captureRequest(){return!this.client||!this.connected||!this.agentId?null:{client:this.client,agentId:this.agentId,clientRevision:this.clientRevision,agentRevision:this.agentRevision,requestRevision:++this.requestRevision}}isCurrent(e){return this.client===e.client&&this.connected&&this.agentId===e.agentId&&this.clientRevision===e.clientRevision&&this.agentRevision===e.agentRevision&&this.requestRevision===e.requestRevision}isCurrentAuthorization(e){return this.authorizationOperation===e&&this.scope===e.scope&&this.authorizable&&this.isCurrent(e.owner)}retireAuthorization(e){let t=this.authorizationOperation;this.authorizationOperation=null,t&&(t.timer!==void 0&&clearTimeout(t.timer),t.controller.abort(),e&&Qt(t))}async cancelAuthorization(){let e=this.authorizationOperation;!e||e.cancelRequested||e.cancelInFlight||(e.cancelRequested=!0,e.cancelError=void 0,this.authorization=e.start?{...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:`cancelling`}:{phase:`cancelling`},this.host.requestUpdate(),e.requestId&&await this.finishExplicitCancellation(e))}async finishExplicitCancellation(e){if(!(!e.requestId||e.cancelInFlight||!this.isCurrentAuthorization(e))){e.cancelInFlight=!0;try{let t=await e.owner.client.request(`tools.github.authorize.cancel`,{requestId:e.requestId});if(!this.isCurrentAuthorization(e))return;if(t.cancelled){this.retireAuthorization(!1),this.authorization={phase:`idle`},this.busy=!1,this.host.requestUpdate();return}e.cancelTooLate=!0,this.authorization={...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:`finishing`},this.host.requestUpdate()}catch(t){if(!this.isCurrentAuthorization(e))return;e.cancelRequested=!1,e.cancelError=M(t),this.authorization=e.start?{...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:`cancel_error`,message:e.cancelError}:{phase:`failed`,message:e.cancelError},this.host.requestUpdate()}finally{e.cancelInFlight=!1}}}scheduleAuthorizationPoll(e,t){if(!this.isCurrentAuthorization(e)||!e.start)return;e.timer!==void 0&&clearTimeout(e.timer);let n=s(t,{minMs:0});e.timer=setTimeout(()=>{e.timer=void 0,this.isCurrentAuthorization(e)&&this.pollAuthorization(e)},n)}async startAuthorization(){if(!this.authorizable||this.authorizationActive||this.busy)return;let e=this.captureRequest();if(!e)return;let t={owner:e,scope:this.scope,controller:new AbortController};this.authorizationOperation=t,this.authorization={phase:`starting`},this.error=null,this.patVisible=!1,this.host.requestUpdate();try{let n=await e.client.request(`tools.github.authorize.start`,{scope:t.scope,agentId:e.agentId},{signal:t.controller.signal});if(t.requestId=n.requestId,t.start=n,t.displayExpiresAtMs=Date.now()+n.expiresInMs,!this.isCurrentAuthorization(t)){Qt(t);return}if(t.cancelRequested){await this.finishExplicitCancellation(t);return}this.authorization={...n,displayExpiresAtMs:t.displayExpiresAtMs,phase:`code`},this.host.requestUpdate(),this.scheduleAuthorizationPoll(t,n.pollAfterMs)}catch(e){if(!this.isCurrentAuthorization(t))return;this.authorizationOperation=null,e instanceof Error&&e.name===`AbortError`||(this.authorization={phase:`failed`,message:M(e)},this.host.requestUpdate())}}async pollAuthorization(e){if(!e.requestId||!e.start||!this.isCurrentAuthorization(e))return;this.authorization={...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:e.cancelTooLate?`finishing`:e.cancelError?`cancel_error`:`pending`,...e.cancelError?{message:e.cancelError}:{}},this.mutationOwner=e.owner,this.mutationIdentityChanged=!1,this.busy=!0,this.host.requestUpdate();let t=!1;try{let n=await this.host.runExternalMutation(t=>{if(t!==e.owner.client)throw Error(`Connection changed before GitHub authorization was checked.`);return t.request(`tools.github.authorize.poll`,{requestId:e.requestId},{signal:e.controller.signal})},{canDispatch:()=>this.isCurrentAuthorization(e),dispatchError:`Access changed before GitHub authorization was checked.`});if(!n.ok)throw Error(n.error);if(!this.isCurrentAuthorization(e))return;let r=n.value;if(r.status===`pending`||r.status===`slow_down`){this.authorization={...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:e.cancelTooLate?`finishing`:e.cancelError?`cancel_error`:`pending`,...e.cancelError?{message:e.cancelError}:{},...r.status===`slow_down`?{slowedDown:!0}:{}},this.scheduleAuthorizationPoll(e,r.retryAfterMs);return}if(r.status===`network_error`){this.authorization={...e.start,displayExpiresAtMs:e.displayExpiresAtMs??Date.now(),phase:`network_error`},this.scheduleAuthorizationPoll(e,r.retryAfterMs);return}if(this.authorizationOperation=null,r.status===`success`){this.applyMutationStatus(e.owner,e.scope,r.githubStatus,{...this.drafts[e.scope],token:``},n.refresh.ok?null:n.refresh.error),this.authorization={phase:`idle`},t=!0;return}this.authorization={phase:r.status}}catch(t){this.isCurrentAuthorization(e)&&(this.authorizationOperation=null,t instanceof Error&&t.name===`AbortError`||(this.authorization={phase:`failed`,message:M(t)}))}finally{this.finishMutation(e.owner,t)}}finishMutation(e,t){if(this.mutationOwner!==e)return;let n=this.mutationIdentityChanged&&!t;this.mutationOwner=null,this.mutationIdentityChanged=!1,this.isCurrent(e)&&(this.busy=!1,this.host.requestUpdate(),n&&this.queueVerification())}applyMutationStatus(e,t,n,r,i){if(this.isCurrent(e)){if(n.agentId!==e.agentId||n.selectedScope!==t||n.selected.scope!==t)throw Error(`Gateway returned GitHub identity status for a different target.`);this.status=n,this.drafts={...this.drafts,[t]:r},this.draftDirty={...this.draftDirty,[t]:!1},this.tokenRevealed=!1,this.patVisible=!1,this.error=i?`GitHub identity was updated, but its configuration refresh failed: ${i}`:null}}async verify(){if(!this.statusReadable||this.loading||this.busy||this.confirmationPending||this.authorizationActive)return;let e=this.captureRequest(),t=this.scope;if(e){this.loading=!0,this.error=null,this.host.requestUpdate();try{let n=await e.client.request(`tools.github.status`,{agentId:e.agentId,selectedScope:t});if(this.isCurrent(e)){if(n.agentId!==e.agentId||n.selectedScope!==t||n.selected.scope!==t)throw Error(`Gateway returned GitHub identity status for a different target.`);this.status=n}}catch(t){this.isCurrent(e)&&(this.error=M(t))}finally{this.isCurrent(e)&&(this.loading=!1,this.host.requestUpdate())}}}async configure(){let e=this.scope,t={...this.draft};if(!this.client||!this.connected||!this.agentId||!this.configurable||this.busy||this.authorizationActive)return;if(!t.token.trim()){this.error=V(`agentTools.githubPasteToken`),this.host.requestUpdate();return}let n=this.captureRequest();n&&await Yt({...this.createMutationOwner(n,e),draft:t})}async inherit(){let e=this.scope;if(!this.configurable||this.busy||this.authorizationActive)return;let t=this.captureRequest();t&&await Xt({...this.createMutationOwner(t,e),canContinue:()=>this.configurable&&!this.busy&&!this.authorizationActive,setConfirmationPending:e=>{this.confirmationPending=e}})}createMutationOwner(e,t){return{owner:e,scope:t,isCurrent:()=>this.isCurrent(e),isConfigurable:()=>this.configurable,runExternalMutation:this.host.runExternalMutation,begin:()=>{this.mutationOwner=e,this.mutationIdentityChanged=!1,this.loading=!1,this.busy=!0,this.error=null,this.host.requestUpdate()},applyStatus:(n,r,i)=>this.applyMutationStatus(e,t,n,r,i),finish:t=>this.finishMutation(e,t),setError:e=>{this.error=e}}}}})))()}function nn(e){return e&&e.length<=sn?e:null}function rn(e){return new Promise(t=>{let n=new FileReader;n.addEventListener(`load`,()=>t(nn(typeof n.result==`string`?n.result:null))),n.addEventListener(`error`,()=>t(null)),n.readAsDataURL(e)})}async function an(e){if(!e.type.startsWith(`image/`)||e.size>2097152)return null;try{let t=await createImageBitmap(e),n=Math.min(1,on/Math.max(t.width,t.height)),r=Math.max(1,Math.round(t.width*n)),i=Math.max(1,Math.round(t.height*n)),a=document.createElement(`canvas`);a.width=r,a.height=i;let o=a.getContext(`2d`);if(!o)return rn(e);o.drawImage(t,0,0,r,i),t.close();let s=a.toDataURL(`image/webp`,.8);return nn(s.startsWith(`data:image/webp`)?s:a.toDataURL(`image/png`))}catch{return rn(e)}}var on,sn;function cn(){return(cn=e((()=>{r(),on=96,sn=16e3})))()}function ln(e){let t=(hn.get(e)??0)+1;return hn.set(e,t),t}function un(e){ln(e),e.identityDraft={name:null,emoji:null,avatar:null},e.identitySaving=!1,e.identityError=null}function dn(e,t,n){e.identityDraft={...e.identityDraft,[t]:n},e.identityError=null}function fn(e,t){let n=ln(e);an(t).then(t=>{hn.get(e)===n&&(t?(e.identityDraft={...e.identityDraft,avatar:t},e.identityError=null):e.identityError=V(`agents.identity.imageUnusable`))})}async function pn(e){let{host:t,expectedClient:n,agentId:r,agents:i,agentIdentity:a,runtimeConfig:o}=e,s=t.identityDraft,c=s.name?.trim(),l=s.emoji?.trim(),u=s.avatar??void 0;if(!(s.name!==null&&!c||s.emoji!==null&&!l)){if(!c&&!l&&!u){un(t);return}t.identitySaving=!0,t.identityError=null;try{let s=await o.runExternalMutation(e=>{if(e!==n)throw Error(`Connection changed before the agent identity update started.`);return Ee(e,{agentId:r,name:c,emoji:l,avatar:u})},{canDispatch:e.canDispatch,dispatchError:`Access changed before the agent identity update started.`});if(!s.ok)throw Error(s.error);let d=s.refresh.ok?[]:[s.refresh.error];a.invalidate([r]);try{await i.refreshList()}catch(e){d.push(`Agent identity was saved, but the agent list refresh failed: ${M(e)}`)}try{await a.ensure([r])}catch(e){d.push(`Agent identity was saved, but the identity refresh failed: ${M(e)}`)}e.isCurrent()&&(un(t),e.onSaved(),t.identityError=d.length>0?d.join(` `):null)}catch(n){e.isCurrent()&&(t.identityError=M(n))}finally{e.isCurrent()&&(t.identitySaving=!1)}}}function mn(e,t){let n=e.snapshot.pinnedAgentIds,r=n.includes(t)?n.filter(e=>e!==t):[...n,t];e.update({pinnedAgentIds:r})}var hn;function gn(){return(gn=e((()=>{z(),E(),N(),cn(),hn=new WeakMap})))()}function _n(e){return{path:[...e.path,`model`],existing:e.entry.model}}function vn(e,t,n,r){n&&r?e.patchForm(t,{primary:n,fallbacks:r}):n?e.patchForm(t,n):r?e.patchForm(t,{fallbacks:r}):e.removeFormValue(t)}function yn(e){if(typeof e==`string`)return{primary:e.trim()||null,fallbacks:null};if(e&&typeof e==`object`){let t=e;return{primary:typeof t.primary==`string`&&t.primary.trim()||null,fallbacks:Array.isArray(t.fallbacks)?t.fallbacks:null}}return{primary:null,fallbacks:null}}function bn(e,t,n){let r=e.agentEntry(t,{ensure:!!n});if(!r)return;let i=_n(r);vn(e,i.path,n,yn(i.existing).fallbacks)}function xn(e,n,r){let i=he(e.state),a=t(r),o=S(i,n),s=_e(o.entry?.model,o.defaults?.model),c=e.agentEntry(n),l=a.length>0||(s?.length??0)>0||c?c??e.agentEntry(n,{ensure:!0}):null;if(!l)return;let u=_n(l),d=yn(u.existing).primary??O(o.entry?.model)??O(o.defaults?.model)??null;vn(e,u.path,d,a.length>0?a:null)}function Sn(){return(Sn=e((()=>{i(),P(),De()})))()}function Cn(e,t,n){let r=t?.canonicalLocation;if(!r)return``;let i=`${t.location.pathname}${t.location.search}${t.location.hash}`;return n!==i&&e.replace(`agents`,r),i}function wn(e,t,n,r){n!==t&&e.navigate(`agents`,{pathname:Ve(t,r===`files`?null:r,e.basePath)})}function Tn(e,t,n,r){!t||r===n||e.navigate(`agents`,{pathname:Ve(t,r,e.basePath)})}function En(){return(En=e((()=>{Ke(),Ae()})))()}async function Dn(e,t){let n=e.client;if(!n||!e.connected||e.agentSkillsLoading)return;let r=e.requestGeneration,i=()=>e.client===n&&e.connected&&e.requestGeneration===r;e.agentSkillsLoading=!0,e.agentSkillsError=null;try{let r=await D(n,t);r&&i()&&(e.agentSkillsReport=r,e.agentSkillsAgentId=t)}catch(t){i()&&(e.agentSkillsError=M(t))}finally{i()&&(e.agentSkillsLoading=!1)}}async function On(e,t,n=()=>!0){let r=e.agentEntry(t);if(!r||!Array.isArray(r.entry.skills)||!n())return!1;let i=r.path[2];return typeof i==`string`&&e.patch({raw:{agents:{entries:{[i]:{skills:null}}}},note:`Reset agent skills to inherited defaults`,replacePaths:[`agents.entries.${i}.skills`],canDispatch:n})}function kn(){return(kn=e((()=>{N(),ae()})))()}function An(e){let{agent:t,configForm:n,agentFilesList:r,configLoading:i,configSaving:o,configDirty:s,onConfigReload:c,onConfigSave:l,onModelChange:u,onModelFallbacksChange:d,onSelectPanel:f}=e,p=w(t,n,r,e.defaultId,e.agentIdentity),m=p.isDefault,h=S(n,t.id),_=t.model,v=fe(h.defaults?.model??_),y=O(h.entry?.model),b=O(h.defaults?.model)||(v===`-`?null:ne(v))||(n?null:O(_)),ee=y??b??null,x=m?ee:y,C=_e(h.entry?.model,h.defaults?.model)??(n?null:Ce(_))??[],T=!e.canUpdateConfig||!n||i||o,E=t.thinkingDefault??`-`,D=e.identityDraft,k=D.name??e.agentIdentity?.name??t.identity?.name??t.name??``,re=D.emoji??e.agentIdentity?.emoji??t.identity?.emoji??``,A=D.avatar??se(t,e.agentIdentity),ie=Te(t,e.agentIdentity)??(te(k||t.id)||`?`),ae=D.name!==null||D.emoji!==null||D.avatar!==null,oe=D.name!==null&&!D.name.trim()||D.emoji!==null&&!D.emoji.trim(),j=e.identitySaving||!e.canUpdateIdentity,ce=t=>{let n=t.target,r=n.files?.[0];n.value=``,r&&e.onIdentityAvatarSelect(r)},le=e=>{let n=C.filter((t,n)=>n!==e);d(t.id,n)},ue=e=>{let n=e.target;if(e.key===`Enter`||e.key===`,`){e.preventDefault();let r=a(n.value);r.length>0&&(d(t.id,[...C,...r]),n.value=``)}};return I`
${q({title:V(`agents.identity.title`),description:V(`agents.identity.subtitle`)},I`
`)}function Hn(e,t){let n=e.channelMeta?.find(e=>e.id===t);return n?.label?n.label:e.channelLabels?.[t]??t}function Un(e){if(!e)return[];let t=new Set;for(let n of e.channelOrder??[])t.add(n);for(let n of e.channelMeta??[])t.add(n.id);for(let n of Object.keys(e.channelAccounts??{}))t.add(n);let n=[],r=e.channelOrder?.length?e.channelOrder:Array.from(t);for(let e of r)t.has(e)&&(n.push(e),t.delete(e));for(let e of t)n.push(e);return n.map(t=>({id:t,label:Hn(e,t),accounts:e.channelAccounts?.[t]??[]}))}function Wn(e){let t=0,n=0,r=0;for(let i of e){let e=i.probe&&typeof i.probe==`object`&&`ok`in i.probe?!!i.probe.ok:!1,a=typeof i.connected==`boolean`||typeof i.running==`boolean`;(i.connected===!0||i.running===!0||!a&&e)&&(t+=1),i.configured&&(n+=1),i.enabled&&(r+=1)}return{total:e.length,connected:t,configured:n,enabled:r}}function Gn(e){let t=Un(e.snapshot),n=e.lastSuccess?re(e.lastSuccess):V(`common.never`);return I`
${Vn(e.context,V(`agents.context.configurationSubtitle`),e.onSelectPanel)}
${e.error?I`
`:K(V(`agents.files.loadHint`)))}
`}var Jn;function Yn(){return(Yn=e((()=>{L(),Ie(),Lt(),xt(),Xe(),nt(),Je(),qe(),G(),z(),P(),h(),ke(),Vt(),Pn(),Jn=[`groupPolicy`,`streamMode`,`dmPolicy`]})))()}var Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr;function ur(){return(ur=e((()=>{Xn=`Run shell now.`,Zn=`Inspect/control exec sessions.`,Qn=`Schedule reminders, automations, wake events.`,$n=`List visible sessions; filters/previews.`,er=`Read sanitized session history.`,tr=`Search past session transcripts.`,nr=`Run same-Gateway session/agent.`,rr=`Spawn hidden subagent (ephemeral) or visible work session (durable).`,ir=`Wait for collector subagents.`,ar=`Show session status/model/usage.`,or=`Ask the user and wait for an answer.`,sr=`Suggest follow-up work for operator approval.`,cr=`Withdraw a pending task suggestion.`,lr=`Manage reusable-skill proposals; inspect can select one stored artifact and returns complete content only when it fits the model budget.`})))()}var dr;function fr(){return(fr=e((()=>{dr=`automations`})))()}function pr(e){return X.filter(t=>t.profiles.includes(e)).map(e=>e.id)}function mr(){let e=new Map;for(let t of X){let n=`group:${t.sectionId}`,r=e.get(n)??[];r.push(t.id),e.set(n,r)}return{"group:openclaw":X.filter(e=>e.includeInOpenClawGroup).map(e=>e.id),...Object.fromEntries(e.entries())}}function hr(e){if(!e)return;let t=gr[e];if(t&&!(!t.allow&&!t.deny))return{allow:t.allow?[...t.allow]:void 0,deny:t.deny?[...t.deny]:void 0}}var X,gr,_r;function vr(){return(vr=e((()=>{ur(),fr(),X=[{id:`read`,description:`Read file contents`,sectionId:`fs`,profiles:[`coding`]},{id:`write`,description:`Create or overwrite files`,sectionId:`fs`,profiles:[`coding`]},{id:`edit`,description:`Make precise edits`,sectionId:`fs`,profiles:[`coding`]},{id:`apply_patch`,description:`Patch files`,sectionId:`fs`,profiles:[`coding`]},{id:`exec`,description:Xn,sectionId:`runtime`,profiles:[`coding`]},{id:`process`,description:Zn,sectionId:`runtime`,profiles:[`coding`]},{id:`code_execution`,description:`Run sandboxed remote analysis`,sectionId:`runtime`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`secrets`,description:`Request and manage write-only credentials`,sectionId:`runtime`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`web_search`,description:`Search the web`,sectionId:`web`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`web_fetch`,description:`Fetch web content`,sectionId:`web`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`x_search`,description:`Search X posts`,sectionId:`web`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`memory_search`,description:`Semantic search`,sectionId:`memory`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`memory_get`,description:`Read memory files`,sectionId:`memory`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`sessions`,description:`Session settings: label, pin, archive, groups`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`sessions_list`,description:$n,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`sessions_history`,description:er,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`sessions_search`,description:tr,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`conversations_list`,description:`List exact external conversation addresses`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`conversations_send`,description:`Send to an exact external conversation`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`conversations_turn`,description:`Send and wait for a correlated external reply`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`sessions_send`,description:nr,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`sessions_spawn`,description:rr,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`github_identity_status`,description:`Inspect the effective GitHub identity and credential health`,sectionId:`sessions`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`github_publish`,description:`Publish the reconciled session worktree as a draft GitHub pull request`,sectionId:`sessions`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`agents_wait`,description:ir,sectionId:`sessions`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`sessions_yield`,description:`End turn to receive sub-agent results`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`subagents`,description:`Background work: subagents, media gen, automation runs. list/cancel.`,sectionId:`sessions`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`session_status`,description:ar,sectionId:`sessions`,profiles:[`minimal`,`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`suggest_task`,description:sr,sectionId:`sessions`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`dismiss_task`,description:cr,sectionId:`sessions`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`browser`,description:`Control web browser`,sectionId:`ui`,profiles:[],includeInOpenClawGroup:!0},{id:`screen`,description:`Drive operator web UI`,sectionId:`ui`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`dashboard`,description:`Read and arrange the session dashboard`,sectionId:`ui`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`terminal`,description:`Use shared operator terminals with policy-governed input`,sectionId:`ui`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`portal`,description:`Expose local web apps through the gateway`,sectionId:`ui`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`canvas`,description:`Control node Canvas surfaces when the Canvas plugin is enabled`,sectionId:`ui`,profiles:[]},{id:`show_widget`,description:`Show an interactive widget on chat or an auto-fitting dashboard`,sectionId:`ui`,profiles:[],includeInOpenClawGroup:!0},{id:`message`,description:`Send messages`,sectionId:`messaging`,profiles:[`messaging`],includeInOpenClawGroup:!0},{id:`heartbeat_respond`,description:`Accept heartbeat outcomes for post-turn handling`,sectionId:`automation`,profiles:[],includeInOpenClawGroup:!0},{id:dr,description:Qn,sectionId:`automation`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`gateway`,description:`Read Gateway config and schema`,sectionId:`automation`,profiles:[],includeInOpenClawGroup:!0},{id:`nodes`,description:`Nodes + devices`,sectionId:`nodes`,profiles:[],includeInOpenClawGroup:!0},{id:`computer`,description:`Control a paired computer node desktop`,sectionId:`nodes`,profiles:[],includeInOpenClawGroup:!0},{id:`mobile_ui`,description:`Observe and control a paired Android app`,sectionId:`nodes`,profiles:[],includeInOpenClawGroup:!0},{id:`agents_list`,description:`List agents`,sectionId:`agents`,profiles:[],includeInOpenClawGroup:!0},{id:`get_goal`,description:`Get current thread goal`,sectionId:`agents`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`create_goal`,description:`Create a thread goal`,sectionId:`agents`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`update_goal`,description:`Complete or block a thread goal`,sectionId:`agents`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`progress_card`,description:`Maintain the session progress card`,sectionId:`agents`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`ask_user`,description:or,sectionId:`agents`,profiles:[`coding`,`messaging`],includeInOpenClawGroup:!0},{id:`skill_workshop`,description:lr,sectionId:`agents`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`view_image`,description:`Image understanding`,sectionId:`media`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`image_generate`,description:`Image generation`,sectionId:`media`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`music_generate`,description:`Music generation`,sectionId:`media`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`video_generate`,description:`Video generation`,sectionId:`media`,profiles:[`coding`],includeInOpenClawGroup:!0},{id:`tts`,description:`Text-to-speech conversion`,sectionId:`media`,profiles:[],includeInOpenClawGroup:!0}],new Map(X.map(e=>[e.id,e])),gr={minimal:{allow:pr(`minimal`)},coding:{allow:[...pr(`coding`),`bundle-mcp`]},messaging:{allow:[...pr(`messaging`),`bundle-mcp`]},full:{allow:[`*`]}},_r=mr()})))()}function Z(e){let t=n(e);return Sr[t]??t}function yr(e){return e?e.map(Z).filter(Boolean):[]}function br(e){let t=yr(e),n=[];for(let e of t){let t=Cr[e];if(t){n.push(...t);continue}n.push(e)}return l(n)}function xr(e){return hr(e)}var Sr,Cr;function wr(){return(wr=e((()=>{i(),vr(),Sr={bash:`exec`,"apply-patch":`apply_patch`,cron:`automations`},Cr={..._r}})))()}function Tr(e){switch(e){case`system-configured`:return V(`agentTools.githubSourceSystem`);case`agent-override`:return V(`agentTools.githubSourceAgent`);default:return V(`agentTools.githubSourceDetected`)}}function Er(e){switch(e.evidence){case`github-api`:return V(`agentTools.githubEvidenceApi`);case`rate-limited`:return V(`agentTools.githubEvidenceRateLimited`);case`unverified`:return V(`agentTools.githubEvidenceUnverified`);default:return}}function Dr(e,t){let n=Ar[e.credentialState],r=[e.gitAuthor.name,e.gitAuthor.email].filter(e=>typeof e==`string`&&e.length>0);return I`
${W({title:t.account,description:Tr(e.source),control:e.account?H(`@${e.account.login}`,{mono:!0}):H(V(`agentTools.githubNoAccount`))})}
${W({title:t.status,description:Er(e),control:U({kind:n.kind,label:V(n.label)})})}
${W({title:t.author,control:H(r.length>0?r.join(` · `):V(`agentTools.githubAuthorUnset`))})}
${W({title:t.credential,control:H(V(jr[e.credentialKind]))})}
${e.credentialKind===`managed-oauth`?I`
${W({title:t.accessExpiry,control:H(e.accessExpiresAtMs?de(e.accessExpiresAtMs,{dateStyle:`medium`,timeStyle:`short`}):V(`common.na`))})}
${W({title:t.refresh,control:H(V(Mr[e.refreshState]))})}
${W({title:t.scopes,control:H(e.oauthScopes.length?e.oauthScopes.join(`, `):V(`common.none`),{mono:!0})})}
`:F}
`}function Or(e){let t=e.authorization;if(!e.connectionReady)return W({title:V(`agentTools.githubConnection`),control:U({kind:`muted`,label:V(`agentTools.githubDisconnected`)})});if(!e.statusReadable)return W({title:U({kind:`danger`,label:V(`agentTools.githubAccessRequired`)}),description:V(`agentTools.githubReadRequired`)});if(!e.authorizable||!e.configurable)return W({title:U({kind:`warn`,label:V(`agentTools.githubAccessRequired`)}),description:V(`agentTools.githubAdminRequired`)});if(t.phase===`starting`||t.phase===`cancelling`&&!(`userCode`in t))return W({title:V(`agentTools.githubAuthorization`),control:I`
${U({kind:`accent`,label:t.phase===`cancelling`?V(`agentTools.githubCancelling`):V(`agentTools.githubStarting`)})}
${t.phase===`starting`?I``:F}
`});if(t.phase===`code`||t.phase===`pending`||t.phase===`network_error`||t.phase===`cancelling`||t.phase===`finishing`||t.phase===`cancel_error`){if(!(`userCode`in t))return F;let n=V(`agentTools.githubCopyCode`),r=t.phase===`code`?V(`agentTools.githubCodeReady`):t.phase===`cancelling`?V(`agentTools.githubCancelling`):t.phase===`finishing`?V(`agentTools.githubFinishing`):t.phase===`cancel_error`?V(`agentTools.githubCancelFailed`):t.phase===`network_error`?V(`agentTools.githubNetworkRetry`):t.slowedDown?V(`agentTools.githubSlowDown`):V(`agentTools.githubWaiting`);return I`
${W({title:V(`agentTools.githubAuthorization`),description:t.phase===`cancel_error`?t.message?`${V(`agentTools.githubCancelFailedHint`)} ${t.message}`:V(`agentTools.githubCancelFailedHint`):V(`agentTools.githubAuthorizationHint`),control:U({kind:t.phase===`network_error`||t.phase===`cancel_error`?`warn`:`accent`,label:r})})}
${W({title:V(`agentTools.githubDeviceCode`),description:V(`agentTools.githubDeviceCodeHint`),control:I`
${t.userCode}
`})}
${W({title:V(`agentTools.githubExpires`),control:H(de(t.displayExpiresAtMs,{dateStyle:`medium`,timeStyle:`short`}))})}