@yeaft/webchat-agent 1.0.652 → 1.0.653

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var F=(e,t,s)=>()=>{if(s)throw s[0];try{return e&&(t=e(e=0)),t}catch(n){throw s=[n],n}};var SC=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(s){throw t=0,s}};function hf(e,t){let s=nacl.randomBytes(24),n=JSON.stringify(e),r,i=!1;n.length>512?(r=pako.gzip(n),i=!0):r=nacl.util.decodeUTF8(n);let o=nacl.secretbox(r,s,t),a={n:nacl.util.encodeBase64(s),c:nacl.util.encodeBase64(o)};return i&&(a.z=!0),a}function mf(e,t){try{let s=nacl.util.decodeBase64(e.n),n=nacl.util.decodeBase64(e.c),r=nacl.secretbox.open(n,s,t);if(!r)return null;if(e.z){let i=pako.ungzip(r,{to:"string"});return JSON.parse(i)}else return JSON.parse(nacl.util.encodeUTF8(r))}catch{return null}}function vf(e){return e&&typeof e=="object"&&typeof e.n=="string"&&typeof e.c=="string"}function Ms(e){return nacl.util.decodeBase64(e)}var ca=F(()=>{});function ln(){return globalThis.localStorage||null}function bf(){let e=Nr();for(let t of Rc)try{t(e)}catch{}}function CC(){try{ln()?.removeItem(qi),ln()?.removeItem(Vi)}catch{}}function IC(e){return String(e||"").trim()||null}function yf(e,t){if(!Br(t))return{};try{let s=JSON.parse(ln()?.getItem(e)||"null");return!s||typeof s!="object"||Array.isArray(s)||s.ownerId!==t.ownerId||!s.records||typeof s.records!="object"||Array.isArray(s.records)?(ln()?.removeItem(e),{}):s.records}catch{try{ln()?.removeItem(e)}catch{}return{}}}function kf(e,t,s){if(!Br(s))return!1;try{return ln()?.setItem(e,JSON.stringify({ownerId:s.ownerId,records:t||{}})),!0}catch{return!1}}function Ps(e){let t=IC(e);if(!t)return _c(),null;if(lr!==t){lr=t,da+=1;for(let s of[qi,Vi])try{let n=JSON.parse(ln()?.getItem(s)||"null");(!n||n.ownerId!==t)&&ln()?.removeItem(s)}catch{try{ln()?.removeItem(s)}catch{}}bf()}return Nr()}function _c(){lr=null,da+=1,CC(),bf()}function Nr(){return lr?{ownerId:lr,epoch:da}:null}function Br(e){return!!e&&!!lr&&e.ownerId===lr&&e.epoch===da}function wf(e){return{drafts:yf(qi,e),outbox:yf(Vi,e)}}function Ec(e,t){return kf(qi,e,t)}function Ni(e,t){return kf(Vi,e,t)}function Sf(e){return typeof e!="function"?()=>{}:(Rc.add(e),()=>Rc.delete(e))}var qi,Vi,lr,da,Rc,tT,$c=F(()=>{qi="yeaft-work-center-composer-drafts-v1",Vi="yeaft-work-center-message-outbox-v1",lr=null,da=0,Rc=new Set;tT=Object.freeze({drafts:qi,outbox:Vi})});function Dc(){try{globalThis.Pinia?.useChatStore?.()?.clearYeaftHistoryMemory?.()}catch{}}function Cf(){try{globalThis.Pinia?.useChatStore?.()?.clearPluginState?.()}catch{}}function cn(e){Cf();let t=String(e||"").trim()||null;try{globalThis.Pinia?.useChatStore?.()?.bindScheduledTaskNotificationOwner?.(t)}catch{}ua!==t&&Dc(),ua=t}function xC(){try{globalThis.Pinia?.useChatStore?.()?.bindScheduledTaskNotificationOwner?.(null)}catch{}Cf(),Dc(),ua=null}var AC,ua,TC,Xe,ss=F(()=>{ca();$c();({defineStore:AC}=Pinia);ua=null;TC=1800*1e3,Xe=AC("auth",{state:()=>({skipAuth:!1,emailVerification:!1,passwordResetEnabled:!1,totpEnabled:!1,registrationEnabled:!1,aadEnabled:!1,aadClientId:null,aadTenantId:null,ssoProviders:{github:!1,google:!1,wechat:!1,alipay:!1},linkedIdentities:[],hasPassword:!1,identitiesLoading:!1,identitiesError:null,initialized:!1,authGeneration:0,isAuthenticated:!1,token:null,sessionKey:null,userId:null,role:null,loginStep:"credentials",tempToken:null,emailHint:null,setupToken:null,totpSecret:null,qrCode:null,error:null,loading:!1,qrPanel:null,_qrPollTimer:null,_sessionRefreshTimer:null,_sessionRefreshVisibilityHandler:null}),actions:{async initialize(){if(this.initialized)return this.isAuthenticated;try{if(await this.checkAuthMode(),this.skipAuth&&this.isAuthenticated)return!0;let e=!1;return typeof window<"u"&&typeof this.consumeSsoRedirect=="function"&&(e=this.consumeSsoRedirect()),!this.isAuthenticated&&!e&&await this.restoreSession(),this.isAuthenticated}finally{this.initialized=!0}},async checkAuthMode(){try{let t=await(await fetch("/api/auth/mode")).json();this.skipAuth=t.skipAuth,this.emailVerification=t.emailVerification,this.passwordResetEnabled=!!t.passwordResetEnabled,this.totpEnabled=t.totpEnabled,this.registrationEnabled=t.registrationEnabled||!1,this.aadEnabled=t.aadEnabled||!1,this.aadClientId=t.aadClientId||null,this.aadTenantId=t.aadTenantId||null,this.ssoProviders=Object.assign({github:!1,google:!1,wechat:!1,alipay:!1},t.ssoProviders||{}),this.skipAuth&&(this.userId="skip-auth",Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated")}catch{}},async login(e,t){this.loading=!0,this.error=null;try{let n=await(await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t})})).json();return n.success?n.needTotpSetup?(this.setupToken=n.setupToken,this.totpSecret=n.totpSecret,this.qrCode=n.qrCode,this.loginStep="totp-setup",!0):n.needTotpCode?(this.tempToken=n.tempToken,this.loginStep="totp",!0):n.needEmailCode?(this.tempToken=n.tempToken,this.emailHint=n.emailHint,this.loginStep="verification",!0):(this.token=n.token,this.sessionKey=n.sessionKey?Ms(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n.token),this.startSessionRefresh(),!0):(this.error=n.error||"Login failed",!1)}catch(s){return this.error=s.message||"Network error",!1}finally{this.loading=!1}},async loginWithMicrosoft(){if(!this.aadEnabled||!this.aadClientId||!this.aadTenantId)return this.error="Microsoft login is not configured",!1;if(typeof msal>"u"||!msal.PublicClientApplication)return this.error="Microsoft authentication library not loaded",!1;this.loading=!0,this.error=null;try{let e={auth:{clientId:this.aadClientId,authority:`https://login.microsoftonline.com/${this.aadTenantId}`,redirectUri:window.location.origin+"/auth/callback"},cache:{cacheLocation:"sessionStorage",storeAuthStateInCookie:!1}},t=new msal.PublicClientApplication(e);await t.initialize();let s=await t.loginPopup({scopes:["openid","profile","email"]});if(!s||!s.idToken)return this.error="Microsoft login failed: no token received",!1;let r=await(await fetch("/api/auth/aad",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:s.idToken})})).json();return r.success?(this.token=r.token,this.sessionKey=r.sessionKey?Ms(r.sessionKey):null,this.role=r.role||"pro",this.userId=r.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",r.token),this.startSessionRefresh(),!0):(this.error=r.error||"Microsoft login failed",!1)}catch(e){return e.errorCode==="user_cancelled"||e.name==="BrowserAuthError"?(this.error=null,!1):(this.error=e.message||"Microsoft login failed",!1)}finally{this.loading=!1}},async verifyTotpCode(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/verify-totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tempToken:this.tempToken,totpCode:e})})).json();return s.success?s.needEmailCode?(this.tempToken=s.tempToken,this.emailHint=s.emailHint,this.loginStep="verification",!0):(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.tempToken=null,localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0):(this.error=s.error||"TOTP verification failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async completeTotpSetup(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/setup-totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({setupToken:this.setupToken,totpCode:e})})).json();return s.success?(this.setupToken=null,this.totpSecret=null,this.qrCode=null,s.needEmailCode?(this.tempToken=s.tempToken,this.emailHint=s.emailHint,this.loginStep="verification",!0):(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0)):(this.error=s.error||"TOTP setup failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async verifyCode(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tempToken:this.tempToken,code:e})})).json();return s.success?(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.tempToken=null,this.emailHint=null,localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0):(this.error=s.error||"Verification failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async register(e,t,s,n){this.loading=!0,this.error=null;try{let i=await(await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,email:s||void 0,invitationCode:n})})).json();return i.success?!0:(this.error=i.error||"Registration failed",!1)}catch(r){return this.error=r.message||"Network error",!1}finally{this.loading=!1}},showRegister(){this.loginStep="register",this.error=null},loginWithSso(e){window.location.href=`/api/auth/sso/${encodeURIComponent(e)}/start`},async loginWithAlipayMobile({intent:e="login"}={}){if(!await this.startSsoQr("alipay",{intent:e}))return!1;let s=this.qrPanel?.authorizeUrl;if(!s)return!1;let n=`alipays://platformapi/startapp?appId=20000067&url=${encodeURIComponent(s)}`;return this.qrPanel={...this.qrPanel,mobileDeepLink:!0},window.location.href=n,!0},async startSsoQr(e,{intent:t="login"}={}){this.cancelSsoQr(),this.error=null;try{let s=new URLSearchParams;if(t==="bind"){if(!this.isAuthenticated)return this.error="You must be logged in to bind an identity",!1;s.set("intent","bind")}let n=s.toString(),r=`/api/auth/sso/${encodeURIComponent(e)}/start-qr${n?"?"+n:""}`,i=await fetch(r),o=await i.json();return!i.ok||!o.success?(this.error=o.error||"Failed to start QR login",!1):(this.qrPanel={provider:e,intent:t,authorizeUrl:o.authorizeUrl,state:o.state,status:"pending",error:null},this._startQrPoll(),!0)}catch(s){return this.error=s.message||"Network error",!1}},_startQrPoll(){this._stopQrPollTimer();let e=async()=>{if(!this.qrPanel)return;let t=this.qrPanel.state;try{let n=await(await fetch(`/api/auth/sso/poll/${encodeURIComponent(t)}`)).json();if(!this.qrPanel||this.qrPanel.state!==t||n.status==="pending")return;if(n.status==="login"){this.token=n.token,this.sessionKey=n.sessionKey?Ms(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n.token),this.startSessionRefresh(),this.cancelSsoQr();return}if(n.status==="bind"){this.qrPanel={...this.qrPanel,status:"bound"},this._stopQrPollTimer();return}this.qrPanel={...this.qrPanel,status:"error",error:n.error||"SSO failed"},this._stopQrPollTimer()}catch{}};this._qrPollTick=e,this._qrPollTimer=setInterval(e,2e3),typeof document<"u"&&!this._qrVisHandler&&(this._qrVisHandler=()=>{typeof document<"u"&&document.visibilityState&&document.visibilityState!=="visible"||!this.qrPanel||!this._qrPollTick||(this._qrPollTick(),this._qrPollTimer&&clearInterval(this._qrPollTimer),this._qrPollTimer=setInterval(this._qrPollTick,2e3))},document.addEventListener("visibilitychange",this._qrVisHandler),typeof window<"u"&&window.addEventListener("pageshow",this._qrVisHandler))},_stopQrPollTimer(){this._qrPollTimer&&(clearInterval(this._qrPollTimer),this._qrPollTimer=null),this._qrVisHandler&&(typeof document<"u"&&document.removeEventListener("visibilitychange",this._qrVisHandler),typeof window<"u"&&window.removeEventListener("pageshow",this._qrVisHandler),this._qrVisHandler=null),this._qrPollTick=null},cancelSsoQr(){this._stopQrPollTimer(),this.qrPanel=null},bindSso(e){if(!this.isAuthenticated){this.error="You must be logged in to bind an identity";return}let t=new URLSearchParams({intent:"bind"});window.location.href=`/api/auth/sso/${encodeURIComponent(e)}/start?${t.toString()}`},consumeSsoRedirect(){let e=window.location.hash||"",t=e.indexOf("?");if(!e.startsWith("#/sso-complete")||t<0)return!1;let s=new URLSearchParams(e.slice(t+1)),n=s.get("token"),r=s.get("sessionKey"),i=s.get("role"),o=s.get("userId");if(!n)return!1;this.token=n,this.sessionKey=r?Ms(r):null,this.role=i||"pro",this.userId=o||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n),this.startSessionRefresh();try{history.replaceState(null,"",window.location.pathname+window.location.search)}catch{}return!0},async loadIdentities(){if(this.isAuthenticated){this.identitiesLoading=!0,this.identitiesError=null;try{let e=await fetch("/api/auth/identities"),t=await e.json();if(!e.ok||!t.success){this.identitiesError=t.error||"Failed to load identities";return}this.linkedIdentities=t.identities||[],this.hasPassword=!!t.hasPassword}catch(e){this.identitiesError=e.message||"Network error"}finally{this.identitiesLoading=!1}}},async unbindIdentity(e){if(!this.isAuthenticated)return!1;this.identitiesError=null;try{let t=await fetch(`/api/auth/identities/${encodeURIComponent(e)}`,{method:"DELETE"}),s=await t.json();return!t.ok||!s.success?(this.identitiesError=s.error||"Failed to unbind",!1):(this.linkedIdentities=this.linkedIdentities.filter(n=>n.provider!==e),!0)}catch(t){return this.identitiesError=t.message||"Network error",!1}},async refreshSession(){let e=this.token,t=this.authGeneration,s=this.isAuthenticated;try{let n=await fetch("/api/user/profile",{headers:e?{Authorization:`Bearer ${e}`}:{}});if(this.handleAuthResponse(n,e,t,s)||!n.ok)return!1;let r=await n.json().catch(()=>({}));if(t!==this.authGeneration||this.token!==e)return this.isAuthenticated;let i=n.headers?.get?.("X-New-Token"),o=localStorage.getItem("authToken");i&&this.token===e&&(!o||o===e)&&(this.token=i,localStorage.setItem("authToken",i)),r?.role&&(this.role=r.role);let a=this.userId;return this.userId=r?.userId||null,Ps(this.userId),a!==this.userId&&Dc(),ua=this.userId,!0}catch{return!1}},startSessionRefresh(){if(this.stopSessionRefresh(),!this.isAuthenticated||this.skipAuth)return;let e=()=>{typeof document<"u"&&document.visibilityState&&document.visibilityState!=="visible"||this.refreshSession()};this._sessionRefreshTimer=setInterval(e,TC),this._sessionRefreshVisibilityHandler=e,typeof document<"u"&&document.addEventListener("visibilitychange",e),typeof window<"u"&&window.addEventListener("pageshow",e)},stopSessionRefresh(){this._sessionRefreshTimer&&(clearInterval(this._sessionRefreshTimer),this._sessionRefreshTimer=null),this._sessionRefreshVisibilityHandler&&(typeof document<"u"&&document.removeEventListener("visibilitychange",this._sessionRefreshVisibilityHandler),typeof window<"u"&&window.removeEventListener("pageshow",this._sessionRefreshVisibilityHandler),this._sessionRefreshVisibilityHandler=null)},async logout(){try{let e={"Content-Type":"application/json"};this.token&&(e.Authorization=`Bearer ${this.token}`),await fetch("/api/auth/logout",{method:"POST",headers:e})}catch{}await this.clearStoredSession()},clearStoredSession(e=null){let t=this.reset();return localStorage.removeItem("authToken"),e&&(this.error=e),t},getActiveToken(){if(this.token)return this.token;let e=localStorage.getItem("authToken");return e&&(this.token=e),this.token},handleAuthResponse(e,t=null,s=this.authGeneration,n=this.isAuthenticated,r=void 0){if(!e||e.status!==401||!n||s!==this.authGeneration)return!1;let i=this.token||localStorage.getItem("authToken")||null;return t!==i?!1:(this.handleAuthFailure(r,t,s),!0)},handleAuthFailure(e="Session expired. Please log in again.",t=null,s=this.authGeneration){if(s!==this.authGeneration)return!1;let n=this.token||localStorage.getItem("authToken")||null;return t!==n||this.clearStoredSession(e),!1},async restoreSession(){let e=localStorage.getItem("authToken"),t=this.authGeneration,s=this.isAuthenticated||!!e;try{let n=await fetch("/api/user/profile",{headers:e?{Authorization:`Bearer ${e}`}:{}});if(this.handleAuthResponse(n,e,t,s))return!1;if(!n.ok)return this.error="Failed to restore session",!1;let r=await n.json();if(t!==this.authGeneration)return this.isAuthenticated;let i=n.headers?.get?.("X-New-Token"),o=this.getActiveToken();if(o!==e)return this.isAuthenticated;let a=i&&(!o||o===e)?i:o||e;return this.token=a,a&&a!==e&&localStorage.setItem("authToken",a),this.role=r?.role||"pro",this.userId=r?.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.startSessionRefresh(),!0}catch(n){return this.error=n.message||"Failed to restore session",!1}},setSessionKey(e){e&&(this.sessionKey=Ms(e))},backToCredentials(){this.loginStep="credentials",this.tempToken=null,this.emailHint=null,this.setupToken=null,this.totpSecret=null,this.qrCode=null,this.error=null},async requestPasswordReset(e){this.error=null;try{let s=await(await fetch("/api/auth/password-reset/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e})})).json();return s.success?s.resetToken||null:(this.error=s.error||"Failed to request password reset",null)}catch(t){return this.error=t.message||"Network error",null}},async verifyPasswordReset(e,t,s){this.error=null;try{let r=await(await fetch("/api/auth/password-reset/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({resetToken:e,code:t,newPassword:s})})).json();return r.success?!0:(this.error=r.error||"Failed to reset password",!1)}catch(n){return this.error=n.message||"Network error",!1}},async deleteAccount({currentPassword:e,confirm:t}={}){if(!this.isAuthenticated)return{success:!1,error:"Not authenticated"};try{let s=await fetch("/api/user/me",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:e,confirm:t})}),n=await s.json();return!s.ok||!n.success?{success:!1,error:n.error||"Failed to delete account"}:(await this.clearStoredSession(),{success:!0})}catch(s){return{success:!1,error:s.message||"Network error"}}},reset(){_c(),xC(),this.authGeneration+=1,this.stopSessionRefresh(),this.isAuthenticated=!1,this.token=null,this.sessionKey=null,this.userId=null,this.role=null,this.loginStep="credentials",this.tempToken=null,this.emailHint=null,this.setupToken=null,this.totpSecret=null,this.qrCode=null,this.error=null,this.loading=!1}}})});function Af(){try{let e=JSON.parse(globalThis.localStorage?.getItem(If)||"null");return!e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,t])=>t===!0))}catch{return{}}}function xf(e){try{globalThis.localStorage?.setItem(If,JSON.stringify(e))}catch{}}var If,Tf=F(()=>{If="digital-person-ui-enabled-by-agent"});function ut(e,t){let s=dn?.value||"zh-CN",r=(Hr[s]||Hr["zh-CN"]||{})[e];if(r===void 0&&s!=="zh-CN"&&(r=(Hr["zh-CN"]||{})[e]),r===void 0)return e;if(t)for(let[i,o]of Object.entries(t))r=r.replace(new RegExp(`\\{${i}\\}`,"g"),o);return r}function MC(){return dn?.value||"zh-CN"}function Bi(e){Hr[e]&&(dn&&(dn.value=e),localStorage.setItem("locale",e),document.documentElement.setAttribute("lang",e))}function PC(){let e=localStorage.getItem("locale");return e&&Hr[e]?e:(navigator.language||navigator.userLanguage||"").startsWith("en")?"en":"zh-CN"}function Mf(e,t){return Hr=t,dn=Vue.ref(PC()),document.documentElement.setAttribute("lang",dn.value),e.config.globalProperties.$t=ut,e.config.globalProperties.$locale=dn,e.provide("t",ut),e.provide("locale",dn),{t:ut,setLocale:Bi,getLocale:MC,locale:dn}}var dn,Hr,un=F(()=>{dn=null,Hr={}});function Wr(e){return e?.capabilityMetadataProvided!==!0?!0:Array.isArray(e.capabilities)&&e.capabilities.includes(Lc)}var Lc,Hi=F(()=>{Lc="yeaft_plugins"});function pa(e){if(e?.capabilityMetadataProvided!==!0)return!1;let t=Array.isArray(e.capabilities)?e.capabilities:[];return t.includes(Lc)&&t.includes(RC)}var RC,Oc=F(()=>{Hi();RC="yeaft_managed_skills"});function cr(e){if(e==null||e==="")return"claude-code";if(_C.has(e))return e;throw new Error(`Unknown Chat runtime provider: ${e}`)}function Bs(e){if(typeof e!="string"||!e)throw new Error("Chat catalog key requires conversationId");return`chat:${e}`}function Rs(e,t){if(typeof e!="string"||!e||typeof t!="string"||!t)throw new Error("Yeaft catalog key requires agentId and sessionId");return`yeaft:${e}:${t}`}function Wi(e,t,s={}){let n=e.sessionCatalog.map(i=>({...i})),r=Array.isArray(e.hiddenSessionCatalog)?e.hiddenSessionCatalog.map(i=>({...i})):null;return e.sessionCatalogMutationRequests[t]={previousCatalog:n,previousHiddenCatalog:r,...s},n}function Pf(e,t){let s=t?.requestId?e.sessionCatalogMutationRequests[t.requestId]:null;return s?(delete e.sessionCatalogMutationRequests[t.requestId],t.ok!==!0&&(e.sessionCatalog=s.previousCatalog,Array.isArray(s.previousHiddenCatalog)&&(e.hiddenSessionCatalog=s.previousHiddenCatalog)),!0):!1}function Rf(e,t,s="recent",n=null){let r=Bs(t),i=e.chatHistoryRequests[r]||{},o=Number(i.generation||0)+1,a=`chat_history_${o}_${crypto.randomUUID()}`;return e.chatHistoryRequests[r]={requestId:a,catalogKey:r,generation:o,mode:s,cursor:n,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0),loading:!0,cancelled:!1,error:null},a}function Fc(e,t,s,n){let r=e.chatHistoryRequests[t];return r?.requestId!==s?!1:(e.chatHistoryRequests[t]={...r,loading:!1,cancelled:!0,error:n},!0)}var _C,Ur=F(()=>{_C=new Set(["claude-code","copilot"])});function jr(e,t,s=""){Ui&&(clearTimeout(Ui),Ui=null),e.sessionLoading=t,e.sessionLoadingText=s,t&&(Ui=setTimeout(()=>{e.sessionLoading&&(e.sessionLoading=!1,e.sessionLoadingText=""),Ui=null},EC))}function Hs(e){jr(e,!1)}function _f(e){if(e.currentConversation){e.pendingRecovery=null;return}let t=e.lastUsedSession,s=e.lastUsedAgent;if(t&&t.sessionId&&s){let n=e.agents.find(r=>r.id===s&&r.online);n&&(e.pendingRecovery={agentId:s,agentName:n.name,sessionId:t.sessionId,workDir:t.workDir,provider:cr(t.provider),catalogKey:t.catalogKey||null},e.recoveryDismissed=!1)}}function Ef(e){if(!e.pendingRecovery)return;let{agentId:t,sessionId:s,workDir:n,provider:r}=e.pendingRecovery;e.selectAgent(t),setTimeout(()=>{e.resumeConversation(s,n,t,{provider:cr(r)}),e.pendingRecovery=null,e.recoveryDismissed=!1},500)}function $f(e){e.recoveryDismissed=!0,e.pendingRecovery=null}function Df(e,t){let s=e.conversations.find(n=>n.id===t);s&&(e.activeConversations=[t],e.currentWorkDir=s.workDir,e.messagesMap[t]?.length>0||(s.claudeSessionId?(e.messagesMap[t]=[],jr(e,!0,ut("chat.session.loadingHistory")),e.sendWsMessage({type:"resume_conversation",agentId:s.agentId||e.currentAgent,claudeSessionId:s.claudeSessionId,workDir:s.workDir,conversationId:t})):(e.messagesMap[t]=[],e.requestChatHistory?.(t,{mode:"recent",turns:5}))),e.sendWsMessage({type:"select_conversation",conversationId:t}))}function Lf(e){if(e.panels.length>0)return;let t=localStorage.getItem("panels");if(!t)return;let s;try{s=JSON.parse(t)}catch{localStorage.removeItem("panels");return}if(!Array.isArray(s)||s.length<2){localStorage.removeItem("panels");return}let n=new Set(e.conversations.map(i=>i.id)),r=s.filter(i=>i&&typeof i.id=="string").map(i=>({id:i.id,conversationId:i.conversationId&&n.has(i.conversationId)?i.conversationId:null,activeRightPanel:i.activeRightPanel||null}));if(r.length<2){localStorage.removeItem("panels");return}e.panels=r,e.activePanelId=r[0]?.id||null;for(let i of r)i.conversationId&&(e.activeConversations.includes(i.conversationId)||e.activeConversations.push(i.conversationId),e.messagesMap[i.conversationId]||(e.messagesMap[i.conversationId]=[]),e.messagesMap[i.conversationId].length||e.requestChatHistory?.(i.conversationId,{mode:"recent",turns:5}))}function dr(e){if(e.currentAgent){if(localStorage.setItem("lastUsedAgent",e.currentAgent),localStorage.setItem("lastViewedConversation",e.currentConversation||""),e.lastViewedConversation=e.currentConversation,e.currentConversation){let t=e.conversations.find(s=>s.id===e.currentConversation);if(t?.claudeSessionId&&t?.workDir){let s=cr(t.provider),n={sessionId:t.claudeSessionId,workDir:t.workDir,agentId:t.agentId||e.currentAgent,provider:s,catalogKey:Bs(t.id),version:2};localStorage.setItem("lastUsedSession",JSON.stringify(n)),localStorage.setItem("lastViewedSessionRef",JSON.stringify(n)),e.lastUsedSession=n}}e.lastUsedAgent=e.currentAgent,e.panels.length>0?localStorage.setItem("panels",JSON.stringify(e.panels)):localStorage.removeItem("panels")}}function Of(e){return e.lastUsedSession}function Ff(e){localStorage.removeItem("lastUsedAgent"),localStorage.removeItem("lastUsedSession"),localStorage.removeItem("lastViewedSessionRef"),localStorage.removeItem("lastViewedConversation"),localStorage.removeItem("panels"),localStorage.removeItem("splitPanesSaved"),e.lastUsedAgent=null,e.lastUsedSession=null,e.lastViewedConversation=null}function qf(e,t,s){if(!e.currentAgent){e.historySessionsLoading=!1;return}if(!t){e.historySessions=[],e.historySessionsLoading=!1;return}let n=Date.now().toString();e._historySessionsRequestId=n,e.historySessionsLoading=!0,e.historySessions=[],e.sendWsMessage({type:"list_history_sessions",workDir:t,provider:s||"claude-code",requestId:n})}function Vf(e,t){if(!e.currentAgent)return e.foldersLoading=!1,Promise.resolve();e.foldersLoading=!0,e.folders=[];let s=Date.now().toString();return e._foldersRequestId=s,new Promise(n=>{e._foldersResolve&&e._foldersResolve(),e._foldersResolve=n,e.sendWsMessage({type:"list_folders",provider:t||"claude-code",requestId:s}),setTimeout(()=>{e._foldersResolve===n&&(e._foldersResolve(),e._foldersResolve=null,e.foldersLoading=!1)},1e4)})}function Nf(e,t,s){if(!t)return e.foldersLoading=!1,Promise.resolve();e.foldersLoading=!0,e.folders=[];let n=Date.now().toString();return e._foldersRequestId=n,new Promise(r=>{e._foldersResolve&&e._foldersResolve(),e._foldersResolve=r,e.sendWsMessage({type:"list_folders",agentId:t,provider:s||"claude-code",requestId:n}),setTimeout(()=>{e._foldersResolve===r&&(e._foldersResolve(),e._foldersResolve=null,e.foldersLoading=!1)},1e4)})}function Bf(e,t,s){if(!t)return Promise.resolve([]);let n=`models-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return e._modelsRequestId=n,e.providerModelsLoading=!0,new Promise(r=>{e._modelsResolve&&e._modelsResolve([]),e._modelsTimeout&&clearTimeout(e._modelsTimeout),e._modelsResolve=r,e.sendWsMessage({type:"list_models",agentId:t,provider:s||"claude-code",requestId:n}),e._modelsTimeout=setTimeout(()=>{e._modelsResolve===r&&(e._modelsResolve([]),e._modelsResolve=null,e.providerModelsLoading=!1),e._modelsTimeout=null},1e4)})}function Hf(e,t,s,n){if(!t){e.historySessionsLoading=!1;return}if(!s){e.historySessions=[],e.historySessionsLoading=!1;return}let r=Date.now().toString();e._historySessionsRequestId=r,e.historySessionsLoading=!0,e.historySessions=[],e.sendWsMessage({type:"list_history_sessions",agentId:t,workDir:s,provider:n||"claude-code",requestId:r})}async function Wf(e,t=20){if(Xe().isAuthenticated){e.globalSessionsLoading=!0;try{let n=await fetch(`/api/sessions?limit=${t}`);if(n.ok){let r=await n.json();e.globalSessions=r.sessions||[]}}catch{}finally{e.globalSessionsLoading=!1}}}async function Uf(e,t){if(!Xe().isAuthenticated)return!1;try{if((await fetch(`/api/sessions/${t}`,{method:"DELETE"})).ok)return e.globalSessions=e.globalSessions.filter(r=>r.id!==t),!0}catch{}return!1}function qc(e,t){return t.agentId?e.agents.find(s=>s.id===t.agentId):t.agentName?e.agents.find(s=>s.name===t.agentName):null}function jf(e,t){let s=qc(e,t);return s&&s.online}var EC,Ui,ur=F(()=>{ss();un();Ur();EC=3e4,Ui=null});function Vc(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e){let t=Date.parse(e);if(Number.isFinite(t))return t}return 0}function fa(e){return!e||typeof e!="object"?0:Vc(e.lastMessageAt)||Vc(e.updatedAt)||Vc(e.createdAt)||0}function Nc(e,t){let s=fa(t)-fa(e);return s!==0?s:String(e?.id||"").localeCompare(String(t?.id||""))}function ga(e){return[...Array.isArray(e)?e:[]].sort(Nc)}var ji=F(()=>{});function pr(e,t){return e.sidebarCatalogAuthGeneration===t.authGeneration&&e.sidebarCatalogOwnerId===(t.userId||null)}function ha(e){return e._hasHandledAgentList===!0&&e._hasHandledYeaftSessionHydrate===!0&&!e.yeaftSessionHydrateError}function DC(e,t=[]){let s=new Map((e.agents||[]).map(o=>[o.id,o])),n=new Map;for(let o of e.sessionProjects||[])for(let a of o.members||[])n.set(`${a.agentId}${a.sessionId}`,o.id);let r=[];for(let o of ga(e.conversations)){if(!o?.id||!o.agentId||o.type==="yeaft"||o.id.startsWith("yeaft-"))continue;let a=o.provider||"claude-code";["claude-code","copilot"].includes(a)&&r.push({...o,catalogKey:Bs(o.id),runtimeProvider:a,routeRef:{runtimeProvider:a,agentId:o.agentId,sessionId:o.id},title:e.customConversationTitles?.[o.id]||e.conversationTitles?.[o.id]||o.title||o.id,pinned:o.pinned===!0||(e.pinnedSessions||[]).includes(o.id)})}for(let o of t)!o?.id||!o.agentId||o.hidden||r.push({...o,catalogKey:Rs(o.agentId,o.id),runtimeProvider:"yeaft",routeRef:{runtimeProvider:"yeaft",agentId:o.agentId,sessionId:o.id},title:o.name||o.id,projectId:n.get(`${o.agentId}${o.id}`)||null,pinned:!!o.pinned,sortRank:Number.isFinite(o.sortOrder)?o.sortOrder:null});let i=new Set;return r.filter(o=>o.hidden||i.has(o.catalogKey)?!1:(i.add(o.catalogKey),!0)).map((o,a)=>({...o,agentName:o.agentName||s.get(o.routeRef.agentId)?.name||"",availability:s.get(o.routeRef.agentId)?.online?"online":"offline",workDir:o.workDir||"",hidden:!1,sortRank:a,metadataUpdatedAt:o.metadataUpdatedAt||o.updatedAt||o.createdAt||null}))}function Ki(e,t=[]){return e.sessionCatalogProtocolSupported===!1&&ha(e)?DC(e,t):e.sessionCatalog.length>0||e.sessionCatalogLoaded?e.sessionCatalog:e.sidebarLegacySessionCatalog}function Kf(e,t=[]){return e.connectionState!=="connected"?!0:e.sessionCatalogProtocolSupported===!1?!ha(e):e.sessionCatalogProtocolSupported!==!0||!e.sessionCatalogLoaded}var ma=F(()=>{Ur();ji()});function va(e){e.sessionCatalog=[],e.hiddenSessionCatalog=[],e.sessionProjects=[],e.activeCatalogKey=null,e.sidebarLegacySessionCatalog=[],e.sessionCatalogLoaded=!1,e.sessionCatalogProtocolSupported=null,e.scheduledTaskProtocolSupported=!1}function zf(){typeof window>"u"||typeof window.dispatchEvent!="function"||typeof CustomEvent>"u"||window.dispatchEvent(new CustomEvent("browser-runtime-transport-reset"))}function Gf(e){return e?.code===1008&&String(e.reason||"").toLowerCase().includes("authentication")}function Yf(e){let t=zi;zi=[];for(let{resolve:s,reject:n,timer:r}of t)clearTimeout(r),e?s():n(new Error("WebSocket reconnect failed"))}function Zf(e,t){if(!e.ws||e.ws.readyState!==WebSocket.OPEN)return!1;if(e.currentView==="yeaft"&&LC.has(t.type)){let s=t.conversationId;if(!s||typeof s=="string"&&s.startsWith("yeaft-")||s===e.yeaftConversationId)return!1}try{if(e.serverEncryptionRequired&&e.sessionKey){let s=hf(t,e.sessionKey);e.ws.send(JSON.stringify(s))}else e.ws.send(JSON.stringify(t));return!0}catch{return!1}}function Gi(e,t=1e4){return e.ws&&e.ws.readyState===WebSocket.OPEN?Promise.resolve():new Promise((s,n)=>{let r=setTimeout(()=>{zi=zi.filter(i=>i.resolve!==s),n(new Error("WebSocket reconnect timeout"))},t);zi.push({resolve:s,reject:n,timer:r}),(!e.ws||e.ws.readyState!==WebSocket.CONNECTING)&&(e.reconnectAttempts=0,e.connect())})}function Xf(e,t){try{let s=JSON.parse(t);return e.sessionKey&&vf(s)?mf(s,e.sessionKey):s}catch{return null}}function Qf(e,t,s,n){for(let[r,i]of e._sessionCrudPending?.entries?.()||[])Number(i?.connectionGeneration||0)===Number(t||0)&&(i.resolve?.({ok:!1,requestId:r,error:{code:s,message:n}}),e._sessionCrudPending.delete(r))}function Jf(e){let t=Xe(),s=location.protocol==="https:"?"wss:":"ws:";e.reconnectTimer&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=null);let n=t.getActiveToken?.()||t.token||null,r=t.authGeneration,i=t.userId||null;if(e.ws&&e.ws.readyState===WebSocket.CONNECTING&&e._wsAuthToken===n&&e._wsAuthGeneration===r&&e.sidebarCatalogOwnerId===i)return;let o=pr(e,t);o&&e.sessionCatalogProtocolSupported===!1?e.sidebarLegacySessionCatalog=Ki(e,typeof window<"u"?(window.Pinia?.useSessionsStore?.()||window.__useSessionsStore?.())?.sessionList||[]:[]).map(u=>({...u})):(!o||e.sessionCatalogProtocolSupported===!0)&&(e.sidebarLegacySessionCatalog=[]),!e._sidebarCatalogAuthUnsubscribe&&t.$subscribe&&(e._sidebarCatalogAuthUnsubscribe=t.$subscribe(()=>{pr(e,t)||(va(e),e.sessionCatalogMutationRequests={})},{detached:!0,flush:"sync"})),clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=null,e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionInventoryCompleteSupported=null,e.workbenchRouteProtocolSupported=null,e.workCenterWorkbenchProtocolSupported=null,e.browserRuntimeProtocolSupported=null,e.browserRuntimeSetupProtocolSupported=null,e.browserRuntimeServerEnabled=!1,zf(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!1,e.pendingAgentSelection=null,e.agentSwitching=!1,e.ws&&(Qf(e,e.chatHistoryConnectionGeneration,"connection_changed","WebSocket connection changed"),e.ws.onopen=null,e.ws.onmessage=null,e.ws.onclose=null,e.ws.close(),e.ws=null),e.connectionState=e.reconnectAttempts>0?"reconnecting":"connecting",e.serverEncryptionRequired=!0,e.chatHistoryRequestIdSupported=null;let a=Number(e.chatHistoryConnectionGeneration||0)+1;e.chatHistoryConnectionGeneration=a;for(let[u,p]of Object.entries(e.projectMutationRequests||{}))p?.resolve?.({ok:!1,requestId:u,error:{code:"connection_changed"}});e.projectMutationRequests={},o||(e.sessionProjects=[]);for(let[u,p]of Object.entries(e.chatHistoryRequests||{}))p?.loading&&(e.chatHistoryRequests[u]={...p,loading:!1,cancelled:!0,error:"connection_changed"});let l=Object.values(e.sessionCatalogMutationRequests||{});l.length>0&&(e.sessionCatalog=l[0].previousCatalog,Array.isArray(l[0].previousHiddenCatalog)&&(e.hiddenSessionCatalog=l[0].previousHiddenCatalog),e.sessionCatalogMutationRequests={}),e.sessionCatalogLoaded=!1,e.sessionCatalogProtocolSupported=null,e.scheduledTaskProtocolSupported=!1,o||va(e),e.sidebarCatalogOwnerId=i,e.sidebarCatalogAuthGeneration=r,e._wsAuthToken=n,e._wsAuthGeneration=r;let c=`${s}//${location.host}?type=web`;n&&(c+=`&token=${encodeURIComponent(n)}`);let d=new WebSocket(c);e.ws=d,d.onopen=()=>{if(d===e.ws){e.connectionState="connected",e.reconnectAttempts=0,e.startHeartbeat();try{d.send(JSON.stringify({type:"client_hello",plaintextOk:!0,sessionCatalogProtocol:1,workbenchRouteProtocol:1,workCenterWorkbenchProtocol:1,browserRuntimeProtocol:1,browserRuntimeSetupProtocol:1}))}catch{}Yf(!0)}},d.onmessage=u=>{if(d!==e.ws)return;let p=e.parseWsMessage(u.data);if(p&&(r!==t.authGeneration||i!==(t.userId||null))&&!(p.type==="auth_result"&&p.success===!1)){va(e);return}p&&(p.type,e.handleMessage({...p,_wsAuthToken:n,_wsAuthGeneration:r}))},d.onclose=u=>{if(d!==e.ws){Gf(u)&&t.handleAuthFailure?.(void 0,n,r);return}e.authenticated=!1,e.sessionCatalogProtocolSupported===!1&&(e.sidebarLegacySessionCatalog=Ki(e,typeof window<"u"?(window.Pinia?.useSessionsStore?.()||window.__useSessionsStore?.())?.sessionList||[]:[]).map(f=>({...f}))),e.sessionCatalogLoaded=!1,pr(e,t)||va(e),clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=null,e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionInventoryCompleteSupported=null,e.workbenchRouteProtocolSupported=null,e.workCenterWorkbenchProtocolSupported=null,e.browserRuntimeProtocolSupported=null,e.browserRuntimeSetupProtocolSupported=null,e.browserRuntimeServerEnabled=!1,zf(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null;for(let f of Object.values(e._workCenterFeaturePending||{}))clearTimeout(f.timer),f.reject(new Error("WebSocket disconnected"));e._workCenterFeaturePending={},Qf(e,a,"agent_offline","WebSocket disconnected"),e.pendingAgentSelection=null,e.agentSwitching=!1;let p=e.connectionState==="updating";if(e.connectionState=p?"updating":"disconnected",e.stopHeartbeat(),Hs(e),Gf(u)){t.handleAuthFailure?.(void 0,n,r),e.reconnectAttempts=0,Yf(!1);return}if(e._yeaftReconnectCatchUpPending=!0,p){e.reconnectAttempts=0,e.reconnectTimer=setTimeout(()=>{e.connect()},2e3);return}e.scheduleReconnect()},e.ws.onerror=u=>{}}function eg(e){if(e.reconnectAttempts>=e.maxReconnectAttempts){e.connectionState="disconnected";return}let t=Math.min(1e3*Math.pow(2,e.reconnectAttempts),3e4);e.reconnectAttempts++,e.connectionState="reconnecting",e.reconnectTimer=setTimeout(()=>{e.connect()},t)}function tg(e){e.reconnectAttempts=0,e.connect()}function sg(e){e.stopHeartbeat(),e._lastPongAt=Date.now(),e.heartbeatTimer=setInterval(()=>{if(e.ws&&e.ws.readyState===WebSocket.OPEN){if(Date.now()-e._lastPongAt>45e3){e.ws.close(4e3,"Heartbeat timeout");return}try{e.sendWsMessage({type:"ping"})}catch{}}},25e3)}function ng(e){e.heartbeatTimer&&(clearInterval(e.heartbeatTimer),e.heartbeatTimer=null)}function rg(e){e._visibilityHandlerInstalled||(e._visibilityHandlerInstalled=!0,document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")if(!e.ws||e.ws.readyState!==WebSocket.OPEN)e.reconnectAttempts=0,e.connect();else try{e.sendWsMessage({type:"ping"});let t=e._lastPongAt;setTimeout(()=>{e._lastPongAt===t&&e.ws&&e.ws.close(4001,"Visibility resume timeout")},3e3)}catch{e.reconnectAttempts=0,e.connect()}}))}var zi,LC,Bc=F(()=>{ss();ca();ur();ma();zi=[];LC=new Set(["sync_messages","refresh_conversation","select_conversation","cancel_execution","update_conversation_settings","ask_user_answer"])});function og(e){e.pluginStateGeneration=Number(e.pluginStateGeneration||0)+1;let t=ya.get(e);for(let s of t?.values()||[])s.cancelled=!0,s.intents=[];for(let s of Object.values(e._pluginPending||{}))clearTimeout(s.timer),s.finish?s.finish({stale:!0}):s.resolve?.({stale:!0,error:"Authentication changed"});e._pluginPending={},ya.delete(e),e.pluginConfigByAgent={},e.pluginCatalogByKey={},e.pluginCatalogRequestByKey={},e.managedSkillRequestByKey={},e.pluginCenterAgentId=null,e.pluginCenterOpen=!1}function gn(e,t){let s=ya.get(e);return s||ya.set(e,s=new Map),s.has(t)||s.set(t,{fence:0,intents:[],task:null}),s.get(t)}function ns(e){let t={};for(let s of ig)Array.isArray(e?.[s])&&(t[s]=[...new Set(e[s])]);return t}function pn(e,t){return e.pluginConfigByAgent?.[t]||{agentId:t,plugins:{},optimistic:{},draft:{},loaded:!1,saving:!1,loading:!1,error:null,errorAgentId:null,retryIntent:null,uncertain:!1}}function On(e,t,s){let n={...pn(e,t),...s,agentId:t};return e.pluginConfigByAgent={...e.pluginConfigByAgent,[t]:n},n}function Yi(e){let t=e?.agents||[],s=new Set(t.map(r=>r.id)),n=Object.values(e?.pluginConfigByAgent||{}).filter(r=>r.loaded&&r.agent?.id&&!s.has(r.agent.id)).map(r=>({...r.agent,online:!1}));return[...t,...n]}function ka(e,t){if(!t)return"no agent";let s=e.agents?.find(n=>n?.id===t);return Wr(s)?!s?.online||!e.ws||e.ws.readyState!==1?"Agent is offline or disconnected":null:"The selected Agent does not support Plugins; upgrade and restart the Agent"}function ba(e,t){let s=ns(e);for(let n of t){if(n.kind==="replace"){s=ns(n.plugins);continue}if(n.enabled&&!Array.isArray(s[n.field]))continue;let r=new Set(Array.isArray(s[n.field])?s[n.field]:n.catalogNames);n.enabled?r.add(n.itemName):r.delete(n.itemName),s[n.field]=[...r]}return s}function fn(e,t,s,n=!1){let r=gn(e,t),i=pn(e,t);return On(e,t,{optimistic:ns(i.plugins),draft:ns(i.plugins),saving:!1,loading:!1,error:s,errorAgentId:t,errorOperation:r.intents.length?"save":"load",retryIntent:r.intents.length?{agentId:t,intents:r.intents.map(o=>({...o}))}:null,uncertain:n||i.uncertain})}function ag(e,t,s,n){let r=gn(e,t),i=++r.fence,o=ka(e,t);if(o)return Promise.resolve({error:o,uncertain:!1,fence:i});let a=`plugins-${s}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`;return new Promise(l=>{let c=u=>{let p=e._pluginPending?.[a];p&&(clearTimeout(p.timer),delete e._pluginPending[a],l({...u,fence:i}))},d=setTimeout(()=>c({error:"timeout",uncertain:s==="save"}),Hc);e._pluginPending[a]={kind:s,agentId:t,timer:d,fence:i,socket:e.ws,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0),expiresAt:Date.now()+Hc,finish:c};try{e.sendWsMessage({type:s==="save"?"update_yeaft_plugins":"get_yeaft_plugins",agentId:t,requestId:a,...s==="save"?{plugins:ns(n)}:{}})||c({error:"Agent is offline or disconnected",uncertain:!1})}catch(u){c({error:u?.message||String(u),uncertain:s==="save"})}})}function lg(e,t){let s=t.requestId?e._pluginPending?.[t.requestId]:null,n=t.type==="yeaft_plugins_updated"?"save":"config";if(!s||s.kind!==n||s.agentId!==t.agentId||Date.now()>=s.expiresAt||s.socket!==e.ws||s.connectionGeneration!==Number(e.chatHistoryConnectionGeneration||0))return!1;if(s.fence!==gn(e,t.agentId).fence)return s.finish({stale:!0}),!1;let r=t.plugins&&typeof t.plugins=="object"&&!Array.isArray(t.plugins);return s.finish({plugins:r?ns(t.plugins):void 0,error:t.error||(r?null:"Invalid plugin configuration reply"),uncertain:!t.error&&!r&&n==="save"}),!0}function Wc(e,t){let s=gn(e,t);return s.task?s.task:cg(e,t)}async function cg(e,t){let s=gn(e,t),n=e.agents?.find(l=>l?.id===t);On(e,t,{loading:!0,...n?{agent:{id:n.id,name:n.name,capabilityMetadataProvided:n.capabilityMetadataProvided,capabilities:Array.isArray(n.capabilities)?[...n.capabilities]:[]}}:{}});let r=await ag(e,t,"config");if(s.cancelled)return{stale:!0};if(r.stale||r.fence!=null&&r.fence!==s.fence)return{...pn(e,t),stale:!0};if(r.error)return fn(e,t,r.error);let i=pn(e,t),o=ns(r.plugins),a=s.task?ba(o,s.intents):o;return On(e,t,{plugins:o,optimistic:a,draft:ns(a),loading:!1,loaded:!0,at:Date.now(),...s.intents.length&&!s.task?{}:{error:null,errorAgentId:null,errorOperation:null,uncertain:!1},...i.retryIntent?{retryIntent:i.retryIntent}:{}})}async function FC(e,t,s){let n=gn(e,t),r=e.ws,i=Number(e.chatHistoryConnectionGeneration||0);if(await Promise.resolve(),n.cancelled)return{stale:!0};if(s||!pn(e,t).loaded){let o=await cg(e,t);if(n.cancelled)return{stale:!0};if(o.error)return fn(e,t,o.error,pn(e,t).uncertain)}for(;n.intents.length;){if(n.stopError||r!==e.ws||i!==Number(e.chatHistoryConnectionGeneration||0))return fn(e,t,n.stopError||"Connection changed; retry required",!0);let o=n.intents.length,a=ba(pn(e,t).plugins,n.intents.slice(0,o));On(e,t,{optimistic:a,draft:ns(a),loading:!1});let l=await ag(e,t,"save",a);if(n.cancelled)return{stale:!0};if(l.error||l.stale)return fn(e,t,l.error||"Plugin configuration changed; retry required",l.uncertain);n.intents.splice(0,o);let c=ns(l.plugins),d=ba(c,n.intents);On(e,t,{plugins:c,optimistic:d,draft:ns(d),loaded:!0,at:Date.now(),error:null,errorAgentId:null,errorOperation:null,retryIntent:null,uncertain:!1})}return On(e,t,{saving:!1,loading:!1})}function dg(e,t,s=!1){let n=gn(e,t);n.stopError=null,On(e,t,{saving:!0});let r=FC(e,t,s).catch(i=>n.cancelled?{stale:!0}:fn(e,t,i?.message||String(i),!0)).finally(()=>{n.task===r&&(n.task=null)});return n.task=r,r}function ug(e,t,s){let n=gn(e,t),r=pn(e,t);n.task&&!r.saving&&!n.intents.length&&(n.task=null),n.intents.push(s),n.task||n.fence++;let i=ka(e,t);if(i){if(n.task){n.stopError=i;let a=fn(e,t,i,!0);return Promise.resolve(a)}return Promise.resolve(fn(e,t,i))}if(!n.task&&r.error&&r.retryIntent)return Promise.resolve(fn(e,t,r.error,r.uncertain));let o=ba(r.plugins,n.intents);return On(e,t,{optimistic:o,draft:ns(o)}),n.task||dg(e,t,r.loading)}function pg(e,t,s,n,r,i){if(!ig.includes(t)||typeof s!="string"||!s)return Promise.resolve({...pn(e,i),error:"Invalid plugin selection"});let o=(Array.isArray(r)?r:[]).map(a=>typeof a=="string"?a:t==="skills"?a?.name:a?.id).filter(a=>typeof a=="string"&&a);return ug(e,i,{kind:"toggle",field:t,itemName:s,enabled:!!n,catalogNames:o})}function fg(e,t,s){return ug(e,s,{kind:"replace",plugins:ns(t)})}function gg(e,t){let s=gn(e,t);if(s.task)return s.task;let n=ka(e,t);return n?Promise.resolve(fn(e,t,n)):s.intents.length?dg(e,t,!0):Wc(e,t)}function hg(e,t,s,n=""){let r=ka(e,s);if(r||typeof t!="string"||!t.trim())return Promise.resolve({error:r||"Invalid skill name"});let i=`skill-detail-${Date.now()}-${Math.random().toString(36).slice(2,10)}`;return new Promise(o=>{let a=c=>{clearTimeout(l),delete e._pluginPending[i],o(c)},l=setTimeout(()=>a({error:"timeout"}),Hc);e._pluginPending||(e._pluginPending={}),e._pluginPending[i]={kind:"skill-detail",agentId:s,name:t,finish:a,timer:l,generation:Number(e.pluginStateGeneration||0),socket:e.ws,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0)};try{e.sendWsMessage({type:"yeaft_plugin_catalog",requestId:i,agentId:s,workDir:String(n||"").trim(),skillName:t})||a({error:"Connection unavailable"})}catch(c){a({error:c?.message||String(c)})}})}function mg(e,t){let s=t.requestId?e._pluginPending?.[t.requestId]:null;if(s?.kind!=="skill-detail")return!1;if(t.agentId!==s.agentId)return!0;if(s.generation!==Number(e.pluginStateGeneration||0)||s.socket!==e.ws||s.connectionGeneration!==Number(e.chatHistoryConnectionGeneration||0))return s.finish({stale:!0}),!0;let n=t.skillDetail;return t.error?s.finish({error:String(t.error)}):n?n.name!==s.name||typeof n.content!="string"?s.finish({error:"Invalid skill detail response"}):s.finish({skillDetail:{name:n.name,content:n.content,description:typeof n.description=="string"?n.description:"",trigger:typeof n.trigger=="string"?n.trigger:"",tier:typeof n.tier=="string"?n.tier:"bundled",keywords:Array.isArray(n.keywords)?n.keywords.filter(r=>typeof r=="string"):[],references:Array.isArray(n.references)?n.references.filter(r=>typeof r=="string"):[],templates:Array.isArray(n.templates)?n.templates.filter(r=>typeof r=="string"):[],contentTruncated:n.contentTruncated===!0}}):s.finish({unsupported:!0}),!0}var ya,ig,Hc,wa=F(()=>{Hi();ya=new WeakMap,ig=["tools","skills","mcpServers"],Hc=1e4});function yg(e){return e.scheduledTaskNotificationOwnerId||null}function bg(e){let t=yg(e),s=Uc.get(e);if(s?.owner===t)return s;let n=[];if(t)try{let r=JSON.parse(localStorage.getItem(`yeaft-task-receipts:${t}`)||"[]");Array.isArray(r)&&(n=r.filter(i=>typeof i=="string").slice(-vg))}catch{}return s={owner:t,seen:new Set(n)},Uc.set(e,s),s}function BC(e,t){let s=bg(e);if(s.seen.add(t),s.seen=new Set([...s.seen].slice(-vg)),s.owner)try{localStorage.setItem(`yeaft-task-receipts:${s.owner}`,JSON.stringify([...s.seen]))}catch{}}function jc(e,t){let s=typeof t=="string"&&t?t:null;yg(e)!==s&&(e.scheduledTaskNotificationOwnerId=s,e.scheduledTaskNotifications=[],Uc.delete(e))}function Sa(e,t,s,n){let r=e.agents?.find(o=>o.id===t),i=e.scheduledTaskProtocolSupported!==!0?"scheduled_task_server_unsupported":t?!r?.online||e.ws?.readyState!==1?"agent_offline":r.capabilities?.includes("scheduled_tasks")?n?.trigger?.recurrence?.daysOfMonth&&!r.capabilities.includes("scheduled_task_month_days")?"scheduled_task_month_days_unsupported":null:"scheduled_tasks_unsupported":"missing_agent";return i?{ok:!1,op:s,error:{code:i}}:null}function kg(e,{agentId:t,sessionId:s,task:n,expectedRevision:r}={}){let i=Sa(e,t,"update_task",n);return i?Promise.resolve(i):e.sessionCrudRequest("update_task",{sessionId:s,task:n,expectedRevision:r},{agentId:t})}function wg(e,{agentId:t,sessionId:s}={}){let n=Sa(e,t,"run_task");return n?Promise.resolve(n):e.sessionCrudRequest("run_task",{sessionId:s},{agentId:t})}function Kc(e,t,s){if(typeof s!="string"||!s||typeof t?.sessionId!="string"||!t.sessionId||typeof t.runId!="string"||!t.runId||!VC.has(t.status))return!1;let n=JSON.stringify([s,t.sessionId,t.runId]);if(bg(e).seen.has(n)||e.scheduledTaskNotifications?.some(i=>i.id===n))return!1;let r={id:n,agentId:s,sessionId:t.sessionId,runId:t.runId,taskName:typeof t.taskName=="string"?t.taskName:t.sessionId,status:t.status,error:typeof t.error=="string"?t.error.slice(0,1e3):"",createdAt:t.finishedAt||Date.now()};if(e.scheduledTaskNotifications=[...e.scheduledTaskNotifications||[],r].slice(-NC),e.markYeaftSessionUnread?.(r.sessionId,s),typeof Notification<"u"&&Notification.permission==="granted")try{let i=new Notification(r.taskName,{tag:n});i.onclick=()=>{globalThis.window?.focus?.(),e.openScheduledTaskNotification(r),i.close()}}catch{}return!0}function Ca(e,t,s){for(let n of Array.isArray(t)?t:[]){if(!n?.task||n.task.notify===!1)continue;let r=n.task.lastRun;r&&Kc(e,{sessionId:n.id,taskName:n.name,runId:r.id,status:r.status,error:r.error,finishedAt:r.finishedAt},s||n.agentId)}}function zc(e,t){return e.scheduledTaskNotifications?.some(s=>s.id===t)?(BC(e,t),e.scheduledTaskNotifications=e.scheduledTaskNotifications.filter(s=>s.id!==t),!0):!1}function Sg(e,t){if(!t?.agentId||!t.sessionId)return!1;let s=Rs(t.agentId,t.sessionId),n=e.sidebarSessionCatalog?.find(r=>r.catalogKey===s);return!n||!e.openCatalogSession(n)?!1:(e.workCenterOpen&&e.leaveWorkCenter?.(),e.digitalPersonOpen&&e.leaveDigitalPerson?.(),zc(e,t.id),!0)}var VC,NC,vg,Uc,Gc=F(()=>{Ur();VC=new Set(["completed","failed","interrupted"]),NC=30,vg=300,Uc=new WeakMap});function Ye(e,t){let s=t==null?"__all__":String(t);return e?`${e}${s}`:s}function Qi(e){return typeof e?.entryId=="string"&&e.entryId?`entry:${e.entryId}`:e?.role==="assistant"&&e?.turnId?`live-response:${e.turnId}:${e.speakerVpId||e.vpId||""}`:typeof e?.clientMessageId=="string"&&e.clientMessageId?`client:${e.clientMessageId}`:`message:${e?.messageId||""}`}function Zi(e,t,s){return typeof s!="string"||!s?null:`${Ye(e,t)}message:${s}`}function Fn(e,t,s){return typeof s!="string"||!s?null:`${Ye(e,t)}client:${s}`}var Kr=F(()=>{});function Yc(e){return typeof e=="string"&&e?e:null}function zr(e,t){return e?.yeaftSessionHistoryState?.[t]||null}function _s(e){let t=e?.yeaftActiveSessionFilter||null;if(!t)try{t=(typeof window<"u"&&window.Pinia?.useSessionsStore?.())?.activeSessionId||null}catch{}if(!t)return{agentId:e?.currentAgent||null,sessionId:null,sessionKey:""};let s=(()=>{try{let n=typeof window<"u"&&window.Pinia?.useSessionsStore?.(),r=n?.activeSessionKey?n.sessions?.[n.activeSessionKey]:null;if(r?.id===t&&r.agentId)return r.agentId}catch{}return typeof e?.resolveYeaftSessionAgentId=="function"?e.resolveYeaftSessionAgentId(t):e?.currentAgent||null})();return{agentId:s,sessionId:t,sessionKey:Ye(s,t)}}function Ig(e,{agentId:t,sessionId:s,mode:n="recent",preserveLoaded:r=!1,latestSeq:i=null}={}){if(!t||!s)return null;let o=Ye(t,s),a=zr(e,o)||{},l=Number(a.generation||0)+1,c=`yeaft_history_${l}_${crypto.randomUUID()}`,d={...a,loaded:!!a.loaded,loading:!0,error:null,requestId:c,generation:l,mode:n,background:n==="prefetch",requestedAt:Date.now(),latestSeq:Number.isFinite(i)?i:a.latestSeq??null};return delete d.completionSeen,r||(d.syncingAfterSeq=null,a.loaded||(d.hasMore=!1,d.oldestSeq=null,d.serverOldestFetchedSeq=null,d.serverHasMore=!1,d.gapQueue=[],d.requestedBeforeSeqs=[],d.count=0)),e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[o]:d},fr(e),{sessionKey:o,requestId:c,generation:l,state:d}}function Qc(e,t={}){let s=t.sessionId??t.groupId??null;if(!s)return!1;let n=t.agentId||e?.yeaftSessionAgentById?.[s]||null,r=Ye(n,s),i=zr(e,r),o=Yc(t.requestId);if(!i)return o===null;let a=Yc(i.requestId);return o?o===a:a===null}function Ag(e,t={},s={},n="chunk"){if(!Qc(e,t))return null;let r=t.sessionId??t.groupId??null,i=t.agentId||e?.yeaftSessionAgentById?.[r]||null,o=Ye(i,r),a=zr(e,o)||{},l=Yc(t.requestId),c=l!==null&&n==="completion",d={...a,...c?{}:s,...c?{completionSeen:!0}:{},error:null};return c?(d.loading=!0,d.requestId=l):(d.loading=!1,d.requestId=null,d.completedAt=Date.now(),delete d.completionSeen),e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[o]:d},fr(e),d}function Xi(e,{agentId:t,sessionId:s,requestId:n,error:r="history_load_failed"}={}){if(!t||!s||!n)return!1;let i=Ye(t,s),o=zr(e,i);return!o||o.requestId!==n||!o.loading?!1:(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[i]:{...o,loading:!1,error:r,requestId:null,completedAt:Date.now()}},fr(e),!0)}function fr(e){let{sessionKey:t}=_s(e),s=t?zr(e,t):null;return e.yeaftLoadingMoreHistory=!!s?.loading&&s?.mode!=="prefetch",e.yeaftHistoryLoadError=s?.error||null,e.yeaftHasMoreHistory=!!s?.hasMore,e.yeaftOldestLoadedSeq=Number.isFinite(s?.serverOldestFetchedSeq)?s.serverOldestFetchedSeq:Number.isFinite(s?.oldestSeq)?s.oldestSeq:null,s}function Zc(e){let{sessionKey:t}=_s(e);return t?zr(e,t):null}var Cg,Ia=F(()=>{Kr();Cg=15e3});function Xc(e){return e?.sessionId??e?.groupId??null}function ed(e){for(let t of[e?.persistedMessageId,e?.messageId,e?.id]){if(typeof t!="string")continue;let s=t.match(/^(m\d+)/);if(s)return s[1]}return null}function Ot(e){return e?.isStreaming||e?.status==="pending"?!1:Number.isFinite(e?.seq)||!!ed(e)||e?.isHistory===!0&&!e?.clientMessageId}function Aa(e){if(Number.isFinite(e?.seq))return Number(e.seq);let s=ed(e)?.match(/^m(\d+)$/);if(s)return Number(s[1]);let n=typeof e?.id=="string"?e.id.match(/^(\d+)/):null;return n?Number(n[1]):null}function WC(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}function UC(e){return e?e.isStreaming||e.status==="pending"||e.type==="tool-use"&&(e.askPending||!e.hasResult&&(e.toolName==="AskUser"||e.toolName==="AskUserQuestion"))?!0:e.type!=="user"||!e.clientMessageId?!1:!e.dbMessageId&&!ed(e):!1}function jC(e){let t=[],s=null;for(let n of e)(n?.type==="user"||!s)&&(s={rows:[],protected:!1},t.push(s)),s.rows.push(n),UC(n)&&(s.protected=!0);return t}function Tg(e,{conversationId:t,agentId:s=null,sessionId:n=null,limits:r=xg}={}){let i=e?.messagesMap?.[t];if(!Array.isArray(i)||i.length===0||!s||!n)return{evictedRows:0,keptRows:0};let o=b=>Xc(b)===n,a=i.filter(o),l=jC(a);if(l.length===0)return{evictedRows:0,keptRows:0};let c=l.filter(b=>b.protected),d=new Set(c),u=Number.isFinite(r.maxTurnsPerSession)?Math.max(0,Math.floor(r.maxTurnsPerSession)):Jc,p=Math.max(0,u-c.length);for(let b=l.length-1;b>=0&&p>0;b-=1){let S=l[b];d.has(S)||(d.add(S),p-=1)}let f=new Set(l.filter(b=>d.has(b)).flatMap(b=>b.rows)),g=a.filter(b=>!f.has(b));if(g.length===0)return{evictedRows:0,keptRows:f.size};let v=i.filter(b=>!o(b)||f.has(b));i.splice(0,i.length,...v);let h=Ye(s,n),m=e.yeaftHistoryCacheState?.[h]||null,y=Mg(a.filter(b=>f.has(b))),w=JSON.stringify(m?.ranges||[])===JSON.stringify(y.ranges)?Number(m?.rangeEpoch)||0:(Number(m?.rangeEpoch)||0)+1;if(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[h]:{...m||{},agentId:s,sessionId:n,conversationId:t,lastAccessed:Date.now(),rangeEpoch:w,...y}},g.some(Ot)){let b=y.ranges[0]?.startSeq??null,S=e.yeaftSessionHistoryState?.[h]||{};e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[h]:{...S,serverOldestFetchedSeq:b,oldestSeq:b,serverHasMore:b!==null,hasMore:b!==null,gapTraversalInitialized:!1,gapQueue:[],requestedBeforeSeqs:[],completedHistoryWorkKeys:[],pendingPageKind:null,pendingPageBeforeSeq:null,pendingGapStopAtSeq:null,pendingCacheEpoch:null,pendingHistoryWorkKey:null,paginationError:null,count:y.rowCount}};let C=_s(e);C.agentId===s&&C.sessionId===n&&fr(e)}return{evictedRows:g.length,keptRows:f.size}}function KC(e){let t=[],s=null;for(let n of e)Ot(n)&&((n?.type==="user"||!s)&&(s=[],t.push(s)),s.push(n));return t}function zC(e,t){let s=Number.isFinite(t.maxTurnsPerSession)?Math.max(0,Math.floor(t.maxTurnsPerSession)):Jc,n=KC(e),r=new Set(n.slice(-s).flat());for(let i of n)if(i.some(o=>o?._historyWindowDetached===!0))for(let o of i)r.add(o);return r}function GC(e){let t=Array.from(new Set(e.map(Aa).filter(Number.isFinite))).sort((n,r)=>n-r),s=[];for(let n of t){let r=s.at(-1);r&&n<=r.endSeq+1?r.endSeq=n:s.push({startSeq:n,endSeq:n})}return s}function Mg(e){let t=e.filter(Ot);return{rowCount:t.length,byteCount:t.reduce((s,n)=>s+WC(n),0),ranges:GC(t)}}function YC(e,t,s){let n=new Set((t||[]).map(r=>r?.stableKey).filter(Boolean));if(n.size!==0)for(let r of e)r?.stableKey&&n.has(r.stableKey)&&(r._historyCacheTouchedAt=s)}function QC(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o}){let a=e.messagesMap?.[t]||[],l=a.filter(y=>Xc(y)===n);YC(l,r,i);let c=zC(l,o),d=l.filter(y=>!Ot(y)||c.has(y)),u=new Set(d),p=a.filter(y=>Xc(y)!==n||u.has(y));a.splice(0,a.length,...p);let f=Mg(d),g=Ye(s,n),v=e.yeaftHistoryCacheState?.[g]||null,m=JSON.stringify(v?.ranges||[])===JSON.stringify(f.ranges)?Number(v?.rangeEpoch)||0:(Number(v?.rangeEpoch)||0)+1;e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[g]:{agentId:s,sessionId:n,conversationId:t,lastAccessed:i,rangeEpoch:m,...f}}}function Pg(e,t,s,n=Date.now()){if(!t||!s)return;let r=Ye(t,s),i=e.yeaftHistoryCacheState?.[r];i&&(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[r]:{...i,lastAccessed:n}})}function td(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r=[],now:i=Date.now(),limits:o=xg}={}){!e||!t||!s||!n||QC(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o})}var Jc,xg,xa=F(()=>{Kr();Ia();Jc=500,xg=Object.freeze({maxTurnsPerSession:Jc})});function hn(e){return e?.sessionId??e?.groupId??null}function _g(e){let t=e?.stableKey??e?.uiKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function ZC(e,t){if(e?.type!=="assistant"||t?.type!=="assistant"||e.presentation||t.presentation||hn(e)!==hn(t)||e.isHistory===!0&&!e.isStreaming||t._hasPersistedTurnId!==!0||!e.turnId||!t.turnId||e.turnId!==t.turnId)return!1;let s=e.speakerVpId||e.vpId||"",n=t.speakerVpId||t.vpId||"";if(s&&n&&s!==n)return!1;let r=e.threadId||"",i=t.threadId||"";if(r&&i&&r!==i)return!1;let o=typeof e.content=="string"?e.content:"",a=typeof t.content=="string"?t.content:"";return!!o&&!!a&&(a.startsWith(o)||o.startsWith(a))}function Eg(e,t){let s=e.uiKey||t.uiKey||null;return Object.assign(e,t),s&&(e.uiKey=s),Ot(t)&&(e.isStreaming=!1,e.status==="pending"&&(e.status="completed")),e}function Ta(e){let t=Ot(e),s=t?Aa(e):null,n=Number(e?.timestamp),r=Number.isFinite(n)&&n>0?n:t?-1/0:1/0;return[r,Number.isFinite(r)?0:Number.isFinite(s)?s:-1]}function XC(e,t,s){let n=[],r=new Map,i=new Map;for(let l=t;l<s;l+=1){let c=e[l],d=hn(c),u=Ot(c)?Aa(c):null,p=i.get(d);if(!Number.isFinite(u)&&p){p.rows.push(c);continue}let f={sessionId:d,seq:u,rows:[c]};n.push(f),i.set(d,f),Number.isFinite(u)&&(r.has(d)||r.set(d,[]),r.get(d).push(f))}for(let l of r.values())l.sort((c,d)=>c.seq-d.seq);let o=new Map,a=t;for(let l of n){let c=l;if(Number.isFinite(l.seq)){let d=o.get(l.sessionId)||0;c=r.get(l.sessionId)[d],o.set(l.sessionId,d+1)}for(let d of c.rows)e[a++]=d}}function sd(e){e.sort((t,s)=>{let n=Ta(t),r=Ta(s);for(let i=0;i<n.length;i+=1)if(n[i]!==r[i])return n[i]-r[i];return 0});for(let t=0;t<e.length;){let s=Ta(e[t])[0],n=t+1;for(;n<e.length&&Ta(e[n])[0]===s;)n+=1;Number.isFinite(s)&&n-t>1&&XC(e,t,n),t=n}return e}function JC(e,t){return Array.isArray(e.messagesMap?.[t])||(e.messagesMap=e.messagesMap||{},e.messagesMap[t]=[]),e.messagesMap[t]}function nd(e,t){return e.filter(s=>t===void 0||hn(s)===t)}function $g(e,t){let s=_g(t);if(s){let n=e.find(r=>_g(r)===s);if(n)return n}if(t?.type==="user"&&t.clientMessageId){let n=e.find(r=>r?.type==="user"&&r.clientMessageId===t.clientMessageId&&hn(r)===hn(t));if(n)return n}return t?.type==="assistant"&&e.find(n=>ZC(n,t))||null}function Ws(e){if(!e||typeof e!="object")return null;let t=Rg.get(e);return t||(t=new rd(e),Rg.set(e,t)),t}var Rg,rd,Ji=F(()=>{xa();Rg=new WeakMap;rd=class{constructor(t){this.store=t}rows(t){return JC(this.store,t)}durableRows(t,s=void 0){return nd(this.rows(t),s).filter(Ot)}overlayRows(t,s=void 0){return nd(this.rows(t),s).filter(n=>!Ot(n))}snapshot(t,s=void 0){return{durableRows:this.durableRows(t,s),overlayRows:this.overlayRows(t,s)}}commitDurable({conversationId:t,sessionId:s=void 0,rows:n=[],mode:r="delta",replaceDurable:i=!1,preserveEmpty:o=!0}={}){if(!t)return{insertedRows:0,preservedEmpty:!1};let a=this.rows(t),l=Array.isArray(n)?n.filter(Boolean):[],c=nd(a,s).length>0;if(o&&r==="recent"&&l.length===0&&c)return{insertedRows:0,inserted:[],preservedEmpty:!0};if(i){let p=a.filter(f=>hn(f)!==s||!Ot(f));a.splice(0,a.length,...p)}let d=0,u=[];for(let p of l){let f=$g(a,p);f?Eg(f,p):(a.push(p),u.push(p),d+=1)}return sd(a),{insertedRows:d,inserted:u,preservedEmpty:!1}}upsertOverlay({conversationId:t,row:s}={}){if(!t||!s)return null;let n=this.rows(t),r=$g(n,s);return r?Eg(r,s):n.push(s),sd(n),r||s}appendOverlayText({conversationId:t,sessionId:s=void 0,turnId:n=null,text:r=""}={}){if(!t||!r)return null;let o=this.rows(t).findLast(a=>a?.type==="assistant"&&(s===void 0||hn(a)===s)&&(!n||a.turnId===n));return!o||o.presentation||Ot(o)?null:(o.content?r.startsWith(o.content)?o.content=r:o.content.endsWith(r)||(o.content+=r):o.content=r,o)}replaceProjection(t,s=[]){let n=this.rows(t);return n.splice(0,n.length,...Array.isArray(s)?s:[]),sd(n),n}removeDurable({conversationId:t,sessionId:s}={}){if(!t)return 0;let n=this.rows(t),r=n.filter(o=>hn(o)!==s||!Ot(o)),i=n.length-r.length;return n.splice(0,n.length,...r),i}}});function eo(e,t){return t?t===e.yeaftConversationId?!0:Object.values(e.yeaftConversationIdsByAgent||{}).includes(t):!1}function Gr(e,t,s){s&&(s.type!=="assistant"&&s.type!=="tool-use"||eo(e,t)&&(!s.vpId&&e._currentYeaftVpId&&(s.vpId=e._currentYeaftVpId),!s.turnId&&e._currentYeaftTurnId&&(s.turnId=e._currentYeaftTurnId),!s.speakerVpId&&s.vpId&&(s.speakerVpId=s.vpId)))}function tI(e){let t=[e?.timestamp,e?.createdAt,e?.ts,e?.time,e?.created_at];for(let s of t){if(typeof s=="number"&&Number.isFinite(s)&&s>0)return s;if(typeof s=="string"&&s.trim()){let n=Date.parse(s);if(Number.isFinite(n))return n;let r=Number(s);if(Number.isFinite(r)&&r>0)return r}}return Date.now()}function Ma(e){let t=e?.stableKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function id(e,t,s){if(!s||typeof s!="object")return null;if(typeof s.uiKey=="string"&&s.uiKey)return s.uiKey;let n=s.entryId||s.stableKey||s.atMessageId||s.messageId||s.dbMessageId||s.id||null;if(n!=null&&n!=="")return s.uiKey=String(n),s.uiKey;let r=`legacy:${t||"conversation"}:`,i=new Set((e?.messagesMap?.[t]||[]).map(a=>a?.uiKey).filter(a=>typeof a=="string"&&a)),o=Number(e?._messageUiKeySequence)||0;do o+=1;while(i.has(`${r}${o}`));return e&&(e._messageUiKeySequence=o),s.uiKey=`${r}${o}`,s.uiKey}function to(e,t,s){for(let n of Array.isArray(s)?s:[])id(e,t,n);return s}function od(e,t){if(!e||!t)return e;let s=e.type==="user"&&typeof e.id=="string"&&e.id===e.clientMessageId;for(let[n,r]of Object.entries(t))if(r!=null){if(n==="isStreaming"){e.isStreaming&&r===!1&&(e.isStreaming=!1);continue}if(!(n==="uiKey"&&e.uiKey)){if(n==="id"||n==="messageId"){if(s&&t.clientMessageId===e.clientMessageId&&t.messageId&&t.messageId!==e.clientMessageId)continue;(e[n]===void 0||e[n]===null||e[n]==="")&&(e[n]=r);continue}if(!(n==="turnId"&&s&&e.turnId===e.clientMessageId)){if(n==="content"&&typeof r=="string"){e.content||(e.content=r);continue}if(n==="responseKind"&&(r==="progress"||r==="result")){e.responseKind=r;continue}if(n==="attachments"&&Array.isArray(r)){(!Array.isArray(e.attachments)||e.attachments.length===0)&&(e.attachments=r);continue}(e[n]===void 0||e[n]===null||e[n]==="")&&(e[n]=r)}}}return e}function Dg(e=[],t=[]){let s=[],n=new Map,r=new Map;for(let i of[...e,...t]){if(!i)continue;let o=Ma(i),a=i.type==="user"&&i.clientMessageId?String(i.clientMessageId):null;if(o&&n.has(o)){od(n.get(o),i);continue}if(a&&r.has(a)){let l=r.get(a);od(l,i),o&&!n.has(o)&&n.set(o,l);continue}s.push(i),o&&n.set(o,i),a&&r.set(a,i)}return s}function Lg(e,t,s){return!e||e!==t?!1:!s?.loaded&&!s?.loading}function Og(e,t){return!!t&&!!e?.loaded&&!e?.loading&&Number.isFinite(e?.latestSeq)}function Fg({sessionState:e,hasCachedSessionRows:t,force:s=!1}={}){return e?.loading?!1:s?!e?.loaded:e?.loaded?!1:!t}function sI(e,t,s,n){let r=s?.id?String(s.id):null;if(!r)return!1;let o=(e.messagesMap[t]||[]).find(a=>a?.type==="assistant"&&Ma(a)===r);return o?(o.id||(o.id=r),o.messageId||(o.messageId=r),s.ts&&!o.ts&&(o.ts=s.ts),s.timestamp&&!o.timestamp&&(o.timestamp=s.timestamp),s.sessionId&&!o.sessionId&&(o.sessionId=s.sessionId),s.vpId&&!o.vpId&&(o.vpId=s.vpId),s.turnId&&!o.turnId&&(o.turnId=s.turnId),s.threadId&&!o.threadId&&(o.threadId=s.threadId),o.content?typeof o.content=="string"&&(n.startsWith(o.content)?o.content=n:o.content.endsWith(n)||(o.content+=n)):o.content=n,Gr(e,t,o),!0):!1}function Pa(e,t,s){if(!t)return;let n={...s};id(e,t,n);let r={...n,id:s.dbMessageId||s.id||Date.now().toString()+Math.random().toString(36).substr(2,9),timestamp:tI(s)};if(eo(e,t)&&!r.sessionId&&(r.sessionId=e._currentYeaftSessionId||e.yeaftActiveSessionFilter||eI),eo(e,t)){let o=e._currentYeaftAgentId||Object.entries(e.yeaftConversationIdsByAgent||{}).find(([,c])=>c===t)?.[0]||e.currentAgent||null,a=typeof r.messageId=="string"&&/^m\d+$/.test(r.messageId)?r.messageId:typeof r.id=="string"&&/^m\d+$/.test(r.id)?r.id:null,l=typeof r.clientMessageId=="string"?r.clientMessageId:null;r.stableKey||(r.stableKey=a?Zi(o,r.sessionId,a):Fn(o,r.sessionId,l)),r.uiKey||(r.uiKey=r.stableKey||null),!r.vpId&&e._currentYeaftVpId&&(r.vpId=e._currentYeaftVpId),!r.turnId&&e._currentYeaftTurnId&&(r.turnId=e._currentYeaftTurnId),Gr(e,t,r)}if(e.messagesMap[t]||(e.messagesMap[t]=[]),id(e,t,r),eo(e,t))return Ws(e).upsertOverlay({conversationId:t,sessionId:r.sessionId,row:r});let i=Ma(s);if(i){let o=e.messagesMap[t].find(a=>Ma(a)===i);if(o)return od(o,r),t===e.yeaftConversationId&&e.messagesMap[t].sort((a,l)=>a.timestamp-l.timestamp),o}return e.messagesMap[t].push(r),t===e.yeaftConversationId&&e.messagesMap[t].sort((o,a)=>o.timestamp-a.timestamp),r}function qg(e,t,s,n={}){if(!t||!s)return;e.messagesMap[t]||(e.messagesMap[t]=[]);let r=e.messagesMap[t];if(sI(e,t,n,s))return;if(eo(e,t)){let l=Ws(e).appendOverlayText({conversationId:t,sessionId:n.sessionId||e._currentYeaftSessionId||void 0,turnId:n.turnId||e._currentYeaftTurnId||null,text:s});if(l){Gr(e,t,l),n.id&&!l.id&&(l.id=n.id),n.id&&!l.messageId&&(l.messageId=n.id);return}}let i=e._currentYeaftTurnId;if(i){for(let a=r.length-1;a>=0;a--)if(r[a].turnId===i&&r[a].type==="assistant"&&r[a].isStreaming){if(Gr(e,t,r[a]),n.id&&!r[a].id&&(r[a].id=n.id),n.id&&!r[a].messageId&&(r[a].messageId=n.id),r[a].content.endsWith(s))return;r[a].content+=s;return}Pa(e,t,{...n.id?{id:n.id,messageId:n.id}:{},...n.ts?{ts:n.ts}:{},...n.timestamp?{timestamp:n.timestamp}:{},...n.sessionId?{sessionId:n.sessionId}:{},...n.vpId?{vpId:n.vpId}:{},...n.turnId?{turnId:n.turnId}:{},...n.threadId?{threadId:n.threadId}:{},type:"assistant",content:s,isStreaming:!0,status:"pending",turnStartAt:n.timestamp||Date.now()});return}let o=r[r.length-1];if(o&&o.type==="assistant"&&o.isStreaming){if(Gr(e,t,o),n.id&&!o.id&&(o.id=n.id),n.id&&!o.messageId&&(o.messageId=n.id),o.content.endsWith(s))return;o.content+=s}else Pa(e,t,{...n.id?{id:n.id,messageId:n.id}:{},...n.ts?{ts:n.ts}:{},...n.timestamp?{timestamp:n.timestamp}:{},...n.sessionId?{sessionId:n.sessionId}:{},...n.vpId?{vpId:n.vpId}:{},...n.turnId?{turnId:n.turnId}:{},...n.threadId?{threadId:n.threadId}:{},type:"assistant",content:s,isStreaming:!0,status:"pending",turnStartAt:n.timestamp||Date.now()})}function Vg(e,t,{completeLifecycle:s=!0}={}){if(!t)return;let n=e.messagesMap[t];if(!n||n.length===0)return;let r=e._currentYeaftTurnId||null;for(let i=n.length-1;i>=0;i--){let o=n[i];if(r&&o.turnId&&o.turnId!==r){if(o.type==="user")break;continue}if(o.isStreaming&&(o.isStreaming=!1,s&&o.status==="pending"&&(o.status="completed",o.turnEndAt=Date.now())),Gr(e,t,o),o.type==="user")break}}function Ng(e,t){if(!t||e.processingConversations&&e.processingConversations[t]||e.activeVpTurns&&Object.keys(e.activeVpTurns).length>0)return;let s=e.messagesMap&&e.messagesMap[t];if(!(!s||s.length===0))for(let n of s)n&&n.isStreaming&&(n.isStreaming=!1)}function Bg(e,t){let s=e.currentConversation;if(!s)return;e.messagesMap[s]||(e.messagesMap[s]=[]);let n=e.messagesMap[s],r=null;for(let i of t)if(i.type==="user"){let o=i.message?.content;if(o){let a=typeof o=="string"?o:Array.isArray(o)?o.map(l=>l.text||"").join(""):"";a&&(r=a,e.addMessage({type:"user",content:a,isHistory:!0}))}}else if(i.type==="assistant"){let o=i.message?.content;if(o&&Array.isArray(o)){for(let a of o)if(a.type==="text"&&a.text)e.addMessage({type:"assistant",content:a.text,isHistory:!0});else if(a.type==="tool_use")e.addMessage({type:"tool-use",toolName:a.name,toolInput:a.input,isHistory:!0});else if(a.type==="tool_result"){for(let l=n.length-1;l>=0;l--)if(n[l].type==="tool-use"&&!n[l].hasResult){n[l].hasResult=!0,n[l].toolResult=a.content;break}}}}if(r&&s&&!e.conversationTitles[s]){let i=r.trim().substring(0,100);e.conversationTitles[s]=i}}function gr(e){if(!Array.isArray(e))return null;let t=null;for(let s of e)typeof s?.dbMessageId=="number"&&s.dbMessageId>0&&(t===null||s.dbMessageId>t)&&(t=s.dbMessageId);return t}function nI(e){return{id:e.id,dbMessageId:e.id,timestamp:e.created_at}}function Hg(e){if(!e)return null;let t=nI(e);if(e.message_type==="tool_use"){let n={...t,type:"tool-use",toolName:e.tool_name||"unknown",toolInput:(()=>{try{return JSON.parse(e.tool_input||e.content||"{}")}catch{return{}}})(),hasResult:!0,isHistory:!0,startTime:e.created_at||0};if(e.metadata)try{let r=JSON.parse(e.metadata);r.askRequestId&&(n.askRequestId=r.askRequestId,n.askQuestions=r.askQuestions,n.askAnswered=!!r.askAnswered,n.selectedAnswers=r.selectedAnswers||null,r.askAnswered||(n.isHistory=!1))}catch{}return n}let s=n=>{if(!n)return"";if(typeof n!="string")return String(n);if(n.startsWith("["))try{let r=JSON.parse(n);if(Array.isArray(r))return r.filter(i=>i.type==="text"&&i.text).map(i=>i.text).join("")}catch{}return n};if(e.role==="user"){let n=null;if(e.metadata)try{let r=JSON.parse(e.metadata);r&&typeof r.clientMessageId=="string"&&(n=r.clientMessageId)}catch{}return{...t,type:"user",content:typeof e.content=="string"?e.content:String(e.content||""),...n?{clientMessageId:n}:{}}}else if(e.role==="assistant"){let n=s(e.content),r=(()=>{if(!e.content||typeof e.content!="string"||!e.content.startsWith("["))return[];try{let i=JSON.parse(e.content);return Array.isArray(i)?i.filter(o=>o.type==="tool_use"&&o.name):[]}catch{return[]}})();if(!n&&r.length===0)return null;if(r.length>0){let i=[];n&&i.push({...t,type:"assistant",content:n});for(let o=0;o<r.length;o++){let a=r[o];i.push({id:e.id+"_tool_"+o,dbMessageId:e.id,timestamp:e.created_at,type:"tool-use",toolName:a.name,toolInput:a.input||{},hasResult:!0,isHistory:!0,startTime:e.created_at||0})}return i}return{...t,type:"assistant",content:n}}else if(e.role==="tool"||e.message_type==="tool_result")return{...t,type:"tool_result",tool:e.tool_name||"unknown",content:typeof e.content=="string"?e.content:String(e.content||"")};return null}var eI,so=F(()=>{Ji();Kr();eI="grp_default"});function hr(e,t){return e._closedAt?.[t]?Date.now()-e._closedAt[t]<3e4:!1}function Yr(e,t){tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={});let s=()=>{if(!e.processingConversations[t])return;let r=e.conversations.find(o=>o.id===t);e.sendWsMessage({type:"ping_session",conversationId:t,agentId:r?.agentId});let i=setTimeout(()=>{e.processingConversations[t]&&(e.sessionHealth||(e.sessionHealth={}),e.sessionHealth[t]={status:"agent-offline"})},1e4);e._pongTimeouts||(e._pongTimeouts={}),e._pongTimeouts[t]=i},n=setTimeout(()=>{e.processingConversations[t]&&(s(),e._processingWatchdogs[t]=setInterval(()=>{if(!e.processingConversations[t]){tt(e,t);return}s()},3e4))},45e3);e._processingWatchdogs[t]=n}function Ra(e,t){e._yeaftWatchdogPauseReasons?.[t]?.size||e.processingConversations[t]&&e._processingWatchdogs?.[t]&&(e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),e.sessionHealth?.[t]&&delete e.sessionHealth[t],e._yeaftWatchdogConvs?.has(t)?Zr(e,t):Yr(e,t))}function tt(e,t){e._processingWatchdogs?.[t]&&(clearTimeout(e._processingWatchdogs[t]),clearInterval(e._processingWatchdogs[t]),delete e._processingWatchdogs[t]),e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),e.sessionHealth?.[t]&&delete e.sessionHealth[t],e._autoRefreshed?.[t]&&delete e._autoRefreshed[t],e._yeaftWatchdogConvs?.delete(t),e._yeaftWatchdogPauseReasons&&delete e._yeaftWatchdogPauseReasons[t]}function no(e,t,s="phase"){if(!t||!e.processingConversations[t])return;e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={});let n=e._yeaftWatchdogPauseReasons[t]||new Set;n.add(s),e._yeaftWatchdogPauseReasons[t]=n,e._processingWatchdogs?.[t]&&(clearTimeout(e._processingWatchdogs[t]),clearInterval(e._processingWatchdogs[t]),delete e._processingWatchdogs[t])}function Qr(e,t,s=null){if(!t)return;let n=e._yeaftWatchdogPauseReasons?.[t];n&&(s?n.delete(s):n.clear(),!n.size&&(delete e._yeaftWatchdogPauseReasons[t],e.processingConversations[t]&&Zr(e,t)))}function Wg(e,t){tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={}),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){let s=e.conversations.find(n=>n.id===t);e.sendWsMessage({type:"refresh_conversation",conversationId:t,agentId:s?.agentId}),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){delete e.processingConversations[t];let n=e.executionStatusMap[t];n&&(n.currentTool=null),e.finishStreamingForConversation(t)}delete e._processingWatchdogs[t]},1e4)}},9e4)}function Zr(e,t){let s=e._yeaftWatchdogPauseReasons?.[t];if(tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={}),s?.size){e._yeaftWatchdogConvs||(e._yeaftWatchdogConvs=new Set),e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={}),e._yeaftWatchdogConvs.add(t),e._yeaftWatchdogPauseReasons[t]=new Set(s);return}e._yeaftWatchdogConvs||(e._yeaftWatchdogConvs=new Set),e._yeaftWatchdogConvs.add(t),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){delete e.processingConversations[t];let n=e.executionStatusMap[t];n&&(n.currentTool=null),e.finishStreamingForConversation(t)}delete e._processingWatchdogs[t]},15e4)}var qn=F(()=>{});function ad(e,t){return t&&Array.isArray(e?._yeaftRetiredConversationIdsByAgent?.[t])?e._yeaftRetiredConversationIdsByAgent[t]:[]}function mn(e,t,s){return!t||!s?!1:ad(e,t).includes(s)}function ld(e,t){let s=e?._yeaftRetiredConversationTargetsByAgent?.[t];return s&&typeof s=="object"?s:{}}function Ug(e,t,s){if(!t||!s)return null;let n=ld(e,t),r=s,i=new Set;for(let o=0;o<8;o++){if(i.has(r))return null;i.add(r);let a=n[r];if(!a||a===r)return r===s?null:r;r=a}return null}function ro(e,t,s,n=null){if(!t||!s)return;let r=ad(e,t).filter(a=>a!==s).concat(s).slice(-8);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent||{},[t]:r};let i=ld(e,t),o={};for(let a of r){let l=i[a];l&&(o[a]=l===s&&n?n:l)}n&&n!==s&&(o[s]=n),e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:o}}function cd(e,t,s){if(!t||!s||!e?._yeaftRetiredConversationIdsByAgent)return;let n=ad(e,t).filter(i=>i!==s);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent,[t]:n};let r={...ld(e,t)};delete r[s],e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:r}}var io=F(()=>{});function oI(e,t,s){let n=e.messagesMap?.[t]||[],r=e.messagesMap?.[s]||[];e.messagesMap||(e.messagesMap={}),to(e,t,n),to(e,s,r);let i=Dg(r,n).sort((o,a)=>{let l=Number.isFinite(o?.seq)?o.seq:null,c=Number.isFinite(a?.seq)?a.seq:null;return l!==null&&c!==null&&l!==c?l-c:l!==null&&c===null?-1:l===null&&c!==null?1:(o?.timestamp||0)-(a?.timestamp||0)});Ws(e).replaceProjection(s,i)}function aI(e){if(!e||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return Array.isArray(e)?e.slice():{...e}}function _a(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)}function Xr(e,t,s,{removeSource:n}){_a(e,t)&&(_a(e,s)||(e[s]=n?e[t]:aI(e[t])),n&&delete e[t])}function Us(e,t,s=null){if(!t)return null;let n=e?._yeaftPendingConversationPromotions?.[t]||null;return!n?.sourceConversationId||!n.targetConversationId||s&&n.targetConversationId!==s?null:n}function Ea(e,t,s,n){return!t||!s||!n||s===n?!1:(e._yeaftPendingConversationPromotions={...e._yeaftPendingConversationPromotions||{},[t]:{sourceConversationId:s,targetConversationId:n}},!0)}function oo(e,t,s=null){let n=Us(e,t,s);if(!n)return null;let r={...e._yeaftPendingConversationPromotions||{}};return delete r[t],e._yeaftPendingConversationPromotions=r,n}function ao(e,t,s){let n=Us(e,t);return!n||!s||n.targetConversationId===s?null:(js(e,n.targetConversationId,s,{removeSource:!0}),ro(e,t,n.targetConversationId,s),Ea(e,t,n.sourceConversationId,s),n)}function js(e,t,s,{removeSource:n=!0}={}){if(!t||!s||t===s)return!1;oI(e,t,s),e.yeaftHistoryCacheState&&(e.yeaftHistoryCacheState=Object.fromEntries(Object.entries(e.yeaftHistoryCacheState).map(([c,d])=>[c,d?.conversationId===t?{...d,conversationId:s}:d]))),Xr(e.processingConversations,t,s,{removeSource:n}),Xr(e.executionStatusMap,t,s,{removeSource:n}),Xr(e.refreshingSessionMap,t,s,{removeSource:n}),Xr(e._closedAt,t,s,{removeSource:n}),Xr(e._autoRefreshed,t,s,{removeSource:n}),Xr(e.sessionHealth,t,s,{removeSource:n}),e._turnCompletedConvs?.has(t)&&(e._turnCompletedConvs.add(s),n&&e._turnCompletedConvs.delete(t));let r=!!e._yeaftWatchdogConvs?.has(t),i=e._yeaftWatchdogPauseReasons?.[t],o=!!i?.size,a=!!e._processingWatchdogs?.[t];if(o&&(e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={}),e._yeaftWatchdogPauseReasons[s]=new Set(i)),n&&(a||o)&&tt(e,t),n&&e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),n&&(a||r||o)&&!!e.processingConversations?.[s])if(e._processingWatchdogs?.[s])e._yeaftWatchdogConvs?.add(s);else{let c=_a(e.sessionHealth,s),d=e.sessionHealth?.[s],u=_a(e._autoRefreshed,s),p=e._autoRefreshed?.[s];Zr(e,s),c&&(e.sessionHealth||(e.sessionHealth={}),e.sessionHealth[s]=d),u&&(e._autoRefreshed||(e._autoRefreshed={}),e._autoRefreshed[s]=p)}return n&&e.messagesMap&&delete e.messagesMap[t],!0}var dd=F(()=>{so();Ji();io();qn()});function $a(e,t){return!e||!t||e.type!=="user"||t.type!=="user"?!1:e.clientMessageId&&t.clientMessageId?e.clientMessageId===t.clientMessageId:e.clientMessageId||t.clientMessageId?!1:e.content===t.content}var ud=F(()=>{});function pd(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function lI(){return Date.now()}function cI(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`pt_${crypto.randomUUID()}`:`pt_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`}function dI(e,t=160){return typeof e!="string"?e:e.length>t?`${e.slice(0,t)}...[truncated]`:e}function uI(e){if(!e||typeof e!="object")return e||null;let t={};for(let[s,n]of Object.entries(e))s==="text"||s==="prompt"||s==="content"||s==="data"||(t[s]=typeof n=="string"?dI(n):n);return t}function mr(){return cI()}function jt(e,t={}){!e||!t.traceId||(Array.isArray(e._perfTraceQueue)||(e._perfTraceQueue=[]),e._perfTraceQueue.push({traceId:t.traceId,source:"web",phase:t.phase||"unknown",at:lI(),monotonicMs:pd(),durationMs:Number.isFinite(t.durationMs)?t.durationMs:null,agentId:t.agentId||null,sessionId:t.sessionId||null,vpId:t.vpId||null,turnId:t.turnId||null,threadId:t.threadId||null,messageType:t.messageType||null,bytes:Number.isFinite(t.bytes)?t.bytes:null,ok:typeof t.ok=="boolean"?t.ok:null,detail:uI(t.detail)}),e._perfTraceQueue.length>200&&e._perfTraceQueue.splice(0,e._perfTraceQueue.length-200),pI(e))}function pI(e){!e||e._perfTraceFlushTimer||(e._perfTraceFlushTimer=setTimeout(()=>fI(e),250))}function fI(e){if(!e||!Array.isArray(e._perfTraceQueue)||e._perfTraceQueue.length===0){e&&(e._perfTraceFlushTimer=null);return}let t=e._perfTraceQueue.splice(0,e._perfTraceQueue.length);e._perfTraceFlushTimer=null,typeof e.sendWsMessage=="function"&&e.sendWsMessage({type:"perf_trace_events",events:t})}function Da(e,t={}){if(typeof requestAnimationFrame!="function")return;let s=pd();requestAnimationFrame(()=>{requestAnimationFrame(()=>{jt(e,{...t,phase:t.phase||"render.next_paint",durationMs:pd()-s})})})}var fd=F(()=>{});function Ks(e){return Number.isFinite(e)?Number(e):null}function gI(e){return(Array.isArray(e)?e:[]).map(t=>({startSeq:Ks(t?.startSeq),endSeq:Ks(t?.endSeq)})).filter(t=>t.startSeq!==null&&t.endSeq!==null&&t.startSeq<=t.endSeq).sort((t,s)=>t.startSeq-s.startSeq)}function lo(e){return Number.isFinite(e)&&e>=0?Math.floor(e):0}function vr(e){let t=Ks(e?.beforeSeq);if(t===null)return null;if(e?.kind==="gap"){let s=Ks(e.stopAtSeq);return s===null?null:`gap:${lo(e.cacheEpoch)}:${s}:${t}`}return`server:${t}`}function co(e){let t=new Set((Array.isArray(e?.completedHistoryWorkKeys)?e.completedHistoryWorkKeys:[]).filter(s=>typeof s=="string"&&s));for(let s of Array.isArray(e?.requestedBeforeSeqs)?e.requestedBeforeSeqs:[])Number.isFinite(s)&&t.add(`server:${s}`);return t}function hI(e,t){let s=vr(t);if(!s)return e.completedHistoryWorkKeys||[];let n=co(e);return n.add(s),Array.from(n).slice(-256)}function mI(e,t){if(!Number.isFinite(t))return e.requestedBeforeSeqs||[];let s=new Set((Array.isArray(e?.requestedBeforeSeqs)?e.requestedBeforeSeqs:[]).filter(Number.isFinite));return s.add(t),Array.from(s).sort((n,r)=>r-n).slice(-256)}function vI(e,t={},s=0){let n=gI(e),r=lo(s),i=co(t),o=[];for(let a=1;a<n.length;a+=1){let l=n[a-1],c=n[a];if(l.endSeq+1>=c.startSeq)continue;let d={kind:"gap",beforeSeq:c.startSeq,stopAtSeq:l.endSeq+1,cacheEpoch:r};d.workKey=vr(d),i.has(d.workKey)||o.push(d)}return o.sort((a,l)=>l.beforeSeq-a.beforeSeq)}function jg(e,t,s){let n=vI(e,t,s),r=Ks(t.serverOldestFetchedSeq??t.oldestSeq),i=n[0]||null;if(!i||r===null||i.beforeSeq<=r)return[];let o={kind:"gap",beforeSeq:i.beforeSeq,stopAtSeq:r,cacheEpoch:i.cacheEpoch};return o.workKey=vr(o),co(t).has(o.workKey)?[]:[o]}function Kg(e={},t=[],s=0){let n=lo(s),r=co(e),i=e.serverHasMore!==!1,o=Ks(e.serverOldestFetchedSeq??e.oldestSeq),a=e.gapTraversalInitialized===!0,l=Array.isArray(e.gapQueue)?e.gapQueue.slice():[],c=null,d=null;if(i&&o!==null){let u={kind:"server",beforeSeq:o,stopAtSeq:null,cacheEpoch:n};u.workKey=vr(u),r.has(u.workKey)?(i=!1,d="history_cursor_repeated"):c=u}return!c&&!i&&(a||(l=jg(t,e,n),a=!0),c=l[0]||null),c?{request:c,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:l,pendingPageKind:c.kind,pendingPageBeforeSeq:c.beforeSeq,pendingGapStopAtSeq:c.stopAtSeq,pendingCacheEpoch:c.cacheEpoch,pendingHistoryWorkKey:c.workKey,hasMore:!0,paginationError:null}}:{request:null,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:l,hasMore:!1,paginationError:d}}}function zg(e={},{mode:t,oldestSeq:s,hasMore:n,ranges:r=[],pageKind:i=null,stopAtSeq:o=null,cacheEpoch:a=0}={}){if(t==="delta")return e;let l=lo(a),c=Ks(s),d=Ks(e.pendingPageBeforeSeq),u=i||e.pendingPageKind||(t==="older"?"server":null),p=Ks(o??e.pendingGapStopAtSeq),f=lo(e.pendingCacheEpoch??l),g={kind:u,beforeSeq:d,stopAtSeq:p,cacheEpoch:f},v=Ks(e.serverOldestFetchedSeq??e.oldestSeq),h=e.serverHasMore!==!1,m=Number(e.noProgressCount)||0,y=null,k=e.requestedBeforeSeqs||[],w=e.completedHistoryWorkKeys||[],b=e.gapTraversalInitialized===!0,S=Array.isArray(e.gapQueue)?e.gapQueue.slice():[];if(t==="recent")v=c,h=!!n,m=0,k=[],w=[],b=!1,S=[];else if(d===null)c!==null&&(v=v===null?c:Math.min(v,c)),h=!!n,m=0;else{k=mI(e,d),w=hI(e,g);let _=c!==null&&c<d;if(u==="server")_?(v=v===null?c:Math.min(v,c),h=!!n,m=0):(h=!1,m+=1,y="history_cursor_no_progress");else if(u==="gap"){let M=vr(g);S=S.filter(W=>vr(W)!==M);let E=p!==null&&c!==null&&c<=p;if(_||E||n===!1){if(m=0,!E&&n!==!1&&c!==null&&p!==null){let W={kind:"gap",beforeSeq:c,stopAtSeq:p,cacheEpoch:f};W.workKey=vr(W),co({completedHistoryWorkKeys:w}).has(W.workKey)||S.unshift(W)}}else m+=1,y="history_cursor_no_progress"}}t==="older"&&!h&&!b&&(S=jg(r,{...e,serverOldestFetchedSeq:v,completedHistoryWorkKeys:w},l),b=!0);let C={...e,serverOldestFetchedSeq:v,serverHasMore:h,requestedBeforeSeqs:k,completedHistoryWorkKeys:w,gapTraversalInitialized:b,gapQueue:S,noProgressCount:m,oldestSeq:v,paginationError:y};return delete C.pendingPageKind,delete C.pendingPageBeforeSeq,delete C.pendingGapStopAtSeq,delete C.pendingCacheEpoch,delete C.pendingHistoryWorkKey,{...C,hasMore:h||S.length>0}}var gd=F(()=>{});function Zg(e){return e.filter(t=>!(t.type==="user"&&(!t.content||!t.content.trim())))}function yr(e){let t=typeof e=="string"?e.match(/^m(\d+)$/):null,s=t?Number(t[1]):null;return Number.isFinite(s)?s:null}function Gg(e){let t=[e?.timestamp,e?.createdAt,e?.ts,e?.time,e?.created_at];for(let s of t){if(typeof s=="number"&&Number.isFinite(s)&&s>0)return s;if(typeof s=="string"&&s.trim()){let n=Date.parse(s);if(Number.isFinite(n))return n;let r=Number(s);if(Number.isFinite(r)&&r>0)return r}}return null}function yI(e){if(!Array.isArray(e))return null;for(let t=e.length-1;t>=0;t-=1){let s=e[t];if(s?.name==="TodoWrite"&&Array.isArray(s?.input?.todos))return s.input.todos}return null}function bI(e){if(!e||typeof window>"u")return null;try{let t=window.Pinia||null,s=t&&typeof t.useSessionsStore=="function"?t.useSessionsStore():null;if(!s)return null;let n=typeof t.useChatStore=="function"?t.useChatStore():null,r=typeof s.sessionById=="function"?s.sessionById(e,n?.currentAgent||null):s.sessions&&s.sessions[e];return(r&&typeof r.defaultVpId=="string"?r.defaultVpId.trim():"")||null}catch{return null}}function kI(e,t){return e.speakerVpId||e.vpId||e.vp_id||e.authorVpId||e.authorVP||bI(t)}function wI(e){return e?.stableKey||(e&&(e.messageId||e.id)?e.messageId||e.id:null)}function SI(e,t=null){if(!e||e.stableKey)return e;let s=Vn(e),n=e.messageId||e.id||null,r=e.type==="user"&&e.clientMessageId||null;return e.stableKey=r&&n===r?Fn(t,s,r):Zi(t,s,n),Number.isFinite(e.seq)||(e.seq=yr(n)),e.uiKey||(e.uiKey=e.stableKey||null),e}function Vn(e){return e?e.sessionId??e.groupId??null:null}function CI(e){return!e||e.type!=="user"||!e.clientMessageId?!1:(e.messageId||e.id||null)===e.clientMessageId}function II(e,t,s,n){let r=e.rows(t),i=r.some(c=>c&&(n==null||Vn(c)===n));if(s.length===0&&i)return{insertedRows:0,preservedEmpty:!0};let o=s.reduce((c,d)=>Math.max(c,d?.timestamp||0),0),a=r.filter(c=>c?n!=null&&Vn(c)!==n||Ot(c)||c.isStreaming||c.type==="tool-use"&&c.toolName==="AskUserQuestion"&&(c.askAnswered||c.askPending||c.askExpired)||CI(c)?!0:o>0&&(c.timestamp||0)>o:!1);return e.replaceProjection(t,a),{insertedRows:e.commitDurable({conversationId:t,sessionId:n,rows:s,mode:"recent",preserveEmpty:!1}).insertedRows,preservedEmpty:!1}}function AI(e){if(typeof e!="string")return!1;let t=e.trimStart();return t.startsWith("<task-result ")||/^\[system note\] You have called \S+ with the same arguments \d+ times\./.test(t)}function xI(e,t){let s=typeof e.yeaftConversationId=="string"?e.yeaftConversationId:"";return s.startsWith(`yeaft-local-${t}-`)||/^yeaft-local-\d/.test(s)?s:null}function TI(e,t,s,n){let r=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(!r||!n||e.currentView!=="yeaft")return;let i=_s(e);if(i.sessionId!==(s||null)||i.agentId&&i.agentId!==r)return;let o=e.yeaftConversationId||null;if(mn(e,r,n)){let d=e.yeaftConversationIdsByAgent?.[r]||null;d&&d!==n&&js(e,n,d,{removeSource:n!==e.yeaftConversationId});return}let a=Us(e,r);a&&a.targetConversationId!==n&&ao(e,r,n);let l=Us(e,r,n);if(l&&(js(e,l.sourceConversationId,n,{removeSource:!0}),oo(e,r,n),e.yeaftConversationId=n),o===n||l){e.messagesMap[n]||(e.messagesMap[n]=[]),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.activeConversations=[n];return}let c=xI(e,r);c&&(js(e,c,n,{removeSource:!0}),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.yeaftConversationId=n,e.activeConversations=[n])}function Nn(e,t,s=null){let n=e.messagesMap[t]||[];for(let r of n)s&&Object.entries(s).some(([i,o])=>o&&r[i]!==o)||r.type==="tool-use"&&!r.hasResult&&(r.hasResult=!0,r.toolName==="AskUserQuestion"&&!r.askAnswered&&!r.selectedAnswers&&(r.isHistory=!0,r.askExpired=!0,r.askPending=!1,r.pendingAnswers=null,r.askSubmittedAt=null,r.askError=null,r.askRequestId=null))}function Xg(e,t){Hs(e);let s=e.agents.find(r=>r.id===t.agentId);e.conversations=e.conversations.filter(r=>r.id!==t.conversationId);let n=t.provider||"claude-code";if(e.conversations.push({id:t.conversationId,agentId:t.agentId,agentName:s?.name||t.agentId,workDir:t.workDir,claudeSessionId:null,createdAt:Date.now(),processing:!1,connecting:n!=="claude-code",type:"chat",provider:n,capabilities:t.capabilities||null,disallowedTools:t.disallowedTools??null}),e.currentAgent=t.agentId,e.currentAgentInfo=s,e.panels.length>1){let r=e._pendingPaneId;if(e._pendingPaneId=null,r){let i=e.panels.find(o=>o.id===r);i&&(i.conversationId=t.conversationId)}else{let i=e.panels.find(o=>!o.conversationId);i&&(i.conversationId=t.conversationId)}e.activeConversations.includes(t.conversationId)||e.activeConversations.push(t.conversationId)}else e.activeConversations=[t.conversationId];e.currentWorkDir=t.workDir,e.messagesMap[t.conversationId]=[],e.sendWsMessage({type:"select_conversation",conversationId:t.conversationId}),e.addMessage({type:"system",content:ut("store.convCreated",{agent:s?.name||t.agentId,workDir:t.workDir})}),e.saveOpenSessions()}function Jg(e,t){Hs(e);let s=e.agents.find(n=>n.id===t.agentId);if(e.conversations=e.conversations.filter(n=>n.id!==t.conversationId&&!(n.claudeSessionId&&n.claudeSessionId===t.claudeSessionId&&n.agentId===t.agentId&&(n.provider||"claude-code")===(t.provider||"claude-code"))),e.conversations.push({id:t.conversationId,agentId:t.agentId,agentName:s?.name||t.agentId,workDir:t.workDir,claudeSessionId:t.claudeSessionId,createdAt:Date.now(),processing:!1,connecting:(t.provider||"claude-code")!=="claude-code",type:"chat",provider:t.provider||"claude-code",capabilities:t.capabilities||null,disallowedTools:t.disallowedTools??null}),e.currentAgent=t.agentId,e.currentAgentInfo=s,e.panels.length>1){let n=e._pendingPaneId;if(e._pendingPaneId=null,n){let r=e.panels.find(i=>i.id===n);r&&(r.conversationId=t.conversationId)}else{let r=e.panels.find(i=>!i.conversationId);r&&(r.conversationId=t.conversationId)}e.activeConversations.includes(t.conversationId)||e.activeConversations.push(t.conversationId)}else e.activeConversations=[t.conversationId];if(e.currentWorkDir=t.workDir,e.messagesMap[t.conversationId]=[],e._pendingSessionTitle&&(e.conversationTitles[t.conversationId]=e._pendingSessionTitle,e._pendingSessionTitle=null),e.sendWsMessage({type:"select_conversation",conversationId:t.conversationId}),e.addMessage({type:"system",content:ut("store.convResumed",{agent:s?.name||t.agentId,sessionId:t.claudeSessionId?t.claudeSessionId.slice(0,8)+"...":""})}),t.dbMessages&&t.dbMessages.length>0){let n=Zg(t.dbMessages.map(i=>e.formatDbMessage(i)).flat().filter(Boolean)),r=e.messagesMap[t.conversationId]||[];for(let i of n)r.push(i)}e.hasMoreMessages=!!t.hasMoreMessages,e.chatSessionState[t.conversationId]={lastSeenDbId:gr(e.messagesMap[t.conversationId]),hasMoreOlder:!!t.hasMoreMessages},e.saveOpenSessions()}function hd(e,t){e.conversations=e.conversations.filter(n=>n.id!==t.conversationId),delete e.messagesMap[t.conversationId],delete e.chatSessionState[t.conversationId],delete e.conversationTitles[t.conversationId],delete e.customConversationTitles[t.conversationId],delete e.processingConversations[t.conversationId],e._closedAt&&delete e._closedAt[t.conversationId],tt(e,t.conversationId),delete e.executionStatusMap[t.conversationId],delete e.subagents[t.conversationId],window.dispatchEvent(new CustomEvent("conversation-deleted",{detail:{conversationId:t.conversationId}}));let s=e.activeConversations.indexOf(t.conversationId);s>=0&&(e.activeConversations.splice(s,1),e.activeConversations.length===0&&e.addMessage({type:"system",content:ut("chat.session.closed")}));for(let n of e.panels)n.conversationId===t.conversationId&&(n.conversationId=null);e.saveOpenSessions()}function eh(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s);let r=e.conversations.find(i=>i.id===s);r&&(t.claudeSessionId&&(r.claudeSessionId=t.claudeSessionId),t.workDir&&(r.workDir=t.workDir)),e.clearStatus?.conversationId===s&&e.clearStatus?.status==="clearing"&&(e.clearStatus={conversationId:s,status:"completed"},setTimeout(()=>{e.clearStatus?.conversationId===s&&e.clearStatus?.status==="completed"&&(e.clearStatus=null)},3e3)),e.saveOpenSessions()}}function th(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s);let r=e.conversations.find(i=>i.id===s);r&&(t.claudeSessionId&&(r.claudeSessionId=t.claudeSessionId),t.workDir&&(r.workDir=t.workDir)),e.saveOpenSessions()}}function sh(e,t){if(t.conversationId){if(t.isProcessing&&!hr(e,t.conversationId)&&!e._turnCompletedConvs?.has(t.conversationId))e.processingConversations[t.conversationId]=!0;else if(e.processingConversations[t.conversationId]){delete e.processingConversations[t.conversationId],tt(e,t.conversationId);let s=e.executionStatusMap[t.conversationId];s&&(s.currentTool=null),e.finishStreamingForConversation(t.conversationId)}}}function nh(e,t){let s=t.conversationId||e.currentConversation;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s)}}function rh(e,t){if(!!t.requestId){if(e.chatHistoryRequestIdSupported=!0,!e.isCurrentChatHistoryResponse?.(t))return!1}else{let i=`chat:${t.conversationId}`,o=e.chatHistoryRequests?.[i];if(e.chatHistoryRequestIdSupported===!0||!o?.loading)return!1;t={...t,requestId:o.requestId,catalogKey:i,mode:o.mode||t.mode,...o.mode==="delta"?{afterMessageId:o.cursor}:{}}}e.messagesMap[t.conversationId]||(e.messagesMap[t.conversationId]=[]);let n=e.messagesMap[t.conversationId],r=t.mode==="delta"||typeof t.afterMessageId=="number"&&t.afterMessageId>0;if(t.conversationId&&e.activeConversations.includes(t.conversationId)){let i=Zg((t.messages||[]).map(a=>e.formatDbMessage(a)).flat().filter(Boolean));if(i.length>0){let a=n.find(l=>l.dbMessageId);if(a&&i[0].dbMessageId&&i[i.length-1].dbMessageId<a.dbMessageId){let l=n.indexOf(a);e.debug,n.splice(l,0,...i)}else{e.debug;for(let l of i)if(!(l.dbMessageId&&n.some(c=>c.dbMessageId===l.dbMessageId))){if(l.dbMessageId&&(l.type==="assistant"||l.type==="user")){let c=null;if(l.type==="user"?c=n.find(d=>!d.dbMessageId&&!d.isStreaming&&$a(d,l)):c=n.find(d=>!d.dbMessageId&&!d.isStreaming&&d.type==="assistant"&&d.content===l.content),c){c.dbMessageId=l.dbMessageId,c.id=l.id,l.timestamp&&(c.timestamp=l.timestamp),l.clientMessageId&&!c.clientMessageId&&(c.clientMessageId=l.clientMessageId);continue}}n.push(l)}}}r||(e.hasMoreMessages=t.hasMore??!1),Hs(e);let o=e.chatSessionState[t.conversationId]?.hasMoreOlder;e.chatSessionState[t.conversationId]={lastSeenDbId:gr(e.messagesMap[t.conversationId]),hasMoreOlder:r?!!o:!!t.hasMore}}return e.finishChatHistoryRequest?.(t)&&(e.currentConversation===t.conversationId&&(e.loadingMoreMessages=!1),e.setRefreshingSession(t.conversationId,!1)),!0}function ih(e,t){let s=t.sessionId??null,n=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null,r=t.conversationId||n&&e.yeaftConversationIdsByAgent?.[n]||e.yeaftConversationId;if(!r||!s||!Array.isArray(t.messages))return null;e.messagesMap[r]||(e.messagesMap[r]=[]);let i=new Set(Array.isArray(t.sourceMessageIds)?t.sourceMessageIds:[]),o=new Set;for(let h of e.messagesMap[r]){if(Vn(h)!==s)continue;let m=h?.persistedMessageId||h?.messageId||h?.id||null;m&&h._historyWindowPrefetched!==!0&&h._historyWindowDetached!==!0&&o.add(m),!(!t.entryId||!i.has(m))&&(h.historyEntryId=t.entryId,Number.isFinite(t.indexGeneration)&&(h.historyIndexGeneration=t.indexGeneration))}let a=t.messages.map(h=>t.entryId&&i.has(h?.id)?{...h,historyEntryId:t.entryId,...t.prefetch===!0?{_historyWindowPrefetched:!0}:{},...Number.isFinite(t.indexGeneration)?{historyIndexGeneration:t.indexGeneration}:{}}:h),{formatted:l}=oh(a,s,"window",e.messagesMap[r],n),c=`history-window:${t.requestId||t.anchorMessageId||Date.now()}`;for(let h of l){let m=h.persistedMessageId||h.messageId||h.id;o.has(m)||(h._historyWindowKey=c,h._historyWindowDetached=t.prefetch!==!0,h._historyWindowPrefetched=t.prefetch===!0)}let d=Ws(e),u=d.rows(r),p=new Set(t.messages.map(h=>h?.id).filter(Boolean)),f=[];if(t.prefetch!==!0){for(let m of u){if(Vn(m)!==s)continue;let y=m?.persistedMessageId||m?.messageId||m?.id||null;p.has(y)&&(m._historyWindowPrefetched!==!0&&m._historyWindowDetached!==!0||(m._historyWindowKey=c,m._historyWindowDetached=!0,m._historyWindowPrefetched=!1,f.push(m)))}let h=u.filter(m=>Vn(m)!==s||m._historyWindowDetached!==!0||m._historyWindowKey===c);h.length!==u.length&&d.replaceProjection(r,h)}d.commitDurable({conversationId:r,sessionId:s,rows:l,mode:"window"});let g=l.length>0?l:f,v=_s(e);return td(e,{conversationId:r,agentId:n,sessionId:s,incomingRows:g,activeAgentId:v.agentId,activeSessionId:v.sessionId}),r}function Yg(e){return e?.toolId?[Vn(e)??"",e.vpId||e.speakerVpId||"",e.turnId||"",e.threadId||"main",e.toolId].join("\0"):null}function Qg(e,t,s){return e.toolName="AskUserQuestion",e.toolId=t.toolCallId,e.toolInput={questions:s},e.askQuestions=s,e.askRequestId=null,e.askPending=!1,e.pendingAnswers=null,e.askSubmitGeneration=null,e.askSubmittedAt=null,e.askError=null,e.hasResult=!0,e.isHistory=!0,t.status==="answered"?(e.askAnswered=!0,e.selectedAnswers=t.answers,e.askExpired=!1):(e.askAnswered=!1,e.selectedAnswers=null,e.askExpired=!0),e}function MI(e,t){return(e||[]).find(s=>s?.type==="tool-use"&&(s.toolName==="AskUser"||s.toolName==="AskUserQuestion")&&s.toolId===t.toolCallId&&Vn(s)===t.sessionId&&(s.vpId||s.speakerVpId||"")===(t.vpId||"")&&(s.turnId||"")===(t.turnId||"")&&(s.threadId||"main")===(t.threadId||"main"))||null}function oh(e,t,s,n,r=null){let i=new Set((n||[]).map(c=>wI(SI(c,r))).filter(Boolean)),o=new Set,a=[],l=0;for(let c of e){if(!c||c._reflection||c.internal||c.systemOnly||c.systemOnlyMessage||AI(c.content))continue;let d=c.id||c.messageId||null,u=c.clientMessageId||null,p=c.sessionId??c.groupId??t??null,f=Zi(r,p,d),g=u?Fn(r,p,u):f,v=c.historyEntryId?{historyEntryId:c.historyEntryId,...Number.isFinite(c.historyIndexGeneration)?{historyIndexGeneration:c.historyIndexGeneration}:{}}:{},h=f&&(o.has(f)||s!=="recent"&&i.has(f));if(f&&o.add(f),c.role==="user"){if(h)continue;l+=1;let m=d||c.messageId||c.turnId||null;a.push({...d?{id:d,messageId:d}:{},...f?{stableKey:f}:{},...g?{uiKey:g}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"user",content:c.content,timestamp:Gg(c),sessionId:p,turnId:c.turnId||m,...u?{clientMessageId:u}:{},...Array.isArray(c.attachments)&&c.attachments.length>0?{attachments:c.attachments}:{},...c.quote?{quote:c.quote}:{},isStreaming:!1,isHistory:!0})}else if(c.role==="assistant"){h||(l+=1);let m=d||c.messageId||c.turnId||null,y=kI(c,p),k=Gg(c),w=!!c.turnId,b=c.turnId||m,S=typeof c.content=="string"?c.content:c.content||"",C=Array.isArray(c.todos)?c.todos:yI(c.toolCalls),_=c.executionOrigin==="route_forward"?{executionOrigin:"route_forward"}:{};!h&&(typeof S!="string"||S.trim())&&a.push({...d?{id:d,messageId:d}:{},...f?{stableKey:f}:{},...g?{uiKey:g}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),...c.entryId?{entryId:c.entryId}:{},...Array.isArray(c.sourceMessageIds)?{sourceMessageIds:c.sourceMessageIds}:{},type:"assistant",content:S,timestamp:k,sessionId:p,turnId:b,_hasPersistedTurnId:w,..._,...y?{vpId:y,speakerVpId:y}:{},...c.presentation?{presentation:c.presentation}:{},...c.presentationCallId?{presentationCallId:c.presentationCallId}:{},...c.responseKind==="progress"||c.responseKind==="result"?{responseKind:c.responseKind}:{},...Number.isInteger(c.llmCallCount)&&c.llmCallCount>0?{llmCallCount:c.llmCallCount}:{},...Number.isFinite(c.inputTokens)&&c.inputTokens>=0?{inputTokens:c.inputTokens}:{},...Number.isFinite(c.outputTokens)&&c.outputTokens>=0?{outputTokens:c.outputTokens}:{},...Number.isFinite(c.totalTokens)&&c.totalTokens>=0?{totalTokens:c.totalTokens}:{},...Number.isFinite(c.totalMs)&&c.totalMs>=0?{totalMs:c.totalMs}:{},...typeof c.model=="string"&&c.model?{model:c.model}:{},...typeof c.effort=="string"&&c.effort?{effort:c.effort}:{},...c.incomplete===!0?{incomplete:!0}:{},...typeof c.stopReason=="string"&&c.stopReason?{stopReason:c.stopReason}:{},isStreaming:!1,isHistory:!0}),Array.isArray(C)&&C.length>0&&a.push({...d?{id:`${d}:todos`,messageId:`${d}:todos`,persistedMessageId:d}:{},...f?{stableKey:`${f}:todos`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",toolName:"TodoWrite",toolInput:{todos:C},timestamp:k,startTime:k||0,sessionId:p,turnId:b,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0,hasResult:!0});for(let[M,E]of(Array.isArray(c.toolCalls)?c.toolCalls:[]).entries()){if(!E||E.name==="TodoWrite")continue;let W=E.id||`index:${M}`,$=encodeURIComponent(String(W));a.push({...d?{id:`${d}:tool:${$}`,messageId:`${d}:tool:${$}`,persistedMessageId:d}:{},...f?{stableKey:`${f}:tool:${$}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",toolId:E.id||null,toolName:E.name||"unknown",toolInput:E.input||{},timestamp:k,startTime:k||0,sessionId:p,turnId:b,...c.threadId?{threadId:c.threadId}:{},..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0,hasResult:!0})}for(let M of Array.isArray(c.images)?c.images:[]){if(!M?.assetId)continue;let E=M.sourceToolCallId?`${M.assetId}:tool:${encodeURIComponent(M.sourceToolCallId)}`:M.assetId,W=Number.isInteger(M.sourceImageIndex)?`${E}:index:${M.sourceImageIndex}`:E;a.push({id:`${d||m||b}:image:${W}`,messageId:`${d||m||b}:image:${W}`,...d?{persistedMessageId:d}:{},...f?{stableKey:`${f}:image:${W}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"chat-image",...M,timestamp:k,sessionId:p,turnId:b,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0})}for(let M of Array.isArray(c.askUserResults)?c.askUserResults:[]){if(!M?.toolCallId||M.status!=="answered"&&M.status!=="expired")continue;let E=[{question:typeof M.question=="string"?M.question:"",options:(Array.isArray(M.options)?M.options:[]).filter(Q=>typeof Q=="string").map(Q=>({label:Q,description:""})),multiSelect:!1}],W={toolCallId:M.toolCallId,sessionId:p,vpId:y||"",turnId:b||"",threadId:c.threadId||"main"},$=MI(n,W);if($){Object.assign($,v),Qg($,M,E);let Q=a.findIndex(T=>T?.type==="tool-use"&&T.toolId===M.toolCallId&&(T.sessionId??T.groupId??null)===($.sessionId??$.groupId??null)&&(T.turnId||"")===($.turnId||""));Q>=0&&a.splice(Q,1);continue}let x=Qg({id:`${d||m||b}:ask:${M.toolCallId}`,messageId:`${d||m||b}:ask:${M.toolCallId}`,...d?{persistedMessageId:d}:{},...f?{stableKey:`${f}:ask:${M.toolCallId}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",timestamp:k,sessionId:p,turnId:b,threadId:W.threadId,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1},M,E),D=Yg(x);(!D||!a.some(Q=>Yg(Q)===D))&&a.push(x);let Z=a.findIndex(Q=>Q!==x&&Q?.type==="tool-use"&&Q.toolId===M.toolCallId&&(Q.sessionId??Q.groupId??null)===(x.sessionId??x.groupId??null)&&(Q.turnId||"")===(x.turnId||""));Z>=0&&a.splice(Z,1)}}}return{formatted:a,acceptedHistoryMessages:l}}function ah(e,t){let s=t.sessionId!=null?t.sessionId:t.groupId,n=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(mn(e,n,t.conversationId)){let A=e.yeaftConversationIdsByAgent?.[n]||null;if(!A||A===t.conversationId)return;js(e,t.conversationId,A,{removeSource:t.conversationId!==e.yeaftConversationId}),t={...t,conversationId:A}}if(t.requestId&&typeof e.isCurrentYeaftHistoryResponse=="function"&&!e.isCurrentYeaftHistoryResponse(t))return;let r=t.mode==="recent"||t.mode==="delta"?t.mode:"older",i=Array.isArray(t.messages)?t.messages:[],o=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null,a=Ye(o,s),l=e.yeaftSessionHistoryState?.[a]||null;typeof t.streamId=="string"&&typeof l?.streamId=="string"&&(t.streamId!==l.streamId||Number.isFinite(t.revision)&&Number.isFinite(l.revision)&&t.revision!==l.revision)&&(r="recent",typeof e.clearYeaftHistoryMemory=="function"&&(e.clearYeaftHistoryMemory({agentId:o,sessionId:s,preserveLiveRows:!0,preserveSessionOwner:!0}),t.requestId&&l?.requestId===t.requestId&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[a]:{requestId:l.requestId,generation:l.generation,requestedAt:l.requestedAt,mode:l.mode,loading:!0}}))),t.perfTraceId&&jt(e,{traceId:t.perfTraceId,phase:"history.chunk_received",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,bytes:(()=>{try{return JSON.stringify(t).length}catch{return null}})(),detail:{mode:r,rawCount:i.length}});let d=t.agentId||(s&&e.yeaftSessionAgentById?e.yeaftSessionAgentById[s]:null),u=d&&e.yeaftConversationIdsByAgent?e.yeaftConversationIdsByAgent[d]:null,p=t.conversationId||u||e.yeaftConversationId;if(!p){e.yeaftLoadingMoreHistory=!1;return}TI(e,t,s,p),e.messagesMap[p]||(e.messagesMap[p]=[]);let{formatted:f,acceptedHistoryMessages:g}=oh(i,s,r,e.messagesMap[p],d);to(e,p,f);let v=Ws(e),h=0,m=!1;if(r==="recent"){let A=II(v,p,f,s??null);h=A.insertedRows,m=A.preservedEmpty}else if(f.length>0&&(h=v.commitDurable({conversationId:p,sessionId:s??null,rows:f,mode:r}).insertedRows,r==="older"&&typeof e.expandYeaftMessageWindow=="function")){let q=e.yeaftActiveSessionFilter?s??null:null;e.expandYeaftMessageWindow(q,t.turns||10,d)}let y=_s(e);td(e,{conversationId:p,agentId:d,sessionId:s,incomingRows:f,activeAgentId:y.agentId,activeSessionId:y.sessionId});let k=Ye(t.agentId||null,s),w=e.yeaftHistoryCacheState?.[k]||null,b=e.yeaftSessionHistoryState?.[k]||{},S=Number.isFinite(b.serverOldestFetchedSeq)?b.serverOldestFetchedSeq:Number.isFinite(b.oldestSeq)?b.oldestSeq:null,C=Number.isFinite(t.nextBeforeSeq)?t.nextBeforeSeq:Number.isFinite(t.oldestSeq)?t.oldestSeq:m?S:null,_=m&&!Number.isFinite(t.nextBeforeSeq)&&!Number.isFinite(t.oldestSeq)?b.serverHasMore??b.hasMore??!1:t.hasMore,M=r==="delta"?b:zg(b,{mode:r,oldestSeq:C,hasMore:_,ranges:w?.ranges||[],pageKind:t.pageKind,stopAtSeq:t.gapStopAtSeq,cacheEpoch:w?.rangeEpoch??t.cacheEpoch??0}),E=typeof t.latestSeq=="number"?t.latestSeq:b.latestSeq??null,W={streamId:typeof t.streamId=="string"?t.streamId:b.streamId??null,revision:Number.isFinite(t.revision)?t.revision:b.revision??null},$=r==="delta"?{...b,...W,loaded:!0,loading:!1,latestSeq:E,syncingAfterSeq:null,count:(b.count||0)+h}:{...M,...W,loaded:!0,loading:!1,count:w?w.rowCount:r==="older"?(b.count||0)+h:m?b.count||0:g,latestSeq:m&&!Number.isFinite(t.latestSeq)?b.latestSeq??null:E,syncingAfterSeq:null};t.requestId&&typeof e.finishYeaftHistoryLoad=="function"?e.finishYeaftHistoryLoad(t,$,"chunk"):e.yeaftSessionHistoryState&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[k]:$}),r==="delta"&&t.hasMoreAfter===!0&&Number.isFinite($.latestSeq)&&$.latestSeq>Number(t.afterSeq??-1)&&typeof e.continueYeaftHistoryDelta=="function"&&queueMicrotask(()=>e.continueYeaftHistoryDelta(s,d,$.latestSeq));let x=_s(e),D=x.sessionId===(s||null),Z=!t.agentId||!x.agentId||t.agentId===x.agentId,Q=D&&Z,T=Ye(null,x.sessionId);if(t.perfTraceId&&(jt(e,{traceId:t.perfTraceId,phase:"history.chunk_applied",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,formattedCount:f.length,insertedRows:h,acceptedHistoryMessages:g,preservedEmptyRecent:m}}),Da(e,{traceId:t.perfTraceId,phase:"history.next_paint",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,insertedRows:h}})),Q)e.yeaftHasMoreHistory=$.hasMore,e.yeaftOldestLoadedSeq=Number.isFinite($.serverOldestFetchedSeq)?$.serverOldestFetchedSeq:Number.isFinite($.oldestSeq)?$.oldestSeq:e.yeaftOldestLoadedSeq,e.yeaftLoadingMoreHistory=!1;else if(e.yeaftLoadingMoreHistory){let A=e.yeaftSessionHistoryState?.[x.sessionKey]||e.yeaftSessionHistoryState?.[T]||null;e.yeaftLoadingMoreHistory=!!A?.loading}}var La=F(()=>{qn();dd();io();ur();ud();so();un();fd();Ia();Kr();xa();gd();Ji()});function md(e,t,s=null){if(!s)return!1;if(e.promoteYeaftHistoryOutlineRow?.(t,s))return!0;let n=t?.sessionId??t?.groupId??e._currentYeaftSessionId??null;return n?!!e.invalidateYeaftHistoryOutline?.(n,s):!1}function lh(e){let t=e;if(typeof t=="string"){let s=t.trim();if(s.startsWith("[")&&s.endsWith("]")||s.startsWith("{")&&s.endsWith("}"))try{t=JSON.parse(s)}catch{t=e}}return Array.isArray(t)?t.map(s=>typeof s=="string"?s:!s||typeof s!="object"?"":s.type==="text"&&typeof s.text=="string"||s.type==="input_text"&&typeof s.text=="string"?s.text:"").join("").replace(/\n\n\[Uploaded files\][\s\S]*$/m,"").trim():t&&typeof t=="object"?typeof t.text=="string"?t.text.trim():typeof t.content=="string"?t.content.trim():"":typeof t=="string"?t.replace(/\n\n\[Uploaded files\][\s\S]*$/m,"").trim():""}function vd(e,t){return e.executionStatusMap[t]||(e.executionStatusMap[t]={currentTool:null,toolHistory:[],lastActivity:null}),e.executionStatusMap[t]}function ch(e,t,s,n=null){if(!t)return;let r=vd(e,t);if(r.lastActivity=Date.now(),Ra(e,t),s.type==="system"){if(s.subtype==="init"){let i=e.conversations.find(o=>o.id===t);i&&i.connecting&&(i.connecting=!1);return}s.message&&e.addMessageToConversation(t,{type:"system",content:typeof s.message=="string"?s.message:JSON.stringify(s.message,null,2)});return}if(s.type==="assistant"){let i=s.message?.content;if(!i)return;if(s.message?.presentation){if(!s.message.id||!e._currentYeaftSessionId||!e._currentYeaftTurnId||(e.messagesMap[t]||[]).find(c=>(c.messageId||c.id)===s.message.id&&c.sessionId===e._currentYeaftSessionId&&(!n||!c.agentId||c.agentId===n)))return;e.finishStreamingForConversation(t,{completeLifecycle:!1});let l=e.addMessageToConversation(t,{id:s.message.id,messageId:s.message.id,type:"assistant",content:typeof i=="string"?i:lh(i),presentation:s.message.presentation,presentationCallId:s.message.presentationCallId,responseKind:s.message.responseKind==="result"?"result":"progress",timestamp:s.ts||null,isStreaming:!1,status:s.message.responseKind==="result"?"completed":"pending",agentId:n,sessionId:e._currentYeaftSessionId,vpId:e._currentYeaftVpId,turnId:e._currentYeaftTurnId,threadId:e._currentYeaftThreadId});md(e,l,n);return}let o=e.messagesMap[t]||[];for(let a of o)a.type==="tool-use"&&!a.hasResult&&(a.hasResult=!0);for(let a of r.toolHistory)a.status==="running"&&(a.status="done");if(r.currentTool=null,typeof i=="string"){e.appendToAssistantMessageForConversation(t,i,{id:s.message?.id||s.message?.messageId||null,ts:s.ts||s.message?.ts||s.message?.time||null,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null});return}if(!Array.isArray(i))return;if(i.length===0){e.finishStreamingForConversation(t);return}for(let a of i)a.type==="text"?e.appendToAssistantMessageForConversation(t,a.text,{id:s.message?.id||s.message?.messageId||null,ts:s.ts||s.message?.ts||s.message?.time||null,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}):a.type==="image_asset"&&a.image?e.addMessageToConversation(t,{type:"chat-image",...a.image,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,speakerVpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}):a.type==="tool_use"&&(e.finishStreamingForConversation(t,{completeLifecycle:!1}),r.currentTool={name:a.name,input:a.input,startTime:Date.now()},r.toolHistory.unshift({name:a.name,input:a.input,timestamp:Date.now(),status:"running"}),r.toolHistory.length>20&&r.toolHistory.pop(),e.addMessageToConversation(t,{type:"tool-use",toolId:a.id||a.tool_use_id||null,toolName:a.name,toolInput:a.input,startTime:Date.now(),isHistory:a.history===!0||s.history===!0||s.isHistory===!0,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}))}else if(s.type==="user"){let i=s.internal===!0||s.message?.internal===!0||s.userAuthored===!1||s.message?.userAuthored===!1,o=s.message?.content,a=lh(o);if(typeof a=="string"&&(a.includes("<local-command-caveat>")||a.includes("<command-name>")))return;if(typeof a=="string"&&a.includes("<local-command-stdout>")){let c=a.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);if(c){e.appendToAssistantMessageForConversation(t,c[1].trim()),e.finishStreamingForConversation(t);return}}let l=[];if(s.tool_use_result)l=Array.isArray(s.tool_use_result)?s.tool_use_result:[s.tool_use_result];else if(s.message?.content){let c=s.message.content;l=(Array.isArray(c)?c:[]).filter(u=>u.type==="tool_result")}if(l.length>0){let c=e.messagesMap[t]||[];for(let d of l){if(r.toolHistory.length>0){let g=r.toolHistory.findIndex(v=>v.status==="running");g>=0&&(r.toolHistory[g].status="done")}let u=d.tool_use_id||d.toolUseId||d.tool_call_id||d.toolCallId||null,p=d.content||d,f=!1;if(u){for(let g=c.length-1;g>=0;g--)if(c[g].type==="tool-use"&&c[g].toolId===u){c[g].hasResult=!0,c[g].toolResult=d.is_update&&c[g].toolResult?`${c[g].toolResult}
1
+ var F=(e,t,s)=>()=>{if(s)throw s[0];try{return e&&(t=e(e=0)),t}catch(n){throw s=[n],n}};var SC=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(s){throw t=0,s}};function hf(e,t){let s=nacl.randomBytes(24),n=JSON.stringify(e),r,i=!1;n.length>512?(r=pako.gzip(n),i=!0):r=nacl.util.decodeUTF8(n);let o=nacl.secretbox(r,s,t),a={n:nacl.util.encodeBase64(s),c:nacl.util.encodeBase64(o)};return i&&(a.z=!0),a}function mf(e,t){try{let s=nacl.util.decodeBase64(e.n),n=nacl.util.decodeBase64(e.c),r=nacl.secretbox.open(n,s,t);if(!r)return null;if(e.z){let i=pako.ungzip(r,{to:"string"});return JSON.parse(i)}else return JSON.parse(nacl.util.encodeUTF8(r))}catch{return null}}function vf(e){return e&&typeof e=="object"&&typeof e.n=="string"&&typeof e.c=="string"}function Ms(e){return nacl.util.decodeBase64(e)}var ca=F(()=>{});function ln(){return globalThis.localStorage||null}function bf(){let e=Nr();for(let t of Rc)try{t(e)}catch{}}function CC(){try{ln()?.removeItem(qi),ln()?.removeItem(Vi)}catch{}}function IC(e){return String(e||"").trim()||null}function yf(e,t){if(!Br(t))return{};try{let s=JSON.parse(ln()?.getItem(e)||"null");return!s||typeof s!="object"||Array.isArray(s)||s.ownerId!==t.ownerId||!s.records||typeof s.records!="object"||Array.isArray(s.records)?(ln()?.removeItem(e),{}):s.records}catch{try{ln()?.removeItem(e)}catch{}return{}}}function kf(e,t,s){if(!Br(s))return!1;try{return ln()?.setItem(e,JSON.stringify({ownerId:s.ownerId,records:t||{}})),!0}catch{return!1}}function Ps(e){let t=IC(e);if(!t)return _c(),null;if(lr!==t){lr=t,da+=1;for(let s of[qi,Vi])try{let n=JSON.parse(ln()?.getItem(s)||"null");(!n||n.ownerId!==t)&&ln()?.removeItem(s)}catch{try{ln()?.removeItem(s)}catch{}}bf()}return Nr()}function _c(){lr=null,da+=1,CC(),bf()}function Nr(){return lr?{ownerId:lr,epoch:da}:null}function Br(e){return!!e&&!!lr&&e.ownerId===lr&&e.epoch===da}function wf(e){return{drafts:yf(qi,e),outbox:yf(Vi,e)}}function Ec(e,t){return kf(qi,e,t)}function Ni(e,t){return kf(Vi,e,t)}function Sf(e){return typeof e!="function"?()=>{}:(Rc.add(e),()=>Rc.delete(e))}var qi,Vi,lr,da,Rc,t1,$c=F(()=>{qi="yeaft-work-center-composer-drafts-v1",Vi="yeaft-work-center-message-outbox-v1",lr=null,da=0,Rc=new Set;t1=Object.freeze({drafts:qi,outbox:Vi})});function Dc(){try{globalThis.Pinia?.useChatStore?.()?.clearYeaftHistoryMemory?.()}catch{}}function Cf(){try{globalThis.Pinia?.useChatStore?.()?.clearPluginState?.()}catch{}}function cn(e){Cf();let t=String(e||"").trim()||null;try{globalThis.Pinia?.useChatStore?.()?.bindScheduledTaskNotificationOwner?.(t)}catch{}ua!==t&&Dc(),ua=t}function xC(){try{globalThis.Pinia?.useChatStore?.()?.bindScheduledTaskNotificationOwner?.(null)}catch{}Cf(),Dc(),ua=null}var AC,ua,TC,Xe,ss=F(()=>{ca();$c();({defineStore:AC}=Pinia);ua=null;TC=1800*1e3,Xe=AC("auth",{state:()=>({skipAuth:!1,emailVerification:!1,passwordResetEnabled:!1,totpEnabled:!1,registrationEnabled:!1,aadEnabled:!1,aadClientId:null,aadTenantId:null,ssoProviders:{github:!1,google:!1,wechat:!1,alipay:!1},linkedIdentities:[],hasPassword:!1,identitiesLoading:!1,identitiesError:null,initialized:!1,authGeneration:0,isAuthenticated:!1,token:null,sessionKey:null,userId:null,role:null,loginStep:"credentials",tempToken:null,emailHint:null,setupToken:null,totpSecret:null,qrCode:null,error:null,loading:!1,qrPanel:null,_qrPollTimer:null,_sessionRefreshTimer:null,_sessionRefreshVisibilityHandler:null}),actions:{async initialize(){if(this.initialized)return this.isAuthenticated;try{if(await this.checkAuthMode(),this.skipAuth&&this.isAuthenticated)return!0;let e=!1;return typeof window<"u"&&typeof this.consumeSsoRedirect=="function"&&(e=this.consumeSsoRedirect()),!this.isAuthenticated&&!e&&await this.restoreSession(),this.isAuthenticated}finally{this.initialized=!0}},async checkAuthMode(){try{let t=await(await fetch("/api/auth/mode")).json();this.skipAuth=t.skipAuth,this.emailVerification=t.emailVerification,this.passwordResetEnabled=!!t.passwordResetEnabled,this.totpEnabled=t.totpEnabled,this.registrationEnabled=t.registrationEnabled||!1,this.aadEnabled=t.aadEnabled||!1,this.aadClientId=t.aadClientId||null,this.aadTenantId=t.aadTenantId||null,this.ssoProviders=Object.assign({github:!1,google:!1,wechat:!1,alipay:!1},t.ssoProviders||{}),this.skipAuth&&(this.userId="skip-auth",Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated")}catch{}},async login(e,t){this.loading=!0,this.error=null;try{let n=await(await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t})})).json();return n.success?n.needTotpSetup?(this.setupToken=n.setupToken,this.totpSecret=n.totpSecret,this.qrCode=n.qrCode,this.loginStep="totp-setup",!0):n.needTotpCode?(this.tempToken=n.tempToken,this.loginStep="totp",!0):n.needEmailCode?(this.tempToken=n.tempToken,this.emailHint=n.emailHint,this.loginStep="verification",!0):(this.token=n.token,this.sessionKey=n.sessionKey?Ms(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n.token),this.startSessionRefresh(),!0):(this.error=n.error||"Login failed",!1)}catch(s){return this.error=s.message||"Network error",!1}finally{this.loading=!1}},async loginWithMicrosoft(){if(!this.aadEnabled||!this.aadClientId||!this.aadTenantId)return this.error="Microsoft login is not configured",!1;if(typeof msal>"u"||!msal.PublicClientApplication)return this.error="Microsoft authentication library not loaded",!1;this.loading=!0,this.error=null;try{let e={auth:{clientId:this.aadClientId,authority:`https://login.microsoftonline.com/${this.aadTenantId}`,redirectUri:window.location.origin+"/auth/callback"},cache:{cacheLocation:"sessionStorage",storeAuthStateInCookie:!1}},t=new msal.PublicClientApplication(e);await t.initialize();let s=await t.loginPopup({scopes:["openid","profile","email"]});if(!s||!s.idToken)return this.error="Microsoft login failed: no token received",!1;let r=await(await fetch("/api/auth/aad",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:s.idToken})})).json();return r.success?(this.token=r.token,this.sessionKey=r.sessionKey?Ms(r.sessionKey):null,this.role=r.role||"pro",this.userId=r.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",r.token),this.startSessionRefresh(),!0):(this.error=r.error||"Microsoft login failed",!1)}catch(e){return e.errorCode==="user_cancelled"||e.name==="BrowserAuthError"?(this.error=null,!1):(this.error=e.message||"Microsoft login failed",!1)}finally{this.loading=!1}},async verifyTotpCode(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/verify-totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tempToken:this.tempToken,totpCode:e})})).json();return s.success?s.needEmailCode?(this.tempToken=s.tempToken,this.emailHint=s.emailHint,this.loginStep="verification",!0):(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.tempToken=null,localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0):(this.error=s.error||"TOTP verification failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async completeTotpSetup(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/setup-totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({setupToken:this.setupToken,totpCode:e})})).json();return s.success?(this.setupToken=null,this.totpSecret=null,this.qrCode=null,s.needEmailCode?(this.tempToken=s.tempToken,this.emailHint=s.emailHint,this.loginStep="verification",!0):(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0)):(this.error=s.error||"TOTP setup failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async verifyCode(e){this.loading=!0,this.error=null;try{let s=await(await fetch("/api/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tempToken:this.tempToken,code:e})})).json();return s.success?(this.token=s.token,this.sessionKey=s.sessionKey?Ms(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.tempToken=null,this.emailHint=null,localStorage.setItem("authToken",s.token),this.startSessionRefresh(),!0):(this.error=s.error||"Verification failed",!1)}catch(t){return this.error=t.message||"Network error",!1}finally{this.loading=!1}},async register(e,t,s,n){this.loading=!0,this.error=null;try{let i=await(await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,email:s||void 0,invitationCode:n})})).json();return i.success?!0:(this.error=i.error||"Registration failed",!1)}catch(r){return this.error=r.message||"Network error",!1}finally{this.loading=!1}},showRegister(){this.loginStep="register",this.error=null},loginWithSso(e){window.location.href=`/api/auth/sso/${encodeURIComponent(e)}/start`},async loginWithAlipayMobile({intent:e="login"}={}){if(!await this.startSsoQr("alipay",{intent:e}))return!1;let s=this.qrPanel?.authorizeUrl;if(!s)return!1;let n=`alipays://platformapi/startapp?appId=20000067&url=${encodeURIComponent(s)}`;return this.qrPanel={...this.qrPanel,mobileDeepLink:!0},window.location.href=n,!0},async startSsoQr(e,{intent:t="login"}={}){this.cancelSsoQr(),this.error=null;try{let s=new URLSearchParams;if(t==="bind"){if(!this.isAuthenticated)return this.error="You must be logged in to bind an identity",!1;s.set("intent","bind")}let n=s.toString(),r=`/api/auth/sso/${encodeURIComponent(e)}/start-qr${n?"?"+n:""}`,i=await fetch(r),o=await i.json();return!i.ok||!o.success?(this.error=o.error||"Failed to start QR login",!1):(this.qrPanel={provider:e,intent:t,authorizeUrl:o.authorizeUrl,state:o.state,status:"pending",error:null},this._startQrPoll(),!0)}catch(s){return this.error=s.message||"Network error",!1}},_startQrPoll(){this._stopQrPollTimer();let e=async()=>{if(!this.qrPanel)return;let t=this.qrPanel.state;try{let n=await(await fetch(`/api/auth/sso/poll/${encodeURIComponent(t)}`)).json();if(!this.qrPanel||this.qrPanel.state!==t||n.status==="pending")return;if(n.status==="login"){this.token=n.token,this.sessionKey=n.sessionKey?Ms(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n.token),this.startSessionRefresh(),this.cancelSsoQr();return}if(n.status==="bind"){this.qrPanel={...this.qrPanel,status:"bound"},this._stopQrPollTimer();return}this.qrPanel={...this.qrPanel,status:"error",error:n.error||"SSO failed"},this._stopQrPollTimer()}catch{}};this._qrPollTick=e,this._qrPollTimer=setInterval(e,2e3),typeof document<"u"&&!this._qrVisHandler&&(this._qrVisHandler=()=>{typeof document<"u"&&document.visibilityState&&document.visibilityState!=="visible"||!this.qrPanel||!this._qrPollTick||(this._qrPollTick(),this._qrPollTimer&&clearInterval(this._qrPollTimer),this._qrPollTimer=setInterval(this._qrPollTick,2e3))},document.addEventListener("visibilitychange",this._qrVisHandler),typeof window<"u"&&window.addEventListener("pageshow",this._qrVisHandler))},_stopQrPollTimer(){this._qrPollTimer&&(clearInterval(this._qrPollTimer),this._qrPollTimer=null),this._qrVisHandler&&(typeof document<"u"&&document.removeEventListener("visibilitychange",this._qrVisHandler),typeof window<"u"&&window.removeEventListener("pageshow",this._qrVisHandler),this._qrVisHandler=null),this._qrPollTick=null},cancelSsoQr(){this._stopQrPollTimer(),this.qrPanel=null},bindSso(e){if(!this.isAuthenticated){this.error="You must be logged in to bind an identity";return}let t=new URLSearchParams({intent:"bind"});window.location.href=`/api/auth/sso/${encodeURIComponent(e)}/start?${t.toString()}`},consumeSsoRedirect(){let e=window.location.hash||"",t=e.indexOf("?");if(!e.startsWith("#/sso-complete")||t<0)return!1;let s=new URLSearchParams(e.slice(t+1)),n=s.get("token"),r=s.get("sessionKey"),i=s.get("role"),o=s.get("userId");if(!n)return!1;this.token=n,this.sessionKey=r?Ms(r):null,this.role=i||"pro",this.userId=o||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",localStorage.setItem("authToken",n),this.startSessionRefresh();try{history.replaceState(null,"",window.location.pathname+window.location.search)}catch{}return!0},async loadIdentities(){if(this.isAuthenticated){this.identitiesLoading=!0,this.identitiesError=null;try{let e=await fetch("/api/auth/identities"),t=await e.json();if(!e.ok||!t.success){this.identitiesError=t.error||"Failed to load identities";return}this.linkedIdentities=t.identities||[],this.hasPassword=!!t.hasPassword}catch(e){this.identitiesError=e.message||"Network error"}finally{this.identitiesLoading=!1}}},async unbindIdentity(e){if(!this.isAuthenticated)return!1;this.identitiesError=null;try{let t=await fetch(`/api/auth/identities/${encodeURIComponent(e)}`,{method:"DELETE"}),s=await t.json();return!t.ok||!s.success?(this.identitiesError=s.error||"Failed to unbind",!1):(this.linkedIdentities=this.linkedIdentities.filter(n=>n.provider!==e),!0)}catch(t){return this.identitiesError=t.message||"Network error",!1}},async refreshSession(){let e=this.token,t=this.authGeneration,s=this.isAuthenticated;try{let n=await fetch("/api/user/profile",{headers:e?{Authorization:`Bearer ${e}`}:{}});if(this.handleAuthResponse(n,e,t,s)||!n.ok)return!1;let r=await n.json().catch(()=>({}));if(t!==this.authGeneration||this.token!==e)return this.isAuthenticated;let i=n.headers?.get?.("X-New-Token"),o=localStorage.getItem("authToken");i&&this.token===e&&(!o||o===e)&&(this.token=i,localStorage.setItem("authToken",i)),r?.role&&(this.role=r.role);let a=this.userId;return this.userId=r?.userId||null,Ps(this.userId),a!==this.userId&&Dc(),ua=this.userId,!0}catch{return!1}},startSessionRefresh(){if(this.stopSessionRefresh(),!this.isAuthenticated||this.skipAuth)return;let e=()=>{typeof document<"u"&&document.visibilityState&&document.visibilityState!=="visible"||this.refreshSession()};this._sessionRefreshTimer=setInterval(e,TC),this._sessionRefreshVisibilityHandler=e,typeof document<"u"&&document.addEventListener("visibilitychange",e),typeof window<"u"&&window.addEventListener("pageshow",e)},stopSessionRefresh(){this._sessionRefreshTimer&&(clearInterval(this._sessionRefreshTimer),this._sessionRefreshTimer=null),this._sessionRefreshVisibilityHandler&&(typeof document<"u"&&document.removeEventListener("visibilitychange",this._sessionRefreshVisibilityHandler),typeof window<"u"&&window.removeEventListener("pageshow",this._sessionRefreshVisibilityHandler),this._sessionRefreshVisibilityHandler=null)},async logout(){try{let e={"Content-Type":"application/json"};this.token&&(e.Authorization=`Bearer ${this.token}`),await fetch("/api/auth/logout",{method:"POST",headers:e})}catch{}await this.clearStoredSession()},clearStoredSession(e=null){let t=this.reset();return localStorage.removeItem("authToken"),e&&(this.error=e),t},getActiveToken(){if(this.token)return this.token;let e=localStorage.getItem("authToken");return e&&(this.token=e),this.token},handleAuthResponse(e,t=null,s=this.authGeneration,n=this.isAuthenticated,r=void 0){if(!e||e.status!==401||!n||s!==this.authGeneration)return!1;let i=this.token||localStorage.getItem("authToken")||null;return t!==i?!1:(this.handleAuthFailure(r,t,s),!0)},handleAuthFailure(e="Session expired. Please log in again.",t=null,s=this.authGeneration){if(s!==this.authGeneration)return!1;let n=this.token||localStorage.getItem("authToken")||null;return t!==n||this.clearStoredSession(e),!1},async restoreSession(){let e=localStorage.getItem("authToken"),t=this.authGeneration,s=this.isAuthenticated||!!e;try{let n=await fetch("/api/user/profile",{headers:e?{Authorization:`Bearer ${e}`}:{}});if(this.handleAuthResponse(n,e,t,s))return!1;if(!n.ok)return this.error="Failed to restore session",!1;let r=await n.json();if(t!==this.authGeneration)return this.isAuthenticated;let i=n.headers?.get?.("X-New-Token"),o=this.getActiveToken();if(o!==e)return this.isAuthenticated;let a=i&&(!o||o===e)?i:o||e;return this.token=a,a&&a!==e&&localStorage.setItem("authToken",a),this.role=r?.role||"pro",this.userId=r?.userId||null,Ps(this.userId),cn(this.userId),this.authGeneration+=1,this.isAuthenticated=!0,this.loginStep="authenticated",this.startSessionRefresh(),!0}catch(n){return this.error=n.message||"Failed to restore session",!1}},setSessionKey(e){e&&(this.sessionKey=Ms(e))},backToCredentials(){this.loginStep="credentials",this.tempToken=null,this.emailHint=null,this.setupToken=null,this.totpSecret=null,this.qrCode=null,this.error=null},async requestPasswordReset(e){this.error=null;try{let s=await(await fetch("/api/auth/password-reset/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e})})).json();return s.success?s.resetToken||null:(this.error=s.error||"Failed to request password reset",null)}catch(t){return this.error=t.message||"Network error",null}},async verifyPasswordReset(e,t,s){this.error=null;try{let r=await(await fetch("/api/auth/password-reset/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({resetToken:e,code:t,newPassword:s})})).json();return r.success?!0:(this.error=r.error||"Failed to reset password",!1)}catch(n){return this.error=n.message||"Network error",!1}},async deleteAccount({currentPassword:e,confirm:t}={}){if(!this.isAuthenticated)return{success:!1,error:"Not authenticated"};try{let s=await fetch("/api/user/me",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:e,confirm:t})}),n=await s.json();return!s.ok||!n.success?{success:!1,error:n.error||"Failed to delete account"}:(await this.clearStoredSession(),{success:!0})}catch(s){return{success:!1,error:s.message||"Network error"}}},reset(){_c(),xC(),this.authGeneration+=1,this.stopSessionRefresh(),this.isAuthenticated=!1,this.token=null,this.sessionKey=null,this.userId=null,this.role=null,this.loginStep="credentials",this.tempToken=null,this.emailHint=null,this.setupToken=null,this.totpSecret=null,this.qrCode=null,this.error=null,this.loading=!1}}})});function Af(){try{let e=JSON.parse(globalThis.localStorage?.getItem(If)||"null");return!e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,t])=>t===!0))}catch{return{}}}function xf(e){try{globalThis.localStorage?.setItem(If,JSON.stringify(e))}catch{}}var If,Tf=F(()=>{If="digital-person-ui-enabled-by-agent"});function ut(e,t){let s=dn?.value||"zh-CN",r=(Hr[s]||Hr["zh-CN"]||{})[e];if(r===void 0&&s!=="zh-CN"&&(r=(Hr["zh-CN"]||{})[e]),r===void 0)return e;if(t)for(let[i,o]of Object.entries(t))r=r.replace(new RegExp(`\\{${i}\\}`,"g"),o);return r}function MC(){return dn?.value||"zh-CN"}function Bi(e){Hr[e]&&(dn&&(dn.value=e),localStorage.setItem("locale",e),document.documentElement.setAttribute("lang",e))}function PC(){let e=localStorage.getItem("locale");return e&&Hr[e]?e:(navigator.language||navigator.userLanguage||"").startsWith("en")?"en":"zh-CN"}function Mf(e,t){return Hr=t,dn=Vue.ref(PC()),document.documentElement.setAttribute("lang",dn.value),e.config.globalProperties.$t=ut,e.config.globalProperties.$locale=dn,e.provide("t",ut),e.provide("locale",dn),{t:ut,setLocale:Bi,getLocale:MC,locale:dn}}var dn,Hr,un=F(()=>{dn=null,Hr={}});function Wr(e){return e?.capabilityMetadataProvided!==!0?!0:Array.isArray(e.capabilities)&&e.capabilities.includes(Lc)}var Lc,Hi=F(()=>{Lc="yeaft_plugins"});function pa(e){if(e?.capabilityMetadataProvided!==!0)return!1;let t=Array.isArray(e.capabilities)?e.capabilities:[];return t.includes(Lc)&&t.includes(RC)}var RC,Oc=F(()=>{Hi();RC="yeaft_managed_skills"});function cr(e){if(e==null||e==="")return"claude-code";if(_C.has(e))return e;throw new Error(`Unknown Chat runtime provider: ${e}`)}function Bs(e){if(typeof e!="string"||!e)throw new Error("Chat catalog key requires conversationId");return`chat:${e}`}function Rs(e,t){if(typeof e!="string"||!e||typeof t!="string"||!t)throw new Error("Yeaft catalog key requires agentId and sessionId");return`yeaft:${e}:${t}`}function Wi(e,t,s={}){let n=e.sessionCatalog.map(i=>({...i})),r=Array.isArray(e.hiddenSessionCatalog)?e.hiddenSessionCatalog.map(i=>({...i})):null;return e.sessionCatalogMutationRequests[t]={previousCatalog:n,previousHiddenCatalog:r,...s},n}function Pf(e,t){let s=t?.requestId?e.sessionCatalogMutationRequests[t.requestId]:null;return s?(delete e.sessionCatalogMutationRequests[t.requestId],t.ok!==!0&&(e.sessionCatalog=s.previousCatalog,Array.isArray(s.previousHiddenCatalog)&&(e.hiddenSessionCatalog=s.previousHiddenCatalog)),!0):!1}function Rf(e,t,s="recent",n=null){let r=Bs(t),i=e.chatHistoryRequests[r]||{},o=Number(i.generation||0)+1,a=`chat_history_${o}_${crypto.randomUUID()}`;return e.chatHistoryRequests[r]={requestId:a,catalogKey:r,generation:o,mode:s,cursor:n,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0),loading:!0,cancelled:!1,error:null},a}function Fc(e,t,s,n){let r=e.chatHistoryRequests[t];return r?.requestId!==s?!1:(e.chatHistoryRequests[t]={...r,loading:!1,cancelled:!0,error:n},!0)}var _C,Ur=F(()=>{_C=new Set(["claude-code","copilot"])});function jr(e,t,s=""){Ui&&(clearTimeout(Ui),Ui=null),e.sessionLoading=t,e.sessionLoadingText=s,t&&(Ui=setTimeout(()=>{e.sessionLoading&&(e.sessionLoading=!1,e.sessionLoadingText=""),Ui=null},EC))}function Hs(e){jr(e,!1)}function _f(e){if(e.currentConversation){e.pendingRecovery=null;return}let t=e.lastUsedSession,s=e.lastUsedAgent;if(t&&t.sessionId&&s){let n=e.agents.find(r=>r.id===s&&r.online);n&&(e.pendingRecovery={agentId:s,agentName:n.name,sessionId:t.sessionId,workDir:t.workDir,provider:cr(t.provider),catalogKey:t.catalogKey||null},e.recoveryDismissed=!1)}}function Ef(e){if(!e.pendingRecovery)return;let{agentId:t,sessionId:s,workDir:n,provider:r}=e.pendingRecovery;e.selectAgent(t),setTimeout(()=>{e.resumeConversation(s,n,t,{provider:cr(r)}),e.pendingRecovery=null,e.recoveryDismissed=!1},500)}function $f(e){e.recoveryDismissed=!0,e.pendingRecovery=null}function Df(e,t){let s=e.conversations.find(n=>n.id===t);s&&(e.activeConversations=[t],e.currentWorkDir=s.workDir,e.messagesMap[t]?.length>0||(s.claudeSessionId?(e.messagesMap[t]=[],jr(e,!0,ut("chat.session.loadingHistory")),e.sendWsMessage({type:"resume_conversation",agentId:s.agentId||e.currentAgent,claudeSessionId:s.claudeSessionId,workDir:s.workDir,conversationId:t})):(e.messagesMap[t]=[],e.requestChatHistory?.(t,{mode:"recent",turns:5}))),e.sendWsMessage({type:"select_conversation",conversationId:t}))}function Lf(e){if(e.panels.length>0)return;let t=localStorage.getItem("panels");if(!t)return;let s;try{s=JSON.parse(t)}catch{localStorage.removeItem("panels");return}if(!Array.isArray(s)||s.length<2){localStorage.removeItem("panels");return}let n=new Set(e.conversations.map(i=>i.id)),r=s.filter(i=>i&&typeof i.id=="string").map(i=>({id:i.id,conversationId:i.conversationId&&n.has(i.conversationId)?i.conversationId:null,activeRightPanel:i.activeRightPanel||null}));if(r.length<2){localStorage.removeItem("panels");return}e.panels=r,e.activePanelId=r[0]?.id||null;for(let i of r)i.conversationId&&(e.activeConversations.includes(i.conversationId)||e.activeConversations.push(i.conversationId),e.messagesMap[i.conversationId]||(e.messagesMap[i.conversationId]=[]),e.messagesMap[i.conversationId].length||e.requestChatHistory?.(i.conversationId,{mode:"recent",turns:5}))}function dr(e){if(e.currentAgent){if(localStorage.setItem("lastUsedAgent",e.currentAgent),localStorage.setItem("lastViewedConversation",e.currentConversation||""),e.lastViewedConversation=e.currentConversation,e.currentConversation){let t=e.conversations.find(s=>s.id===e.currentConversation);if(t?.claudeSessionId&&t?.workDir){let s=cr(t.provider),n={sessionId:t.claudeSessionId,workDir:t.workDir,agentId:t.agentId||e.currentAgent,provider:s,catalogKey:Bs(t.id),version:2};localStorage.setItem("lastUsedSession",JSON.stringify(n)),localStorage.setItem("lastViewedSessionRef",JSON.stringify(n)),e.lastUsedSession=n}}e.lastUsedAgent=e.currentAgent,e.panels.length>0?localStorage.setItem("panels",JSON.stringify(e.panels)):localStorage.removeItem("panels")}}function Of(e){return e.lastUsedSession}function Ff(e){localStorage.removeItem("lastUsedAgent"),localStorage.removeItem("lastUsedSession"),localStorage.removeItem("lastViewedSessionRef"),localStorage.removeItem("lastViewedConversation"),localStorage.removeItem("panels"),localStorage.removeItem("splitPanesSaved"),e.lastUsedAgent=null,e.lastUsedSession=null,e.lastViewedConversation=null}function qf(e,t,s){if(!e.currentAgent){e.historySessionsLoading=!1;return}if(!t){e.historySessions=[],e.historySessionsLoading=!1;return}let n=Date.now().toString();e._historySessionsRequestId=n,e.historySessionsLoading=!0,e.historySessions=[],e.sendWsMessage({type:"list_history_sessions",workDir:t,provider:s||"claude-code",requestId:n})}function Vf(e,t){if(!e.currentAgent)return e.foldersLoading=!1,Promise.resolve();e.foldersLoading=!0,e.folders=[];let s=Date.now().toString();return e._foldersRequestId=s,new Promise(n=>{e._foldersResolve&&e._foldersResolve(),e._foldersResolve=n,e.sendWsMessage({type:"list_folders",provider:t||"claude-code",requestId:s}),setTimeout(()=>{e._foldersResolve===n&&(e._foldersResolve(),e._foldersResolve=null,e.foldersLoading=!1)},1e4)})}function Nf(e,t,s){if(!t)return e.foldersLoading=!1,Promise.resolve();e.foldersLoading=!0,e.folders=[];let n=Date.now().toString();return e._foldersRequestId=n,new Promise(r=>{e._foldersResolve&&e._foldersResolve(),e._foldersResolve=r,e.sendWsMessage({type:"list_folders",agentId:t,provider:s||"claude-code",requestId:n}),setTimeout(()=>{e._foldersResolve===r&&(e._foldersResolve(),e._foldersResolve=null,e.foldersLoading=!1)},1e4)})}function Bf(e,t,s){if(!t)return Promise.resolve([]);let n=`models-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return e._modelsRequestId=n,e.providerModelsLoading=!0,new Promise(r=>{e._modelsResolve&&e._modelsResolve([]),e._modelsTimeout&&clearTimeout(e._modelsTimeout),e._modelsResolve=r,e.sendWsMessage({type:"list_models",agentId:t,provider:s||"claude-code",requestId:n}),e._modelsTimeout=setTimeout(()=>{e._modelsResolve===r&&(e._modelsResolve([]),e._modelsResolve=null,e.providerModelsLoading=!1),e._modelsTimeout=null},1e4)})}function Hf(e,t,s,n){if(!t){e.historySessionsLoading=!1;return}if(!s){e.historySessions=[],e.historySessionsLoading=!1;return}let r=Date.now().toString();e._historySessionsRequestId=r,e.historySessionsLoading=!0,e.historySessions=[],e.sendWsMessage({type:"list_history_sessions",agentId:t,workDir:s,provider:n||"claude-code",requestId:r})}async function Wf(e,t=20){if(Xe().isAuthenticated){e.globalSessionsLoading=!0;try{let n=await fetch(`/api/sessions?limit=${t}`);if(n.ok){let r=await n.json();e.globalSessions=r.sessions||[]}}catch{}finally{e.globalSessionsLoading=!1}}}async function Uf(e,t){if(!Xe().isAuthenticated)return!1;try{if((await fetch(`/api/sessions/${t}`,{method:"DELETE"})).ok)return e.globalSessions=e.globalSessions.filter(r=>r.id!==t),!0}catch{}return!1}function qc(e,t){return t.agentId?e.agents.find(s=>s.id===t.agentId):t.agentName?e.agents.find(s=>s.name===t.agentName):null}function jf(e,t){let s=qc(e,t);return s&&s.online}var EC,Ui,ur=F(()=>{ss();un();Ur();EC=3e4,Ui=null});function Vc(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e){let t=Date.parse(e);if(Number.isFinite(t))return t}return 0}function fa(e){return!e||typeof e!="object"?0:Vc(e.lastMessageAt)||Vc(e.updatedAt)||Vc(e.createdAt)||0}function Nc(e,t){let s=fa(t)-fa(e);return s!==0?s:String(e?.id||"").localeCompare(String(t?.id||""))}function ga(e){return[...Array.isArray(e)?e:[]].sort(Nc)}var ji=F(()=>{});function pr(e,t){return e.sidebarCatalogAuthGeneration===t.authGeneration&&e.sidebarCatalogOwnerId===(t.userId||null)}function ha(e){return e._hasHandledAgentList===!0&&e._hasHandledYeaftSessionHydrate===!0&&!e.yeaftSessionHydrateError}function DC(e,t=[]){let s=new Map((e.agents||[]).map(o=>[o.id,o])),n=new Map;for(let o of e.sessionProjects||[])for(let a of o.members||[])n.set(`${a.agentId}${a.sessionId}`,o.id);let r=[];for(let o of ga(e.conversations)){if(!o?.id||!o.agentId||o.type==="yeaft"||o.id.startsWith("yeaft-"))continue;let a=o.provider||"claude-code";["claude-code","copilot"].includes(a)&&r.push({...o,catalogKey:Bs(o.id),runtimeProvider:a,routeRef:{runtimeProvider:a,agentId:o.agentId,sessionId:o.id},title:e.customConversationTitles?.[o.id]||e.conversationTitles?.[o.id]||o.title||o.id,pinned:o.pinned===!0||(e.pinnedSessions||[]).includes(o.id)})}for(let o of t)!o?.id||!o.agentId||o.hidden||r.push({...o,catalogKey:Rs(o.agentId,o.id),runtimeProvider:"yeaft",routeRef:{runtimeProvider:"yeaft",agentId:o.agentId,sessionId:o.id},title:o.name||o.id,projectId:n.get(`${o.agentId}${o.id}`)||null,pinned:!!o.pinned,sortRank:Number.isFinite(o.sortOrder)?o.sortOrder:null});let i=new Set;return r.filter(o=>o.hidden||i.has(o.catalogKey)?!1:(i.add(o.catalogKey),!0)).map((o,a)=>({...o,agentName:o.agentName||s.get(o.routeRef.agentId)?.name||"",availability:s.get(o.routeRef.agentId)?.online?"online":"offline",workDir:o.workDir||"",hidden:!1,sortRank:a,metadataUpdatedAt:o.metadataUpdatedAt||o.updatedAt||o.createdAt||null}))}function Ki(e,t=[]){return e.sessionCatalogProtocolSupported===!1&&ha(e)?DC(e,t):e.sessionCatalog.length>0||e.sessionCatalogLoaded?e.sessionCatalog:e.sidebarLegacySessionCatalog}function Kf(e,t=[]){return e.connectionState!=="connected"?!0:e.sessionCatalogProtocolSupported===!1?!ha(e):e.sessionCatalogProtocolSupported!==!0||!e.sessionCatalogLoaded}var ma=F(()=>{Ur();ji()});function va(e){e.sessionCatalog=[],e.hiddenSessionCatalog=[],e.sessionProjects=[],e.activeCatalogKey=null,e.sidebarLegacySessionCatalog=[],e.sessionCatalogLoaded=!1,e.sessionCatalogProtocolSupported=null,e.scheduledTaskProtocolSupported=!1}function zf(){typeof window>"u"||typeof window.dispatchEvent!="function"||typeof CustomEvent>"u"||window.dispatchEvent(new CustomEvent("browser-runtime-transport-reset"))}function Gf(e){return e?.code===1008&&String(e.reason||"").toLowerCase().includes("authentication")}function Yf(e){let t=zi;zi=[];for(let{resolve:s,reject:n,timer:r}of t)clearTimeout(r),e?s():n(new Error("WebSocket reconnect failed"))}function Zf(e,t){if(!e.ws||e.ws.readyState!==WebSocket.OPEN)return!1;if(e.currentView==="yeaft"&&LC.has(t.type)){let s=t.conversationId;if(!s||typeof s=="string"&&s.startsWith("yeaft-")||s===e.yeaftConversationId)return!1}try{if(e.serverEncryptionRequired&&e.sessionKey){let s=hf(t,e.sessionKey);e.ws.send(JSON.stringify(s))}else e.ws.send(JSON.stringify(t));return!0}catch{return!1}}function Gi(e,t=1e4){return e.ws&&e.ws.readyState===WebSocket.OPEN?Promise.resolve():new Promise((s,n)=>{let r=setTimeout(()=>{zi=zi.filter(i=>i.resolve!==s),n(new Error("WebSocket reconnect timeout"))},t);zi.push({resolve:s,reject:n,timer:r}),(!e.ws||e.ws.readyState!==WebSocket.CONNECTING)&&(e.reconnectAttempts=0,e.connect())})}function Xf(e,t){try{let s=JSON.parse(t);return e.sessionKey&&vf(s)?mf(s,e.sessionKey):s}catch{return null}}function Qf(e,t,s,n){for(let[r,i]of e._sessionCrudPending?.entries?.()||[])Number(i?.connectionGeneration||0)===Number(t||0)&&(i.resolve?.({ok:!1,requestId:r,error:{code:s,message:n}}),e._sessionCrudPending.delete(r))}function Jf(e){let t=Xe(),s=location.protocol==="https:"?"wss:":"ws:";e.reconnectTimer&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=null);let n=t.getActiveToken?.()||t.token||null,r=t.authGeneration,i=t.userId||null;if(e.ws&&e.ws.readyState===WebSocket.CONNECTING&&e._wsAuthToken===n&&e._wsAuthGeneration===r&&e.sidebarCatalogOwnerId===i)return;let o=pr(e,t);o&&e.sessionCatalogProtocolSupported===!1?e.sidebarLegacySessionCatalog=Ki(e,typeof window<"u"?(window.Pinia?.useSessionsStore?.()||window.__useSessionsStore?.())?.sessionList||[]:[]).map(u=>({...u})):(!o||e.sessionCatalogProtocolSupported===!0)&&(e.sidebarLegacySessionCatalog=[]),!e._sidebarCatalogAuthUnsubscribe&&t.$subscribe&&(e._sidebarCatalogAuthUnsubscribe=t.$subscribe(()=>{pr(e,t)||(va(e),e.sessionCatalogMutationRequests={})},{detached:!0,flush:"sync"})),clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=null,e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionInventoryCompleteSupported=null,e.workbenchRouteProtocolSupported=null,e.workCenterWorkbenchProtocolSupported=null,e.browserRuntimeProtocolSupported=null,e.browserRuntimeSetupProtocolSupported=null,e.browserRuntimeServerEnabled=!1,zf(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!1,e.pendingAgentSelection=null,e.agentSwitching=!1,e.ws&&(Qf(e,e.chatHistoryConnectionGeneration,"connection_changed","WebSocket connection changed"),e.ws.onopen=null,e.ws.onmessage=null,e.ws.onclose=null,e.ws.close(),e.ws=null),e.connectionState=e.reconnectAttempts>0?"reconnecting":"connecting",e.serverEncryptionRequired=!0,e.chatHistoryRequestIdSupported=null;let a=Number(e.chatHistoryConnectionGeneration||0)+1;e.chatHistoryConnectionGeneration=a;for(let[u,p]of Object.entries(e.projectMutationRequests||{}))p?.resolve?.({ok:!1,requestId:u,error:{code:"connection_changed"}});e.projectMutationRequests={},o||(e.sessionProjects=[]);for(let[u,p]of Object.entries(e.chatHistoryRequests||{}))p?.loading&&(e.chatHistoryRequests[u]={...p,loading:!1,cancelled:!0,error:"connection_changed"});let l=Object.values(e.sessionCatalogMutationRequests||{});l.length>0&&(e.sessionCatalog=l[0].previousCatalog,Array.isArray(l[0].previousHiddenCatalog)&&(e.hiddenSessionCatalog=l[0].previousHiddenCatalog),e.sessionCatalogMutationRequests={}),e.sessionCatalogLoaded=!1,e.sessionCatalogProtocolSupported=null,e.scheduledTaskProtocolSupported=!1,o||va(e),e.sidebarCatalogOwnerId=i,e.sidebarCatalogAuthGeneration=r,e._wsAuthToken=n,e._wsAuthGeneration=r;let c=`${s}//${location.host}?type=web`;n&&(c+=`&token=${encodeURIComponent(n)}`);let d=new WebSocket(c);e.ws=d,d.onopen=()=>{if(d===e.ws){e.connectionState="connected",e.reconnectAttempts=0,e.startHeartbeat();try{d.send(JSON.stringify({type:"client_hello",plaintextOk:!0,sessionCatalogProtocol:1,workbenchRouteProtocol:1,workCenterWorkbenchProtocol:1,browserRuntimeProtocol:1,browserRuntimeSetupProtocol:1}))}catch{}Yf(!0)}},d.onmessage=u=>{if(d!==e.ws)return;let p=e.parseWsMessage(u.data);if(p&&(r!==t.authGeneration||i!==(t.userId||null))&&!(p.type==="auth_result"&&p.success===!1)){va(e);return}p&&(p.type,e.handleMessage({...p,_wsAuthToken:n,_wsAuthGeneration:r}))},d.onclose=u=>{if(d!==e.ws){Gf(u)&&t.handleAuthFailure?.(void 0,n,r);return}e.authenticated=!1,e.sessionCatalogProtocolSupported===!1&&(e.sidebarLegacySessionCatalog=Ki(e,typeof window<"u"?(window.Pinia?.useSessionsStore?.()||window.__useSessionsStore?.())?.sessionList||[]:[]).map(f=>({...f}))),e.sessionCatalogLoaded=!1,pr(e,t)||va(e),clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=null,e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionInventoryCompleteSupported=null,e.workbenchRouteProtocolSupported=null,e.workCenterWorkbenchProtocolSupported=null,e.browserRuntimeProtocolSupported=null,e.browserRuntimeSetupProtocolSupported=null,e.browserRuntimeServerEnabled=!1,zf(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null;for(let f of Object.values(e._workCenterFeaturePending||{}))clearTimeout(f.timer),f.reject(new Error("WebSocket disconnected"));e._workCenterFeaturePending={},Qf(e,a,"agent_offline","WebSocket disconnected"),e.pendingAgentSelection=null,e.agentSwitching=!1;let p=e.connectionState==="updating";if(e.connectionState=p?"updating":"disconnected",e.stopHeartbeat(),Hs(e),Gf(u)){t.handleAuthFailure?.(void 0,n,r),e.reconnectAttempts=0,Yf(!1);return}if(e._yeaftReconnectCatchUpPending=!0,p){e.reconnectAttempts=0,e.reconnectTimer=setTimeout(()=>{e.connect()},2e3);return}e.scheduleReconnect()},e.ws.onerror=u=>{}}function eg(e){if(e.reconnectAttempts>=e.maxReconnectAttempts){e.connectionState="disconnected";return}let t=Math.min(1e3*Math.pow(2,e.reconnectAttempts),3e4);e.reconnectAttempts++,e.connectionState="reconnecting",e.reconnectTimer=setTimeout(()=>{e.connect()},t)}function tg(e){e.reconnectAttempts=0,e.connect()}function sg(e){e.stopHeartbeat(),e._lastPongAt=Date.now(),e.heartbeatTimer=setInterval(()=>{if(e.ws&&e.ws.readyState===WebSocket.OPEN){if(Date.now()-e._lastPongAt>45e3){e.ws.close(4e3,"Heartbeat timeout");return}try{e.sendWsMessage({type:"ping"})}catch{}}},25e3)}function ng(e){e.heartbeatTimer&&(clearInterval(e.heartbeatTimer),e.heartbeatTimer=null)}function rg(e){e._visibilityHandlerInstalled||(e._visibilityHandlerInstalled=!0,document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")if(!e.ws||e.ws.readyState!==WebSocket.OPEN)e.reconnectAttempts=0,e.connect();else try{e.sendWsMessage({type:"ping"});let t=e._lastPongAt;setTimeout(()=>{e._lastPongAt===t&&e.ws&&e.ws.close(4001,"Visibility resume timeout")},3e3)}catch{e.reconnectAttempts=0,e.connect()}}))}var zi,LC,Bc=F(()=>{ss();ca();ur();ma();zi=[];LC=new Set(["sync_messages","refresh_conversation","select_conversation","cancel_execution","update_conversation_settings","ask_user_answer"])});function og(e){e.pluginStateGeneration=Number(e.pluginStateGeneration||0)+1;let t=ya.get(e);for(let s of t?.values()||[])s.cancelled=!0,s.intents=[];for(let s of Object.values(e._pluginPending||{}))clearTimeout(s.timer),s.finish?s.finish({stale:!0}):s.resolve?.({stale:!0,error:"Authentication changed"});e._pluginPending={},ya.delete(e),e.pluginConfigByAgent={},e.pluginCatalogByKey={},e.pluginCatalogRequestByKey={},e.managedSkillRequestByKey={},e.pluginCenterAgentId=null,e.pluginCenterOpen=!1}function gn(e,t){let s=ya.get(e);return s||ya.set(e,s=new Map),s.has(t)||s.set(t,{fence:0,intents:[],task:null}),s.get(t)}function ns(e){let t={};for(let s of ig)Array.isArray(e?.[s])&&(t[s]=[...new Set(e[s])]);return t}function pn(e,t){return e.pluginConfigByAgent?.[t]||{agentId:t,plugins:{},optimistic:{},draft:{},loaded:!1,saving:!1,loading:!1,error:null,errorAgentId:null,retryIntent:null,uncertain:!1}}function On(e,t,s){let n={...pn(e,t),...s,agentId:t};return e.pluginConfigByAgent={...e.pluginConfigByAgent,[t]:n},n}function Yi(e){let t=e?.agents||[],s=new Set(t.map(r=>r.id)),n=Object.values(e?.pluginConfigByAgent||{}).filter(r=>r.loaded&&r.agent?.id&&!s.has(r.agent.id)).map(r=>({...r.agent,online:!1}));return[...t,...n]}function ka(e,t){if(!t)return"no agent";let s=e.agents?.find(n=>n?.id===t);return Wr(s)?!s?.online||!e.ws||e.ws.readyState!==1?"Agent is offline or disconnected":null:"The selected Agent does not support Plugins; upgrade and restart the Agent"}function ba(e,t){let s=ns(e);for(let n of t){if(n.kind==="replace"){s=ns(n.plugins);continue}if(n.enabled&&!Array.isArray(s[n.field]))continue;let r=new Set(Array.isArray(s[n.field])?s[n.field]:n.catalogNames);n.enabled?r.add(n.itemName):r.delete(n.itemName),s[n.field]=[...r]}return s}function fn(e,t,s,n=!1){let r=gn(e,t),i=pn(e,t);return On(e,t,{optimistic:ns(i.plugins),draft:ns(i.plugins),saving:!1,loading:!1,error:s,errorAgentId:t,errorOperation:r.intents.length?"save":"load",retryIntent:r.intents.length?{agentId:t,intents:r.intents.map(o=>({...o}))}:null,uncertain:n||i.uncertain})}function ag(e,t,s,n){let r=gn(e,t),i=++r.fence,o=ka(e,t);if(o)return Promise.resolve({error:o,uncertain:!1,fence:i});let a=`plugins-${s}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`;return new Promise(l=>{let c=u=>{let p=e._pluginPending?.[a];p&&(clearTimeout(p.timer),delete e._pluginPending[a],l({...u,fence:i}))},d=setTimeout(()=>c({error:"timeout",uncertain:s==="save"}),Hc);e._pluginPending[a]={kind:s,agentId:t,timer:d,fence:i,socket:e.ws,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0),expiresAt:Date.now()+Hc,finish:c};try{e.sendWsMessage({type:s==="save"?"update_yeaft_plugins":"get_yeaft_plugins",agentId:t,requestId:a,...s==="save"?{plugins:ns(n)}:{}})||c({error:"Agent is offline or disconnected",uncertain:!1})}catch(u){c({error:u?.message||String(u),uncertain:s==="save"})}})}function lg(e,t){let s=t.requestId?e._pluginPending?.[t.requestId]:null,n=t.type==="yeaft_plugins_updated"?"save":"config";if(!s||s.kind!==n||s.agentId!==t.agentId||Date.now()>=s.expiresAt||s.socket!==e.ws||s.connectionGeneration!==Number(e.chatHistoryConnectionGeneration||0))return!1;if(s.fence!==gn(e,t.agentId).fence)return s.finish({stale:!0}),!1;let r=t.plugins&&typeof t.plugins=="object"&&!Array.isArray(t.plugins);return s.finish({plugins:r?ns(t.plugins):void 0,error:t.error||(r?null:"Invalid plugin configuration reply"),uncertain:!t.error&&!r&&n==="save"}),!0}function Wc(e,t){let s=gn(e,t);return s.task?s.task:cg(e,t)}async function cg(e,t){let s=gn(e,t),n=e.agents?.find(l=>l?.id===t);On(e,t,{loading:!0,...n?{agent:{id:n.id,name:n.name,capabilityMetadataProvided:n.capabilityMetadataProvided,capabilities:Array.isArray(n.capabilities)?[...n.capabilities]:[]}}:{}});let r=await ag(e,t,"config");if(s.cancelled)return{stale:!0};if(r.stale||r.fence!=null&&r.fence!==s.fence)return{...pn(e,t),stale:!0};if(r.error)return fn(e,t,r.error);let i=pn(e,t),o=ns(r.plugins),a=s.task?ba(o,s.intents):o;return On(e,t,{plugins:o,optimistic:a,draft:ns(a),loading:!1,loaded:!0,at:Date.now(),...s.intents.length&&!s.task?{}:{error:null,errorAgentId:null,errorOperation:null,uncertain:!1},...i.retryIntent?{retryIntent:i.retryIntent}:{}})}async function FC(e,t,s){let n=gn(e,t),r=e.ws,i=Number(e.chatHistoryConnectionGeneration||0);if(await Promise.resolve(),n.cancelled)return{stale:!0};if(s||!pn(e,t).loaded){let o=await cg(e,t);if(n.cancelled)return{stale:!0};if(o.error)return fn(e,t,o.error,pn(e,t).uncertain)}for(;n.intents.length;){if(n.stopError||r!==e.ws||i!==Number(e.chatHistoryConnectionGeneration||0))return fn(e,t,n.stopError||"Connection changed; retry required",!0);let o=n.intents.length,a=ba(pn(e,t).plugins,n.intents.slice(0,o));On(e,t,{optimistic:a,draft:ns(a),loading:!1});let l=await ag(e,t,"save",a);if(n.cancelled)return{stale:!0};if(l.error||l.stale)return fn(e,t,l.error||"Plugin configuration changed; retry required",l.uncertain);n.intents.splice(0,o);let c=ns(l.plugins),d=ba(c,n.intents);On(e,t,{plugins:c,optimistic:d,draft:ns(d),loaded:!0,at:Date.now(),error:null,errorAgentId:null,errorOperation:null,retryIntent:null,uncertain:!1})}return On(e,t,{saving:!1,loading:!1})}function dg(e,t,s=!1){let n=gn(e,t);n.stopError=null,On(e,t,{saving:!0});let r=FC(e,t,s).catch(i=>n.cancelled?{stale:!0}:fn(e,t,i?.message||String(i),!0)).finally(()=>{n.task===r&&(n.task=null)});return n.task=r,r}function ug(e,t,s){let n=gn(e,t),r=pn(e,t);n.task&&!r.saving&&!n.intents.length&&(n.task=null),n.intents.push(s),n.task||n.fence++;let i=ka(e,t);if(i){if(n.task){n.stopError=i;let a=fn(e,t,i,!0);return Promise.resolve(a)}return Promise.resolve(fn(e,t,i))}if(!n.task&&r.error&&r.retryIntent)return Promise.resolve(fn(e,t,r.error,r.uncertain));let o=ba(r.plugins,n.intents);return On(e,t,{optimistic:o,draft:ns(o)}),n.task||dg(e,t,r.loading)}function pg(e,t,s,n,r,i){if(!ig.includes(t)||typeof s!="string"||!s)return Promise.resolve({...pn(e,i),error:"Invalid plugin selection"});let o=(Array.isArray(r)?r:[]).map(a=>typeof a=="string"?a:t==="skills"?a?.name:a?.id).filter(a=>typeof a=="string"&&a);return ug(e,i,{kind:"toggle",field:t,itemName:s,enabled:!!n,catalogNames:o})}function fg(e,t,s){return ug(e,s,{kind:"replace",plugins:ns(t)})}function gg(e,t){let s=gn(e,t);if(s.task)return s.task;let n=ka(e,t);return n?Promise.resolve(fn(e,t,n)):s.intents.length?dg(e,t,!0):Wc(e,t)}function hg(e,t,s,n=""){let r=ka(e,s);if(r||typeof t!="string"||!t.trim())return Promise.resolve({error:r||"Invalid skill name"});let i=`skill-detail-${Date.now()}-${Math.random().toString(36).slice(2,10)}`;return new Promise(o=>{let a=c=>{clearTimeout(l),delete e._pluginPending[i],o(c)},l=setTimeout(()=>a({error:"timeout"}),Hc);e._pluginPending||(e._pluginPending={}),e._pluginPending[i]={kind:"skill-detail",agentId:s,name:t,finish:a,timer:l,generation:Number(e.pluginStateGeneration||0),socket:e.ws,connectionGeneration:Number(e.chatHistoryConnectionGeneration||0)};try{e.sendWsMessage({type:"yeaft_plugin_catalog",requestId:i,agentId:s,workDir:String(n||"").trim(),skillName:t})||a({error:"Connection unavailable"})}catch(c){a({error:c?.message||String(c)})}})}function mg(e,t){let s=t.requestId?e._pluginPending?.[t.requestId]:null;if(s?.kind!=="skill-detail")return!1;if(t.agentId!==s.agentId)return!0;if(s.generation!==Number(e.pluginStateGeneration||0)||s.socket!==e.ws||s.connectionGeneration!==Number(e.chatHistoryConnectionGeneration||0))return s.finish({stale:!0}),!0;let n=t.skillDetail;return t.error?s.finish({error:String(t.error)}):n?n.name!==s.name||typeof n.content!="string"?s.finish({error:"Invalid skill detail response"}):s.finish({skillDetail:{name:n.name,content:n.content,description:typeof n.description=="string"?n.description:"",trigger:typeof n.trigger=="string"?n.trigger:"",tier:typeof n.tier=="string"?n.tier:"bundled",keywords:Array.isArray(n.keywords)?n.keywords.filter(r=>typeof r=="string"):[],references:Array.isArray(n.references)?n.references.filter(r=>typeof r=="string"):[],templates:Array.isArray(n.templates)?n.templates.filter(r=>typeof r=="string"):[],contentTruncated:n.contentTruncated===!0}}):s.finish({unsupported:!0}),!0}var ya,ig,Hc,wa=F(()=>{Hi();ya=new WeakMap,ig=["tools","skills","mcpServers"],Hc=1e4});function yg(e){return e.scheduledTaskNotificationOwnerId||null}function bg(e){let t=yg(e),s=Uc.get(e);if(s?.owner===t)return s;let n=[];if(t)try{let r=JSON.parse(localStorage.getItem(`yeaft-task-receipts:${t}`)||"[]");Array.isArray(r)&&(n=r.filter(i=>typeof i=="string").slice(-vg))}catch{}return s={owner:t,seen:new Set(n)},Uc.set(e,s),s}function BC(e,t){let s=bg(e);if(s.seen.add(t),s.seen=new Set([...s.seen].slice(-vg)),s.owner)try{localStorage.setItem(`yeaft-task-receipts:${s.owner}`,JSON.stringify([...s.seen]))}catch{}}function jc(e,t){let s=typeof t=="string"&&t?t:null;yg(e)!==s&&(e.scheduledTaskNotificationOwnerId=s,e.scheduledTaskNotifications=[],Uc.delete(e))}function Sa(e,t,s,n){let r=e.agents?.find(o=>o.id===t),i=e.scheduledTaskProtocolSupported!==!0?"scheduled_task_server_unsupported":t?!r?.online||e.ws?.readyState!==1?"agent_offline":r.capabilities?.includes("scheduled_tasks")?n?.trigger?.recurrence?.daysOfMonth&&!r.capabilities.includes("scheduled_task_month_days")?"scheduled_task_month_days_unsupported":null:"scheduled_tasks_unsupported":"missing_agent";return i?{ok:!1,op:s,error:{code:i}}:null}function kg(e,{agentId:t,sessionId:s,task:n,expectedRevision:r}={}){let i=Sa(e,t,"update_task",n);return i?Promise.resolve(i):e.sessionCrudRequest("update_task",{sessionId:s,task:n,expectedRevision:r},{agentId:t})}function wg(e,{agentId:t,sessionId:s}={}){let n=Sa(e,t,"run_task");return n?Promise.resolve(n):e.sessionCrudRequest("run_task",{sessionId:s},{agentId:t})}function Kc(e,t,s){if(typeof s!="string"||!s||typeof t?.sessionId!="string"||!t.sessionId||typeof t.runId!="string"||!t.runId||!VC.has(t.status))return!1;let n=JSON.stringify([s,t.sessionId,t.runId]);if(bg(e).seen.has(n)||e.scheduledTaskNotifications?.some(i=>i.id===n))return!1;let r={id:n,agentId:s,sessionId:t.sessionId,runId:t.runId,taskName:typeof t.taskName=="string"?t.taskName:t.sessionId,status:t.status,error:typeof t.error=="string"?t.error.slice(0,1e3):"",createdAt:t.finishedAt||Date.now()};if(e.scheduledTaskNotifications=[...e.scheduledTaskNotifications||[],r].slice(-NC),e.markYeaftSessionUnread?.(r.sessionId,s),typeof Notification<"u"&&Notification.permission==="granted")try{let i=new Notification(r.taskName,{tag:n});i.onclick=()=>{globalThis.window?.focus?.(),e.openScheduledTaskNotification(r),i.close()}}catch{}return!0}function Ca(e,t,s){for(let n of Array.isArray(t)?t:[]){if(!n?.task||n.task.notify===!1)continue;let r=n.task.lastRun;r&&Kc(e,{sessionId:n.id,taskName:n.name,runId:r.id,status:r.status,error:r.error,finishedAt:r.finishedAt},s||n.agentId)}}function zc(e,t){return e.scheduledTaskNotifications?.some(s=>s.id===t)?(BC(e,t),e.scheduledTaskNotifications=e.scheduledTaskNotifications.filter(s=>s.id!==t),!0):!1}function Sg(e,t){if(!t?.agentId||!t.sessionId)return!1;let s=Rs(t.agentId,t.sessionId),n=e.sidebarSessionCatalog?.find(r=>r.catalogKey===s);return!n||!e.openCatalogSession(n)?!1:(e.workCenterOpen&&e.leaveWorkCenter?.(),e.digitalPersonOpen&&e.leaveDigitalPerson?.(),zc(e,t.id),!0)}var VC,NC,vg,Uc,Gc=F(()=>{Ur();VC=new Set(["completed","failed","interrupted"]),NC=30,vg=300,Uc=new WeakMap});function Ye(e,t){let s=t==null?"__all__":String(t);return e?`${e}${s}`:s}function Qi(e){return typeof e?.entryId=="string"&&e.entryId?`entry:${e.entryId}`:e?.role==="assistant"&&e?.turnId?`live-response:${e.turnId}:${e.speakerVpId||e.vpId||""}`:typeof e?.clientMessageId=="string"&&e.clientMessageId?`client:${e.clientMessageId}`:`message:${e?.messageId||""}`}function Zi(e,t,s){return typeof s!="string"||!s?null:`${Ye(e,t)}message:${s}`}function Fn(e,t,s){return typeof s!="string"||!s?null:`${Ye(e,t)}client:${s}`}var Kr=F(()=>{});function Yc(e){return typeof e=="string"&&e?e:null}function zr(e,t){return e?.yeaftSessionHistoryState?.[t]||null}function _s(e){let t=e?.yeaftActiveSessionFilter||null;if(!t)try{t=(typeof window<"u"&&window.Pinia?.useSessionsStore?.())?.activeSessionId||null}catch{}if(!t)return{agentId:e?.currentAgent||null,sessionId:null,sessionKey:""};let s=(()=>{try{let n=typeof window<"u"&&window.Pinia?.useSessionsStore?.(),r=n?.activeSessionKey?n.sessions?.[n.activeSessionKey]:null;if(r?.id===t&&r.agentId)return r.agentId}catch{}return typeof e?.resolveYeaftSessionAgentId=="function"?e.resolveYeaftSessionAgentId(t):e?.currentAgent||null})();return{agentId:s,sessionId:t,sessionKey:Ye(s,t)}}function Ig(e,{agentId:t,sessionId:s,mode:n="recent",preserveLoaded:r=!1,latestSeq:i=null}={}){if(!t||!s)return null;let o=Ye(t,s),a=zr(e,o)||{},l=Number(a.generation||0)+1,c=`yeaft_history_${l}_${crypto.randomUUID()}`,d={...a,loaded:!!a.loaded,loading:!0,error:null,requestId:c,generation:l,mode:n,background:n==="prefetch",requestedAt:Date.now(),latestSeq:Number.isFinite(i)?i:a.latestSeq??null};return delete d.completionSeen,r||(d.syncingAfterSeq=null,a.loaded||(d.hasMore=!1,d.oldestSeq=null,d.serverOldestFetchedSeq=null,d.serverHasMore=!1,d.gapQueue=[],d.requestedBeforeSeqs=[],d.count=0)),e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[o]:d},fr(e),{sessionKey:o,requestId:c,generation:l,state:d}}function Qc(e,t={}){let s=t.sessionId??t.groupId??null;if(!s)return!1;let n=t.agentId||e?.yeaftSessionAgentById?.[s]||null,r=Ye(n,s),i=zr(e,r),o=Yc(t.requestId);if(!i)return o===null;let a=Yc(i.requestId);return o?o===a:a===null}function Ag(e,t={},s={},n="chunk"){if(!Qc(e,t))return null;let r=t.sessionId??t.groupId??null,i=t.agentId||e?.yeaftSessionAgentById?.[r]||null,o=Ye(i,r),a=zr(e,o)||{},l=Yc(t.requestId),c=l!==null&&n==="completion",d={...a,...c?{}:s,...c?{completionSeen:!0}:{},error:null};return c?(d.loading=!0,d.requestId=l):(d.loading=!1,d.requestId=null,d.completedAt=Date.now(),delete d.completionSeen),e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[o]:d},fr(e),d}function Xi(e,{agentId:t,sessionId:s,requestId:n,error:r="history_load_failed"}={}){if(!t||!s||!n)return!1;let i=Ye(t,s),o=zr(e,i);return!o||o.requestId!==n||!o.loading?!1:(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[i]:{...o,loading:!1,error:r,requestId:null,completedAt:Date.now()}},fr(e),!0)}function fr(e){let{sessionKey:t}=_s(e),s=t?zr(e,t):null;return e.yeaftLoadingMoreHistory=!!s?.loading&&s?.mode!=="prefetch",e.yeaftHistoryLoadError=s?.error||null,e.yeaftHasMoreHistory=!!s?.hasMore,e.yeaftOldestLoadedSeq=Number.isFinite(s?.serverOldestFetchedSeq)?s.serverOldestFetchedSeq:Number.isFinite(s?.oldestSeq)?s.oldestSeq:null,s}function Zc(e){let{sessionKey:t}=_s(e);return t?zr(e,t):null}var Cg,Ia=F(()=>{Kr();Cg=15e3});function Xc(e){return e?.sessionId??e?.groupId??null}function ed(e){for(let t of[e?.persistedMessageId,e?.messageId,e?.id]){if(typeof t!="string")continue;let s=t.match(/^(m\d+)/);if(s)return s[1]}return null}function Ot(e){return e?.isStreaming||e?.status==="pending"?!1:Number.isFinite(e?.seq)||!!ed(e)||e?.isHistory===!0&&!e?.clientMessageId}function Aa(e){if(Number.isFinite(e?.seq))return Number(e.seq);let s=ed(e)?.match(/^m(\d+)$/);if(s)return Number(s[1]);let n=typeof e?.id=="string"?e.id.match(/^(\d+)/):null;return n?Number(n[1]):null}function WC(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}function UC(e){return e?e.isStreaming||e.status==="pending"||e.type==="tool-use"&&(e.askPending||!e.hasResult&&(e.toolName==="AskUser"||e.toolName==="AskUserQuestion"))?!0:e.type!=="user"||!e.clientMessageId?!1:!e.dbMessageId&&!ed(e):!1}function jC(e){let t=[],s=null;for(let n of e)(n?.type==="user"||!s)&&(s={rows:[],protected:!1},t.push(s)),s.rows.push(n),UC(n)&&(s.protected=!0);return t}function Tg(e,{conversationId:t,agentId:s=null,sessionId:n=null,limits:r=xg}={}){let i=e?.messagesMap?.[t];if(!Array.isArray(i)||i.length===0||!s||!n)return{evictedRows:0,keptRows:0};let o=b=>Xc(b)===n,a=i.filter(o),l=jC(a);if(l.length===0)return{evictedRows:0,keptRows:0};let c=l.filter(b=>b.protected),d=new Set(c),u=Number.isFinite(r.maxTurnsPerSession)?Math.max(0,Math.floor(r.maxTurnsPerSession)):Jc,p=Math.max(0,u-c.length);for(let b=l.length-1;b>=0&&p>0;b-=1){let S=l[b];d.has(S)||(d.add(S),p-=1)}let f=new Set(l.filter(b=>d.has(b)).flatMap(b=>b.rows)),g=a.filter(b=>!f.has(b));if(g.length===0)return{evictedRows:0,keptRows:f.size};let v=i.filter(b=>!o(b)||f.has(b));i.splice(0,i.length,...v);let h=Ye(s,n),m=e.yeaftHistoryCacheState?.[h]||null,y=Mg(a.filter(b=>f.has(b))),w=JSON.stringify(m?.ranges||[])===JSON.stringify(y.ranges)?Number(m?.rangeEpoch)||0:(Number(m?.rangeEpoch)||0)+1;if(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[h]:{...m||{},agentId:s,sessionId:n,conversationId:t,lastAccessed:Date.now(),rangeEpoch:w,...y}},g.some(Ot)){let b=y.ranges[0]?.startSeq??null,S=e.yeaftSessionHistoryState?.[h]||{};e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[h]:{...S,serverOldestFetchedSeq:b,oldestSeq:b,serverHasMore:b!==null,hasMore:b!==null,gapTraversalInitialized:!1,gapQueue:[],requestedBeforeSeqs:[],completedHistoryWorkKeys:[],pendingPageKind:null,pendingPageBeforeSeq:null,pendingGapStopAtSeq:null,pendingCacheEpoch:null,pendingHistoryWorkKey:null,paginationError:null,count:y.rowCount}};let C=_s(e);C.agentId===s&&C.sessionId===n&&fr(e)}return{evictedRows:g.length,keptRows:f.size}}function KC(e){let t=[],s=null;for(let n of e)Ot(n)&&((n?.type==="user"||!s)&&(s=[],t.push(s)),s.push(n));return t}function zC(e,t){let s=Number.isFinite(t.maxTurnsPerSession)?Math.max(0,Math.floor(t.maxTurnsPerSession)):Jc,n=KC(e),r=new Set(n.slice(-s).flat());for(let i of n)if(i.some(o=>o?._historyWindowDetached===!0))for(let o of i)r.add(o);return r}function GC(e){let t=Array.from(new Set(e.map(Aa).filter(Number.isFinite))).sort((n,r)=>n-r),s=[];for(let n of t){let r=s.at(-1);r&&n<=r.endSeq+1?r.endSeq=n:s.push({startSeq:n,endSeq:n})}return s}function Mg(e){let t=e.filter(Ot);return{rowCount:t.length,byteCount:t.reduce((s,n)=>s+WC(n),0),ranges:GC(t)}}function YC(e,t,s){let n=new Set((t||[]).map(r=>r?.stableKey).filter(Boolean));if(n.size!==0)for(let r of e)r?.stableKey&&n.has(r.stableKey)&&(r._historyCacheTouchedAt=s)}function QC(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o}){let a=e.messagesMap?.[t]||[],l=a.filter(y=>Xc(y)===n);YC(l,r,i);let c=zC(l,o),d=l.filter(y=>!Ot(y)||c.has(y)),u=new Set(d),p=a.filter(y=>Xc(y)!==n||u.has(y));a.splice(0,a.length,...p);let f=Mg(d),g=Ye(s,n),v=e.yeaftHistoryCacheState?.[g]||null,m=JSON.stringify(v?.ranges||[])===JSON.stringify(f.ranges)?Number(v?.rangeEpoch)||0:(Number(v?.rangeEpoch)||0)+1;e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[g]:{agentId:s,sessionId:n,conversationId:t,lastAccessed:i,rangeEpoch:m,...f}}}function Pg(e,t,s,n=Date.now()){if(!t||!s)return;let r=Ye(t,s),i=e.yeaftHistoryCacheState?.[r];i&&(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[r]:{...i,lastAccessed:n}})}function td(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r=[],now:i=Date.now(),limits:o=xg}={}){!e||!t||!s||!n||QC(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o})}var Jc,xg,xa=F(()=>{Kr();Ia();Jc=500,xg=Object.freeze({maxTurnsPerSession:Jc})});function hn(e){return e?.sessionId??e?.groupId??null}function _g(e){let t=e?.stableKey??e?.uiKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function ZC(e,t){if(e?.type!=="assistant"||t?.type!=="assistant"||e.presentation||t.presentation||hn(e)!==hn(t)||e.isHistory===!0&&!e.isStreaming||t._hasPersistedTurnId!==!0||!e.turnId||!t.turnId||e.turnId!==t.turnId)return!1;let s=e.speakerVpId||e.vpId||"",n=t.speakerVpId||t.vpId||"";if(s&&n&&s!==n)return!1;let r=e.threadId||"",i=t.threadId||"";if(r&&i&&r!==i)return!1;let o=typeof e.content=="string"?e.content:"",a=typeof t.content=="string"?t.content:"";return!!o&&!!a&&(a.startsWith(o)||o.startsWith(a))}function Eg(e,t){let s=e.uiKey||t.uiKey||null;return Object.assign(e,t),s&&(e.uiKey=s),Ot(t)&&(e.isStreaming=!1,e.status==="pending"&&(e.status="completed")),e}function Ta(e){let t=Ot(e),s=t?Aa(e):null,n=Number(e?.timestamp),r=Number.isFinite(n)&&n>0?n:t?-1/0:1/0;return[r,Number.isFinite(r)?0:Number.isFinite(s)?s:-1]}function XC(e,t,s){let n=[],r=new Map,i=new Map;for(let l=t;l<s;l+=1){let c=e[l],d=hn(c),u=Ot(c)?Aa(c):null,p=i.get(d);if(!Number.isFinite(u)&&p){p.rows.push(c);continue}let f={sessionId:d,seq:u,rows:[c]};n.push(f),i.set(d,f),Number.isFinite(u)&&(r.has(d)||r.set(d,[]),r.get(d).push(f))}for(let l of r.values())l.sort((c,d)=>c.seq-d.seq);let o=new Map,a=t;for(let l of n){let c=l;if(Number.isFinite(l.seq)){let d=o.get(l.sessionId)||0;c=r.get(l.sessionId)[d],o.set(l.sessionId,d+1)}for(let d of c.rows)e[a++]=d}}function sd(e){e.sort((t,s)=>{let n=Ta(t),r=Ta(s);for(let i=0;i<n.length;i+=1)if(n[i]!==r[i])return n[i]-r[i];return 0});for(let t=0;t<e.length;){let s=Ta(e[t])[0],n=t+1;for(;n<e.length&&Ta(e[n])[0]===s;)n+=1;Number.isFinite(s)&&n-t>1&&XC(e,t,n),t=n}return e}function JC(e,t){return Array.isArray(e.messagesMap?.[t])||(e.messagesMap=e.messagesMap||{},e.messagesMap[t]=[]),e.messagesMap[t]}function nd(e,t){return e.filter(s=>t===void 0||hn(s)===t)}function $g(e,t){let s=_g(t);if(s){let n=e.find(r=>_g(r)===s);if(n)return n}if(t?.type==="user"&&t.clientMessageId){let n=e.find(r=>r?.type==="user"&&r.clientMessageId===t.clientMessageId&&hn(r)===hn(t));if(n)return n}return t?.type==="assistant"&&e.find(n=>ZC(n,t))||null}function Ws(e){if(!e||typeof e!="object")return null;let t=Rg.get(e);return t||(t=new rd(e),Rg.set(e,t)),t}var Rg,rd,Ji=F(()=>{xa();Rg=new WeakMap;rd=class{constructor(t){this.store=t}rows(t){return JC(this.store,t)}durableRows(t,s=void 0){return nd(this.rows(t),s).filter(Ot)}overlayRows(t,s=void 0){return nd(this.rows(t),s).filter(n=>!Ot(n))}snapshot(t,s=void 0){return{durableRows:this.durableRows(t,s),overlayRows:this.overlayRows(t,s)}}commitDurable({conversationId:t,sessionId:s=void 0,rows:n=[],mode:r="delta",replaceDurable:i=!1,preserveEmpty:o=!0}={}){if(!t)return{insertedRows:0,preservedEmpty:!1};let a=this.rows(t),l=Array.isArray(n)?n.filter(Boolean):[],c=nd(a,s).length>0;if(o&&r==="recent"&&l.length===0&&c)return{insertedRows:0,inserted:[],preservedEmpty:!0};if(i){let p=a.filter(f=>hn(f)!==s||!Ot(f));a.splice(0,a.length,...p)}let d=0,u=[];for(let p of l){let f=$g(a,p);f?Eg(f,p):(a.push(p),u.push(p),d+=1)}return sd(a),{insertedRows:d,inserted:u,preservedEmpty:!1}}upsertOverlay({conversationId:t,row:s}={}){if(!t||!s)return null;let n=this.rows(t),r=$g(n,s);return r?Eg(r,s):n.push(s),sd(n),r||s}appendOverlayText({conversationId:t,sessionId:s=void 0,turnId:n=null,text:r=""}={}){if(!t||!r)return null;let o=this.rows(t).findLast(a=>a?.type==="assistant"&&(s===void 0||hn(a)===s)&&(!n||a.turnId===n));return!o||o.presentation||Ot(o)?null:(o.content?r.startsWith(o.content)?o.content=r:o.content.endsWith(r)||(o.content+=r):o.content=r,o)}replaceProjection(t,s=[]){let n=this.rows(t);return n.splice(0,n.length,...Array.isArray(s)?s:[]),sd(n),n}removeDurable({conversationId:t,sessionId:s}={}){if(!t)return 0;let n=this.rows(t),r=n.filter(o=>hn(o)!==s||!Ot(o)),i=n.length-r.length;return n.splice(0,n.length,...r),i}}});function eo(e,t){return t?t===e.yeaftConversationId?!0:Object.values(e.yeaftConversationIdsByAgent||{}).includes(t):!1}function Gr(e,t,s){s&&(s.type!=="assistant"&&s.type!=="tool-use"||eo(e,t)&&(!s.vpId&&e._currentYeaftVpId&&(s.vpId=e._currentYeaftVpId),!s.turnId&&e._currentYeaftTurnId&&(s.turnId=e._currentYeaftTurnId),!s.speakerVpId&&s.vpId&&(s.speakerVpId=s.vpId)))}function tI(e){let t=[e?.timestamp,e?.createdAt,e?.ts,e?.time,e?.created_at];for(let s of t){if(typeof s=="number"&&Number.isFinite(s)&&s>0)return s;if(typeof s=="string"&&s.trim()){let n=Date.parse(s);if(Number.isFinite(n))return n;let r=Number(s);if(Number.isFinite(r)&&r>0)return r}}return Date.now()}function Ma(e){let t=e?.stableKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function id(e,t,s){if(!s||typeof s!="object")return null;if(typeof s.uiKey=="string"&&s.uiKey)return s.uiKey;let n=s.entryId||s.stableKey||s.atMessageId||s.messageId||s.dbMessageId||s.id||null;if(n!=null&&n!=="")return s.uiKey=String(n),s.uiKey;let r=`legacy:${t||"conversation"}:`,i=new Set((e?.messagesMap?.[t]||[]).map(a=>a?.uiKey).filter(a=>typeof a=="string"&&a)),o=Number(e?._messageUiKeySequence)||0;do o+=1;while(i.has(`${r}${o}`));return e&&(e._messageUiKeySequence=o),s.uiKey=`${r}${o}`,s.uiKey}function to(e,t,s){for(let n of Array.isArray(s)?s:[])id(e,t,n);return s}function od(e,t){if(!e||!t)return e;let s=e.type==="user"&&typeof e.id=="string"&&e.id===e.clientMessageId;for(let[n,r]of Object.entries(t))if(r!=null){if(n==="isStreaming"){e.isStreaming&&r===!1&&(e.isStreaming=!1);continue}if(!(n==="uiKey"&&e.uiKey)){if(n==="id"||n==="messageId"){if(s&&t.clientMessageId===e.clientMessageId&&t.messageId&&t.messageId!==e.clientMessageId)continue;(e[n]===void 0||e[n]===null||e[n]==="")&&(e[n]=r);continue}if(!(n==="turnId"&&s&&e.turnId===e.clientMessageId)){if(n==="content"&&typeof r=="string"){e.content||(e.content=r);continue}if(n==="responseKind"&&(r==="progress"||r==="result")){e.responseKind=r;continue}if(n==="attachments"&&Array.isArray(r)){(!Array.isArray(e.attachments)||e.attachments.length===0)&&(e.attachments=r);continue}(e[n]===void 0||e[n]===null||e[n]==="")&&(e[n]=r)}}}return e}function Dg(e=[],t=[]){let s=[],n=new Map,r=new Map;for(let i of[...e,...t]){if(!i)continue;let o=Ma(i),a=i.type==="user"&&i.clientMessageId?String(i.clientMessageId):null;if(o&&n.has(o)){od(n.get(o),i);continue}if(a&&r.has(a)){let l=r.get(a);od(l,i),o&&!n.has(o)&&n.set(o,l);continue}s.push(i),o&&n.set(o,i),a&&r.set(a,i)}return s}function Lg(e,t,s){return!e||e!==t?!1:!s?.loaded&&!s?.loading}function Og(e,t){return!!t&&!!e?.loaded&&!e?.loading&&Number.isFinite(e?.latestSeq)}function Fg({sessionState:e,hasCachedSessionRows:t,force:s=!1}={}){return e?.loading?!1:s?!e?.loaded:e?.loaded?!1:!t}function sI(e,t,s,n){let r=s?.id?String(s.id):null;if(!r)return!1;let o=(e.messagesMap[t]||[]).find(a=>a?.type==="assistant"&&Ma(a)===r);return o?(o.id||(o.id=r),o.messageId||(o.messageId=r),s.ts&&!o.ts&&(o.ts=s.ts),s.timestamp&&!o.timestamp&&(o.timestamp=s.timestamp),s.sessionId&&!o.sessionId&&(o.sessionId=s.sessionId),s.vpId&&!o.vpId&&(o.vpId=s.vpId),s.turnId&&!o.turnId&&(o.turnId=s.turnId),s.threadId&&!o.threadId&&(o.threadId=s.threadId),o.content?typeof o.content=="string"&&(n.startsWith(o.content)?o.content=n:o.content.endsWith(n)||(o.content+=n)):o.content=n,Gr(e,t,o),!0):!1}function Pa(e,t,s){if(!t)return;let n={...s};id(e,t,n);let r={...n,id:s.dbMessageId||s.id||Date.now().toString()+Math.random().toString(36).substr(2,9),timestamp:tI(s)};if(eo(e,t)&&!r.sessionId&&(r.sessionId=e._currentYeaftSessionId||e.yeaftActiveSessionFilter||eI),eo(e,t)){let o=e._currentYeaftAgentId||Object.entries(e.yeaftConversationIdsByAgent||{}).find(([,c])=>c===t)?.[0]||e.currentAgent||null,a=typeof r.messageId=="string"&&/^m\d+$/.test(r.messageId)?r.messageId:typeof r.id=="string"&&/^m\d+$/.test(r.id)?r.id:null,l=typeof r.clientMessageId=="string"?r.clientMessageId:null;r.stableKey||(r.stableKey=a?Zi(o,r.sessionId,a):Fn(o,r.sessionId,l)),r.uiKey||(r.uiKey=r.stableKey||null),!r.vpId&&e._currentYeaftVpId&&(r.vpId=e._currentYeaftVpId),!r.turnId&&e._currentYeaftTurnId&&(r.turnId=e._currentYeaftTurnId),Gr(e,t,r)}if(e.messagesMap[t]||(e.messagesMap[t]=[]),id(e,t,r),eo(e,t))return Ws(e).upsertOverlay({conversationId:t,sessionId:r.sessionId,row:r});let i=Ma(s);if(i){let o=e.messagesMap[t].find(a=>Ma(a)===i);if(o)return od(o,r),t===e.yeaftConversationId&&e.messagesMap[t].sort((a,l)=>a.timestamp-l.timestamp),o}return e.messagesMap[t].push(r),t===e.yeaftConversationId&&e.messagesMap[t].sort((o,a)=>o.timestamp-a.timestamp),r}function qg(e,t,s,n={}){if(!t||!s)return;e.messagesMap[t]||(e.messagesMap[t]=[]);let r=e.messagesMap[t];if(sI(e,t,n,s))return;if(eo(e,t)){let l=Ws(e).appendOverlayText({conversationId:t,sessionId:n.sessionId||e._currentYeaftSessionId||void 0,turnId:n.turnId||e._currentYeaftTurnId||null,text:s});if(l){Gr(e,t,l),n.id&&!l.id&&(l.id=n.id),n.id&&!l.messageId&&(l.messageId=n.id);return}}let i=e._currentYeaftTurnId;if(i){for(let a=r.length-1;a>=0;a--)if(r[a].turnId===i&&r[a].type==="assistant"&&r[a].isStreaming){if(Gr(e,t,r[a]),n.id&&!r[a].id&&(r[a].id=n.id),n.id&&!r[a].messageId&&(r[a].messageId=n.id),r[a].content.endsWith(s))return;r[a].content+=s;return}Pa(e,t,{...n.id?{id:n.id,messageId:n.id}:{},...n.ts?{ts:n.ts}:{},...n.timestamp?{timestamp:n.timestamp}:{},...n.sessionId?{sessionId:n.sessionId}:{},...n.vpId?{vpId:n.vpId}:{},...n.turnId?{turnId:n.turnId}:{},...n.threadId?{threadId:n.threadId}:{},type:"assistant",content:s,isStreaming:!0,status:"pending",turnStartAt:n.timestamp||Date.now()});return}let o=r[r.length-1];if(o&&o.type==="assistant"&&o.isStreaming){if(Gr(e,t,o),n.id&&!o.id&&(o.id=n.id),n.id&&!o.messageId&&(o.messageId=n.id),o.content.endsWith(s))return;o.content+=s}else Pa(e,t,{...n.id?{id:n.id,messageId:n.id}:{},...n.ts?{ts:n.ts}:{},...n.timestamp?{timestamp:n.timestamp}:{},...n.sessionId?{sessionId:n.sessionId}:{},...n.vpId?{vpId:n.vpId}:{},...n.turnId?{turnId:n.turnId}:{},...n.threadId?{threadId:n.threadId}:{},type:"assistant",content:s,isStreaming:!0,status:"pending",turnStartAt:n.timestamp||Date.now()})}function Vg(e,t,{completeLifecycle:s=!0}={}){if(!t)return;let n=e.messagesMap[t];if(!n||n.length===0)return;let r=e._currentYeaftTurnId||null;for(let i=n.length-1;i>=0;i--){let o=n[i];if(r&&o.turnId&&o.turnId!==r){if(o.type==="user")break;continue}if(o.isStreaming&&(o.isStreaming=!1,s&&o.status==="pending"&&(o.status="completed",o.turnEndAt=Date.now())),Gr(e,t,o),o.type==="user")break}}function Ng(e,t){if(!t||e.processingConversations&&e.processingConversations[t]||e.activeVpTurns&&Object.keys(e.activeVpTurns).length>0)return;let s=e.messagesMap&&e.messagesMap[t];if(!(!s||s.length===0))for(let n of s)n&&n.isStreaming&&(n.isStreaming=!1)}function Bg(e,t){let s=e.currentConversation;if(!s)return;e.messagesMap[s]||(e.messagesMap[s]=[]);let n=e.messagesMap[s],r=null;for(let i of t)if(i.type==="user"){let o=i.message?.content;if(o){let a=typeof o=="string"?o:Array.isArray(o)?o.map(l=>l.text||"").join(""):"";a&&(r=a,e.addMessage({type:"user",content:a,isHistory:!0}))}}else if(i.type==="assistant"){let o=i.message?.content;if(o&&Array.isArray(o)){for(let a of o)if(a.type==="text"&&a.text)e.addMessage({type:"assistant",content:a.text,isHistory:!0});else if(a.type==="tool_use")e.addMessage({type:"tool-use",toolName:a.name,toolInput:a.input,isHistory:!0});else if(a.type==="tool_result"){for(let l=n.length-1;l>=0;l--)if(n[l].type==="tool-use"&&!n[l].hasResult){n[l].hasResult=!0,n[l].toolResult=a.content;break}}}}if(r&&s&&!e.conversationTitles[s]){let i=r.trim().substring(0,100);e.conversationTitles[s]=i}}function gr(e){if(!Array.isArray(e))return null;let t=null;for(let s of e)typeof s?.dbMessageId=="number"&&s.dbMessageId>0&&(t===null||s.dbMessageId>t)&&(t=s.dbMessageId);return t}function nI(e){return{id:e.id,dbMessageId:e.id,timestamp:e.created_at}}function Hg(e){if(!e)return null;let t=nI(e);if(e.message_type==="tool_use"){let n={...t,type:"tool-use",toolName:e.tool_name||"unknown",toolInput:(()=>{try{return JSON.parse(e.tool_input||e.content||"{}")}catch{return{}}})(),hasResult:!0,isHistory:!0,startTime:e.created_at||0};if(e.metadata)try{let r=JSON.parse(e.metadata);r.askRequestId&&(n.askRequestId=r.askRequestId,n.askQuestions=r.askQuestions,n.askAnswered=!!r.askAnswered,n.selectedAnswers=r.selectedAnswers||null,r.askAnswered||(n.isHistory=!1))}catch{}return n}let s=n=>{if(!n)return"";if(typeof n!="string")return String(n);if(n.startsWith("["))try{let r=JSON.parse(n);if(Array.isArray(r))return r.filter(i=>i.type==="text"&&i.text).map(i=>i.text).join("")}catch{}return n};if(e.role==="user"){let n=null;if(e.metadata)try{let r=JSON.parse(e.metadata);r&&typeof r.clientMessageId=="string"&&(n=r.clientMessageId)}catch{}return{...t,type:"user",content:typeof e.content=="string"?e.content:String(e.content||""),...n?{clientMessageId:n}:{}}}else if(e.role==="assistant"){let n=s(e.content),r=(()=>{if(!e.content||typeof e.content!="string"||!e.content.startsWith("["))return[];try{let i=JSON.parse(e.content);return Array.isArray(i)?i.filter(o=>o.type==="tool_use"&&o.name):[]}catch{return[]}})();if(!n&&r.length===0)return null;if(r.length>0){let i=[];n&&i.push({...t,type:"assistant",content:n});for(let o=0;o<r.length;o++){let a=r[o];i.push({id:e.id+"_tool_"+o,dbMessageId:e.id,timestamp:e.created_at,type:"tool-use",toolName:a.name,toolInput:a.input||{},hasResult:!0,isHistory:!0,startTime:e.created_at||0})}return i}return{...t,type:"assistant",content:n}}else if(e.role==="tool"||e.message_type==="tool_result")return{...t,type:"tool_result",tool:e.tool_name||"unknown",content:typeof e.content=="string"?e.content:String(e.content||"")};return null}var eI,so=F(()=>{Ji();Kr();eI="grp_default"});function hr(e,t){return e._closedAt?.[t]?Date.now()-e._closedAt[t]<3e4:!1}function Yr(e,t){tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={});let s=()=>{if(!e.processingConversations[t])return;let r=e.conversations.find(o=>o.id===t);e.sendWsMessage({type:"ping_session",conversationId:t,agentId:r?.agentId});let i=setTimeout(()=>{e.processingConversations[t]&&(e.sessionHealth||(e.sessionHealth={}),e.sessionHealth[t]={status:"agent-offline"})},1e4);e._pongTimeouts||(e._pongTimeouts={}),e._pongTimeouts[t]=i},n=setTimeout(()=>{e.processingConversations[t]&&(s(),e._processingWatchdogs[t]=setInterval(()=>{if(!e.processingConversations[t]){tt(e,t);return}s()},3e4))},45e3);e._processingWatchdogs[t]=n}function Ra(e,t){e._yeaftWatchdogPauseReasons?.[t]?.size||e.processingConversations[t]&&e._processingWatchdogs?.[t]&&(e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),e.sessionHealth?.[t]&&delete e.sessionHealth[t],e._yeaftWatchdogConvs?.has(t)?Zr(e,t):Yr(e,t))}function tt(e,t){e._processingWatchdogs?.[t]&&(clearTimeout(e._processingWatchdogs[t]),clearInterval(e._processingWatchdogs[t]),delete e._processingWatchdogs[t]),e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),e.sessionHealth?.[t]&&delete e.sessionHealth[t],e._autoRefreshed?.[t]&&delete e._autoRefreshed[t],e._yeaftWatchdogConvs?.delete(t),e._yeaftWatchdogPauseReasons&&delete e._yeaftWatchdogPauseReasons[t]}function no(e,t,s="phase"){if(!t||!e.processingConversations[t])return;e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={});let n=e._yeaftWatchdogPauseReasons[t]||new Set;n.add(s),e._yeaftWatchdogPauseReasons[t]=n,e._processingWatchdogs?.[t]&&(clearTimeout(e._processingWatchdogs[t]),clearInterval(e._processingWatchdogs[t]),delete e._processingWatchdogs[t])}function Qr(e,t,s=null){if(!t)return;let n=e._yeaftWatchdogPauseReasons?.[t];n&&(s?n.delete(s):n.clear(),!n.size&&(delete e._yeaftWatchdogPauseReasons[t],e.processingConversations[t]&&Zr(e,t)))}function Wg(e,t){tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={}),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){let s=e.conversations.find(n=>n.id===t);e.sendWsMessage({type:"refresh_conversation",conversationId:t,agentId:s?.agentId}),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){delete e.processingConversations[t];let n=e.executionStatusMap[t];n&&(n.currentTool=null),e.finishStreamingForConversation(t)}delete e._processingWatchdogs[t]},1e4)}},9e4)}function Zr(e,t){let s=e._yeaftWatchdogPauseReasons?.[t];if(tt(e,t),e._processingWatchdogs||(e._processingWatchdogs={}),s?.size){e._yeaftWatchdogConvs||(e._yeaftWatchdogConvs=new Set),e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={}),e._yeaftWatchdogConvs.add(t),e._yeaftWatchdogPauseReasons[t]=new Set(s);return}e._yeaftWatchdogConvs||(e._yeaftWatchdogConvs=new Set),e._yeaftWatchdogConvs.add(t),e._processingWatchdogs[t]=setTimeout(()=>{if(e.processingConversations[t]){delete e.processingConversations[t];let n=e.executionStatusMap[t];n&&(n.currentTool=null),e.finishStreamingForConversation(t)}delete e._processingWatchdogs[t]},15e4)}var qn=F(()=>{});function ad(e,t){return t&&Array.isArray(e?._yeaftRetiredConversationIdsByAgent?.[t])?e._yeaftRetiredConversationIdsByAgent[t]:[]}function mn(e,t,s){return!t||!s?!1:ad(e,t).includes(s)}function ld(e,t){let s=e?._yeaftRetiredConversationTargetsByAgent?.[t];return s&&typeof s=="object"?s:{}}function Ug(e,t,s){if(!t||!s)return null;let n=ld(e,t),r=s,i=new Set;for(let o=0;o<8;o++){if(i.has(r))return null;i.add(r);let a=n[r];if(!a||a===r)return r===s?null:r;r=a}return null}function ro(e,t,s,n=null){if(!t||!s)return;let r=ad(e,t).filter(a=>a!==s).concat(s).slice(-8);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent||{},[t]:r};let i=ld(e,t),o={};for(let a of r){let l=i[a];l&&(o[a]=l===s&&n?n:l)}n&&n!==s&&(o[s]=n),e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:o}}function cd(e,t,s){if(!t||!s||!e?._yeaftRetiredConversationIdsByAgent)return;let n=ad(e,t).filter(i=>i!==s);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent,[t]:n};let r={...ld(e,t)};delete r[s],e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:r}}var io=F(()=>{});function oI(e,t,s){let n=e.messagesMap?.[t]||[],r=e.messagesMap?.[s]||[];e.messagesMap||(e.messagesMap={}),to(e,t,n),to(e,s,r);let i=Dg(r,n).sort((o,a)=>{let l=Number.isFinite(o?.seq)?o.seq:null,c=Number.isFinite(a?.seq)?a.seq:null;return l!==null&&c!==null&&l!==c?l-c:l!==null&&c===null?-1:l===null&&c!==null?1:(o?.timestamp||0)-(a?.timestamp||0)});Ws(e).replaceProjection(s,i)}function aI(e){if(!e||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return Array.isArray(e)?e.slice():{...e}}function _a(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)}function Xr(e,t,s,{removeSource:n}){_a(e,t)&&(_a(e,s)||(e[s]=n?e[t]:aI(e[t])),n&&delete e[t])}function Us(e,t,s=null){if(!t)return null;let n=e?._yeaftPendingConversationPromotions?.[t]||null;return!n?.sourceConversationId||!n.targetConversationId||s&&n.targetConversationId!==s?null:n}function Ea(e,t,s,n){return!t||!s||!n||s===n?!1:(e._yeaftPendingConversationPromotions={...e._yeaftPendingConversationPromotions||{},[t]:{sourceConversationId:s,targetConversationId:n}},!0)}function oo(e,t,s=null){let n=Us(e,t,s);if(!n)return null;let r={...e._yeaftPendingConversationPromotions||{}};return delete r[t],e._yeaftPendingConversationPromotions=r,n}function ao(e,t,s){let n=Us(e,t);return!n||!s||n.targetConversationId===s?null:(js(e,n.targetConversationId,s,{removeSource:!0}),ro(e,t,n.targetConversationId,s),Ea(e,t,n.sourceConversationId,s),n)}function js(e,t,s,{removeSource:n=!0}={}){if(!t||!s||t===s)return!1;oI(e,t,s),e.yeaftHistoryCacheState&&(e.yeaftHistoryCacheState=Object.fromEntries(Object.entries(e.yeaftHistoryCacheState).map(([c,d])=>[c,d?.conversationId===t?{...d,conversationId:s}:d]))),Xr(e.processingConversations,t,s,{removeSource:n}),Xr(e.executionStatusMap,t,s,{removeSource:n}),Xr(e.refreshingSessionMap,t,s,{removeSource:n}),Xr(e._closedAt,t,s,{removeSource:n}),Xr(e._autoRefreshed,t,s,{removeSource:n}),Xr(e.sessionHealth,t,s,{removeSource:n}),e._turnCompletedConvs?.has(t)&&(e._turnCompletedConvs.add(s),n&&e._turnCompletedConvs.delete(t));let r=!!e._yeaftWatchdogConvs?.has(t),i=e._yeaftWatchdogPauseReasons?.[t],o=!!i?.size,a=!!e._processingWatchdogs?.[t];if(o&&(e._yeaftWatchdogPauseReasons||(e._yeaftWatchdogPauseReasons={}),e._yeaftWatchdogPauseReasons[s]=new Set(i)),n&&(a||o)&&tt(e,t),n&&e._pongTimeouts?.[t]&&(clearTimeout(e._pongTimeouts[t]),delete e._pongTimeouts[t]),n&&(a||r||o)&&!!e.processingConversations?.[s])if(e._processingWatchdogs?.[s])e._yeaftWatchdogConvs?.add(s);else{let c=_a(e.sessionHealth,s),d=e.sessionHealth?.[s],u=_a(e._autoRefreshed,s),p=e._autoRefreshed?.[s];Zr(e,s),c&&(e.sessionHealth||(e.sessionHealth={}),e.sessionHealth[s]=d),u&&(e._autoRefreshed||(e._autoRefreshed={}),e._autoRefreshed[s]=p)}return n&&e.messagesMap&&delete e.messagesMap[t],!0}var dd=F(()=>{so();Ji();io();qn()});function $a(e,t){return!e||!t||e.type!=="user"||t.type!=="user"?!1:e.clientMessageId&&t.clientMessageId?e.clientMessageId===t.clientMessageId:e.clientMessageId||t.clientMessageId?!1:e.content===t.content}var ud=F(()=>{});function pd(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function lI(){return Date.now()}function cI(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`pt_${crypto.randomUUID()}`:`pt_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`}function dI(e,t=160){return typeof e!="string"?e:e.length>t?`${e.slice(0,t)}...[truncated]`:e}function uI(e){if(!e||typeof e!="object")return e||null;let t={};for(let[s,n]of Object.entries(e))s==="text"||s==="prompt"||s==="content"||s==="data"||(t[s]=typeof n=="string"?dI(n):n);return t}function mr(){return cI()}function jt(e,t={}){!e||!t.traceId||(Array.isArray(e._perfTraceQueue)||(e._perfTraceQueue=[]),e._perfTraceQueue.push({traceId:t.traceId,source:"web",phase:t.phase||"unknown",at:lI(),monotonicMs:pd(),durationMs:Number.isFinite(t.durationMs)?t.durationMs:null,agentId:t.agentId||null,sessionId:t.sessionId||null,vpId:t.vpId||null,turnId:t.turnId||null,threadId:t.threadId||null,messageType:t.messageType||null,bytes:Number.isFinite(t.bytes)?t.bytes:null,ok:typeof t.ok=="boolean"?t.ok:null,detail:uI(t.detail)}),e._perfTraceQueue.length>200&&e._perfTraceQueue.splice(0,e._perfTraceQueue.length-200),pI(e))}function pI(e){!e||e._perfTraceFlushTimer||(e._perfTraceFlushTimer=setTimeout(()=>fI(e),250))}function fI(e){if(!e||!Array.isArray(e._perfTraceQueue)||e._perfTraceQueue.length===0){e&&(e._perfTraceFlushTimer=null);return}let t=e._perfTraceQueue.splice(0,e._perfTraceQueue.length);e._perfTraceFlushTimer=null,typeof e.sendWsMessage=="function"&&e.sendWsMessage({type:"perf_trace_events",events:t})}function Da(e,t={}){if(typeof requestAnimationFrame!="function")return;let s=pd();requestAnimationFrame(()=>{requestAnimationFrame(()=>{jt(e,{...t,phase:t.phase||"render.next_paint",durationMs:pd()-s})})})}var fd=F(()=>{});function Ks(e){return Number.isFinite(e)?Number(e):null}function gI(e){return(Array.isArray(e)?e:[]).map(t=>({startSeq:Ks(t?.startSeq),endSeq:Ks(t?.endSeq)})).filter(t=>t.startSeq!==null&&t.endSeq!==null&&t.startSeq<=t.endSeq).sort((t,s)=>t.startSeq-s.startSeq)}function lo(e){return Number.isFinite(e)&&e>=0?Math.floor(e):0}function vr(e){let t=Ks(e?.beforeSeq);if(t===null)return null;if(e?.kind==="gap"){let s=Ks(e.stopAtSeq);return s===null?null:`gap:${lo(e.cacheEpoch)}:${s}:${t}`}return`server:${t}`}function co(e){let t=new Set((Array.isArray(e?.completedHistoryWorkKeys)?e.completedHistoryWorkKeys:[]).filter(s=>typeof s=="string"&&s));for(let s of Array.isArray(e?.requestedBeforeSeqs)?e.requestedBeforeSeqs:[])Number.isFinite(s)&&t.add(`server:${s}`);return t}function hI(e,t){let s=vr(t);if(!s)return e.completedHistoryWorkKeys||[];let n=co(e);return n.add(s),Array.from(n).slice(-256)}function mI(e,t){if(!Number.isFinite(t))return e.requestedBeforeSeqs||[];let s=new Set((Array.isArray(e?.requestedBeforeSeqs)?e.requestedBeforeSeqs:[]).filter(Number.isFinite));return s.add(t),Array.from(s).sort((n,r)=>r-n).slice(-256)}function vI(e,t={},s=0){let n=gI(e),r=lo(s),i=co(t),o=[];for(let a=1;a<n.length;a+=1){let l=n[a-1],c=n[a];if(l.endSeq+1>=c.startSeq)continue;let d={kind:"gap",beforeSeq:c.startSeq,stopAtSeq:l.endSeq+1,cacheEpoch:r};d.workKey=vr(d),i.has(d.workKey)||o.push(d)}return o.sort((a,l)=>l.beforeSeq-a.beforeSeq)}function jg(e,t,s){let n=vI(e,t,s),r=Ks(t.serverOldestFetchedSeq??t.oldestSeq),i=n[0]||null;if(!i||r===null||i.beforeSeq<=r)return[];let o={kind:"gap",beforeSeq:i.beforeSeq,stopAtSeq:r,cacheEpoch:i.cacheEpoch};return o.workKey=vr(o),co(t).has(o.workKey)?[]:[o]}function Kg(e={},t=[],s=0){let n=lo(s),r=co(e),i=e.serverHasMore!==!1,o=Ks(e.serverOldestFetchedSeq??e.oldestSeq),a=e.gapTraversalInitialized===!0,l=Array.isArray(e.gapQueue)?e.gapQueue.slice():[],c=null,d=null;if(i&&o!==null){let u={kind:"server",beforeSeq:o,stopAtSeq:null,cacheEpoch:n};u.workKey=vr(u),r.has(u.workKey)?(i=!1,d="history_cursor_repeated"):c=u}return!c&&!i&&(a||(l=jg(t,e,n),a=!0),c=l[0]||null),c?{request:c,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:l,pendingPageKind:c.kind,pendingPageBeforeSeq:c.beforeSeq,pendingGapStopAtSeq:c.stopAtSeq,pendingCacheEpoch:c.cacheEpoch,pendingHistoryWorkKey:c.workKey,hasMore:!0,paginationError:null}}:{request:null,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:l,hasMore:!1,paginationError:d}}}function zg(e={},{mode:t,oldestSeq:s,hasMore:n,ranges:r=[],pageKind:i=null,stopAtSeq:o=null,cacheEpoch:a=0}={}){if(t==="delta")return e;let l=lo(a),c=Ks(s),d=Ks(e.pendingPageBeforeSeq),u=i||e.pendingPageKind||(t==="older"?"server":null),p=Ks(o??e.pendingGapStopAtSeq),f=lo(e.pendingCacheEpoch??l),g={kind:u,beforeSeq:d,stopAtSeq:p,cacheEpoch:f},v=Ks(e.serverOldestFetchedSeq??e.oldestSeq),h=e.serverHasMore!==!1,m=Number(e.noProgressCount)||0,y=null,k=e.requestedBeforeSeqs||[],w=e.completedHistoryWorkKeys||[],b=e.gapTraversalInitialized===!0,S=Array.isArray(e.gapQueue)?e.gapQueue.slice():[];if(t==="recent")v=c,h=!!n,m=0,k=[],w=[],b=!1,S=[];else if(d===null)c!==null&&(v=v===null?c:Math.min(v,c)),h=!!n,m=0;else{k=mI(e,d),w=hI(e,g);let _=c!==null&&c<d;if(u==="server")_?(v=v===null?c:Math.min(v,c),h=!!n,m=0):(h=!1,m+=1,y="history_cursor_no_progress");else if(u==="gap"){let M=vr(g);S=S.filter(W=>vr(W)!==M);let E=p!==null&&c!==null&&c<=p;if(_||E||n===!1){if(m=0,!E&&n!==!1&&c!==null&&p!==null){let W={kind:"gap",beforeSeq:c,stopAtSeq:p,cacheEpoch:f};W.workKey=vr(W),co({completedHistoryWorkKeys:w}).has(W.workKey)||S.unshift(W)}}else m+=1,y="history_cursor_no_progress"}}t==="older"&&!h&&!b&&(S=jg(r,{...e,serverOldestFetchedSeq:v,completedHistoryWorkKeys:w},l),b=!0);let C={...e,serverOldestFetchedSeq:v,serverHasMore:h,requestedBeforeSeqs:k,completedHistoryWorkKeys:w,gapTraversalInitialized:b,gapQueue:S,noProgressCount:m,oldestSeq:v,paginationError:y};return delete C.pendingPageKind,delete C.pendingPageBeforeSeq,delete C.pendingGapStopAtSeq,delete C.pendingCacheEpoch,delete C.pendingHistoryWorkKey,{...C,hasMore:h||S.length>0}}var gd=F(()=>{});function Zg(e){return e.filter(t=>!(t.type==="user"&&(!t.content||!t.content.trim())))}function yr(e){let t=typeof e=="string"?e.match(/^m(\d+)$/):null,s=t?Number(t[1]):null;return Number.isFinite(s)?s:null}function Gg(e){let t=[e?.timestamp,e?.createdAt,e?.ts,e?.time,e?.created_at];for(let s of t){if(typeof s=="number"&&Number.isFinite(s)&&s>0)return s;if(typeof s=="string"&&s.trim()){let n=Date.parse(s);if(Number.isFinite(n))return n;let r=Number(s);if(Number.isFinite(r)&&r>0)return r}}return null}function yI(e){if(!Array.isArray(e))return null;for(let t=e.length-1;t>=0;t-=1){let s=e[t];if(s?.name==="TodoWrite"&&Array.isArray(s?.input?.todos))return s.input.todos}return null}function bI(e){if(!e||typeof window>"u")return null;try{let t=window.Pinia||null,s=t&&typeof t.useSessionsStore=="function"?t.useSessionsStore():null;if(!s)return null;let n=typeof t.useChatStore=="function"?t.useChatStore():null,r=typeof s.sessionById=="function"?s.sessionById(e,n?.currentAgent||null):s.sessions&&s.sessions[e];return(r&&typeof r.defaultVpId=="string"?r.defaultVpId.trim():"")||null}catch{return null}}function kI(e,t){return e.speakerVpId||e.vpId||e.vp_id||e.authorVpId||e.authorVP||bI(t)}function wI(e){return e?.stableKey||(e&&(e.messageId||e.id)?e.messageId||e.id:null)}function SI(e,t=null){if(!e||e.stableKey)return e;let s=Vn(e),n=e.messageId||e.id||null,r=e.type==="user"&&e.clientMessageId||null;return e.stableKey=r&&n===r?Fn(t,s,r):Zi(t,s,n),Number.isFinite(e.seq)||(e.seq=yr(n)),e.uiKey||(e.uiKey=e.stableKey||null),e}function Vn(e){return e?e.sessionId??e.groupId??null:null}function CI(e){return!e||e.type!=="user"||!e.clientMessageId?!1:(e.messageId||e.id||null)===e.clientMessageId}function II(e,t,s,n){let r=e.rows(t),i=r.some(c=>c&&(n==null||Vn(c)===n));if(s.length===0&&i)return{insertedRows:0,preservedEmpty:!0};let o=s.reduce((c,d)=>Math.max(c,d?.timestamp||0),0),a=r.filter(c=>c?n!=null&&Vn(c)!==n||Ot(c)||c.isStreaming||c.type==="tool-use"&&c.toolName==="AskUserQuestion"&&(c.askAnswered||c.askPending||c.askExpired)||CI(c)?!0:o>0&&(c.timestamp||0)>o:!1);return e.replaceProjection(t,a),{insertedRows:e.commitDurable({conversationId:t,sessionId:n,rows:s,mode:"recent",preserveEmpty:!1}).insertedRows,preservedEmpty:!1}}function AI(e){if(typeof e!="string")return!1;let t=e.trimStart();return t.startsWith("<task-result ")||/^\[system note\] You have called \S+ with the same arguments \d+ times\./.test(t)}function xI(e,t){let s=typeof e.yeaftConversationId=="string"?e.yeaftConversationId:"";return s.startsWith(`yeaft-local-${t}-`)||/^yeaft-local-\d/.test(s)?s:null}function TI(e,t,s,n){let r=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(!r||!n||e.currentView!=="yeaft")return;let i=_s(e);if(i.sessionId!==(s||null)||i.agentId&&i.agentId!==r)return;let o=e.yeaftConversationId||null;if(mn(e,r,n)){let d=e.yeaftConversationIdsByAgent?.[r]||null;d&&d!==n&&js(e,n,d,{removeSource:n!==e.yeaftConversationId});return}let a=Us(e,r);a&&a.targetConversationId!==n&&ao(e,r,n);let l=Us(e,r,n);if(l&&(js(e,l.sourceConversationId,n,{removeSource:!0}),oo(e,r,n),e.yeaftConversationId=n),o===n||l){e.messagesMap[n]||(e.messagesMap[n]=[]),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.activeConversations=[n];return}let c=xI(e,r);c&&(js(e,c,n,{removeSource:!0}),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.yeaftConversationId=n,e.activeConversations=[n])}function Nn(e,t,s=null){let n=e.messagesMap[t]||[];for(let r of n)s&&Object.entries(s).some(([i,o])=>o&&r[i]!==o)||r.type==="tool-use"&&!r.hasResult&&(r.hasResult=!0,r.toolName==="AskUserQuestion"&&!r.askAnswered&&!r.selectedAnswers&&(r.isHistory=!0,r.askExpired=!0,r.askPending=!1,r.pendingAnswers=null,r.askSubmittedAt=null,r.askError=null,r.askRequestId=null))}function Xg(e,t){Hs(e);let s=e.agents.find(r=>r.id===t.agentId);e.conversations=e.conversations.filter(r=>r.id!==t.conversationId);let n=t.provider||"claude-code";if(e.conversations.push({id:t.conversationId,agentId:t.agentId,agentName:s?.name||t.agentId,workDir:t.workDir,claudeSessionId:null,createdAt:Date.now(),processing:!1,connecting:n!=="claude-code",type:"chat",provider:n,capabilities:t.capabilities||null,disallowedTools:t.disallowedTools??null}),e.currentAgent=t.agentId,e.currentAgentInfo=s,e.panels.length>1){let r=e._pendingPaneId;if(e._pendingPaneId=null,r){let i=e.panels.find(o=>o.id===r);i&&(i.conversationId=t.conversationId)}else{let i=e.panels.find(o=>!o.conversationId);i&&(i.conversationId=t.conversationId)}e.activeConversations.includes(t.conversationId)||e.activeConversations.push(t.conversationId)}else e.activeConversations=[t.conversationId];e.currentWorkDir=t.workDir,e.messagesMap[t.conversationId]=[],e.sendWsMessage({type:"select_conversation",conversationId:t.conversationId}),e.addMessage({type:"system",content:ut("store.convCreated",{agent:s?.name||t.agentId,workDir:t.workDir})}),e.saveOpenSessions()}function Jg(e,t){Hs(e);let s=e.agents.find(n=>n.id===t.agentId);if(e.conversations=e.conversations.filter(n=>n.id!==t.conversationId&&!(n.claudeSessionId&&n.claudeSessionId===t.claudeSessionId&&n.agentId===t.agentId&&(n.provider||"claude-code")===(t.provider||"claude-code"))),e.conversations.push({id:t.conversationId,agentId:t.agentId,agentName:s?.name||t.agentId,workDir:t.workDir,claudeSessionId:t.claudeSessionId,createdAt:Date.now(),processing:!1,connecting:(t.provider||"claude-code")!=="claude-code",type:"chat",provider:t.provider||"claude-code",capabilities:t.capabilities||null,disallowedTools:t.disallowedTools??null}),e.currentAgent=t.agentId,e.currentAgentInfo=s,e.panels.length>1){let n=e._pendingPaneId;if(e._pendingPaneId=null,n){let r=e.panels.find(i=>i.id===n);r&&(r.conversationId=t.conversationId)}else{let r=e.panels.find(i=>!i.conversationId);r&&(r.conversationId=t.conversationId)}e.activeConversations.includes(t.conversationId)||e.activeConversations.push(t.conversationId)}else e.activeConversations=[t.conversationId];if(e.currentWorkDir=t.workDir,e.messagesMap[t.conversationId]=[],e._pendingSessionTitle&&(e.conversationTitles[t.conversationId]=e._pendingSessionTitle,e._pendingSessionTitle=null),e.sendWsMessage({type:"select_conversation",conversationId:t.conversationId}),e.addMessage({type:"system",content:ut("store.convResumed",{agent:s?.name||t.agentId,sessionId:t.claudeSessionId?t.claudeSessionId.slice(0,8)+"...":""})}),t.dbMessages&&t.dbMessages.length>0){let n=Zg(t.dbMessages.map(i=>e.formatDbMessage(i)).flat().filter(Boolean)),r=e.messagesMap[t.conversationId]||[];for(let i of n)r.push(i)}e.hasMoreMessages=!!t.hasMoreMessages,e.chatSessionState[t.conversationId]={lastSeenDbId:gr(e.messagesMap[t.conversationId]),hasMoreOlder:!!t.hasMoreMessages},e.saveOpenSessions()}function hd(e,t){e.conversations=e.conversations.filter(n=>n.id!==t.conversationId),delete e.messagesMap[t.conversationId],delete e.chatSessionState[t.conversationId],delete e.conversationTitles[t.conversationId],delete e.customConversationTitles[t.conversationId],delete e.processingConversations[t.conversationId],e._closedAt&&delete e._closedAt[t.conversationId],tt(e,t.conversationId),delete e.executionStatusMap[t.conversationId],delete e.subagents[t.conversationId],window.dispatchEvent(new CustomEvent("conversation-deleted",{detail:{conversationId:t.conversationId}}));let s=e.activeConversations.indexOf(t.conversationId);s>=0&&(e.activeConversations.splice(s,1),e.activeConversations.length===0&&e.addMessage({type:"system",content:ut("chat.session.closed")}));for(let n of e.panels)n.conversationId===t.conversationId&&(n.conversationId=null);e.saveOpenSessions()}function eh(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s);let r=e.conversations.find(i=>i.id===s);r&&(t.claudeSessionId&&(r.claudeSessionId=t.claudeSessionId),t.workDir&&(r.workDir=t.workDir)),e.clearStatus?.conversationId===s&&e.clearStatus?.status==="clearing"&&(e.clearStatus={conversationId:s,status:"completed"},setTimeout(()=>{e.clearStatus?.conversationId===s&&e.clearStatus?.status==="completed"&&(e.clearStatus=null)},3e3)),e.saveOpenSessions()}}function th(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s);let r=e.conversations.find(i=>i.id===s);r&&(t.claudeSessionId&&(r.claudeSessionId=t.claudeSessionId),t.workDir&&(r.workDir=t.workDir)),e.saveOpenSessions()}}function sh(e,t){if(t.conversationId){if(t.isProcessing&&!hr(e,t.conversationId)&&!e._turnCompletedConvs?.has(t.conversationId))e.processingConversations[t.conversationId]=!0;else if(e.processingConversations[t.conversationId]){delete e.processingConversations[t.conversationId],tt(e,t.conversationId);let s=e.executionStatusMap[t.conversationId];s&&(s.currentTool=null),e.finishStreamingForConversation(t.conversationId)}}}function nh(e,t){let s=t.conversationId||e.currentConversation;if(s){delete e.processingConversations[s],tt(e,s),e._closedAt||(e._closedAt={}),e._closedAt[s]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(s);let n=e.executionStatusMap[s];n&&(n.currentTool=null),e.finishStreamingForConversation(s),Nn(e,s)}}function rh(e,t){if(!!t.requestId){if(e.chatHistoryRequestIdSupported=!0,!e.isCurrentChatHistoryResponse?.(t))return!1}else{let i=`chat:${t.conversationId}`,o=e.chatHistoryRequests?.[i];if(e.chatHistoryRequestIdSupported===!0||!o?.loading)return!1;t={...t,requestId:o.requestId,catalogKey:i,mode:o.mode||t.mode,...o.mode==="delta"?{afterMessageId:o.cursor}:{}}}e.messagesMap[t.conversationId]||(e.messagesMap[t.conversationId]=[]);let n=e.messagesMap[t.conversationId],r=t.mode==="delta"||typeof t.afterMessageId=="number"&&t.afterMessageId>0;if(t.conversationId&&e.activeConversations.includes(t.conversationId)){let i=Zg((t.messages||[]).map(a=>e.formatDbMessage(a)).flat().filter(Boolean));if(i.length>0){let a=n.find(l=>l.dbMessageId);if(a&&i[0].dbMessageId&&i[i.length-1].dbMessageId<a.dbMessageId){let l=n.indexOf(a);e.debug,n.splice(l,0,...i)}else{e.debug;for(let l of i)if(!(l.dbMessageId&&n.some(c=>c.dbMessageId===l.dbMessageId))){if(l.dbMessageId&&(l.type==="assistant"||l.type==="user")){let c=null;if(l.type==="user"?c=n.find(d=>!d.dbMessageId&&!d.isStreaming&&$a(d,l)):c=n.find(d=>!d.dbMessageId&&!d.isStreaming&&d.type==="assistant"&&d.content===l.content),c){c.dbMessageId=l.dbMessageId,c.id=l.id,l.timestamp&&(c.timestamp=l.timestamp),l.clientMessageId&&!c.clientMessageId&&(c.clientMessageId=l.clientMessageId);continue}}n.push(l)}}}r||(e.hasMoreMessages=t.hasMore??!1),Hs(e);let o=e.chatSessionState[t.conversationId]?.hasMoreOlder;e.chatSessionState[t.conversationId]={lastSeenDbId:gr(e.messagesMap[t.conversationId]),hasMoreOlder:r?!!o:!!t.hasMore}}return e.finishChatHistoryRequest?.(t)&&(e.currentConversation===t.conversationId&&(e.loadingMoreMessages=!1),e.setRefreshingSession(t.conversationId,!1)),!0}function ih(e,t){let s=t.sessionId??null,n=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null,r=t.conversationId||n&&e.yeaftConversationIdsByAgent?.[n]||e.yeaftConversationId;if(!r||!s||!Array.isArray(t.messages))return null;e.messagesMap[r]||(e.messagesMap[r]=[]);let i=new Set(Array.isArray(t.sourceMessageIds)?t.sourceMessageIds:[]),o=new Set;for(let h of e.messagesMap[r]){if(Vn(h)!==s)continue;let m=h?.persistedMessageId||h?.messageId||h?.id||null;m&&h._historyWindowPrefetched!==!0&&h._historyWindowDetached!==!0&&o.add(m),!(!t.entryId||!i.has(m))&&(h.historyEntryId=t.entryId,Number.isFinite(t.indexGeneration)&&(h.historyIndexGeneration=t.indexGeneration))}let a=t.messages.map(h=>t.entryId&&i.has(h?.id)?{...h,historyEntryId:t.entryId,...t.prefetch===!0?{_historyWindowPrefetched:!0}:{},...Number.isFinite(t.indexGeneration)?{historyIndexGeneration:t.indexGeneration}:{}}:h),{formatted:l}=oh(a,s,"window",e.messagesMap[r],n),c=`history-window:${t.requestId||t.anchorMessageId||Date.now()}`;for(let h of l){let m=h.persistedMessageId||h.messageId||h.id;o.has(m)||(h._historyWindowKey=c,h._historyWindowDetached=t.prefetch!==!0,h._historyWindowPrefetched=t.prefetch===!0)}let d=Ws(e),u=d.rows(r),p=new Set(t.messages.map(h=>h?.id).filter(Boolean)),f=[];if(t.prefetch!==!0){for(let m of u){if(Vn(m)!==s)continue;let y=m?.persistedMessageId||m?.messageId||m?.id||null;p.has(y)&&(m._historyWindowPrefetched!==!0&&m._historyWindowDetached!==!0||(m._historyWindowKey=c,m._historyWindowDetached=!0,m._historyWindowPrefetched=!1,f.push(m)))}let h=u.filter(m=>Vn(m)!==s||m._historyWindowDetached!==!0||m._historyWindowKey===c);h.length!==u.length&&d.replaceProjection(r,h)}d.commitDurable({conversationId:r,sessionId:s,rows:l,mode:"window"});let g=l.length>0?l:f,v=_s(e);return td(e,{conversationId:r,agentId:n,sessionId:s,incomingRows:g,activeAgentId:v.agentId,activeSessionId:v.sessionId}),r}function Yg(e){return e?.toolId?[Vn(e)??"",e.vpId||e.speakerVpId||"",e.turnId||"",e.threadId||"main",e.toolId].join("\0"):null}function Qg(e,t,s){return e.toolName="AskUserQuestion",e.toolId=t.toolCallId,e.toolInput={questions:s},e.askQuestions=s,e.askRequestId=null,e.askPending=!1,e.pendingAnswers=null,e.askSubmitGeneration=null,e.askSubmittedAt=null,e.askError=null,e.hasResult=!0,e.isHistory=!0,t.status==="answered"?(e.askAnswered=!0,e.selectedAnswers=t.answers,e.askExpired=!1):(e.askAnswered=!1,e.selectedAnswers=null,e.askExpired=!0),e}function MI(e,t){return(e||[]).find(s=>s?.type==="tool-use"&&(s.toolName==="AskUser"||s.toolName==="AskUserQuestion")&&s.toolId===t.toolCallId&&Vn(s)===t.sessionId&&(s.vpId||s.speakerVpId||"")===(t.vpId||"")&&(s.turnId||"")===(t.turnId||"")&&(s.threadId||"main")===(t.threadId||"main"))||null}function oh(e,t,s,n,r=null){let i=new Set((n||[]).map(c=>wI(SI(c,r))).filter(Boolean)),o=new Set,a=[],l=0;for(let c of e){if(!c||c._reflection||c.internal||c.systemOnly||c.systemOnlyMessage||AI(c.content))continue;let d=c.id||c.messageId||null,u=c.clientMessageId||null,p=c.sessionId??c.groupId??t??null,f=Zi(r,p,d),g=u?Fn(r,p,u):f,v=c.historyEntryId?{historyEntryId:c.historyEntryId,...Number.isFinite(c.historyIndexGeneration)?{historyIndexGeneration:c.historyIndexGeneration}:{}}:{},h=f&&(o.has(f)||s!=="recent"&&i.has(f));if(f&&o.add(f),c.role==="user"){if(h)continue;l+=1;let m=d||c.messageId||c.turnId||null;a.push({...d?{id:d,messageId:d}:{},...f?{stableKey:f}:{},...g?{uiKey:g}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"user",content:c.content,timestamp:Gg(c),sessionId:p,turnId:c.turnId||m,...u?{clientMessageId:u}:{},...Array.isArray(c.attachments)&&c.attachments.length>0?{attachments:c.attachments}:{},...c.quote?{quote:c.quote}:{},isStreaming:!1,isHistory:!0})}else if(c.role==="assistant"){h||(l+=1);let m=d||c.messageId||c.turnId||null,y=kI(c,p),k=Gg(c),w=!!c.turnId,b=c.turnId||m,S=typeof c.content=="string"?c.content:c.content||"",C=Array.isArray(c.todos)?c.todos:yI(c.toolCalls),_=c.executionOrigin==="route_forward"?{executionOrigin:"route_forward"}:{};!h&&(typeof S!="string"||S.trim())&&a.push({...d?{id:d,messageId:d}:{},...f?{stableKey:f}:{},...g?{uiKey:g}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),...c.entryId?{entryId:c.entryId}:{},...Array.isArray(c.sourceMessageIds)?{sourceMessageIds:c.sourceMessageIds}:{},type:"assistant",content:S,timestamp:k,sessionId:p,turnId:b,_hasPersistedTurnId:w,..._,...y?{vpId:y,speakerVpId:y}:{},...c.presentation?{presentation:c.presentation}:{},...c.presentationCallId?{presentationCallId:c.presentationCallId}:{},...c.responseKind==="progress"||c.responseKind==="result"?{responseKind:c.responseKind}:{},...Number.isInteger(c.llmCallCount)&&c.llmCallCount>0?{llmCallCount:c.llmCallCount}:{},...Number.isFinite(c.inputTokens)&&c.inputTokens>=0?{inputTokens:c.inputTokens}:{},...Number.isFinite(c.outputTokens)&&c.outputTokens>=0?{outputTokens:c.outputTokens}:{},...Number.isFinite(c.totalTokens)&&c.totalTokens>=0?{totalTokens:c.totalTokens}:{},...Number.isFinite(c.totalMs)&&c.totalMs>=0?{totalMs:c.totalMs}:{},...typeof c.model=="string"&&c.model?{model:c.model}:{},...typeof c.effort=="string"&&c.effort?{effort:c.effort}:{},...c.incomplete===!0?{incomplete:!0}:{},...typeof c.stopReason=="string"&&c.stopReason?{stopReason:c.stopReason}:{},isStreaming:!1,isHistory:!0}),Array.isArray(C)&&C.length>0&&a.push({...d?{id:`${d}:todos`,messageId:`${d}:todos`,persistedMessageId:d}:{},...f?{stableKey:`${f}:todos`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",toolName:"TodoWrite",toolInput:{todos:C},timestamp:k,startTime:k||0,sessionId:p,turnId:b,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0,hasResult:!0});for(let[M,E]of(Array.isArray(c.toolCalls)?c.toolCalls:[]).entries()){if(!E||E.name==="TodoWrite")continue;let W=E.id||`index:${M}`,$=encodeURIComponent(String(W));a.push({...d?{id:`${d}:tool:${$}`,messageId:`${d}:tool:${$}`,persistedMessageId:d}:{},...f?{stableKey:`${f}:tool:${$}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",toolId:E.id||null,toolName:E.name||"unknown",toolInput:E.input||{},timestamp:k,startTime:k||0,sessionId:p,turnId:b,...c.threadId?{threadId:c.threadId}:{},..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0,hasResult:!0})}for(let M of Array.isArray(c.images)?c.images:[]){if(!M?.assetId)continue;let E=M.sourceToolCallId?`${M.assetId}:tool:${encodeURIComponent(M.sourceToolCallId)}`:M.assetId,W=Number.isInteger(M.sourceImageIndex)?`${E}:index:${M.sourceImageIndex}`:E;a.push({id:`${d||m||b}:image:${W}`,messageId:`${d||m||b}:image:${W}`,...d?{persistedMessageId:d}:{},...f?{stableKey:`${f}:image:${W}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"chat-image",...M,timestamp:k,sessionId:p,turnId:b,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1,isHistory:!0})}for(let M of Array.isArray(c.askUserResults)?c.askUserResults:[]){if(!M?.toolCallId||M.status!=="answered"&&M.status!=="expired")continue;let E=[{question:typeof M.question=="string"?M.question:"",options:(Array.isArray(M.options)?M.options:[]).filter(Q=>typeof Q=="string").map(Q=>({label:Q,description:""})),multiSelect:!1}],W={toolCallId:M.toolCallId,sessionId:p,vpId:y||"",turnId:b||"",threadId:c.threadId||"main"},$=MI(n,W);if($){Object.assign($,v),Qg($,M,E);let Q=a.findIndex(T=>T?.type==="tool-use"&&T.toolId===M.toolCallId&&(T.sessionId??T.groupId??null)===($.sessionId??$.groupId??null)&&(T.turnId||"")===($.turnId||""));Q>=0&&a.splice(Q,1);continue}let x=Qg({id:`${d||m||b}:ask:${M.toolCallId}`,messageId:`${d||m||b}:ask:${M.toolCallId}`,...d?{persistedMessageId:d}:{},...f?{stableKey:`${f}:ask:${M.toolCallId}`}:{},...v,seq:Number.isFinite(c.seq)?c.seq:yr(d),type:"tool-use",timestamp:k,sessionId:p,turnId:b,threadId:W.threadId,..._,...y?{vpId:y,speakerVpId:y}:{},isStreaming:!1},M,E),D=Yg(x);(!D||!a.some(Q=>Yg(Q)===D))&&a.push(x);let Z=a.findIndex(Q=>Q!==x&&Q?.type==="tool-use"&&Q.toolId===M.toolCallId&&(Q.sessionId??Q.groupId??null)===(x.sessionId??x.groupId??null)&&(Q.turnId||"")===(x.turnId||""));Z>=0&&a.splice(Z,1)}}}return{formatted:a,acceptedHistoryMessages:l}}function ah(e,t){let s=t.sessionId!=null?t.sessionId:t.groupId,n=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(mn(e,n,t.conversationId)){let A=e.yeaftConversationIdsByAgent?.[n]||null;if(!A||A===t.conversationId)return;js(e,t.conversationId,A,{removeSource:t.conversationId!==e.yeaftConversationId}),t={...t,conversationId:A}}if(t.requestId&&typeof e.isCurrentYeaftHistoryResponse=="function"&&!e.isCurrentYeaftHistoryResponse(t))return;let r=t.mode==="recent"||t.mode==="delta"?t.mode:"older",i=Array.isArray(t.messages)?t.messages:[],o=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null,a=Ye(o,s),l=e.yeaftSessionHistoryState?.[a]||null;typeof t.streamId=="string"&&typeof l?.streamId=="string"&&(t.streamId!==l.streamId||Number.isFinite(t.revision)&&Number.isFinite(l.revision)&&t.revision!==l.revision)&&(r="recent",typeof e.clearYeaftHistoryMemory=="function"&&(e.clearYeaftHistoryMemory({agentId:o,sessionId:s,preserveLiveRows:!0,preserveSessionOwner:!0}),t.requestId&&l?.requestId===t.requestId&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[a]:{requestId:l.requestId,generation:l.generation,requestedAt:l.requestedAt,mode:l.mode,loading:!0}}))),t.perfTraceId&&jt(e,{traceId:t.perfTraceId,phase:"history.chunk_received",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,bytes:(()=>{try{return JSON.stringify(t).length}catch{return null}})(),detail:{mode:r,rawCount:i.length}});let d=t.agentId||(s&&e.yeaftSessionAgentById?e.yeaftSessionAgentById[s]:null),u=d&&e.yeaftConversationIdsByAgent?e.yeaftConversationIdsByAgent[d]:null,p=t.conversationId||u||e.yeaftConversationId;if(!p){e.yeaftLoadingMoreHistory=!1;return}TI(e,t,s,p),e.messagesMap[p]||(e.messagesMap[p]=[]);let{formatted:f,acceptedHistoryMessages:g}=oh(i,s,r,e.messagesMap[p],d);to(e,p,f);let v=Ws(e),h=0,m=!1;if(r==="recent"){let A=II(v,p,f,s??null);h=A.insertedRows,m=A.preservedEmpty}else if(f.length>0&&(h=v.commitDurable({conversationId:p,sessionId:s??null,rows:f,mode:r}).insertedRows,r==="older"&&typeof e.expandYeaftMessageWindow=="function")){let q=e.yeaftActiveSessionFilter?s??null:null;e.expandYeaftMessageWindow(q,t.turns||10,d)}let y=_s(e);td(e,{conversationId:p,agentId:d,sessionId:s,incomingRows:f,activeAgentId:y.agentId,activeSessionId:y.sessionId});let k=Ye(t.agentId||null,s),w=e.yeaftHistoryCacheState?.[k]||null,b=e.yeaftSessionHistoryState?.[k]||{},S=Number.isFinite(b.serverOldestFetchedSeq)?b.serverOldestFetchedSeq:Number.isFinite(b.oldestSeq)?b.oldestSeq:null,C=Number.isFinite(t.nextBeforeSeq)?t.nextBeforeSeq:Number.isFinite(t.oldestSeq)?t.oldestSeq:m?S:null,_=m&&!Number.isFinite(t.nextBeforeSeq)&&!Number.isFinite(t.oldestSeq)?b.serverHasMore??b.hasMore??!1:t.hasMore,M=r==="delta"?b:zg(b,{mode:r,oldestSeq:C,hasMore:_,ranges:w?.ranges||[],pageKind:t.pageKind,stopAtSeq:t.gapStopAtSeq,cacheEpoch:w?.rangeEpoch??t.cacheEpoch??0}),E=typeof t.latestSeq=="number"?t.latestSeq:b.latestSeq??null,W={streamId:typeof t.streamId=="string"?t.streamId:b.streamId??null,revision:Number.isFinite(t.revision)?t.revision:b.revision??null},$=r==="delta"?{...b,...W,loaded:!0,loading:!1,latestSeq:E,syncingAfterSeq:null,count:(b.count||0)+h}:{...M,...W,loaded:!0,loading:!1,count:w?w.rowCount:r==="older"?(b.count||0)+h:m?b.count||0:g,latestSeq:m&&!Number.isFinite(t.latestSeq)?b.latestSeq??null:E,syncingAfterSeq:null};t.requestId&&typeof e.finishYeaftHistoryLoad=="function"?e.finishYeaftHistoryLoad(t,$,"chunk"):e.yeaftSessionHistoryState&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[k]:$}),r==="delta"&&t.hasMoreAfter===!0&&Number.isFinite($.latestSeq)&&$.latestSeq>Number(t.afterSeq??-1)&&typeof e.continueYeaftHistoryDelta=="function"&&queueMicrotask(()=>e.continueYeaftHistoryDelta(s,d,$.latestSeq));let x=_s(e),D=x.sessionId===(s||null),Z=!t.agentId||!x.agentId||t.agentId===x.agentId,Q=D&&Z,T=Ye(null,x.sessionId);if(t.perfTraceId&&(jt(e,{traceId:t.perfTraceId,phase:"history.chunk_applied",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,formattedCount:f.length,insertedRows:h,acceptedHistoryMessages:g,preservedEmptyRecent:m}}),Da(e,{traceId:t.perfTraceId,phase:"history.next_paint",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,insertedRows:h}})),Q)e.yeaftHasMoreHistory=$.hasMore,e.yeaftOldestLoadedSeq=Number.isFinite($.serverOldestFetchedSeq)?$.serverOldestFetchedSeq:Number.isFinite($.oldestSeq)?$.oldestSeq:e.yeaftOldestLoadedSeq,e.yeaftLoadingMoreHistory=!1;else if(e.yeaftLoadingMoreHistory){let A=e.yeaftSessionHistoryState?.[x.sessionKey]||e.yeaftSessionHistoryState?.[T]||null;e.yeaftLoadingMoreHistory=!!A?.loading}}var La=F(()=>{qn();dd();io();ur();ud();so();un();fd();Ia();Kr();xa();gd();Ji()});function md(e,t,s=null){if(!s)return!1;if(e.promoteYeaftHistoryOutlineRow?.(t,s))return!0;let n=t?.sessionId??t?.groupId??e._currentYeaftSessionId??null;return n?!!e.invalidateYeaftHistoryOutline?.(n,s):!1}function lh(e){let t=e;if(typeof t=="string"){let s=t.trim();if(s.startsWith("[")&&s.endsWith("]")||s.startsWith("{")&&s.endsWith("}"))try{t=JSON.parse(s)}catch{t=e}}return Array.isArray(t)?t.map(s=>typeof s=="string"?s:!s||typeof s!="object"?"":s.type==="text"&&typeof s.text=="string"||s.type==="input_text"&&typeof s.text=="string"?s.text:"").join("").replace(/\n\n\[Uploaded files\][\s\S]*$/m,"").trim():t&&typeof t=="object"?typeof t.text=="string"?t.text.trim():typeof t.content=="string"?t.content.trim():"":typeof t=="string"?t.replace(/\n\n\[Uploaded files\][\s\S]*$/m,"").trim():""}function vd(e,t){return e.executionStatusMap[t]||(e.executionStatusMap[t]={currentTool:null,toolHistory:[],lastActivity:null}),e.executionStatusMap[t]}function ch(e,t,s,n=null){if(!t)return;let r=vd(e,t);if(r.lastActivity=Date.now(),Ra(e,t),s.type==="system"){if(s.subtype==="init"){let i=e.conversations.find(o=>o.id===t);i&&i.connecting&&(i.connecting=!1);return}s.message&&e.addMessageToConversation(t,{type:"system",content:typeof s.message=="string"?s.message:JSON.stringify(s.message,null,2)});return}if(s.type==="assistant"){let i=s.message?.content;if(!i)return;if(s.message?.presentation){if(!s.message.id||!e._currentYeaftSessionId||!e._currentYeaftTurnId||(e.messagesMap[t]||[]).find(c=>(c.messageId||c.id)===s.message.id&&c.sessionId===e._currentYeaftSessionId&&(!n||!c.agentId||c.agentId===n)))return;e.finishStreamingForConversation(t,{completeLifecycle:!1});let l=e.addMessageToConversation(t,{id:s.message.id,messageId:s.message.id,type:"assistant",content:typeof i=="string"?i:lh(i),presentation:s.message.presentation,presentationCallId:s.message.presentationCallId,responseKind:s.message.responseKind==="result"?"result":"progress",timestamp:s.ts||null,isStreaming:!1,status:s.message.responseKind==="result"?"completed":"pending",agentId:n,sessionId:e._currentYeaftSessionId,vpId:e._currentYeaftVpId,turnId:e._currentYeaftTurnId,threadId:e._currentYeaftThreadId});md(e,l,n);return}let o=e.messagesMap[t]||[];for(let a of o)a.type==="tool-use"&&!a.hasResult&&(a.hasResult=!0);for(let a of r.toolHistory)a.status==="running"&&(a.status="done");if(r.currentTool=null,typeof i=="string"){e.appendToAssistantMessageForConversation(t,i,{id:s.message?.id||s.message?.messageId||null,ts:s.ts||s.message?.ts||s.message?.time||null,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null});return}if(!Array.isArray(i))return;if(i.length===0){e.finishStreamingForConversation(t);return}for(let a of i)a.type==="text"?e.appendToAssistantMessageForConversation(t,a.text,{id:s.message?.id||s.message?.messageId||null,ts:s.ts||s.message?.ts||s.message?.time||null,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}):a.type==="image_asset"&&a.image?e.addMessageToConversation(t,{type:"chat-image",...a.image,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,speakerVpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}):a.type==="tool_use"&&(e.finishStreamingForConversation(t,{completeLifecycle:!1}),r.currentTool={name:a.name,input:a.input,startTime:Date.now()},r.toolHistory.unshift({name:a.name,input:a.input,timestamp:Date.now(),status:"running"}),r.toolHistory.length>20&&r.toolHistory.pop(),e.addMessageToConversation(t,{type:"tool-use",toolId:a.id||a.tool_use_id||null,toolName:a.name,toolInput:a.input,startTime:Date.now(),isHistory:a.history===!0||s.history===!0||s.isHistory===!0,sessionId:e._currentYeaftSessionId||null,vpId:e._currentYeaftVpId||null,turnId:e._currentYeaftTurnId||null,threadId:e._currentYeaftThreadId||null}))}else if(s.type==="user"){let i=s.internal===!0||s.message?.internal===!0||s.userAuthored===!1||s.message?.userAuthored===!1,o=s.message?.content,a=lh(o);if(typeof a=="string"&&(a.includes("<local-command-caveat>")||a.includes("<command-name>")))return;if(typeof a=="string"&&a.includes("<local-command-stdout>")){let c=a.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);if(c){e.appendToAssistantMessageForConversation(t,c[1].trim()),e.finishStreamingForConversation(t);return}}let l=[];if(s.tool_use_result)l=Array.isArray(s.tool_use_result)?s.tool_use_result:[s.tool_use_result];else if(s.message?.content){let c=s.message.content;l=(Array.isArray(c)?c:[]).filter(u=>u.type==="tool_result")}if(l.length>0){let c=e.messagesMap[t]||[];for(let d of l){if(r.toolHistory.length>0){let g=r.toolHistory.findIndex(v=>v.status==="running");g>=0&&(r.toolHistory[g].status="done")}let u=d.tool_use_id||d.toolUseId||d.tool_call_id||d.toolCallId||null,p=d.content||d,f=!1;if(u){for(let g=c.length-1;g>=0;g--)if(c[g].type==="tool-use"&&c[g].toolId===u){c[g].hasResult=!0,c[g].toolResult=d.is_update&&c[g].toolResult?`${c[g].toolResult}
2
2
 
3
3
  ${p}`:p,f=!0;break}}if(!f){for(let g=c.length-1;g>=0;g--)if(c[g].type==="tool-use"&&!c[g].hasResult){c[g].hasResult=!0,c[g].toolResult=p;break}}}r.currentTool=null}else if(!i&&(typeof a=="string"&&a.trim()||Array.isArray(s.message?.attachments)&&s.message.attachments.length>0)){let c=s.message?.clientMessageId||s.clientMessageId||null,d={type:"user",content:a,clientMessageId:c},u=e.messagesMap[t]||[];if(u.some(f=>$a(f,d))){if(c){for(let f=u.length-1;f>=0;f--)if(u[f].type==="user"&&u[f].clientMessageId===c){s.dbMessageId&&!u[f].dbMessageId&&(u[f].dbMessageId=s.dbMessageId),s.message?.id&&!u[f].messageId&&(u[f].id=s.message.id,u[f].messageId=s.message.id),s.ts&&!u[f].ts&&(u[f].ts=s.ts),md(e,u[f],n);break}}}else{let f=e.addMessageToConversation(t,{...s.message?.id?{id:s.message.id,messageId:s.message.id}:{},...s.ts?{ts:s.ts}:{},type:"user",content:a,...s.message?.attachments?{attachments:s.message.attachments}:{},...s.message?.quote?{quote:s.message.quote}:{},...c?{clientMessageId:c}:{}});md(e,f,n)}}}else if(s.type==="result"){delete e.processingConversations[t],tt(e,t);let i=e.conversations.find(d=>d.id===t);i&&i.connecting&&(i.connecting=!1);let o=e._currentYeaftSessionId||null;if(e._currentYeaftTurnId){let d=Object.entries(e.activeVpTurns||{}).find(([,u])=>(u?.turnId===e._currentYeaftTurnId||!u?.turnId&&u===e.activeVpTurns[e._currentYeaftTurnId])&&(!e._currentYeaftAgentId||!u?.agentId||u.agentId===e._currentYeaftAgentId));if(d){let[u,p]=d,{[u]:f,...g}=e.activeVpTurns;!o&&p?.sessionId&&(o=p.sessionId),e.activeVpTurns=g}}if(o&&e._currentYeaftVpId&&e.vpStatuses){let d=e._currentYeaftTurnId||null,u={...e.vpStatuses||{}},p=!1;for(let[f,g]of Object.entries(u))!g||g.vpId!==e._currentYeaftVpId||e._currentYeaftAgentId&&g.agentId&&g.agentId!==e._currentYeaftAgentId||(g.sessionId||g.groupId||null)!==o||d&&g.turnId&&g.turnId!==d||(u[f]={...g,state:"idle",turnId:null,since:Date.now()},p=!0);p&&(e.vpStatuses=u)}o&&typeof e.clearYeaftSessionProcessingIfIdle=="function"&&e.clearYeaftSessionProcessingIfIdle(o,{agentId:e._currentYeaftAgentId||null}),e._closedAt||(e._closedAt={}),e._closedAt[t]=Date.now(),e._turnCompletedConvs||(e._turnCompletedConvs=new Set),e._turnCompletedConvs.add(t),r.currentTool=null,Nn(e,t,e._currentYeaftSessionId?{sessionId:e._currentYeaftSessionId,vpId:e._currentYeaftVpId,turnId:e._currentYeaftTurnId,threadId:e._currentYeaftThreadId}:null);let a=e.messagesMap[t]||[],l=s.result_text||"";if(typeof l=="string"&&l.trim()){let d=!1;for(let u=a.length-1;u>=0;u--){if(a[u].type==="assistant"){d=!0;break}if(a[u].type==="user")break}d||e.appendToAssistantMessageForConversation(t,l.trim())}e.finishStreamingForConversation(t),!(n&&e.promoteCompletedYeaftHistoryOutline?.(t,e._currentYeaftTurnId||null,n))&&o&&n&&e.invalidateYeaftHistoryOutline?.(o,n),e.sweepStaleStreamingForConversation(t),o&&n&&e.pruneConversationMessageRetention?.(t,o,n)}}var dh=F(()=>{qn();La();ud()});function _I(e){let t={Recall:["recall","recalling"],Think:["methodRead","readingMethod"],"catalog.search":["skillSearch","searchingSkills"],"catalog.view":["skillRead","readingSkill"],"Skill.reconsider":["methodRead","readingMethod"],"Skill.associate":["methodRead","readingMethod"],"Capability.create":["capabilityCreate","validatingCapability"]};return Object.hasOwn(t,e)?{label:Ft(t[e][0]),phase:Ft(t[e][1]),params:{}}:typeof e=="string"&&/^Script\.[a-z][a-z0-9-]{0,47}$/.test(e)?{label:Ft("script"),phase:Ft("runningScript"),params:{name:e}}:{label:Ft("capability"),phase:Ft("usingCapability"),params:{}}}function yd(e){return(Array.isArray(e)?e:[]).filter(t=>t&&typeof t.episodeId=="string"&&RI.has(t.kind)).map(t=>({id:t.id,episodeId:t.episodeId,callId:typeof t.callId=="string"?t.callId:null,seq:Number.isSafeInteger(t.seq)?t.seq:0,kind:t.kind,at:uo(t.createdAt),...t.kind==="accepted"?{trigger:["send","think","dream"].includes(t.trigger?.kind)?t.trigger.kind:null}:{},...t.kind.startsWith("capability_")?{..._I(t.capability?.id??t.capabilityId),failed:t.kind==="capability_failed"||t.outcome==="capability_failed"||t.result?.ok===!1}:{}})).sort((t,s)=>t.seq-s.seq).slice(-50)}function uh(e,t=""){let s=e.latestEpisode;if(!e.busy||e.commandPending||e.cancelPending||e.loading||e.retryCommand||s?.status!=="running"||s.id!==e.episodeId||e.feedbackSuppressedEpisodeId===s.id||!bd(e,t).loading)return null;let n=uo(s.feedback?.at),r=uo(s.createdAt),i=s.feedback?.phase;return n==null||r==null||n<r||!["model","capability","preparing"].includes(i)||(e.messages||[]).some(o=>o.role==="assistant"&&o.episodeId===s.id&&typeof o.text=="string"&&o.text.trim()&&uo(o.createdAt)>=n)?null:{at:new Date(n).toISOString(),label:`person.feedback.${i}`}}function bd(e,t=""){let s=e.commandPending,n=!!e.retryCommand&&!e.busy,r=s||n?null:e.episodeId||e.latestEpisode?.id||e.activityEpisodeId,i=s||n?[]:(e.activityRecords||[]).filter(m=>m.episodeId===r),o=i.find(m=>m.kind==="accepted"),a=i.findLast(m=>Oa[m.kind]),l=e.latestEpisode?.id===r?e.latestEpisode:null,c=Oa[l?.status]||Oa[a?.kind],d=!c&&(e.busy||s),u=!["disabled","unsupported","noAgent"].includes(t)&&!!(d||c||i.length||e.retryCommand),p=[],f=new Map,g=Ft(o?.trigger==="dream"?"dreaming":o?.trigger==="think"?"thinking":"preparing"),v={};for(let m of i){let y=m.kind.startsWith("call_");if(!y&&!m.kind.startsWith("capability_"))continue;let k=`${y?"model":"capability"}:${m.callId||m.id}`,w=f.get(k);w||(w={id:k,label:y?Ft("model"):m.label,params:y?{}:m.params,status:"running",durationMs:null,start:null},f.set(k,w),p.push(w)),m.kind.endsWith("_started")?(w.start=m.at,y?(g=Ft("modelRequest"),v={}):(g=m.phase,v=m.params)):(w.status=m.kind==="call_failed"||m.failed?"failed":"completed",w.durationMs=w.start!=null&&m.at!=null&&m.at>=w.start?m.at-w.start:null,g=Ft(y&&m.kind==="call_output"?"processingResponse":"preparing"),v={})}for(let m of p)m.status==="running"&&(c||!d)&&(m.status=["cancelled","interrupted"].includes(c)?c:"unknown"),m.status==="running"&&(t||e.activityStale||e.progressStale)&&(m.status="unknown"),delete m.start;let h=g;return c?h=Ft(c):s?h=Ft("confirming"):e.cancelPending?h=Ft("stopping"):e.retryCommand&&!e.busy?h=Ft("uncertain"):(!d||e.activityStale||e.progressStale)&&(h=Ft("stale")),(t==="disconnected"||t==="offline")&&(h=Ft("disconnected")),h!==g&&(v={}),{visible:u,loading:u&&d&&!t&&!e.activityStale&&!e.progressStale,label:h,params:v,episodeId:r,rows:p.slice(-30),startedAt:o?.at??null,endedAt:uo(l?.endedAt)??a?.at??null,limited:p.length>30||!!i.length&&!o}}var Oa,RI,Ft,uo,kd=F(()=>{Oa={committed:"completed",completed:"completed",failed:"failed",cancelled:"cancelled",interrupted:"interrupted",budget_exhausted:"budgetExhausted"},RI=new Set(["accepted","call_started","call_output","call_failed","capability_started","capability_result","capability_failed","capability_finalized",...Object.keys(Oa)]),Ft=e=>`person.activity.${e}`,uo=e=>{let t=e==null?NaN:new Date(e).getTime();return Number.isFinite(t)?t:null}});function po(e){if(typeof e!="string"||e.length>4096||!/^https?:\/\//i.test(e)||/[\s\u0000-\u001f\u007f\\]/.test(e)||/^https?:\/\/[^/?#]*@/i.test(e))return"";try{let t=new URL(e);return["http:","https:"].includes(t.protocol)&&!t.username&&!t.password?t.href:""}catch{return""}}function EI(e){if(e?.kind==="link")return"link";let t=String(e?.mimeType||"").split(";")[0].toLowerCase();return t==="text/html"?"html":t==="text/markdown"?"markdown":/^image\/(png|jpeg|gif|webp|avif|bmp)$/.test(t)?"image":t==="application/pdf"?"pdf":t.startsWith("text/")||/^(application\/(json|[^;]+\+json|xml|javascript|x-javascript))$/.test(t)?"text":"binary"}function gh(e){let t=document.createElement("template");t.innerHTML=String(e);let s=new DOMParser().parseFromString("<!doctype html><html><head></head><body></body></html>","text/html"),n=new Set("html head body title style div span p br hr h1 h2 h3 h4 h5 h6 pre code blockquote ul ol li dl dt dd table thead tbody tfoot tr th td caption colgroup col b strong i em u s del ins small sub sup details summary figure figcaption img a section article header footer main nav aside".split(" ")),r=new Set("class id style title lang dir colspan rowspan width height alt open".split(" "));for(let o of[...t.content.querySelectorAll("*")]){if(!n.has(o.localName)){o.remove();continue}for(let a of[...o.attributes])r.has(a.name)||o.removeAttribute(a.name)}s.body.append(t.content);let i=s.createElement("meta");return i.httpEquiv="Content-Security-Policy",i.content="default-src 'none'; script-src 'none'; style-src 'unsafe-inline'; img-src 'none'; font-src 'none'; connect-src 'none'; media-src 'none'; object-src 'none'; frame-src 'none'; base-uri 'none'; form-action 'none'; navigate-to 'none'",s.head.prepend(i),"<!doctype html>"+s.documentElement.outerHTML}function ph(e,t){let s=new Set;return[...t,...e].filter(n=>n?.id&&!s.has(n.id)&&s.add(n.id))}function hh({state:e,request:t,identity:s,urls:n=URL}){let r=0,i=0,o=null,a=null,l=!1,c=(m,y)=>m===r&&y===s();function d(){r++,o?.abort(),o=null,e.preview.url&&n.revokeObjectURL(e.preview.url),e.preview=fh()}function u(){d(),i++,a?.abort(),a=null,e.loading=!1}function p(){u(),Object.assign(e,wd())}function f(m){if(!m||!Array.isArray(m.items))return;e.loading&&l&&(i++,a?.abort(),a=null,e.loading=!1);let y=new Set(e.items.map(k=>k.id));m.items.length&&e.items.length&&!m.items.some(k=>y.has(k.id))?(i++,a?.abort(),a=null,e.loading=!1,e.historyPaged=!1,e.items=m.items,e.nextCursor=m.nextCursor??null):(e.items=ph(e.items,m.items),(!e.loaded||!e.historyPaged)&&(e.nextCursor=m.nextCursor??null)),e.loaded=!0}async function g(m=!1){if(e.loading||m&&e.nextCursor==null)return;let y=s(),k=++i;l=!m,e.loading=!0,e.error=null,a=new AbortController;let w=a.signal;try{let b=await t("outputs",{...m?{cursor:e.nextCursor}:{},limit:20},{signal:w});if(k!==i||y!==s())return;m?(e.items=ph(b.items||[],e.items),e.historyPaged=!0,e.nextCursor=b.nextCursor??null,e.loaded=!0):(e.loading=!1,a=null,f(b))}catch(b){k===i&&y===s()&&(e.error={code:b.code||"requestFailed",message:b.message})}finally{k===i&&y===s()&&(e.loading=!1,a=null)}}async function v(m){if(m?.id===e.selected?.id&&["ready","loading"].includes(e.preview.status)||(d(),e.selected=m,!m))return;e.tabs.some(M=>M.item.id===m.id)||e.tabs.push({item:m,scrollTop:0,scrollLeft:0});let y=r,k=s(),w=e.preview;if(w.kind=EI(m),w.totalBytes=Number(m.size)||0,m.kind==="link"){po(m.url)?w.status="ready":(w.status="error",w.error={code:"unsafeUrl"});return}if(w.totalBytes>10485760){w.status="error",w.error={code:"tooLarge"};return}w.status="loading",o=new AbortController;let b=o.signal,S=[],C=0,_=null;try{for(;;){if(!c(y,k)||b.aborted)return;let x=await t("output_read",{outputId:m.id,offset:C,maxBytes:65536},{signal:b});if(!c(y,k)||b.aborted)return;if(x.outputId!==m.id||x.offset!==C||!Number.isSafeInteger(x.totalBytes)||x.totalBytes<0||typeof x.data!="string"||x.data.length>Math.ceil(65536/3)*4||typeof x.eof!="boolean")throw Fa("invalidChunk");if(x.totalBytes>10485760)throw Fa("tooLarge");if(_!==null&&x.totalBytes!==_)throw Fa("invalidChunk");_=x.totalBytes;let D=atob(x.data),Z=Uint8Array.from(D,Q=>Q.charCodeAt(0));if(Z.length>65536||x.nextOffset!==C+Z.length||x.nextOffset>x.totalBytes||!x.eof&&!Z.length||x.eof&&x.nextOffset!==x.totalBytes)throw Fa("invalidChunk");if(S.push(Z),C=x.nextOffset,w.bytes=C,w.totalBytes=x.totalBytes,x.eof)break}if(!c(y,k))return;let M=new Uint8Array(C),E=0;for(let x of S)M.set(x,E),E+=x.length;let W=w.kind==="image"?m.mimeType:"application/octet-stream",$=new Blob([M],{type:W});["markdown","text","html"].includes(w.kind)&&(w.text=new TextDecoder().decode(M)),w.blob=$,w.url=n.createObjectURL($),w.status="ready"}catch(M){if(!c(y,k)||b.aborted)return;w.status="error",w.text="",w.bytes=0,w.error={code:M.code||"requestFailed",message:M.message}}}function h(m){let y=e.tabs.findIndex(k=>k.item.id===m);if(!(y<0)&&(e.tabs.splice(y,1),e.selected?.id===m))return v(e.tabs[Math.min(y,e.tabs.length-1)]?.item||null)}return{reset:p,snapshot:f,list:g,select:v,close:u,closeTab:h,resume(){if(e.selected&&e.preview.status==="idle")return v(e.selected)}}}var Fa,fh,wd,qa=F(()=>{Fa=e=>Object.assign(new Error(e),{code:e}),fh=()=>({status:"idle",text:"",url:"",bytes:0,totalBytes:0,error:null,kind:"",blob:null}),wd=()=>({items:[],nextCursor:null,loaded:!1,loading:!1,error:null,historyPaged:!1,tabs:[],selected:null,preview:fh()})});function fo(e,t){let s=i=>{let o=i==null?NaN:new Date(i).getTime();return Number.isSafeInteger(o)&&o>=0?o:0},n=String(e.recordId??e.id),r=String(t.recordId??t.id);return s(t.createdAt)-s(e.createdAt)||(n<r?-1:n>r?1:0)}var Sd=F(()=>{});function At(e,t){if(!t)return"noAgent";if(!Object.hasOwn(e.digitalPersonUiEnabledByAgent||{},t)||e.digitalPersonUiEnabledByAgent[t]!==!0)return"disabled";if(e.connectionState!=="connected"||!e.authenticated)return"disconnected";let s=e.agents.find(n=>n.id===t);return s?.online?s.capabilities?.includes("digital_person")?"":"unsupported":"offline"}function yh(e,t){let s=Jr.get(e)?.get(t.requestId);if(!s||t.agentId!==s.agentId||t.op!==s.op||!s.current())return!1;if(s.finish(),t.ok===!0)s.resolve(t.data);else{let n=typeof t.error=="string"?t.error:t.error?.message;s.reject(Object.assign(new Error(n||"requestFailed"),{code:t.errorCode||t.error?.code||"requestFailed"}))}return!0}function Ad(){return{loading:!1,configured:null,storageReady:null,modelReady:null,reason:"",person:null,state:null,latestEpisode:null,messages:[],traces:[],busy:!1,episodeId:null,error:null,messageCursor:null,traceCursor:null,messagesLoading:!1,tracesLoading:!1,commandPending:!1,commandEpisodeId:null,cancelPending:!1,retryCommand:null,tracesStale:!1,activityRecords:[],activityEpisodeId:null,activityStale:!1,progressStale:!1,feedbackSuppressedEpisodeId:null,models:[],modelCandidates:[],effectiveModelCandidates:[],defaultModel:null,agentDefaultModel:null,effectiveDefaultModel:null,defaultModelSupported:!1,settingsPending:!1,autonomySupported:!1,renameSupported:!1,outputsSupported:!1,outputsFileSupported:null,outputs:wd(),memory:go(),skills:go(),search:{...go(),query:""},turns:{...go(),stale:!1},executions:{active:null,loaded:!1,loading:!1,stale:!1,error:null,pending:null},tasks:{tasks:[],agents:[],active:{tasks:[],agents:[],truncated:!1},nextCursor:null,loaded:!1,loading:!1,stale:!1,error:null,pending:null},taskLog:{taskId:"",text:"",nextOffset:0,loading:!1,error:null}}}function bh(e,t){let s=new Map(e.map(n=>[n.id,n]));for(let n of t||[])n?.id&&s.set(n.id,n);return[...s.values()].sort((n,r)=>{if(Number.isSafeInteger(n.seq)&&Number.isSafeInteger(r.seq))return n.seq-r.seq;let i=new Date(n.createdAt).getTime()-new Date(r.createdAt).getTime();return Number.isFinite(i)&&i!==0?i:String(n.id).localeCompare(String(r.id))})}function DI(e,t){if(!e)return t;let s=Number.isSafeInteger(e.revision)?e.revision:0,n=Number.isSafeInteger(t.revision)?t.revision:0,r=n<s?{...t,...e}:{...e,...t};return["received","stopped"].includes(e.deliveryState)&&(n<=s||!["received","stopped"].includes(t.deliveryState))&&(r.deliveryState=e.deliveryState,e.receivedAt&&(r.receivedAt=e.receivedAt)),r}function Id(e,t,s=!1){let n=new Map(e.map(r=>[r.id,r]));return bh(s?[]:e,(t||[]).map(r=>DI(n.get(r?.id),r)))}function kh({chat:e,state:t,scope:s,timeoutMs:n=3e4,pollMs:r=1500,reupload:i=null,foreground:o=()=>globalThis.document?.visibilityState!=="hidden"}){Jr.has(e)||Jr.set(e,new Map);let a=0,l="",c="",d=null,u=!1,p=0,f=0,g=0,v=!1,h=!1,m=0,y=0,k=null,w=!1,b=!1,S=null,C=0,_=0,M=!1,E=null,W=0,$=!1,x=null,D=0,Z=new Set,Q=hh({state:t.outputs,request:ne,identity:()=>JSON.stringify([s(),l,t.person?.id,a])}),T=(I=a)=>!w&&I===a&&c===s(),A=()=>{let I=Cd.get(e);return(!I||I.scope!==s())&&(I={scope:s(),commands:new Map,files:new Map},Cd.set(e,I)),I.commands},q=()=>(A(),Cd.get(e).files),H=I=>{t.error={code:I.code||"requestFailed",message:I.message}};function N(I){t.renameSupported=I.renameSupported===!0,t.autonomySupported=I.autonomySupported===!0,t.outputsSupported=I.outputsSupported===!0,t.outputsFileSupported=typeof I.outputsFileSupported=="boolean"?I.outputsFileSupported:null,t.defaultModelSupported=I.defaultModelSupported===!0,t.models=I.availableModels||I.models||[],Array.isArray(I.modelCandidates)&&(t.modelCandidates=I.modelCandidates),Object.hasOwn(I,"defaultModel")&&(t.defaultModel=I.defaultModel??null),t.agentDefaultModel=I.agentDefaultModel??null,t.effectiveDefaultModel=I.effectiveDefaultModel??null,t.effectiveModelCandidates=I.effectiveModelCandidates||[]}function ne(I,K={},{signal:L}={}){let X=a;if(!T(X)||L?.aborted)return Promise.reject(zs("stale"));let le=At(e,l);if(le)return Promise.reject(zs(le));let _e=`person-${vh()}`;return new Promise((Ee,Fe)=>{let J=()=>{L?.removeEventListener("abort",ie),clearTimeout(Re),Jr.get(e).delete(_e),Z.delete(_e)},ie=()=>{J(),Fe(zs("stale"))},Re=setTimeout(()=>{J(),Fe(zs("timeout"))},n);L?.addEventListener("abort",ie,{once:!0}),Jr.get(e).set(_e,{agentId:l,op:I,current:()=>T(X),finish:J,resolve:Ee,reject:Fe}),Z.add(_e),e.sendWsMessage({type:"person_request",agentId:l,requestId:_e,op:I,payload:K})||(J(),Fe(zs("disconnected")))})}function ye(I=""){let K=["disconnected","offline"].includes(At(e,I)),L=I===l&&c===s()&&K?{activityRecords:t.activityRecords,activityEpisodeId:t.episodeId||t.activityEpisodeId,latestEpisode:t.latestEpisode,busy:t.busy,activityStale:!0,progressStale:!0}:{},X=I===l&&c===s()?t.feedbackSuppressedEpisodeId:null;Q.reset(),a+=1,g+=1,clearTimeout(d),clearTimeout(E),clearTimeout(S),S=null,C+=1,b=!1,clearTimeout(x),x=null,D+=1,$=!1,E=null,W+=1,M=!1,d=null,u=!1;for(let le of Z){let _e=Jr.get(e).get(le);_e?.finish(),_e?.reject(zs("stale"))}l=I,c=s(),v=!1,h=!1,m+=1,y=0,k=null,Object.assign(t,Ad(),L,{outputs:t.outputs,feedbackSuppressedEpisodeId:X,retryCommand:A().get(l)||null})}async function me({automatic:I=!1}={}){let K=a,L=++p,X=()=>T(K)&&L===p&&(!I||ae()),le;try{le=await ne("snapshot")}catch(J){if(!X())return;throw t.progressStale=!0,J}if(!X())return;t.person&&t.person.id!==le.person?.id&&Q.reset(),t.person=le.person,t.outputsSupported&&Q.snapshot(le.outputs),t.modelCandidates=le.person?.settings?.modelCandidates||[],t.defaultModel=le.person?.settings?.defaultModel??null,t.state=le.state,t.latestEpisode=le.latestEpisode||null,$I.has(t.latestEpisode?.status)&&(t.feedbackSuppressedEpisodeId=t.latestEpisode.id);let _e=le.messages||[],Ee=t.messages.at(-1)?.seq,Fe=_e[0]?.seq;if(!t.messages.length||Number.isSafeInteger(Fe)&&Number.isSafeInteger(Ee)&&Fe>Ee+1)f+=1,g+=1,t.messages=Id(t.messages,_e,!0),t.messageCursor=le.nextMessagesCursor??null;else{let J=new Set(t.messages.map(ie=>ie.id));_e.some(ie=>!J.has(ie.id))&&(f+=1),t.messages=Id(t.messages,_e)}return t.busy=le.busy===!0,t.episodeId=le.episodeId||null,t.activityEpisodeId=t.episodeId||t.latestEpisode?.id||t.activityEpisodeId,t.progressStale=!1,!0}async function G(){let I=a,K=++m;try{let L=await ne("traces",{cursor:null,limit:mh});if(!T(I)||K!==m)return;t.activityRecords=yd(L.items),t.activityStale=!1}catch(L){if(!T(I)||K!==m)return;t.activityStale=!0,H(L)}}async function pe(I,K=!1,{preserveHistory:L=!1}={}){let X=a;if(!T(X))return;let le=I==="messages"?"messagesLoading":"tracesLoading",_e=I==="messages"?"messageCursor":"traceCursor";if(I==="traces"&&!K){if(y+=1,t.tracesStale=!0,L&&(v||h))return G();if(t.tracesLoading){(!k||!L)&&(k={preserveHistory:L});return}}if(t[le]||K&&t[_e]==null)return;t[le]=!0,I==="traces"&&K&&(h=!0);let Ee=I==="traces"&&!K?++m:null,Fe=y,J=I==="messages"&&!K?++f:f,ie=g;try{let Re=await ne(I,{cursor:K?t[_e]:null,limit:mh});if(!T(X)||I==="messages"&&(K?ie!==g:J!==f))return;let Le=I==="traces"&&!K&&L&&v;Le||(t[I]=I==="messages"?Id(t.messages,Re.items,!K):bh(K?t[I]:[],Re.items),t[_e]=Re.nextCursor??null),I==="traces"&&!K&&Ee===m&&Fe===y&&(t.activityRecords=yd(Re.items),t.activityStale=!1),I==="traces"&&!Le&&(v=K,!K&&Fe===y&&(t.tracesStale=!1))}catch(Re){T(X)&&(I==="traces"&&!K&&Ee===m&&(t.activityStale=!0),H(Re))}finally{if(T(X)&&(t[le]=!1,I==="traces"&&K&&(h=!1),I==="traces"&&k)){let Re=k;k=null,await pe("traces",!1,Re)}}}function ae(){return T()&&o()&&t.person&&!t.loading&&!t.settingsPending&&!t.commandPending&&!t.cancelPending&&!t.executions.pending&&(t.busy||t.person.settings?.autonomyEnabled===!0)&&!At(e,l)}function de(){if(clearTimeout(d),d=null,!ae()||u)return;let I=a;d=setTimeout(()=>{T(I)&&he()},r)}async function he(){if(clearTimeout(d),d=null,!ae()||u)return;let I=a,K=t.busy,L=`${t.latestEpisode?.id}:${t.latestEpisode?.status}`;u=!0;try{if(!await me({automatic:!0})||!T(I))return;(K||t.busy||L!==`${t.latestEpisode?.id}:${t.latestEpisode?.status}`)&&await pe("traces",!1,{preserveHistory:!0})}catch(X){T(I)&&H(X)}finally{T(I)&&(u=!1,de())}}async function re(I){if(ye(I),At(e,l))return;let K=a;t.loading=!0;try{let L=await ne("status");if(!T(K)||(t.configured=L.configured===!0,t.storageReady=L.storageReady!==!1,t.modelReady=L.modelReady!==!1,t.reason=L.reason||"",N(L),!t.configured||!t.storageReady)||(await ne("open"),!T(K))||(await me(),!T(K)))return;await Promise.all([pe("messages"),pe("traces")])}catch(L){T(K)&&H(L)}finally{T(K)&&(t.loading=!1,de())}}async function j({preserveHistory:I=!1}={}){if(!t.person||t.storageReady===!1)return re(l);let K=a;if(!t.loading){t.loading=!0,t.error=null;try{let L=await ne("status");if(!T(K)||(t.configured=L.configured===!0,t.storageReady=L.storageReady!==!1,t.modelReady=L.modelReady!==!1,t.reason=L.reason||"",N(L),!t.configured||!t.storageReady))return;await me(),T(K)&&await Promise.all([pe("messages"),pe("traces",!1,{preserveHistory:I})])}catch(L){T(K)&&H(L)}finally{T(K)&&(t.loading=!1,de())}}}async function O(I,K="",L=!1,X=[]){if(t.commandPending||!L&&I!=="send"&&(t.settingsPending||t.loading)||!t.person||!L&&(!t.configured||t.modelReady===!1)||At(e,l)||t.retryCommand&&!L||!L&&(I!=="send"&&t.busy||I==="send"&&!K.trim()&&!X.length))return!1;let le=L?t.retryCommand:{op:I,payload:{...I==="dream"?{}:{text:K.trim(),...X.length?{attachments:X.map(({fileId:ie})=>({fileId:ie}))}:{}},clientMessageId:vh()}};if(!le)return!1;let _e=a,Ee=t.person.id,Fe=t.busy,J=_;L||q().set(l,X.map(ie=>ie.file).filter(Boolean)),A().set(l,le),t.retryCommand=le,t.commandPending=!0,t.commandEpisodeId=null,t.error=null;try{let ie,Re=!!le.payload.attachments?.length,Le=async()=>{let Ne=q().get(l);if(!i||Ne?.length!==le.payload.attachments.length)throw zs("attachment_expired");let kt=await i(Ne);if(!T(_e))throw zs("stale");le.payload={...le.payload,attachments:kt.map(({fileId:Ct})=>({fileId:Ct}))}};if(L){let Ne=await ne("receipt",{clientMessageId:le.payload.clientMessageId});if(!T(_e))return!1;if(Ne.found){if(Ne.kind!==le.op||Ne.text!==(le.payload.text??""))throw zs("idempotency_conflict");ie=Ne}else{if(!t.configured||t.modelReady===!1)throw zs("model_unavailable");Re&&i&&await Le()}}if(!ie)try{ie=await ne(le.op,le.payload)}catch(Ne){if(Ne.code!=="attachment_expired"||!Re||!i||!T(_e))throw Ne;await Le(),ie=await ne(le.op,le.payload)}return T(_e)?(A().delete(l),q().delete(l),t.retryCommand=null,p+=1,t.commandEpisodeId=ie.episodeId||null,ie.messageId&&["queued","received","stopped"].includes(ie.deliveryState)&&(t.messages=t.messages.map(Ne=>Ne.id!==ie.messageId||["received","stopped"].includes(Ne.deliveryState)&&Ne.deliveryState!==ie.deliveryState?Ne:{...Ne,clientMessageId:Ne.clientMessageId||ie.clientMessageId||le.payload.clientMessageId,deliveryState:ie.deliveryState,...ie.receivedAt?{receivedAt:ie.receivedAt}:{}})),(!ie.deliveryState||le.op==="send"&&ie.deliveryState==="received"&&["accepted","running"].includes(ie.status))&&!ie.found&&!ie.duplicate&&!Fe&&!t.busy&&!t.cancelPending&&t.commandEpisodeId&&J===_&&t.person?.id===Ee&&(t.episodeId=t.commandEpisodeId,t.activityEpisodeId=t.episodeId,t.activityStale=!1,t.progressStale=!1,t.busy=!ie.status||["accepted","running"].includes(ie.status)),ie.found||ie.deliveryState?me().catch(Ne=>{T(_e)&&H(Ne)}).finally(()=>{T(_e)&&de()}):t.busy||await j({preserveHistory:!0}),!0):!1}catch(ie){return T(_e)&&(!L&&!["timeout","outcome_unknown","disconnected","stale"].includes(ie.code)&&(A().delete(l),q().delete(l),t.retryCommand=null),H(ie)),!1}finally{T(_e)&&(t.commandPending=!1,de())}}async function z(I,K=!1){if(["memory","skills"].includes(I))return ce(I,"inspect",{section:I},K)}async function te(I,K=!1){let L=typeof I=="string"?I.trim():"";if(!(K&&L!==t.search.query))return ce("search","search",{query:L},K)}async function ce(I,K,L,X){if(!T()||(X||(t[I]={...go(),...I==="search"?{query:L.query}:{}}),!t.person||t.loading||At(e,l))||X&&(t[I].loading||t[I].nextCursor==null))return;let le=t[I];if(I==="search"&&!L.query)return;let _e=a;le.loading=!0,le.error=null;try{let Ee=await ne(K,{...L,cursor:X?le.nextCursor:null,limit:20});if(!T(_e)||le!==t[I])return;le.items=X?[...new Map([...le.items,...Ee.items].map(Fe=>[Fe.id,Fe])).values()]:Ee.items,le.nextCursor=Ee.nextCursor??null,le.loaded=!0}catch(Ee){T(_e)&&le===t[I]&&(le.error={code:Ee.code,message:Ee.message})}finally{T(_e)&&le===t[I]&&(le.loading=!1)}}function xe(){clearTimeout(S),S=null,C+=1,t.executions.loading=!1,t.executions.stale=!0}function Te(){if(clearTimeout(S),!b||!o()||!T()||t.executions.pending||t.cancelPending||At(e,l))return;let I=a;S=setTimeout(()=>{T(I)&&Se()},r)}function Y(I){b=I,clearTimeout(S),ge(I),I&&o()&&!t.loading&&Se()}function ue(){clearTimeout(d),d=null,clearTimeout(S),clearTimeout(E),o()&&(he(),b&&Se(),M&&fe())}async function Se(){if(!T()||!o()||!t.person||t.executions.pending||t.cancelPending||At(e,l))return;if(t.loading){Te();return}clearTimeout(S);let I=a,K=++C,L=t.executions;L.loading=!0,L.error=null;try{let X=await ne("executions");if(!T(I)||K!==C||L!==t.executions)return;let le=Object.hasOwn(X||{},"main")?X.main:X?.active,_e=X?.items?.find(Fe=>Fe.id===le?.episodeId),Ee=le?.calls||_e?.calls||[];L.active=le?{episodeId:le.episodeId,kind:le.kind,status:le.status,phase:le.phase,model:le.model,capabilityId:le.capabilityId??le.capability,startedAt:le.startedAt,elapsedMs:le.elapsedMs,loopCount:le.loopCount??le.loops,resumable:le.resumable,models:(le.models||[]).map(Fe=>({model:Fe.model,durationMs:Fe.durationMs??Fe.elapsedMs,usage:Fe.usage})),callsTruncated:Ee.length>10||!!(le.callsTruncated??_e?.callsTruncated),calls:Ee.slice(-10).map(Fe=>({callId:Fe.callId,index:Fe.index,status:Fe.status,model:Fe.model||Fe.dispatched?.model||Fe.requested?.model,durationMs:Fe.durationMs??Fe.elapsedMs,usage:Fe.usage}))}:null,L.loaded=!0,L.stale=!1}catch(X){T(I)&&K===C&&L===t.executions&&(L.stale=!0,L.error={code:X.code,message:X.message})}finally{T(I)&&K===C&&L===t.executions&&(L.loading=!1,Te())}}async function Ze(I,K){let L=t.executions;if(!T()||t.loading||!t.person||At(e,l)||L.pending||L.stale||t.cancelPending||!K||L.active?.episodeId!==K||I==="pause"&&L.active.status!=="running"||I==="resume"&&(L.active.status!=="paused"||L.active.resumable===!1)||!["pause","resume","cancel"].includes(I))return!1;if(I==="cancel")return["running","pausing","paused"].includes(L.active.status)?B(K):!1;let X=a,le=++_;xe(),L.pending=I,L.error=null;let _e=!1;try{return await ne(I,{episodeId:K}),!T(X)||L!==t.executions||le!==_?!1:(L.active?.episodeId===K&&(L.active={...L.active,status:I==="pause"?"pausing":"running"}),_e=!0,!0)}catch(Ee){return T(X)&&L===t.executions&&le===_&&(L.error={code:Ee.code,message:Ee.message}),!1}finally{T(X)&&L===t.executions&&le===_&&(xe(),L.pending=null,_e&&await Se(),Te(),de())}}function qe(){if(clearTimeout(E),!M||!o()||!T()||At(e,l))return;let I=a;E=setTimeout(()=>{T(I)&&fe()},r)}function ge(I){M=I,clearTimeout(E),I&&o()&&!t.loading&&fe()}async function fe(I=!1){if(!T()||!o()||!t.person||t.loading||At(e,l)||t.tasks.loading||I&&t.tasks.nextCursor==null)return;clearTimeout(E);let K=a,L=++W,X=t.tasks,le=I?X.nextCursor:null,_e=X.loaded;X.loading=!0,X.error=null;try{let Ee=await ne("tasks",{cursor:le,limit:20});if(!T(K)||L!==W||X!==t.tasks)return;let Fe=(Re,Le)=>[...new Map([...Re,...Le||[]].map(We=>[We.id,We])).values()].sort(fo),J=(Re,Le=[])=>Le.length>0&&(!Re.length||fo(Le.at(-1),Re[0])<0),ie=!I&&(J(X.tasks,Ee.tasks)||J(X.agents,Ee.agents));X.active=Ee.active||null,X.tasks=Fe(X.tasks,Ee.tasks),X.agents=Fe(X.agents,Ee.agents),(I||!_e||ie)&&(X.nextCursor=Ee.nextCursor??null),X.truncated=X.nextCursor!=null,X.loaded=!0,X.stale=!1}catch(Ee){T(K)&&L===W&&X===t.tasks&&(X.stale=!0,X.error={code:Ee.code,message:Ee.message})}finally{T(K)&&L===W&&X===t.tasks&&(X.loading=!1,qe())}}function Ie(){if(clearTimeout(x),!$||!T()||At(e,l))return;let I=a;x=setTimeout(()=>{T(I)&&je()},r)}function $e(I){$=I,clearTimeout(x),I&&!t.loading&&je()}async function je(I=!1){if(!T()||!t.person||t.loading||At(e,l)||I&&(t.turns.loading||t.turns.nextCursor==null))return;clearTimeout(x);let K=a,L=++D,X=t.turns,le=I?X.nextCursor:null,_e=X.loaded,Ee=!X.items.length;X.loading=!0,X.error=null;try{let Fe=await ne("turns",{cursor:le,limit:20});if(!T(K)||L!==D||X!==t.turns)return;let J=Fe.items||[],ie=J.at(-1)?.seq,Re=X.items[0]?.seq,Le=!I&&Number.isSafeInteger(ie)&&Number.isSafeInteger(Re)&&ie>Re+1;X.items=(Le?J:[...new Map([...X.items,...J].map(We=>[We.id,We])).values()]).sort((We,Ne)=>Ne.seq-We.seq),(I||!_e||Ee||Le)&&(X.nextCursor=Fe.nextCursor??null),X.loaded=!0,X.stale=!1}catch(Fe){T(K)&&L===D&&X===t.turns&&(X.stale=!0,X.error={code:Fe.code,message:Fe.message})}finally{T(K)&&L===D&&X===t.turns&&(X.loading=!1,Ie())}}async function Ge(I,K=!1){if(!T()||!t.person||t.loading||At(e,l)||K&&(t.taskLog.taskId!==I||t.taskLog.loading))return;K||(t.taskLog={taskId:I,text:"",nextOffset:0,loading:!1,error:null});let L=t.taskLog,X=a;L.loading=!0,L.error=null;try{let le=await ne("task_log",{taskId:I,offset:K?L.nextOffset:0,maxBytes:32768});if(!T(X)||t.taskLog!==L)return;L.text=(K?L.text+le.text:le.text).slice(-65536),L.nextOffset=le.nextOffset}catch(le){T(X)&&t.taskLog===L&&(L.error={code:le.code,message:le.message})}finally{T(X)&&t.taskLog===L&&(L.loading=!1)}}async function se(I,K){if(!T()||!t.person||t.loading||At(e,l)||t.tasks.pending||t.tasks.stale)return!1;let L=a;t.tasks.pending=K,t.tasks.error=null;try{return await ne(I==="agent"?"agent_close":"task_cancel",I==="agent"?{agentId:K}:{taskId:K}),T(L)?(W+=1,t.tasks.loading=!1,await fe(),!0):!1}catch(X){return T(L)&&(t.tasks.stale=!0,t.tasks.error={code:X.code,message:X.message}),!1}finally{T(L)&&(t.tasks.pending=null)}}async function Me(I){let K=I&&!Array.isArray(I)&&Object.keys(I).length===1&&typeof I.autonomyEnabled=="boolean";if(!T()||t.settingsPending||t.loading||t.busy&&!K||t.commandPending||t.cancelPending||!t.person||At(e,l))return!1;let L=a,X=_;clearTimeout(d),d=null,p+=1,t.settingsPending=!0,t.error=null;try{let le=Array.isArray(I)?{modelCandidates:[...I]}:I,_e=await ne("settings",le);if(!T(L)||X!==_||t.cancelPending||(t.modelCandidates=_e.settings.modelCandidates||[],t.defaultModel=_e.settings.defaultModel??null,t.person.settings=_e.settings,_e.person?.id===t.person.id&&(t.person=_e.person),p+=1,Object.hasOwn(le,"autonomyEnabled")&&(await me(),!T(L)||X!==_||t.cancelPending)))return!1;let Ee=await ne("status");return!T(L)||X!==_||t.cancelPending?!1:(N(Ee),t.modelReady=Ee.modelReady!==!1,t.reason=Ee.reason||"",!0)}catch(le){return T(L)&&H(le),!1}finally{T(L)&&(t.settingsPending=!1,de())}}async function B(I=null){let K=I||t.episodeId;if(!T()||t.cancelPending||At(e,l)||!K||(I?t.executions.active?.episodeId!==I:!t.busy))return!1;let L=a,X=t.executions,le=++_;xe(),t.feedbackSuppressedEpisodeId=K,clearTimeout(d),d=null,p+=1,t.cancelPending=!0,X.pending="cancel";let _e=!1;try{return await ne("cancel",{episodeId:K}),!T(L)||X!==t.executions||le!==_?!1:(p+=1,t.person.settings={...t.person.settings,autonomyEnabled:!1},X.active?.episodeId===K&&(X.active={...X.active,status:"cancelling"}),_e=!0,await j({preserveHistory:!0}),T(L))}catch(Ee){return T(L)&&X===t.executions&&le===_&&H(Ee),!1}finally{T(L)&&X===t.executions&&le===_&&(xe(),t.cancelPending=!1,X.pending=null,_e&&b&&await Se(),Te(),de())}}return{open:re,refresh:j,command:O,cancel:B,page:pe,settings:Me,inspect:z,search:te,readOutputs(I=!1){if(T()&&t.person&&t.outputsSupported)return Q.list(I)},selectOutput(I){if(T()&&t.person&&!At(e,l)&&(t.outputsSupported||I?.kind==="link"))return Q.select(I)},closeOutput:Q.close,closeOutputTab:Q.closeTab,resumeOutput(){if(T()&&!At(e,l))return Q.resume()},showManagement:Y,readExecutions:Se,controlExecution:Ze,visibilityChanged:ue,showTasks:ge,readTasks:fe,readTaskLog:Ge,stopTask:se,showTurns:$e,readTurns:je,discardRetry(){A().delete(l),q().delete(l),t.retryCommand=null},dispose(){ye(),w=!0}}}var Jr,Cd,mh,$I,vh,zs,go,xd=F(()=>{kd();qa();Sd();Jr=new WeakMap,Cd=new WeakMap,mh=50,$I=new Set(["committed","completed","failed","cancelled","interrupted","budget_exhausted"]),vh=()=>globalThis.crypto.randomUUID(),zs=e=>Object.assign(new Error(e),{code:e});go=()=>({items:[],nextCursor:null,loading:!1,loaded:!1,error:null})});function br(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function Va(e,t){if(!t)return e??null;if(Object.prototype.hasOwnProperty.call(t,"base"))return br(t.base)??null;if(Object.prototype.hasOwnProperty.call(t,"replacement"))return br(t.replacement)??null;let s=e&&typeof e=="object"&&!Array.isArray(e)?br(e):{};if(t.set&&typeof t.set=="object")for(let[n,r]of Object.entries(t.set))s[n]=br(r);if(t.body&&typeof t.body=="object"){let n=s.body&&typeof s.body=="object"&&!Array.isArray(s.body)?{...s.body}:{};for(let[i,o]of Object.entries(t.body))i==="messages"||i==="messagesFrom"||i==="messagesAppend"||i==="messagesKey"||(n[i]=br(o));let r=t.body.messagesKey==="messages"||t.body.messagesKey==="input"?t.body.messagesKey:Array.isArray(n.messages)||Object.prototype.hasOwnProperty.call(t.body,"messages")?"messages":"input";if(Array.isArray(t.body.messages))n[r]=br(t.body.messages)||[];else if(Array.isArray(t.body.messagesAppend)){let i=Array.isArray(n[r])?n[r]:[],o=Number.isFinite(Number(t.body.messagesFrom))?Number(t.body.messagesFrom):i.length;n[r]=i.slice(0,o).concat(br(t.body.messagesAppend)||[])}s.body=n}return s}function wh(e,t){return!t||!Object.prototype.hasOwnProperty.call(t,"rawRequestDelta")?e??null:Va(e??null,t.rawRequestDelta)}function ho(e){if(!e)return 0;let t=typeof e=="string"?e:String(e),s=0,n=0;for(let r of t){let i=r.codePointAt(0)||0;i>=19968&&i<=40959||i>=12352&&i<=12447||i>=12448&&i<=12543||i>=44032&&i<=55215?s+=1:n+=1}return Math.ceil(s+n/4)}function LI(e){let t=[],s=[];if(!e)return{messageText:t,toolText:s};let n=e.content;if(typeof n=="string")e.role==="tool"?s.push(n):t.push(n);else if(Array.isArray(n))for(let r of n){if(!r||typeof r!="object")continue;let i=r.type;if(i==="text"&&typeof r.text=="string")t.push(r.text);else if(i==="tool_use"){if(s.push(String(r.name||"")),r.input!==void 0)try{s.push(JSON.stringify(r.input))}catch{}}else if(i==="tool_result"){let o=r.content;if(typeof o=="string")s.push(o);else if(Array.isArray(o)){for(let a of o)if(a)if(typeof a=="string")s.push(a);else if(typeof a=="object"&&typeof a.text=="string")s.push(a.text);else try{s.push(JSON.stringify(a))}catch{}}else if(o!==void 0)try{s.push(JSON.stringify(o))}catch{}}else try{t.push(JSON.stringify(r))}catch{}}if(Array.isArray(e.toolCalls)){for(let r of e.toolCalls)if(r&&(s.push(String(r.name||"")),r.input!==void 0))try{s.push(JSON.stringify(r.input))}catch{}}return{messageText:t,toolText:s}}function Sh(e){let t=0,s=0;if(e&&Array.isArray(e.messages))for(let i of e.messages){let{messageText:o,toolText:a}=LI(i);for(let l of o)t+=ho(l);for(let l of a)s+=ho(l)}let n=0,r=0;if(e&&typeof e.response=="string"&&(n+=ho(e.response)),e&&Array.isArray(e.toolCalls)){for(let i of e.toolCalls)if(i&&(r+=ho(String(i.name||"")),i.input!==void 0))try{r+=ho(JSON.stringify(i.input))}catch{}}return{inputMessageTokens:t,inputToolTokens:s,outputMessageTokens:n,outputToolTokens:r,inputTotalEstimated:t+s,outputTotalEstimated:n+r}}function Td(e,t,s){let n=Math.max(0,Math.floor(Number(e)||0)),r=Math.max(0,Number(t)||0),i=Math.max(0,Number(s)||0),o=r+i;if(n===0)return{message:0,tool:0};if(o===0)return{message:n,tool:0};let a=Math.round(r/o*n),l=Math.min(n,Math.max(0,a));return{message:l,tool:n-l}}function Ch(e,t){let s=Math.max(0,Math.floor(Number(e)||0)),n=t&&typeof t=="object"?t:{},r=[["systemPrompt",Math.max(0,Number(n.systemPromptTokens)||0)],["historyMessages",Math.max(0,Number(n.historyMessageTokens)||0)],["tools",Math.max(0,Number(n.toolDefinitionTokens)||0)],["currentTurn",Math.max(0,Number(n.currentTurnTokens)||0)]],i=r.reduce((c,[,d])=>c+d,0),o={systemPrompt:0,historyMessages:0,tools:0,currentTurn:0};if(s===0)return o;if(i===0)return o.currentTurn=s,o;let a=r.map(([c,d],u)=>{let p=d/i*s,f=Math.floor(p);return o[c]=f,{key:c,index:u,fraction:p-f}}),l=s-Object.values(o).reduce((c,d)=>c+d,0);a.sort((c,d)=>d.fraction-c.fraction||c.index-d.index);for(let c=0;c<l;c++)o[a[c%a.length].key]+=1;return o}function Ih(e){if(e==null||e==="")return"";let t;if(typeof e=="number")t=e;else if(typeof e=="string"){let o=Date.parse(e);if(Number.isNaN(o)){let a=Number(e);if(!Number.isFinite(a))return"";t=a}else t=o}else return"";if(!Number.isFinite(t))return"";let s=new Date(t),n=String(s.getHours()).padStart(2,"0"),r=String(s.getMinutes()).padStart(2,"0"),i=String(s.getSeconds()).padStart(2,"0");return`${n}:${r}:${i}`}var Md=F(()=>{});function vn(e,t){return!e||!t?"":`${e}${t}`}function ei(e){let t=typeof e=="string"?e:String(e||"");if(!t)return{agentId:null,sessionId:null};let s=t.indexOf("");if(s<0)return{agentId:null,sessionId:t};let n=t.slice(0,s)||null,r=t.slice(s+1)||null;return{agentId:n,sessionId:r}}function Pd(e){return e?`${e}`:""}function Rd(e,t){return!e||!t?"":`${e}${t}`}var Na=F(()=>{});function Ah(e){let t={...e.activeVpTurns};for(let[s,n]of Object.entries(t)){if(Ba(e,n.agentId))continue;let{queryProgress:r,...i}=n;t[s]={...i,connectionGeneration:-1}}e.activeVpTurns=t}function qI(e,t){return e.vpId!==t.vpId||(e.sessionId||e.groupId)!==t.sessionId?!1:(Array.isArray(e.threads)?e.threads:[e]).some(n=>n&&(n.threadId||"main")===t.threadId&&n.turnId===t.turnId&&FI.has(n.state))}function VI(e){if(!e||e.type!=="query_progress"||!["turnId","threadId","sessionId","vpId"].every(h=>typeof e[h]=="string"&&e[h].length>0)||!OI.every(h=>Number.isSafeInteger(e[h])&&e[h]>=0)||e.revision<1||!["running","warning","recovering","stopped"].includes(e.stage)||![null,"repeated_results","repeated_failure"].includes(e.reason)||!(e.lastEvidenceAt===null||Number.isFinite(e.lastEvidenceAt)&&e.lastEvidenceAt>=0))return null;let{turnId:t,threadId:s,sessionId:n,vpId:r,revision:i,modelRequests:o,toolExecutions:a,reusedCalls:l,repeatedCalls:c,failedCalls:d,stage:u,reason:p,lastEvidenceAt:f,stagnantBatches:g}=e,v={};for(let h of["inputTokens","outputTokens"])Number.isSafeInteger(e[h])&&e[h]>=0&&(v[h]=e[h]);if(Array.isArray(e.toolStats)&&e.toolStats.length<=128){let h=new Set;e.toolStats.every(y=>y&&typeof y.name=="string"&&/^[^\u0000-\u001f\u007f]{1,128}$/.test(y.name)&&y.name.trim()===y.name&&!h.has(y.name)&&h.add(y.name)&&["executions","failedCalls","blockedCalls"].every(k=>Number.isSafeInteger(y[k])&&y[k]>=0)&&y.blockedCalls<=y.failedCalls)&&(v.toolStats=e.toolStats.map(({name:y,executions:k,failedCalls:w,blockedCalls:b})=>({name:y,executions:k,failedCalls:w,blockedCalls:b})),typeof e.toolStatsTruncated=="boolean"&&(v.toolStatsTruncated=e.toolStatsTruncated))}return{type:"query_progress",turnId:t,threadId:s,sessionId:n,vpId:r,revision:i,modelRequests:o,toolExecutions:a,reusedCalls:l,repeatedCalls:c,failedCalls:d,stage:u,reason:p,lastEvidenceAt:f,stagnantBatches:g,...v}}function xh(e,t){let s=VI(t?.event);if(!s||!t.agentId||!t.conversationId||e.connectionState!=="connected"||!Ba(e,t.agentId)||mn(e,t.agentId,t.conversationId)||e.yeaftConversationIdsByAgent?.[t.agentId]!==t.conversationId)return;let n=Object.entries(e.activeVpTurns||{}).find(([,r])=>r.agentId===t.agentId&&r.sessionId===s.sessionId&&r.turnId===s.turnId&&r.vpId===s.vpId&&r.threadId===s.threadId&&r.conversationId===t.conversationId&&r.connectionGeneration===Number(e.chatHistoryConnectionGeneration||0));!n||(n[1].queryProgressRevision||0)>=s.revision||(e.activeVpTurns={...e.activeVpTurns,[n[0]]:{...n[1],queryProgress:s,queryProgressRevision:s.revision}})}function Th(e,t){if(!t.agentId||!t.conversationId||e.connectionState!=="connected"||!Ba(e,t.agentId)||e.yeaftConversationIdsByAgent?.[t.agentId]!==t.conversationId||mn(e,t.agentId,t.conversationId))return;let s=Number(e.chatHistoryConnectionGeneration||0),n=Array.isArray(t.event.statuses)?t.event.statuses:[],r={...e.activeVpTurns};for(let[i,o]of Object.entries(r)){if(o.agentId!==t.agentId||t.event.sessionId!=null&&o.sessionId!==t.event.sessionId)continue;let a=n.some(d=>d&&qI(d,o));if(a&&o.connectionGeneration===s&&o.conversationId===t.conversationId)continue;let{queryProgress:l,...c}=o;r[i]={...c,connectionGeneration:a?s:-1,conversationId:t.conversationId}}e.activeVpTurns=r}function Mh(e,{agentId:t,sessionId:s,turnId:n,vpId:r}){return e.connectionState!=="connected"||!t||!s||!Ba(e,t)?null:Object.values(e.activeVpTurns||{}).find(o=>o.agentId===t&&o.sessionId===s&&o.turnId===n&&o.vpId===r&&o.connectionGeneration===Number(e.chatHistoryConnectionGeneration||0)&&o.conversationId===e.yeaftConversationIdsByAgent?.[t])?.queryProgress||null}var OI,FI,Ba,Ha=F(()=>{io();OI=["revision","modelRequests","toolExecutions","reusedCalls","repeatedCalls","failedCalls","stagnantBatches"],FI=new Set(["typing","thinking","retrying","streaming","tool"]),Ba=(e,t)=>e.agents?.some(s=>s.id===t&&s.online)});function NI(e,t){if(!e||!!!t?.online)return!1;let n=!e.online,r=e.online&&e.version!=null&&t.version!=null&&e.version!==t.version;return n||r}function Ph(e,t){let s=e.lastViewedConversation||localStorage.getItem("lastViewedConversation");if(!s)return!1;let n=e.conversations.find(i=>i.id===s);if(!n)return!1;let r=t?.agentId||e.currentAgent;return t&&(e.currentAgent=t.agentId,e.currentAgentInfo=t.agentInfo,e.sendWsMessage({type:"select_agent",agentId:t.agentId,silent:!0})),e.activeConversations=[s],e.currentWorkDir=n.workDir,e.messagesMap[s]=[],e.sendWsMessage({type:"select_conversation",conversationId:s}),e.requestChatHistory?.(s,{mode:"recent",turns:5}),e.sendWsMessage({type:"refresh_conversation",conversationId:s}),!0}function Rh(e,t){let s=Array.isArray(e.agents)?e.agents:[],n=Array.isArray(t.agents)?t.agents:[],r=e._hasHandledAgentList===!0,i=new Set(s.filter(d=>d?.id&&d.online).map(d=>d.id)),o=new Set(n.filter(d=>d?.id&&d.online).map(d=>d.id));for(let[d,u]of r?e._sessionCrudPending?.entries?.()||[]:[])!u?.agentId||!i.has(u.agentId)||o.has(u.agentId)||(u.resolve?.({ok:!1,requestId:d,error:{code:"agent_offline",message:"Agent disconnected"}}),e._sessionCrudPending.delete(d));let a=e.currentAgent||null,l=!!(a&&s.some(d=>d&&d.id===a&&d.online));e.agents=n,Ah(e),e.workCenterActivityConnectionGeneration=Number(e.chatHistoryConnectionGeneration||0),e._hasHandledAgentList=!0;for(let[d,u]of Object.entries(e.agentOperations||{})){let p=n.find(f=>f.id===d);for(let f of["restart","upgrade"]){let g=u?.[f];if(!g?.pending||!g.acknowledged)continue;if(!p?.online){g.sawOffline||(e.agentOperations={...e.agentOperations,[d]:{...e.agentOperations[d]||{},[f]:{...g,sawOffline:!0}}});continue}let v=f==="upgrade"&&g.oldVersion&&p.version!==g.oldVersion;!g.sawOffline&&!v||e.finishAgentOperation?.(d,f)}}let c=e.currentAgent||null;if(c){let d=e._yeaftAgentSeen&&e._yeaftAgentSeen.id===c?e._yeaftAgentSeen:null,u=n.find(f=>f.id===c)||null;(e.currentView==="yeaft"||e.workCenterOpen&&e.workCenterAgentId===c)&&NI(d,u)&&(e._yeaftReconnectCatchUpPending=!0),u?e._yeaftAgentSeen={id:c,online:!!u.online,version:u.version!=null?u.version:null}:d?d.online&&(e._yeaftAgentSeen={id:c,online:!1,version:d.version}):e._yeaftAgentSeen={id:c,online:!1,version:null}}{let d=new Set(n.map(u=>u.id));for(let u of n)e.proxyPorts[u.id]=u.proxyPorts||[],u.yeaftStatus&&typeof e.cacheYeaftAgentStatus=="function"&&e.cacheYeaftAgentStatus(u.id,u.yeaftStatus);for(let u of Object.keys(e.proxyPorts))d.has(u)||delete e.proxyPorts[u]}if(e.currentAgent){let d=n.find(u=>u.id===e.currentAgent);d&&(e.currentAgentInfo=d)}if(e.currentView==="yeaft"&&!e.currentAgent){let d=n.find(u=>u.online);d&&(e.currentAgent=d.id,e.currentAgentInfo=d)}if(e.currentView==="yeaft"&&typeof e.loadOpenedYeaftSessionsForConnectedAgents=="function"){let d=n.filter(u=>u&&u.online&&u.id).map(u=>u.id);e.loadOpenedYeaftSessionsForConnectedAgents(d)}{let d=[],u=new Set;for(let f of n)for(let g of f.conversations||[])u.has(g.id)||(u.add(g.id),d.push({...g,type:g.type,agentId:f.id,agentName:f.name}),g.title&&(g.customTitle&&(e.customConversationTitles[g.id]=g.title),e.conversationTitles[g.id]||(e.conversationTitles[g.id]=g.title)));for(let f of d){f.agentOnline=!0;let g=e.conversations.find(v=>v.id===f.id);if(g)g.claudeSessionId=f.claudeSessionId||g.claudeSessionId,g.processing=f.processing,g.userId=f.userId,g.username=f.username,g.agentId=f.agentId,g.agentName=f.agentName,g.agentOnline=!0,f.type&&(g.type=f.type),f.name!==void 0&&(g.name=f.name);else{let v=e._recentlyDeletedSessions?.[f.id];if(v&&Date.now()-v<15e3)continue;e.conversations.push(f)}f.pinned&&!e.pinnedSessions.includes(f.id)&&e.pinnedSessions.push(f.id)}let p=new Set(n.map(f=>f.id));e.conversations=e.conversations.filter(f=>{if(u.has(f.id)||e.activeConversations.includes(f.id))return!0;if(f.agentId&&p.has(f.agentId)){let g=e._recentlyDeletedSessions?.[f.id];return g&&Date.now()-g<15e3||(delete e.messagesMap[f.id],delete e.processingConversations[f.id],tt(e,f.id),delete e.executionStatusMap[f.id]),!1}return f.agentId&&!p.has(f.agentId)&&(f.agentOnline=!1),!0});for(let f of d)if(f.processing&&!hr(e,f.id)&&!e._turnCompletedConvs?.has(f.id))e.processingConversations[f.id]=!0;else if(e.processingConversations[f.id]){delete e.processingConversations[f.id],tt(e,f.id);let g=e.executionStatusMap[f.id];g&&(g.currentTool=null),e.finishStreamingForConversation(f.id)}for(let f of Object.keys(e.processingConversations))if(!u.has(f)){if(f.startsWith("yeaft-"))continue;delete e.processingConversations[f],tt(e,f);let g=e.executionStatusMap[f];g&&(g.currentTool=null),e.finishStreamingForConversation(f)}}if(localStorage.setItem("pinned-sessions",JSON.stringify(e.pinnedSessions)),e._closedAt){let d=Date.now();for(let u of Object.keys(e._closedAt))d-e._closedAt[u]>3e4&&(delete e._closedAt[u],e._turnCompletedConvs?.delete(u))}if(e.currentAgent){let d=n.find(u=>u.id===e.currentAgent&&u.online);if(d){let u=!!e._yeaftReconnectCatchUpPending,f=u||r&&!l;if(e.currentAgentInfo=d,f&&(e._offlineConversationRestoreKey=null,e.sendWsMessage({type:"select_agent",agentId:e.currentAgent,silent:!0})),f&&e.workCenterOpen&&e.workCenterAgentId===e.currentAgent&&typeof e.listWorkItems=="function"){let g=e._workCenterListFiltersByAgent?.[e.workCenterAgentId]||{};e.listWorkItems(e.workCenterAgentId,g).catch(()=>{})}if(e._yeaftReconnectCatchUpPending=!1,e.currentView==="yeaft"&&typeof e.requestYeaftSessionBootstrap=="function"){let g=u||!e.yeaftSessionReady||!e.yeaftModel||!e.yeaftStatus;(g||u)&&e.requestYeaftSessionBootstrap({forceSessionReady:g,catchUpHistory:u})}if(!f)return;if(e.currentConversation){let g=e.conversations.find(m=>m.id===e.currentConversation);e.sendWsMessage({type:"select_conversation",conversationId:e.currentConversation});let v=e.messagesMap[e.currentConversation]||[],h=gr(v);h!=null?e.requestChatHistory?.(e.currentConversation,{mode:"delta",afterMessageId:h}):e.requestChatHistory?.(e.currentConversation,{mode:"recent",turns:5}),e.sendWsMessage({type:"refresh_conversation",conversationId:e.currentConversation})}else e.recoveryDismissed||Ph(e);return}else{let u=`${e.currentAgent||""}:${e.currentConversation||""}`;e.currentConversation&&(!r||l||e._offlineConversationRestoreKey!==u)&&(e._offlineConversationRestoreKey=u,e.sendWsMessage({type:"select_conversation",conversationId:e.currentConversation}));return}}if(!e.currentConversation&&!e.currentAgent&&!e.recoveryDismissed){let d=e.lastViewedConversation||localStorage.getItem("lastViewedConversation"),u=e.lastUsedAgent;if(d){let p=e.conversations.find(f=>f.id===d);if(p){let f=n.find(g=>g.id===p.agentId&&g.online);if(f){Ph(e,{agentId:p.agentId,agentInfo:f});return}}}u&&(e.agents.find(f=>f.id===u&&f.online)?e.selectAgent(u):e.checkPendingRecovery())}}function _h(e,t){let s=e.pendingAgentSelection||null;if(s){if(!(typeof t.requestId=="string"&&t.requestId?t.requestId===s.requestId:t.agentId===s.agentId))return!1;if(e.pendingAgentSelection=null,t.ok===!1)return e.agentSwitching=!1,!1}else{if(t.requestId)return!1;if(e.currentAgent&&t.agentId!==e.currentAgent)return!1}e.agentSwitching=!1;let n=e.currentAgent===t.agentId,r={id:t.agentId,name:t.agentName,workDir:t.workDir,capabilities:t.capabilities||["terminal","file_editor","background_tasks"],...t.capabilityMetadataProvided===!0?{capabilityMetadataProvided:!0}:{},version:t.version||null};if(typeof e.activateYeaftAgent=="function"?e.activateYeaftAgent(t.agentId,r):(e.currentAgent=t.agentId,e.currentAgentInfo=r),Array.isArray(t.slashCommands)){let u=[...new Set(t.slashCommands)];e.slashCommandsMap[`agent:${t.agentId}`]=u}t.slashCommandDescriptions&&(e.slashCommandDescriptions={...e.slashCommandDescriptions,...t.slashCommandDescriptions});let i=t.conversations||[],o=new Set,a=i.filter(u=>o.has(u.id)?!1:(o.add(u.id),!0)).map(u=>({...u,agentId:t.agentId,agentName:t.agentName}));if(n&&e.currentConversation){let u=i.find(p=>p.id===e.currentConversation);u&&!a.find(p=>p.id===u.id)&&a.push({...u,agentId:t.agentId,agentName:t.agentName})}let l=new Set(a.map(u=>u.id)),c=e.conversations.filter(u=>!l.has(u.id));e.conversations=[...c,...a];for(let u of i)u.title&&(u.customTitle&&(e.customConversationTitles[u.id]=u.title),e.conversationTitles[u.id]||(e.conversationTitles[u.id]=u.title));let d=new Set(i.map(u=>u.id));for(let u of i)if(u.processing&&!hr(e,u.id)&&!e._turnCompletedConvs?.has(u.id))e.processingConversations[u.id]=!0;else if(e.processingConversations[u.id]){delete e.processingConversations[u.id],tt(e,u.id);let p=e.executionStatusMap[u.id];p&&(p.currentTool=null),e.finishStreamingForConversation(u.id)}for(let u of Object.keys(e.processingConversations))if(!d.has(u)){if(u.startsWith("yeaft-"))continue;if(!c.some(f=>f.id===u)){delete e.processingConversations[u],tt(e,u);let f=e.executionStatusMap[u];f&&(f.currentTool=null),e.finishStreamingForConversation(u)}}if(e.currentView!=="yeaft"){if(n&&e.currentConversation){let u=e.conversations.find(p=>p.id===e.currentConversation);e.currentWorkDir=u?.workDir||e.currentWorkDir||t.workDir,Hs(e),e.sendWsMessage({type:"select_conversation",conversationId:e.currentConversation})}else{e.activeConversations=[],e.currentWorkDir=t.workDir;let u=e.lastViewedConversation||localStorage.getItem("lastViewedConversation");u&&e.conversations.find(p=>p.id===u)&&(e.autoRestoreConversation(u),e.pendingRecovery=null)}Lf(e)}return!0}var Eh=F(()=>{qn();ur();so();Ha()});function BI(e={}){return{providers:e.providers||[],primaryModel:e.primaryModel||null,fastModel:e.fastModel||null,language:e.language||"en"}}function ti(e){_d.delete(e)}function KI(e,t){let s=_d.get(e);s||(s=new Map,_d.set(e,s));let n=typeof t?.agentId=="string"?t.agentId:"",r=typeof t?.requestId=="string"?t.requestId:"",i=Number(t?.chunkIndex),o=Number(t?.chunkCount),a=typeof t?.data=="string"?t.data:null,l=e.yeaftDebugPanel?.agentId||null,c=e._yeaftDebugHistoryPending?.payload,d=c?.requestId||e._yeaftDebugHistoryLatestDetailRequestId||e._yeaftDebugHistoryLatestListRequestId;if(!n||!r||l&&n!==l||c&&n!==c.agentId||r!==d||!Number.isSafeInteger(i)||!Number.isSafeInteger(o)||o<=1||i<0||i>=o||a==null||new TextEncoder().encode(a).byteLength>jI)return null;let u=Date.now();for(let[v,h]of s)h.expiresAt<=u&&s.delete(v);let p=`${n}\0${r}`,f=s.get(p);if(!f){if(i!==0)return null;f={nextIndex:0,chunkCount:o,parts:[],bytes:0,expiresAt:u+$h},s.set(p,f)}let g=new TextEncoder().encode(a).byteLength;if(f.chunkCount!==o||i!==f.nextIndex)return s.delete(p),null;if(f.parts.push(a),f.bytes+=g,f.nextIndex+=1,f.expiresAt=u+$h,e.refreshYeaftDebugHistoryTimeout?.(r),f.nextIndex!==f.chunkCount)return null;s.delete(p);try{let v=JSON.parse(f.parts.join(""));return v?.type==="yeaft_debug_history"&&v.requestId===r?{...v,agentId:n}:null}catch{return null}}function zI(e,t){let s=t.agentId&&t.sessionId?e.yeaftConversationIdsByAgent?.[t.agentId]:null;if(!s)return;let n=e.messagesMap[s]||[],r=n.findIndex(c=>c.type==="user"&&c.sessionId===t.sessionId&&c.clientMessageId===t.clientMessageId&&(c.messageId||c.id)===t.clientMessageId);if(!t.clientMessageId||r<0)return;let i=n[r];if(i.status==="error")return;i.status="error",i.error=t.message;let o=n.some(c=>c!==i&&c.type==="user"&&c.sessionId===t.sessionId&&c.status!=="error"&&c.clientMessageId&&(c.messageId||c.id)===c.clientMessageId),a=n.slice(r+1).some(c=>c.type==="user"&&c.sessionId===t.sessionId&&c.status!=="error");if(e.addMessageToConversation(s,{type:"error",content:t.message,agentId:t.agentId,sessionId:t.sessionId,turnId:t.clientMessageId}),o||a)return;e.clearYeaftSessionProcessingIfIdle(t.sessionId,{agentId:t.agentId}),Object.entries(e.yeaftProcessingSessions||{}).some(([c,d])=>{let u=ei(c);return d&&(!u.agentId||u.agentId===t.agentId)})||(delete e.processingConversations[s],tt(e,s))}function Dh(){return window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore()}function GI(e,t){let s=t.agentId||null,n=Array.isArray(e.yeaftSessionHydrateSlices)?e.yeaftSessionHydrateSlices.filter(r=>r.agentId!==s):[];e.yeaftSessionHydrateSlices=[...n,{agentId:s,sessions:Array.isArray(t.sessions)?t.sessions:[]}]}function YI(e){let t=Dh(),s=null;try{s=localStorage.getItem("lastViewedYeaftSession")||null}catch{}let n=ei(s),r=e.yeaftActiveSessionFilter||t?.activeSessionId||null;if(r){let i=t?.activeSessionKey?t.sessions?.[t.activeSessionKey]:null;return i?.id===r&&i.agentId?{sessionId:r,agentId:i.agentId}:n.sessionId===r&&n.agentId?n:{sessionId:r,agentId:null}}return n}function Lh(e){let t=Dh(),s=YI(e);typeof t?.beginInventoryCommit=="function"?t.beginInventoryCommit(s.sessionId,s.agentId):typeof t?.resetInventory=="function"&&t.resetInventory();let n=Array.isArray(e.yeaftSessionHydrateSlices)?e.yeaftSessionHydrateSlices:[],r=s.agentId?[...n.filter(i=>i.agentId===s.agentId),...n.filter(i=>i.agentId!==s.agentId)]:n;r.length===0&&t?.applySnapshot?.([],null),r.forEach((i,o)=>{t?.applySnapshot?.(i.sessions||[],i.agentId||null,{deferActivation:o<r.length-1}),Ca(e,i.sessions,i.agentId)}),e.yeaftSessionHydrateSlices=[]}function QI(e){let t=e.yeaftSessionHydrateRequestId||null;e.yeaftSessionInventoryCompleteSupported!==!1||!t||(clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=setTimeout(()=>{e.yeaftSessionHydrateRequestId===t&&(e._legacyYeaftSessionHydrateTimer=null,Lh(e),e._hasHandledYeaftSessionHydrate=!0,Ed(e),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!0)},UI))}function Ed(e){e.sessionCatalogProtocolSupported==null&&ha(e)&&(e.sessionCatalogProtocolSupported=!1)}function ZI(e,t={}){let s=e||{systemPrompt:"",messages:[],rawRequest:null},n={systemPrompt:s.systemPrompt||"",messages:Array.isArray(s.messages)?[...s.messages]:[],rawRequest:s.rawRequest??null};if(t?.base){let r={systemPrompt:t.systemPrompt||"",messages:Array.isArray(t.messages)?t.messages:[],rawRequest:null};return Object.prototype.hasOwnProperty.call(t,"rawRequestDelta")&&(r.rawRequest=Va(null,t.rawRequestDelta)),r}if(typeof t?.systemPrompt=="string"&&(n.systemPrompt=t.systemPrompt),Array.isArray(t?.messages))n.messages=t.messages;else if(Array.isArray(t?.messagesAppend)){let r=Number.isFinite(Number(t.messagesFrom))?Number(t.messagesFrom):n.messages.length;n.messages=n.messages.slice(0,r).concat(t.messagesAppend)}return Object.prototype.hasOwnProperty.call(t||{},"rawRequestDelta")&&(n.rawRequest=Va(n.rawRequest,t.rawRequestDelta)),n}function XI(e=[]){let t=new Map;return e.map(s=>{if(!s||!s.requestDelta)return s;let n=s.turnId||"__unknown__",r=t.get(n)||s.requestBase||null,i=r?.rawRequest??null,o=ZI(r,s.requestDelta);return t.set(n,o),{...s,systemPrompt:typeof s.systemPrompt=="string"&&s.systemPrompt?s.systemPrompt:o.systemPrompt,messages:Array.isArray(s.messages)&&s.messages.length>0?s.messages:o.messages,rawRequest:s.rawRequest===void 0?o.rawRequest:s.rawRequest,rawRequestBase:i}})}function Oh(e,t){let s=Xe();if(!(["work_center_response","work_center_event","person_response"].includes(t?.type)&&Object.hasOwn(t,"_wsAuthGeneration")&&(t._wsAuthGeneration!==s.authGeneration||t._wsAuthToken!==(s.getActiveToken?.()||s.token||null)))){if(t?.type==="yeaft_debug_history_chunk"){let n=KI(e,t);if(!n)return;t=n}switch(e._lastPongAt=Date.now(),t.type){case"person_response":yh(e,t);break;case"work_center_response":{let n=t.requestId?e.workCenterPending[t.requestId]:null;if(!n)break;if(clearTimeout(n.timer),delete e.workCenterPending[t.requestId],t.ok)n.resolve(t.data);else{let r=new Error(t.error||"Work Center request failed");t.errorCode==="WORK_CENTER_INPUT_STALE"&&(r.code=t.errorCode),n.reject(r)}break}case"work_center_event":e.applyWorkCenterEvent(t.agentId,t.event);break;case"client_hello_ack":e.workbenchRouteProtocolSupported=t.workbenchRouteProtocol===1,e.workCenterWorkbenchProtocolSupported=t.workCenterWorkbenchProtocol===1,e.browserRuntimeProtocolSupported=t.browserRuntimeProtocol===1,e.browserRuntimeSetupProtocolSupported=t.browserRuntimeSetupProtocol===1,e.browserRuntimeServerEnabled=t.browserRuntimeEnabled===!0,window.dispatchEvent(new CustomEvent("browser-runtime-message",{detail:t}));break;case"auth_result":if(t.success){if(e.authenticated=!0,t.sessionKey&&(e.sessionKey=Ms(t.sessionKey),s.setSessionKey(t.sessionKey)),t.acceptPlaintext===!0&&(e.serverEncryptionRequired=!1),e.scheduledTaskProtocolSupported=t.scheduledTaskProtocol===1,t.sessionCatalogProtocol===1?e.sessionCatalogProtocolSupported=!0:(t.sessionCatalogProtocol===0||t.sessionCatalogProtocol===!1)&&(e.sessionCatalogProtocolSupported=!1),e.yeaftSessionInventoryCompleteSupported=t.yeaftSessionInventoryComplete===!0,e.workbenchRouteProtocolSupported=!1,e.workCenterWorkbenchProtocolSupported=!1,e.browserRuntimeProtocolSupported=!1,e.browserRuntimeSetupProtocolSupported=!1,e.browserRuntimeServerEnabled=t.browserRuntimeEnabled===!0,window.dispatchEvent(new CustomEvent("browser-runtime-message",{detail:t})),e.yeaftSessionHydrateSlices=[],e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionHydrateError=null,t.role&&(s.role=t.role),typeof e.requestYeaftSessionInventory=="function")e.requestYeaftSessionInventory();else{let n=e.conversations.map(r=>r.id).filter(Boolean);e.sendWsMessage({type:"get_agents",conversationIds:n.length>0?n:void 0})}e.checkPendingRecovery()}else e.addMessage({type:"error",content:t.error||ut("login.error.loginFailed")}),s.handleAuthFailure?.(void 0,t._wsAuthToken,t._wsAuthGeneration);break;case"agent_list":Rh(e,t),Ed(e);break;case"yeaft_session_hydrate":{if(e.yeaftSessionInventoryCompleteSupported===!0&&(!t.requestId||t.requestId!==e.yeaftSessionHydrateRequestId)||e.yeaftSessionInventoryCompleteSupported!==!0&&!e.yeaftSessionHydrateRequestId||t.requestId&&e.yeaftSessionHydrateRequestId&&t.requestId!==e.yeaftSessionHydrateRequestId)break;GI(e,t),e.yeaftSessionInventoryCompleteSupported!==!0&&QI(e);break}case"yeaft_session_hydrate_complete":if(e.yeaftSessionInventoryCompleteSupported===!0&&(!t.requestId||t.requestId!==e.yeaftSessionHydrateRequestId)||e.yeaftSessionHydrateRequestId&&!t.requestId||t.requestId&&e.yeaftSessionHydrateRequestId&&t.requestId!==e.yeaftSessionHydrateRequestId)break;clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=null,t.ok!==!1?Lh(e):e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateRequestId=null,e._hasHandledYeaftSessionHydrate=t.ok!==!1,e.yeaftSessionHydrateError=t.ok===!1?t.error||"session_inventory_failed":null,Ed(e);break;case"session_catalog_snapshot":if(e.sessionCatalogProtocolSupported=!0,t.ok===!1||!Array.isArray(t.catalog)){e.sessionCatalogLoaded=!1;break}e.applySessionCatalogSnapshot(t.catalog,t.projectsAuthoritative===!0?t.projects:null,t.hiddenCatalog,{authoritative:!0});break;case"session_ui_metadata_updated":e.finishSessionCatalogMutation?.(t);break;case"session_catalog_reorder_result":e.finishSessionCatalogMutation?.(t);break;case"agent_selected":if(!_h(e,t))break;e.workCenterOpen&&e.workCenterAgentId&&e.listWorkItems(e.workCenterAgentId).catch(()=>{});break;case"conversation_created":Xg(e,t);break;case"conversation_resumed":Jg(e,t);break;case"conversation_selected":if(e.currentConversation===t.conversationId)return;e.activeConversations=[t.conversationId];{let n=e.conversations.find(r=>r.id===t.conversationId);n&&(e.currentWorkDir=n.workDir)}e.messagesMap[t.conversationId]=[],e.saveOpenSessions();break;case"conversation_settings_updated":{let n=e.conversations.find(i=>i.id===t.conversationId);n&&t.disallowedTools!==void 0&&(n.disallowedTools=t.disallowedTools);let r=e.conversationMcpServers[t.conversationId];if(r&&t.disallowedTools){let i=new Set(t.disallowedTools),o=e.conversationMcpServerTools[t.conversationId]||{};for(let a of r){let l=o[a.name];l&&l.length>0?a.enabled=!l.some(c=>i.has(c)):a.enabled=!i.has(`mcp__${a.name}`)}}t.needRestart&&n&&(n.needRestart=!0);break}case"sync_messages_result":rh(e,t);break;case"conversation_deleted":hd(e,t);break;case"conversation_delete_result":t.ok&&hd(e,t);break;case"turn_completed":eh(e,t);break;case"conversation_closed":th(e,t);break;case"claude_output":e.handleAssistantOutputFrame(t.conversationId,t.data);break;case"yeaft_output":case"yeaft_session_output":case"session_output":e.handleYeaftOutput(t);break;case"yeaft_asset_ready":{let n=t.conversationId||e.yeaftConversationIdsByAgent?.[t.agentId]||e.yeaftConversationId;if(!n||!t.image)break;e.messagesMap[n]||(e.messagesMap[n]=[]),e.messagesMap[n].some(i=>i?.type==="chat-image"&&i.assetId===t.image.assetId&&i.sessionId===t.sessionId&&i.turnId===t.turnId&&(i.speakerVpId||i.vpId||"")===(t.vpId||"")&&(i.sourceToolCallId||"")===(t.image.sourceToolCallId||"")&&i.sourceImageIndex===t.image.sourceImageIndex)||e.addMessageToConversation(n,{type:"chat-image",...t.image,sessionId:t.sessionId||null,vpId:t.vpId||null,speakerVpId:t.vpId||null,turnId:t.turnId||null,threadId:t.threadId||null});break}case"yeaft_history_chunk":ah(e,t);break;case"yeaft_history_outline":e.handleYeaftHistoryOutline(t);break;case"yeaft_history_search_result":e.handleYeaftHistorySearchResult(t);break;case"yeaft_history_window":{let n=e.pendingYeaftHistoryWindow?.(t);if(!n||(n.pending?.prefetch===!0&&(t.prefetch=!0),e.pendingYeaftHistoryWindow?.(t)?.pending!==n.pending))break;let r=t.error?null:ih(e,t);e.handleYeaftHistoryWindow(t,r);break}case"yeaft_tool_stats":{e._fetchYeaftToolStatsTimer&&(clearTimeout(e._fetchYeaftToolStatsTimer),e._fetchYeaftToolStatsTimer=null);let n=t?.snapshot,r=n&&typeof n=="object"&&!Array.isArray(n)?n:{};e.yeaftToolStats={snapshot:r,registered:Array.isArray(t?.registered)?t.registered:[],unused:Array.isArray(t?.unused)?t.unused:[],error:typeof t?.error=="string"?t.error:null,notice:typeof t?.notice=="string"?t.notice:null,fetchedAt:Date.now()},e.yeaftToolStatsLoading=!1;break}case"yeaft_debug_history":{let n=e.yeaftDebugPanel?.agentId||null;if(n&&t?.agentId&&t.agentId!==n)break;let r=typeof t?.requestId=="string"?t.requestId:"",i=typeof t?.detailTurnId=="string"&&t.detailTurnId,o=i?e._yeaftDebugHistoryLatestDetailRequestId:e._yeaftDebugHistoryLatestListRequestId;if(o&&r!==o||!o&&r)break;let a=e._yeaftDebugHistoryPending?.payload;if(a&&(a.requestId!==r||a.agentId!==t.agentId||t.sessionId&&a.sessionId!==t.sessionId))break;e._yeaftDebugHistoryPending=null,ti(e),e._fetchYeaftDebugHistoryTimer&&(clearTimeout(e._fetchYeaftDebugHistoryTimer),e._fetchYeaftDebugHistoryTimer=null),e._yeaftDebugHistoryInFlightKey=null;let l=Array.isArray(t?.turns)?t.turns:[],c=t?.search?WI:HI,d=i?l:l.slice(-c),u=new Set(d.map(C=>C?.turnId).filter(Boolean)),p=XI(Array.isArray(t?.loops)?t.loops:[]),f=i?p:p.filter(C=>!C?.turnId||u.has(C.turnId));e.yeaftDebugHistoryHasMore=!!t?.hasMore||!i&&l.length>d.length,!t?.detailTurnId&&Number.isFinite(t?.limit)&&t.limit>0&&(e.yeaftDebugHistoryLimit=Math.min(c,t.limit)),(!e.yeaftDebugTurnsById||typeof e.yeaftDebugTurnsById!="object")&&(e.yeaftDebugTurnsById={}),Array.isArray(e.yeaftDebugLoops)||(e.yeaftDebugLoops=[]),Array.isArray(e.yeaftDebugTurnOrder)||(e.yeaftDebugTurnOrder=[]);let g=i?{...e.yeaftDebugTurnsById}:{};for(let C of d){let _=C?.turnId;if(!_)continue;let M=g[_];if(M){let E=C?.detailsLoaded?{...M,...C}:{...C,...M};E.memoryLoaded==null&&M.memoryLoaded!=null&&(E.memoryLoaded=M.memoryLoaded),E.memoryAdjust==null&&M.memoryAdjust!=null&&(E.memoryAdjust=M.memoryAdjust),g[_]=E}else g[_]=C}e.yeaftDebugTurnsById=g;let v=C=>C?.loopInstanceId||`${C?.turnId||""}#${C?.loopNumber||0}`,h=e.yeaftDebugLoops,m=new Map;for(let C of h)C&&m.set(v(C),C);let y=new Set,k=[];for(let C of f){if(!C)continue;let _=v(C);y.add(_);let M=m.get(_);k.push(i?{...M||{},...C}:M||C)}if(i)for(let C of h)!C||y.has(v(C))||k.push(C);e.yeaftDebugLoops=k;let w=new Set,b=[],S=C=>{!C||w.has(C)||(w.add(C),b.push(C))};if(i){for(let C of e.yeaftDebugTurnOrder)S(C);for(let C of d)S(C?.turnId)}else for(let C of d)S(C?.turnId);e.yeaftDebugTurnOrder=i?b:b.slice(-c),e.yeaftDebugHistoryLoading=!1,e.yeaftDebugHistoryError=typeof t?.error=="string"?t.error:null,e.yeaftDebugHistoryProjection=t?.projection&&typeof t.projection=="object"?t.projection:null,e.yeaftDebugHistoryFetchedAt=Date.now(),e._yeaftDebugDetailDirty&&!e.yeaftDebugHistoryError&&e.scheduleYeaftDebugDetailRefresh?.({agentId:e.yeaftDebugPanel?.agentId,sessionId:e.yeaftDebugPanel?.sessionId},e.yeaftDebugPanel?.turnId),i&&e.yeaftDebugPanel&&e.yeaftDebugPanel.turnId===t.detailTurnId&&(e.yeaftDebugPanel={...e.yeaftDebugPanel,status:e.yeaftDebugHistoryError?"error":"ready",error:e.yeaftDebugHistoryError});break}case"chat_image":t.conversationId&&t.fileId&&e.addMessageToConversation(t.conversationId,{type:"chat-image",fileId:t.fileId,previewToken:t.previewToken,mimeType:t.mimeType});break;case"error":{if(t.sessionId||t.clientMessageId&&t.code){zI(e,t);break}let n=t.conversationId||e.currentConversation,r=["Permission denied","Agent not found","No conversation selected","Agent is still syncing","No agent available","Agent access denied"].some(c=>t.message?.includes(c));if((t.message?.includes("Agent is still syncing")||t.message?.includes("Agent not found"))&&Hs(e),["No conversation selected","Agent is still syncing","No agent available"].some(c=>t.message?.includes(c))&&n&&(delete e.processingConversations[n],tt(e,n),e.finishStreamingForConversation(n)),r&&n){let c=e.messagesMap[n];if(c&&c.length>0)for(let d=c.length-1;d>=0&&d>=c.length-5;d--){let u=c[d];if(u&&u.type==="error"&&u._sysErrBaseContent!==void 0){if(u._sysErrBaseContent===t.message&&Date.now()-(u._sysErrFirstAt||0)<=3e3){u._sysErrCount=(u._sysErrCount||1)+1,u.content=`${u._sysErrBaseContent} (\xD7${u._sysErrCount})`,u._sysErrRemoveTimer&&(clearTimeout(u._sysErrRemoveTimer),u._sysErrRemoveTimer=setTimeout(()=>{let p=e.messagesMap[n];if(p){let f=p.findIndex(g=>g.id===u.id);f>=0&&p.splice(f,1)}},5e3));return}break}}}let o=Date.now().toString()+Math.random().toString(36).substr(2,9),a={type:"error",content:t.message,transient:r,dbMessageId:r?"err_"+o:void 0};r&&(a._sysErrBaseContent=t.message,a._sysErrCount=1,a._sysErrFirstAt=Date.now()),e.addMessageToConversation(n,a);let l=null;if(r&&n){let c=e.messagesMap[n];c&&c.length>0&&(l=c[c.length-1])}if(r&&n&&l){let c=n,d="err_"+o;l._sysErrRemoveTimer=setTimeout(()=>{let u=e.messagesMap[c];if(u){let p=u.findIndex(f=>f.id===d);p>=0&&u.splice(p,1)}},5e3)}!r&&n&&(delete e.processingConversations[n],tt(e,n),e.finishStreamingForConversation(n));break}case"history_sessions_list":if(t.requestId&&e._historySessionsRequestId&&t.requestId!==e._historySessionsRequestId)break;e.historySessions=t.sessions||[],e.historySessionsLoading=!1;break;case"folders_list":if(t.requestId&&e._foldersRequestId&&t.requestId!==e._foldersRequestId)break;e.folders=t.folders||[],e.foldersLoading=!1,e._foldersResolve&&(e._foldersResolve(),e._foldersResolve=null);break;case"models_list":if(t.requestId&&e._modelsRequestId&&t.requestId!==e._modelsRequestId)break;e.providerModels=t.models||[],e.providerModelsLoading=!1,e._modelsTimeout&&(clearTimeout(e._modelsTimeout),e._modelsTimeout=null),e._modelsResolve&&(e._modelsResolve(e.providerModels),e._modelsResolve=null);break;case"conversation_refresh":sh(e,t);break;case"session_pinned":if(t.conversationId){let n=t.agentId?{agentId:t.agentId}:{};if(typeof e.setSessionPinned=="function")e.setSessionPinned(t.conversationId,!!t.pinned,n);else try{let r=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();r&&typeof r.applyPinState=="function"&&r.applyPinState(t.conversationId,!!t.pinned,t.agentId||e.yeaftSessionAgentById?.[t.conversationId]||e.currentAgent||null)}catch{}}break;case"execution_cancelled":nh(e,t);break;case"slash_commands_update":if(Array.isArray(t.slashCommands)){let n=[...new Set(t.slashCommands)];if(t.commandSet==="yeaft"){let r=t.conversationId&&t.conversationId!=="__preload__"?t.conversationId:null,i=t.agentId&&e.yeaftConversationIdsByAgent?.[t.agentId]||null,o=r||i;o&&(e.slashCommandsMap[o]=n);let a=e.yeaftConversationId||null,l=t.agentId?e.currentAgent===t.agentId&&(i===a||r===a):r===a;a&&l&&(e.slashCommandsMap[a]=n)}else t.conversationId&&(e.slashCommandsMap[t.conversationId]=n),t.agentId&&(e.slashCommandsMap[`agent:${t.agentId}`]=n)}t.slashCommandDescriptions&&(e.slashCommandDescriptions={...e.slashCommandDescriptions,...t.slashCommandDescriptions});break;case"compact_status":{let n=t.conversationId;e.compactStatus={conversationId:n,status:t.status,message:t.message},t.status==="completed"?setTimeout(()=>{e.compactStatus?.conversationId===n&&e.compactStatus?.status==="completed"&&(e.compactStatus=null)},3e3):t.status==="compacting"&&setTimeout(()=>{e.compactStatus?.conversationId===n&&e.compactStatus?.status==="compacting"&&(e.compactStatus=null)},3e4)}break;case"pong_session":{let n=t.conversationId;if(!n)break;if(e._pongTimeouts?.[n]&&(clearTimeout(e._pongTimeouts[n]),delete e._pongTimeouts[n]),t.status==="unsupported"){tt(e,n),Wg(e,n);break}if(t.status==="ok")e.sessionHealth?.[n]&&delete e.sessionHealth[n],!t.isProcessing&&e.processingConversations[n]&&(delete e.processingConversations[n],tt(e,n),e.finishStreamingForConversation(n));else if(e.sessionHealth||(e.sessionHealth={}),e.sessionHealth[n]={status:t.status},t.status==="session-lost"||t.status==="cli-exited"){if(e._autoRefreshed||(e._autoRefreshed={}),!e._autoRefreshed[n]){e._autoRefreshed[n]=!0;let r=e.conversations.find(i=>i.id===n);e.sendWsMessage({type:"refresh_conversation",conversationId:n,agentId:r?.agentId})}delete e.processingConversations[n],tt(e,n),e.finishStreamingForConversation(n)}break}case"ask_user_question":if(t.conversationId){let n=()=>{let r=e.messagesMap[t.conversationId]||[];for(let i=r.length-1;i>=0;i--)if(r[i].type==="tool-use"&&r[i].toolName==="AskUserQuestion"&&!r[i].askRequestId)return r[i].askRequestId=t.requestId,r[i].askQuestions=t.questions,!0;return!1};if(!n()){let r=0,i=setInterval(()=>{r++,(n()||r>=10)&&clearInterval(i)},200)}}break;case"dream_enabled_changed":break;case"restart_agent_ack":{let n=e.agentOperations?.[t.agentId]?.restart,r=!!t.requestId&&n?.requestId===t.requestId;if(!n?.pending||!r)break;n.pending&&(e.agentOperations={...e.agentOperations,[t.agentId]:{...e.agentOperations[t.agentId]||{},restart:{...n,acknowledged:!0}}}),window.dispatchEvent(new CustomEvent("agent-restart-ack",{detail:{agentId:t.agentId,requestId:t.requestId}}));break}case"upgrade_agent_ack":{let n=e.agentOperations?.[t.agentId]?.upgrade,r=!!t.requestId&&n?.requestId===t.requestId;if(!n?.pending||!r)break;n.pending&&(!t.success||t.alreadyLatest?(n.batchId&&t.alreadyLatest?e.recordAgentUpgradeBatchResult?.(t.agentId,{status:"already_latest",version:t.version||null},n.batchId):n.batchId&&!t.success&&e.recordAgentUpgradeBatchResult?.(t.agentId,{status:"failed",error:t.error||null,reason:t.reason||null,version:t.version||null},n.batchId),e.finishAgentOperation?.(t.agentId,"upgrade",t.error||null)):e.agentOperations={...e.agentOperations,[t.agentId]:{...e.agentOperations[t.agentId]||{},upgrade:{...n,acknowledged:!0}}}),window.dispatchEvent(new CustomEvent("agent-upgrade-ack",{detail:{agentId:t.agentId,requestId:t.requestId,batchId:n.batchId||null,success:t.success,error:t.error,alreadyLatest:t.alreadyLatest,version:t.version,reason:t.reason,currentNode:t.currentNode,requiredNode:t.requiredNode,requiredCapability:t.requiredCapability}}));break}case"browser_runtime_status_result":case"browser_runtime_install_progress":case"browser_runtime_error":case"browser_session_created":case"browser_session_error":case"browser_session_snapshot":case"browser_session_list_result":case"browser_peer_prepared":case"browser_peer_offer":case"browser_peer_ice_candidate":case"browser_peer_state":case"browser_peer_error":window.dispatchEvent(new CustomEvent("browser-runtime-message",{detail:t}));break;case"terminal_created":case"terminal_output":case"terminal_closed":case"terminal_error":case"file_content":case"video_metadata":case"file_references_resolved":case"file_saved":case"directory_listing":case"git_status_result":case"git_diff_result":case"git_op_result":case"file_op_result":case"file_search_result":case"file_tabs_restored":t.type,t.type,window.dispatchEvent(new CustomEvent("workbench-message",{detail:t}));break;case"server_updating":e.connectionState="updating";break;case"context_usage":e.contextUsage={inputTokens:t.inputTokens,maxTokens:t.maxTokens,percentage:t.percentage,conversationId:t.conversationId};break;case"mcp_servers_list":case"mcp_config_updated":t.agentId&&t.servers&&(e.mcpServers[t.agentId]=t.servers);break;case"expert_roles_list":t.roles&&(e.expertRoleDefinitions=t.roles);break;case"llm_models_discovered":t.agentId&&(e.llmModelDiscovery=e.llmModelDiscovery||{},e.llmModelDiscovery[t.agentId]=t);break;case"llm_config":case"llm_config_updated":if(t.agentId){let n=t.agentConfig||BI(t),r=t.effectiveConfig||n;e.llmConfig[t.agentId]={providers:t.providers||r.providers||[],primaryModel:t.primaryModel||r.primaryModel||null,fastModel:t.fastModel||r.fastModel||null,language:t.language||n.language||r.language||"en",needsSetup:t.needsSetup??r.needsSetup??!1,agentConfig:n,effectiveConfig:r,requestId:t.requestId||null,statusRefreshError:t.statusRefreshError||null,error:t.error||null,loaded:!0}}break;case"models_dev_registry":if(e.modelsDevRegistry={registry:t.registry||{},fetchedAt:t.fetchedAt||Date.now(),error:t.error||null,loaded:!0},e._modelsDevPending){let n=e._modelsDevPending;e._modelsDevPending=null,n.timer&&clearTimeout(n.timer);for(let r of n.resolvers)r(e.modelsDevRegistry)}break;case"yeaft_settings":case"yeaft_settings_updated":t.agentId&&(e.yeaftSettings[t.agentId]={maxConcurrentThreads:t.maxConcurrentThreads??6,autoArchiveIdleDays:t.autoArchiveIdleDays??30,error:t.error||null,loaded:!0,at:Date.now()});break;case"yeaft_plugins":case"yeaft_plugins_updated":{lg(e,t);break}case"yeaft_managed_skill_result":{let n=t.requestId?e._pluginPending?.[t.requestId]:null,r=n?.kind==="managed-skill"?n:null,i=t.catalog&&typeof t.catalog=="object"?{tools:Array.isArray(t.catalog.tools)?t.catalog.tools:[],skills:Array.isArray(t.catalog.skills)?t.catalog.skills:[],skillSources:Array.isArray(t.catalog.skillSources)?t.catalog.skillSources:[],mcpServers:Array.isArray(t.catalog.mcpServers)?t.catalog.mcpServers:[]}:{tools:[],skills:[],skillSources:[],mcpServers:[]};if(r&&e.managedSkillRequestByKey?.[r.key]===t.requestId){let o=e.pluginCatalogKey?.(r.agentId,r.workDir||"")||"";e.pluginCatalogByKey={...e.pluginCatalogByKey,[o]:{catalog:i,loading:!1,error:t.error||null,loaded:!0,at:Date.now()}}}r&&(clearTimeout(r.timer),delete e._pluginPending[t.requestId],r.resolve({catalog:i,error:t.error||null,result:t.result||null}));break}case"yeaft_plugin_catalog_result":{if(mg(e,t))break;let n=t.requestId?e._pluginPending?.[t.requestId]:null,r=n?.kind==="catalog"?n:null,i=t.catalog&&typeof t.catalog=="object"?{tools:Array.isArray(t.catalog.tools)?t.catalog.tools:[],skills:Array.isArray(t.catalog.skills)?t.catalog.skills:[],skillSources:Array.isArray(t.catalog.skillSources)?t.catalog.skillSources:[],mcpServers:Array.isArray(t.catalog.mcpServers)?t.catalog.mcpServers:[]}:{tools:[],skills:[],skillSources:[],mcpServers:[]},o=r?.key;o&&e.pluginCatalogRequestByKey?.[o]===t.requestId&&(e.pluginCatalogByKey={...e.pluginCatalogByKey,[o]:{catalog:i,loading:!1,error:t.error||null,loaded:!0,at:Date.now()}}),r&&(clearTimeout(r.timer),delete e._pluginPending[t.requestId],r.resolve({catalog:i,error:t.error||null}));break}case"telemetry_settings":case"telemetry_settings_updated":{let n={enabled:t.enabled!==!1,retentionDays:t.retentionDays??3,flushIntervalMs:t.flushIntervalMs??1e3,maxQueueSize:t.maxQueueSize??5e3,rawExchangeMaxBytes:t.rawExchangeMaxBytes??524288,traceTextMaxBytes:t.traceTextMaxBytes??262144,error:t.error||null,loaded:!0,at:Date.now()},r=t.type==="telemetry_settings_updated"?"update":"load",i=t.requestId?{requestId:t.requestId,pending:e._telemetryPending?.[t.requestId]}:null,o=i?.pending;if(!o||o.agentId!==t.agentId||o.operation!==r)break;clearTimeout(o.timer),delete e._telemetryPending[i.requestId],e.telemetryRequestByAgent?.[o.agentId]===i.requestId&&(e.telemetrySettingsByAgent={...e.telemetrySettingsByAgent,[o.agentId]:n},e.currentAgent===o.agentId&&(e.telemetrySettings=n)),o.resolve(n);break}case"work_center_feature_settings":case"work_center_feature_settings_updated":{let n=t.type==="work_center_feature_settings_updated"?"update":"load",r=t.requestId?e._workCenterFeaturePending?.[t.requestId]:null;if(!r||r.agentId!==t.agentId||r.operation!==n)break;clearTimeout(r.timer),delete e._workCenterFeaturePending[t.requestId];let i={enabled:t.enabled===!0,source:t.source||"config",overridden:t.overridden===!0,error:t.error||null,persisted:t.persisted,effective:t.effective,rolledBack:t.rolledBack===!0,sessionTools:t.sessionTools||null,runtimeError:t.runtimeError||null,unsupported:t.unsupported===!0,loaded:!0};if(e.workCenterFeatureRequestByAgent?.[r.agentId]===t.requestId&&(e.workCenterFeatureSettingsByAgent={...e.workCenterFeatureSettingsByAgent,[r.agentId]:i}),i.error){let o=new Error(i.error);o.settings=i,r.reject(o)}else r.resolve(i);break}case"search_settings":case"search_settings_updated":{let n={backend:t.backend||"tavily",tavilyKeyConfigured:!!t.tavilyKeyConfigured,tavilyKeyMasked:t.tavilyKeyMasked||null,disableHtmlFallback:!!t.disableHtmlFallback,error:t.error||null,loaded:!0,at:Date.now()};e.searchSettings=n;let r=e._searchPending,i=t.type==="search_settings"?"load":"update";r&&r[i]&&(r[i](n),delete r[i]);break}case"tavily_usage":{let n=t.error?{error:t.error}:{plan:t.plan,used:t.used,limit:t.limit,paygoUsed:t.paygoUsed,paygoLimit:t.paygoLimit};e.tavilyUsage=n,e.tavilyUsageLoading=!1;let r=e._searchPending;r&&r.usage&&(r.usage(n),delete r.usage);break}case"yeaft_mcp_list_result":case"yeaft_mcp_add_result":case"yeaft_mcp_remove_result":case"yeaft_mcp_reload_result":case"yeaft_mcp_updated":{if(Array.isArray(t.servers)&&(e.yeaftMcpServers=t.servers),t.runtime&&typeof t.runtime=="object"&&(e.yeaftMcpRuntime={connected:!!t.runtime.connected,toolCount:t.runtime.toolCount||0,perServer:Array.isArray(t.runtime.perServer)?t.runtime.perServer:[]}),e.yeaftMcpLoading=!1,e.yeaftMcpError=t.error||null,t.requestId){let n=e._mcpPending;n&&n[t.requestId]&&(n[t.requestId](t),delete n[t.requestId])}break}case"conversation_mcp_update":t.conversationId&&t.servers&&(e.conversationMcpServers[t.conversationId]=t.servers),t.conversationId&&t.serverTools&&(e.conversationMcpServerTools[t.conversationId]=t.serverTools);break;case"btw_stream":e.appendBtwDelta(t.delta);break;case"btw_done":e.btwLoading=!1,t.btwSessionId&&(e.btwSessionId=t.btwSessionId);break;case"btw_error":{let n=e.btwMessages[e.btwMessages.length-1];n&&n.role==="assistant"&&(n.content="Error: "+t.error),e.btwLoading=!1;break}case"background_task_started":case"background_task_output":break;case"subagent_started":t.conversationId&&t.subagentId&&e.addSubagent(t.conversationId,{id:t.subagentId,slug:t.slug,type:t.subagentType,description:t.description,parentToolUseId:t.parentToolUseId});break;case"subagent_message":t.conversationId&&t.subagentId&&t.message&&e.appendSubagentMessage(t.conversationId,t.subagentId,t.message);break;case"subagent_completed":t.conversationId&&t.subagentId&&e.completeSubagent(t.conversationId,t.subagentId);break}}}var HI,WI,UI,jI,$h,_d,Fh=F(()=>{xd();wa();Gc();ss();ca();un();qn();ur();Md();Na();ma();Eh();La();HI=1,WI=5,UI=500,jI=512*1024,$h=3e4,_d=new WeakMap});function Vh(){return Object.values(qh).sort((t,s)=>t.order-s.order).map(t=>({teamId:t.id,team:t,roles:Object.values(Es).filter(s=>s.group===t.id)}))}function Nh(e){let t=[];for(let s of Object.values(Es)){t.push({roleId:s.id,roleName:s.name,roleTitle:s.title,actionId:null,actionName:null,searchText:`${s.name} ${s.fullName} ${s.title} ${s.titleEn}`.toLowerCase(),displayText:s.name,group:s.group});for(let n of s.actions)t.push({roleId:s.id,roleName:s.name,roleTitle:s.title,actionId:n.id,actionName:n.name,searchText:`${s.name} ${s.fullName} ${s.title} ${n.name} ${n.nameEn}`.toLowerCase(),displayText:`${s.name}\xB7${n.name}`,group:s.group})}if(e&&e.length>0){for(let s of e)if(t.push({roleId:s.id,roleName:s.name,roleTitle:s.title,actionId:null,actionName:null,searchText:`${s.name} ${s.fullName||""} ${s.title} ${s.titleEn||""}`.toLowerCase(),displayText:s.name,group:"custom"}),s.actions)for(let n of s.actions)t.push({roleId:s.id,roleName:s.name,roleTitle:s.title,actionId:n.id,actionName:n.name,searchText:`${s.name} ${s.fullName||""} ${s.title} ${n.name} ${n.nameEn||""}`.toLowerCase(),displayText:`${s.name}\xB7${n.name}`,group:"custom"})}return t}function kr(e,t){let s=Es[e.role];if(s){if(e.action){let n=s.actions.find(r=>r.id===e.action);return n?`${s.name}\xB7${n.name}`:s.name}return s.name}if(t){let n=t.find(r=>r.id===e.role);if(n){if(e.action){let r=n.actions?.find(i=>i.id===e.action);return r?`${n.name}\xB7${r.name}`:n.name}return n.name}}return e.role}function $d(e,t,s,n="zh-CN"){if(!e||e.length===0||!t||t.length===0)return null;let r=n==="zh-CN";if(!e.some(l=>!Es[l.role]&&t.some(c=>c.id===l.role)))return null;if(e.length===1){let{role:l,action:c}=e[0],d=t.find(p=>p.id===l);if(!d)return null;let u;if(c&&d.actions){let p=d.actions.find(f=>f.id===c);p?s?(u=(r?p.messageTemplate:p.messageTemplateEn)||"",u+=s):u=(r?p.defaultMessage:p.defaultMessageEn)||"":u=((r?d.messagePrefix:d.messagePrefixEn)||"")+(s||"")}else u=((r?d.messagePrefix:d.messagePrefixEn)||"")+(s||"");return{effectivePrompt:u}}let o=[];for(let{role:l,action:c}of e){let d=t.find(p=>p.id===l),u=Es[l];if(d)if(c){let p=d.actions?.find(f=>f.id===c);p&&o.push((r?p.messageTemplate:p.messageTemplateEn)||"")}else o.push((r?d.messagePrefix:d.messagePrefixEn)||"");else if(u)return null}return o.length===0?null:{effectivePrompt:o.join(`
4
4
  ---
@@ -500,10 +500,6 @@ They will restart after upgrading. {skipped} other Agent(s) will be skipped beca
500
500
  :disabled="!command || loading || copyState === 'copying'"
501
501
  @click="copyCommand"
502
502
  >
503
- <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
504
- <path v-if="copyState === 'copied'" d="m5 12 4 4L19 6" />
505
- <template v-else><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3"/></template>
506
- </svg>
507
503
  <span>{{ copyLabel }}</span>
508
504
  </button>
509
505
  </div>
@@ -4286,7 +4282,7 @@ ${String(e||"").trim()}
4286
4282
  </button>
4287
4283
  </div>
4288
4284
  <div class="sp-actions-row">
4289
- <button class="sp-btn sp-btn-muted" @click="resetSecret" :disabled="resettingSecret">
4285
+ <button class="sp-btn sp-btn-danger" @click="resetSecret" :disabled="resettingSecret">
4290
4286
  {{ resettingSecret ? $t('settings.security.resetting') : agentSecretActionLabel }}
4291
4287
  </button>
4292
4288
  <span class="sp-warning" v-if="resetConfirm">{{ $t('settings.security.resetWarning') }}</span>
@@ -4518,7 +4514,6 @@ ${String(e||"").trim()}
4518
4514
  </div>
4519
4515
  </div>
4520
4516
  <button class="sp-btn-create" @click="createInvitation" :disabled="creatingInvite">
4521
- <svg viewBox="0 0 24 24" width="15" height="15"><path fill="currentColor" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
4522
4517
  {{ creatingInvite ? $t('settings.invite.creating') : $t('settings.invite.createBtn') }}
4523
4518
  </button>
4524
4519
  </div>
@@ -4845,11 +4840,9 @@ ${String(e||"").trim()}
4845
4840
  <!-- Add provider button -->
4846
4841
  <div class="llm-add-row">
4847
4842
  <button class="sp-btn llm-add-btn" @click="addProvider">
4848
- <svg viewBox="0 0 24 24" width="15" height="15"><path fill="currentColor" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
4849
4843
  {{ $t('settings.llm.addProvider') }}
4850
4844
  </button>
4851
4845
  <button v-if="context === 'yeaft'" class="sp-btn llm-add-btn" @click="showPresetPicker = true">
4852
- <svg viewBox="0 0 24 24" width="15" height="15"><path fill="currentColor" d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z"/></svg>
4853
4846
  {{ $t('settings.llm.addFromPreset') }}
4854
4847
  </button>
4855
4848
  </div>
@@ -5958,7 +5951,7 @@ ${String(e||"").trim()}
5958
5951
  <slot name="collapsed"></slot>
5959
5952
  <slot></slot>
5960
5953
  </aside>
5961
- `}});function Kk(e){let t=typeof e=="number"?e:Date.parse(e||"");return Number.isFinite(t)?t:0}function Gk(e){if(e.length===0)return!1;let t=e.map(s=>s?.sortRank);return t.every(Number.isFinite)&&new Set(t).size===e.length}function $p(e,t=Gk(e)){return[...e].sort((s,n)=>{if(!!s.pinned!=!!n.pinned)return s.pinned?-1:1;if(t){let i=Number.isFinite(s.sortRank)?s.sortRank:Number.MAX_SAFE_INTEGER,o=Number.isFinite(n.sortRank)?n.sortRank:Number.MAX_SAFE_INTEGER;if(i!==o)return i-o}let r=Kk(n.metadataUpdatedAt||n.createdAt)-Kk(s.metadataUpdatedAt||s.createdAt);return r!==0?r:String(s.catalogKey||"").localeCompare(String(n.catalogKey||""))})}function bt(e){return e?.id||""}function J0(){try{if(typeof localStorage>"u")return{projects:!1,recents:!1};let e=JSON.parse(localStorage.getItem(Yk)||"{}");return{projects:e?.projects===!0,recents:e?.recents===!0}}catch{return{projects:!1,recents:!1}}}function zk(e){try{typeof localStorage<"u"&&localStorage.setItem(Yk,JSON.stringify({projects:e?.projects===!0,recents:e?.recents===!0}))}catch{}}function e1(e,t,s,n="before"){let r=Array.isArray(e)?[...e]:[],i=r.findIndex(l=>bt(l)===t);if(i<0)return null;let[o]=r.splice(i,1),a=r.findIndex(l=>bt(l)===s);return a<0?null:(r.splice(a+(n==="after"?1:0),0,o),r)}function t1(e,t){return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!0:e.some((s,n)=>s?.catalogKey!==t[n]?.catalogKey)}function s1(e,t,s=null,n="before"){let r=Array.isArray(e)?[...e]:[],i=r.findIndex(l=>l?.catalogKey===t);if(i<0)return null;let[o]=r.splice(i,1);if(n==="append")return r.push(o),r;let a=r.findIndex(l=>l?.catalogKey===s);return a<0?null:(r.splice(a+(n==="after"?1:0),0,o),r)}function n1(e,t,s={}){let i=Math.max(0,Number(s.width)||0),o=Math.max(0,Number(s.height)||0),a=Math.min(Math.max(160,Number(t?.width)||0),Math.max(0,i-16)),l=Math.max(0,Number(t?.height)||0),c=Math.max(0,o-e.bottom-4-8),d=Math.max(0,e.top-4-8),u=c<l&&d>c,p=Math.min(l,u?d:c),f=Math.min(Math.max(8,e.right-a),Math.max(8,i-8-a)),g=u?e.top-4-p:e.bottom+4;return{top:Math.min(Math.max(8,g),Math.max(8,o-8-p)),left:f,width:a,maxHeight:p,placement:u?"above":"below"}}function r1(e,t,s={}){let i=Math.max(0,Number(s.width)||0),o=Math.max(0,Number(s.height)||0),a=Math.min(Math.max(160,Number(t?.width)||0),Math.max(0,i-16)),l=Math.max(0,Number(t?.height)||0),c=Math.min(l,Math.max(0,o-16)),d=Math.max(0,i-e.right-4-8),u=Math.max(0,e.left-4-8),p=d<a&&u>d,f=p?e.left-4-a:e.right+4,g=Math.min(Math.max(8,f),Math.max(8,i-8-a));return{top:Math.min(Math.max(8,e.top),Math.max(8,o-8-c)),left:g,width:a,maxHeight:c,placement:p?"left":"right"}}function i1(e,t){return` <div
5954
+ `}});function Kk(e){let t=typeof e=="number"?e:Date.parse(e||"");return Number.isFinite(t)?t:0}function Gk(e){if(e.length===0)return!1;let t=e.map(s=>s?.sortRank);return t.every(Number.isFinite)&&new Set(t).size===e.length}function $p(e,t=Gk(e)){return[...e].sort((s,n)=>{if(!!s.pinned!=!!n.pinned)return s.pinned?-1:1;if(t){let i=Number.isFinite(s.sortRank)?s.sortRank:Number.MAX_SAFE_INTEGER,o=Number.isFinite(n.sortRank)?n.sortRank:Number.MAX_SAFE_INTEGER;if(i!==o)return i-o}let r=Kk(n.metadataUpdatedAt||n.createdAt)-Kk(s.metadataUpdatedAt||s.createdAt);return r!==0?r:String(s.catalogKey||"").localeCompare(String(n.catalogKey||""))})}function bt(e){return e?.id||""}function J0(){try{if(typeof localStorage>"u")return{projects:!1,recents:!1};let e=JSON.parse(localStorage.getItem(Yk)||"{}");return{projects:e?.projects===!0,recents:e?.recents===!0}}catch{return{projects:!1,recents:!1}}}function zk(e){try{typeof localStorage<"u"&&localStorage.setItem(Yk,JSON.stringify({projects:e?.projects===!0,recents:e?.recents===!0}))}catch{}}function eT(e,t,s,n="before"){let r=Array.isArray(e)?[...e]:[],i=r.findIndex(l=>bt(l)===t);if(i<0)return null;let[o]=r.splice(i,1),a=r.findIndex(l=>bt(l)===s);return a<0?null:(r.splice(a+(n==="after"?1:0),0,o),r)}function tT(e,t){return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!0:e.some((s,n)=>s?.catalogKey!==t[n]?.catalogKey)}function sT(e,t,s=null,n="before"){let r=Array.isArray(e)?[...e]:[],i=r.findIndex(l=>l?.catalogKey===t);if(i<0)return null;let[o]=r.splice(i,1);if(n==="append")return r.push(o),r;let a=r.findIndex(l=>l?.catalogKey===s);return a<0?null:(r.splice(a+(n==="after"?1:0),0,o),r)}function nT(e,t,s={}){let i=Math.max(0,Number(s.width)||0),o=Math.max(0,Number(s.height)||0),a=Math.min(Math.max(160,Number(t?.width)||0),Math.max(0,i-16)),l=Math.max(0,Number(t?.height)||0),c=Math.max(0,o-e.bottom-4-8),d=Math.max(0,e.top-4-8),u=c<l&&d>c,p=Math.min(l,u?d:c),f=Math.min(Math.max(8,e.right-a),Math.max(8,i-8-a)),g=u?e.top-4-p:e.bottom+4;return{top:Math.min(Math.max(8,g),Math.max(8,o-8-p)),left:f,width:a,maxHeight:p,placement:u?"above":"below"}}function rT(e,t,s={}){let i=Math.max(0,Number(s.width)||0),o=Math.max(0,Number(s.height)||0),a=Math.min(Math.max(160,Number(t?.width)||0),Math.max(0,i-16)),l=Math.max(0,Number(t?.height)||0),c=Math.min(l,Math.max(0,o-16)),d=Math.max(0,i-e.right-4-8),u=Math.max(0,e.left-4-8),p=d<a&&u>d,f=p?e.left-4-a:e.right+4,g=Math.min(Math.max(8,f),Math.max(8,i-8-a));return{top:Math.min(Math.max(8,e.top),Math.max(8,o-8-c)),left:g,width:a,maxHeight:c,placement:p?"left":"right"}}function iT(e,t){return` <div
5962
5955
  v-for="row in (isSectionCollapsed('${e}') ? [] : ${t})"
5963
5956
  :key="row.catalogKey"
5964
5957
  class="session-item sidebar-session-row"
@@ -5998,7 +5991,7 @@ ${String(e||"").trim()}
5998
5991
  <button type="button" class="session-dots-btn" :disabled="loading" :class="{ 'menu-open': openMenuKey === row.catalogKey }" @click.stop="toggleSessionMenu(row, false, $event)" :aria-label="$t('sidebar.sessions.menu')"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M6 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm6 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm6 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"/></svg></button>
5999
5992
  </span>
6000
5993
  </div>
6001
- `}var Yk,ac,Dp=F(()=>{qt();Yk="yeaft-sidebar-section-collapse";ac={name:"UnifiedSessionList",emits:["select","create","create-task","create-in-project","action","project-action","close-work-center"],props:{sessions:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},projectStore:{type:Object,default:null},projects:{type:Array,default:()=>[]},activeRoute:{type:Object,default:null},isSessionUnread:{type:Function,default:null},processingConversations:{type:Object,default:()=>({})},isYeaftSessionProcessing:{type:Function,default:null},agents:{type:Array,default:()=>[]},workCenterOpen:{type:Boolean,default:!1}},data(){return{actionGeneration:0,collapsedProjects:{},collapsedSections:J0(),openMenuKey:null,openProjectMenuKey:null,suppressedActionsKey:null,draggedRow:null,dragTargetProjectId:null,dragTargetRowKey:null,dragTargetPosition:null,draggedProjectId:null,dragTargetProjectRowId:null,dragTargetProjectPosition:null,dragOperationPending:!1,projectCreateOpen:!1,projectCreateName:"",projectCreateSubmitting:!1,projectInstructionOpen:!1,projectInstructionProject:null,projectInstructionDraft:"",projectInstructionSubmitting:!1,floatingMenu:null,floatingMenuStyle:{},floatingMenuTrigger:null,projectSubmenuOpen:!1,projectSubmenuStyle:{}}},mounted(){document.addEventListener("pointerdown",this.closeMenusFromDocument,!0),document.addEventListener("keydown",this.closeMenusFromKeyboard),window.addEventListener("resize",this.positionFloatingMenu),window.addEventListener("scroll",this.positionFloatingMenu,!0)},beforeUnmount(){document.removeEventListener("pointerdown",this.closeMenusFromDocument,!0),document.removeEventListener("keydown",this.closeMenusFromKeyboard),window.removeEventListener("resize",this.positionFloatingMenu),window.removeEventListener("scroll",this.positionFloatingMenu,!0)},watch:{loading(e){e&&(this.actionGeneration+=1,this.closeMenus(),this.finishAllDrag())}},computed:{resolvedProjectStore(){if(this.projectStore)return this.projectStore;try{return window.Pinia?.useChatStore?.()||null}catch{return null}},hasCompleteCatalogOrder(){return Gk(this.sessions)},projectRows(){return[...this.projects.length>0?this.projects:this.resolvedProjectStore?.sessionProjects||[]].sort((t,s)=>(t.sortOrder??Number.MAX_SAFE_INTEGER)-(s.sortOrder??Number.MAX_SAFE_INTEGER))},projectBySessionKey(){let e=new Map;for(let t of this.projectRows){let s=Array.isArray(t.members)?t.members:t.agentId?(t.sessionIds||[]).map(n=>({agentId:t.agentId,sessionId:n})):[];for(let n of s)n?.agentId&&n?.sessionId&&e.set(`${n.agentId}${n.sessionId}`,t)}return e},projectSessionRows(){let e=new Map(this.projectRows.map(t=>[bt(t),[]]));for(let t of this.sessions){if(t.runtimeProvider!=="yeaft")continue;let s=this.projectBySessionKey.get(`${t.routeRef?.agentId}${t.routeRef?.sessionId}`),n=bt(s);s&&e.has(n)&&e.get(n).push(t)}return e},rowsByProject(){let e=new Map;for(let[t,s]of this.projectSessionRows)e.set(t,$p(s.filter(n=>this.isRowOnline(n)),this.hasCompleteCatalogOrder));return e},recentRows(){return $p(this.sessions.filter(e=>{if(!this.isRowOnline(e))return!1;if(e.runtimeProvider==="yeaft"){let t=`${e.routeRef?.agentId}${e.routeRef?.sessionId}`;if(this.projectBySessionKey.has(t))return!1}return!0}),this.hasCompleteCatalogOrder)}},methods:{closeMenus(){this.openMenuKey=null,this.openProjectMenuKey=null,this.floatingMenu=null,this.floatingMenuStyle={},this.floatingMenuTrigger=null,this.projectSubmenuOpen=!1,this.projectSubmenuStyle={}},closeMenusFromDocument(e){e?.target?.closest?.(".session-menu, .session-submenu, .session-dots-btn")||this.closeMenus()},closeMenusFromKeyboard(e){e?.key==="Escape"&&(this.closeMenus(),this.cancelProjectCreate(),this.projectInstructionOpen&&this.closeProjectInstruction())},restoreRowActions(e){this.suppressedActionsKey===e?.catalogKey&&(this.suppressedActionsKey=null)},toggleProjectMenu(e,t){if(this.loading)return;let s=bt(e);if(this.openProjectMenuKey===s){this.closeMenus();return}this.openMenuKey=null,this.openProjectMenuKey=s,this.floatingMenu={kind:"project",project:e},this.floatingMenuTrigger=t?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)},toggleSessionMenu(e,t,s){if(!this.loading){if(this.openMenuKey===e.catalogKey){this.closeMenus();return}this.openProjectMenuKey=null,this.openMenuKey=e.catalogKey,this.floatingMenu={kind:"session",row:e,inProject:t===!0,currentProject:this.projectBySessionKey.get(`${e.routeRef?.agentId}${e.routeRef?.sessionId}`)||null},this.floatingMenuTrigger=s?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)}},positionFloatingMenu(){let e=this.floatingMenuTrigger,t=this.$refs.floatingMenu;if(!this.floatingMenu||!e?.isConnected||!t){this.floatingMenu&&e&&!e.isConnected&&this.closeMenus();return}let s=n1(e.getBoundingClientRect(),{width:t.scrollWidth||t.offsetWidth||160,height:t.scrollHeight||t.offsetHeight||0},{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight});this.floatingMenuStyle={top:`${s.top}px`,left:`${s.left}px`,width:`${s.width}px`,maxHeight:`${s.maxHeight}px`},this.projectSubmenuOpen&&this.$nextTick(this.positionProjectSubmenu)},isActive(e){if(this.resolvedProjectStore?.pluginCenterOpen)return!1;let t=e?.routeRef,s=this.activeRoute;return!!t&&!!s&&t.runtimeProvider===s.runtimeProvider&&t.agentId===s.agentId&&t.sessionId===s.sessionId},isProcessing(e){return e?.runtimeProvider==="yeaft"?typeof this.isYeaftSessionProcessing=="function"?!!this.isYeaftSessionProcessing(e.routeRef.sessionId,e.routeRef.agentId):!1:!!this.processingConversations?.[e?.routeRef?.sessionId]},forkUnavailableReason(e){return typeof this.resolvedProjectStore?.sessionForkUnavailableReason=="function"?this.resolvedProjectStore.sessionForkUnavailableReason(e):this.canEditRow(e)?this.isProcessing(e)?"session_running":null:"agent_offline"},mergeUnavailableReason(e){return this.resolvedProjectStore?.sessionMergeUnavailableReason?.(e)||(typeof this.resolvedProjectStore?.sessionMergeUnavailableReason!="function"?"session_merge_unsupported":null)},isUnread(e){return typeof this.isSessionUnread=="function"?!!this.isSessionUnread(e):!1},isProjectUnread(e){return(this.projectSessionRows.get(bt(e))||[]).some(s=>this.isUnread(s))},projectKey(e){return bt(e)},isAgentOnline(e){return!!e&&this.agents.some(t=>t.id===e&&t.online)},isRowOnline(e){return e?.availability!=="online"?!1:this.isAgentOnline(e?.routeRef?.agentId)},canEditProject(e){return this.loading||!e?.id?!1:!e.legacyAgentId||this.isAgentOnline(e.legacyAgentId)},canEditRow(e){return this.loading||!e?.routeRef?.agentId||e.availability!=="online"?!1:this.isAgentOnline(e.routeRef.agentId)},canRunAction(e,t){return this.canEditRow(e)&&this.resolvedProjectStore?.catalogSessionActionSupported?.(e,t)!==!1},canMoveRowToProject(e,t=null){return this.canEditRow(e)?t?this.canEditProject(t)?!t.legacyAgentId||t.legacyAgentId===e.routeRef.agentId:!1:!0:!1},projectMoveTargets(e,t=null){let s=bt(t);return this.projectRows.filter(n=>bt(n)!==s&&this.canMoveRowToProject(e,n))},openProjectMoveList(){!this.floatingMenu||this.floatingMenu.kind!=="session"||(this.projectSubmenuOpen=!0,this.$nextTick(this.positionProjectSubmenu))},closeProjectMoveList(){this.projectSubmenuOpen=!1,this.projectSubmenuStyle={}},positionProjectSubmenu(){let e=this.$refs.floatingMenu,t=this.$refs.projectSubmenu;if(!this.projectSubmenuOpen||!e||!t)return;let s=r1(e.getBoundingClientRect(),{width:t.scrollWidth||t.offsetWidth||160,height:t.scrollHeight||t.offsetHeight||0},{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight});this.projectSubmenuStyle={top:`${s.top}px`,left:`${s.left}px`,width:`${s.width}px`,maxHeight:`${s.maxHeight}px`}},isSectionCollapsed(e){return this.collapsedSections?.[e]===!0},toggleSection(e){["projects","recents"].includes(e)&&(this.collapsedSections={...this.collapsedSections,[e]:!this.isSectionCollapsed(e)},zk(this.collapsedSections),this.closeMenus())},isProjectCollapsed(e){return this.collapsedProjects[bt(e)]===!0},toggleProject(e){let t=bt(e);this.collapsedProjects={...this.collapsedProjects,[t]:!this.collapsedProjects[t]},this.closeMenus()},providerLabel(e){return e.runtimeProvider==="yeaft"?"Yeaft":e.runtimeProvider==="copilot"?"Copilot":"Claude"},agentLabel(e){let t=this.agents.find(s=>s.id===e?.routeRef?.agentId);return e?.agentName||t?.name||e?.routeRef?.agentId||""},openPlugins(){let e=this.resolvedProjectStore;typeof e?.openPluginCenter=="function"&&e.openPluginCenter()!==!1&&e.closeSessionSidebar?.()},createTask(){this.loading||(this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create-task"))},createSession(){this.loading||(this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create"))},createSessionInProject(e){this.canEditProject(e)&&(this.closeMenus(),this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create-in-project",{project:e}))},selectRow(e,t,s={}){this.loading||(s.suppressActions===!0&&(this.suppressedActionsKey=e?.catalogKey||null,t?.currentTarget?.blur?.()),this.closeMenus(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("select",e))},selectRowFromKeyboard(e,t){t?.target===t?.currentTarget&&(t.preventDefault(),this.selectRow(e,t))},async runAction(e,t){this.closeMenus();let s=e==="delete"?"remove":e;if(this.canRunAction(t,s)&&!(e==="copy"&&this.forkUnavailableReason(t))&&!(e==="merge"&&this.mergeUnavailableReason(t))){if(e==="rename"){let n=this.actionGeneration,r=await Iu(this.$t("yeaft.session.renamePrompt",{name:t.title}),t.title),i=this.sessions.find(o=>o.catalogKey===t.catalogKey);if(!r?.trim()||r.trim()===t.title||n!==this.actionGeneration||!this.canRunAction(i,e)||i.routeRef.runtimeProvider!==t.routeRef.runtimeProvider||i.routeRef.agentId!==t.routeRef.agentId||i.routeRef.sessionId!==t.routeRef.sessionId)return;this.$emit("action",{action:e,row:i,title:r.trim()});return}this.$emit("action",{action:s,row:t})}},dispatchSessionAction(e){return this.loading?!1:e?.action==="reorder"&&this.resolvedProjectStore?.reorderCatalogSessions?this.resolvedProjectStore.reorderCatalogSessions(e.sessions):(this.$emit("action",e),!0)},dispatchProjectAction(e){if(this.loading||e?.action==="move-session"&&!this.canMoveRowToProject(e?.row,e?.project||null))return!1;this.$emit("project-action",e);let t=this.resolvedProjectStore;if(!t?.mutateProject)return!0;let{action:s,project:n,row:r,name:i,catalogOrder:o,agentId:a}=e,l=a||r?.routeRef?.agentId||null;if(s==="create")return t.mutateProject("create",{name:i},l);let c=n?.legacyProjectId||n?.id;return s==="rename"?t.mutateProject("rename",{projectId:c,name:i},n?.legacyAgentId||l):s==="update-instruction"?t.mutateProject("update_instruction",{projectId:c,instruction:e.instruction||""},n?.legacyAgentId||l):s==="delete"?t.mutateProject("delete",{projectId:c},n?.legacyAgentId||l):s==="reorder-projects"?t.mutateProject("reorder",{projectIds:(e.projects||[]).map(d=>d.id)}):s==="move-session"&&r?.routeRef?.sessionId?t.mutateProject("move_session",{sessionId:r.routeRef.sessionId,projectId:n?.legacyProjectId||n?.id||null,...Array.isArray(o)?{catalogOrder:o.map(d=>({catalogKey:d.catalogKey,routeRef:d.routeRef}))}:{}},l):!1},createProject(){this.loading||this.projectCreateSubmitting||(this.isSectionCollapsed("projects")&&(this.collapsedSections={...this.collapsedSections,projects:!1},zk(this.collapsedSections)),this.projectCreateOpen=!0,this.projectCreateName="",this.$nextTick(()=>this.$refs.projectCreateInput?.focus?.()))},cancelProjectCreate(){this.projectCreateSubmitting||(this.projectCreateOpen=!1,this.projectCreateName="")},async submitProjectCreate(){if(this.loading)return;let e=this.projectCreateName.trim();if(!(!e||this.projectCreateSubmitting)){this.projectCreateSubmitting=!0;try{(await this.dispatchProjectAction({action:"create",name:e}))?.ok!==!1&&(this.projectCreateOpen=!1,this.projectCreateName="")}finally{this.projectCreateSubmitting=!1}}},async renameProject(e){if(!this.canEditProject(e))return;let t=await Iu(this.$t("sidebar.projects.renamePrompt"),e.name);this.closeMenus(),t?.trim()&&t.trim()!==e.name&&this.dispatchProjectAction({action:"rename",project:e,name:t.trim()})},async deleteProject(e){this.canEditProject(e)&&(this.closeMenus(),await st(this.$t("sidebar.projects.deleteConfirm",{name:e.name}),{destructive:!0})&&this.dispatchProjectAction({action:"delete",project:e}))},editProjectInstruction(e){this.canEditProject(e)&&(this.closeMenus(),this.projectInstructionProject=e,this.projectInstructionDraft=typeof e.instruction=="string"?e.instruction:"",this.projectInstructionOpen=!0,this.$nextTick(()=>this.$refs.projectInstructionInput?.focus?.()))},closeProjectInstruction(){this.projectInstructionSubmitting||(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")},async saveProjectInstruction(){let e=this.projectInstructionProject;if(!(!e||this.projectInstructionSubmitting)){this.projectInstructionSubmitting=!0;try{(await this.dispatchProjectAction({action:"update-instruction",project:e,instruction:this.projectInstructionDraft}))?.ok!==!1&&(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")}finally{this.projectInstructionSubmitting=!1}}},moveRow(e,t=null,s=null){return this.closeMenus(),this.canMoveRowToProject(e,t)?this.dispatchProjectAction({action:"move-session",row:e,project:t,catalogOrder:s}):!1},projectForRow(e){if(e?.runtimeProvider!=="yeaft")return null;let t=`${e.routeRef?.agentId}${e.routeRef?.sessionId}`;return this.projectBySessionKey.get(t)||null},canDragProject(e){return!!e?.id&&!e.legacyProjectId&&this.projectRows.length>1&&this.projectRows.every(t=>t?.id&&!t.legacyProjectId)&&!this.dragOperationPending},startProjectDrag(e,t){this.canDragProject(e)&&(this.closeMenus(),this.finishDrag(),this.draggedProjectId=bt(e),t?.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",`project:${this.draggedProjectId}`)))},dragOverProjectRow(e,t){let s=bt(e);!this.draggedProjectId||s===this.draggedProjectId||!this.canDragProject(e)||(t?.preventDefault?.(),t?.stopPropagation?.(),t?.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragTargetProjectRowId=s,this.dragTargetProjectPosition=this.dragPositionForEvent(t))},dragLeaveProjectRow(e,t){if(this.dragTargetProjectRowId!==bt(e))return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetProjectRowId=null,this.dragTargetProjectPosition=null)},async dropProjectRow(e,t){t?.preventDefault?.(),t?.stopPropagation?.();let s=this.draggedProjectId,n=bt(e),r=this.dragTargetProjectRowId===n?this.dragTargetProjectPosition:this.dragPositionForEvent(t);if(this.finishProjectDrag(),!s||!n||s===n||!r)return!1;let i=e1(this.projectRows,s,n,r);if(!i)return!1;this.dragOperationPending=!0;try{let o=await this.dispatchProjectAction({action:"reorder-projects",projects:i});return o!==!1&&o?.ok!==!1}finally{this.dragOperationPending=!1}},finishProjectDrag(){this.draggedProjectId=null,this.dragTargetProjectRowId=null,this.dragTargetProjectPosition=null},canDragRow(e,t=null){return this.dragOperationPending||!this.canRunAction(e,"reorder")?!1:t?e?.runtimeProvider!=="yeaft"?!1:bt(this.projectForRow(e))===bt(t)||this.canMoveRowToProject(e,t):!0},canDropRow(e,t=null){return!e||this.dragOperationPending||!this.canRunAction(e,"reorder")?!1:t?e.runtimeProvider!=="yeaft"?!1:bt(this.projectForRow(e))===bt(t)?this.canEditRow(e):this.canMoveRowToProject(e,t):e.runtimeProvider==="yeaft"||!this.projectForRow(e)},startDrag(e,t){this.canDragRow(e,this.projectForRow(e))&&(this.closeMenus(),this.finishProjectDrag(),this.draggedRow=e,this.dragTargetProjectId=null,this.dragTargetRowKey=null,this.dragTargetPosition=null,t?.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.catalogKey)))},dragPositionForEvent(e){let t=e?.currentTarget?.getBoundingClientRect?.();return!t||!Number.isFinite(e?.clientY)?"before":e.clientY>t.top+t.height/2?"after":"before"},dragOverRow(e,t,s){let n=this.draggedRow;!this.canDropRow(n,t)||!this.canRunAction(e,"reorder")||n.catalogKey===e?.catalogKey||!!n.pinned!=!!e?.pinned||(s?.preventDefault?.(),s?.stopPropagation?.(),s?.dataTransfer&&(s.dataTransfer.dropEffect="move"),this.dragTargetProjectId=null,this.dragTargetRowKey=e.catalogKey,this.dragTargetPosition=this.dragPositionForEvent(s))},dragLeaveRow(e,t){if(this.dragTargetRowKey!==e?.catalogKey)return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetRowKey=null,this.dragTargetPosition=null)},async dropOnRow(e,t,s){s?.preventDefault?.(),s?.stopPropagation?.();let n=this.draggedRow,r=this.dragTargetRowKey===e?.catalogKey?this.dragTargetPosition:this.dragPositionForEvent(s);return this.finishDrag(),!this.canDropRow(n,t)||!this.canRunAction(e,"reorder")||!r?!1:this.applySessionDrop(n,t,e,r)},dragOverProjectHeader(e,t){if(this.draggedProjectId){this.dragOverProjectRow(e,t);return}this.dragOverProject(e,t)},clearProjectHeaderDragTarget(e,t){if(this.draggedProjectId){this.dragLeaveProjectRow(e,t);return}this.clearGroupDragTarget(bt(e),t)},dropOnProjectHeader(e,t){return this.draggedProjectId?this.dropProjectRow(e,t):this.dropOnProject(e,t)},dragOverProject(e,t){if(!this.canDropRow(this.draggedRow,e)){this.clearDragTarget();return}t?.preventDefault?.(),t?.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragTargetProjectId=bt(e),this.dragTargetRowKey=null,this.dragTargetPosition=null},async dropOnProject(e,t){t?.preventDefault?.();let s=this.draggedRow;return this.finishDrag(),this.canDropRow(s,e)?this.applySessionDropAtEnd(s,e):!1},dragOverRecents(e){if(!this.canDropRow(this.draggedRow,null)){this.clearDragTarget();return}e?.preventDefault?.(),e?.dataTransfer&&(e.dataTransfer.dropEffect="move"),this.dragTargetProjectId="__recents__",this.dragTargetRowKey=null,this.dragTargetPosition=null},async dropOnRecents(e){e?.preventDefault?.();let t=this.draggedRow;return this.finishDrag(),this.canDropRow(t,null)?this.applySessionDropAtEnd(t,null):!1},clearGroupDragTarget(e,t){if(this.dragTargetProjectId!==e)return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetProjectId=null)},clearDragTarget(){this.dragTargetProjectId=null,this.dragTargetRowKey=null,this.dragTargetPosition=null},finishDrag(){this.draggedRow=null,this.clearDragTarget()},finishAllDrag(){this.finishDrag(),this.finishProjectDrag()},rowsForProject(e=null){return e?this.rowsByProject.get(bt(e))||[]:this.recentRows},async applySessionDropAtEnd(e,t=null){let n=this.rowsForProject(t).filter(r=>r.catalogKey!==e?.catalogKey).at(-1)||null;return this.applySessionDrop(e,t,n,n?"after":"append")},async applySessionDrop(e,t,s,n){if(!e?.catalogKey||!this.canDropRow(e,t))return!1;let r=$p(this.sessions),i=s1(r,e.catalogKey,s?.catalogKey||null,n);if(!i)return!1;let o=this.projectForRow(e),a=bt(o)!==bt(t),l=t1(r,i);if(!a&&!l)return!1;this.dragOperationPending=!0;try{if(a){let c=await this.moveRow(e,t,i);return c!==!1&&c?.ok!==!1}return l?await this.dispatchSessionAction({action:"reorder",row:e,sessions:i})!==!1:!0}finally{this.dragOperationPending=!1}}},template:`
5994
+ `}var Yk,ac,Dp=F(()=>{qt();Yk="yeaft-sidebar-section-collapse";ac={name:"UnifiedSessionList",emits:["select","create","create-task","create-in-project","action","project-action","close-work-center"],props:{sessions:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},projectStore:{type:Object,default:null},projects:{type:Array,default:()=>[]},activeRoute:{type:Object,default:null},isSessionUnread:{type:Function,default:null},processingConversations:{type:Object,default:()=>({})},isYeaftSessionProcessing:{type:Function,default:null},agents:{type:Array,default:()=>[]},workCenterOpen:{type:Boolean,default:!1}},data(){return{actionGeneration:0,collapsedProjects:{},collapsedSections:J0(),openMenuKey:null,openProjectMenuKey:null,suppressedActionsKey:null,draggedRow:null,dragTargetProjectId:null,dragTargetRowKey:null,dragTargetPosition:null,draggedProjectId:null,dragTargetProjectRowId:null,dragTargetProjectPosition:null,dragOperationPending:!1,projectCreateOpen:!1,projectCreateName:"",projectCreateSubmitting:!1,projectInstructionOpen:!1,projectInstructionProject:null,projectInstructionDraft:"",projectInstructionSubmitting:!1,floatingMenu:null,floatingMenuStyle:{},floatingMenuTrigger:null,projectSubmenuOpen:!1,projectSubmenuStyle:{}}},mounted(){document.addEventListener("pointerdown",this.closeMenusFromDocument,!0),document.addEventListener("keydown",this.closeMenusFromKeyboard),window.addEventListener("resize",this.positionFloatingMenu),window.addEventListener("scroll",this.positionFloatingMenu,!0)},beforeUnmount(){document.removeEventListener("pointerdown",this.closeMenusFromDocument,!0),document.removeEventListener("keydown",this.closeMenusFromKeyboard),window.removeEventListener("resize",this.positionFloatingMenu),window.removeEventListener("scroll",this.positionFloatingMenu,!0)},watch:{loading(e){e&&(this.actionGeneration+=1,this.closeMenus(),this.finishAllDrag())}},computed:{resolvedProjectStore(){if(this.projectStore)return this.projectStore;try{return window.Pinia?.useChatStore?.()||null}catch{return null}},hasCompleteCatalogOrder(){return Gk(this.sessions)},projectRows(){return[...this.projects.length>0?this.projects:this.resolvedProjectStore?.sessionProjects||[]].sort((t,s)=>(t.sortOrder??Number.MAX_SAFE_INTEGER)-(s.sortOrder??Number.MAX_SAFE_INTEGER))},projectBySessionKey(){let e=new Map;for(let t of this.projectRows){let s=Array.isArray(t.members)?t.members:t.agentId?(t.sessionIds||[]).map(n=>({agentId:t.agentId,sessionId:n})):[];for(let n of s)n?.agentId&&n?.sessionId&&e.set(`${n.agentId}${n.sessionId}`,t)}return e},projectSessionRows(){let e=new Map(this.projectRows.map(t=>[bt(t),[]]));for(let t of this.sessions){if(t.runtimeProvider!=="yeaft")continue;let s=this.projectBySessionKey.get(`${t.routeRef?.agentId}${t.routeRef?.sessionId}`),n=bt(s);s&&e.has(n)&&e.get(n).push(t)}return e},rowsByProject(){let e=new Map;for(let[t,s]of this.projectSessionRows)e.set(t,$p(s.filter(n=>this.isRowOnline(n)),this.hasCompleteCatalogOrder));return e},recentRows(){return $p(this.sessions.filter(e=>{if(!this.isRowOnline(e))return!1;if(e.runtimeProvider==="yeaft"){let t=`${e.routeRef?.agentId}${e.routeRef?.sessionId}`;if(this.projectBySessionKey.has(t))return!1}return!0}),this.hasCompleteCatalogOrder)}},methods:{closeMenus(){this.openMenuKey=null,this.openProjectMenuKey=null,this.floatingMenu=null,this.floatingMenuStyle={},this.floatingMenuTrigger=null,this.projectSubmenuOpen=!1,this.projectSubmenuStyle={}},closeMenusFromDocument(e){e?.target?.closest?.(".session-menu, .session-submenu, .session-dots-btn")||this.closeMenus()},closeMenusFromKeyboard(e){e?.key==="Escape"&&(this.closeMenus(),this.cancelProjectCreate(),this.projectInstructionOpen&&this.closeProjectInstruction())},restoreRowActions(e){this.suppressedActionsKey===e?.catalogKey&&(this.suppressedActionsKey=null)},toggleProjectMenu(e,t){if(this.loading)return;let s=bt(e);if(this.openProjectMenuKey===s){this.closeMenus();return}this.openMenuKey=null,this.openProjectMenuKey=s,this.floatingMenu={kind:"project",project:e},this.floatingMenuTrigger=t?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)},toggleSessionMenu(e,t,s){if(!this.loading){if(this.openMenuKey===e.catalogKey){this.closeMenus();return}this.openProjectMenuKey=null,this.openMenuKey=e.catalogKey,this.floatingMenu={kind:"session",row:e,inProject:t===!0,currentProject:this.projectBySessionKey.get(`${e.routeRef?.agentId}${e.routeRef?.sessionId}`)||null},this.floatingMenuTrigger=s?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)}},positionFloatingMenu(){let e=this.floatingMenuTrigger,t=this.$refs.floatingMenu;if(!this.floatingMenu||!e?.isConnected||!t){this.floatingMenu&&e&&!e.isConnected&&this.closeMenus();return}let s=nT(e.getBoundingClientRect(),{width:t.scrollWidth||t.offsetWidth||160,height:t.scrollHeight||t.offsetHeight||0},{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight});this.floatingMenuStyle={top:`${s.top}px`,left:`${s.left}px`,width:`${s.width}px`,maxHeight:`${s.maxHeight}px`},this.projectSubmenuOpen&&this.$nextTick(this.positionProjectSubmenu)},isActive(e){if(this.resolvedProjectStore?.pluginCenterOpen)return!1;let t=e?.routeRef,s=this.activeRoute;return!!t&&!!s&&t.runtimeProvider===s.runtimeProvider&&t.agentId===s.agentId&&t.sessionId===s.sessionId},isProcessing(e){return e?.runtimeProvider==="yeaft"?typeof this.isYeaftSessionProcessing=="function"?!!this.isYeaftSessionProcessing(e.routeRef.sessionId,e.routeRef.agentId):!1:!!this.processingConversations?.[e?.routeRef?.sessionId]},forkUnavailableReason(e){return typeof this.resolvedProjectStore?.sessionForkUnavailableReason=="function"?this.resolvedProjectStore.sessionForkUnavailableReason(e):this.canEditRow(e)?this.isProcessing(e)?"session_running":null:"agent_offline"},mergeUnavailableReason(e){return this.resolvedProjectStore?.sessionMergeUnavailableReason?.(e)||(typeof this.resolvedProjectStore?.sessionMergeUnavailableReason!="function"?"session_merge_unsupported":null)},isUnread(e){return typeof this.isSessionUnread=="function"?!!this.isSessionUnread(e):!1},isProjectUnread(e){return(this.projectSessionRows.get(bt(e))||[]).some(s=>this.isUnread(s))},projectKey(e){return bt(e)},isAgentOnline(e){return!!e&&this.agents.some(t=>t.id===e&&t.online)},isRowOnline(e){return e?.availability!=="online"?!1:this.isAgentOnline(e?.routeRef?.agentId)},canEditProject(e){return this.loading||!e?.id?!1:!e.legacyAgentId||this.isAgentOnline(e.legacyAgentId)},canEditRow(e){return this.loading||!e?.routeRef?.agentId||e.availability!=="online"?!1:this.isAgentOnline(e.routeRef.agentId)},canRunAction(e,t){return this.canEditRow(e)&&this.resolvedProjectStore?.catalogSessionActionSupported?.(e,t)!==!1},canMoveRowToProject(e,t=null){return this.canEditRow(e)?t?this.canEditProject(t)?!t.legacyAgentId||t.legacyAgentId===e.routeRef.agentId:!1:!0:!1},projectMoveTargets(e,t=null){let s=bt(t);return this.projectRows.filter(n=>bt(n)!==s&&this.canMoveRowToProject(e,n))},openProjectMoveList(){!this.floatingMenu||this.floatingMenu.kind!=="session"||(this.projectSubmenuOpen=!0,this.$nextTick(this.positionProjectSubmenu))},closeProjectMoveList(){this.projectSubmenuOpen=!1,this.projectSubmenuStyle={}},positionProjectSubmenu(){let e=this.$refs.floatingMenu,t=this.$refs.projectSubmenu;if(!this.projectSubmenuOpen||!e||!t)return;let s=rT(e.getBoundingClientRect(),{width:t.scrollWidth||t.offsetWidth||160,height:t.scrollHeight||t.offsetHeight||0},{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight});this.projectSubmenuStyle={top:`${s.top}px`,left:`${s.left}px`,width:`${s.width}px`,maxHeight:`${s.maxHeight}px`}},isSectionCollapsed(e){return this.collapsedSections?.[e]===!0},toggleSection(e){["projects","recents"].includes(e)&&(this.collapsedSections={...this.collapsedSections,[e]:!this.isSectionCollapsed(e)},zk(this.collapsedSections),this.closeMenus())},isProjectCollapsed(e){return this.collapsedProjects[bt(e)]===!0},toggleProject(e){let t=bt(e);this.collapsedProjects={...this.collapsedProjects,[t]:!this.collapsedProjects[t]},this.closeMenus()},providerLabel(e){return e.runtimeProvider==="yeaft"?"Yeaft":e.runtimeProvider==="copilot"?"Copilot":"Claude"},agentLabel(e){let t=this.agents.find(s=>s.id===e?.routeRef?.agentId);return e?.agentName||t?.name||e?.routeRef?.agentId||""},openPlugins(){let e=this.resolvedProjectStore;typeof e?.openPluginCenter=="function"&&e.openPluginCenter()!==!1&&e.closeSessionSidebar?.()},createTask(){this.loading||(this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create-task"))},createSession(){this.loading||(this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create"))},createSessionInProject(e){this.canEditProject(e)&&(this.closeMenus(),this.resolvedProjectStore?.closePluginCenter?.(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create-in-project",{project:e}))},selectRow(e,t,s={}){this.loading||(s.suppressActions===!0&&(this.suppressedActionsKey=e?.catalogKey||null,t?.currentTarget?.blur?.()),this.closeMenus(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("select",e))},selectRowFromKeyboard(e,t){t?.target===t?.currentTarget&&(t.preventDefault(),this.selectRow(e,t))},async runAction(e,t){this.closeMenus();let s=e==="delete"?"remove":e;if(this.canRunAction(t,s)&&!(e==="copy"&&this.forkUnavailableReason(t))&&!(e==="merge"&&this.mergeUnavailableReason(t))){if(e==="rename"){let n=this.actionGeneration,r=await Iu(this.$t("yeaft.session.renamePrompt",{name:t.title}),t.title),i=this.sessions.find(o=>o.catalogKey===t.catalogKey);if(!r?.trim()||r.trim()===t.title||n!==this.actionGeneration||!this.canRunAction(i,e)||i.routeRef.runtimeProvider!==t.routeRef.runtimeProvider||i.routeRef.agentId!==t.routeRef.agentId||i.routeRef.sessionId!==t.routeRef.sessionId)return;this.$emit("action",{action:e,row:i,title:r.trim()});return}this.$emit("action",{action:s,row:t})}},dispatchSessionAction(e){return this.loading?!1:e?.action==="reorder"&&this.resolvedProjectStore?.reorderCatalogSessions?this.resolvedProjectStore.reorderCatalogSessions(e.sessions):(this.$emit("action",e),!0)},dispatchProjectAction(e){if(this.loading||e?.action==="move-session"&&!this.canMoveRowToProject(e?.row,e?.project||null))return!1;this.$emit("project-action",e);let t=this.resolvedProjectStore;if(!t?.mutateProject)return!0;let{action:s,project:n,row:r,name:i,catalogOrder:o,agentId:a}=e,l=a||r?.routeRef?.agentId||null;if(s==="create")return t.mutateProject("create",{name:i},l);let c=n?.legacyProjectId||n?.id;return s==="rename"?t.mutateProject("rename",{projectId:c,name:i},n?.legacyAgentId||l):s==="update-instruction"?t.mutateProject("update_instruction",{projectId:c,instruction:e.instruction||""},n?.legacyAgentId||l):s==="delete"?t.mutateProject("delete",{projectId:c},n?.legacyAgentId||l):s==="reorder-projects"?t.mutateProject("reorder",{projectIds:(e.projects||[]).map(d=>d.id)}):s==="move-session"&&r?.routeRef?.sessionId?t.mutateProject("move_session",{sessionId:r.routeRef.sessionId,projectId:n?.legacyProjectId||n?.id||null,...Array.isArray(o)?{catalogOrder:o.map(d=>({catalogKey:d.catalogKey,routeRef:d.routeRef}))}:{}},l):!1},createProject(){this.loading||this.projectCreateSubmitting||(this.isSectionCollapsed("projects")&&(this.collapsedSections={...this.collapsedSections,projects:!1},zk(this.collapsedSections)),this.projectCreateOpen=!0,this.projectCreateName="",this.$nextTick(()=>this.$refs.projectCreateInput?.focus?.()))},cancelProjectCreate(){this.projectCreateSubmitting||(this.projectCreateOpen=!1,this.projectCreateName="")},async submitProjectCreate(){if(this.loading)return;let e=this.projectCreateName.trim();if(!(!e||this.projectCreateSubmitting)){this.projectCreateSubmitting=!0;try{(await this.dispatchProjectAction({action:"create",name:e}))?.ok!==!1&&(this.projectCreateOpen=!1,this.projectCreateName="")}finally{this.projectCreateSubmitting=!1}}},async renameProject(e){if(!this.canEditProject(e))return;let t=await Iu(this.$t("sidebar.projects.renamePrompt"),e.name);this.closeMenus(),t?.trim()&&t.trim()!==e.name&&this.dispatchProjectAction({action:"rename",project:e,name:t.trim()})},async deleteProject(e){this.canEditProject(e)&&(this.closeMenus(),await st(this.$t("sidebar.projects.deleteConfirm",{name:e.name}),{destructive:!0})&&this.dispatchProjectAction({action:"delete",project:e}))},editProjectInstruction(e){this.canEditProject(e)&&(this.closeMenus(),this.projectInstructionProject=e,this.projectInstructionDraft=typeof e.instruction=="string"?e.instruction:"",this.projectInstructionOpen=!0,this.$nextTick(()=>this.$refs.projectInstructionInput?.focus?.()))},closeProjectInstruction(){this.projectInstructionSubmitting||(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")},async saveProjectInstruction(){let e=this.projectInstructionProject;if(!(!e||this.projectInstructionSubmitting)){this.projectInstructionSubmitting=!0;try{(await this.dispatchProjectAction({action:"update-instruction",project:e,instruction:this.projectInstructionDraft}))?.ok!==!1&&(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")}finally{this.projectInstructionSubmitting=!1}}},moveRow(e,t=null,s=null){return this.closeMenus(),this.canMoveRowToProject(e,t)?this.dispatchProjectAction({action:"move-session",row:e,project:t,catalogOrder:s}):!1},projectForRow(e){if(e?.runtimeProvider!=="yeaft")return null;let t=`${e.routeRef?.agentId}${e.routeRef?.sessionId}`;return this.projectBySessionKey.get(t)||null},canDragProject(e){return!!e?.id&&!e.legacyProjectId&&this.projectRows.length>1&&this.projectRows.every(t=>t?.id&&!t.legacyProjectId)&&!this.dragOperationPending},startProjectDrag(e,t){this.canDragProject(e)&&(this.closeMenus(),this.finishDrag(),this.draggedProjectId=bt(e),t?.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",`project:${this.draggedProjectId}`)))},dragOverProjectRow(e,t){let s=bt(e);!this.draggedProjectId||s===this.draggedProjectId||!this.canDragProject(e)||(t?.preventDefault?.(),t?.stopPropagation?.(),t?.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragTargetProjectRowId=s,this.dragTargetProjectPosition=this.dragPositionForEvent(t))},dragLeaveProjectRow(e,t){if(this.dragTargetProjectRowId!==bt(e))return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetProjectRowId=null,this.dragTargetProjectPosition=null)},async dropProjectRow(e,t){t?.preventDefault?.(),t?.stopPropagation?.();let s=this.draggedProjectId,n=bt(e),r=this.dragTargetProjectRowId===n?this.dragTargetProjectPosition:this.dragPositionForEvent(t);if(this.finishProjectDrag(),!s||!n||s===n||!r)return!1;let i=eT(this.projectRows,s,n,r);if(!i)return!1;this.dragOperationPending=!0;try{let o=await this.dispatchProjectAction({action:"reorder-projects",projects:i});return o!==!1&&o?.ok!==!1}finally{this.dragOperationPending=!1}},finishProjectDrag(){this.draggedProjectId=null,this.dragTargetProjectRowId=null,this.dragTargetProjectPosition=null},canDragRow(e,t=null){return this.dragOperationPending||!this.canRunAction(e,"reorder")?!1:t?e?.runtimeProvider!=="yeaft"?!1:bt(this.projectForRow(e))===bt(t)||this.canMoveRowToProject(e,t):!0},canDropRow(e,t=null){return!e||this.dragOperationPending||!this.canRunAction(e,"reorder")?!1:t?e.runtimeProvider!=="yeaft"?!1:bt(this.projectForRow(e))===bt(t)?this.canEditRow(e):this.canMoveRowToProject(e,t):e.runtimeProvider==="yeaft"||!this.projectForRow(e)},startDrag(e,t){this.canDragRow(e,this.projectForRow(e))&&(this.closeMenus(),this.finishProjectDrag(),this.draggedRow=e,this.dragTargetProjectId=null,this.dragTargetRowKey=null,this.dragTargetPosition=null,t?.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.catalogKey)))},dragPositionForEvent(e){let t=e?.currentTarget?.getBoundingClientRect?.();return!t||!Number.isFinite(e?.clientY)?"before":e.clientY>t.top+t.height/2?"after":"before"},dragOverRow(e,t,s){let n=this.draggedRow;!this.canDropRow(n,t)||!this.canRunAction(e,"reorder")||n.catalogKey===e?.catalogKey||!!n.pinned!=!!e?.pinned||(s?.preventDefault?.(),s?.stopPropagation?.(),s?.dataTransfer&&(s.dataTransfer.dropEffect="move"),this.dragTargetProjectId=null,this.dragTargetRowKey=e.catalogKey,this.dragTargetPosition=this.dragPositionForEvent(s))},dragLeaveRow(e,t){if(this.dragTargetRowKey!==e?.catalogKey)return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetRowKey=null,this.dragTargetPosition=null)},async dropOnRow(e,t,s){s?.preventDefault?.(),s?.stopPropagation?.();let n=this.draggedRow,r=this.dragTargetRowKey===e?.catalogKey?this.dragTargetPosition:this.dragPositionForEvent(s);return this.finishDrag(),!this.canDropRow(n,t)||!this.canRunAction(e,"reorder")||!r?!1:this.applySessionDrop(n,t,e,r)},dragOverProjectHeader(e,t){if(this.draggedProjectId){this.dragOverProjectRow(e,t);return}this.dragOverProject(e,t)},clearProjectHeaderDragTarget(e,t){if(this.draggedProjectId){this.dragLeaveProjectRow(e,t);return}this.clearGroupDragTarget(bt(e),t)},dropOnProjectHeader(e,t){return this.draggedProjectId?this.dropProjectRow(e,t):this.dropOnProject(e,t)},dragOverProject(e,t){if(!this.canDropRow(this.draggedRow,e)){this.clearDragTarget();return}t?.preventDefault?.(),t?.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragTargetProjectId=bt(e),this.dragTargetRowKey=null,this.dragTargetPosition=null},async dropOnProject(e,t){t?.preventDefault?.();let s=this.draggedRow;return this.finishDrag(),this.canDropRow(s,e)?this.applySessionDropAtEnd(s,e):!1},dragOverRecents(e){if(!this.canDropRow(this.draggedRow,null)){this.clearDragTarget();return}e?.preventDefault?.(),e?.dataTransfer&&(e.dataTransfer.dropEffect="move"),this.dragTargetProjectId="__recents__",this.dragTargetRowKey=null,this.dragTargetPosition=null},async dropOnRecents(e){e?.preventDefault?.();let t=this.draggedRow;return this.finishDrag(),this.canDropRow(t,null)?this.applySessionDropAtEnd(t,null):!1},clearGroupDragTarget(e,t){if(this.dragTargetProjectId!==e)return;let s=t?.relatedTarget;s&&t?.currentTarget?.contains?.(s)||(this.dragTargetProjectId=null)},clearDragTarget(){this.dragTargetProjectId=null,this.dragTargetRowKey=null,this.dragTargetPosition=null},finishDrag(){this.draggedRow=null,this.clearDragTarget()},finishAllDrag(){this.finishDrag(),this.finishProjectDrag()},rowsForProject(e=null){return e?this.rowsByProject.get(bt(e))||[]:this.recentRows},async applySessionDropAtEnd(e,t=null){let n=this.rowsForProject(t).filter(r=>r.catalogKey!==e?.catalogKey).at(-1)||null;return this.applySessionDrop(e,t,n,n?"after":"append")},async applySessionDrop(e,t,s,n){if(!e?.catalogKey||!this.canDropRow(e,t))return!1;let r=$p(this.sessions),i=sT(r,e.catalogKey,s?.catalogKey||null,n);if(!i)return!1;let o=this.projectForRow(e),a=bt(o)!==bt(t),l=tT(r,i);if(!a&&!l)return!1;this.dragOperationPending=!0;try{if(a){let c=await this.moveRow(e,t,i);return c!==!1&&c?.ok!==!1}return l?await this.dispatchSessionAction({action:"reorder",row:e,sessions:i})!==!1:!0}finally{this.dragOperationPending=!1}}},template:`
6002
5995
  <nav class="sidebar-navigation" :aria-busy="loading" :aria-label="$t('sidebar.surface.sessions')">
6003
5996
  <div class="sidebar-primary-actions">
6004
5997
  <button type="button" class="sidebar-primary-action" :disabled="loading" @click="createSession" :title="$t('sidebar.sessions.newChat')" :aria-label="$t('sidebar.sessions.newChat')">
@@ -6142,7 +6135,7 @@ ${String(e||"").trim()}
6142
6135
  </svg>
6143
6136
  </button>
6144
6137
  </div>
6145
- ${i1("recents","recentRows")}
6138
+ ${iT("recents","recentRows")}
6146
6139
  <div v-if="!isSectionCollapsed('recents') && loading" class="sidebar-section-empty sidebar-catalog-loading" role="status"><span class="spinner-mini" aria-hidden="true"></span>{{ $t('common.loading') }}</div>
6147
6140
  <div v-else-if="!isSectionCollapsed('recents') && recentRows.length === 0" class="sidebar-section-empty">{{ $t('sidebar.recents.empty') }}</div>
6148
6141
  </section>
@@ -6201,7 +6194,7 @@ ${String(e||"").trim()}
6201
6194
  </div>
6202
6195
  </Teleport>
6203
6196
  </nav>
6204
- `}});function Mn(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e||""))return null;let[t,s,n]=e.split("-").map(Number),r=new Date(0);return r.setUTCHours(0,0,0,0),r.setUTCFullYear(t,s-1,n),t>0&&Fp(r)===e?r:null}function Fp(e){return`${String(e.getUTCFullYear()).padStart(4,"0")}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}function Qk(){let e=new Date;return`${String(e.getFullYear()).padStart(4,"0")}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function a1(e,t){let s=Mn(e),n=s.getUTCDate();s.setUTCDate(1),s.setUTCMonth(s.getUTCMonth()+t);let r=new Date(s);return r.setUTCMonth(r.getUTCMonth()+1,0),s.setUTCDate(Math.min(n,r.getUTCDate())),s.getUTCFullYear()<1?Lp:s.getUTCFullYear()>9999?Op:Fp(s)}var Lp,Op,o1,l1,Zk,Xk=F(()=>{Lp="0001-01-01",Op="9999-12-31",o1=0;l1={chooseDate:["Choose date","\u9009\u62E9\u65E5\u671F"],previousMonth:["Previous month","\u4E0A\u4E2A\u6708"],nextMonth:["Next month","\u4E0B\u4E2A\u6708"],today:["Today","\u4ECA\u5929"],keyboardHelp:["Use arrow keys to move by day or week, Home and End for week boundaries, Page Up and Page Down for months, Enter to select, Escape to close.","\u4F7F\u7528\u65B9\u5411\u952E\u5207\u6362\u65E5\u671F\u6216\u5468\uFF0CHome \u548C End \u8DF3\u81F3\u5468\u9996\u6216\u5468\u672B\uFF0CPage Up \u548C Page Down \u5207\u6362\u6708\u4EFD\uFF0CEnter \u9009\u62E9\uFF0CEscape \u5173\u95ED\u3002"]},Zk={name:"ScheduleDatePicker",props:{modelValue:{type:String,default:""},min:{type:String,default:""},today:{type:String,default:""},max:{type:String,default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["update:modelValue"],data(){return{open:!1,focusedDate:"",visibleMonth:"",localTodayDate:Qk(),pickerId:`schedule-date-picker-${++o1}`}},computed:{todayDate(){return Mn(this.today)?this.today:this.localTodayDate},locale(){let e=("$locale"in this?this.$locale:null)??("$i18nLocale"in this?this.$i18nLocale:null),t=e?.value??e??(typeof document<"u"?document.documentElement.lang:"");return String(t).startsWith("zh")?"zh-CN":"en"},firstWeekday(){return this.locale==="zh-CN"?1:0},lowerBound(){return Mn(this.min)?this.min:Lp},upperBound(){return Mn(this.max)?this.max:Op},emptyRange(){return this.lowerBound>this.upperBound},triggerLabel(){return Mn(this.modelValue)?this.formatDate(this.modelValue,{year:"numeric",month:"short",day:"numeric"}):this.text("chooseDate")},monthLabel(){return this.visibleMonth?this.formatDate(`${this.visibleMonth}-01`,{year:"numeric",month:"long"}):""},weekdays(){return Array.from({length:7},(e,t)=>{let s=new Date(Date.UTC(2024,0,7+(t+this.firstWeekday)%7));return{short:new Intl.DateTimeFormat(this.locale,{weekday:"short",timeZone:"UTC"}).format(s),long:new Intl.DateTimeFormat(this.locale,{weekday:"long",timeZone:"UTC"}).format(s)}})},days(){if(!this.visibleMonth)return[];let e=Mn(`${this.visibleMonth}-01`),t=(e.getUTCDay()-this.firstWeekday+7)%7,s=new Date(e);s.setUTCMonth(s.getUTCMonth()+1,0);let n=Array.from({length:t},(r,i)=>({key:`blank-${i}`}));for(let r=1;r<=s.getUTCDate();r++){let i=`${this.visibleMonth}-${String(r).padStart(2,"0")}`;n.push({key:i,iso:i,day:r,disabled:!this.isAllowed(i)})}return n},canPrevious(){return!this.emptyRange&&this.visibleMonth>this.lowerBound.slice(0,7)},canNext(){return!this.emptyRange&&this.visibleMonth<this.upperBound.slice(0,7)}},watch:{modelValue(){this.open&&this.resetView()},min(){this.open&&this.resetView()},max(){this.open&&this.resetView()},disabled(e){e&&this.close(!1)}},methods:{text(e){let t=`scheduleDatePicker.${e}`,s="$t"in this?this.$t(t):null;return s&&s!==t?s:l1[e][this.locale==="zh-CN"?1:0]},formatDate(e,t){return new Intl.DateTimeFormat(this.locale,{...t,timeZone:"UTC"}).format(Mn(e))},isAllowed(e){return!this.disabled&&!this.emptyRange&&e>=this.lowerBound&&e<=this.upperBound},clamp(e){return e<this.lowerBound?this.lowerBound:e>this.upperBound?this.upperBound:e},resetView(){this.localTodayDate=Qk(),this.focusedDate=this.clamp(Mn(this.modelValue)?this.modelValue:this.todayDate),this.visibleMonth=this.focusedDate.slice(0,7)},toggle(){if(!this.disabled){if(this.open)return this.close();this.resetView(),this.open=!0,this.focusDay()}},close(e=!0){this.open=!1,e&&this.$nextTick(()=>this.$refs.trigger?.focus())},focusDay(){this.$nextTick(()=>{this.open&&this.$refs.panel?.querySelector(`[data-date="${this.focusedDate}"]:not(:disabled)`)?.focus()})},select(e){this.isAllowed(e)&&(this.$emit("update:modelValue",e),this.close())},changeMonth(e,t=!1){this.disabled||(e<0?!this.canPrevious:!this.canNext)||(this.focusedDate=this.clamp(a1(this.focusedDate,e)),this.visibleMonth=this.focusedDate.slice(0,7),t&&this.focusDay())},onDayKey(e,t){if(this.disabled||this.emptyRange||e.altKey||e.ctrlKey||e.metaKey)return;let s=Mn(t),n=(s.getUTCDay()-this.firstWeekday+7)%7,r={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7,Home:-n,End:6-n};if(e.key==="PageUp"||e.key==="PageDown")e.preventDefault(),this.changeMonth(e.key==="PageUp"?-1:1,!0);else if(Object.hasOwn(r,e.key)){e.preventDefault(),s.setUTCDate(s.getUTCDate()+r[e.key]);let i=s.getUTCFullYear()<1?Lp:s.getUTCFullYear()>9999?Op:Fp(s);this.focusedDate=this.clamp(i),this.visibleMonth=this.focusedDate.slice(0,7),this.focusDay()}},onKeydown(e){e.key==="Escape"&&this.open&&(e.preventDefault(),e.stopPropagation(),this.close())},onFocusout(e){e.relatedTarget&&!this.$el.contains(e.relatedTarget)&&this.close(!1)}},template:`
6197
+ `}});function Mn(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e||""))return null;let[t,s,n]=e.split("-").map(Number),r=new Date(0);return r.setUTCHours(0,0,0,0),r.setUTCFullYear(t,s-1,n),t>0&&Fp(r)===e?r:null}function Fp(e){return`${String(e.getUTCFullYear()).padStart(4,"0")}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}function Qk(){let e=new Date;return`${String(e.getFullYear()).padStart(4,"0")}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function aT(e,t){let s=Mn(e),n=s.getUTCDate();s.setUTCDate(1),s.setUTCMonth(s.getUTCMonth()+t);let r=new Date(s);return r.setUTCMonth(r.getUTCMonth()+1,0),s.setUTCDate(Math.min(n,r.getUTCDate())),s.getUTCFullYear()<1?Lp:s.getUTCFullYear()>9999?Op:Fp(s)}var Lp,Op,oT,lT,Zk,Xk=F(()=>{Lp="0001-01-01",Op="9999-12-31",oT=0;lT={chooseDate:["Choose date","\u9009\u62E9\u65E5\u671F"],previousMonth:["Previous month","\u4E0A\u4E2A\u6708"],nextMonth:["Next month","\u4E0B\u4E2A\u6708"],today:["Today","\u4ECA\u5929"],keyboardHelp:["Use arrow keys to move by day or week, Home and End for week boundaries, Page Up and Page Down for months, Enter to select, Escape to close.","\u4F7F\u7528\u65B9\u5411\u952E\u5207\u6362\u65E5\u671F\u6216\u5468\uFF0CHome \u548C End \u8DF3\u81F3\u5468\u9996\u6216\u5468\u672B\uFF0CPage Up \u548C Page Down \u5207\u6362\u6708\u4EFD\uFF0CEnter \u9009\u62E9\uFF0CEscape \u5173\u95ED\u3002"]},Zk={name:"ScheduleDatePicker",props:{modelValue:{type:String,default:""},min:{type:String,default:""},today:{type:String,default:""},max:{type:String,default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["update:modelValue"],data(){return{open:!1,focusedDate:"",visibleMonth:"",localTodayDate:Qk(),pickerId:`schedule-date-picker-${++oT}`}},computed:{todayDate(){return Mn(this.today)?this.today:this.localTodayDate},locale(){let e=("$locale"in this?this.$locale:null)??("$i18nLocale"in this?this.$i18nLocale:null),t=e?.value??e??(typeof document<"u"?document.documentElement.lang:"");return String(t).startsWith("zh")?"zh-CN":"en"},firstWeekday(){return this.locale==="zh-CN"?1:0},lowerBound(){return Mn(this.min)?this.min:Lp},upperBound(){return Mn(this.max)?this.max:Op},emptyRange(){return this.lowerBound>this.upperBound},triggerLabel(){return Mn(this.modelValue)?this.formatDate(this.modelValue,{year:"numeric",month:"short",day:"numeric"}):this.text("chooseDate")},monthLabel(){return this.visibleMonth?this.formatDate(`${this.visibleMonth}-01`,{year:"numeric",month:"long"}):""},weekdays(){return Array.from({length:7},(e,t)=>{let s=new Date(Date.UTC(2024,0,7+(t+this.firstWeekday)%7));return{short:new Intl.DateTimeFormat(this.locale,{weekday:"short",timeZone:"UTC"}).format(s),long:new Intl.DateTimeFormat(this.locale,{weekday:"long",timeZone:"UTC"}).format(s)}})},days(){if(!this.visibleMonth)return[];let e=Mn(`${this.visibleMonth}-01`),t=(e.getUTCDay()-this.firstWeekday+7)%7,s=new Date(e);s.setUTCMonth(s.getUTCMonth()+1,0);let n=Array.from({length:t},(r,i)=>({key:`blank-${i}`}));for(let r=1;r<=s.getUTCDate();r++){let i=`${this.visibleMonth}-${String(r).padStart(2,"0")}`;n.push({key:i,iso:i,day:r,disabled:!this.isAllowed(i)})}return n},canPrevious(){return!this.emptyRange&&this.visibleMonth>this.lowerBound.slice(0,7)},canNext(){return!this.emptyRange&&this.visibleMonth<this.upperBound.slice(0,7)}},watch:{modelValue(){this.open&&this.resetView()},min(){this.open&&this.resetView()},max(){this.open&&this.resetView()},disabled(e){e&&this.close(!1)}},methods:{text(e){let t=`scheduleDatePicker.${e}`,s="$t"in this?this.$t(t):null;return s&&s!==t?s:lT[e][this.locale==="zh-CN"?1:0]},formatDate(e,t){return new Intl.DateTimeFormat(this.locale,{...t,timeZone:"UTC"}).format(Mn(e))},isAllowed(e){return!this.disabled&&!this.emptyRange&&e>=this.lowerBound&&e<=this.upperBound},clamp(e){return e<this.lowerBound?this.lowerBound:e>this.upperBound?this.upperBound:e},resetView(){this.localTodayDate=Qk(),this.focusedDate=this.clamp(Mn(this.modelValue)?this.modelValue:this.todayDate),this.visibleMonth=this.focusedDate.slice(0,7)},toggle(){if(!this.disabled){if(this.open)return this.close();this.resetView(),this.open=!0,this.focusDay()}},close(e=!0){this.open=!1,e&&this.$nextTick(()=>this.$refs.trigger?.focus())},focusDay(){this.$nextTick(()=>{this.open&&this.$refs.panel?.querySelector(`[data-date="${this.focusedDate}"]:not(:disabled)`)?.focus()})},select(e){this.isAllowed(e)&&(this.$emit("update:modelValue",e),this.close())},changeMonth(e,t=!1){this.disabled||(e<0?!this.canPrevious:!this.canNext)||(this.focusedDate=this.clamp(aT(this.focusedDate,e)),this.visibleMonth=this.focusedDate.slice(0,7),t&&this.focusDay())},onDayKey(e,t){if(this.disabled||this.emptyRange||e.altKey||e.ctrlKey||e.metaKey)return;let s=Mn(t),n=(s.getUTCDay()-this.firstWeekday+7)%7,r={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7,Home:-n,End:6-n};if(e.key==="PageUp"||e.key==="PageDown")e.preventDefault(),this.changeMonth(e.key==="PageUp"?-1:1,!0);else if(Object.hasOwn(r,e.key)){e.preventDefault(),s.setUTCDate(s.getUTCDate()+r[e.key]);let i=s.getUTCFullYear()<1?Lp:s.getUTCFullYear()>9999?Op:Fp(s);this.focusedDate=this.clamp(i),this.visibleMonth=this.focusedDate.slice(0,7),this.focusDay()}},onKeydown(e){e.key==="Escape"&&this.open&&(e.preventDefault(),e.stopPropagation(),this.close())},onFocusout(e){e.relatedTarget&&!this.$el.contains(e.relatedTarget)&&this.close(!1)}},template:`
6205
6198
  <div class="schedule-date-picker" @keydown="onKeydown" @focusout="onFocusout" @click.stop>
6206
6199
  <button ref="trigger" type="button" class="btn-secondary schedule-date-picker__trigger"
6207
6200
  :disabled="disabled" :aria-label="ariaLabel ? ariaLabel + ': ' + triggerLabel : triggerLabel"
@@ -6242,7 +6235,7 @@ ${String(e||"").trim()}
6242
6235
  <p :id="pickerId + '-help'" class="schedule-date-picker__sr-only">{{ text('keyboardHelp') }}</p>
6243
6236
  </div>
6244
6237
  </div>
6245
- `}});function c1(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function en(e,t){let s=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),n=r=>s.find(i=>i.type===r)?.value;return{date:`${n("year")}-${n("month")}-${n("day")}`,time:`${n("hour")}:${n("minute")}`}}function ew(e){return/^\d{4}$/.test(e)?`${e.slice(0,2)}:${e.slice(2)}`:e}function Dr(e=Date.now()){let t=c1(),{date:s,time:n}=en(e+36e5,t);return{date:s,time:n,timeZone:t,frequency:"once",weekdays:[1],dayOfMonth:Number(s.slice(-2)),end:"never",endDate:"",maxRuns:10}}function tw(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e||""))return!1;let t=Date.parse(`${e}T00:00:00Z`);return Number.isFinite(t)&&new Date(t).toISOString().slice(0,10)===e}function qp(e,t,s){if(!tw(e)||!/^([01]\d|2[0-3]):[0-5]\d$/.test(t||""))return null;try{let n=Date.parse(`${e}T${t}:00Z`),r=new Set;for(let o of[-36,0,36]){let a=n+o*36e5,l=en(a,s);r.add(Date.parse(`${l.date}T${l.time}:00Z`)-a)}let i=[...r].map(o=>n-o).filter(o=>{let a=en(o,s);return a.date===e&&a.time===t});return i.length?Math.min(...i):null}catch{return null}}function sw(e,t=Date.now()){let s=en(Math.min(ea,t+Jk),e).date,n=en(ea,e).date,r=qp(n,"23:59",e);return(r==null||r+59999>ea)&&(n=new Date(Date.parse(`${n}T00:00:00Z`)-864e5).toISOString().slice(0,10)),{maxStartDate:s,maxEndDate:n}}function tr(e,t=Date.now()){if(!e||!tw(e.date)||!/^([01]\d|2[0-3]):[0-5]\d$/.test(e.time||""))return{error:"invalidDateTime"};if(!["once","daily","weekdays","weekly","monthly"].includes(e.frequency))return{error:"invalidDateTime"};try{new Intl.DateTimeFormat("en",{timeZone:e.timeZone}).format()}catch{return{error:"invalidTimeZone"}}if(e.frequency==="weekly"&&(!e.weekdays?.length||e.weekdays.some(l=>!Number.isInteger(l)||l<0||l>6)))return{error:"chooseWeekdays"};let n=e.daysOfMonth??[Number(e.dayOfMonth)];if(e.frequency==="monthly"&&(!Array.isArray(n)||!n.length||n.length>31||n.some(l=>!Number.isInteger(l)||l<1||l>31)))return{error:"invalidMonthDay"};let r=null,i=Date.parse(`${e.date}T00:00:00Z`);for(let l=0;l<(e.frequency==="once"?1:370);l++){let c=new Date(i+l*864e5),d=c.getUTCDay();if(e.frequency==="weekdays"&&(d===0||d===6)||e.frequency==="weekly"&&!e.weekdays.includes(d))continue;let u=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0)).getUTCDate();if(!(e.frequency==="monthly"&&!n.some(p=>c.getUTCDate()===Math.min(p,u)))&&(r=qp(c.toISOString().slice(0,10),e.time,e.timeZone),r!=null))break}if(r==null)return{error:"nonexistentTime"};if(r<0||r>ea)return{error:"supportedRange"};if(r<=t)return{error:"futureTime"};if(r>t+Jk)return{error:"tooFar"};if(e.frequency==="once")return{scheduledFor:r,recurrence:null};let o=null,a=null;if(e.end==="date"){if(o=qp(e.endDate,"23:59",e.timeZone),o==null||o<r)return{error:"invalidEndDate"};if(o+=59999,o<0||o>ea)return{error:"supportedRange"}}else if(e.end==="count"&&(a=Number(e.maxRuns),!Number.isInteger(a)||a<1||a>1e3))return{error:"invalidRunCount"};return{scheduledFor:r,recurrence:{frequency:e.frequency,timeZone:e.timeZone,time:e.time,...e.frequency==="weekly"?{weekdays:[...new Set(e.weekdays)].sort()}:{},...e.frequency==="monthly"?n.length===1?{dayOfMonth:n[0]}:{daysOfMonth:[...new Set(n)].sort((l,c)=>l-c)}:{},endsAt:o,maxRuns:a}}}var ea,Jk,lc=F(()=>{ea=Date.UTC(2100,0,1)-1,Jk=5*366*864e5});var nw,rw,iw,cc,Vp=F(()=>{er();Xk();lc();nw=`
6238
+ `}});function cT(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function en(e,t){let s=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),n=r=>s.find(i=>i.type===r)?.value;return{date:`${n("year")}-${n("month")}-${n("day")}`,time:`${n("hour")}:${n("minute")}`}}function ew(e){return/^\d{4}$/.test(e)?`${e.slice(0,2)}:${e.slice(2)}`:e}function Dr(e=Date.now()){let t=cT(),{date:s,time:n}=en(e+36e5,t);return{date:s,time:n,timeZone:t,frequency:"once",weekdays:[1],dayOfMonth:Number(s.slice(-2)),end:"never",endDate:"",maxRuns:10}}function tw(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e||""))return!1;let t=Date.parse(`${e}T00:00:00Z`);return Number.isFinite(t)&&new Date(t).toISOString().slice(0,10)===e}function qp(e,t,s){if(!tw(e)||!/^([01]\d|2[0-3]):[0-5]\d$/.test(t||""))return null;try{let n=Date.parse(`${e}T${t}:00Z`),r=new Set;for(let o of[-36,0,36]){let a=n+o*36e5,l=en(a,s);r.add(Date.parse(`${l.date}T${l.time}:00Z`)-a)}let i=[...r].map(o=>n-o).filter(o=>{let a=en(o,s);return a.date===e&&a.time===t});return i.length?Math.min(...i):null}catch{return null}}function sw(e,t=Date.now()){let s=en(Math.min(ea,t+Jk),e).date,n=en(ea,e).date,r=qp(n,"23:59",e);return(r==null||r+59999>ea)&&(n=new Date(Date.parse(`${n}T00:00:00Z`)-864e5).toISOString().slice(0,10)),{maxStartDate:s,maxEndDate:n}}function tr(e,t=Date.now()){if(!e||!tw(e.date)||!/^([01]\d|2[0-3]):[0-5]\d$/.test(e.time||""))return{error:"invalidDateTime"};if(!["once","daily","weekdays","weekly","monthly"].includes(e.frequency))return{error:"invalidDateTime"};try{new Intl.DateTimeFormat("en",{timeZone:e.timeZone}).format()}catch{return{error:"invalidTimeZone"}}if(e.frequency==="weekly"&&(!e.weekdays?.length||e.weekdays.some(l=>!Number.isInteger(l)||l<0||l>6)))return{error:"chooseWeekdays"};let n=e.daysOfMonth??[Number(e.dayOfMonth)];if(e.frequency==="monthly"&&(!Array.isArray(n)||!n.length||n.length>31||n.some(l=>!Number.isInteger(l)||l<1||l>31)))return{error:"invalidMonthDay"};let r=null,i=Date.parse(`${e.date}T00:00:00Z`);for(let l=0;l<(e.frequency==="once"?1:370);l++){let c=new Date(i+l*864e5),d=c.getUTCDay();if(e.frequency==="weekdays"&&(d===0||d===6)||e.frequency==="weekly"&&!e.weekdays.includes(d))continue;let u=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0)).getUTCDate();if(!(e.frequency==="monthly"&&!n.some(p=>c.getUTCDate()===Math.min(p,u)))&&(r=qp(c.toISOString().slice(0,10),e.time,e.timeZone),r!=null))break}if(r==null)return{error:"nonexistentTime"};if(r<0||r>ea)return{error:"supportedRange"};if(r<=t)return{error:"futureTime"};if(r>t+Jk)return{error:"tooFar"};if(e.frequency==="once")return{scheduledFor:r,recurrence:null};let o=null,a=null;if(e.end==="date"){if(o=qp(e.endDate,"23:59",e.timeZone),o==null||o<r)return{error:"invalidEndDate"};if(o+=59999,o<0||o>ea)return{error:"supportedRange"}}else if(e.end==="count"&&(a=Number(e.maxRuns),!Number.isInteger(a)||a<1||a>1e3))return{error:"invalidRunCount"};return{scheduledFor:r,recurrence:{frequency:e.frequency,timeZone:e.timeZone,time:e.time,...e.frequency==="weekly"?{weekdays:[...new Set(e.weekdays)].sort()}:{},...e.frequency==="monthly"?n.length===1?{dayOfMonth:n[0]}:{daysOfMonth:[...new Set(n)].sort((l,c)=>l-c)}:{},endsAt:o,maxRuns:a}}}var ea,Jk,lc=F(()=>{ea=Date.UTC(2100,0,1)-1,Jk=5*366*864e5});var nw,rw,iw,cc,Vp=F(()=>{er();Xk();lc();nw=`
6246
6239
  <div class="work-center-schedule-field">
6247
6240
  <span>{{ $t('workCenter.scheduling.timeZone') }}</span>
6248
6241
  <ModernSelect :model-value="modelValue.timeZone" :options="zones" searchable :disabled="disabled" :aria-label="$t('workCenter.scheduling.timeZone')" @update:model-value="patch('timeZone', $event)" />
@@ -6319,8 +6312,8 @@ ${String(e||"").trim()}
6319
6312
  </div>
6320
6313
  <p v-if="!compact" class="work-center-field-help">{{ scheduleHint || $t(modelValue.frequency === 'once' ? 'workCenter.scheduling.onceHint' : 'workCenter.scheduling.recurringHint') }}</p>
6321
6314
  </div>
6322
- `}});function ow(){return{prompt:"",enabled:!0,notify:!0,trigger:{type:"manual"}}}function d1(e){let t=Dr(),s={...t,daysOfMonth:[t.dayOfMonth]};if(e?.type!=="schedule")return s;let n=e.recurrence,r=n?.timeZone||s.timeZone;try{let i=en(e.scheduledFor,r);return{...s,...i,timeZone:r,frequency:n?.frequency||"once",weekdays:n?.weekdays||s.weekdays,dayOfMonth:n?.dayOfMonth||Number(i.date.slice(-2)),daysOfMonth:n?.daysOfMonth||[n?.dayOfMonth||Number(i.date.slice(-2))],end:n?.endsAt?"date":n?.maxRuns?"count":"never",endDate:n?.endsAt?en(n.endsAt,r).date:"",maxRuns:n?.maxRuns||s.maxRuns}}catch{return s}}var dc,Np=F(()=>{Vp();lc();dc={name:"ScheduledTaskEditor",components:{WorkCenterScheduleEditor:cc},props:{modelValue:{type:Object,required:!0},disabled:{type:Boolean,default:!1},monthlyMultipleSupported:{type:Boolean,default:!1}},emits:["update:modelValue","valid"],data(){return{schedule:d1(this.modelValue.trigger),scheduleTouched:!1,scheduleValid:!0}},computed:{triggerOptions(){return["manual","schedule"].map(e=>({value:e,label:this.$t(`scheduledTasks.trigger.${e}`)}))},supportedTrigger(){return["manual","schedule"].includes(this.modelValue.trigger?.type)},preservedPastSchedule(){return!this.scheduleTouched&&this.modelValue.trigger?.type==="schedule"&&this.modelValue.trigger.scheduledFor<=Date.now()},existingScheduleLabel(){return new Date(this.modelValue.trigger.scheduledFor).toLocaleString()},valid(){return!this.supportedTrigger||!this.modelValue.prompt?.trim()?!1:this.modelValue.trigger.type==="manual"?!0:!this.scheduleTouched||this.scheduleValid&&!tr(this.schedule).error&&(this.monthlyMultipleSupported||this.schedule.frequency!=="monthly"||this.schedule.daysOfMonth?.length<=1)}},watch:{valid:{immediate:!0,handler(e){this.$emit("valid",e)}}},methods:{patch(e,t){this.$emit("update:modelValue",{...this.modelValue,[e]:t})},setTrigger(e){e==="manual"?this.patch("trigger",{type:e}):this.updateSchedule(this.schedule)},updateSchedule(e){this.schedule=e,this.scheduleTouched=!0;let t=tr(e);this.scheduleValid=!t.error,this.patch("trigger",{type:"schedule",...t.error?{}:t})}},template:`
6323
- <fieldset class="scheduled-task-editor" :disabled="disabled">
6315
+ `}});function ow(){return{prompt:"",enabled:!0,notify:!0,trigger:{type:"manual"}}}function dT(e){let t=Dr(),s={...t,daysOfMonth:[t.dayOfMonth]};if(e?.type!=="schedule")return s;let n=e.recurrence,r=n?.timeZone||s.timeZone;try{let i=en(e.scheduledFor,r);return{...s,...i,timeZone:r,frequency:n?.frequency||"once",weekdays:n?.weekdays||s.weekdays,dayOfMonth:n?.dayOfMonth||Number(i.date.slice(-2)),daysOfMonth:n?.daysOfMonth||[n?.dayOfMonth||Number(i.date.slice(-2))],end:n?.endsAt?"date":n?.maxRuns?"count":"never",endDate:n?.endsAt?en(n.endsAt,r).date:"",maxRuns:n?.maxRuns||s.maxRuns}}catch{return s}}var dc,Np=F(()=>{Vp();lc();dc={name:"ScheduledTaskEditor",components:{WorkCenterScheduleEditor:cc},props:{modelValue:{type:Object,required:!0},disabled:{type:Boolean,default:!1},monthlyMultipleSupported:{type:Boolean,default:!1}},emits:["update:modelValue","valid"],data(){return{schedule:dT(this.modelValue.trigger),scheduleTouched:!1,scheduleValid:!0}},computed:{triggerOptions(){return["manual","schedule"].map(e=>({value:e,label:this.$t(`scheduledTasks.trigger.${e}`)}))},supportedTrigger(){return["manual","schedule"].includes(this.modelValue.trigger?.type)},preservedPastSchedule(){return!this.scheduleTouched&&this.modelValue.trigger?.type==="schedule"&&this.modelValue.trigger.scheduledFor<=Date.now()},existingScheduleLabel(){return new Date(this.modelValue.trigger.scheduledFor).toLocaleString()},valid(){return!this.supportedTrigger||!this.modelValue.prompt?.trim()?!1:this.modelValue.trigger.type==="manual"?!0:!this.scheduleTouched||this.scheduleValid&&!tr(this.schedule).error&&(this.monthlyMultipleSupported||this.schedule.frequency!=="monthly"||this.schedule.daysOfMonth?.length<=1)}},watch:{valid:{immediate:!0,handler(e){this.$emit("valid",e)}}},methods:{patch(e,t){this.$emit("update:modelValue",{...this.modelValue,[e]:t})},setTrigger(e){e==="manual"?this.patch("trigger",{type:e}):this.updateSchedule(this.schedule)},updateSchedule(e){this.schedule=e,this.scheduleTouched=!0;let t=tr(e);this.scheduleValid=!t.error,this.patch("trigger",{type:"schedule",...t.error?{}:t})}},template:`
6316
+ <fieldset class="scheduled-task-editor" :class="{ 'is-manual': modelValue.trigger?.type === 'manual' }" :disabled="disabled">
6324
6317
  <div class="scheduled-task-main">
6325
6318
  <slot name="heading"></slot>
6326
6319
  <label class="scheduled-task-field scheduled-task-prompt">
@@ -6328,9 +6321,8 @@ ${String(e||"").trim()}
6328
6321
  <span class="scheduled-task-help">{{ $t('scheduledTasks.promptHint') }}</span>
6329
6322
  <textarea :value="modelValue.prompt" rows="5" required aria-required="true" :disabled="disabled" :aria-label="$t('scheduledTasks.prompt')" :placeholder="$t('scheduledTasks.promptPlaceholder')" @input="patch('prompt', $event.target.value)"></textarea>
6330
6323
  </label>
6331
- <slot></slot>
6332
-
6333
6324
  </div>
6325
+ <div v-if="$slots.default" class="scheduled-task-environment"><slot></slot></div>
6334
6326
  <div class="scheduled-task-timing">
6335
6327
  <div class="scheduled-task-field">
6336
6328
  <span class="scheduled-task-field-title">{{ $t('scheduledTasks.triggerLabel') }}</span>
@@ -6387,7 +6379,7 @@ ${String(e||"").trim()}
6387
6379
  <span class="vp-avatar-typing-dot"></span>
6388
6380
  </span>
6389
6381
  </span>
6390
- `,setup(e){let t=Zs(),s=Vue.computed(()=>t.vpInitial(e.vpId)),n=Vue.computed(()=>t.vpLabel(e.vpId)),r=Vue.computed(()=>{let d=t.vpAvatarMotif;return typeof d=="function"?d(e.vpId):{key:"rat",glyph:"R",background:"linear-gradient(135deg, #174EA6 0%, #0B2F6B 100%)",foreground:"#FFFFFF"}}),i=Vue.computed(()=>{let d=t.vpColor;return typeof d=="function"?d(e.vpId):r.value.background}),o=Vue.computed(()=>r.value.key),a=Vue.computed(()=>r.value.glyph),l=Vue.computed(()=>r.value.foreground),c=Vue.computed(()=>({width:e.size+"px",height:e.size+"px",background:i.value,color:l.value,fontSize:Math.max(13,Math.round(e.size*.58))+"px"}));return{initial:s,displayName:n,avatarStyle:c,motifKey:o,motifGlyph:a}}}});function ta(e){if(!e)return"";let t=String(e).split(/[/\\]/);return t[t.length-1]||t[t.length-2]||e}function uc(e,t){if(!e)return"";let s=new Date(e);if(isNaN(s.getTime()))return"";let r=Math.floor((new Date-s)/(1e3*60*60*24)),i=typeof t=="function"?t:((o,a)=>a&&a.count!=null?`${a.count}d`:o);return r===0?i("chat.time.today")+" "+s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):r===1?i("chat.time.yesterday")+" "+s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):r<7?i("chat.time.daysAgo",{count:r}):s.toLocaleDateString(void 0,{month:"short",day:"numeric"})}var Bp=F(()=>{});function u1(e,t,s,n=0){let r=Math.max(t.top,s.top),i=Math.min(t.bottom,s.bottom),o=Math.max(0,e.top-r-uw),a=Math.max(0,i-e.bottom-uw),l=Math.max(0,Number(n)||0),c="down";return(a<l&&o>=l||a<l&&o>a)&&(c="up"),{placement:c,availableHeight:Math.floor(c==="up"?o:a)}}var cw,dw,uw,sr,sa=F(()=>{Np();Eo();lw();er();Bp();jo();Xl();Ro();cw=`
6382
+ `,setup(e){let t=Zs(),s=Vue.computed(()=>t.vpInitial(e.vpId)),n=Vue.computed(()=>t.vpLabel(e.vpId)),r=Vue.computed(()=>{let d=t.vpAvatarMotif;return typeof d=="function"?d(e.vpId):{key:"rat",glyph:"R",background:"linear-gradient(135deg, #174EA6 0%, #0B2F6B 100%)",foreground:"#FFFFFF"}}),i=Vue.computed(()=>{let d=t.vpColor;return typeof d=="function"?d(e.vpId):r.value.background}),o=Vue.computed(()=>r.value.key),a=Vue.computed(()=>r.value.glyph),l=Vue.computed(()=>r.value.foreground),c=Vue.computed(()=>({width:e.size+"px",height:e.size+"px",background:i.value,color:l.value,fontSize:Math.max(13,Math.round(e.size*.58))+"px"}));return{initial:s,displayName:n,avatarStyle:c,motifKey:o,motifGlyph:a}}}});function ta(e){if(!e)return"";let t=String(e).split(/[/\\]/);return t[t.length-1]||t[t.length-2]||e}function uc(e,t){if(!e)return"";let s=new Date(e);if(isNaN(s.getTime()))return"";let r=Math.floor((new Date-s)/(1e3*60*60*24)),i=typeof t=="function"?t:((o,a)=>a&&a.count!=null?`${a.count}d`:o);return r===0?i("chat.time.today")+" "+s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):r===1?i("chat.time.yesterday")+" "+s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):r<7?i("chat.time.daysAgo",{count:r}):s.toLocaleDateString(void 0,{month:"short",day:"numeric"})}var Bp=F(()=>{});function uT(e,t,s,n=0){let r=Math.max(t.top,s.top),i=Math.min(t.bottom,s.bottom),o=Math.max(0,e.top-r-uw),a=Math.max(0,i-e.bottom-uw),l=Math.max(0,Number(n)||0),c="down";return(a<l&&o>=l||a<l&&o>a)&&(c="up"),{placement:c,availableHeight:Math.floor(c==="up"?o:a)}}var cw,dw,uw,sr,sa=F(()=>{Np();Eo();lw();er();Bp();jo();Xl();Ro();cw=`
6391
6383
  <div class="resume-modal-controls">
6392
6384
  <button v-if="!taskMode" class="resume-close-btn" type="button" @click="requestClose" :aria-label="$t('yeaft.session.create.close')">
6393
6385
  <svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
@@ -6671,7 +6663,6 @@ ${String(e||"").trim()}
6671
6663
  @click="onSubmit"
6672
6664
  :disabled="busy || !canSubmit"
6673
6665
  >
6674
- <svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
6675
6666
  {{ busy ? $t('yeaft.session.create.creating') : $t(taskMode ? 'scheduledTasks.create' : 'yeaft.session.create.submit') }}
6676
6667
  </button>
6677
6668
  </div>
@@ -6683,7 +6674,7 @@ ${String(e||"").trim()}
6683
6674
  </div>
6684
6675
  </div>
6685
6676
  </Teleport>
6686
- `,data(){return{taskDraft:ow(),taskValid:!1,form:{provider:!this.taskMode&&["yeaft","copilot","claude-code"].includes(this.initialProvider)?this.initialProvider:"yeaft",name:"",vpIds:[],defaultVpId:null,model:"",workDir:"",agentId:this.initialAgentId||null},busy:!1,submitError:"",...To(),vpPickerTouched:!1,vpRosterOpen:!1,vpRosterPlacement:"down",vpRosterAvailableHeight:null,scannedSessions:[],restoreScanning:!1,restoring:null,restoreError:"",vpSnapshotTimer:null}},computed:{...Mo,chat(){try{if(typeof window<"u"&&window.Pinia?.useChatStore)return window.Pinia.useChatStore()}catch{}return null},vpStore(){try{if(typeof window<"u"&&window.Pinia?.useVpStore)return window.Pinia.useVpStore()}catch{}return null},sessionsStore(){try{if(typeof window<"u"&&window.Pinia?.useSessionsStore)return window.Pinia.useSessionsStore()}catch{}return null},isYeaftProvider(){return this.form.provider==="yeaft"},vpLibraryReady(){let e=this.vpStore;return!!(e&&e.snapshotStatus==="ready"&&e.snapshotAgentId===this.form.agentId&&e.lastVpSnapshotAgentId===this.form.agentId)},vpList(){return this.vpLibraryReady?this.vpStore?.vpList||[]:[]},vpDomainSections(){return Rr(this.vpList)},vpListSignature(){return(this.vpList||[]).map(e=>e&&e.vpId).filter(Boolean).join(",")},vpLibraryEmpty(){let e=this.vpStore;return!e||!this.vpLibraryReady?!1:e.emptyLibrary===!0?!0:!!(e.lastSnapshotAt&&e.lastSnapshotAt>0&&(e.vpOrder?.length||0)===0)},vpLibraryError(){let e=this.vpStore;return!e||e.snapshotStatus!=="error"?!1:!e.snapshotAgentId||e.snapshotAgentId===this.form.agentId},agentOptions(){let e=this.chat;return!e||!Array.isArray(e.agents)?[]:e.agents.map(t=>({id:t.id,name:t.name,online:!!t.online,capabilities:t.capabilities||[],workDir:t.workDir||""}))},agentSelectOptions(){return this.agentOptions.map(e=>({value:e.id,label:e.name||e.id,sublabel:e.online?this.taskMode&&!e.capabilities.includes("scheduled_tasks")?this.$t("scheduledTasks.upgrade"):"":this.$t("settings.dashboard.offline"),disabled:!e.online||this.taskMode&&!e.capabilities.includes("scheduled_tasks")}))},providerOptions(){return[{value:"yeaft",label:"Yeaft"},{value:"copilot",label:this.$t("provider.copilot")},{value:"claude-code",label:this.$t("provider.claudeCode")}]},agentSignature(){return this.agentOptions.map(e=>`${e.id}:${e.online?1:0}:${this.taskMode?e.capabilities.includes("scheduled_tasks"):""}`).join(",")},folderPickerAgentId(){return this.form.agentId||this.chat?.currentAgent||""},defaultWorkDir(){return this.agentOptions.find(t=>t.id===this.form.agentId)?.workDir||this.chat?.currentAgentInfo?.workDir||""},workDirPlaceholder(){return this.defaultWorkDir||this.$t("modal.newConv.inputOrSelect")},allSessions(){return this.sessionsStore?.sessionList||[]},agentSessions(){let e=this.form.agentId||null;return e?this.allSessions.filter(t=>{let s=t&&t.agentId;return!s||s===e}):this.allSessions},folderAggregates(){let e=new Map;for(let t of this.agentSessions){let s=t&&typeof t.workDir=="string"?t.workDir.trim():"";if(!s)continue;let n=e.get(s)||{path:s,count:0};n.count+=1,e.set(s,n)}return Array.from(e.values()).sort((t,s)=>t.path.localeCompare(s.path))},sessionsInDir(){let e=this.form.agentId||null;return(Array.isArray(this.scannedSessions)?this.scannedSessions:[]).filter(s=>s&&s.id).map(s=>({...s,...s.agentId||e?{agentId:s.agentId||e}:{}}))},chatFolderRows(){return(this.chat?.folders||[]).map(e=>({path:e.path||e.name||"",count:Number(e.sessionCount)||0})).filter(e=>e.path)},createFolderRows(){return this.isYeaftProvider?this.folderAggregates:this.chatFolderRows},createSessionRows(){return this.isYeaftProvider?this.sessionsInDir:(this.chat?.historySessions||[]).map(e=>({...e,id:e.sessionId,name:e.title,createdAt:e.lastModified}))},taskModelOptions(){let e=this.chat?.yeaftStatusByAgent?.[this.form.agentId]?.availableModels||(this.chat?.currentAgent===this.form.agentId?this.chat?.yeaftAvailableModels:[])||[];return[{value:"",label:this.$t("scheduledTasks.defaultModel")},...e.map(t=>({value:Mi(t),label:t.label||t.id}))]},taskMonthDaysSupported(){return this.agentOptions.find(e=>e.id===this.form.agentId)?.capabilities?.includes("scheduled_task_month_days")===!0},taskAgentUnavailable(){if(this.chat?.scheduledTaskProtocolSupported!==!0)return this.$t("scheduledTasks.serverUpgrade");let e=this.agentOptions.find(t=>t.id===this.form.agentId);return!e&&this.agentOptions.some(t=>t.online)&&!this.agentOptions.some(t=>t.capabilities.includes("scheduled_tasks"))?this.$t("scheduledTasks.upgrade"):!e?.online||this.chat?.connectionState&&this.chat.connectionState!=="connected"?this.$t("scheduledTasks.offline"):e.capabilities.includes("scheduled_tasks")?"":this.$t("scheduledTasks.upgrade")},canSubmit(){if(this.taskMode&&(this.taskAgentUnavailable||!this.taskValid||!this.taskDraft.prompt.trim())||this.isYeaftProvider&&(!this.vpLibraryReady||this.form.vpIds.length===0)||!this.form.agentId)return!1;let e=this.agentOptions.find(t=>t.id===this.form.agentId);return!!(e&&e.online)},vpRosterSummary(){let e=this.form.vpIds||[];return e.length===0?this.$t("yeaft.session.create.vpNone"):e.length<=3?e.map(t=>this.vpLabelFor(t)).join(this.$t("common.comma")):this.$t("yeaft.session.create.vpCount",{n:e.length})},vpRosterPopupStyle(){return Number.isFinite(this.vpRosterAvailableHeight)?{"--vp-roster-available-height":`${this.vpRosterAvailableHeight}px`}:{}}},mounted(){window.addEventListener("keydown",this.onEsc),window.addEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.addEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.addEventListener("scroll",this.scheduleVpRosterLayout),window.addEventListener("workbench-message",this.handleFolderPickerMessage),document.addEventListener("click",this.handleOutsideRosterClick,!0),this.seedAgentDefault(),this.subscribeVpsFor(this.form.agentId),this.applyDefaultSelection()},watch:{folderPickerAgentId(){this.closeFolderPicker(),this.form.model=""},vpListSignature(){this.applyDefaultSelection(),this.scheduleVpRosterLayout()},agentSignature(){this.seedAgentDefault(),this.scheduleVpRosterLayout()},"form.provider"(e,t){e!==t&&(this.form.workDir="",this.scannedSessions=[],this.restoreError="",e==="yeaft"?(this.subscribeVpsFor(this.form.agentId),this.applyDefaultSelection()):this.form.agentId&&this.chat?.listFoldersForAgent?.(this.form.agentId,e))},"form.agentId"(e,t){e!==t&&(this.isYeaftProvider&&this.subscribeVpsFor(e),this.form.vpIds=[],this.form.defaultVpId=null,this.vpPickerTouched=!1,this.isYeaftProvider&&this.applyDefaultSelection(),this.scannedSessions=[],this.restoreError="",!this.isYeaftProvider&&e&&this.chat?.listFoldersForAgent?.(e,this.form.provider),(this.form.workDir||"").trim()&&this.loadProviderSessions())},"form.workDir"(e,t){e===t||(this.restoreError="",this.scannedSessions=[],!(e||"").trim())||this.loadProviderSessions()}},beforeUnmount(){window.removeEventListener("keydown",this.onEsc),window.removeEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.removeEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.removeEventListener("scroll",this.scheduleVpRosterLayout),window.removeEventListener("workbench-message",this.handleFolderPickerMessage),document.removeEventListener("click",this.handleOutsideRosterClick,!0),this._vpRosterLayoutFrame&&cancelAnimationFrame(this._vpRosterLayoutFrame),this.invalidateFolderPickerRequest(),this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer)},methods:{toggleVpRoster(){if(this.vpRosterOpen){this.closeVpRoster();return}this.vpRosterPlacement="down",this.vpRosterAvailableHeight=null,this.vpRosterOpen=!0,this.$nextTick(this.scheduleVpRosterLayout)},closeVpRoster(){this.vpRosterOpen=!1,this.vpRosterAvailableHeight=null},scheduleVpRosterLayout(){!this.vpRosterOpen||this._vpRosterLayoutFrame||(this._vpRosterLayoutFrame=requestAnimationFrame(()=>{this._vpRosterLayoutFrame=null,this.updateVpRosterLayout()}))},updateVpRosterLayout(){if(!this.vpRosterOpen)return;let e=this.$refs.vpRosterTrigger,t=this.$refs.vpRosterPopup,s=e?.closest?.(".resume-modal");if(!e||!t||!s)return;let n=t.style.maxHeight;t.style.maxHeight="none";let r=t.scrollHeight;t.style.maxHeight=n;let i=window.visualViewport,o=i?i.offsetTop:0,a=i?i.height:window.innerHeight,l={top:o,bottom:o+a},c=s.getBoundingClientRect(),d=u1(e.getBoundingClientRect(),c,l,r);this.vpRosterPlacement=d.placement,this.vpRosterAvailableHeight=d.availableHeight},seedAgentDefault(){try{let e=this.taskMode?this.agentOptions.filter(i=>i.capabilities.includes("scheduled_tasks")):this.agentOptions;if(!Array.isArray(e)||e.length===0||e.find(i=>i.id===this.form.agentId&&i.online))return;let s=this.chat,n=s&&s.currentAgent||null,r=e.find(i=>i.id===n&&i.online)||e.find(i=>i.online)||null;r&&(this.form.agentId=r.id)}catch{}},subscribeVpsFor(e,{force:t=!1}={}){let s=this.chat,n=e||s?.currentAgent||null,r=this.vpStore;if(!s||typeof s.sendWsMessage!="function"||!n){let l=`vp_snapshot_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return r?.beginSnapshot?.(n,l),r?.failSnapshot?.(n,l,"No online Agent is available."),!1}if(!t&&r?.snapshotStatus==="ready"&&r.snapshotAgentId===n&&r.lastVpSnapshotAgentId===n)return this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer),this.vpSnapshotTimer=null,!0;let o=`vp_snapshot_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return r?.beginSnapshot?.(n,o),s.sendWsMessage({type:"yeaft_vp_subscribe",agentId:n,requestId:o})===!1?(r?.failSnapshot?.(n,o,"WebSocket is not connected."),!1):(this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer),this.vpSnapshotTimer=setTimeout(()=>{this.vpSnapshotTimer=null,r?.snapshotStatus==="loading"&&r.snapshotRequestId===o&&r.failSnapshot(n,o,"VP library request timed out.")},1e4),!0)},retryVpSnapshot(){this.subscribeVpsFor(this.form.agentId,{force:!0})},loadProviderSessions(){if(this.isYeaftProvider)return this.loadRestoreCandidates();let e=(this.form.workDir||"").trim();!e||!this.form.agentId||this.chat?.listHistorySessionsForAgent?.(this.form.agentId,e,this.form.provider)},async loadRestoreCandidates(){if(this.restoreScanning)return;let e=(this.form.workDir||"").trim();if(!e){this.scannedSessions=[];return}let t=this.chat;if(!t||typeof t.sessionCrudRequest!="function"){this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:"store unavailable"});return}let s=this.form.agentId||null;if(!s){this.scannedSessions=[],this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:"no agent selected"});return}this.restoreScanning=!0,this.restoreError="";try{let n=await t.sessionCrudRequest("scan_workdir",{workDir:e},{agentId:s});if(n&&n.ok){let r=Array.isArray(n.sessions)?n.sessions:Array.isArray(n.groups)?n.groups:[];this.scannedSessions=r}else{this.scannedSessions=[];let r=n?.error?.message||n?.error?.code||"unknown";this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:r})}}catch(n){this.scannedSessions=[],this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:n?.message||String(n)})}finally{this.restoreScanning=!1}},async onRestoreClick(e){if(!e||!e.id||this.restoring)return;let t=this.chat;if(!t||typeof t.sessionCrudRequest!="function"){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"store unavailable"});return}let s=this.form.agentId||null;if(!s){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"no agent selected"});return}this.restoring=e.id,this.restoreError="";try{let n=await t.sessionCrudRequest("restore",{sessionId:e.id,workDir:(this.form.workDir||"").trim()},{agentId:s});if(n&&n.ok){let i=n.session||n.group||e,o=i?.agentId||e.agentId||s;o&&t.currentAgent!==o&&typeof t.selectAgent=="function"&&t.selectAgent(o),this.sessionsStore&&this.sessionsStore.setActive(i.id||e.id,o),typeof t.setActiveSessionFilter=="function"&&t.setActiveSessionFilter(i.id||e.id,{agentId:o,force:!0}),this.$emit("created",i),this.$emit("close");return}let r=n?.error?.message||n?.error?.code||"unknown";this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:r})}catch(n){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:n?.message||String(n)})}finally{this.restoring=null}},applyDefaultSelection(){if(this.vpPickerTouched)return;let e=this.vpList||[];if(e.length===0)return;let t=e.map(o=>o&&o.vpId).filter(Boolean);if(t.length===0)return;let s=Array.isArray(this.form.vpIds)?this.form.vpIds:[],n=s.filter(o=>t.includes(o)),r=this.form.defaultVpId&&n.includes(this.form.defaultVpId);if(n.length>0&&r){n.length!==s.length&&(this.form.vpIds=n);return}let i=t.includes(dw)?dw:n[0]||t[0];this.form.vpIds=[i],this.form.defaultVpId=i},toggleVp(e,t){this.vpPickerTouched=!0,t?(this.form.vpIds.includes(e)||this.form.vpIds.push(e),this.form.defaultVpId||(this.form.defaultVpId=e)):(this.form.vpIds=this.form.vpIds.filter(s=>s!==e),this.form.defaultVpId&&!this.form.vpIds.includes(this.form.defaultVpId)&&(this.form.defaultVpId=this.form.vpIds[0]||null))},vpLabelFor(e){let t=this.vpStore?.vpLabel;return typeof t=="function"?t(e):e},vpDescriptionFor(e){let t=this.vpStore?.vpDescription;return typeof t=="function"?t(e):""},vpTextColorFor(e){let t=this.vpStore?.vpTextColor;return typeof t=="function"?t(e):"var(--text-primary)"},selectFolder(e){this.form.workDir=e},selectSession(e){if(!(!e||!e.id)){if(!this.isYeaftProvider){let t=e.workDir||(this.form.workDir||"").trim()||this.defaultWorkDir;this.chat?.selectAgent?.(this.form.agentId),this.chat._pendingSessionTitle=e.name||e.title||null,this.chat?.resumeConversation?.(e.id,t,this.form.agentId,this.chatProviderOptions()),this.$emit("close");return}e.legacyImport?this.onRestoreClick(e):this.resumeExisting(e)}},chatProviderOptions(){let e={provider:this.form.provider};return this.form.provider==="copilot"&&(e.providerOptions={allowAllTools:!0}),e},resumeExisting(e){if(!e||!e.id)return;let t=this.chat,s=e.agentId||this.form.agentId||null,n=(t?.hiddenSessionCatalog||[]).find(r=>r?.runtimeProvider==="yeaft"&&r?.routeRef?.agentId===s&&r?.routeRef?.sessionId===e.id);if(n&&t?.restoreCatalogSession?.(n)!==!0){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"catalog unavailable"});return}s&&t&&t.currentAgent!==s&&typeof t.selectAgent=="function"&&t.selectAgent(s),this.sessionsStore&&this.sessionsStore.setActive(e.id,s),t&&typeof t.setActiveSessionFilter=="function"&&t.setActiveSessionFilter(e.id,{agentId:s,force:!0}),this.$emit("created",{...e,...s?{agentId:s}:{}}),this.$emit("close")},handleOutsideRosterClick(e){if(!this.vpRosterOpen)return;let t=this.$refs.vpRosterRoot;t&&(t.contains(e.target)||this.closeVpRoster())},getLastPathSegment(e){return ta(e)},formatDate(e){return uc(e,this.$t.bind(this))},onEsc(e){if(e.key==="Escape"&&!this.folderPickerOpen){if(this.vpRosterOpen){this.closeVpRoster();return}this.busy||this.requestClose()}},onOverlayClick(){this.busy||this.requestClose()},requestClose(){this.$emit("close")},folderPickerInitialDir(){return this.form.workDir||this.defaultWorkDir||""},folderPickerSetWorkDir(e){this.form.workDir=e},...Po,async onSubmit(){if(!(this.busy||!this.canSubmit)){this.submitError="",this.busy=!0;try{if(!this.chat){this.submitError=this.$t("yeaft.session.error.unknown",{message:"store unavailable"});return}if(!this.isYeaftProvider){let d=this.form.workDir.trim()||this.defaultWorkDir;this.chat.selectAgent?.(this.form.agentId),this.chat.createConversation?.(d,this.form.agentId,null,this.chatProviderOptions()),this.$emit("created",{provider:this.form.provider,workDir:d}),this.$emit("close");return}if(typeof this.chat.createYeaftSession!="function"){this.submitError=this.$t("yeaft.session.error.unknown",{message:"store unavailable"});return}let e=new Set((this.vpList||[]).map(d=>d&&d.vpId).filter(Boolean)),t=this.form.vpIds.filter(d=>e.has(d));if(t.length===0){this.submitError=this.$t("yeaft.session.error.unknown",{message:"no valid VP selected"});return}let s=this.form.defaultVpId&&t.includes(this.form.defaultVpId)?this.form.defaultVpId:t[0],r=this.form.name.trim()||ta(this.form.workDir.trim())||this.$t("yeaft.session.create.untitled"),i=await this.chat.createYeaftSession({...this.taskMode?{task:{...this.taskDraft,prompt:this.taskDraft.prompt.trim()},...this.form.model?{config:{model:this.form.model}}:{}}:{},displayName:r,vpIds:t,defaultVpId:s,workDir:this.form.workDir.trim(),agentId:this.form.agentId||null});if(i&&i.ok){let d=this.chat,u=i.session||i.group||null,p=u&&u.id,f=u?.agentId||this.form.agentId||null;p&&(f&&d&&d.currentAgent!==f&&typeof d.selectAgent=="function"&&d.selectAgent(f),this.sessionsStore&&this.sessionsStore.setActive(p,f),d&&typeof d.setActiveSessionFilter=="function"&&d.setActiveSessionFilter(p,{agentId:f,force:!0})),this.$emit("created",u),this.$emit("close");return}let o=i?.error?.code||"unknown",a=i?.error?.message||"",l=`yeaft.session.error.${o}`,c=this.$t(l,{message:a});this.submitError=c===l?this.$t("yeaft.session.error.unknown",{message:a}):c}catch(e){this.submitError=this.$t("yeaft.session.error.unknown",{message:e?.message||String(e)})}finally{this.busy=!1}}}}}});var Mt,qs=F(()=>{Mt={name:"NavigationIcon",props:{name:{type:String,required:!0},size:{type:[Number,String],default:16}},template:`
6677
+ `,data(){return{taskDraft:ow(),taskValid:!1,form:{provider:!this.taskMode&&["yeaft","copilot","claude-code"].includes(this.initialProvider)?this.initialProvider:"yeaft",name:"",vpIds:[],defaultVpId:null,model:"",workDir:"",agentId:this.initialAgentId||null},busy:!1,submitError:"",...To(),vpPickerTouched:!1,vpRosterOpen:!1,vpRosterPlacement:"down",vpRosterAvailableHeight:null,scannedSessions:[],restoreScanning:!1,restoring:null,restoreError:"",vpSnapshotTimer:null}},computed:{...Mo,chat(){try{if(typeof window<"u"&&window.Pinia?.useChatStore)return window.Pinia.useChatStore()}catch{}return null},vpStore(){try{if(typeof window<"u"&&window.Pinia?.useVpStore)return window.Pinia.useVpStore()}catch{}return null},sessionsStore(){try{if(typeof window<"u"&&window.Pinia?.useSessionsStore)return window.Pinia.useSessionsStore()}catch{}return null},isYeaftProvider(){return this.form.provider==="yeaft"},vpLibraryReady(){let e=this.vpStore;return!!(e&&e.snapshotStatus==="ready"&&e.snapshotAgentId===this.form.agentId&&e.lastVpSnapshotAgentId===this.form.agentId)},vpList(){return this.vpLibraryReady?this.vpStore?.vpList||[]:[]},vpDomainSections(){return Rr(this.vpList)},vpListSignature(){return(this.vpList||[]).map(e=>e&&e.vpId).filter(Boolean).join(",")},vpLibraryEmpty(){let e=this.vpStore;return!e||!this.vpLibraryReady?!1:e.emptyLibrary===!0?!0:!!(e.lastSnapshotAt&&e.lastSnapshotAt>0&&(e.vpOrder?.length||0)===0)},vpLibraryError(){let e=this.vpStore;return!e||e.snapshotStatus!=="error"?!1:!e.snapshotAgentId||e.snapshotAgentId===this.form.agentId},agentOptions(){let e=this.chat;return!e||!Array.isArray(e.agents)?[]:e.agents.map(t=>({id:t.id,name:t.name,online:!!t.online,capabilities:t.capabilities||[],workDir:t.workDir||""}))},agentSelectOptions(){return this.agentOptions.map(e=>({value:e.id,label:e.name||e.id,sublabel:e.online?this.taskMode&&!e.capabilities.includes("scheduled_tasks")?this.$t("scheduledTasks.upgrade"):"":this.$t("settings.dashboard.offline"),disabled:!e.online||this.taskMode&&!e.capabilities.includes("scheduled_tasks")}))},providerOptions(){return[{value:"yeaft",label:"Yeaft"},{value:"copilot",label:this.$t("provider.copilot")},{value:"claude-code",label:this.$t("provider.claudeCode")}]},agentSignature(){return this.agentOptions.map(e=>`${e.id}:${e.online?1:0}:${this.taskMode?e.capabilities.includes("scheduled_tasks"):""}`).join(",")},folderPickerAgentId(){return this.form.agentId||this.chat?.currentAgent||""},defaultWorkDir(){return this.agentOptions.find(t=>t.id===this.form.agentId)?.workDir||this.chat?.currentAgentInfo?.workDir||""},workDirPlaceholder(){return this.defaultWorkDir||this.$t("modal.newConv.inputOrSelect")},allSessions(){return this.sessionsStore?.sessionList||[]},agentSessions(){let e=this.form.agentId||null;return e?this.allSessions.filter(t=>{let s=t&&t.agentId;return!s||s===e}):this.allSessions},folderAggregates(){let e=new Map;for(let t of this.agentSessions){let s=t&&typeof t.workDir=="string"?t.workDir.trim():"";if(!s)continue;let n=e.get(s)||{path:s,count:0};n.count+=1,e.set(s,n)}return Array.from(e.values()).sort((t,s)=>t.path.localeCompare(s.path))},sessionsInDir(){let e=this.form.agentId||null;return(Array.isArray(this.scannedSessions)?this.scannedSessions:[]).filter(s=>s&&s.id).map(s=>({...s,...s.agentId||e?{agentId:s.agentId||e}:{}}))},chatFolderRows(){return(this.chat?.folders||[]).map(e=>({path:e.path||e.name||"",count:Number(e.sessionCount)||0})).filter(e=>e.path)},createFolderRows(){return this.isYeaftProvider?this.folderAggregates:this.chatFolderRows},createSessionRows(){return this.isYeaftProvider?this.sessionsInDir:(this.chat?.historySessions||[]).map(e=>({...e,id:e.sessionId,name:e.title,createdAt:e.lastModified}))},taskModelOptions(){let e=this.chat?.yeaftStatusByAgent?.[this.form.agentId]?.availableModels||(this.chat?.currentAgent===this.form.agentId?this.chat?.yeaftAvailableModels:[])||[];return[{value:"",label:this.$t("scheduledTasks.defaultModel")},...e.map(t=>({value:Mi(t),label:t.label||t.id}))]},taskMonthDaysSupported(){return this.agentOptions.find(e=>e.id===this.form.agentId)?.capabilities?.includes("scheduled_task_month_days")===!0},taskAgentUnavailable(){if(this.chat?.scheduledTaskProtocolSupported!==!0)return this.$t("scheduledTasks.serverUpgrade");let e=this.agentOptions.find(t=>t.id===this.form.agentId);return!e&&this.agentOptions.some(t=>t.online)&&!this.agentOptions.some(t=>t.capabilities.includes("scheduled_tasks"))?this.$t("scheduledTasks.upgrade"):!e?.online||this.chat?.connectionState&&this.chat.connectionState!=="connected"?this.$t("scheduledTasks.offline"):e.capabilities.includes("scheduled_tasks")?"":this.$t("scheduledTasks.upgrade")},canSubmit(){if(this.taskMode&&(this.taskAgentUnavailable||!this.taskValid||!this.taskDraft.prompt.trim())||this.isYeaftProvider&&(!this.vpLibraryReady||this.form.vpIds.length===0)||!this.form.agentId)return!1;let e=this.agentOptions.find(t=>t.id===this.form.agentId);return!!(e&&e.online)},vpRosterSummary(){let e=this.form.vpIds||[];return e.length===0?this.$t("yeaft.session.create.vpNone"):e.length<=3?e.map(t=>this.vpLabelFor(t)).join(this.$t("common.comma")):this.$t("yeaft.session.create.vpCount",{n:e.length})},vpRosterPopupStyle(){return Number.isFinite(this.vpRosterAvailableHeight)?{"--vp-roster-available-height":`${this.vpRosterAvailableHeight}px`}:{}}},mounted(){window.addEventListener("keydown",this.onEsc),window.addEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.addEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.addEventListener("scroll",this.scheduleVpRosterLayout),window.addEventListener("workbench-message",this.handleFolderPickerMessage),document.addEventListener("click",this.handleOutsideRosterClick,!0),this.seedAgentDefault(),this.subscribeVpsFor(this.form.agentId),this.applyDefaultSelection()},watch:{folderPickerAgentId(){this.closeFolderPicker(),this.form.model=""},vpListSignature(){this.applyDefaultSelection(),this.scheduleVpRosterLayout()},agentSignature(){this.seedAgentDefault(),this.scheduleVpRosterLayout()},"form.provider"(e,t){e!==t&&(this.form.workDir="",this.scannedSessions=[],this.restoreError="",e==="yeaft"?(this.subscribeVpsFor(this.form.agentId),this.applyDefaultSelection()):this.form.agentId&&this.chat?.listFoldersForAgent?.(this.form.agentId,e))},"form.agentId"(e,t){e!==t&&(this.isYeaftProvider&&this.subscribeVpsFor(e),this.form.vpIds=[],this.form.defaultVpId=null,this.vpPickerTouched=!1,this.isYeaftProvider&&this.applyDefaultSelection(),this.scannedSessions=[],this.restoreError="",!this.isYeaftProvider&&e&&this.chat?.listFoldersForAgent?.(e,this.form.provider),(this.form.workDir||"").trim()&&this.loadProviderSessions())},"form.workDir"(e,t){e===t||(this.restoreError="",this.scannedSessions=[],!(e||"").trim())||this.loadProviderSessions()}},beforeUnmount(){window.removeEventListener("keydown",this.onEsc),window.removeEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.removeEventListener("resize",this.scheduleVpRosterLayout),window.visualViewport?.removeEventListener("scroll",this.scheduleVpRosterLayout),window.removeEventListener("workbench-message",this.handleFolderPickerMessage),document.removeEventListener("click",this.handleOutsideRosterClick,!0),this._vpRosterLayoutFrame&&cancelAnimationFrame(this._vpRosterLayoutFrame),this.invalidateFolderPickerRequest(),this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer)},methods:{toggleVpRoster(){if(this.vpRosterOpen){this.closeVpRoster();return}this.vpRosterPlacement="down",this.vpRosterAvailableHeight=null,this.vpRosterOpen=!0,this.$nextTick(this.scheduleVpRosterLayout)},closeVpRoster(){this.vpRosterOpen=!1,this.vpRosterAvailableHeight=null},scheduleVpRosterLayout(){!this.vpRosterOpen||this._vpRosterLayoutFrame||(this._vpRosterLayoutFrame=requestAnimationFrame(()=>{this._vpRosterLayoutFrame=null,this.updateVpRosterLayout()}))},updateVpRosterLayout(){if(!this.vpRosterOpen)return;let e=this.$refs.vpRosterTrigger,t=this.$refs.vpRosterPopup,s=e?.closest?.(".resume-modal");if(!e||!t||!s)return;let n=t.style.maxHeight;t.style.maxHeight="none";let r=t.scrollHeight;t.style.maxHeight=n;let i=window.visualViewport,o=i?i.offsetTop:0,a=i?i.height:window.innerHeight,l={top:o,bottom:o+a},c=s.getBoundingClientRect(),d=uT(e.getBoundingClientRect(),c,l,r);this.vpRosterPlacement=d.placement,this.vpRosterAvailableHeight=d.availableHeight},seedAgentDefault(){try{let e=this.taskMode?this.agentOptions.filter(i=>i.capabilities.includes("scheduled_tasks")):this.agentOptions;if(!Array.isArray(e)||e.length===0||e.find(i=>i.id===this.form.agentId&&i.online))return;let s=this.chat,n=s&&s.currentAgent||null,r=e.find(i=>i.id===n&&i.online)||e.find(i=>i.online)||null;r&&(this.form.agentId=r.id)}catch{}},subscribeVpsFor(e,{force:t=!1}={}){let s=this.chat,n=e||s?.currentAgent||null,r=this.vpStore;if(!s||typeof s.sendWsMessage!="function"||!n){let l=`vp_snapshot_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return r?.beginSnapshot?.(n,l),r?.failSnapshot?.(n,l,"No online Agent is available."),!1}if(!t&&r?.snapshotStatus==="ready"&&r.snapshotAgentId===n&&r.lastVpSnapshotAgentId===n)return this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer),this.vpSnapshotTimer=null,!0;let o=`vp_snapshot_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return r?.beginSnapshot?.(n,o),s.sendWsMessage({type:"yeaft_vp_subscribe",agentId:n,requestId:o})===!1?(r?.failSnapshot?.(n,o,"WebSocket is not connected."),!1):(this.vpSnapshotTimer&&clearTimeout(this.vpSnapshotTimer),this.vpSnapshotTimer=setTimeout(()=>{this.vpSnapshotTimer=null,r?.snapshotStatus==="loading"&&r.snapshotRequestId===o&&r.failSnapshot(n,o,"VP library request timed out.")},1e4),!0)},retryVpSnapshot(){this.subscribeVpsFor(this.form.agentId,{force:!0})},loadProviderSessions(){if(this.isYeaftProvider)return this.loadRestoreCandidates();let e=(this.form.workDir||"").trim();!e||!this.form.agentId||this.chat?.listHistorySessionsForAgent?.(this.form.agentId,e,this.form.provider)},async loadRestoreCandidates(){if(this.restoreScanning)return;let e=(this.form.workDir||"").trim();if(!e){this.scannedSessions=[];return}let t=this.chat;if(!t||typeof t.sessionCrudRequest!="function"){this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:"store unavailable"});return}let s=this.form.agentId||null;if(!s){this.scannedSessions=[],this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:"no agent selected"});return}this.restoreScanning=!0,this.restoreError="";try{let n=await t.sessionCrudRequest("scan_workdir",{workDir:e},{agentId:s});if(n&&n.ok){let r=Array.isArray(n.sessions)?n.sessions:Array.isArray(n.groups)?n.groups:[];this.scannedSessions=r}else{this.scannedSessions=[];let r=n?.error?.message||n?.error?.code||"unknown";this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:r})}}catch(n){this.scannedSessions=[],this.restoreError=this.$t("yeaft.restore.modal.scanError",{message:n?.message||String(n)})}finally{this.restoreScanning=!1}},async onRestoreClick(e){if(!e||!e.id||this.restoring)return;let t=this.chat;if(!t||typeof t.sessionCrudRequest!="function"){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"store unavailable"});return}let s=this.form.agentId||null;if(!s){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"no agent selected"});return}this.restoring=e.id,this.restoreError="";try{let n=await t.sessionCrudRequest("restore",{sessionId:e.id,workDir:(this.form.workDir||"").trim()},{agentId:s});if(n&&n.ok){let i=n.session||n.group||e,o=i?.agentId||e.agentId||s;o&&t.currentAgent!==o&&typeof t.selectAgent=="function"&&t.selectAgent(o),this.sessionsStore&&this.sessionsStore.setActive(i.id||e.id,o),typeof t.setActiveSessionFilter=="function"&&t.setActiveSessionFilter(i.id||e.id,{agentId:o,force:!0}),this.$emit("created",i),this.$emit("close");return}let r=n?.error?.message||n?.error?.code||"unknown";this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:r})}catch(n){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:n?.message||String(n)})}finally{this.restoring=null}},applyDefaultSelection(){if(this.vpPickerTouched)return;let e=this.vpList||[];if(e.length===0)return;let t=e.map(o=>o&&o.vpId).filter(Boolean);if(t.length===0)return;let s=Array.isArray(this.form.vpIds)?this.form.vpIds:[],n=s.filter(o=>t.includes(o)),r=this.form.defaultVpId&&n.includes(this.form.defaultVpId);if(n.length>0&&r){n.length!==s.length&&(this.form.vpIds=n);return}let i=t.includes(dw)?dw:n[0]||t[0];this.form.vpIds=[i],this.form.defaultVpId=i},toggleVp(e,t){this.vpPickerTouched=!0,t?(this.form.vpIds.includes(e)||this.form.vpIds.push(e),this.form.defaultVpId||(this.form.defaultVpId=e)):(this.form.vpIds=this.form.vpIds.filter(s=>s!==e),this.form.defaultVpId&&!this.form.vpIds.includes(this.form.defaultVpId)&&(this.form.defaultVpId=this.form.vpIds[0]||null))},vpLabelFor(e){let t=this.vpStore?.vpLabel;return typeof t=="function"?t(e):e},vpDescriptionFor(e){let t=this.vpStore?.vpDescription;return typeof t=="function"?t(e):""},vpTextColorFor(e){let t=this.vpStore?.vpTextColor;return typeof t=="function"?t(e):"var(--text-primary)"},selectFolder(e){this.form.workDir=e},selectSession(e){if(!(!e||!e.id)){if(!this.isYeaftProvider){let t=e.workDir||(this.form.workDir||"").trim()||this.defaultWorkDir;this.chat?.selectAgent?.(this.form.agentId),this.chat._pendingSessionTitle=e.name||e.title||null,this.chat?.resumeConversation?.(e.id,t,this.form.agentId,this.chatProviderOptions()),this.$emit("close");return}e.legacyImport?this.onRestoreClick(e):this.resumeExisting(e)}},chatProviderOptions(){let e={provider:this.form.provider};return this.form.provider==="copilot"&&(e.providerOptions={allowAllTools:!0}),e},resumeExisting(e){if(!e||!e.id)return;let t=this.chat,s=e.agentId||this.form.agentId||null,n=(t?.hiddenSessionCatalog||[]).find(r=>r?.runtimeProvider==="yeaft"&&r?.routeRef?.agentId===s&&r?.routeRef?.sessionId===e.id);if(n&&t?.restoreCatalogSession?.(n)!==!0){this.restoreError=this.$t("yeaft.restore.modal.restoreError",{message:"catalog unavailable"});return}s&&t&&t.currentAgent!==s&&typeof t.selectAgent=="function"&&t.selectAgent(s),this.sessionsStore&&this.sessionsStore.setActive(e.id,s),t&&typeof t.setActiveSessionFilter=="function"&&t.setActiveSessionFilter(e.id,{agentId:s,force:!0}),this.$emit("created",{...e,...s?{agentId:s}:{}}),this.$emit("close")},handleOutsideRosterClick(e){if(!this.vpRosterOpen)return;let t=this.$refs.vpRosterRoot;t&&(t.contains(e.target)||this.closeVpRoster())},getLastPathSegment(e){return ta(e)},formatDate(e){return uc(e,this.$t.bind(this))},onEsc(e){if(e.key==="Escape"&&!this.folderPickerOpen){if(this.vpRosterOpen){this.closeVpRoster();return}this.busy||this.requestClose()}},onOverlayClick(){this.busy||this.requestClose()},requestClose(){this.$emit("close")},folderPickerInitialDir(){return this.form.workDir||this.defaultWorkDir||""},folderPickerSetWorkDir(e){this.form.workDir=e},...Po,async onSubmit(){if(!(this.busy||!this.canSubmit)){this.submitError="",this.busy=!0;try{if(!this.chat){this.submitError=this.$t("yeaft.session.error.unknown",{message:"store unavailable"});return}if(!this.isYeaftProvider){let d=this.form.workDir.trim()||this.defaultWorkDir;this.chat.selectAgent?.(this.form.agentId),this.chat.createConversation?.(d,this.form.agentId,null,this.chatProviderOptions()),this.$emit("created",{provider:this.form.provider,workDir:d}),this.$emit("close");return}if(typeof this.chat.createYeaftSession!="function"){this.submitError=this.$t("yeaft.session.error.unknown",{message:"store unavailable"});return}let e=new Set((this.vpList||[]).map(d=>d&&d.vpId).filter(Boolean)),t=this.form.vpIds.filter(d=>e.has(d));if(t.length===0){this.submitError=this.$t("yeaft.session.error.unknown",{message:"no valid VP selected"});return}let s=this.form.defaultVpId&&t.includes(this.form.defaultVpId)?this.form.defaultVpId:t[0],r=this.form.name.trim()||ta(this.form.workDir.trim())||this.$t("yeaft.session.create.untitled"),i=await this.chat.createYeaftSession({...this.taskMode?{task:{...this.taskDraft,prompt:this.taskDraft.prompt.trim()},...this.form.model?{config:{model:this.form.model}}:{}}:{},displayName:r,vpIds:t,defaultVpId:s,workDir:this.form.workDir.trim(),agentId:this.form.agentId||null});if(i&&i.ok){let d=this.chat,u=i.session||i.group||null,p=u&&u.id,f=u?.agentId||this.form.agentId||null;p&&(f&&d&&d.currentAgent!==f&&typeof d.selectAgent=="function"&&d.selectAgent(f),this.sessionsStore&&this.sessionsStore.setActive(p,f),d&&typeof d.setActiveSessionFilter=="function"&&d.setActiveSessionFilter(p,{agentId:f,force:!0})),this.$emit("created",u),this.$emit("close");return}let o=i?.error?.code||"unknown",a=i?.error?.message||"",l=`yeaft.session.error.${o}`,c=this.$t(l,{message:a});this.submitError=c===l?this.$t("yeaft.session.error.unknown",{message:a}):c}catch(e){this.submitError=this.$t("yeaft.session.error.unknown",{message:e?.message||String(e)})}finally{this.busy=!1}}}}}});var Mt,qs=F(()=>{Mt={name:"NavigationIcon",props:{name:{type:String,required:!0},size:{type:[Number,String],default:16}},template:`
6687
6678
  <svg :width="size" :height="size" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
6688
6679
  <path v-if="name === 'back'" fill="currentColor" d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/>
6689
6680
  <path v-else-if="name === 'menu'" fill="currentColor" d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
@@ -6707,7 +6698,7 @@ ${String(e||"").trim()}
6707
6698
  <path v-else-if="name === 'chevron'" d="m9 5 7 7-7 7"/>
6708
6699
  </g>
6709
6700
  </svg>
6710
- `}});function p1(e=[],{actionId:t,stageId:s,runId:n}={},r=[]){let i=n?r.find(l=>l.id===n):null,o=t||i?.actionId;if(o)return e.find(l=>l.id===o)||null;if(!s)return null;let a=e.filter(l=>l.stageId===s);return a.length===1?a[0]:null}var Ri,pc=F(()=>{Ri={name:"WorkCenterActionReference",props:{actions:{type:Array,default:()=>[]},actionId:{type:String,default:""},stageId:{type:String,default:""},runId:{type:String,default:""},runReferences:{type:Array,default:()=>[]}},emits:["select-action"],computed:{action(){return p1(this.actions,this,this.runReferences)},label(){if(!this.action)return this.$t("workCenter.sourceUnavailable");let e=Number(this.action.sequence)||this.actions.indexOf(this.action)+1,t=this.$t("workCenter.actionNumber",{number:e}),s=this.action.brief?.objective||this.action.objective||this.action.title,n=this.$t(`workCenter.action.${this.action.type}`);return`${t} \xB7 ${s||(n.startsWith("workCenter.")?this.$t("workCenter.untitledAction"):n)}`},identity(){return this.runId||this.actionId||this.stageId}},template:`
6701
+ `}});function pT(e=[],{actionId:t,stageId:s,runId:n}={},r=[]){let i=n?r.find(l=>l.id===n):null,o=t||i?.actionId;if(o)return e.find(l=>l.id===o)||null;if(!s)return null;let a=e.filter(l=>l.stageId===s);return a.length===1?a[0]:null}var Ri,pc=F(()=>{Ri={name:"WorkCenterActionReference",props:{actions:{type:Array,default:()=>[]},actionId:{type:String,default:""},stageId:{type:String,default:""},runId:{type:String,default:""},runReferences:{type:Array,default:()=>[]}},emits:["select-action"],computed:{action(){return pT(this.actions,this,this.runReferences)},label(){if(!this.action)return this.$t("workCenter.sourceUnavailable");let e=Number(this.action.sequence)||this.actions.indexOf(this.action)+1,t=this.$t("workCenter.actionNumber",{number:e}),s=this.action.brief?.objective||this.action.objective||this.action.title,n=this.$t(`workCenter.action.${this.action.type}`);return`${t} \xB7 ${s||(n.startsWith("workCenter.")?this.$t("workCenter.untitledAction"):n)}`},identity(){return this.runId||this.actionId||this.stageId}},template:`
6711
6702
  <button v-if="action" type="button" class="work-center-action-reference" :title="label"
6712
6703
  :data-action-id="action.id" @click="$emit('select-action', action)">
6713
6704
  <span>{{ label }}</span>
@@ -6801,7 +6792,7 @@ ${String(e||"").trim()}
6801
6792
  </div>
6802
6793
  </section>
6803
6794
  <section v-else class="work-center-action-detail-pane work-center-detail-empty"><strong>{{ tr('workCenter.selectAction', 'Select an Action') }}</strong></section>
6804
- `}});function f1(e,t={}){let s={};for(let n of gw){let r=String(e[n]??"").trim();if(!r)continue;let i=Number(r);if(!/^\d+$/.test(r)||!Number.isSafeInteger(i)||i<=0||!Number.isSafeInteger(Number(t[n])+i))return null;s[n]=i}return Object.keys(s).length?s:null}var gw,hw,mw=F(()=>{pc();gw=Object.freeze(["maxRequests","maxTokens","maxRunRequests","maxActionAttempts","maxCoordinatorFailures"]);hw={name:"WorkCenterResourceControl",components:{WorkCenterActionReference:Ri},emits:["select-action"],props:{item:{type:Object,required:!0},agentId:{type:String,required:!0},disabled:{type:Boolean,default:!1}},data(){return{fields:gw,values:{},formOpen:!1,editRevision:null,pending:"",error:"",notice:"",refreshRequired:!1,connectionGeneration:0,active:!0}},computed:{store(){return Pinia.useChatStore()},control(){return this.item.executionControl},online(){return this.store.connectionState==="connected"&&this.store.agents.some(e=>e.id===this.agentId&&e.online)},stale(){return this.refreshRequired||this.formOpen&&this.editRevision!==this.control.revision},unavailable(){return this.disabled||!this.online||!!this.pending},canManage(){return!this.unavailable&&!this.stale&&this.item.status!=="done"&&!(this.item.schedule?.recurrence&&(this.item.status==="cancelled"||this.item.schedule.status==="completed"))&&Number.isSafeInteger(this.control.revision)&&this.control.revision>0},resumableExecution(){return!this.item.schedule?.recurrence&&(!!this.control.stopReason||this.item.status==="cancelled")},additions(){return f1(this.values,this.control.limits)},hasInput(){return Object.values(this.values).some(e=>String(e).trim())},stopLabel(){let e=`workCenter.resource.stop.${this.control.stopReason?.code}`,t=this.$t(e);return t===e?this.$t("workCenter.resource.stopped"):t},usageRows(){return[{key:"total",usage:this.control.usage},{key:"coordinator",usage:this.control.breakdown?.coordinator},{key:"actions",usage:this.control.breakdown?.actions}]}},watch:{online:{immediate:!0,handler(e){e||(this.connectionGeneration+=1,this.refreshRequired=!0)}}},beforeUnmount(){this.active=!1},methods:{count(e){return Number.isFinite(e)?e.toLocaleString():"\u2014"},openForm(){this.canManage&&(this.values={},this.editRevision=this.control.revision,this.formOpen=!0,this.error="",this.notice="")},async refreshLatest(){if(this.unavailable)return;let{id:e}=this.item,t=this.agentId,s=this.connectionGeneration;this.pending="refresh",this.refreshRequired=!0,this.formOpen=!1,this.values={};try{let n=await this.store.getWorkItem(e,t);if(!this.active||n?.id!==e||!n.executionControl||!this.online||s!==this.connectionGeneration||t!==this.agentId||e!==this.item.id)return;this.refreshRequired=!1,this.notice=this.$t("workCenter.resource.reconfirm")}catch(n){this.active&&(this.error=n?.message||String(n))}finally{this.active&&(this.pending="")}},async changeBudget(e){if(!this.canManage||e==="extend"&&(!this.formOpen||!this.additions)||e==="resume"&&!this.resumableExecution)return;let{id:t,revision:s}=this.item,n=this.agentId,r=this.control.revision;this.pending=e,this.error="",this.notice="";try{if(e==="extend"?await this.store.extendWorkItemBudget(t,r,this.additions,n):await this.store.resumeWorkItem(t,s,n,r),!this.active)return;this.formOpen=!1,this.values={},this.notice=this.$t(e==="extend"?"workCenter.resource.extended":"workCenter.resource.resumed")}catch(i){if(!this.active)return;this.error=i?.message||String(i),this.refreshRequired=!0,this.pending="",await this.refreshLatest()}finally{this.active&&(this.pending="")}}},template:`
6795
+ `}});function fT(e,t={}){let s={};for(let n of gw){let r=String(e[n]??"").trim();if(!r)continue;let i=Number(r);if(!/^\d+$/.test(r)||!Number.isSafeInteger(i)||i<=0||!Number.isSafeInteger(Number(t[n])+i))return null;s[n]=i}return Object.keys(s).length?s:null}var gw,hw,mw=F(()=>{pc();gw=Object.freeze(["maxRequests","maxTokens","maxRunRequests","maxActionAttempts","maxCoordinatorFailures"]);hw={name:"WorkCenterResourceControl",components:{WorkCenterActionReference:Ri},emits:["select-action"],props:{item:{type:Object,required:!0},agentId:{type:String,required:!0},disabled:{type:Boolean,default:!1}},data(){return{fields:gw,values:{},formOpen:!1,editRevision:null,pending:"",error:"",notice:"",refreshRequired:!1,connectionGeneration:0,active:!0}},computed:{store(){return Pinia.useChatStore()},control(){return this.item.executionControl},online(){return this.store.connectionState==="connected"&&this.store.agents.some(e=>e.id===this.agentId&&e.online)},stale(){return this.refreshRequired||this.formOpen&&this.editRevision!==this.control.revision},unavailable(){return this.disabled||!this.online||!!this.pending},canManage(){return!this.unavailable&&!this.stale&&this.item.status!=="done"&&!(this.item.schedule?.recurrence&&(this.item.status==="cancelled"||this.item.schedule.status==="completed"))&&Number.isSafeInteger(this.control.revision)&&this.control.revision>0},resumableExecution(){return!this.item.schedule?.recurrence&&(!!this.control.stopReason||this.item.status==="cancelled")},additions(){return fT(this.values,this.control.limits)},hasInput(){return Object.values(this.values).some(e=>String(e).trim())},stopLabel(){let e=`workCenter.resource.stop.${this.control.stopReason?.code}`,t=this.$t(e);return t===e?this.$t("workCenter.resource.stopped"):t},usageRows(){return[{key:"total",usage:this.control.usage},{key:"coordinator",usage:this.control.breakdown?.coordinator},{key:"actions",usage:this.control.breakdown?.actions}]}},watch:{online:{immediate:!0,handler(e){e||(this.connectionGeneration+=1,this.refreshRequired=!0)}}},beforeUnmount(){this.active=!1},methods:{count(e){return Number.isFinite(e)?e.toLocaleString():"\u2014"},openForm(){this.canManage&&(this.values={},this.editRevision=this.control.revision,this.formOpen=!0,this.error="",this.notice="")},async refreshLatest(){if(this.unavailable)return;let{id:e}=this.item,t=this.agentId,s=this.connectionGeneration;this.pending="refresh",this.refreshRequired=!0,this.formOpen=!1,this.values={};try{let n=await this.store.getWorkItem(e,t);if(!this.active||n?.id!==e||!n.executionControl||!this.online||s!==this.connectionGeneration||t!==this.agentId||e!==this.item.id)return;this.refreshRequired=!1,this.notice=this.$t("workCenter.resource.reconfirm")}catch(n){this.active&&(this.error=n?.message||String(n))}finally{this.active&&(this.pending="")}},async changeBudget(e){if(!this.canManage||e==="extend"&&(!this.formOpen||!this.additions)||e==="resume"&&!this.resumableExecution)return;let{id:t,revision:s}=this.item,n=this.agentId,r=this.control.revision;this.pending=e,this.error="",this.notice="";try{if(e==="extend"?await this.store.extendWorkItemBudget(t,r,this.additions,n):await this.store.resumeWorkItem(t,s,n,r),!this.active)return;this.formOpen=!1,this.values={},this.notice=this.$t(e==="extend"?"workCenter.resource.extended":"workCenter.resource.resumed")}catch(i){if(!this.active)return;this.error=i?.message||String(i),this.refreshRequired=!0,this.pending="",await this.refreshLatest()}finally{this.active&&(this.pending="")}}},template:`
6805
6796
  <section class="work-center-resources" :aria-label="$t('workCenter.resource.title')" :aria-busy="!!pending">
6806
6797
  <h3>{{ $t('workCenter.resource.title') }}</h3>
6807
6798
  <div class="work-center-resource-totals">
@@ -6864,7 +6855,7 @@ ${String(e||"").trim()}
6864
6855
  </div>
6865
6856
  </form>
6866
6857
  </section>
6867
- `}});function Wp(e){return JSON.parse(JSON.stringify(e))}function h1(e,t=[]){return{mode:"auto",capability:e,candidateVpIds:[],fixedVpId:null,separateFromStageTypes:t}}function fc(e,t,s,n={}){return{id:e,name:t,type:s,instruction:"",assignmentPolicy:h1(s,n.separateFromStageTypes),modelPolicy:{mode:"inherit",model:null,effort:null},maxAttempts:2,...n.changesRequestedStageId?{changesRequestedStageId:n.changesRequestedStageId}:{}}}function Hp(){return{version:1,revision:1,defaultWorkflowId:"software-change",startImmediately:!0,maxConcurrentActions:3,defaultWorkDir:"",globalInstructions:"",modelTags:{...yw},modelPolicy:{mode:"tag",model:null,tag:"balanced",effort:"high"},coordinatorModelPolicy:{mode:"tag",model:null,tag:"ultimate",effort:"xhigh"},actionModelPolicies:Object.fromEntries(Lr.map(e=>[e,{mode:"tag",model:null,tag:["triage","research","design","diagnose","review"].includes(e)?"ultimate":["document","deliver","write"].includes(e)?"fast":"balanced",effort:["triage","research","design","diagnose","review"].includes(e)?"xhigh":["document","deliver","write"].includes(e)?"medium":"high"}])),actionInstructions:Object.fromEntries(Lr.map(e=>[e,""])),workflows:[{version:1,id:"software-change",name:"Software change",stages:[fc("triage","Triage","triage"),fc("implement","Implement","implement"),fc("review","Review","review",{separateFromStageTypes:["implement"],changesRequestedStageId:"implement"}),fc("deliver","Deliver","deliver")]}]}}function hc(e){return!e||typeof e!="object"||Array.isArray(e)||!e.modelTags||typeof e.modelTags!="object"||Array.isArray(e.modelTags)||!e.modelPolicy||typeof e.modelPolicy!="object"||Array.isArray(e.modelPolicy)||!e.coordinatorModelPolicy||typeof e.coordinatorModelPolicy!="object"||Array.isArray(e.coordinatorModelPolicy)||typeof e.globalInstructions!="string"||!e.actionInstructions||typeof e.actionInstructions!="object"||Array.isArray(e.actionInstructions)||!e.actionModelPolicies||typeof e.actionModelPolicies!="object"||Array.isArray(e.actionModelPolicies)?!1:Lr.every(t=>typeof e.actionInstructions[t]=="string")}function m1(e,t){return hc(e)&&Number.isInteger(e.revision)&&Number.isInteger(t)&&e.revision>t}function gc(e,t={}){let s=e&&typeof e=="object"&&!Array.isArray(e)?Wp(e):{},n=Array.isArray(s.workflows)&&s.workflows.length>0?s.workflows:Hp().workflows,r=n.find(c=>c?.id===s.defaultWorkflowId)||n[0]||null,i=Array.isArray(r?.stages)?r.stages:[],o=Object.fromEntries(i.filter(c=>Lr.includes(c?.type)&&typeof c.instruction=="string").map(c=>[c.type,c.instruction])),a=s.actionInstructions&&typeof s.actionInstructions=="object"&&!Array.isArray(s.actionInstructions)?s.actionInstructions:{},l=i.find(c=>c?.type==="triage")?.modelPolicy||i[0]?.modelPolicy;return{...Hp(),...s,modelTags:{...yw,...s.modelTags||{}},modelPolicy:{mode:"tag",model:null,tag:"balanced",effort:"high",...l||{},...s.modelPolicy||{}},coordinatorModelPolicy:{mode:"tag",model:null,tag:"ultimate",effort:"xhigh",...s.coordinatorModelPolicy||{}},actionModelPolicies:Object.fromEntries(Lr.map(c=>[c,{...Hp().actionModelPolicies[c],...s.actionModelPolicies?.[c]||{}}])),actionInstructions:Object.fromEntries(Lr.map(c=>[c,typeof a[c]=="string"?a[c]:o[c]||t[c]||""])),workflows:n}}function v1(e){let t=e?.message||String(e);return/^Unsupported Work Center operation:\s*get_settings$/i.test(t.trim())}var Lr,g1,vw,yw,bw,kw=F(()=>{Tn();Lr=["triage","research","design","diagnose","implement","migrate","test","review","integrate","document","operate","deliver","write","create_vp","custom"],g1=["fast","balanced","ultimate"],vw=new Set(["medium","high","xhigh"]),yw=Object.freeze({fast:"gpt-5.6-luna",balanced:"gpt-5.6-sol",ultimate:"gpt-6-astra"});bw={name:"WorkCenterSettingsModal",emits:["close","saved","open-agent-models"],props:{agentId:{type:String,required:!0}},data(){return{section:"workflow",draft:null,loading:!0,saving:!1,error:"",conflict:!1,settingsUnsupported:!1,draftAgentId:null,loadGeneration:0}},computed:{store(){return Pinia.useChatStore()},runtime(){return this.store.workCenterRuntimeByAgent[this.agentId]||{}},vps(){return Array.isArray(this.runtime.vps)?this.runtime.vps:[]},models(){return Array.isArray(this.runtime.models)?this.runtime.models:[]},workflows(){return Array.isArray(this.draft?.workflows)?this.draft.workflows:[]},actionTypes(){return Lr},defaultWorkflow(){return this.workflows.find(e=>e.id===this.draft?.defaultWorkflowId)||this.workflows[0]||null},defaultStageInstructions(){return this.runtime.defaultStageInstructions||{}},sections(){return[{id:"workflow",label:this.$t("workCenter.settings.workflow")},{id:"models",label:this.$t("workCenter.settings.models")}]}},watch:{runtime:{deep:!0,handler(){this.normalizeDraftEffort()}}},async mounted(){window.addEventListener("keydown",this.onKeydown);let e=this.store.workCenterSettingsByAgent[this.agentId];e&&(this.draft=gc(e,this.defaultStageInstructions),this.normalizeDraftEffort(),this.draftAgentId=this.agentId,this.settingsUnsupported=!hc(e),this.settingsUnsupported&&(this.error=this.$t("workCenter.settings.upgradeRequired")),this.loading=!1),await this.load()},beforeUnmount(){window.removeEventListener("keydown",this.onKeydown)},methods:{trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,async load(){let e=this.agentId,t=++this.loadGeneration;this.loading=!0,this.error=this.settingsUnsupported&&this.draft?this.$t("workCenter.settings.upgradeRequired"):"";try{let s=await this.store.loadWorkCenterSettings(e);if(t!==this.loadGeneration||e!==this.agentId)return;this.draft=gc(s.settings,this.defaultStageInstructions),this.normalizeDraftEffort(),this.draftAgentId=e,this.conflict=!1,this.settingsUnsupported=!hc(s.settings),this.error=this.settingsUnsupported?this.$t("workCenter.settings.upgradeRequired"):""}catch(s){if(t!==this.loadGeneration||e!==this.agentId)return;v1(s)?(this.draft=gc(null,this.defaultStageInstructions),this.draftAgentId=e,this.settingsUnsupported=!0,this.error=this.$t("workCenter.settings.upgradeRequired")):this.error=s?.message||String(s)}finally{t===this.loadGeneration&&e===this.agentId&&(this.loading=!1)}},onKeydown(e){e.key==="Escape"&&!this.saving&&this.$emit("close")},onOverlayClick(e){Gt(e)&&this.close()},close(){this.saving||this.$emit("close")},vpLabel(e){return this.$i18n?.locale==="zh-CN"&&e.nameZh?e.nameZh:e.name||e.id},setAssignmentMode(e,t){e.assignmentPolicy.mode=t,t==="fixed"&&!e.assignmentPolicy.fixedVpId&&(e.assignmentPolicy.fixedVpId=this.vps[0]?.id||null),t==="pool"&&e.assignmentPolicy.candidateVpIds.length===0&&this.vps[0]&&(e.assignmentPolicy.candidateVpIds=[this.vps[0].id])},addWorkflow(){let e=this.workflows.length+1,t=this.defaultWorkflow||this.workflows[0],s=t?Wp(t):{version:1,stages:[]};s.id=`workflow-${Date.now()}`,s.name=this.$t("workCenter.settings.newWorkflow",{index:e}),this.draft.workflows.push(s),this.draft.defaultWorkflowId=s.id},removeWorkflow(){this.workflows.length<=1||!this.defaultWorkflow||(this.draft.workflows=this.workflows.filter(e=>e.id!==this.defaultWorkflow.id),this.draft.defaultWorkflowId=this.draft.workflows[0].id)},addStage(){if(!this.defaultWorkflow)return;let e=`stage-${Date.now()}`;this.defaultWorkflow.stages.push({id:e,name:this.$t("workCenter.settings.newStage"),type:"custom",instruction:this.defaultStageInstructions.custom||"",assignmentPolicy:{mode:"auto",capability:"custom",candidateVpIds:[],fixedVpId:null,separateFromStageTypes:[]},modelPolicy:{mode:"inherit",model:null,effort:null},maxAttempts:2})},moveStage(e,t){let s=this.defaultWorkflow?.stages,n=e+t;if(!s||n<0||n>=s.length)return;let[r]=s.splice(e,1);s.splice(n,0,r)},reviewReturnCandidates(e){let t=this.defaultWorkflow?.stages||[],s=t.findIndex(n=>n.id===e.id);return s<=0?[]:t.slice(0,s).filter(n=>n.type!=="review"&&n.type!=="deliver")},canRemoveStage(e){let t=this.defaultWorkflow?.stages;if(!t||t.length<=1)return!1;let s=t[e],n=t.filter((r,i)=>i!==e);return n.every((r,i)=>r.type!=="review"||r.changesRequestedStageId!==s.id?!0:n.slice(0,i).some(o=>o.type!=="review"&&o.type!=="deliver"))},removeStage(e){let t=this.defaultWorkflow?.stages;if(!t||!this.canRemoveStage(e))return!1;let[s]=t.splice(e,1);for(let[n,r]of t.entries()){if(r.type!=="review"||r.changesRequestedStageId!==s.id)continue;let i=t.slice(0,n).filter(o=>o.type!=="review"&&o.type!=="deliver");r.changesRequestedStageId=i.at(-1).id}return!0},toggleCandidate(e,t,s){let n=new Set(e.assignmentPolicy.candidateVpIds||[]);s?n.add(t):n.delete(t),e.assignmentPolicy.candidateVpIds=[...n]},defaultInstructionForStage(e){return this.defaultStageInstructions[e.type]||this.defaultStageInstructions.custom||""},resetStageInstruction(e){e.instruction=this.defaultInstructionForStage(e)},setStageType(e,t){let s=this.defaultInstructionForStage(e),n=!e.instruction||e.instruction===s;e.type=t,n&&this.resetStageInstruction(e)},modelRefForStage(e){return e.modelPolicy.mode==="specific"?e.modelPolicy.model:e.modelPolicy.mode==="tag"?this.draft?.modelTags?.[e.modelPolicy.tag]||null:e.modelPolicy.mode==="primary"?this.runtime.primaryModel||null:e.modelPolicy.mode==="fast"&&this.runtime.fastModel||null},modelForStage(e){let t=this.modelRefForStage(e);return t&&this.models.find(s=>s.ref===t||s.id===t)||null},modelTagSelection(e){let t=this.draft?.modelTags?.[e]||null,s=this.models.find(n=>n.ref===t||n.id===t);return s?.ref||s?.id||t},effortOptionsForStage(e){let t=this.modelForStage(e);return t?Array.isArray(t.effortOptions)?t.effortOptions.filter(s=>vw.has(s)):[]:e.modelPolicy.mode==="inherit"?[...new Set(this.models.flatMap(s=>Array.isArray(s.effortOptions)?s.effortOptions.filter(n=>vw.has(n)):[]))]:[]},effortHelpKeyForStage(e){return this.modelRefForStage(e)?this.effortOptionsForStage(e).length===0?"workCenter.settings.effortUnsupportedHelp":"workCenter.settings.effortHelp":"workCenter.settings.effortChooseModelHelp"},normalizeStageEffort(e){let t=this.effortOptionsForStage(e);!e.modelPolicy.effort||t.includes(e.modelPolicy.effort)||(e.modelPolicy.effort=null)},normalizeDraftEffort(){if(!(!this.draft?.modelPolicy||!Array.isArray(this.runtime?.models))){this.normalizeStageEffort({modelPolicy:this.draft.modelPolicy}),this.normalizeStageEffort({modelPolicy:this.draft.coordinatorModelPolicy});for(let e of Object.values(this.draft.actionModelPolicies||{}))this.normalizeStageEffort({modelPolicy:e})}},setModelMode(e,t){e.modelPolicy.mode=t,t==="specific"&&!e.modelPolicy.model&&(e.modelPolicy.model=this.models[0]?.ref||this.models[0]?.id||null),t==="tag"&&!e.modelPolicy.tag&&(e.modelPolicy.tag=g1[0]),this.normalizeStageEffort(e)},setStageModel(e,t){e.modelPolicy.model=t||null,this.normalizeStageEffort(e)},setModelTag(e,t){this.draft.modelTags[e]=t||null,this.normalizeDraftEffort()},async save(){if(!this.draft||this.saving||this.settingsUnsupported)return;let e=this.agentId;if(this.draftAgentId!==e){this.conflict=!0,this.error=this.$t("workCenter.settings.conflict");return}this.saving=!0,this.error="",this.conflict=!1;try{this.normalizeDraftEffort();let t=Wp(this.draft),s=await this.store.saveWorkCenterSettings(t,e);if(e!==this.agentId||this.draftAgentId!==e)return;if(!m1(s.settings,t.revision)){this.settingsUnsupported=!hc(s.settings),this.error=this.$t(this.settingsUnsupported?"workCenter.settings.upgradeRequired":"workCenter.settings.saveNotConfirmed");return}this.draft=gc(s.settings,this.defaultStageInstructions),this.$emit("saved",s.settings),this.$emit("close")}catch(t){if(e!==this.agentId)return;let s=t?.message||String(t);this.conflict=/changed elsewhere|reload before saving/i.test(s),this.error=this.conflict?this.$t("workCenter.settings.conflict"):s}finally{e===this.agentId&&(this.saving=!1)}}},template:`
6858
+ `}});function Wp(e){return JSON.parse(JSON.stringify(e))}function hT(e,t=[]){return{mode:"auto",capability:e,candidateVpIds:[],fixedVpId:null,separateFromStageTypes:t}}function fc(e,t,s,n={}){return{id:e,name:t,type:s,instruction:"",assignmentPolicy:hT(s,n.separateFromStageTypes),modelPolicy:{mode:"inherit",model:null,effort:null},maxAttempts:2,...n.changesRequestedStageId?{changesRequestedStageId:n.changesRequestedStageId}:{}}}function Hp(){return{version:1,revision:1,defaultWorkflowId:"software-change",startImmediately:!0,maxConcurrentActions:3,defaultWorkDir:"",globalInstructions:"",modelTags:{...yw},modelPolicy:{mode:"tag",model:null,tag:"balanced",effort:"high"},coordinatorModelPolicy:{mode:"tag",model:null,tag:"ultimate",effort:"xhigh"},actionModelPolicies:Object.fromEntries(Lr.map(e=>[e,{mode:"tag",model:null,tag:["triage","research","design","diagnose","review"].includes(e)?"ultimate":["document","deliver","write"].includes(e)?"fast":"balanced",effort:["triage","research","design","diagnose","review"].includes(e)?"xhigh":["document","deliver","write"].includes(e)?"medium":"high"}])),actionInstructions:Object.fromEntries(Lr.map(e=>[e,""])),workflows:[{version:1,id:"software-change",name:"Software change",stages:[fc("triage","Triage","triage"),fc("implement","Implement","implement"),fc("review","Review","review",{separateFromStageTypes:["implement"],changesRequestedStageId:"implement"}),fc("deliver","Deliver","deliver")]}]}}function hc(e){return!e||typeof e!="object"||Array.isArray(e)||!e.modelTags||typeof e.modelTags!="object"||Array.isArray(e.modelTags)||!e.modelPolicy||typeof e.modelPolicy!="object"||Array.isArray(e.modelPolicy)||!e.coordinatorModelPolicy||typeof e.coordinatorModelPolicy!="object"||Array.isArray(e.coordinatorModelPolicy)||typeof e.globalInstructions!="string"||!e.actionInstructions||typeof e.actionInstructions!="object"||Array.isArray(e.actionInstructions)||!e.actionModelPolicies||typeof e.actionModelPolicies!="object"||Array.isArray(e.actionModelPolicies)?!1:Lr.every(t=>typeof e.actionInstructions[t]=="string")}function mT(e,t){return hc(e)&&Number.isInteger(e.revision)&&Number.isInteger(t)&&e.revision>t}function gc(e,t={}){let s=e&&typeof e=="object"&&!Array.isArray(e)?Wp(e):{},n=Array.isArray(s.workflows)&&s.workflows.length>0?s.workflows:Hp().workflows,r=n.find(c=>c?.id===s.defaultWorkflowId)||n[0]||null,i=Array.isArray(r?.stages)?r.stages:[],o=Object.fromEntries(i.filter(c=>Lr.includes(c?.type)&&typeof c.instruction=="string").map(c=>[c.type,c.instruction])),a=s.actionInstructions&&typeof s.actionInstructions=="object"&&!Array.isArray(s.actionInstructions)?s.actionInstructions:{},l=i.find(c=>c?.type==="triage")?.modelPolicy||i[0]?.modelPolicy;return{...Hp(),...s,modelTags:{...yw,...s.modelTags||{}},modelPolicy:{mode:"tag",model:null,tag:"balanced",effort:"high",...l||{},...s.modelPolicy||{}},coordinatorModelPolicy:{mode:"tag",model:null,tag:"ultimate",effort:"xhigh",...s.coordinatorModelPolicy||{}},actionModelPolicies:Object.fromEntries(Lr.map(c=>[c,{...Hp().actionModelPolicies[c],...s.actionModelPolicies?.[c]||{}}])),actionInstructions:Object.fromEntries(Lr.map(c=>[c,typeof a[c]=="string"?a[c]:o[c]||t[c]||""])),workflows:n}}function vT(e){let t=e?.message||String(e);return/^Unsupported Work Center operation:\s*get_settings$/i.test(t.trim())}var Lr,gT,vw,yw,bw,kw=F(()=>{Tn();Lr=["triage","research","design","diagnose","implement","migrate","test","review","integrate","document","operate","deliver","write","create_vp","custom"],gT=["fast","balanced","ultimate"],vw=new Set(["medium","high","xhigh"]),yw=Object.freeze({fast:"gpt-5.6-luna",balanced:"gpt-5.6-sol",ultimate:"gpt-6-astra"});bw={name:"WorkCenterSettingsModal",emits:["close","saved","open-agent-models"],props:{agentId:{type:String,required:!0}},data(){return{section:"workflow",draft:null,loading:!0,saving:!1,error:"",conflict:!1,settingsUnsupported:!1,draftAgentId:null,loadGeneration:0}},computed:{store(){return Pinia.useChatStore()},runtime(){return this.store.workCenterRuntimeByAgent[this.agentId]||{}},vps(){return Array.isArray(this.runtime.vps)?this.runtime.vps:[]},models(){return Array.isArray(this.runtime.models)?this.runtime.models:[]},workflows(){return Array.isArray(this.draft?.workflows)?this.draft.workflows:[]},actionTypes(){return Lr},defaultWorkflow(){return this.workflows.find(e=>e.id===this.draft?.defaultWorkflowId)||this.workflows[0]||null},defaultStageInstructions(){return this.runtime.defaultStageInstructions||{}},sections(){return[{id:"workflow",label:this.$t("workCenter.settings.workflow")},{id:"models",label:this.$t("workCenter.settings.models")}]}},watch:{runtime:{deep:!0,handler(){this.normalizeDraftEffort()}}},async mounted(){window.addEventListener("keydown",this.onKeydown);let e=this.store.workCenterSettingsByAgent[this.agentId];e&&(this.draft=gc(e,this.defaultStageInstructions),this.normalizeDraftEffort(),this.draftAgentId=this.agentId,this.settingsUnsupported=!hc(e),this.settingsUnsupported&&(this.error=this.$t("workCenter.settings.upgradeRequired")),this.loading=!1),await this.load()},beforeUnmount(){window.removeEventListener("keydown",this.onKeydown)},methods:{trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,async load(){let e=this.agentId,t=++this.loadGeneration;this.loading=!0,this.error=this.settingsUnsupported&&this.draft?this.$t("workCenter.settings.upgradeRequired"):"";try{let s=await this.store.loadWorkCenterSettings(e);if(t!==this.loadGeneration||e!==this.agentId)return;this.draft=gc(s.settings,this.defaultStageInstructions),this.normalizeDraftEffort(),this.draftAgentId=e,this.conflict=!1,this.settingsUnsupported=!hc(s.settings),this.error=this.settingsUnsupported?this.$t("workCenter.settings.upgradeRequired"):""}catch(s){if(t!==this.loadGeneration||e!==this.agentId)return;vT(s)?(this.draft=gc(null,this.defaultStageInstructions),this.draftAgentId=e,this.settingsUnsupported=!0,this.error=this.$t("workCenter.settings.upgradeRequired")):this.error=s?.message||String(s)}finally{t===this.loadGeneration&&e===this.agentId&&(this.loading=!1)}},onKeydown(e){e.key==="Escape"&&!this.saving&&this.$emit("close")},onOverlayClick(e){Gt(e)&&this.close()},close(){this.saving||this.$emit("close")},vpLabel(e){return this.$i18n?.locale==="zh-CN"&&e.nameZh?e.nameZh:e.name||e.id},setAssignmentMode(e,t){e.assignmentPolicy.mode=t,t==="fixed"&&!e.assignmentPolicy.fixedVpId&&(e.assignmentPolicy.fixedVpId=this.vps[0]?.id||null),t==="pool"&&e.assignmentPolicy.candidateVpIds.length===0&&this.vps[0]&&(e.assignmentPolicy.candidateVpIds=[this.vps[0].id])},addWorkflow(){let e=this.workflows.length+1,t=this.defaultWorkflow||this.workflows[0],s=t?Wp(t):{version:1,stages:[]};s.id=`workflow-${Date.now()}`,s.name=this.$t("workCenter.settings.newWorkflow",{index:e}),this.draft.workflows.push(s),this.draft.defaultWorkflowId=s.id},removeWorkflow(){this.workflows.length<=1||!this.defaultWorkflow||(this.draft.workflows=this.workflows.filter(e=>e.id!==this.defaultWorkflow.id),this.draft.defaultWorkflowId=this.draft.workflows[0].id)},addStage(){if(!this.defaultWorkflow)return;let e=`stage-${Date.now()}`;this.defaultWorkflow.stages.push({id:e,name:this.$t("workCenter.settings.newStage"),type:"custom",instruction:this.defaultStageInstructions.custom||"",assignmentPolicy:{mode:"auto",capability:"custom",candidateVpIds:[],fixedVpId:null,separateFromStageTypes:[]},modelPolicy:{mode:"inherit",model:null,effort:null},maxAttempts:2})},moveStage(e,t){let s=this.defaultWorkflow?.stages,n=e+t;if(!s||n<0||n>=s.length)return;let[r]=s.splice(e,1);s.splice(n,0,r)},reviewReturnCandidates(e){let t=this.defaultWorkflow?.stages||[],s=t.findIndex(n=>n.id===e.id);return s<=0?[]:t.slice(0,s).filter(n=>n.type!=="review"&&n.type!=="deliver")},canRemoveStage(e){let t=this.defaultWorkflow?.stages;if(!t||t.length<=1)return!1;let s=t[e],n=t.filter((r,i)=>i!==e);return n.every((r,i)=>r.type!=="review"||r.changesRequestedStageId!==s.id?!0:n.slice(0,i).some(o=>o.type!=="review"&&o.type!=="deliver"))},removeStage(e){let t=this.defaultWorkflow?.stages;if(!t||!this.canRemoveStage(e))return!1;let[s]=t.splice(e,1);for(let[n,r]of t.entries()){if(r.type!=="review"||r.changesRequestedStageId!==s.id)continue;let i=t.slice(0,n).filter(o=>o.type!=="review"&&o.type!=="deliver");r.changesRequestedStageId=i.at(-1).id}return!0},toggleCandidate(e,t,s){let n=new Set(e.assignmentPolicy.candidateVpIds||[]);s?n.add(t):n.delete(t),e.assignmentPolicy.candidateVpIds=[...n]},defaultInstructionForStage(e){return this.defaultStageInstructions[e.type]||this.defaultStageInstructions.custom||""},resetStageInstruction(e){e.instruction=this.defaultInstructionForStage(e)},setStageType(e,t){let s=this.defaultInstructionForStage(e),n=!e.instruction||e.instruction===s;e.type=t,n&&this.resetStageInstruction(e)},modelRefForStage(e){return e.modelPolicy.mode==="specific"?e.modelPolicy.model:e.modelPolicy.mode==="tag"?this.draft?.modelTags?.[e.modelPolicy.tag]||null:e.modelPolicy.mode==="primary"?this.runtime.primaryModel||null:e.modelPolicy.mode==="fast"&&this.runtime.fastModel||null},modelForStage(e){let t=this.modelRefForStage(e);return t&&this.models.find(s=>s.ref===t||s.id===t)||null},modelTagSelection(e){let t=this.draft?.modelTags?.[e]||null,s=this.models.find(n=>n.ref===t||n.id===t);return s?.ref||s?.id||t},effortOptionsForStage(e){let t=this.modelForStage(e);return t?Array.isArray(t.effortOptions)?t.effortOptions.filter(s=>vw.has(s)):[]:e.modelPolicy.mode==="inherit"?[...new Set(this.models.flatMap(s=>Array.isArray(s.effortOptions)?s.effortOptions.filter(n=>vw.has(n)):[]))]:[]},effortHelpKeyForStage(e){return this.modelRefForStage(e)?this.effortOptionsForStage(e).length===0?"workCenter.settings.effortUnsupportedHelp":"workCenter.settings.effortHelp":"workCenter.settings.effortChooseModelHelp"},normalizeStageEffort(e){let t=this.effortOptionsForStage(e);!e.modelPolicy.effort||t.includes(e.modelPolicy.effort)||(e.modelPolicy.effort=null)},normalizeDraftEffort(){if(!(!this.draft?.modelPolicy||!Array.isArray(this.runtime?.models))){this.normalizeStageEffort({modelPolicy:this.draft.modelPolicy}),this.normalizeStageEffort({modelPolicy:this.draft.coordinatorModelPolicy});for(let e of Object.values(this.draft.actionModelPolicies||{}))this.normalizeStageEffort({modelPolicy:e})}},setModelMode(e,t){e.modelPolicy.mode=t,t==="specific"&&!e.modelPolicy.model&&(e.modelPolicy.model=this.models[0]?.ref||this.models[0]?.id||null),t==="tag"&&!e.modelPolicy.tag&&(e.modelPolicy.tag=gT[0]),this.normalizeStageEffort(e)},setStageModel(e,t){e.modelPolicy.model=t||null,this.normalizeStageEffort(e)},setModelTag(e,t){this.draft.modelTags[e]=t||null,this.normalizeDraftEffort()},async save(){if(!this.draft||this.saving||this.settingsUnsupported)return;let e=this.agentId;if(this.draftAgentId!==e){this.conflict=!0,this.error=this.$t("workCenter.settings.conflict");return}this.saving=!0,this.error="",this.conflict=!1;try{this.normalizeDraftEffort();let t=Wp(this.draft),s=await this.store.saveWorkCenterSettings(t,e);if(e!==this.agentId||this.draftAgentId!==e)return;if(!mT(s.settings,t.revision)){this.settingsUnsupported=!hc(s.settings),this.error=this.$t(this.settingsUnsupported?"workCenter.settings.upgradeRequired":"workCenter.settings.saveNotConfirmed");return}this.draft=gc(s.settings,this.defaultStageInstructions),this.$emit("saved",s.settings),this.$emit("close")}catch(t){if(e!==this.agentId)return;let s=t?.message||String(t);this.conflict=/changed elsewhere|reload before saving/i.test(s),this.error=this.conflict?this.$t("workCenter.settings.conflict"):s}finally{e===this.agentId&&(this.saving=!1)}}},template:`
6868
6859
  <Teleport to="body">
6869
6860
  <div
6870
6861
  class="modal-overlay work-center-settings-overlay"
@@ -7135,7 +7126,7 @@ ${String(e||"").trim()}
7135
7126
  </section>
7136
7127
  </div>
7137
7128
  </aside>
7138
- `}});function _i(e){return typeof e=="string"?e.trim():""}function b1(e){try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"?t.href:""}catch{return""}}function Cw(e){let t=_i(e).replace(/\\/g,"/"),s=t.match(/^[A-Za-z]:/)?.[0]||"",n=t.startsWith("/")||!!s,r=t.slice(s.length).split("/"),i=[];for(let o of r)if(!(!o||o==="."))if(o===".."){if(!i.length)return"";i.pop()}else i.push(o);return`${s}${n&&!s||s?"/":""}${i.join("/")}`}function jp(e,t){let s=_i(e?.ref);if(!s)return null;let n=b1(s);if(e?.kind==="link"||e?.kind==="pr"||n)return n?{type:"url",url:n}:null;if(e?.kind!=="file"||!/^(?:[A-Za-z]:[\\/]|[\\/])/.test(_i(t)))return null;let r=Cw(t),i=/^(?:[A-Za-z]:[\\/]|[\\/])/.test(s),o=Cw(i?s:`${r}/${s}`);if(!r||!o)return null;let a=/^[A-Za-z]:/.test(r)?r.toLowerCase():r,l=/^[A-Za-z]:/.test(o)?o.toLowerCase():o,c=a.endsWith("/")?a:`${a}/`;return l!==a&&!l.startsWith(c)?null:{type:"file",filePath:o}}function Iw({agentId:e,workItem:t,routeProtocolSupported:s=!1,hasAgentCapability:n=()=>!1}={}){let r=_i(t?.id),i=_i(t?.workbench?.workDir),o={runtimeProvider:"work-center",agentId:_i(e),workItemId:r},a=vt(o),l=y1.filter(u=>!n(o.agentId,u)),c=s===!0&&!!(a&&i)&&l.length===0,d=a?Ds(a,i):"";return{available:c,browserAvailable:!!a,missingCapabilities:l,ownerRoute:o,ownerWorkDir:i,routeKey:a,workspaceGeneration:d,openOutput(u){if(!c)return!1;let p=jp(u,i);return p?.type!=="file"?!1:(window.dispatchEvent(new CustomEvent("open-file-in-explorer",{detail:{filePath:p.filePath,agentId:o.agentId,conversationId:Cr(a),workbenchRoute:o,workbenchRouteKey:a,workspaceGeneration:d}})),!0)}}}var y1,Aw=F(()=>{Ls();y1=Object.freeze(["workbench_session_routes","workbench_request_correlation","workbench_terminal_cleanup_fence","work_center_workbench"])});function k1(){try{let e=Number(localStorage.getItem("work-center-actions-width"));if(Number.isFinite(e)&&e>=280&&e<=1e4)return e}catch{}return 400}function vc(e){let t=(Number(e?.workCenterUrlRestoreGeneration)||0)+1;return e&&(e.workCenterUrlRestoreGeneration=t),t}var yc,Kp=F(()=>{hl();Eo();qs();Ku();qt();pc();fw();mw();kw();Fl();No();wl();ec();er();Ql();Up();Sw();Vp();lc();Aw();Ro();Bn();ui();Ga();yc={name:"WorkCenterPage",components:{FolderPickerDialog:zn,NavigationIcon:Mt,MessageComposer:ki,UserTurnBlock:Gn,VpTurnBlock:mi,WorkCenterActionDetail:pw,WorkCenterActionReference:Ri,WorkCenterSettingsModal:bw,AgentSettingsPanel:Pi,ModernSelect:Zt,WorkCenterResourceControl:hw,WorkbenchPanel:xi,PaneResizeHandle:mc,WorkCenterSidebar:ww,WorkCenterScheduleEditor:cc},mixins:[ll],provide(){return{"workbench-browser-opener":e=>Tr(e,this.workbenchContext.ownerRoute,this.workbenchContext.ownerWorkDir)}},data(){return{sidebarExpanded:window.innerWidth>1100,mobileNavigation:window.innerWidth<=1100,selectedId:null,infoTab:"requirement",workbenchExpanded:!1,selectedActionId:null,narrowPane:"items",contentPanelOpen:!1,actionsPaneWidth:k1(),contentStack:[{type:"action-list"}],staleComposerTarget:null,composerTargetValue:"coordinator",actionInputRequestGeneration:0,workCenterUrlRestoreGeneration:0,workItemMessage:"",workItemMessageQuote:null,workItemMessageAttachments:[],workItemMessageAttachmentUploadCount:0,workItemMessageAttachmentsUploading:!1,workItemMessageSending:!1,workItemMessageError:"",workItemComposerGeneration:0,preserveComposerOnEnvelopeClear:!1,detailLoading:!1,detailError:"",createOpen:!1,settingsOpen:!1,saving:!1,createError:"",scheduleSaving:!1,scheduleDraftStarted:!1,scheduleError:"",createGeneration:0,llmConfigOpen:!1,agentSettingsOpen:!1,agentSettingsTargetId:null,unavailableAgentStateGeneration:0,unavailableAgentStateLoading:!1,unavailableAgentStateError:"",search:"",filtersOpen:!1,createAgentSelection:null,boardVpId:"",boardWorkItemType:"",boardUpdatedRange:"week",mobileBoardLane:"active",deletingWorkItemIds:{},deleteWorkItemError:"",boardQueryTimer:null,actionNowMs:Date.now(),workDirTouched:!1,startTouched:!1,createAttachments:[],createAttachmentUploadCount:0,attachmentsUploading:!1,createAttachmentError:"",deliveryInstructionOptions:[],customDeliveryTarget:!1,deliveryInstructionsGeneration:0,previewingAttachmentId:null,attachmentPreviewError:"",attachmentPreviewGeneration:0,form:{requirement:"",workDir:"",deliveryTarget:"",deliveryInstructions:"",start:!0,scheduled:!1,scheduleDraft:Dr()}}},computed:{store(){return Pinia.useChatStore()},chat(){return this.store},agents(){return this.store.agents||[]},onlineAgents(){return this.agents.filter(e=>e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center"))},configurableDisabledAgents(){return this.agents.filter(e=>{let t=this.store.workCenterFeatureSettingsByAgent?.[e?.id];return e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center_feature_settings")&&!e.capabilities.includes("work_center")&&t?.loaded===!0&&!t.error&&t.enabled!==!0})},configurableUnavailableAgents(){return this.agents.filter(e=>{let t=this.store.workCenterFeatureSettingsByAgent?.[e?.id];return e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center_feature_settings")&&!e.capabilities.includes("work_center")&&t?.loaded===!0&&!t.error&&t.enabled===!0})},configurableAgentSettingsLoading(){return this.unavailableAgentStateLoading},configurableAgentSettingsFailed(){return!!this.unavailableAgentStateError},hasConfigurableOnlineAgents(){return this.agents.some(e=>e?.online&&e.capabilities?.includes("work_center_feature_settings"))},hasOnlineAgents(){return this.agents.some(e=>e?.online)},agentId(){let e=this.store.workCenterAgentId;return this.onlineAgents.some(t=>t.id===e)?e:this.onlineAgents[0]?.id||null},sidebarAgents(){return this.agents.filter(e=>e.capabilities?.includes("work_center"))},createAgentOptions(){return this.sidebarAgents.map(e=>({value:e.id,label:e.name||e.id,badge:e.online?"":this.$t("workCenter.offline"),disabled:!e.online}))},deliveryTargetOptions(){return["","response","workspace_files","pull_request","merge"].map(e=>({value:e,label:this.deliveryTargetLabel(e)})).concat({value:"custom",label:this.$t("workCenter.deliveryTargetCustom")},this.deliveryInstructionOptions.map(e=>({value:`history:${e}`,label:e})))},deliveryTargetChoice:{get(){return this.customDeliveryTarget?"custom":this.form.deliveryTarget},set(e){let t=e.startsWith("history:");this.customDeliveryTarget=e==="custom"||t,this.form.deliveryTarget=this.customDeliveryTarget?"":e,this.form.deliveryInstructions=t?e.slice(8):this.customDeliveryTarget?this.form.deliveryInstructions:""}},watcher(){return this.store.workCenterWatcherByAgent[this.agentId]||null},boardNextCursor(){return this.store.workCenterListPageByAgent[this.agentId]?.nextCursor||null},boardLoadingMore(){return!!this.store.workCenterListMoreLoadingByAgent[this.agentId]},settings(){return this.store.workCenterSettingsByAgent[this.agentId]||null},runtime(){return this.store.workCenterRuntimeByAgent[this.agentId]||null},recurringSchedulesSupported(){return this.runtime?.recurringSchedules===!0},createScheduleResult(){return this.form.scheduled?tr(this.form.scheduleDraft,this.actionNowMs):{}},executionMode(){return this.form.scheduled?"scheduled":this.form.start?"now":"draft"},workItemTypes(){return Array.isArray(this.runtime?.workItemTypes)?this.runtime.workItemTypes:[]},workItemAttachmentsSupported(){let e=this.agents.find(t=>t?.id===this.agentId);return e?.capabilityMetadataProvided===!0?e.capabilities?.includes("work_item_attachments")===!0:this.runtime?.workItemAttachments===!0},canonicalMessageWireSupported(){return this.agents.find(e=>e?.id===this.agentId)?.capabilities?.includes("work_center_message_v2")===!0},createDefaultWorkDir(){return this.settings?.defaultWorkDir||this.runtime?.defaultWorkDir||""},createDefaultStart(){return this.settings?.startImmediately!==!1},folderPickerAgentId(){return this.agentId||""},defaultWorkDir(){return this.createDefaultWorkDir},items(){return this.store.workCenterItemsByAgent[this.agentId]||[]},loading(){return!!this.store.workCenterLoadingByAgent[this.agentId]},loaded(){return!!this.store.workCenterLoadedByAgent[this.agentId]},error(){return this.store.workCenterErrorByAgent[this.agentId]||null},detail(){return this.store.workCenterDetailByAgent[this.agentId]||null},selected(){return this.detail?.id===this.selectedId?this.detail:this.items.find(e=>e.id===this.selectedId)||null},workbenchContext(){return Iw({agentId:this.agentId,workItem:this.narrowPane!=="items"?this.selected:null,routeProtocolSupported:this.store.workCenterWorkbenchProtocolSupported===!0&&this.store.workbenchRouteProtocolSupported===!0,hasAgentCapability:(e,t)=>this.store.hasAgentCapability(e,t)})},infoTabs(){return["requirement","progress","outputs","goals","usage"].map(e=>({id:e,label:this.$t(`workCenter.infoTab.${e}`)}))},requirementText(){return this.selected?.requirement||this.selected?.goal||""},goalProgress(){let e=this.selected?.goalProgress;return Array.isArray(e?.criteria)?e:null},finalResponses(){let e=this.selected?.finalResult?.responses;return Array.isArray(e)?e.filter(t=>typeof t?.summary=="string"&&t.summary.trim()):[]},selectedAction(){return(Array.isArray(this.selected?.actions)?this.selected.actions:[]).find(t=>t.id===this.selectedActionId)||null},contentRef(){return this.contentStack[this.contentStack.length-1]||{type:"action-list"}},contentIsActionList(){return this.contentRef.type==="action-list"},waitingPrompt(){if(this.selected?.status!=="waiting")return null;let e=this.selected.messages?.findLast(r=>r.role==="assistant"&&r.decision),t=this.selected.actions||[];if(e?.role==="assistant"&&e.decision?.kind==="request_human"){let r=t.find(i=>i.id===e.recovery?.actionId&&i.generation===e.recovery?.actionGeneration&&i.status==="waiting");return{question:e.decision.question||this.selected.waitingReason||e.text,action:r||null}}let s=t.find(r=>r.id===this.selected.currentActionId&&r.status==="waiting"),n=s?.canonicalResult?.waitingReason||this.selected.waitingReason;return n?{question:n,action:s||null}:null},replyEntryDisabled(){return this.coordinatorReadOnly||this.detailLoading||!!this.detailError||this.workItemMessageSending||this.workItemMessageAttachmentsUploading||!!this.pendingMessageEnvelope},composerTargetIsCoordinator(){return this.composerTargetValue==="coordinator"},composerTargetAction(){if(!this.composerTargetValue.startsWith("action:"))return null;let[,e,t]=this.composerTargetValue.split(":"),s=Number(t);return(Array.isArray(this.selected?.actions)?this.selected.actions:[]).find(r=>r.id===e&&Number(r.generation)===s)||null},composerTargetIsStale(){return this.composerTargetValue!=="coordinator"&&!this.composerTargetAction},composerTargetOptions(){let e=Array.isArray(this.selected?.actions)?this.selected.actions:[],t=this.tr("workCenter.coordinator","Coordinator"),s=[{value:"coordinator",label:this.$t("workCenter.sendToTarget",{target:t}),sublabel:this.tr("workCenter.coordinatorTargetHint","Work Item planning and coordination"),disabled:!1},...e.map(n=>{let r=this.$t("workCenter.actionNumber",{number:this.actionSequence(n)});return{value:`action:${n.id}:${n.generation}`,label:this.$t("workCenter.sendToTarget",{target:r}),sublabel:n.brief?.objective||this.actionLabel(n.type),badge:this.statusLabel(n.status),disabled:!this.canMessageAction(n)}})];return this.composerTargetIsStale?[{value:this.composerTargetValue,label:this.tr("workCenter.targetUnavailable","Selected Action is no longer available"),sublabel:this.tr("workCenter.targetUnavailableHelp","Choose another target before sending. This draft was not redirected."),disabled:!0},...s]:s},composerTargetLabel(){return this.composerTargetAction?this.composerTargetAction.brief?.objective||this.actionLabel(this.composerTargetAction.type):this.tr("workCenter.coordinator","Coordinator")},composerPlaceholder(){return this.composerTargetAction?this.$t("workCenter.actionChatPlaceholder",{name:this.composerTargetLabel}):this.tr("workCenter.conversationPlaceholder","Message about this work item")},composerTargetUnavailable(){return this.coordinatorReadOnly?!0:this.composerTargetIsCoordinator?this.coordinatorThinking:this.composerTargetAction?!this.canMessageAction(this.composerTargetAction):!0},composerCanSend(){return!this.workItemMessageSending&&!this.workItemMessageAttachmentsUploading&&!this.composerTargetUnavailable&&(!!this.workItemMessage.trim()||this.workItemMessageAttachments.length>0)},pendingMessageEnvelope(){return this.selected?.id?this.store.loadWorkCenterMessageEnvelope(this.agentId,this.selected.id):null},composerDraftLocked(){return!!this.pendingMessageEnvelope&&!this.composerTargetIsStale},pendingEnvelopeHasAttachments(){return Array.isArray(this.pendingMessageEnvelope?.attachments)&&this.pendingMessageEnvelope.attachments.length>0},pendingEnvelopeAttachmentRecovery(){return this.composerDraftLocked&&this.pendingEnvelopeHasAttachments},actionMessageKey(){return this.selected?.id&&this.selectedAction?.id?ni(this.agentId,this.selected.id,this.selectedAction.id,this.selectedAction.generation):""},workItemComposerScope(){return this.selected?.id?`${this.agentId}:${this.selected.id}:${this.workItemComposerGeneration}`:""},conversationBlocks(){return(Array.isArray(this.selected?.messages)?this.selected.messages:[]).map(e=>{let t=Number(e?.updatedAt||e?.createdAt)||0;if(e?.role==="user")return{key:e.id,kind:"user",message:{id:e.id,messageId:e.id,type:"user",content:e.text||"",attachments:Array.isArray(e.attachments)?e.attachments:[],quote:Yt(e.quote),timestamp:t}};if(e?.role==="assistant"){let s=e.speaker||{},n=this.workItemMessageSpeaker(e),r=s.id||`work-center-coordinator:${this.selected?.id||"unknown"}`,i=e.status==="thinking"?this.tr("workCenter.conversationThinking","Working\u2026"):e.error||"",o=e.decision?.kind&&e.decision.kind!=="answer"?this.tr(`workCenter.coordinatorDecision.${e.decision.kind}`,e.decision.kind):"",a=[e.text,i,o].filter(Boolean);return{key:e.id,kind:"assistant",speakerName:n,turn:{id:e.id,messageId:e.id,atMessageId:e.id,turnId:e.turnId||e.id,textContent:a.join(`
7129
+ `}});function _i(e){return typeof e=="string"?e.trim():""}function bT(e){try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"?t.href:""}catch{return""}}function Cw(e){let t=_i(e).replace(/\\/g,"/"),s=t.match(/^[A-Za-z]:/)?.[0]||"",n=t.startsWith("/")||!!s,r=t.slice(s.length).split("/"),i=[];for(let o of r)if(!(!o||o==="."))if(o===".."){if(!i.length)return"";i.pop()}else i.push(o);return`${s}${n&&!s||s?"/":""}${i.join("/")}`}function jp(e,t){let s=_i(e?.ref);if(!s)return null;let n=bT(s);if(e?.kind==="link"||e?.kind==="pr"||n)return n?{type:"url",url:n}:null;if(e?.kind!=="file"||!/^(?:[A-Za-z]:[\\/]|[\\/])/.test(_i(t)))return null;let r=Cw(t),i=/^(?:[A-Za-z]:[\\/]|[\\/])/.test(s),o=Cw(i?s:`${r}/${s}`);if(!r||!o)return null;let a=/^[A-Za-z]:/.test(r)?r.toLowerCase():r,l=/^[A-Za-z]:/.test(o)?o.toLowerCase():o,c=a.endsWith("/")?a:`${a}/`;return l!==a&&!l.startsWith(c)?null:{type:"file",filePath:o}}function Iw({agentId:e,workItem:t,routeProtocolSupported:s=!1,hasAgentCapability:n=()=>!1}={}){let r=_i(t?.id),i=_i(t?.workbench?.workDir),o={runtimeProvider:"work-center",agentId:_i(e),workItemId:r},a=vt(o),l=yT.filter(u=>!n(o.agentId,u)),c=s===!0&&!!(a&&i)&&l.length===0,d=a?Ds(a,i):"";return{available:c,browserAvailable:!!a,missingCapabilities:l,ownerRoute:o,ownerWorkDir:i,routeKey:a,workspaceGeneration:d,openOutput(u){if(!c)return!1;let p=jp(u,i);return p?.type!=="file"?!1:(window.dispatchEvent(new CustomEvent("open-file-in-explorer",{detail:{filePath:p.filePath,agentId:o.agentId,conversationId:Cr(a),workbenchRoute:o,workbenchRouteKey:a,workspaceGeneration:d}})),!0)}}}var yT,Aw=F(()=>{Ls();yT=Object.freeze(["workbench_session_routes","workbench_request_correlation","workbench_terminal_cleanup_fence","work_center_workbench"])});function kT(){try{let e=Number(localStorage.getItem("work-center-actions-width"));if(Number.isFinite(e)&&e>=280&&e<=1e4)return e}catch{}return 400}function vc(e){let t=(Number(e?.workCenterUrlRestoreGeneration)||0)+1;return e&&(e.workCenterUrlRestoreGeneration=t),t}var yc,Kp=F(()=>{hl();Eo();qs();Ku();qt();pc();fw();mw();kw();Fl();No();wl();ec();er();Ql();Up();Sw();Vp();lc();Aw();Ro();Bn();ui();Ga();yc={name:"WorkCenterPage",components:{FolderPickerDialog:zn,NavigationIcon:Mt,MessageComposer:ki,UserTurnBlock:Gn,VpTurnBlock:mi,WorkCenterActionDetail:pw,WorkCenterActionReference:Ri,WorkCenterSettingsModal:bw,AgentSettingsPanel:Pi,ModernSelect:Zt,WorkCenterResourceControl:hw,WorkbenchPanel:xi,PaneResizeHandle:mc,WorkCenterSidebar:ww,WorkCenterScheduleEditor:cc},mixins:[ll],provide(){return{"workbench-browser-opener":e=>Tr(e,this.workbenchContext.ownerRoute,this.workbenchContext.ownerWorkDir)}},data(){return{sidebarExpanded:window.innerWidth>1100,mobileNavigation:window.innerWidth<=1100,selectedId:null,infoTab:"requirement",workbenchExpanded:!1,selectedActionId:null,narrowPane:"items",contentPanelOpen:!1,actionsPaneWidth:kT(),contentStack:[{type:"action-list"}],staleComposerTarget:null,composerTargetValue:"coordinator",actionInputRequestGeneration:0,workCenterUrlRestoreGeneration:0,workItemMessage:"",workItemMessageQuote:null,workItemMessageAttachments:[],workItemMessageAttachmentUploadCount:0,workItemMessageAttachmentsUploading:!1,workItemMessageSending:!1,workItemMessageError:"",workItemComposerGeneration:0,preserveComposerOnEnvelopeClear:!1,detailLoading:!1,detailError:"",createOpen:!1,settingsOpen:!1,saving:!1,createError:"",scheduleSaving:!1,scheduleDraftStarted:!1,scheduleError:"",createGeneration:0,llmConfigOpen:!1,agentSettingsOpen:!1,agentSettingsTargetId:null,unavailableAgentStateGeneration:0,unavailableAgentStateLoading:!1,unavailableAgentStateError:"",search:"",filtersOpen:!1,createAgentSelection:null,boardVpId:"",boardWorkItemType:"",boardUpdatedRange:"week",mobileBoardLane:"active",deletingWorkItemIds:{},deleteWorkItemError:"",boardQueryTimer:null,actionNowMs:Date.now(),workDirTouched:!1,startTouched:!1,createAttachments:[],createAttachmentUploadCount:0,attachmentsUploading:!1,createAttachmentError:"",deliveryInstructionOptions:[],customDeliveryTarget:!1,deliveryInstructionsGeneration:0,previewingAttachmentId:null,attachmentPreviewError:"",attachmentPreviewGeneration:0,form:{requirement:"",workDir:"",deliveryTarget:"",deliveryInstructions:"",start:!0,scheduled:!1,scheduleDraft:Dr()}}},computed:{store(){return Pinia.useChatStore()},chat(){return this.store},agents(){return this.store.agents||[]},onlineAgents(){return this.agents.filter(e=>e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center"))},configurableDisabledAgents(){return this.agents.filter(e=>{let t=this.store.workCenterFeatureSettingsByAgent?.[e?.id];return e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center_feature_settings")&&!e.capabilities.includes("work_center")&&t?.loaded===!0&&!t.error&&t.enabled!==!0})},configurableUnavailableAgents(){return this.agents.filter(e=>{let t=this.store.workCenterFeatureSettingsByAgent?.[e?.id];return e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center_feature_settings")&&!e.capabilities.includes("work_center")&&t?.loaded===!0&&!t.error&&t.enabled===!0})},configurableAgentSettingsLoading(){return this.unavailableAgentStateLoading},configurableAgentSettingsFailed(){return!!this.unavailableAgentStateError},hasConfigurableOnlineAgents(){return this.agents.some(e=>e?.online&&e.capabilities?.includes("work_center_feature_settings"))},hasOnlineAgents(){return this.agents.some(e=>e?.online)},agentId(){let e=this.store.workCenterAgentId;return this.onlineAgents.some(t=>t.id===e)?e:this.onlineAgents[0]?.id||null},sidebarAgents(){return this.agents.filter(e=>e.capabilities?.includes("work_center"))},createAgentOptions(){return this.sidebarAgents.map(e=>({value:e.id,label:e.name||e.id,badge:e.online?"":this.$t("workCenter.offline"),disabled:!e.online}))},deliveryTargetOptions(){return["","response","workspace_files","pull_request","merge"].map(e=>({value:e,label:this.deliveryTargetLabel(e)})).concat({value:"custom",label:this.$t("workCenter.deliveryTargetCustom")},this.deliveryInstructionOptions.map(e=>({value:`history:${e}`,label:e})))},deliveryTargetChoice:{get(){return this.customDeliveryTarget?"custom":this.form.deliveryTarget},set(e){let t=e.startsWith("history:");this.customDeliveryTarget=e==="custom"||t,this.form.deliveryTarget=this.customDeliveryTarget?"":e,this.form.deliveryInstructions=t?e.slice(8):this.customDeliveryTarget?this.form.deliveryInstructions:""}},watcher(){return this.store.workCenterWatcherByAgent[this.agentId]||null},boardNextCursor(){return this.store.workCenterListPageByAgent[this.agentId]?.nextCursor||null},boardLoadingMore(){return!!this.store.workCenterListMoreLoadingByAgent[this.agentId]},settings(){return this.store.workCenterSettingsByAgent[this.agentId]||null},runtime(){return this.store.workCenterRuntimeByAgent[this.agentId]||null},recurringSchedulesSupported(){return this.runtime?.recurringSchedules===!0},createScheduleResult(){return this.form.scheduled?tr(this.form.scheduleDraft,this.actionNowMs):{}},executionMode(){return this.form.scheduled?"scheduled":this.form.start?"now":"draft"},workItemTypes(){return Array.isArray(this.runtime?.workItemTypes)?this.runtime.workItemTypes:[]},workItemAttachmentsSupported(){let e=this.agents.find(t=>t?.id===this.agentId);return e?.capabilityMetadataProvided===!0?e.capabilities?.includes("work_item_attachments")===!0:this.runtime?.workItemAttachments===!0},canonicalMessageWireSupported(){return this.agents.find(e=>e?.id===this.agentId)?.capabilities?.includes("work_center_message_v2")===!0},createDefaultWorkDir(){return this.settings?.defaultWorkDir||this.runtime?.defaultWorkDir||""},createDefaultStart(){return this.settings?.startImmediately!==!1},folderPickerAgentId(){return this.agentId||""},defaultWorkDir(){return this.createDefaultWorkDir},items(){return this.store.workCenterItemsByAgent[this.agentId]||[]},loading(){return!!this.store.workCenterLoadingByAgent[this.agentId]},loaded(){return!!this.store.workCenterLoadedByAgent[this.agentId]},error(){return this.store.workCenterErrorByAgent[this.agentId]||null},detail(){return this.store.workCenterDetailByAgent[this.agentId]||null},selected(){return this.detail?.id===this.selectedId?this.detail:this.items.find(e=>e.id===this.selectedId)||null},workbenchContext(){return Iw({agentId:this.agentId,workItem:this.narrowPane!=="items"?this.selected:null,routeProtocolSupported:this.store.workCenterWorkbenchProtocolSupported===!0&&this.store.workbenchRouteProtocolSupported===!0,hasAgentCapability:(e,t)=>this.store.hasAgentCapability(e,t)})},infoTabs(){return["requirement","progress","outputs","goals","usage"].map(e=>({id:e,label:this.$t(`workCenter.infoTab.${e}`)}))},requirementText(){return this.selected?.requirement||this.selected?.goal||""},goalProgress(){let e=this.selected?.goalProgress;return Array.isArray(e?.criteria)?e:null},finalResponses(){let e=this.selected?.finalResult?.responses;return Array.isArray(e)?e.filter(t=>typeof t?.summary=="string"&&t.summary.trim()):[]},selectedAction(){return(Array.isArray(this.selected?.actions)?this.selected.actions:[]).find(t=>t.id===this.selectedActionId)||null},contentRef(){return this.contentStack[this.contentStack.length-1]||{type:"action-list"}},contentIsActionList(){return this.contentRef.type==="action-list"},waitingPrompt(){if(this.selected?.status!=="waiting")return null;let e=this.selected.messages?.findLast(r=>r.role==="assistant"&&r.decision),t=this.selected.actions||[];if(e?.role==="assistant"&&e.decision?.kind==="request_human"){let r=t.find(i=>i.id===e.recovery?.actionId&&i.generation===e.recovery?.actionGeneration&&i.status==="waiting");return{question:e.decision.question||this.selected.waitingReason||e.text,action:r||null}}let s=t.find(r=>r.id===this.selected.currentActionId&&r.status==="waiting"),n=s?.canonicalResult?.waitingReason||this.selected.waitingReason;return n?{question:n,action:s||null}:null},replyEntryDisabled(){return this.coordinatorReadOnly||this.detailLoading||!!this.detailError||this.workItemMessageSending||this.workItemMessageAttachmentsUploading||!!this.pendingMessageEnvelope},composerTargetIsCoordinator(){return this.composerTargetValue==="coordinator"},composerTargetAction(){if(!this.composerTargetValue.startsWith("action:"))return null;let[,e,t]=this.composerTargetValue.split(":"),s=Number(t);return(Array.isArray(this.selected?.actions)?this.selected.actions:[]).find(r=>r.id===e&&Number(r.generation)===s)||null},composerTargetIsStale(){return this.composerTargetValue!=="coordinator"&&!this.composerTargetAction},composerTargetOptions(){let e=Array.isArray(this.selected?.actions)?this.selected.actions:[],t=this.tr("workCenter.coordinator","Coordinator"),s=[{value:"coordinator",label:this.$t("workCenter.sendToTarget",{target:t}),sublabel:this.tr("workCenter.coordinatorTargetHint","Work Item planning and coordination"),disabled:!1},...e.map(n=>{let r=this.$t("workCenter.actionNumber",{number:this.actionSequence(n)});return{value:`action:${n.id}:${n.generation}`,label:this.$t("workCenter.sendToTarget",{target:r}),sublabel:n.brief?.objective||this.actionLabel(n.type),badge:this.statusLabel(n.status),disabled:!this.canMessageAction(n)}})];return this.composerTargetIsStale?[{value:this.composerTargetValue,label:this.tr("workCenter.targetUnavailable","Selected Action is no longer available"),sublabel:this.tr("workCenter.targetUnavailableHelp","Choose another target before sending. This draft was not redirected."),disabled:!0},...s]:s},composerTargetLabel(){return this.composerTargetAction?this.composerTargetAction.brief?.objective||this.actionLabel(this.composerTargetAction.type):this.tr("workCenter.coordinator","Coordinator")},composerPlaceholder(){return this.composerTargetAction?this.$t("workCenter.actionChatPlaceholder",{name:this.composerTargetLabel}):this.tr("workCenter.conversationPlaceholder","Message about this work item")},composerTargetUnavailable(){return this.coordinatorReadOnly?!0:this.composerTargetIsCoordinator?this.coordinatorThinking:this.composerTargetAction?!this.canMessageAction(this.composerTargetAction):!0},composerCanSend(){return!this.workItemMessageSending&&!this.workItemMessageAttachmentsUploading&&!this.composerTargetUnavailable&&(!!this.workItemMessage.trim()||this.workItemMessageAttachments.length>0)},pendingMessageEnvelope(){return this.selected?.id?this.store.loadWorkCenterMessageEnvelope(this.agentId,this.selected.id):null},composerDraftLocked(){return!!this.pendingMessageEnvelope&&!this.composerTargetIsStale},pendingEnvelopeHasAttachments(){return Array.isArray(this.pendingMessageEnvelope?.attachments)&&this.pendingMessageEnvelope.attachments.length>0},pendingEnvelopeAttachmentRecovery(){return this.composerDraftLocked&&this.pendingEnvelopeHasAttachments},actionMessageKey(){return this.selected?.id&&this.selectedAction?.id?ni(this.agentId,this.selected.id,this.selectedAction.id,this.selectedAction.generation):""},workItemComposerScope(){return this.selected?.id?`${this.agentId}:${this.selected.id}:${this.workItemComposerGeneration}`:""},conversationBlocks(){return(Array.isArray(this.selected?.messages)?this.selected.messages:[]).map(e=>{let t=Number(e?.updatedAt||e?.createdAt)||0;if(e?.role==="user")return{key:e.id,kind:"user",message:{id:e.id,messageId:e.id,type:"user",content:e.text||"",attachments:Array.isArray(e.attachments)?e.attachments:[],quote:Yt(e.quote),timestamp:t}};if(e?.role==="assistant"){let s=e.speaker||{},n=this.workItemMessageSpeaker(e),r=s.id||`work-center-coordinator:${this.selected?.id||"unknown"}`,i=e.status==="thinking"?this.tr("workCenter.conversationThinking","Working\u2026"):e.error||"",o=e.decision?.kind&&e.decision.kind!=="answer"?this.tr(`workCenter.coordinatorDecision.${e.decision.kind}`,e.decision.kind):"",a=[e.text,i,o].filter(Boolean);return{key:e.id,kind:"assistant",speakerName:n,turn:{id:e.id,messageId:e.id,atMessageId:e.id,turnId:e.turnId||e.id,textContent:a.join(`
7139
7130
 
7140
7131
  `),textSegments:a.map((l,c)=>({key:`${e.id}:${c}`,content:l,kind:e.status==="thinking"?"progress":"result",isStreaming:e.status==="thinking"})),isStreaming:e.status==="thinking",speakerVpId:r,speakerTimestamp:t,showSpeakerHeader:!0,timestamp:t,createdAt:t,todoMsg:null,toolMsgs:[],toolSummaryCount:0,imageMsgs:[],askMsg:null,attachments:Array.isArray(e.attachments)?e.attachments:[]}}}return{key:e.id,kind:"system",message:e}})},conversationScrollState(){return{agentId:this.agentId,workItemId:this.detail?.id===this.selectedId?this.selectedId:null,blocks:this.conversationBlocks}},coordinatorThinking(){return(this.selected?.messages||[]).some(e=>e?.role==="assistant"&&e.status==="thinking")},coordinatorReadOnly(){return!!this.selected?.schedule?.recurrence||["done","cancelled"].includes(this.selected?.status)},actionMessages(){let e=Array.isArray(this.selectedAction?.messages)?this.selectedAction.messages:[],t=(Array.isArray(this.selectedAction?.thread)?this.selectedAction.thread:[]).flatMap(o=>Array.isArray(o?.messages)?o.messages:[]),s=this.store.workCenterActionMessages[this.actionMessageKey]?.messages||[],n=yo(t,s,e),r=this.selectedAction?.liveMessage,i=r&&n.some(o=>o.role==="assistant"&&o.runId!=null&&o.runId===r.runId&&(r.status==="running"?o.text===r.text:o.status!=="running"));return yo(n,i?null:r)},actionMessagesNextCursor(){let e=this.store.workCenterActionMessages[this.actionMessageKey];return e?e.nextCursor:this.selectedAction?.messageCursor},actionMessagesLoading(){return!!this.store.workCenterActionMessagesLoading[this.actionMessageKey]},actionMessagesError(){return this.store.workCenterActionMessagesError[this.actionMessageKey]||""},orderedActions(){let e=Array.isArray(this.selected?.actions)?this.selected.actions:[];return Ud(e)},boardLanes(){return[{id:"active",title:this.tr("workCenter.board.active","Active")},{id:"needs_attention",title:this.tr("workCenter.board.needsAttention","Needs attention")},{id:"closed",title:this.tr("workCenter.board.closed","Closed")}].map(e=>({...e,items:this.items.filter(t=>t.boardLane===e.id)}))},boardExecutorOptions(){let e=new Map;for(let t of this.items)for(let s of Array.isArray(t.executors)?t.executors:[])s?.id&&e.set(s.id,s.name||s.id);return[...e.entries()].map(([t,s])=>({id:t,name:s}))},boardTypeOptions(){return[...new Set(this.items.map(e=>e.workItemType).filter(Boolean))].sort()},emptyState(){return{title:this.search.trim()?this.tr("workCenter.noMatchesTitle","No matching work items"):this.tr("workCenter.emptyTitle","No work items yet"),body:this.search.trim()?this.tr("workCenter.noMatchesBody","Try a different search or filter."):this.tr("workCenter.emptyBody","Create a persistent task when work must continue beyond one conversation turn."),canCreate:!this.search.trim()}}},watch:{selectedId(){this.infoTab="requirement",this.scheduleError=""},"workbenchContext.workspaceGeneration"(){this.workbenchExpanded=!1},agents:{immediate:!0,deep:!0,handler(){this.loadUnavailableAgentStates()}},agentId:{immediate:!0,handler(e,t){if(vc(this),this.createGeneration=(Number(this.createGeneration)||0)+1,this.createAttachmentUploadCount=0,this.attachmentsUploading=!1,this.deliveryInstructionOptions=[],this.deliveryInstructionsGeneration+=1,this.saving=!1,this.selectedId=null,this.selectedActionId=null,this.contentPanelOpen=!1,this.resetWorkItemComposer?.(),this.resetContentStack?.(),this.composerTargetValue="coordinator",this.narrowPane="items",this.filtersOpen=!1,this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1,t&&e!==t&&(this.closeFolderPicker(),this.resetCreateExecutionContext(e,{keepOpen:!!e&&this.createAgentSelection===e})),this.createAgentSelection=null,this.store.workCenterAgentId!==e){this.store.enterWorkCenter(e);return}e&&((typeof this.boardFilters=="function"?this.store.listWorkItems(e,this.boardFilters()):this.store.listWorkItems(e)).catch(()=>{}),this.store.loadWorkCenterSettings(e).catch(()=>{}),this.createOpen&&this.loadDeliveryInstructionOptions())}},actionsPaneWidth(e){try{localStorage.setItem("work-center-actions-width",String(e))}catch{}},createDefaultWorkDir(){this.applyCreateDefaults()},createDefaultStart(){this.applyCreateDefaults()},search(){this.scheduleBoardQuery()},boardVpId(){this.scheduleBoardQuery()},boardWorkItemType(){this.scheduleBoardQuery()},boardUpdatedRange(){this.scheduleBoardQuery()},conversationScrollState(e,t){let s=this.$refs.detailScroll;if(!s||!e.workItemId||e.workItemId!==t?.workItemId||e.agentId!==t.agentId||s.dataset.workItemId!==e.workItemId)return;let n=s.scrollTop;s.scrollHeight-s.clientHeight-n>64||this.$nextTick(()=>{this.$refs.detailScroll===s&&s.scrollTop===n&&this.agentId===e.agentId&&this.selectedId===e.workItemId&&(s.scrollTop=s.scrollHeight)})},pendingMessageEnvelope(e,t){if(!(!t||e||t.workItemId!==this.selectedId)){if(this.preserveComposerOnEnvelopeClear){this.preserveComposerOnEnvelopeClear=!1,this.workItemMessageError="",this.workItemMessageSending=!1;return}this.workItemMessage="",this.workItemMessageQuote=null,this.workItemMessageAttachments=[],this.workItemMessageError="",this.workItemMessageSending=!1}},detail:{deep:!0,handler(e){if(!e||e.id!==this.selectedId)return;let t=Array.isArray(e.actions)?e.actions:[];this.selectedActionId&&!t.some(s=>s.id===this.selectedActionId)&&(this.selectedActionId=null,this.contentPanelOpen=!1,this.resetContentStack(),this.syncWorkCenterUrl(!0),this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1),this.composerTargetAction==null&&this.composerTargetValue!=="coordinator"?this.staleComposerTarget=this.composerTargetValue:this.staleComposerTarget=null}}},beforeUnmount(){vc(this),this.createGeneration=(Number(this.createGeneration)||0)+1,this.workItemComposerGeneration+=1,this.unavailableAgentStateGeneration+=1,this.deliveryInstructionsGeneration+=1,this.boardQueryTimer&&clearTimeout(this.boardQueryTimer),clearInterval(this.actionClockTimer),window.removeEventListener("popstate",this.restoreWorkCenterUrl),document.removeEventListener("click",this.closeHeaderPopovers),this.navigationMedia?.removeEventListener("change",this.onNavigationResize)},mounted(){this.actionClockTimer=setInterval(()=>{this.actionNowMs=Date.now()},1e3),this.returnFocusElement=document.activeElement,this.navigationMedia=window.matchMedia("(max-width: 1100px)"),this.navigationMedia.addEventListener("change",this.onNavigationResize),this.$nextTick(()=>this.focusNavigationReturn()),window.addEventListener("popstate",this.restoreWorkCenterUrl),document.addEventListener("click",this.closeHeaderPopovers),this.restoreWorkCenterUrl();let e=this.store.workCenterCreateDraft;e&&(this.form={requirement:e.requirement||e.goal||e.title||"",workDir:e.workDir||"",deliveryTarget:e.deliveryTarget||"",deliveryInstructions:e.deliveryInstructions||"",start:this.settings?.startImmediately!==!1},this.customDeliveryTarget=!!this.form.deliveryInstructions.trim(),this.createOpen=!0,this.workDirTouched=!!String(e.workDir||"").trim(),this.startTouched=!1,this.applyCreateDefaults())},methods:{selectInfoTab(e){this.infoTab=e},onInfoTabKeydown(e,t){let s=this.infoTabs.map(r=>r.id),n=s.indexOf(t);if(e.key==="ArrowRight")n=(n+1)%s.length;else if(e.key==="ArrowLeft")n=(n+s.length-1)%s.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=s.length-1;else return;e.preventDefault(),this.selectInfoTab(s[n]),this.$nextTick(()=>this.$refs.shell?.querySelector(`#work-item-info-tab-${s[n]}`)?.focus())},onNavigationResize(e){this.mobileNavigation=e.matches,this.sidebarExpanded=!e.matches},toggleNavigation(){this.sidebarExpanded=!this.sidebarExpanded,this.$nextTick(()=>this.sidebarExpanded&&this.mobileNavigation?this.$refs.navigation?.focusReturn():this.focusNavigationReturn())},focusNavigationReturn(){this.mobileNavigation?[...this.$refs.header?.querySelectorAll(".work-center-navigation-toggle")||[]].find(e=>e.getClientRects().length)?.focus({preventScroll:!0}):this.$refs.navigation?.focusReturn()},async selectActivity({item:e,actionId:t}){let s=this.agentId;if(await this.selectItem(e),!(this.agentId!==s||this.selectedId!==e.id||this.detailError)&&t){let n=this.selected?.actions?.find(r=>r.id===t);n&&this.selectAction(n)}},toggleWorkbench(){this.$refs.workbench?.toggle()},canOpenOutput(e){return this.workbenchContext.available&&this.store.hasAgentCapability(this.agentId,"file_editor")&&jp(e,this.workbenchContext.ownerWorkDir)?.type==="file"},openExternalOutput(e){return fi(e,t=>Tr(t,this.workbenchContext.ownerRoute,this.workbenchContext.ownerWorkDir))},openOutput(e){this.canOpenOutput(e)&&this.workbenchContext.openOutput(e)},closeHeaderPopovers(e){e?.target?.closest?.(".work-center-filter-menu, .work-center-search")||(this.filtersOpen=!1)},backToChat(){this.store.leaveWorkCenter(),this.$nextTick(()=>{let e=this.returnFocusElement,t=n=>n?.isConnected&&n.getClientRects().length&&getComputedStyle(n).visibility!=="hidden"&&n.getBoundingClientRect().right>0;(t(e)&&e!==document.body?e:[...document.querySelectorAll(".sidebar-work-center-trigger, .header-sidebar-toggle, .yeaft-topbar-sidebar-toggle")].find(t))?.focus({preventScroll:!0})})},tr(e,t){let s=this.$t?this.$t(e):e;return s&&s!==e?s:t},async loadUnavailableAgentStates(){let e=++this.unavailableAgentStateGeneration,t=this.agents.filter(r=>r?.online&&r.capabilities?.includes("work_center_feature_settings")&&!r.capabilities.includes("work_center")&&(this.store.workCenterFeatureSettingsByAgent?.[r.id]?.loaded!==!0||this.store.workCenterFeatureSettingsByAgent?.[r.id]?.error));if(this.unavailableAgentStateLoading=t.length>0,this.unavailableAgentStateError="",t.length===0)return;let s=await Promise.allSettled(t.map(r=>this.store.loadWorkCenterFeatureSettings(r.id)));if(e!==this.unavailableAgentStateGeneration)return;let n=s.filter(r=>r.status==="rejected");this.unavailableAgentStateError=n.length?n[0].reason?.message||this.tr("workCenter.agentStatusLoadFailed","Could not check Work Center status."):"",this.unavailableAgentStateLoading=!1},openWorkCenterAgentSettings(){let e=this.configurableDisabledAgents[0]||this.configurableUnavailableAgents[0]||this.agents.find(t=>t?.online)||null;this.agentSettingsTargetId=e?.id||null,this.agentSettingsOpen=!0},closeWorkCenterAgentSettings({focusBack:e=!1}={}){this.agentSettingsOpen=!1,e&&this.$nextTick(()=>this.focusNavigationReturn())},selectWorkCenterAgent(e){if(this.mobileNavigation&&(this.sidebarExpanded=!1),!e||e===this.agentId){this.showItemsPane();return}this.saveComposerDraft(),this.showItemsPane(),this.store.enterWorkCenter(e)},statusLabel(e){return this.tr(`workCenter.status.${e}`,String(e||"").replace("_"," "))},goalStatusLabel(e){return this.tr(`workCenter.goalStatus.${e}`,this.statusLabel(e))},deliveryTargetLabel(e){let t={response:"Response",workspace_files:"Files",pull_request:"Pr",merge:"Merge"};return t[e]?this.tr(`workCenter.deliveryTarget${t[e]}`,e):e||this.tr("workCenter.deliveryTargetAsk","Ask me before delivery")},actionLabel(e){return this.tr(`workCenter.action.${e}`,e||"\u2014")},messageSpeakerRole(e,t){return e?this.$t("workCenter.messageSpeakerRole",{name:e,role:t}):t},workItemMessageSpeaker(e){if(e?.role==="user")return this.tr("workCenter.you","You");if(e?.role==="legacy_instruction")return this.tr("workCenter.originalRequest","Original request");let t=e?.speaker?.name||e?.speaker?.id||"";return this.messageSpeakerRole(t,this.tr("workCenter.coordinator","Coordinator"))},quoteWorkItemMessage(e){if(this.coordinatorReadOnly)return;let t=Yt(e);t&&(this.workItemMessageQuote=t,this.saveComposerDraft(),this.$nextTick(()=>this.$refs.workItemComposer?.getTextarea?.()?.focus?.()))},removeWorkItemMessageQuote(){this.workItemMessageQuote=null,this.saveComposerDraft()},editWorkItemMessageAsNew(e){this.coordinatorReadOnly||(this.workItemMessageQuote=null,this.workItemMessage=String(e||""),this.saveComposerDraft(),this.$nextTick(()=>{let t=this.$refs.workItemComposer?.getTextarea?.();t?.focus?.();let s=t?.value?.length||0;t?.setSelectionRange?.(s,s)}))},openConversationAttachment(e){return this.previewAttachment(e?.attachment||e,e?.trigger||null)},actionSequence(e){let t=Number(e?.sequence);if(Number.isFinite(t)&&t>0)return t;let n=(Array.isArray(this.selected?.actions)?this.selected.actions:[]).findIndex(r=>r?.id===e?.id);return n>=0?n+1:1},actionBreadcrumbDescription(e){return String(e?.brief?.objective||e?.objective||this.actionContentSummary(e)||"").trim().replace(/\s+/g," ")||this.tr("workCenter.untitledAction","Untitled Action")},itemActionProgress(e){let t=Math.max(0,Number(e?.actionCount)||0),s=Math.min(t,Math.max(0,Number(e?.completedActionCount)||0));return this.$t("workCenter.actionProgress",{completed:s,total:t})},actionDuration(e){let t=e?.executionDurationMs;if(!Number.isFinite(t)||t<0)return"\u2014";let s=e.executionStartedAt,n=e.status==="running"&&Number.isFinite(s)&&s>0?Math.max(0,this.actionNowMs-s):0;return Vo(t+n)||"\u2014"},time(e){if(!e)return"";try{return new Date(Number(e)).toLocaleString()}catch{return""}},onWorkItemMessageInput(){this.saveComposerDraft()},onWorkItemMessageKeydown(e){e.key!=="Enter"||e.shiftKey||e.isComposing||(e.preventDefault(),this.sendSelectedWorkItemMessage())},boardFilters(){let e=Date.now(),t=this.boardUpdatedRange==="day"?e-1440*60*1e3:this.boardUpdatedRange==="week"?e-10080*60*1e3:this.boardUpdatedRange==="month"?e-720*60*60*1e3:null;return{keyword:this.search.trim(),vpId:this.boardVpId,workItemType:this.boardWorkItemType,updatedFrom:t,limit:200}},scheduleBoardQuery(){this.boardQueryTimer&&clearTimeout(this.boardQueryTimer),this.boardQueryTimer=setTimeout(()=>{this.boardQueryTimer=null,this.agentId&&this.refresh()},180)},refresh(){return this.agentId?this.store.listWorkItems(this.agentId,this.boardFilters()).catch(()=>{}):Promise.resolve([])},refreshWorkCenterRuntime(e){if(!(!e||e!==this.agentId))return this.store.refreshWorkCenterRuntime(e).catch(()=>{})},loadMoreBoardItems(){return this.store.loadMoreWorkItems(this.agentId).catch(()=>{})},boardAction(e){return e.attentionAction||e.activeAction||e.currentAction||null},boardActionCountLabel(e){let t=e.actionCounts||{},s=[];for(let n of["running","failed","waiting","ready"])Number(t[n])>0&&s.push(`${t[n]} ${this.statusLabel(n)}`);return s.join(" \xB7 ")||this.itemActionProgress(e)},boardExecutorLabel(e){let t=Array.isArray(e.executors)?e.executors:[];if(t.length>0)return t.map(n=>n.name||n.id).join(", ");let s=this.boardAction(e);return s?.assignedVp?.name||s?.assignedVp?.id||this.tr("workCenter.assignment.planned","Planned assignment")},sameContentRef(e,t){return e?.type===t?.type&&e?.actionId===t?.actionId&&e?.runId===t?.runId&&e?.resourceId===t?.resourceId},resetContentStack(e=[{type:"action-list"}]){let t=Array.isArray(e)?e:[e],s=t[0]?.type==="action-list"?t:[{type:"action-list"},...t];this.contentStack=s.length>0?s:[{type:"action-list"}];let n=[...this.contentStack].reverse().find(r=>r.type==="action");this.selectedActionId=this.contentRef.actionId||n?.actionId||null},openContentPanel({syncUrl:e=!0}={}){this.contentPanelOpen=!0,e&&this.syncWorkCenterUrl(),this.$nextTick(()=>{this.$refs.actionsButton?.getClientRects().length||this.$refs.contentClose?.focus({preventScroll:!0})})},closeContentPanel({syncUrl:e=!0}={}){this.contentPanelOpen=!1,this.resetContentStack(),e&&this.syncWorkCenterUrl(),this.$nextTick(()=>this.$refs.actionsButton?.focus?.())},pushContentRef(e,{replace:t=!1,syncUrl:s=!0}={}){let n=this.contentRef;if(this.contentPanelOpen=!0,this.sameContentRef(n,e)){s&&this.syncWorkCenterUrl(t);return}this.contentStack=e.type==="action-list"?[{type:"action-list"}]:[...this.contentStack,e],this.selectedActionId=e.actionId||this.selectedActionId,s&&this.syncWorkCenterUrl(t)},popContentRef(){if(this.contentStack.length<=1)return;this.contentStack=this.contentStack.slice(0,-1);let e=[...this.contentStack].reverse().find(t=>t.type==="action");this.selectedActionId=e?.actionId||null,this.syncWorkCenterUrl()},contentRefParam(e){return e.type==="action"&&e.actionId?`action:${e.actionId}`:e.type==="run"&&e.actionId&&e.runId?`run:${e.actionId}:${e.runId}`:e.type==="attachment"&&e.resourceId?`attachment:${e.actionId||"-"}:${e.resourceId}`:"action-list"},contentStackParam(){return this.contentStack.map(e=>this.contentRefParam(e)).join("/")},parseContentRef(e){let t=String(e||"");if(t==="action-list")return{type:"action-list"};if(t.startsWith("action:"))return{type:"action",actionId:t.slice(7)};if(t.startsWith("run:")){let[,s,n]=t.split(":");return{type:"run",actionId:s,runId:n}}if(t.startsWith("attachment:")){let[,s,n]=t.split(":");return{type:"attachment",actionId:s==="-"?null:s,resourceId:n}}return{type:"action-list"}},parseContentStack(e){let s=[...String(e||"").split("/").filter(Boolean).map(n=>this.parseContentRef(n))].reverse().find(n=>n.actionId&&["action","run","attachment"].includes(n.type));return s?[{type:"action-list"},{type:"action",actionId:s.actionId}]:[{type:"action-list"}]},workCenterUrlRoute(){let e=new URLSearchParams(window.location.search);return{agentId:e.get("workAgentId"),itemId:e.get("workItemId"),content:e.has("workContent")?e.get("workContent"):null}},sameWorkCenterUrlRoute(e,t){return e?.agentId===t?.agentId&&e?.itemId===t?.itemId&&e?.content===t?.content},syncWorkCenterUrl(e=!1){vc(this);let t=new URL(window.location.href);this.selectedId?(t.searchParams.set("workAgentId",this.agentId||""),t.searchParams.set("workItemId",this.selectedId),t.searchParams.set("workContent",this.contentPanelOpen?this.contentStackParam():"none")):(t.searchParams.delete("workAgentId"),t.searchParams.delete("workItemId"),t.searchParams.delete("workContent"));let s=`${t.pathname}${t.search}${t.hash}`;if(`${window.location.pathname}${window.location.search}${window.location.hash}`===s)return;let n={...window.history.state,workCenter:!!this.selectedId,workCenterContent:!!this.selectedId&&this.contentPanelOpen};window.history[e?"replaceState":"pushState"](n,"",s)},async restoreWorkCenterUrl(){let e=vc(this),t=this.workCenterUrlRoute(),s=()=>e===this.workCenterUrlRestoreGeneration&&this.sameWorkCenterUrlRoute(t,this.workCenterUrlRoute()),n=t.agentId,r=t.itemId;if(!r||n&&n!==this.agentId){this.selectedId&&this.showItemsPane({syncUrl:!1});return}let i=t.content==null?(this.$refs.shell?.clientWidth||window.innerWidth)>900:t.content!=="none",o=this.parseContentStack(t.content),a=o.at(-1);if(this.selectedId!==r||this.detail?.id!==r){this.openWorkItem(r,{syncUrl:!1,contentRefs:o,contentOpen:i}),this.detailLoading=!0;try{await this.store.getWorkItem(r,this.agentId)}catch(c){s()&&(this.detailError=c?.message||String(c))}finally{s()&&(this.detailLoading=!1)}}if(!s())return;let l=a.actionId||[...o].reverse().find(c=>c.type==="action")?.actionId;if(l&&!this.selected?.actions?.some(c=>c.id===l)){this.resetContentStack(),this.syncWorkCenterUrl(!0);return}this.resetContentStack(o),this.contentPanelOpen=i,this.narrowPane="work-item",i&&l&&this.loadLatestActionMessages(this.selectedAction),i&&t.content!==this.contentStackParam()&&this.syncWorkCenterUrl(!0)},resetWorkItemComposer(){this.workItemComposerGeneration+=1,this.workItemMessage="",this.workItemMessageQuote=null,this.workItemMessageAttachments=[],this.workItemMessageAttachmentUploadCount=0,this.workItemMessageAttachmentsUploading=!1,this.workItemMessageError="",this.workItemMessageSending=!1},draftTarget(){let e=this.composerTargetAction;return e?{kind:"action",actionId:e.id,generation:Number(e.generation)}:this.composerTargetValue==="coordinator"?{kind:"coordinator"}:(()=>{let[,t="",s="0"]=this.composerTargetValue.split(":");return{kind:"action",actionId:t,generation:Number(s)||0}})()},targetValue(e){return typeof e=="string"&&e.startsWith("action:")?e:e?.kind==="action"?`action:${e.actionId}:${e.generation}`:"coordinator"},saveComposerDraft(){!this.selectedId||!this.agentId||this.store.saveWorkCenterComposerDraft(this.agentId,this.selectedId,{text:this.workItemMessage,quote:this.workItemMessageQuote,attachments:[...this.workItemMessageAttachments],target:this.draftTarget(),error:this.workItemMessageError})},restoreComposerDraft(e){let s=this.store.loadWorkCenterMessageEnvelope(this.agentId,e)||this.store.loadWorkCenterComposerDraft(this.agentId,e);this.workItemMessage=s?.text||"",this.workItemMessageQuote=Yt(s?.quote),this.workItemMessageAttachments=[...s?.attachments||[]],this.composerTargetValue=this.targetValue(s?.target),this.workItemMessageError=s?.error||"",this.staleComposerTarget=null,this.workItemMessageSending=!1,this.workItemMessageAttachmentUploadCount=0,this.workItemMessageAttachmentsUploading=!1,this.workItemComposerGeneration+=1},openWorkItem(e,{syncUrl:t=!0,contentRefs:s=[{type:"action-list"}],contentOpen:n=(this.$refs.shell?.clientWidth||window.innerWidth)>900}={}){this.saveComposerDraft(),this.selectedId=e,this.narrowPane="work-item",this.contentPanelOpen=n,this.resetContentStack(s),this.restoreComposerDraft(e),this.detailError="",this.detailLoading=!1,this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1,t&&this.syncWorkCenterUrl()},async selectItem(e){this.mobileNavigation&&(this.sidebarExpanded=!1),this.openWorkItem(e.id),this.detailLoading=!0;try{await this.store.getWorkItem(e.id,this.agentId)}catch(t){this.selectedId===e.id&&(this.detailError=t?.message||String(t))}finally{this.selectedId===e.id&&(this.detailLoading=!1)}},selectAction(e){this.selectedActionId!==e.id&&(this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1),this.pushContentRef({type:"action",actionId:e.id}),this.loadLatestActionMessages(e),this.$nextTick(()=>this.$refs.actionBack?.focus({preventScroll:!0}))},loadLatestActionMessages(e=this.selectedAction){if(!this.selected?.id||!e?.id||Array.isArray(e.messages))return null;let t=ni(this.agentId,this.selected.id,e.id,e.generation);return this.store.workCenterActionMessages[t]?null:this.store.loadWorkItemActionMessages(this.selected.id,e.id,e.generation,null,this.agentId).catch(()=>null)},showItemsPane({syncUrl:e=!0}={}){this.saveComposerDraft(),this.narrowPane="items",this.selectedId=null,this.contentPanelOpen=!1,this.resetContentStack(),this.composerTargetValue="coordinator",this.resetWorkItemComposer(),e&&this.syncWorkCenterUrl()},showActionsPane(){this.contentPanelOpen=!0,this.contentIsActionList?this.syncWorkCenterUrl():this.popContentRef(),this.$nextTick(()=>this.$refs.contentClose?.focus({preventScroll:!0}))},canMessageAction(e){return!e||["done","cancelled"].includes(this.selected?.status)?!1:["idle","ready","running","paused","waiting","failed","completed","stopped"].includes(e.status)&&e.admissionStatus!=="blocked"},clearPendingMessageEnvelope({preserveAttachments:e=!1}={}){return!this.selectedId||!this.pendingMessageEnvelope?!1:(this.actionInputRequestGeneration=(Number(this.actionInputRequestGeneration)||0)+1,this.preserveComposerOnEnvelopeClear=!0,this.store.discardWorkCenterMessageEnvelope(this.agentId,this.selectedId)?(e||(this.workItemMessageAttachments=[]),this.workItemMessageError="",this.workItemMessageSending=!1,!0):(this.preserveComposerOnEnvelopeClear=!1,!1))},replyToWaitingPrompt(e=null){this.replyEntryDisabled||e&&!this.canMessageAction(e)||!e&&this.coordinatorThinking||(this.composerTargetValue=e?`action:${e.id}:${e.generation}`:"coordinator",this.staleComposerTarget=null,this.workItemMessageError="",this.saveComposerDraft(),(this.$refs.shell?.clientWidth||window.innerWidth)<=900&&this.closeContentPanel(),this.$nextTick(()=>{let t=this.$refs.workItemComposer?.getTextarea?.();t?.scrollIntoView?.({block:"nearest"}),t?.focus?.()}))},chooseCoordinatorTarget(){this.pendingMessageEnvelope&&!this.clearPendingMessageEnvelope({preserveAttachments:!0})||(this.composerTargetValue="coordinator",this.staleComposerTarget=null,this.saveComposerDraft())},onComposerTargetChange(){this.pendingMessageEnvelope&&!this.clearPendingMessageEnvelope({preserveAttachments:!0})||(this.staleComposerTarget=this.composerTargetAction==null&&this.composerTargetValue!=="coordinator"?this.composerTargetValue:null,this.saveComposerDraft())},loadEarlierActionMessages(){return!this.selected?.id||!this.selectedAction?.id||this.actionMessagesNextCursor==null?null:this.store.loadWorkItemActionMessages(this.selected.id,this.selectedAction.id,this.selectedAction.generation,this.actionMessagesNextCursor,this.agentId).catch(()=>null)},actionExecutor(e){return e?.assignedVp?.name||e?.assignedVp?.id||e?.requiredRole||e?.assignmentPolicy?.fixedVpId||e?.assignmentPolicy?.capability||this.tr("workCenter.assignment.auto","Auto")},actionContentSummary(e){return String(e?.contentSummary||e?.response||e?.brief?.objective||"").trim()},executionStats(e){return e?.executionStats||{}},formatCount(e){return new Intl.NumberFormat().format(Math.max(0,Number(e)||0))},formatTokens(e){let t=Math.max(0,Number(e)||0);return t>=1e6?`${(t/1e6).toFixed(1)}m`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)},resetCreateExecutionContext(e,{keepOpen:t=!1}={}){let s=this.workDirTouched||this.startTouched,n=this.store.workCenterCreateDraft;n&&(this.store.workCenterCreateDraft={sourceAgentId:e||null,requirement:n.requirement||n.goal||n.title||"",workDir:"",deliveryTarget:n.deliveryTarget||"",deliveryInstructions:n.deliveryInstructions||"",origin:null,linkedSessionIds:[]}),this.createAttachments=[],this.createAttachmentError="",this.form.workDir="",this.form.start=!0,this.form.scheduled=!1,this.form.scheduleDraft=Dr(),this.scheduleDraftStarted=!1,this.createError="",this.workDirTouched=!1,this.startTouched=!1,s&&!t&&(this.createOpen=!1),this.applyCreateDefaults()},applyCreateDefaults(){this.createOpen&&(!this.workDirTouched&&!this.form.workDir.trim()&&(this.form.workDir=this.createDefaultWorkDir),this.startTouched||(this.form.start=this.createDefaultStart))},folderPickerInitialDir(){return this.form.workDir.trim()||this.createDefaultWorkDir},folderPickerSetWorkDir(e){this.form.workDir=e,this.workDirTouched=!0},onCreateWorkDirInput(){this.workDirTouched=!0},setExecutionMode(e){e==="scheduled"&&!this.scheduleDraftStarted&&(this.form.scheduleDraft=Dr(),this.scheduleDraftStarted=!0),this.form.scheduled=e==="scheduled",this.form.start=e==="now",this.startTouched=!0},scheduleStatusLabel(e){return this.$t("workCenter.scheduling.status."+(e?.status||"scheduled"))},scheduleSummary(e){if(!e)return"";let t=[this.scheduleStatusLabel(e)];if(e.lastError&&e.status==="scheduled"&&t.push(this.$t("workCenter.scheduling.retrying")),e.recurrence&&t.push(this.$t("workCenter.scheduling."+e.recurrence.frequency)),e.scheduledFor&&!["completed","cancelled"].includes(e.status)){let s=e.recurrence?.timeZone;t.push(new Intl.DateTimeFormat(this.$locale?.value||this.$locale||"en",{timeZone:s,dateStyle:"medium",timeStyle:"short",hour12:!1}).format(e.scheduledFor)),s&&t.push(s.replaceAll("_"," "))}return t.join(" \xB7 ")},async setSelectedScheduleEnabled(e){let t=this.selected?.schedule;if(!this.selected||!t||this.selected.status!=="draft"||this.scheduleSaving)return;let s=this.agentId,n=this.selected.id;this.scheduleSaving=!0,this.scheduleError="";try{await this.store.updateWorkItemSchedule(n,{enabled:e,revision:this.selected.revision},s)}catch(r){this.agentId===s&&this.selectedId===n&&(this.scheduleError=r?.message||String(r))}finally{this.scheduleSaving=!1}},clipboardFiles(e){return Array.from(e?.clipboardData?.items||[]).filter(t=>t?.kind==="file").map(t=>t.getAsFile?.()).filter(Boolean)},clipboardIncludesText(e){return Array.from(e?.clipboardData?.types||[]).some(t=>String(t).toLowerCase().startsWith("text/"))},attachmentUploadName(e,t){let s=String(e?.name||"").trim();if(s)return s;let n={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","application/pdf":".pdf","application/json":".json","text/plain":".txt"};return`${String(e?.type||"").startsWith("image/")?"pasted-image":"pasted-file"}-${Date.now()}-${t+1}${n[e?.type]||""}`},async uploadPendingAttachments(e){let t=new FormData;e.forEach((a,l)=>{t.append("files",a,this.attachmentUploadName(a,l))});let s=Pinia.useAuthStore(),n=s.getActiveToken?.()||s.token||null,r=n?{Authorization:`Bearer ${n}`}:{},i=await fetch("/api/upload",{method:"POST",headers:r,body:t});if(!i.ok)throw new Error(this.tr("workCenter.attachmentsUploadFailed","Attachment upload failed"));let o=await i.json();return Array.isArray(o.files)?o.files:[]},async addCreateAttachments(e){if(!this.workItemAttachmentsSupported){this.createAttachmentError=this.tr("workCenter.attachmentsUnsupported","The selected Agent does not support Work Item attachments.");return}let t=Math.max(0,10-this.createAttachments.length),s=Array.from(e||[]).slice(0,t);if(s.length===0)return;let n=this.createGeneration;this.createAttachmentUploadCount+=1,this.attachmentsUploading=!0,this.createAttachmentError="";try{let r=await this.uploadPendingAttachments(s);if(!this.createOpen||this.createGeneration!==n)return;this.createAttachments=[...this.createAttachments,...r].slice(0,10)}catch(r){this.createOpen&&this.createGeneration===n&&(this.createAttachmentError=r?.message||String(r))}finally{this.createGeneration===n&&(this.createAttachmentUploadCount=Math.max(0,this.createAttachmentUploadCount-1),this.attachmentsUploading=this.createAttachmentUploadCount>0)}},async onCreateAttachmentInput(e){let t=Array.from(e.target.files||[]);e.target.value="",await this.addCreateAttachments(t)},async onCreateRequirementPaste(e){let t=this.clipboardFiles(e);t.length!==0&&(this.clipboardIncludesText(e)||e.preventDefault(),await this.addCreateAttachments(t))},removeCreateAttachment(e){this.createAttachments=this.createAttachments.filter((t,s)=>s!==e)},discardPendingMessageEnvelope(){this.clearPendingMessageEnvelope()&&this.saveComposerDraft()},async addWorkItemMessageAttachments(e){if(!this.workItemAttachmentsSupported){this.workItemMessageError=this.tr("workCenter.attachmentsUnsupported","The selected Agent does not support Work Item attachments.");return}if(!e.length)return;let t=this.workItemComposerScope;if(!t)return;let s=this.pendingEnvelopeAttachmentRecovery,n=Array.isArray(this.selected?.attachments)?this.selected.attachments.length:0,r=Math.max(0,10-n-(s?0:this.workItemMessageAttachments.length)),i=Array.from(e).slice(0,r);if(i.length===0)return;let o=this.workItemComposerGeneration;this.workItemMessageAttachmentUploadCount+=1,this.workItemMessageAttachmentsUploading=!0,this.workItemMessageError="";try{let a=(await this.uploadPendingAttachments(i)).slice(0,Math.max(0,10-n));if(this.workItemComposerScope!==t||this.workItemComposerGeneration!==o)return;if(s){let l=this.store.replaceWorkCenterMessageEnvelopeAttachments(this.agentId,this.selectedId,a);if(!l)throw new Error(this.tr("workCenter.pendingEnvelopeChanged","The pending request changed; reopen this Work Item and try again."));this.workItemMessageAttachments=[...l.attachments],this.workItemMessageError=""}else this.workItemMessageAttachments=[...this.workItemMessageAttachments,...a].slice(0,Math.max(0,10-n)),this.saveComposerDraft()}catch(a){this.workItemComposerScope===t&&this.workItemComposerGeneration===o&&(this.workItemMessageError=a?.message||String(a))}finally{this.workItemComposerScope===t&&this.workItemComposerGeneration===o&&(this.workItemMessageAttachmentUploadCount=Math.max(0,this.workItemMessageAttachmentUploadCount-1),this.workItemMessageAttachmentsUploading=this.workItemMessageAttachmentUploadCount>0)}},async onWorkItemMessageAttachmentInput(e){let t=Array.from(e.target.files||[]);e.target.value="",await this.addWorkItemMessageAttachments(t)},async onWorkItemMessagePaste(e){let t=this.clipboardFiles(e);t.length!==0&&(this.clipboardIncludesText(e)||e.preventDefault(),await this.addWorkItemMessageAttachments(t))},removeWorkItemMessageAttachment(e){this.workItemMessageAttachments=this.workItemMessageAttachments.filter((t,s)=>s!==e),this.saveComposerDraft()},async previewAttachment(e,t=null){if(!this.selected?.id||!e?.id||this.previewingAttachmentId)return;let s=this.agentId,n=this.selected.id,r=this.selectedActionId||"",i=`${s}:${n}:${r}`,o=(Number(this.attachmentPreviewGeneration)||0)+1;this.attachmentPreviewGeneration=o;let a=()=>this.attachmentPreviewGeneration===o&&`${this.agentId}:${this.selected?.id||""}:${this.selectedActionId||""}`===i,l=e.isImage?null:window.open("","_blank");if(!e.isImage&&!l){this.attachmentPreviewError=this.tr("workCenter.attachmentOpenBlocked","The browser blocked the attachment window. Allow pop-ups and try again.");return}l&&(l.opener=null),this.previewingAttachmentId=e.id,this.attachmentPreviewError="";try{let c=await this.store.previewWorkItemAttachment(n,e.id,s);if(!a()){l?.close();return}c?.preview&&c.attachment?.isImage?Fs(c.preview,{alt:e.name||this.tr("workCenter.previewAttachment","Open attachment"),closeLabel:this.tr("common.close","Close"),trigger:t}):c?.preview&&l?l.location.replace(c.preview):l?.close()}catch(c){l?.close(),a()&&(this.attachmentPreviewError=c?.message||this.tr("workCenter.attachmentPreviewFailed","Could not open the attachment. Try again."))}finally{a()&&(this.previewingAttachmentId=null)}},isExternalOutput(e){return["link","pr"].includes(e?.kind)&&/^https?:\/\//i.test(String(e?.ref||""))},formatAttachmentSize(e){let t=Math.max(0,Number(e)||0);return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(1)} MB`},async focusCustomDeliveryInput(){await this.$nextTick(),await this.$nextTick(),this.createOpen&&this.customDeliveryTarget&&this.$refs.customDeliveryInput?.focus()},async loadDeliveryInstructionOptions(){let e=this.agentId,t=++this.deliveryInstructionsGeneration;if(e)try{let s=await this.store.loadWorkCenterDeliveryInstructions(e);this.agentId===e&&this.deliveryInstructionsGeneration===t&&(this.deliveryInstructionOptions=s)}catch{this.agentId===e&&this.deliveryInstructionsGeneration===t&&(this.deliveryInstructionOptions=[])}},selectCreateAgent(e){this.saving||e===this.agentId||!this.onlineAgents.some(t=>t.id===e)||(this.createAgentSelection=e,this.selectWorkCenterAgent(e))},openCreate(){this.agentId&&(this.mobileNavigation&&(this.sidebarExpanded=!1),this.createGeneration=(Number(this.createGeneration)||0)+1,this.createAttachmentUploadCount=0,this.attachmentsUploading=!1,this.createOpen=!0,this.workDirTouched=!1,this.startTouched=!1,this.createAttachmentError="",this.applyCreateDefaults(),this.loadDeliveryInstructionOptions(),this.$nextTick(()=>this.$refs.createRequirement?.focus()))},closeCreate(){this.saving||(this.createGeneration=(Number(this.createGeneration)||0)+1,this.createAttachmentUploadCount=0,this.attachmentsUploading=!1,this.closeFolderPicker(),this.createOpen=!1,this.createAttachments=[],this.createAttachmentError="",this.createError="",this.store.workCenterCreateDraft=null)},async submitCreate(){let e=String(this.form.requirement||this.form.goal||this.form.title||"").trim();if(this.saving||this.attachmentsUploading||!this.agentId||!e||!this.form.workDir.trim()||this.customDeliveryTarget&&!this.form.deliveryInstructions.trim())return;let t=this.form.scheduled?tr(this.form.scheduleDraft):{};if(t.error||t.recurrence&&!this.recurringSchedulesSupported)return;this.createError="";let s=this.agentId,n=(Number(this.createGeneration)||0)+1;this.createGeneration=n,this.saving=!0;try{let r=this.store.workCenterCreateDraft,i=r?.sourceAgentId===s,o=await this.store.createWorkItem({requirement:e,title:e.replace(/\s+/g," ").slice(0,80),titleSource:"coordinator_pending",goal:e,acceptanceCriteria:[],workItemType:"auto",workDir:this.form.workDir.trim(),deliveryTarget:this.customDeliveryTarget?null:this.form.deliveryTarget||null,deliveryInstructions:this.form.deliveryInstructions.trim()||null,origin:i&&r.origin||null,linkedSessionIds:i?r.linkedSessionIds||[]:[],attachments:this.workItemAttachmentsSupported?(this.createAttachments||[]).map(a=>({fileId:a.fileId,name:a.name,mimeType:a.mimeType,size:a.size})):[],reuseMemory:!0,start:this.form.scheduled?!1:this.form.start,scheduledFor:t.scheduledFor||null,recurrence:t.recurrence||null},s);if(this.agentId!==s||this.createGeneration!==n)return;this.openWorkItem(o.id),this.form={requirement:"",workDir:"",deliveryTarget:"",deliveryInstructions:"",start:this.settings?.startImmediately!==!1,scheduled:!1,scheduleDraft:Dr()},this.customDeliveryTarget=!1,this.store.workCenterCreateDraft=null,this.createAttachments=[],this.workDirTouched=!1,this.startTouched=!1,this.scheduleDraftStarted=!1,this.createOpen=!1}catch(r){this.agentId===s&&this.createGeneration===n&&(this.createError=r?.message||String(r))}finally{this.agentId===s&&this.createGeneration===n&&(this.saving=!1)}},async startSelected(){this.selected&&await this.store.startWorkItem(this.selected.id,this.agentId)},async sendSelectedWorkItemMessage(){if(!this.selected||!this.composerCanSend)return;let e=this.workItemComposerScope,t=this.composerTargetValue,s=this.composerTargetAction;if(!this.composerTargetIsCoordinator&&!s)return;let n=this.selected.id,r=this.selected.revision,i=this.workItemMessage.trim(),o=Yt(this.workItemMessageQuote),a=this.workItemMessageAttachments.map(c=>({fileId:c.fileId,name:c.name,mimeType:c.mimeType,size:c.size})),l=(Number(this.actionInputRequestGeneration)||0)+1;this.actionInputRequestGeneration=l,this.workItemMessageSending=!0,this.workItemMessageError="",this.saveComposerDraft();try{let c={planRevision:this.selected.planRevision,ledgerRevision:this.selected.ledgerRevision,coordinatorRevision:this.selected.coordinatorRevision};this.canonicalMessageWireSupported?await this.store.postWorkItemMessage(n,i,s?{kind:"action",actionId:s.id,generation:s.generation}:{kind:"coordinator"},r,a,this.agentId,c,o):s?await this.store.sendWorkItemActionInput(n,i,s.id,r,s.generation,a,this.agentId,o):await this.store.sendWorkItemMessage(n,i,r,a,this.agentId,c,o),this.workItemComposerScope===e&&this.actionInputRequestGeneration===l&&this.composerTargetValue===t&&this.workItemMessage.trim()===i&&!this.store.loadWorkCenterMessageEnvelope(this.agentId,n)&&(this.workItemMessage="",this.workItemMessageQuote=null,this.workItemMessageAttachments=[],this.store.removeWorkCenterComposerDraft(this.agentId,n))}catch(c){if(this.workItemComposerScope===e&&this.actionInputRequestGeneration===l)if(c?.code==="WORK_CENTER_INPUT_STALE"){if(this.clearPendingMessageEnvelope({preserveAttachments:!0}),await this.$nextTick(),this.workItemComposerScope!==e)return;this.workItemMessageError=this.$t("workCenter.inputStale"),this.saveComposerDraft(),this.store.getWorkItem(n,this.agentId).catch(()=>{})}else this.workItemMessageError=c?.message||String(c),this.saveComposerDraft()}finally{this.workItemComposerScope===e&&this.actionInputRequestGeneration===l&&(this.workItemMessageSending=!1)}},workItemCanDelete(e){return["done","cancelled","draft","needs_attention"].includes(e?.status)},workItemDeleting(e){return!!this.deletingWorkItemIds[e?.id]},async deleteWorkItem(e){if(!e||this.workItemDeleting(e))return;let t=this.tr("workCenter.deleteConfirm","Permanently delete this Work Item, its execution history, and attachments?");if(await st(t,{destructive:!0})){this.deleteWorkItemError="",this.deletingWorkItemIds={...this.deletingWorkItemIds,[e.id]:!0};try{let s=await this.store.deleteWorkItem(e.id,e.revision,this.agentId);s?.cleanupWarning&&(this.deleteWorkItemError=s.cleanupWarning),this.selectedId===e.id&&this.showItemsPane()}catch(s){this.deleteWorkItemError=s?.message||String(s)}finally{let s={...this.deletingWorkItemIds};delete s[e.id],this.deletingWorkItemIds=s}}},async cancelSelected(){if(!this.selected||["done","cancelled"].includes(this.selected.status))return;let e=this.tr("workCenter.cancelConfirm","Stop this work item and its unfinished Actions?");await st(e,{destructive:!0})&&await this.store.cancelWorkItem(this.selected.id,this.agentId)},async resumeSelected(){!this.selected||this.selected.status!=="cancelled"||await this.store.resumeWorkItem(this.selected.id,this.selected.revision,this.agentId,this.selected.executionControl?.revision)}},template:`
7141
7132
  <main class="work-center-main" :class="{ 'navigation-open': sidebarExpanded && mobileNavigation }" :aria-label="tr('workCenter.title', 'Work Center')">
@@ -8451,7 +8442,7 @@ ${String(e||"").trim()}
8451
8442
  <p v-if="activity.limited" class="person-activity-limited">{{ $t('person.activity.limited') }}</p>
8452
8443
  </template>
8453
8444
  </component>
8454
- `}});var Pn,Qp,Zp,Xp,Bw,w1,Hw,Jp=F(()=>{Nw();$i();Pn=e=>Number.isFinite(e)&&e>=0,Qp=e=>Pn(e)?e.toLocaleString():"\u2014",Zp=e=>Pn(e?.inputTotalTokens)?"inputTotalTokens":"inputTokens",Xp=e=>["reasoningTokens","cacheReadTokens","cacheWriteTokens"].filter(t=>Pn(e?.[t])&&e[t]>0),Bw=e=>Pn(e)?e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e/1e3)%60}s`:"\u2014",w1=e=>{let t=e.loopCount??e.loops??e.callCount;return Pn(t)?t:e.callsTruncated?null:e.calls.length},Hw={name:"PersonTurnUsage",components:{PersonInspectorList:tn,PersonActivity:Vw},props:{activity:Object,episodeId:String,page:Object,disabled:Boolean,identityKey:{default:""}},emits:["refresh","more"],setup(e){let t=Vue.computed(()=>Ei(e.page.items)),s=Vue.ref(null);return Vue.watch([()=>e.episodeId,()=>t.value.some(u=>u.id===e.episodeId)],async([u,p],f=[])=>{!u||!p||u===f[0]&&f[1]||(await Vue.nextTick(),e.episodeId===u&&s.value?.focusRow(t.value.findIndex(g=>g.id===u)))},{immediate:!0}),{list:s,entries:t,estimate:()=>160,known:Pn,number:Qp,time:u=>u?new Date(u).toLocaleString():"",statusKey:u=>["running","completed","failed","cancelled","interrupted","budget_exhausted","rejected"].includes(u)?u:"unknown",input:Zp,extras:Xp,capabilities:u=>Array.isArray(u.capabilities)?u.capabilities:u.capability?[u.capability]:[],loops:w1}},template:`
8445
+ `}});var Pn,Qp,Zp,Xp,Bw,wT,Hw,Jp=F(()=>{Nw();$i();Pn=e=>Number.isFinite(e)&&e>=0,Qp=e=>Pn(e)?e.toLocaleString():"\u2014",Zp=e=>Pn(e?.inputTotalTokens)?"inputTotalTokens":"inputTokens",Xp=e=>["reasoningTokens","cacheReadTokens","cacheWriteTokens"].filter(t=>Pn(e?.[t])&&e[t]>0),Bw=e=>Pn(e)?e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e/1e3)%60}s`:"\u2014",wT=e=>{let t=e.loopCount??e.loops??e.callCount;return Pn(t)?t:e.callsTruncated?null:e.calls.length},Hw={name:"PersonTurnUsage",components:{PersonInspectorList:tn,PersonActivity:Vw},props:{activity:Object,episodeId:String,page:Object,disabled:Boolean,identityKey:{default:""}},emits:["refresh","more"],setup(e){let t=Vue.computed(()=>Ei(e.page.items)),s=Vue.ref(null);return Vue.watch([()=>e.episodeId,()=>t.value.some(u=>u.id===e.episodeId)],async([u,p],f=[])=>{!u||!p||u===f[0]&&f[1]||(await Vue.nextTick(),e.episodeId===u&&s.value?.focusRow(t.value.findIndex(g=>g.id===u)))},{immediate:!0}),{list:s,entries:t,estimate:()=>160,known:Pn,number:Qp,time:u=>u?new Date(u).toLocaleString():"",statusKey:u=>["running","completed","failed","cancelled","interrupted","budget_exhausted","rejected"].includes(u)?u:"unknown",input:Zp,extras:Xp,capabilities:u=>Array.isArray(u.capabilities)?u.capabilities:u.capability?[u.capability]:[],loops:wT}},template:`
8455
8446
  <section id="person-turns" class="person-journal person-turn-usage" :aria-label="$t('person.turns')" :aria-busy="page.loading">
8456
8447
  <div class="person-journal-toolbar">
8457
8448
  <span class="person-muted">{{ $t('person.usage.scope') }}</span>
@@ -8678,7 +8669,7 @@ ${String(e||"").trim()}
8678
8669
  </div>
8679
8670
  </section>
8680
8671
  </div>
8681
- `}});function Yw(e,t=[]){let s=[...t,...e];if(s.length>ef.count||s.reduce((n,r)=>n+r.size,0)>ef.totalBytes)throw new Error("person.filesLimit");for(let n of e){if(!n.size||n.size>ef.fileBytes)throw new Error("person.filesLimit");let r="."+String(n.name).split(".").at(-1).toLowerCase();if(!tf.split(",").includes(r))throw new Error("person.filesUnsupported")}}async function Qw(e,t,s){let n=new FormData;for(let a of e)n.append("files",a,a.name);let r=t.getActiveToken?.()||t.token,i=await fetch("/api/upload",{method:"POST",body:n,signal:s,headers:r?{Authorization:`Bearer ${r}`}:{}});if(!i.ok)throw new Error("person.filesFailed");let o=await i.json();if(!Array.isArray(o.files)||o.files.length!==e.length||o.files.some(a=>typeof a.fileId!="string"||!a.fileId))throw new Error("person.filesFailed");return o.files}var ef,tf,Zw=F(()=>{ef=Object.freeze({count:4,fileBytes:5242880,totalBytes:10485760}),tf=".txt,.md,.markdown,.csv,.tsv,.json,.js,.mjs,.cjs,.ts,.tsx,.jsx,.py,.rb,.go,.rs,.java,.c,.h,.cpp,.hpp,.cs,.sh,.bash,.zsh,.ps1,.sql,.html,.css,.xml,.yaml,.yml,.toml,.ini,.log,.png,.jpg,.jpeg,.webp,.gif"});function nS(e){if(typeof e!="string")return{parsed:!1,value:null};try{return{parsed:!0,value:JSON.parse(e)}}catch{return{parsed:!1,value:null}}}function Ht(e,t,s){Rt(s)&&e.push({label:t,text:s})}function C1(e,t){let s=St(t)&&tS.get(t.kind);s&&(Rt(t.text)?Ht(e,s,t.text):s!=="input"&&e.push({label:s}))}function rS(e,t){for(let s of ra(t)){if(!St(s))continue;let n=s.role==="user"?"user_message":s.role==="assistant"?"person_message":null;n&&Ht(e,n,s.text)}}function of(e,t){for(let s of ra(t)){if(!St(s)||!Rt(s.statement))continue;let n=S1.has(s.epistemicState)?s.epistemicState:"uncertain";e.push({label:`concept_${n}`,text:s.statement})}}function iS(e,t){St(t)&&(Ht(e,"state_summary",t.summary),Ht(e,"appraisal",t.appraisal),St(t.continuation)&&(Ht(e,"continuation_goal",t.continuation.goal),Ht(e,"continuation_step",t.continuation.nextStep),Ht(e,"continuation_condition",t.continuation.condition)))}function oS(e,t){if(!St(t))return;Ht(e,"decision_summary",t.summary),Ht(e,"self_check",t.selfCheck);let s=ra(t.uncertainties).filter(Rt);s.length&&e.push({label:"uncertainties",items:s})}function aS(e){let t=[];return St(e?.activity)&&Ht(t,"activity_summary",e.activity.summary),oS(t,e?.decision),t}function lS(e){if(!St(e))return[];let t=aS(e);return of(t,e.concepts),iS(t,e.state),Ht(t,"reply",e.reply),St(e.next)&&Ht(t,"next_reason",e.next.reason),t}function cS(e){let t=[];return St(e)&&(e.kind==="messages"&&rS(t,e.items),e.kind==="concepts"&&of(t,e.items)),t}function Sc(e,t,s,n=160){Rt(s)&&Ht(e,t,s.length>n?`${s.slice(0,n)}\u2026`:s)}function Xw(e,t){Number.isSafeInteger(t)&&t>0&&Ht(e,"capability_version",String(t))}function rf(e,t,s=!1,n=t?.code){if(e!=="Capability.create"&&!nf(e))return null;let r=[];if(s||t?.ok===!1)return Sc(r,"capability_name",e),r.push({label:I1.get(n)||"capability_failure_unknown"}),{kind:"capability_failed",sections:r};if(!St(t)||t.ok!==!0)return null;if(e==="Capability.create"){if(t.published!==!0||!St(t.contract)||!nf(t.contract.id))return null;r.push({label:"capability_published"}),Sc(r,"capability_name",t.contract.id),Sc(r,"capability_description",t.contract.description,600),Xw(r,t.contract.version);let i=t.evidence?.testsPassed;return Number.isSafeInteger(i)&&i>=0&&Ht(r,"capability_tests_passed",String(i)),r.push({label:"capability_tests_limit"}),{kind:"capability_created",sections:r}}return r.push({label:"script_succeeded"}),Sc(r,"capability_name",e),Xw(r,t.version),{kind:"script_executed",sections:r}}function A1(e){let t=ra(e.request?.messages)[0];if(!St(t)||t.role!=="user")return[];let{value:s}=nS(t.content);if(!St(s))return[];let n=[];C1(n,s.trigger),iS(n,s.state),rS(n,s.messages),of(n,s.concepts),n.push(...lS(s.previousProposal).map(i=>({...i,scope:"previous_candidate"})));let r=s.previousProposal?.next?.capability?.id;if(r==="Recall")n.push(...cS(s.capabilityResult).map(i=>({...i,scope:"recalled"})));else{let i=rf(r,s.capabilityResult);i&&n.push(...i.sections.map(o=>({...o,scope:"capability_recorded"})))}return n}function x1(e){return St(e)&&Number.isSafeInteger(e.baseStateVersion)&&St(e.activity)&&Rt(e.activity.summary)&&St(e.decision)&&Rt(e.decision.summary)&&Rt(e.decision.selfCheck)&&Array.isArray(e.decision.uncertainties)&&Array.isArray(e.concepts)&&St(e.state)&&Rt(e.state.summary)&&typeof e.state.appraisal=="string"&&(e.reply===null||typeof e.reply=="string")&&(e.next===null||St(e.next)&&Rt(e.next.reason))}function eS(e){let t=St(e.output)?e.output:{},{parsed:s,value:n}=nS(t.text),r=lS(n),i=e.kind==="call_failed"||t.complete===!1||t.accepted===!1||r.length>0&&!x1(n),o=i||!r.length;if(o){let a=!s&&typeof t.text=="string"&&/[{}[\]]|```|^\s*"/.test(t.text),l=Rt(t.text)?a?"structured_unavailable":i?"incomplete":"unstructured":"unavailable";r.unshift(!s&&!a&&Rt(t.text)?{label:l,text:t.text}:{label:l})}return{sections:r,incomplete:o}}function T1(e){let t=new Set,s=ra(e).filter(p=>{if(!St(p)||!Rt(p.id)||!Rt(p.episodeId))return!1;let f=JSON.stringify([p.episodeId,p.id]);return t.has(f)?!1:(t.add(f),!0)}).sort((p,f)=>Number.isSafeInteger(p.seq)&&Number.isSafeInteger(f.seq)&&p.seq!==f.seq?p.seq-f.seq:(sf(p.createdAt)??0)-(sf(f.createdAt)??0)),n=new Map,r=new Map,i=(p,f)=>Rt(p.callId)&&nf(f?.id)&&Number.isSafeInteger(f.version)?JSON.stringify([p.episodeId,p.callId,f.id,f.version]):null,o=new Set(s.filter(p=>p.kind==="capability_created").map(p=>i(p,p.capabilityManifest)).filter(Boolean)),a=new Map(s.filter(p=>p.kind==="capability_result"&&p.capability?.id==="Capability.create"&&p.result?.published===!0).map(p=>[i(p,p.result?.contract),p.result]));for(let p of s){let f=Cc(p);if(f&&["committed","proposal_rejected","call_failed"].includes(p.kind)){let g=n.get(f)||new Set;g.add(p.kind),n.set(f,g)}if(["call_output","call_failed"].includes(p.kind)&&Jw(p)){let g=eS(p);f&&r.set(f,[...r.get(f)||[],...g.sections])}}let l=(p,f=!1)=>{let g=n.get(Cc(p));return g?.has("proposal_rejected")?"rejected":f||g?.has("call_failed")?"incomplete":g?.has("committed")?"committed":"candidate"},c=(p,f)=>{let g=r.get(Cc(p))||[];return f.filter(v=>!g.some(h=>JSON.stringify(h)===JSON.stringify(v)))},d=[],u=(p,f,g,v=[])=>{let h=sf(p.createdAt);d.push({id:p.id,episodeId:p.episodeId,...Rt(p.callId)?{callId:p.callId}:{},createdAt:h===null?null:new Date(h).toISOString(),kind:f,status:g,sections:v})};for(let p of s)if(p.kind==="accepted"){let f=St(p.trigger)&&tS.get(p.trigger.kind);if(!f)continue;let g=[];Ht(g,f,p.trigger.text),u(p,f,"recorded",g)}else if(p.kind==="call_started"){if(p.manifest?.protocol==="native-tool-loop")continue;let f=A1(p);f.length&&u(p,"context","recorded",f)}else if(p.kind==="call_output"||p.kind==="call_failed"){if(!Jw(p))continue;let{sections:f,incomplete:g}=eS(p);u(p,"thought",l(p,g),f)}else if(p.kind==="activity"){let f=c(p,aS(p));f.length&&u(p,"activity",l(p),f)}else if(p.kind==="capability_created"){let f=p.capabilityManifest;if(p.capabilityId!==f?.id)continue;let g=a.get(i(p,f)),v=rf("Capability.create",{ok:!0,published:!0,contract:{...f,description:g?.contract?.description},evidence:p.evidence});v&&u(p,v.kind,"recorded",v.sections)}else if(p.kind==="capability_result"||p.kind==="capability_failed"){if(p.capability?.id==="Capability.create"&&o.has(i(p,p.result?.contract)))continue;if(p.kind==="capability_result"&&p.capability?.id==="Recall"){let f=cS(p.result);f.length&&u(p,"memory","recorded",f)}else{let f=p.kind==="capability_failed",g=rf(f?p.capabilityId:p.capability?.id,p.result,f,p.code??p.result?.code);g&&u(p,g.kind,"recorded",g.sections)}}else if(p.kind==="proposal_rejected")r.has(Cc(p))||u(p,"rejected","rejected");else if(sS.has(p.kind)){let f=[];p.kind==="committed"&&oS(f,p.decision),u(p,p.kind,p.kind==="committed"?"committed":"recorded",c(p,f))}return d}function dS(e){let t=new Map,s=T1(e);for(let[n,r]of s.entries()){if(["context","memory"].includes(r.kind))continue;let i=t.get(r.episodeId);i||(i={id:r.episodeId,episodeId:r.episodeId,kind:"episode",status:"candidate",createdAt:r.createdAt,sections:[],outcomes:[],trigger:null,thoughts:[],terminal:null},t.set(r.episodeId,i)),i.rank=n,r.createdAt&&(i.createdAt=r.createdAt),["input","think","dream"].includes(r.kind)?(i.kind=r.kind,i.trigger=r):["thought","activity","rejected"].includes(r.kind)?i.thoughts.push({...r,rank:n}):sS.has(r.kind)?i.terminal=r:["capability_created","script_executed","capability_failed"].includes(r.kind)&&i.outcomes.push({...r,rank:n})}return[...t.values()].sort((n,r)=>n.rank-r.rank).map(n=>{let i=n.thoughts.filter(a=>a.status==="committed").at(-1)||(n.terminal?.kind==="committed"?n.terminal:n.thoughts.at(-1)),o=n.terminal?.kind;return{id:n.id,episodeId:n.episodeId,kind:n.kind,createdAt:n.createdAt,status:o||i?.status||"recorded",candidateStatus:i&&i.status!=="committed"?i.status:null,sections:[...n.trigger?.sections||[],...i?.sections||[]],outcomes:n.outcomes,history:n.thoughts.filter(a=>a!==i)}})}var St,Rt,ra,tS,S1,sS,nf,I1,Jw,Cc,sf,uS=F(()=>{St=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Rt=e=>typeof e=="string"&&!!e.trim(),ra=e=>Array.isArray(e)?e:[],tS=new Map([["send","input"],["think","think"],["dream","dream"]]),S1=new Set(["reported","hypothesis","imagined","uncertain"]),sS=new Set(["committed","cancelled","failed","interrupted","budget_exhausted"]);nf=e=>Rt(e)&&e.startsWith("Script.")&&Rt(e.slice(7)),I1=new Map([["SCRIPT_TEST_FAILED","script_test_failed"],["SCRIPT_EXECUTION","script_execution_failed"],["SCRIPT_TIMEOUT","script_timeout"],["SCRIPT_OUTPUT","script_output_invalid"],["SCRIPT_VERSION","script_version_unavailable"],["SCRIPT_BUSY","script_busy"]]);Jw=e=>e.output?.protocol==null||e.output.protocol==="cognition";Cc=e=>Rt(e.callId)?JSON.stringify([e.episodeId,e.callId]):null,sf=e=>{if(!(typeof e=="string"||typeof e=="number"||e instanceof Date))return null;let t=new Date(e).getTime();return Number.isFinite(t)?t:null}});var pS,fS=F(()=>{uS();$i();pS={name:"PersonThoughtJournal",components:{PersonInspectorList:tn},props:{traces:{type:Array,default:()=>[]},loading:Boolean,error:Boolean,stale:Boolean,more:Boolean,disabled:Boolean,identityKey:{default:""},pageToken:[String,Number]},emits:["refresh","more","turn"],setup(e){let t=Vue.computed(()=>dS(e.traces).reverse()),s=Vue.reactive(new Map),n=Vue.reactive(new Map);Vue.watch(()=>e.identityKey,()=>{s.clear(),n.clear()});let r=d=>[...d.history,...d.outcomes].sort((u,p)=>(p.rank??0)-(u.rank??0));return{entries:t,time:d=>d?new Date(d).toLocaleString():"",estimate:d=>Math.min(1400,90+d.sections.reduce((u,p)=>u+40+Math.ceil((p.text?.length||0)/55)*20+(p.items?.length||0)*30,0)),evidenceOpen:s,evidence:r,visibleEvidence:d=>r(d).slice(0,n.get(d.id)||10),toggleEvidence:(d,u)=>{s.set(d,u.target.open)},moreEvidence:d=>{n.set(d,(n.get(d)||10)+10)}}},template:`
8672
+ `}});function Yw(e,t=[]){let s=[...t,...e];if(s.length>ef.count||s.reduce((n,r)=>n+r.size,0)>ef.totalBytes)throw new Error("person.filesLimit");for(let n of e){if(!n.size||n.size>ef.fileBytes)throw new Error("person.filesLimit");let r="."+String(n.name).split(".").at(-1).toLowerCase();if(!tf.split(",").includes(r))throw new Error("person.filesUnsupported")}}async function Qw(e,t,s){let n=new FormData;for(let a of e)n.append("files",a,a.name);let r=t.getActiveToken?.()||t.token,i=await fetch("/api/upload",{method:"POST",body:n,signal:s,headers:r?{Authorization:`Bearer ${r}`}:{}});if(!i.ok)throw new Error("person.filesFailed");let o=await i.json();if(!Array.isArray(o.files)||o.files.length!==e.length||o.files.some(a=>typeof a.fileId!="string"||!a.fileId))throw new Error("person.filesFailed");return o.files}var ef,tf,Zw=F(()=>{ef=Object.freeze({count:4,fileBytes:5242880,totalBytes:10485760}),tf=".txt,.md,.markdown,.csv,.tsv,.json,.js,.mjs,.cjs,.ts,.tsx,.jsx,.py,.rb,.go,.rs,.java,.c,.h,.cpp,.hpp,.cs,.sh,.bash,.zsh,.ps1,.sql,.html,.css,.xml,.yaml,.yml,.toml,.ini,.log,.png,.jpg,.jpeg,.webp,.gif"});function nS(e){if(typeof e!="string")return{parsed:!1,value:null};try{return{parsed:!0,value:JSON.parse(e)}}catch{return{parsed:!1,value:null}}}function Ht(e,t,s){Rt(s)&&e.push({label:t,text:s})}function CT(e,t){let s=St(t)&&tS.get(t.kind);s&&(Rt(t.text)?Ht(e,s,t.text):s!=="input"&&e.push({label:s}))}function rS(e,t){for(let s of ra(t)){if(!St(s))continue;let n=s.role==="user"?"user_message":s.role==="assistant"?"person_message":null;n&&Ht(e,n,s.text)}}function of(e,t){for(let s of ra(t)){if(!St(s)||!Rt(s.statement))continue;let n=ST.has(s.epistemicState)?s.epistemicState:"uncertain";e.push({label:`concept_${n}`,text:s.statement})}}function iS(e,t){St(t)&&(Ht(e,"state_summary",t.summary),Ht(e,"appraisal",t.appraisal),St(t.continuation)&&(Ht(e,"continuation_goal",t.continuation.goal),Ht(e,"continuation_step",t.continuation.nextStep),Ht(e,"continuation_condition",t.continuation.condition)))}function oS(e,t){if(!St(t))return;Ht(e,"decision_summary",t.summary),Ht(e,"self_check",t.selfCheck);let s=ra(t.uncertainties).filter(Rt);s.length&&e.push({label:"uncertainties",items:s})}function aS(e){let t=[];return St(e?.activity)&&Ht(t,"activity_summary",e.activity.summary),oS(t,e?.decision),t}function lS(e){if(!St(e))return[];let t=aS(e);return of(t,e.concepts),iS(t,e.state),Ht(t,"reply",e.reply),St(e.next)&&Ht(t,"next_reason",e.next.reason),t}function cS(e){let t=[];return St(e)&&(e.kind==="messages"&&rS(t,e.items),e.kind==="concepts"&&of(t,e.items)),t}function Sc(e,t,s,n=160){Rt(s)&&Ht(e,t,s.length>n?`${s.slice(0,n)}\u2026`:s)}function Xw(e,t){Number.isSafeInteger(t)&&t>0&&Ht(e,"capability_version",String(t))}function rf(e,t,s=!1,n=t?.code){if(e!=="Capability.create"&&!nf(e))return null;let r=[];if(s||t?.ok===!1)return Sc(r,"capability_name",e),r.push({label:IT.get(n)||"capability_failure_unknown"}),{kind:"capability_failed",sections:r};if(!St(t)||t.ok!==!0)return null;if(e==="Capability.create"){if(t.published!==!0||!St(t.contract)||!nf(t.contract.id))return null;r.push({label:"capability_published"}),Sc(r,"capability_name",t.contract.id),Sc(r,"capability_description",t.contract.description,600),Xw(r,t.contract.version);let i=t.evidence?.testsPassed;return Number.isSafeInteger(i)&&i>=0&&Ht(r,"capability_tests_passed",String(i)),r.push({label:"capability_tests_limit"}),{kind:"capability_created",sections:r}}return r.push({label:"script_succeeded"}),Sc(r,"capability_name",e),Xw(r,t.version),{kind:"script_executed",sections:r}}function AT(e){let t=ra(e.request?.messages)[0];if(!St(t)||t.role!=="user")return[];let{value:s}=nS(t.content);if(!St(s))return[];let n=[];CT(n,s.trigger),iS(n,s.state),rS(n,s.messages),of(n,s.concepts),n.push(...lS(s.previousProposal).map(i=>({...i,scope:"previous_candidate"})));let r=s.previousProposal?.next?.capability?.id;if(r==="Recall")n.push(...cS(s.capabilityResult).map(i=>({...i,scope:"recalled"})));else{let i=rf(r,s.capabilityResult);i&&n.push(...i.sections.map(o=>({...o,scope:"capability_recorded"})))}return n}function xT(e){return St(e)&&Number.isSafeInteger(e.baseStateVersion)&&St(e.activity)&&Rt(e.activity.summary)&&St(e.decision)&&Rt(e.decision.summary)&&Rt(e.decision.selfCheck)&&Array.isArray(e.decision.uncertainties)&&Array.isArray(e.concepts)&&St(e.state)&&Rt(e.state.summary)&&typeof e.state.appraisal=="string"&&(e.reply===null||typeof e.reply=="string")&&(e.next===null||St(e.next)&&Rt(e.next.reason))}function eS(e){let t=St(e.output)?e.output:{},{parsed:s,value:n}=nS(t.text),r=lS(n),i=e.kind==="call_failed"||t.complete===!1||t.accepted===!1||r.length>0&&!xT(n),o=i||!r.length;if(o){let a=!s&&typeof t.text=="string"&&/[{}[\]]|```|^\s*"/.test(t.text),l=Rt(t.text)?a?"structured_unavailable":i?"incomplete":"unstructured":"unavailable";r.unshift(!s&&!a&&Rt(t.text)?{label:l,text:t.text}:{label:l})}return{sections:r,incomplete:o}}function TT(e){let t=new Set,s=ra(e).filter(p=>{if(!St(p)||!Rt(p.id)||!Rt(p.episodeId))return!1;let f=JSON.stringify([p.episodeId,p.id]);return t.has(f)?!1:(t.add(f),!0)}).sort((p,f)=>Number.isSafeInteger(p.seq)&&Number.isSafeInteger(f.seq)&&p.seq!==f.seq?p.seq-f.seq:(sf(p.createdAt)??0)-(sf(f.createdAt)??0)),n=new Map,r=new Map,i=(p,f)=>Rt(p.callId)&&nf(f?.id)&&Number.isSafeInteger(f.version)?JSON.stringify([p.episodeId,p.callId,f.id,f.version]):null,o=new Set(s.filter(p=>p.kind==="capability_created").map(p=>i(p,p.capabilityManifest)).filter(Boolean)),a=new Map(s.filter(p=>p.kind==="capability_result"&&p.capability?.id==="Capability.create"&&p.result?.published===!0).map(p=>[i(p,p.result?.contract),p.result]));for(let p of s){let f=Cc(p);if(f&&["committed","proposal_rejected","call_failed"].includes(p.kind)){let g=n.get(f)||new Set;g.add(p.kind),n.set(f,g)}if(["call_output","call_failed"].includes(p.kind)&&Jw(p)){let g=eS(p);f&&r.set(f,[...r.get(f)||[],...g.sections])}}let l=(p,f=!1)=>{let g=n.get(Cc(p));return g?.has("proposal_rejected")?"rejected":f||g?.has("call_failed")?"incomplete":g?.has("committed")?"committed":"candidate"},c=(p,f)=>{let g=r.get(Cc(p))||[];return f.filter(v=>!g.some(h=>JSON.stringify(h)===JSON.stringify(v)))},d=[],u=(p,f,g,v=[])=>{let h=sf(p.createdAt);d.push({id:p.id,episodeId:p.episodeId,...Rt(p.callId)?{callId:p.callId}:{},createdAt:h===null?null:new Date(h).toISOString(),kind:f,status:g,sections:v})};for(let p of s)if(p.kind==="accepted"){let f=St(p.trigger)&&tS.get(p.trigger.kind);if(!f)continue;let g=[];Ht(g,f,p.trigger.text),u(p,f,"recorded",g)}else if(p.kind==="call_started"){if(p.manifest?.protocol==="native-tool-loop")continue;let f=AT(p);f.length&&u(p,"context","recorded",f)}else if(p.kind==="call_output"||p.kind==="call_failed"){if(!Jw(p))continue;let{sections:f,incomplete:g}=eS(p);u(p,"thought",l(p,g),f)}else if(p.kind==="activity"){let f=c(p,aS(p));f.length&&u(p,"activity",l(p),f)}else if(p.kind==="capability_created"){let f=p.capabilityManifest;if(p.capabilityId!==f?.id)continue;let g=a.get(i(p,f)),v=rf("Capability.create",{ok:!0,published:!0,contract:{...f,description:g?.contract?.description},evidence:p.evidence});v&&u(p,v.kind,"recorded",v.sections)}else if(p.kind==="capability_result"||p.kind==="capability_failed"){if(p.capability?.id==="Capability.create"&&o.has(i(p,p.result?.contract)))continue;if(p.kind==="capability_result"&&p.capability?.id==="Recall"){let f=cS(p.result);f.length&&u(p,"memory","recorded",f)}else{let f=p.kind==="capability_failed",g=rf(f?p.capabilityId:p.capability?.id,p.result,f,p.code??p.result?.code);g&&u(p,g.kind,"recorded",g.sections)}}else if(p.kind==="proposal_rejected")r.has(Cc(p))||u(p,"rejected","rejected");else if(sS.has(p.kind)){let f=[];p.kind==="committed"&&oS(f,p.decision),u(p,p.kind,p.kind==="committed"?"committed":"recorded",c(p,f))}return d}function dS(e){let t=new Map,s=TT(e);for(let[n,r]of s.entries()){if(["context","memory"].includes(r.kind))continue;let i=t.get(r.episodeId);i||(i={id:r.episodeId,episodeId:r.episodeId,kind:"episode",status:"candidate",createdAt:r.createdAt,sections:[],outcomes:[],trigger:null,thoughts:[],terminal:null},t.set(r.episodeId,i)),i.rank=n,r.createdAt&&(i.createdAt=r.createdAt),["input","think","dream"].includes(r.kind)?(i.kind=r.kind,i.trigger=r):["thought","activity","rejected"].includes(r.kind)?i.thoughts.push({...r,rank:n}):sS.has(r.kind)?i.terminal=r:["capability_created","script_executed","capability_failed"].includes(r.kind)&&i.outcomes.push({...r,rank:n})}return[...t.values()].sort((n,r)=>n.rank-r.rank).map(n=>{let i=n.thoughts.filter(a=>a.status==="committed").at(-1)||(n.terminal?.kind==="committed"?n.terminal:n.thoughts.at(-1)),o=n.terminal?.kind;return{id:n.id,episodeId:n.episodeId,kind:n.kind,createdAt:n.createdAt,status:o||i?.status||"recorded",candidateStatus:i&&i.status!=="committed"?i.status:null,sections:[...n.trigger?.sections||[],...i?.sections||[]],outcomes:n.outcomes,history:n.thoughts.filter(a=>a!==i)}})}var St,Rt,ra,tS,ST,sS,nf,IT,Jw,Cc,sf,uS=F(()=>{St=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Rt=e=>typeof e=="string"&&!!e.trim(),ra=e=>Array.isArray(e)?e:[],tS=new Map([["send","input"],["think","think"],["dream","dream"]]),ST=new Set(["reported","hypothesis","imagined","uncertain"]),sS=new Set(["committed","cancelled","failed","interrupted","budget_exhausted"]);nf=e=>Rt(e)&&e.startsWith("Script.")&&Rt(e.slice(7)),IT=new Map([["SCRIPT_TEST_FAILED","script_test_failed"],["SCRIPT_EXECUTION","script_execution_failed"],["SCRIPT_TIMEOUT","script_timeout"],["SCRIPT_OUTPUT","script_output_invalid"],["SCRIPT_VERSION","script_version_unavailable"],["SCRIPT_BUSY","script_busy"]]);Jw=e=>e.output?.protocol==null||e.output.protocol==="cognition";Cc=e=>Rt(e.callId)?JSON.stringify([e.episodeId,e.callId]):null,sf=e=>{if(!(typeof e=="string"||typeof e=="number"||e instanceof Date))return null;let t=new Date(e).getTime();return Number.isFinite(t)?t:null}});var pS,fS=F(()=>{uS();$i();pS={name:"PersonThoughtJournal",components:{PersonInspectorList:tn},props:{traces:{type:Array,default:()=>[]},loading:Boolean,error:Boolean,stale:Boolean,more:Boolean,disabled:Boolean,identityKey:{default:""},pageToken:[String,Number]},emits:["refresh","more","turn"],setup(e){let t=Vue.computed(()=>dS(e.traces).reverse()),s=Vue.reactive(new Map),n=Vue.reactive(new Map);Vue.watch(()=>e.identityKey,()=>{s.clear(),n.clear()});let r=d=>[...d.history,...d.outcomes].sort((u,p)=>(p.rank??0)-(u.rank??0));return{entries:t,time:d=>d?new Date(d).toLocaleString():"",estimate:d=>Math.min(1400,90+d.sections.reduce((u,p)=>u+40+Math.ceil((p.text?.length||0)/55)*20+(p.items?.length||0)*30,0)),evidenceOpen:s,evidence:r,visibleEvidence:d=>r(d).slice(0,n.get(d.id)||10),toggleEvidence:(d,u)=>{s.set(d,u.target.open)},moreEvidence:d=>{n.set(d,(n.get(d)||10)+10)}}},template:`
8682
8673
  <section id="person-thoughts" class="person-journal" :aria-label="$t('person.thoughts')">
8683
8674
  <div class="person-journal-toolbar">
8684
8675
  <p class="person-muted">{{ $t('person.thoughtsHint') }}</p>
@@ -8753,7 +8744,7 @@ ${String(e||"").trim()}
8753
8744
  </div>
8754
8745
  <span class="typing-indicator" aria-hidden="true"><span></span><span></span><span></span></span>
8755
8746
  </div>
8756
- `}});function M1(e){let t=[];for(let s of e){let n=t.at(-1),r=typeof s.episodeId=="string"&&s.episodeId?s.episodeId:null;s.role==="assistant"&&r&&n?.role==="assistant"&&n.episodeId===r&&af(n)===af(s)?n.parts.push(s):t.push({...s,key:`message:${s.id}`,episodeId:r,...s.role==="assistant"?{parts:[s]}:{}})}return t}function bS(){let e,t=new Map,s=0;return(n,r)=>{r!==e&&(e=r,t.clear(),s=0);let i=M1(n),o=new Map,a=new Set;for(let l of i){if(l.role!=="assistant"||!l.episodeId)continue;let c=af(l),d=l.parts.map(u=>t.get(u.id)).find(u=>u?.episodeId===l.episodeId&&u.targets===c&&!a.has(u.key));l.key=d?.key||JSON.stringify(["reply",r,s++]),a.add(l.key);for(let u of l.parts)o.set(u.id,{key:l.key,episodeId:l.episodeId,targets:c})}return t=o,i}}function kS(e){let t=new Map,s=new Map,n=new Map,r;for(let i of e)if(i.role==="user")t.set(i.messageId||i.id,i),r=i,i.episodeId&&!s.has(i.episodeId)&&s.set(i.episodeId,i);else if(i.role==="assistant"){let o=yS(i),a=o!==null?o.map(l=>t.get(l)).find(Boolean):i.episodeId?s.get(i.episodeId):r;n.set(i.key,a?.key||i.key)}return n}var yS,af,wS=F(()=>{yS=e=>Array.isArray(e.replyToMessageIds)?[...new Set(e.replyToMessageIds.filter(t=>typeof t=="string"&&t))].sort():null,af=e=>JSON.stringify(yS(e))});var SS,CS=F(()=>{Cl();No();Fl();qs();Up();Dw();Fu();xr();qa();Ow();Uw();Jp();er();Kw();Gw();Ol();Zw();fS();hS();vS();wS();Xu();kd();ss();Yp();xd();SS={name:"DigitalPersonPage",components:{VirtualTranscript:vi,PaneResizeHandle:mc,PersonOutputs:$w,ResponsePresentation:ml,UserTurnBlock:Gn,MessageComposer:ki,NavigationIcon:Mt,PersonKnowledgeBrowser:Lw,PersonManagement:Ww,PersonTurnUsage:Hw,ModernSelect:Zt,PersonSettingsModal:jw,PersonActionsSheet:zw,PersonThoughtJournal:pS,PersonDebugLog:gS,PersonResponseLoading:mS},setup(){let e=Pinia.useChatStore(),t=Xe(),s=Vue.reactive(Ad()),n=V=>e.digitalPersonUiEnabledByAgent?.[V.id]===!0,r=Vue.ref(e.agents.find(V=>n(V)&&V.id===e.digitalPersonAgentId)?.id||e.agents.find(V=>n(V)&&V.id===e.currentAgent)?.id||e.agents.find(n)?.id||"");Vue.watch(r,V=>{e.digitalPersonAgentId=V},{immediate:!0});let i=Vue.ref(""),o=Vue.ref(!1),a=Vue.ref(window.innerWidth<=600),l=Vue.ref(!1),c=Vue.ref(null),d=Vue.ref(null),u=Vue.ref(null),p=0,f=null,g=Vue.ref(null),v=Vue.ref(window.innerWidth<=900),h=Vue.ref(!1),m=Vue.computed(()=>v.value||h.value),y=Vue.computed(()=>l.value||o.value||m.value&&!!g.value),k;try{k=Number(localStorage.getItem("person-output-panel-width"))}catch{}let w=Vue.ref(k>=280&&k<=1200?k:420);Vue.watch(w,V=>{try{localStorage.setItem("person-output-panel-width",String(V))}catch{}});let b=Vue.ref(null),S=Vue.ref(!1),C=Vue.ref(null),_=Vue.ref(null),M=Vue.ref(null),E=Vue.ref(null),W=Vue.ref(null),$=Vue.ref(null),x=Vue.ref(""),D=null,Z=Vue.ref(null),Q=Vue.inject("t"),T=Vue.computed(()=>e.agents.filter(n).map(V=>({value:V.id,label:V.name||V.id,badge:V.online?void 0:Q("person.offlineShort")}))),A=Vue.ref(null),q=Vue.ref(null),H=Vue.ref(null),N=Vue.ref(!0),ne=Vue.computed(()=>JSON.stringify([fe(),e.chatHistoryConnectionGeneration,s.person?.id])),ye=!1,me=null,G=!1,pe=null;function ae(){let V=A.value;if(!V)return;let Ae=V.getBoundingClientRect().top+V.clientTop,De=[...V.querySelectorAll(".virtual-transcript-item")].find(Ke=>{let ct=Ke.getBoundingClientRect();return ct.bottom>Ae&&ct.top<Ae+V.clientHeight});me=De?{key:De.dataset.virtualId,top:De.getBoundingClientRect().top-Ae}:null}function de(V){Ct(),ye&&V.scrollTop<240&&!qe.value&&!s.loading&&!s.messagesLoading&&s.messageCursor!=null&&(ye=!1,G=!0,ae(),I.page("messages",!0))}function he(){return ye=!1,_t(!1),G=!0,ae(),I.page("messages",!0)}let re=V=>Math.min(2400,100+Math.ceil((V.parts||[V]).reduce((Ae,De)=>Ae+(De.text?.length||0),0)/70)*22),j=Vue.ref(null),O=Vue.ref(null),z=Vue.ref(""),te=Vue.ref(!1),ce=Vue.ref(!1),xe=null,Te=0,Y=null,ue=null,Se=!1,Ze=Vue.ref(null),qe=Vue.computed(()=>At(e,r.value)),ge=()=>JSON.stringify([t.userId,t.authGeneration,t.isAuthenticated]),fe=()=>JSON.stringify([ge(),r.value]);Vue.watch(ne,()=>{E.value=null},{flush:"sync"});let Ie=Ll({scope:fe,enabled:()=>ds.value,validate:Yw,upload:(V,Ae)=>Qw(V.map(De=>De.file),t,Ae)}),{attachments:$e,error:je,filesReady:Ge,addFiles:se,retryAttachment:Me,removeAttachment:B}=Ie,I=kh({chat:e,state:s,scope:ge,reupload:Ie.uploadFiles}),K=null,L="";Vue.watch(o,V=>{V?(K=document.activeElement,L=fe()):Vue.nextTick(()=>{if(Se||L!==fe()||l.value||g.value)return;let Ae=a.value?c.value:K===c.value?d.value:K;Ae?.isConnected&&!Ae.disabled&&Ae.focus()})},{flush:"sync"}),Vue.watch(fe,()=>{Et(),p++,f=null,i.value="",o.value=!1,xt(!1),x.value="",Je()},{flush:"sync"}),Vue.watch(()=>JSON.stringify([ge(),r.value,qe.value,e.chatHistoryConnectionGeneration]),()=>{I.open(r.value)},{immediate:!0}),Vue.watch(()=>e.agents.map(V=>V.id).join(","),()=>{r.value||(r.value=e.agents.find(n)?.id||"")});let X=()=>{v.value=window.innerWidth<=900,a.value=window.innerWidth<=600,a.value||xt(),Vue.nextTick(fs)};Vue.onMounted(()=>{Ze.value?.focus(),window.addEventListener("resize",X),document.addEventListener("keydown",Vs),document.addEventListener("focusin",Wt),document.addEventListener("visibilitychange",I.visibilityChanged)}),Vue.onBeforeUnmount(()=>{p++,I.dispose(),window.removeEventListener("resize",X),document.removeEventListener("keydown",Vs),document.removeEventListener("focusin",Wt),document.removeEventListener("visibilitychange",I.visibilityChanged)}),Vue.onUpdated(Wt);let le=Vue.computed(()=>!qe.value&&s.configured&&s.modelReady!==!1&&!!s.person&&!s.loading),_e=Vue.computed(()=>bd(s,qe.value)),Ee=Vue.computed(()=>uh(s,qe.value)),Fe=Vue.computed(()=>!qe.value&&(s.busy||s.commandPending)),J=bS(),ie=Vue.computed(()=>{let V=new Map(s.messages.filter(Ae=>Ae.role==="user").map(Ae=>[Ae.id,Ae]));return J(s.messages,JSON.stringify([fe(),s.person?.id])).map(Ae=>{let De=[...new Set((Ae.replyToMessageIds||[]).filter(Ke=>typeof Ke=="string"&&Ke))];return{...Ae,id:Ae.key,messageId:Ae.id,replyContext:De.length?{count:De.length,excerpts:De.map(Ke=>V.get(Ke)).filter(Boolean).slice(0,2).map(Ke=>({id:Ke.id,text:Ke.text?.trim().replace(/\s+/g," ").slice(0,180)||""})).filter(Ke=>Ke.text)}:null}})}),Re=Vue.computed(()=>kS(ie.value)),Le=Vue.ref(""),We=Vue.ref(!0),Ne=null;function kt(){Ne=null;let V=A.value;V&&(We.value=N.value&&!te.value&&V.scrollHeight-V.scrollTop-V.clientHeight<=48,Le.value=Ml({viewportTop:V.getBoundingClientRect().top+V.clientTop,viewportHeight:V.clientHeight,responses:[...V.querySelectorAll(".person-reply")].map(Ae=>{let De=Ae.getBoundingClientRect();return{originMessageId:Ae.dataset.responseKey,top:De.top,bottom:De.bottom,height:De.height}})}))}function Ct(){Se||Ne!==null||(Ne=requestAnimationFrame(kt))}function _t(V){N.value=V,H.value?.setBottomFollowEnabled(V),Ct()}function Xt(){ye=!1,me=null,G=!1,xe&&(xe.locked=!1),ce.value=!1,_t(!1),H.value?.clearTargetAnchor()}async function Is(){let V=Re.value.get(Le.value);V&&(Xt(),await H.value?.scrollToKey(V,{align:"start"}),Ct())}function cs(){Xt(),Et();let V=ne.value;_t(!0),Vue.nextTick(()=>{Se||!N.value||V!==ne.value||(H.value?.scrollToBottom(),Ct())})}Vue.watch(ie,Ct,{flush:"post"}),Vue.watch(ne,()=>{Le.value="",We.value=!0,N.value=!0},{flush:"sync"});let pt=Vue.computed(()=>{let V=ie.value.at(-1);return _e.value.loading&&!s.commandPending&&V?.role==="assistant"&&V.episodeId&&V.episodeId===s.episodeId?V.key:null}),ds=Vue.computed(()=>!qe.value&&s.configured&&s.modelReady!==!1&&!!s.person&&!s.commandPending&&!s.retryCommand),Rn=Vue.computed(()=>ds.value&&!s.busy&&!s.loading&&!s.settingsPending),rr=Vue.computed(()=>je.value||($e.value.some(V=>V.uploadError)?"person.filesFailed":"")),_n=Vue.computed(()=>ds.value&&Ge.value&&(!!i.value.trim()||!!$e.value.length));async function ir(V){await I.settings(V)&&(o.value=!1)}async function or(V,Ae=!1){if(!Ae&&(V==="send"?!_n.value:!Rn.value||V==="think"&&!Ge.value))return;let De=p;Ae||(f={text:i.value,rows:$e.value.slice()});let Ke=f,ct=V==="send"&&!s.busy?Ae&&xe?Te:Jt():null,nt=document.activeElement?.id==="person-input"?document.activeElement:null,Qe=!1,dt=ms=>{(ms.type!=="keydown"||ms.key==="Tab")&&(Qe=!0)},ts=ms=>{ms.target!==nt&&ms.target!==document.body&&(Qe=!0)};nt&&(document.addEventListener("pointerdown",dt),document.addEventListener("keydown",dt),document.addEventListener("focusin",ts));let Pt;try{Pt=await I.command(V,i.value,Ae,V==="dream"?[]:$e.value.slice()),await Vue.nextTick(),nt&&!Qe&&De===p&&ds.value&&document.activeElement===document.body&&nt.isConnected&&nt.focus({preventScroll:!0})}finally{document.removeEventListener("pointerdown",dt),document.removeEventListener("keydown",dt),document.removeEventListener("focusin",ts)}De===p&&(ct===Te&&xe&&(Pt?(xe.episodeId=s.commandEpisodeId||"",es()):s.retryCommand||Et()),Pt&&(V!=="dream"&&Ke&&(i.value===Ke.text&&(i.value=""),Ie.release(Ke.rows,{transferPreviews:!1})),f=null))}function sn(){I.discardRetry(),f=null,Et()}Vue.watch([g,()=>s.loading,qe],()=>{let V=g.value;V==="outputs"&&!qe.value&&!s.loading&&s.person&&(s.outputsSupported&&!s.outputs.loaded&&!s.outputs.loading&&I.readOutputs(),I.resumeOutput()),I.showManagement(V==="tasks"&&!qe.value&&!s.loading&&!!s.person),I.showTurns(V==="turns"&&!qe.value&&!s.loading&&!!s.person),["memory","skills"].includes(V)&&!qe.value&&!s.loading&&s.person&&!s[V].loaded&&!s[V].loading&&I.inspect(V)},{flush:"post"});async function us(V="thoughts"){g.value||(D=document.activeElement?.matches(".person-delivered-output")?document.activeElement:a.value?c.value:V==="outputs"?b.value:V==="search"?W.value:M.value),V==="outputs"&&(S.value=!0),V!=="turns"&&(E.value=null),g.value=V,await Vue.nextTick(),V==="outputs"?_.value?.focusClose():(V==="search"?$.value:Z.value)?.focus()}function nn(V){return E.value=V,us("turns")}function Je(){E.value=null;let V=m.value||C.value?.contains(document.activeElement);g.value=null,h.value=!1,S.value=!1,I.closeOutput(),V&&Vue.nextTick(()=>{if(l.value||o.value)return;let Ae=a.value&&!D?.matches(".person-delivered-output")?c.value:!a.value&&D===c.value?M.value:D;Ae?.isConnected&&Ae.focus()})}function xt(V=!0){l.value&&(l.value=!1,V&&Vue.nextTick(()=>{!g.value&&!o.value&&(a.value?c.value:M.value)?.focus()}))}async function ps(V){if(xt(!1),V==="settings"){let Ae=fe();if(await Vue.nextTick(),Se||Ae!==fe())return;(a.value?c.value:M.value)?.focus(),o.value=!0}else V==="refresh"?(Vue.nextTick(()=>c.value?.focus()),I.refresh()):await us(V)}function fs(){let V=u.value,Ae=V?.querySelector('[aria-current="page"]');if(!V||!Ae||!v.value)return;let De=V.getBoundingClientRect(),Ke=Ae.getBoundingClientRect();Ke.left<De.left?V.scrollLeft-=De.left-Ke.left:Ke.right>De.right&&(V.scrollLeft+=Ke.right-De.right)}Vue.watch(g,()=>Vue.nextTick(fs),{flush:"post"});function Dt(){g.value&&!["search","outputs"].includes(g.value)?Je():us()}function Lt(){g.value==="outputs"?_.value?.focusClose():Z.value?.focus()}function Wt(){if(!g.value||!m.value||o.value||l.value||!C.value)return;let V=document.activeElement;(!C.value.contains(V)||V?.disabled)&&Lt()}function Vs(V){if(!g.value||o.value||l.value||!C.value||!m.value&&!C.value.contains(document.activeElement)||(V.key==="Escape"&&(V.preventDefault(),V.stopPropagation(),Je()),V.key!=="Tab"||!m.value))return;let Ae=[...C.value.querySelectorAll('button:not(:disabled), input:not(:disabled), textarea:not(:disabled), select:not(:disabled), a[href], summary, iframe:not([tabindex="-1"]), [tabindex="0"]')].filter(ct=>{if(ct.tabIndex<0)return!1;for(let nt=ct.parentElement;nt&&nt!==C.value;nt=nt.parentElement)if(nt.style.display==="none"||nt.hidden||nt.inert||nt.matches("details:not([open])")&&nt.querySelector("summary")!==ct)return!1;return!0}),De=Ae[0],Ke=Ae.at(-1);V.shiftKey&&document.activeElement===De?(V.preventDefault(),Ke?.focus()):!V.shiftKey&&document.activeElement===Ke&&(V.preventDefault(),De?.focus())}Vue.watch(()=>s.loading,V=>{!V&&["memory","skills"].includes(g.value)&&!s[g.value].loaded&&I.inspect(g.value),!V&&g.value==="search"&&x.value.trim()&&I.search(x.value)}),Vue.watch(m,async V=>{V&&g.value&&(await Vue.nextTick(),Lt())});function Et(){Te++,xe=null,z.value="",te.value=!1,ce.value=!1,ue!==null&&cancelAnimationFrame(ue),ue=null,O.value&&(O.value.style.height="0px")}function Jt(){return Et(),me=null,xe={scope:fe(),episodeId:"",previousIds:new Set(s.messages.map(V=>V.id)),locked:!0,viewportHeight:A.value?.clientHeight||0},_t(!1),H.value?.clearTargetAnchor(),te.value=!0,ce.value=!0,es(),Te}function En(V){if(!(V?.type==="keydown"&&(!["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(V.key)||V.target?.closest('input, textarea, select, [contenteditable="true"]')))){if(V?.type==="pointerdown"){let Ae=A.value,De=Ae?.getBoundingClientRect();if(!De||Ae.offsetWidth<=Ae.clientWidth||V.clientX<De.right-(Ae.offsetWidth-Ae.clientWidth)&&V.clientX>De.left+(Ae.offsetWidth-Ae.clientWidth))return}ye=!0,me=null,_t(!1),H.value?.clearTargetAnchor(),xe&&(xe.locked=!1),ce.value=!1}}function As(){if(!me||s.messagesLoading)return;let V=A.value,Ae=[...V?.querySelectorAll(".virtual-transcript-item")||[]].find(Ke=>Ke.dataset.virtualId===me.key);if(!Ae)return;H.value?.cancelPendingBottomFollow();let De=Ae.getBoundingClientRect().top-V.getBoundingClientRect().top-V.clientTop-me.top;Math.abs(De)>1&&(V.scrollTop+=De)}function Ns(){let V=xe,Ae=A.value,De=O.value;if(Se||!V||V.scope!==fe()||!Ae||!De)return;if(!z.value&&V.episodeId){let ts=s.messages.find(Pt=>Pt.role==="assistant"&&!V.previousIds.has(Pt.id)&&(!Pt.episodeId||Pt.episodeId===V.episodeId));if(ts){z.value=ts.id;let Pt=ie.value.find(ms=>ms.parts?.some(qr=>qr.id===ts.id));V.locked&&Pt&&H.value?.scrollToKey(Pt.id,{align:"start"}).then(es)}}if(!V.locked)return;let Ke=z.value?[...Ae.querySelectorAll(".person-message, .person-reply-part")].find(ts=>ts.dataset.messageId===z.value):j.value;if(!Ke){z.value||(Ae.scrollTop=Ae.scrollHeight);return}let ct=De.getBoundingClientRect().top-Ke.getBoundingClientRect().top,nt=parseFloat(getComputedStyle(Ae).paddingBottom)||0;V.viewportHeight=Math.max(V.viewportHeight,Ae.clientHeight);let Qe=Math.max(0,V.viewportHeight-ct-nt);Math.abs((parseFloat(De.style.height)||0)-Qe)>1&&(De.style.height=`${Qe}px`);let dt=Ke.getBoundingClientRect().top-Ae.getBoundingClientRect().top-Ae.clientTop;H.value?.cancelPendingBottomFollow({preserveTarget:!0}),Math.abs(dt)>1&&(Ae.scrollTop+=dt)}function es(){let V=Te;Vue.nextTick(()=>{Se||V!==Te||ue!==null||(Ns(),ue=requestAnimationFrame(()=>{ue=null,!Se&&V===Te&&Ns()}))})}let gs=()=>[s.messages.map(V=>[V.id,V.text,V.episodeId]),_e.value.loading,Ee.value?.at,Ee.value?.label];Vue.watch(gs,()=>{Ns(),es()},{flush:"post"}),Vue.watch(()=>[qe.value,e.chatHistoryConnectionGeneration],Et,{flush:"sync"}),Vue.watch(()=>s.messagesLoading,V=>{!V&&G&&(G=!1,ae())}),Vue.watch(()=>s.messagesLoading,async V=>{if(V||!me)return;let Ae=me,De=ie.value.findIndex(ct=>ct.id===Ae.key);if(De<0){me=null;return}H.value?.cancelPendingBottomFollow(),[...A.value?.querySelectorAll(".virtual-transcript-item")||[]].some(ct=>ct.dataset.virtualId===Ae.key)||await H.value?.scrollToIndex(De,{align:"start"}),!(me!==Ae||Se)&&(H.value?.clearTargetAnchor(),As())},{flush:"post"}),Vue.watch(ne,()=>{ye=!1,me=null,G=!1},{flush:"sync"}),Vue.onMounted(()=>{typeof MutationObserver<"u"&&q.value&&(pe=new MutationObserver(()=>{As(),Ct()}),pe.observe(q.value,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]})),typeof ResizeObserver<"u"&&(Y=new ResizeObserver(()=>{As(),Ns(),es(),Ct()}),A.value&&Y.observe(A.value),q.value&&Y.observe(q.value))}),Vue.onBeforeUnmount(()=>{Se=!0,Et(),Y?.disconnect(),pe?.disconnect(),Ne!==null&&cancelAnimationFrame(Ne)});function hs(){e.leaveDigitalPerson(),e.leaveWorkCenter(),e.closePluginCenter(),window.innerWidth<=768&&(e.sessionSidebarOpen=!0),Vue.nextTick(()=>[...document.querySelectorAll(".sidebar-person-trigger")].find(V=>V.getClientRects().length)?.focus())}async function U(V){let Ae=I.selectOutput(V);g.value!=="outputs"&&await us("outputs"),await Ae}function oe(V){let Ae=Qt(V);return Ae?(U({id:"link:"+Ae,title:Ae,kind:"link",url:Ae}),!0):!1}function Pe(V){if(V.defaultPrevented||V.button!==0||V.ctrlKey||V.metaKey||V.shiftKey||V.altKey)return;let Ae=V.target.closest?.("a[href]"),De=po(Ae?.getAttribute("href"));!De||Ae.hasAttribute("download")||Ae.target&&Ae.target!=="_blank"||(V.preventDefault(),U({id:"link:"+De,title:Ae.textContent||De,kind:"link",url:De}))}let Ue=V=>V.episodeId?s.outputs.items.filter(Ae=>Ae.episodeId===V.episodeId):[];return Vue.watch(()=>s.person?.id,(V,Ae)=>{Ae&&V&&V!==Ae&&Je()},{flush:"sync"}),{settingsButton:d,mobileHeader:a,moreOpen:l,moreButton:c,inspectorNav:u,backgroundInert:y,closeMore:xt,selectMore:ps,outputReader:_,outputVisited:S,outputButton:b,panelWidth:w,expandedPanel:h,modalPanel:m,selectOutput:U,previewReplyLink:Pe,openReplyBrowser:oe,deliveredOutputs:Ue,chat:e,state:s,agentId:r,draft:i,panel:g,compactPanel:v,sidePanel:C,thoughtButton:M,inspectedEpisodeId:E,inspectTurn:nn,searchButton:W,searchInput:$,searchQuery:x,closePanelButton:Z,agentOptions:T,messagePane:A,readingColumn:q,transcript:H,transcriptIdentity:ne,activeResponseKey:Le,atLatest:We,backToCurrentTurn:Is,scrollToLatest:cs,conversationScroll:de,loadOlderMessages:he,estimateConversationHeight:re,responseStart:j,responseTail:O,focusedResponseId:z,hasResponseFocus:te,responsePinned:ce,releaseResponseFocus:En,returnButton:Ze,gate:qe,ready:le,activity:_e,feedback:Ee,responding:Fe,conversation:ie,loadingReplyKey:pt,canCompose:ds,canStartEpisode:Rn,controller:I,command:or,discardRetry:sn,openPanel:us,closePanel:Je,togglePanel:Dt,panelKeydown:Vs,leave:hs,asUserMessage:V=>({id:V.messageId||V.id,type:"user",content:V.text,createdAt:new Date(V.createdAt).getTime()}),time:V=>V?new Date(V).toLocaleString():"",datetime:V=>V!=null&&Number.isFinite(new Date(V).getTime())?new Date(V).toISOString():void 0,renderSafeMessageMarkdown:wc,attachments:$e,attachmentError:je,fileError:rr,filesReady:Ge,canSend:_n,addFiles:se,retryAttachment:Me,removeAttachment:B,settingsOpen:o,saveSettings:ir,PERSON_FILE_ACCEPT:tf}},template:`
8747
+ `}});function MT(e){let t=[];for(let s of e){let n=t.at(-1),r=typeof s.episodeId=="string"&&s.episodeId?s.episodeId:null;s.role==="assistant"&&r&&n?.role==="assistant"&&n.episodeId===r&&af(n)===af(s)?n.parts.push(s):t.push({...s,key:`message:${s.id}`,episodeId:r,...s.role==="assistant"?{parts:[s]}:{}})}return t}function bS(){let e,t=new Map,s=0;return(n,r)=>{r!==e&&(e=r,t.clear(),s=0);let i=MT(n),o=new Map,a=new Set;for(let l of i){if(l.role!=="assistant"||!l.episodeId)continue;let c=af(l),d=l.parts.map(u=>t.get(u.id)).find(u=>u?.episodeId===l.episodeId&&u.targets===c&&!a.has(u.key));l.key=d?.key||JSON.stringify(["reply",r,s++]),a.add(l.key);for(let u of l.parts)o.set(u.id,{key:l.key,episodeId:l.episodeId,targets:c})}return t=o,i}}function kS(e){let t=new Map,s=new Map,n=new Map,r;for(let i of e)if(i.role==="user")t.set(i.messageId||i.id,i),r=i,i.episodeId&&!s.has(i.episodeId)&&s.set(i.episodeId,i);else if(i.role==="assistant"){let o=yS(i),a=o!==null?o.map(l=>t.get(l)).find(Boolean):i.episodeId?s.get(i.episodeId):r;n.set(i.key,a?.key||i.key)}return n}var yS,af,wS=F(()=>{yS=e=>Array.isArray(e.replyToMessageIds)?[...new Set(e.replyToMessageIds.filter(t=>typeof t=="string"&&t))].sort():null,af=e=>JSON.stringify(yS(e))});var SS,CS=F(()=>{Cl();No();Fl();qs();Up();Dw();Fu();xr();qa();Ow();Uw();Jp();er();Kw();Gw();Ol();Zw();fS();hS();vS();wS();Xu();kd();ss();Yp();xd();SS={name:"DigitalPersonPage",components:{VirtualTranscript:vi,PaneResizeHandle:mc,PersonOutputs:$w,ResponsePresentation:ml,UserTurnBlock:Gn,MessageComposer:ki,NavigationIcon:Mt,PersonKnowledgeBrowser:Lw,PersonManagement:Ww,PersonTurnUsage:Hw,ModernSelect:Zt,PersonSettingsModal:jw,PersonActionsSheet:zw,PersonThoughtJournal:pS,PersonDebugLog:gS,PersonResponseLoading:mS},setup(){let e=Pinia.useChatStore(),t=Xe(),s=Vue.reactive(Ad()),n=V=>e.digitalPersonUiEnabledByAgent?.[V.id]===!0,r=Vue.ref(e.agents.find(V=>n(V)&&V.id===e.digitalPersonAgentId)?.id||e.agents.find(V=>n(V)&&V.id===e.currentAgent)?.id||e.agents.find(n)?.id||"");Vue.watch(r,V=>{e.digitalPersonAgentId=V},{immediate:!0});let i=Vue.ref(""),o=Vue.ref(!1),a=Vue.ref(window.innerWidth<=600),l=Vue.ref(!1),c=Vue.ref(null),d=Vue.ref(null),u=Vue.ref(null),p=0,f=null,g=Vue.ref(null),v=Vue.ref(window.innerWidth<=900),h=Vue.ref(!1),m=Vue.computed(()=>v.value||h.value),y=Vue.computed(()=>l.value||o.value||m.value&&!!g.value),k;try{k=Number(localStorage.getItem("person-output-panel-width"))}catch{}let w=Vue.ref(k>=280&&k<=1200?k:420);Vue.watch(w,V=>{try{localStorage.setItem("person-output-panel-width",String(V))}catch{}});let b=Vue.ref(null),S=Vue.ref(!1),C=Vue.ref(null),_=Vue.ref(null),M=Vue.ref(null),E=Vue.ref(null),W=Vue.ref(null),$=Vue.ref(null),x=Vue.ref(""),D=null,Z=Vue.ref(null),Q=Vue.inject("t"),T=Vue.computed(()=>e.agents.filter(n).map(V=>({value:V.id,label:V.name||V.id,badge:V.online?void 0:Q("person.offlineShort")}))),A=Vue.ref(null),q=Vue.ref(null),H=Vue.ref(null),N=Vue.ref(!0),ne=Vue.computed(()=>JSON.stringify([fe(),e.chatHistoryConnectionGeneration,s.person?.id])),ye=!1,me=null,G=!1,pe=null;function ae(){let V=A.value;if(!V)return;let Ae=V.getBoundingClientRect().top+V.clientTop,De=[...V.querySelectorAll(".virtual-transcript-item")].find(Ke=>{let ct=Ke.getBoundingClientRect();return ct.bottom>Ae&&ct.top<Ae+V.clientHeight});me=De?{key:De.dataset.virtualId,top:De.getBoundingClientRect().top-Ae}:null}function de(V){Ct(),ye&&V.scrollTop<240&&!qe.value&&!s.loading&&!s.messagesLoading&&s.messageCursor!=null&&(ye=!1,G=!0,ae(),I.page("messages",!0))}function he(){return ye=!1,_t(!1),G=!0,ae(),I.page("messages",!0)}let re=V=>Math.min(2400,100+Math.ceil((V.parts||[V]).reduce((Ae,De)=>Ae+(De.text?.length||0),0)/70)*22),j=Vue.ref(null),O=Vue.ref(null),z=Vue.ref(""),te=Vue.ref(!1),ce=Vue.ref(!1),xe=null,Te=0,Y=null,ue=null,Se=!1,Ze=Vue.ref(null),qe=Vue.computed(()=>At(e,r.value)),ge=()=>JSON.stringify([t.userId,t.authGeneration,t.isAuthenticated]),fe=()=>JSON.stringify([ge(),r.value]);Vue.watch(ne,()=>{E.value=null},{flush:"sync"});let Ie=Ll({scope:fe,enabled:()=>ds.value,validate:Yw,upload:(V,Ae)=>Qw(V.map(De=>De.file),t,Ae)}),{attachments:$e,error:je,filesReady:Ge,addFiles:se,retryAttachment:Me,removeAttachment:B}=Ie,I=kh({chat:e,state:s,scope:ge,reupload:Ie.uploadFiles}),K=null,L="";Vue.watch(o,V=>{V?(K=document.activeElement,L=fe()):Vue.nextTick(()=>{if(Se||L!==fe()||l.value||g.value)return;let Ae=a.value?c.value:K===c.value?d.value:K;Ae?.isConnected&&!Ae.disabled&&Ae.focus()})},{flush:"sync"}),Vue.watch(fe,()=>{Et(),p++,f=null,i.value="",o.value=!1,xt(!1),x.value="",Je()},{flush:"sync"}),Vue.watch(()=>JSON.stringify([ge(),r.value,qe.value,e.chatHistoryConnectionGeneration]),()=>{I.open(r.value)},{immediate:!0}),Vue.watch(()=>e.agents.map(V=>V.id).join(","),()=>{r.value||(r.value=e.agents.find(n)?.id||"")});let X=()=>{v.value=window.innerWidth<=900,a.value=window.innerWidth<=600,a.value||xt(),Vue.nextTick(fs)};Vue.onMounted(()=>{Ze.value?.focus(),window.addEventListener("resize",X),document.addEventListener("keydown",Vs),document.addEventListener("focusin",Wt),document.addEventListener("visibilitychange",I.visibilityChanged)}),Vue.onBeforeUnmount(()=>{p++,I.dispose(),window.removeEventListener("resize",X),document.removeEventListener("keydown",Vs),document.removeEventListener("focusin",Wt),document.removeEventListener("visibilitychange",I.visibilityChanged)}),Vue.onUpdated(Wt);let le=Vue.computed(()=>!qe.value&&s.configured&&s.modelReady!==!1&&!!s.person&&!s.loading),_e=Vue.computed(()=>bd(s,qe.value)),Ee=Vue.computed(()=>uh(s,qe.value)),Fe=Vue.computed(()=>!qe.value&&(s.busy||s.commandPending)),J=bS(),ie=Vue.computed(()=>{let V=new Map(s.messages.filter(Ae=>Ae.role==="user").map(Ae=>[Ae.id,Ae]));return J(s.messages,JSON.stringify([fe(),s.person?.id])).map(Ae=>{let De=[...new Set((Ae.replyToMessageIds||[]).filter(Ke=>typeof Ke=="string"&&Ke))];return{...Ae,id:Ae.key,messageId:Ae.id,replyContext:De.length?{count:De.length,excerpts:De.map(Ke=>V.get(Ke)).filter(Boolean).slice(0,2).map(Ke=>({id:Ke.id,text:Ke.text?.trim().replace(/\s+/g," ").slice(0,180)||""})).filter(Ke=>Ke.text)}:null}})}),Re=Vue.computed(()=>kS(ie.value)),Le=Vue.ref(""),We=Vue.ref(!0),Ne=null;function kt(){Ne=null;let V=A.value;V&&(We.value=N.value&&!te.value&&V.scrollHeight-V.scrollTop-V.clientHeight<=48,Le.value=Ml({viewportTop:V.getBoundingClientRect().top+V.clientTop,viewportHeight:V.clientHeight,responses:[...V.querySelectorAll(".person-reply")].map(Ae=>{let De=Ae.getBoundingClientRect();return{originMessageId:Ae.dataset.responseKey,top:De.top,bottom:De.bottom,height:De.height}})}))}function Ct(){Se||Ne!==null||(Ne=requestAnimationFrame(kt))}function _t(V){N.value=V,H.value?.setBottomFollowEnabled(V),Ct()}function Xt(){ye=!1,me=null,G=!1,xe&&(xe.locked=!1),ce.value=!1,_t(!1),H.value?.clearTargetAnchor()}async function Is(){let V=Re.value.get(Le.value);V&&(Xt(),await H.value?.scrollToKey(V,{align:"start"}),Ct())}function cs(){Xt(),Et();let V=ne.value;_t(!0),Vue.nextTick(()=>{Se||!N.value||V!==ne.value||(H.value?.scrollToBottom(),Ct())})}Vue.watch(ie,Ct,{flush:"post"}),Vue.watch(ne,()=>{Le.value="",We.value=!0,N.value=!0},{flush:"sync"});let pt=Vue.computed(()=>{let V=ie.value.at(-1);return _e.value.loading&&!s.commandPending&&V?.role==="assistant"&&V.episodeId&&V.episodeId===s.episodeId?V.key:null}),ds=Vue.computed(()=>!qe.value&&s.configured&&s.modelReady!==!1&&!!s.person&&!s.commandPending&&!s.retryCommand),Rn=Vue.computed(()=>ds.value&&!s.busy&&!s.loading&&!s.settingsPending),rr=Vue.computed(()=>je.value||($e.value.some(V=>V.uploadError)?"person.filesFailed":"")),_n=Vue.computed(()=>ds.value&&Ge.value&&(!!i.value.trim()||!!$e.value.length));async function ir(V){await I.settings(V)&&(o.value=!1)}async function or(V,Ae=!1){if(!Ae&&(V==="send"?!_n.value:!Rn.value||V==="think"&&!Ge.value))return;let De=p;Ae||(f={text:i.value,rows:$e.value.slice()});let Ke=f,ct=V==="send"&&!s.busy?Ae&&xe?Te:Jt():null,nt=document.activeElement?.id==="person-input"?document.activeElement:null,Qe=!1,dt=ms=>{(ms.type!=="keydown"||ms.key==="Tab")&&(Qe=!0)},ts=ms=>{ms.target!==nt&&ms.target!==document.body&&(Qe=!0)};nt&&(document.addEventListener("pointerdown",dt),document.addEventListener("keydown",dt),document.addEventListener("focusin",ts));let Pt;try{Pt=await I.command(V,i.value,Ae,V==="dream"?[]:$e.value.slice()),await Vue.nextTick(),nt&&!Qe&&De===p&&ds.value&&document.activeElement===document.body&&nt.isConnected&&nt.focus({preventScroll:!0})}finally{document.removeEventListener("pointerdown",dt),document.removeEventListener("keydown",dt),document.removeEventListener("focusin",ts)}De===p&&(ct===Te&&xe&&(Pt?(xe.episodeId=s.commandEpisodeId||"",es()):s.retryCommand||Et()),Pt&&(V!=="dream"&&Ke&&(i.value===Ke.text&&(i.value=""),Ie.release(Ke.rows,{transferPreviews:!1})),f=null))}function sn(){I.discardRetry(),f=null,Et()}Vue.watch([g,()=>s.loading,qe],()=>{let V=g.value;V==="outputs"&&!qe.value&&!s.loading&&s.person&&(s.outputsSupported&&!s.outputs.loaded&&!s.outputs.loading&&I.readOutputs(),I.resumeOutput()),I.showManagement(V==="tasks"&&!qe.value&&!s.loading&&!!s.person),I.showTurns(V==="turns"&&!qe.value&&!s.loading&&!!s.person),["memory","skills"].includes(V)&&!qe.value&&!s.loading&&s.person&&!s[V].loaded&&!s[V].loading&&I.inspect(V)},{flush:"post"});async function us(V="thoughts"){g.value||(D=document.activeElement?.matches(".person-delivered-output")?document.activeElement:a.value?c.value:V==="outputs"?b.value:V==="search"?W.value:M.value),V==="outputs"&&(S.value=!0),V!=="turns"&&(E.value=null),g.value=V,await Vue.nextTick(),V==="outputs"?_.value?.focusClose():(V==="search"?$.value:Z.value)?.focus()}function nn(V){return E.value=V,us("turns")}function Je(){E.value=null;let V=m.value||C.value?.contains(document.activeElement);g.value=null,h.value=!1,S.value=!1,I.closeOutput(),V&&Vue.nextTick(()=>{if(l.value||o.value)return;let Ae=a.value&&!D?.matches(".person-delivered-output")?c.value:!a.value&&D===c.value?M.value:D;Ae?.isConnected&&Ae.focus()})}function xt(V=!0){l.value&&(l.value=!1,V&&Vue.nextTick(()=>{!g.value&&!o.value&&(a.value?c.value:M.value)?.focus()}))}async function ps(V){if(xt(!1),V==="settings"){let Ae=fe();if(await Vue.nextTick(),Se||Ae!==fe())return;(a.value?c.value:M.value)?.focus(),o.value=!0}else V==="refresh"?(Vue.nextTick(()=>c.value?.focus()),I.refresh()):await us(V)}function fs(){let V=u.value,Ae=V?.querySelector('[aria-current="page"]');if(!V||!Ae||!v.value)return;let De=V.getBoundingClientRect(),Ke=Ae.getBoundingClientRect();Ke.left<De.left?V.scrollLeft-=De.left-Ke.left:Ke.right>De.right&&(V.scrollLeft+=Ke.right-De.right)}Vue.watch(g,()=>Vue.nextTick(fs),{flush:"post"});function Dt(){g.value&&!["search","outputs"].includes(g.value)?Je():us()}function Lt(){g.value==="outputs"?_.value?.focusClose():Z.value?.focus()}function Wt(){if(!g.value||!m.value||o.value||l.value||!C.value)return;let V=document.activeElement;(!C.value.contains(V)||V?.disabled)&&Lt()}function Vs(V){if(!g.value||o.value||l.value||!C.value||!m.value&&!C.value.contains(document.activeElement)||(V.key==="Escape"&&(V.preventDefault(),V.stopPropagation(),Je()),V.key!=="Tab"||!m.value))return;let Ae=[...C.value.querySelectorAll('button:not(:disabled), input:not(:disabled), textarea:not(:disabled), select:not(:disabled), a[href], summary, iframe:not([tabindex="-1"]), [tabindex="0"]')].filter(ct=>{if(ct.tabIndex<0)return!1;for(let nt=ct.parentElement;nt&&nt!==C.value;nt=nt.parentElement)if(nt.style.display==="none"||nt.hidden||nt.inert||nt.matches("details:not([open])")&&nt.querySelector("summary")!==ct)return!1;return!0}),De=Ae[0],Ke=Ae.at(-1);V.shiftKey&&document.activeElement===De?(V.preventDefault(),Ke?.focus()):!V.shiftKey&&document.activeElement===Ke&&(V.preventDefault(),De?.focus())}Vue.watch(()=>s.loading,V=>{!V&&["memory","skills"].includes(g.value)&&!s[g.value].loaded&&I.inspect(g.value),!V&&g.value==="search"&&x.value.trim()&&I.search(x.value)}),Vue.watch(m,async V=>{V&&g.value&&(await Vue.nextTick(),Lt())});function Et(){Te++,xe=null,z.value="",te.value=!1,ce.value=!1,ue!==null&&cancelAnimationFrame(ue),ue=null,O.value&&(O.value.style.height="0px")}function Jt(){return Et(),me=null,xe={scope:fe(),episodeId:"",previousIds:new Set(s.messages.map(V=>V.id)),locked:!0,viewportHeight:A.value?.clientHeight||0},_t(!1),H.value?.clearTargetAnchor(),te.value=!0,ce.value=!0,es(),Te}function En(V){if(!(V?.type==="keydown"&&(!["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(V.key)||V.target?.closest('input, textarea, select, [contenteditable="true"]')))){if(V?.type==="pointerdown"){let Ae=A.value,De=Ae?.getBoundingClientRect();if(!De||Ae.offsetWidth<=Ae.clientWidth||V.clientX<De.right-(Ae.offsetWidth-Ae.clientWidth)&&V.clientX>De.left+(Ae.offsetWidth-Ae.clientWidth))return}ye=!0,me=null,_t(!1),H.value?.clearTargetAnchor(),xe&&(xe.locked=!1),ce.value=!1}}function As(){if(!me||s.messagesLoading)return;let V=A.value,Ae=[...V?.querySelectorAll(".virtual-transcript-item")||[]].find(Ke=>Ke.dataset.virtualId===me.key);if(!Ae)return;H.value?.cancelPendingBottomFollow();let De=Ae.getBoundingClientRect().top-V.getBoundingClientRect().top-V.clientTop-me.top;Math.abs(De)>1&&(V.scrollTop+=De)}function Ns(){let V=xe,Ae=A.value,De=O.value;if(Se||!V||V.scope!==fe()||!Ae||!De)return;if(!z.value&&V.episodeId){let ts=s.messages.find(Pt=>Pt.role==="assistant"&&!V.previousIds.has(Pt.id)&&(!Pt.episodeId||Pt.episodeId===V.episodeId));if(ts){z.value=ts.id;let Pt=ie.value.find(ms=>ms.parts?.some(qr=>qr.id===ts.id));V.locked&&Pt&&H.value?.scrollToKey(Pt.id,{align:"start"}).then(es)}}if(!V.locked)return;let Ke=z.value?[...Ae.querySelectorAll(".person-message, .person-reply-part")].find(ts=>ts.dataset.messageId===z.value):j.value;if(!Ke){z.value||(Ae.scrollTop=Ae.scrollHeight);return}let ct=De.getBoundingClientRect().top-Ke.getBoundingClientRect().top,nt=parseFloat(getComputedStyle(Ae).paddingBottom)||0;V.viewportHeight=Math.max(V.viewportHeight,Ae.clientHeight);let Qe=Math.max(0,V.viewportHeight-ct-nt);Math.abs((parseFloat(De.style.height)||0)-Qe)>1&&(De.style.height=`${Qe}px`);let dt=Ke.getBoundingClientRect().top-Ae.getBoundingClientRect().top-Ae.clientTop;H.value?.cancelPendingBottomFollow({preserveTarget:!0}),Math.abs(dt)>1&&(Ae.scrollTop+=dt)}function es(){let V=Te;Vue.nextTick(()=>{Se||V!==Te||ue!==null||(Ns(),ue=requestAnimationFrame(()=>{ue=null,!Se&&V===Te&&Ns()}))})}let gs=()=>[s.messages.map(V=>[V.id,V.text,V.episodeId]),_e.value.loading,Ee.value?.at,Ee.value?.label];Vue.watch(gs,()=>{Ns(),es()},{flush:"post"}),Vue.watch(()=>[qe.value,e.chatHistoryConnectionGeneration],Et,{flush:"sync"}),Vue.watch(()=>s.messagesLoading,V=>{!V&&G&&(G=!1,ae())}),Vue.watch(()=>s.messagesLoading,async V=>{if(V||!me)return;let Ae=me,De=ie.value.findIndex(ct=>ct.id===Ae.key);if(De<0){me=null;return}H.value?.cancelPendingBottomFollow(),[...A.value?.querySelectorAll(".virtual-transcript-item")||[]].some(ct=>ct.dataset.virtualId===Ae.key)||await H.value?.scrollToIndex(De,{align:"start"}),!(me!==Ae||Se)&&(H.value?.clearTargetAnchor(),As())},{flush:"post"}),Vue.watch(ne,()=>{ye=!1,me=null,G=!1},{flush:"sync"}),Vue.onMounted(()=>{typeof MutationObserver<"u"&&q.value&&(pe=new MutationObserver(()=>{As(),Ct()}),pe.observe(q.value,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]})),typeof ResizeObserver<"u"&&(Y=new ResizeObserver(()=>{As(),Ns(),es(),Ct()}),A.value&&Y.observe(A.value),q.value&&Y.observe(q.value))}),Vue.onBeforeUnmount(()=>{Se=!0,Et(),Y?.disconnect(),pe?.disconnect(),Ne!==null&&cancelAnimationFrame(Ne)});function hs(){e.leaveDigitalPerson(),e.leaveWorkCenter(),e.closePluginCenter(),window.innerWidth<=768&&(e.sessionSidebarOpen=!0),Vue.nextTick(()=>[...document.querySelectorAll(".sidebar-person-trigger")].find(V=>V.getClientRects().length)?.focus())}async function U(V){let Ae=I.selectOutput(V);g.value!=="outputs"&&await us("outputs"),await Ae}function oe(V){let Ae=Qt(V);return Ae?(U({id:"link:"+Ae,title:Ae,kind:"link",url:Ae}),!0):!1}function Pe(V){if(V.defaultPrevented||V.button!==0||V.ctrlKey||V.metaKey||V.shiftKey||V.altKey)return;let Ae=V.target.closest?.("a[href]"),De=po(Ae?.getAttribute("href"));!De||Ae.hasAttribute("download")||Ae.target&&Ae.target!=="_blank"||(V.preventDefault(),U({id:"link:"+De,title:Ae.textContent||De,kind:"link",url:De}))}let Ue=V=>V.episodeId?s.outputs.items.filter(Ae=>Ae.episodeId===V.episodeId):[];return Vue.watch(()=>s.person?.id,(V,Ae)=>{Ae&&V&&V!==Ae&&Je()},{flush:"sync"}),{settingsButton:d,mobileHeader:a,moreOpen:l,moreButton:c,inspectorNav:u,backgroundInert:y,closeMore:xt,selectMore:ps,outputReader:_,outputVisited:S,outputButton:b,panelWidth:w,expandedPanel:h,modalPanel:m,selectOutput:U,previewReplyLink:Pe,openReplyBrowser:oe,deliveredOutputs:Ue,chat:e,state:s,agentId:r,draft:i,panel:g,compactPanel:v,sidePanel:C,thoughtButton:M,inspectedEpisodeId:E,inspectTurn:nn,searchButton:W,searchInput:$,searchQuery:x,closePanelButton:Z,agentOptions:T,messagePane:A,readingColumn:q,transcript:H,transcriptIdentity:ne,activeResponseKey:Le,atLatest:We,backToCurrentTurn:Is,scrollToLatest:cs,conversationScroll:de,loadOlderMessages:he,estimateConversationHeight:re,responseStart:j,responseTail:O,focusedResponseId:z,hasResponseFocus:te,responsePinned:ce,releaseResponseFocus:En,returnButton:Ze,gate:qe,ready:le,activity:_e,feedback:Ee,responding:Fe,conversation:ie,loadingReplyKey:pt,canCompose:ds,canStartEpisode:Rn,controller:I,command:or,discardRetry:sn,openPanel:us,closePanel:Je,togglePanel:Dt,panelKeydown:Vs,leave:hs,asUserMessage:V=>({id:V.messageId||V.id,type:"user",content:V.text,createdAt:new Date(V.createdAt).getTime()}),time:V=>V?new Date(V).toLocaleString():"",datetime:V=>V!=null&&Number.isFinite(new Date(V).getTime())?new Date(V).toISOString():void 0,renderSafeMessageMarkdown:wc,attachments:$e,attachmentError:je,fileError:rr,filesReady:Ge,canSend:_n,addFiles:se,retryAttachment:Me,removeAttachment:B,settingsOpen:o,saveSettings:ir,PERSON_FILE_ACCEPT:tf}},template:`
8757
8748
  <div class="person-page">
8758
8749
  <header class="chat-header person-header" :inert="backgroundInert ? true : undefined">
8759
8750
  <nav class="person-navigation" :aria-label="$t('person.navigation')">
@@ -8956,7 +8947,7 @@ ${String(e||"").trim()}
8956
8947
  </div>
8957
8948
  <p v-if="error || lastRun?.error || task.lastError" class="scheduled-task-error" role="alert">{{ error || lastRun?.error || task.lastError }}</p>
8958
8949
  </div>
8959
- `}});function TS(e={}){let{sessions:t,activeSessionId:s,activeSessionKey:n,pinnedSessionIds:r,onlineAgentIds:i}=e,o=s||null,a=n||null,l=Object.prototype.hasOwnProperty.call(e,"activeSessionKey"),c=Array.isArray(r)?r:[],d=Array.isArray(i)?new Set(i.filter(Boolean)):null,u=new Map;c.forEach((f,g)=>{typeof f=="string"&&f&&!u.has(f)&&u.set(f,g)});let p=[];for(let f of Array.isArray(t)?t:[]){if(!f||!f.id||d&&f.agentId&&!d.has(f.agentId))continue;let g=String(f.id),v=f.agentId?`${f.agentId}${g}`:g;p.push({kind:"session",id:g,raw:f,pinned:!!f.pinned||!f.agentId&&u.has(g),active:l?v===a:g===o,processing:!!f.running||!!f.active||!!f.isRunning||!!f.isActive,_manualOrder:Number.isFinite(f.sortOrder)?f.sortOrder:Number.MAX_SAFE_INTEGER,_activityTime:fa(f)})}return p.sort((f,g)=>{if(f.pinned!==g.pinned)return f.pinned?-1:1;if(f._manualOrder!==g._manualOrder)return f._manualOrder-g._manualOrder;if(f._activityTime!==g._activityTime)return g._activityTime-f._activityTime;let v=u.has(f.id)?u.get(f.id):Number.MAX_SAFE_INTEGER,h=u.has(g.id)?u.get(g.id):Number.MAX_SAFE_INTEGER;return v!==h?v-h:f.id.localeCompare(g.id)}),p.map(({_manualOrder:f,_activityTime:g,...v})=>v)}var MS=F(()=>{ji()});var P1,oF,PS,RS=F(()=>{qs();qt();sa();Pp();Rp();_p();Ep();Dp();Gp();MS();P1=3600*1e3,oF=24*P1,PS={name:"YeaftSidebar",components:{NavigationIcon:Mt,SessionCreateModal:sr,SidebarAgentHeader:nc,SidebarWorkCenter:rc,SidebarDigitalPerson:ic,SessionSidebarShell:oc,UnifiedSessionList:ac},emits:["select-group","select-chat","toggle-sidebar","back","open-settings","open-agent-settings","open-group-settings"],template:`
8950
+ `}});function TS(e={}){let{sessions:t,activeSessionId:s,activeSessionKey:n,pinnedSessionIds:r,onlineAgentIds:i}=e,o=s||null,a=n||null,l=Object.prototype.hasOwnProperty.call(e,"activeSessionKey"),c=Array.isArray(r)?r:[],d=Array.isArray(i)?new Set(i.filter(Boolean)):null,u=new Map;c.forEach((f,g)=>{typeof f=="string"&&f&&!u.has(f)&&u.set(f,g)});let p=[];for(let f of Array.isArray(t)?t:[]){if(!f||!f.id||d&&f.agentId&&!d.has(f.agentId))continue;let g=String(f.id),v=f.agentId?`${f.agentId}${g}`:g;p.push({kind:"session",id:g,raw:f,pinned:!!f.pinned||!f.agentId&&u.has(g),active:l?v===a:g===o,processing:!!f.running||!!f.active||!!f.isRunning||!!f.isActive,_manualOrder:Number.isFinite(f.sortOrder)?f.sortOrder:Number.MAX_SAFE_INTEGER,_activityTime:fa(f)})}return p.sort((f,g)=>{if(f.pinned!==g.pinned)return f.pinned?-1:1;if(f._manualOrder!==g._manualOrder)return f._manualOrder-g._manualOrder;if(f._activityTime!==g._activityTime)return g._activityTime-f._activityTime;let v=u.has(f.id)?u.get(f.id):Number.MAX_SAFE_INTEGER,h=u.has(g.id)?u.get(g.id):Number.MAX_SAFE_INTEGER;return v!==h?v-h:f.id.localeCompare(g.id)}),p.map(({_manualOrder:f,_activityTime:g,...v})=>v)}var MS=F(()=>{ji()});var PT,oF,PS,RS=F(()=>{qs();qt();sa();Pp();Rp();_p();Ep();Dp();Gp();MS();PT=3600*1e3,oF=24*PT,PS={name:"YeaftSidebar",components:{NavigationIcon:Mt,SessionCreateModal:sr,SidebarAgentHeader:nc,SidebarWorkCenter:rc,SidebarDigitalPerson:ic,SessionSidebarShell:oc,UnifiedSessionList:ac},emits:["select-group","select-chat","toggle-sidebar","back","open-settings","open-agent-settings","open-group-settings"],template:`
8960
8951
  <SessionSidebarShell class="yeaft-sidebar" :collapsed="collapsed">
8961
8952
  <template #collapsed>
8962
8953
  <!-- Collapsed Icon Bar \u2014 mirrors Chat's .sidebar-collapsed-bar so the
@@ -9083,7 +9074,7 @@ ${String(e||"").trim()}
9083
9074
  </div>
9084
9075
  </div>
9085
9076
  </div>
9086
- `,mounted(){window.addEventListener("keydown",this.onEsc)},beforeUnmount(){window.removeEventListener("keydown",this.onEsc)},methods:{onEsc(e){e.key==="Escape"&&this.onDismiss()},onOpen(){this.$emit("open-library")},onDismiss(){this.$emit("dismiss")}}}});function uf(e){return e==="task"||e==="members"||e===nr?e:(R1.has(e),nr)}var nr,R1,$S,DS=F(()=>{df();Eo();Ro();Tn();jo();nr="session",R1=new Set(["announcement","rename","danger"]);$S={name:"SessionSettingsModal",components:{FolderPickerDialog:zn,ScheduledTaskSettings:IS},mixins:[ll],emits:["close","open-vp-library"],props:{groupId:{type:String,required:!0},agentId:{type:String,default:null},initialSection:{type:String,default:nr,validator:e=>[nr,"task","announcement","members","rename","danger"].includes(e)},initialEditVpId:{type:String,default:""}},data(){return{taskBusy:!1,section:this.initialEditVpId?"members":uf(this.initialSection),announcementDraft:"",announcementBusy:!1,announcementError:"",renameDraft:"",renameBusy:!1,renameError:"",workDirDraft:"",workDirBusy:!1,workDirError:"",membersBusy:!1,membersError:"",highlightedVpId:this.initialEditVpId||"",deleteConfirmText:"",deleteBusy:!1,deleteError:""}},computed:{folderPickerAgentId(){return this.targetAgentId},defaultWorkDir(){return this.chat?.agents?.find(e=>e.id===this.targetAgentId)?.workDir||""},chat(){try{return window.Pinia?.useChatStore?.()||null}catch{return null}},vpStore(){try{return window.Pinia?.useVpStore?.()||null}catch{return null}},sessionsStore(){try{return window.Pinia?.useSessionsStore?.()||null}catch{return null}},group(){let e=this.sessionsStore,t=this.agentId||this.chat?.currentAgent||null;return e&&typeof e.sessionById=="function"?e.sessionById(this.groupId,t):null},targetAgentId(){return this.agentId||this.group?.agentId||this.chat?.currentAgent||null},groupDisplayName(){let e=this.group;return e?e.id==="grp_default"&&(e.name==="Default"||!e.name)?this.$t("yeaft.session.defaultName")||e.name||e.id:e.name||e.id:""},announcement(){return this.group&&typeof this.group.announcement=="string"?this.group.announcement:""},workDir(){return this.group&&typeof this.group.workDir=="string"?this.group.workDir:""},roster(){return this.group&&Array.isArray(this.group.roster)?this.group.roster:[]},defaultVpId(){return this.group&&this.group.defaultVpId||null},vpList(){return this.vpStore?.vpList||[]},vpDomainSections(){return Rr(this.vpList)},vpLibraryEmpty(){let e=this.vpStore;return e?e.emptyLibrary===!0?!0:!!(e.lastSnapshotAt&&e.lastSnapshotAt>0&&(e.vpOrder?.length||0)===0):!1},deleteConfirmReady(){return this.deleteConfirmText.trim()===this.groupDisplayName},sections(){return[...this.group?.task?[{id:"task",label:this.$t("scheduledTasks.task")}]:[],{id:nr,label:this.$t("yeaft.session.settings.nav.session")},{id:"members",label:this.$t("yeaft.session.settings.nav.members")}]}},watch:{section(e){e===nr&&(this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir),this.announcementError="",this.renameError="",this.workDirError="",this.membersError="",this.deleteError="",this.deleteConfirmText=""},initialEditVpId(e){this.highlightedVpId=e||"",e&&(this.section="members")},initialSection(e){this.initialEditVpId||(this.section=uf(e))},groupId(){this.section=this.initialEditVpId?"members":uf(this.initialSection),this.highlightedVpId=this.initialEditVpId||"",this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir,this.deleteConfirmText="",this.announcementError="",this.renameError="",this.workDirError="",this.membersError="",this.deleteError=""},group(e,t){t&&!e&&!this.deleteBusy&&this.requestClose()}},mounted(){window.addEventListener("keydown",this.onEsc);try{if(this.vpStore&&this.vpStore.lastSnapshotAt===0){let e=this.chat;e&&typeof e.sendWsMessage=="function"&&e.sendWsMessage({type:"yeaft_vp_subscribe"})}}catch{}this.section===nr&&(this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir)},beforeUnmount(){window.removeEventListener("keydown",this.onEsc)},methods:{folderPickerInitialDir(){return this.workDirDraft||this.workDir||this.defaultWorkDir},folderPickerSetWorkDir(e){this.workDirDraft=e},trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,onEsc(e){e.key!=="Escape"||this.folderPickerOpen||this.taskBusy||this.announcementBusy||this.renameBusy||this.workDirBusy||this.membersBusy||this.deleteBusy||this.requestClose()},onOverlayClick(e){Gt(e)&&(this.taskBusy||this.announcementBusy||this.renameBusy||this.workDirBusy||this.membersBusy||this.deleteBusy||this.requestClose())},requestClose(){this.$emit("close")},selectSection(e){e!==this.section&&(this.section=e)},async saveAnnouncement(){if(!(this.announcementBusy||!this.chat)){this.announcementBusy=!0,this.announcementError="";try{let e=await this.chat.sessionCrudRequest("update",{sessionId:this.groupId,patch:{announcement:this.announcementDraft}},{agentId:this.targetAgentId});if(!e||!e.ok){let t=e&&e.error&&e.error.code||"unknown",s=e&&e.error&&e.error.message||t;this.announcementError=this.$t("yeaft.session.announcement.saveFailed",{error:s})}}finally{this.announcementBusy=!1}}},async saveRename(){let e=(this.renameDraft||"").trim();if(!(!e||this.renameBusy||!this.chat)){this.renameBusy=!0,this.renameError="";try{let t=await this.chat.sessionCrudRequest("rename",{sessionId:this.groupId,name:e},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.renameError=this.$t("yeaft.session.error.unknown",{message:n})}}finally{this.renameBusy=!1}}},async saveWorkDir(){if(this.workDirBusy||!this.chat)return;let e=(this.workDirDraft||"").trim();this.workDirBusy=!0,this.workDirError="";try{let t=await this.chat.sessionCrudRequest("update",{sessionId:this.groupId,patch:{workDir:e}},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.workDirError=this.$t("yeaft.session.settings.workDir.saveFailed",{error:n})}else typeof t.session?.workDir=="string"&&(this.workDirDraft=t.session.workDir)}finally{this.workDirBusy=!1}},isMember(e){return this.roster.includes(e)},vpLabelFor(e){let t=this.vpStore?.vpLabel;return typeof t=="function"?t(e):e},vpDescriptionFor(e){let t=this.vpStore?.vpDescription;return typeof t=="function"?t(e):""},vpTextColorFor(e){let t=this.vpStore?.vpTextColor;return typeof t=="function"?t(e):"var(--vp-avatar-rat-fg)"},async toggleMember(e,t){if(!(this.membersBusy||!this.chat)){this.membersBusy=!0,this.membersError="";try{let s=t?"add_member":"remove_member",n=await this.chat.sessionCrudRequest(s,{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(!n||!n.ok){let r=n&&n.error&&n.error.code||"unknown",i=n&&n.error&&n.error.message||r;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:i})}else if(s==="add_member"&&!this.defaultVpId){let r=await this.chat.sessionCrudRequest("set_default_vp",{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(r&&!r.ok){let i=r.error&&r.error.code||"unknown",o=r.error&&r.error.message||i;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:o})}}}finally{this.membersBusy=!1}}},async setDefault(e){if(!(this.membersBusy||!this.chat||this.defaultVpId===e)){this.membersBusy=!0,this.membersError="";try{let t=await this.chat.sessionCrudRequest("set_default_vp",{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:n})}}finally{this.membersBusy=!1}}},async confirmDelete(){if(!(!this.deleteConfirmReady||this.deleteBusy||!this.chat)){this.deleteBusy=!0,this.deleteError="";try{let e=await this.chat.sessionCrudRequest("delete",{sessionId:this.groupId},{agentId:this.targetAgentId});if(!e||!e.ok){let t=e&&e.error&&e.error.code||"unknown",s=e&&e.error&&e.error.message||t;this.deleteError=this.$t("yeaft.session.error.unknown",{message:s});return}this.requestClose()}finally{this.deleteBusy=!1}}}},template:`
9077
+ `,mounted(){window.addEventListener("keydown",this.onEsc)},beforeUnmount(){window.removeEventListener("keydown",this.onEsc)},methods:{onEsc(e){e.key==="Escape"&&this.onDismiss()},onOpen(){this.$emit("open-library")},onDismiss(){this.$emit("dismiss")}}}});function uf(e){return e==="task"||e==="members"||e===nr?e:(RT.has(e),nr)}var nr,RT,$S,DS=F(()=>{df();Eo();Ro();Tn();jo();nr="session",RT=new Set(["announcement","rename","danger"]);$S={name:"SessionSettingsModal",components:{FolderPickerDialog:zn,ScheduledTaskSettings:IS},mixins:[ll],emits:["close","open-vp-library"],props:{groupId:{type:String,required:!0},agentId:{type:String,default:null},initialSection:{type:String,default:nr,validator:e=>[nr,"task","announcement","members","rename","danger"].includes(e)},initialEditVpId:{type:String,default:""}},data(){return{taskBusy:!1,section:this.initialEditVpId?"members":uf(this.initialSection),announcementDraft:"",announcementBusy:!1,announcementError:"",renameDraft:"",renameBusy:!1,renameError:"",workDirDraft:"",workDirBusy:!1,workDirError:"",membersBusy:!1,membersError:"",highlightedVpId:this.initialEditVpId||"",deleteConfirmText:"",deleteBusy:!1,deleteError:""}},computed:{folderPickerAgentId(){return this.targetAgentId},defaultWorkDir(){return this.chat?.agents?.find(e=>e.id===this.targetAgentId)?.workDir||""},chat(){try{return window.Pinia?.useChatStore?.()||null}catch{return null}},vpStore(){try{return window.Pinia?.useVpStore?.()||null}catch{return null}},sessionsStore(){try{return window.Pinia?.useSessionsStore?.()||null}catch{return null}},group(){let e=this.sessionsStore,t=this.agentId||this.chat?.currentAgent||null;return e&&typeof e.sessionById=="function"?e.sessionById(this.groupId,t):null},targetAgentId(){return this.agentId||this.group?.agentId||this.chat?.currentAgent||null},groupDisplayName(){let e=this.group;return e?e.id==="grp_default"&&(e.name==="Default"||!e.name)?this.$t("yeaft.session.defaultName")||e.name||e.id:e.name||e.id:""},announcement(){return this.group&&typeof this.group.announcement=="string"?this.group.announcement:""},workDir(){return this.group&&typeof this.group.workDir=="string"?this.group.workDir:""},roster(){return this.group&&Array.isArray(this.group.roster)?this.group.roster:[]},defaultVpId(){return this.group&&this.group.defaultVpId||null},vpList(){return this.vpStore?.vpList||[]},vpDomainSections(){return Rr(this.vpList)},vpLibraryEmpty(){let e=this.vpStore;return e?e.emptyLibrary===!0?!0:!!(e.lastSnapshotAt&&e.lastSnapshotAt>0&&(e.vpOrder?.length||0)===0):!1},deleteConfirmReady(){return this.deleteConfirmText.trim()===this.groupDisplayName},sections(){return[...this.group?.task?[{id:"task",label:this.$t("scheduledTasks.task")}]:[],{id:nr,label:this.$t("yeaft.session.settings.nav.session")},{id:"members",label:this.$t("yeaft.session.settings.nav.members")}]}},watch:{section(e){e===nr&&(this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir),this.announcementError="",this.renameError="",this.workDirError="",this.membersError="",this.deleteError="",this.deleteConfirmText=""},initialEditVpId(e){this.highlightedVpId=e||"",e&&(this.section="members")},initialSection(e){this.initialEditVpId||(this.section=uf(e))},groupId(){this.section=this.initialEditVpId?"members":uf(this.initialSection),this.highlightedVpId=this.initialEditVpId||"",this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir,this.deleteConfirmText="",this.announcementError="",this.renameError="",this.workDirError="",this.membersError="",this.deleteError=""},group(e,t){t&&!e&&!this.deleteBusy&&this.requestClose()}},mounted(){window.addEventListener("keydown",this.onEsc);try{if(this.vpStore&&this.vpStore.lastSnapshotAt===0){let e=this.chat;e&&typeof e.sendWsMessage=="function"&&e.sendWsMessage({type:"yeaft_vp_subscribe"})}}catch{}this.section===nr&&(this.announcementDraft=this.announcement,this.renameDraft=this.groupDisplayName,this.workDirDraft=this.workDir)},beforeUnmount(){window.removeEventListener("keydown",this.onEsc)},methods:{folderPickerInitialDir(){return this.workDirDraft||this.workDir||this.defaultWorkDir},folderPickerSetWorkDir(e){this.workDirDraft=e},trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,onEsc(e){e.key!=="Escape"||this.folderPickerOpen||this.taskBusy||this.announcementBusy||this.renameBusy||this.workDirBusy||this.membersBusy||this.deleteBusy||this.requestClose()},onOverlayClick(e){Gt(e)&&(this.taskBusy||this.announcementBusy||this.renameBusy||this.workDirBusy||this.membersBusy||this.deleteBusy||this.requestClose())},requestClose(){this.$emit("close")},selectSection(e){e!==this.section&&(this.section=e)},async saveAnnouncement(){if(!(this.announcementBusy||!this.chat)){this.announcementBusy=!0,this.announcementError="";try{let e=await this.chat.sessionCrudRequest("update",{sessionId:this.groupId,patch:{announcement:this.announcementDraft}},{agentId:this.targetAgentId});if(!e||!e.ok){let t=e&&e.error&&e.error.code||"unknown",s=e&&e.error&&e.error.message||t;this.announcementError=this.$t("yeaft.session.announcement.saveFailed",{error:s})}}finally{this.announcementBusy=!1}}},async saveRename(){let e=(this.renameDraft||"").trim();if(!(!e||this.renameBusy||!this.chat)){this.renameBusy=!0,this.renameError="";try{let t=await this.chat.sessionCrudRequest("rename",{sessionId:this.groupId,name:e},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.renameError=this.$t("yeaft.session.error.unknown",{message:n})}}finally{this.renameBusy=!1}}},async saveWorkDir(){if(this.workDirBusy||!this.chat)return;let e=(this.workDirDraft||"").trim();this.workDirBusy=!0,this.workDirError="";try{let t=await this.chat.sessionCrudRequest("update",{sessionId:this.groupId,patch:{workDir:e}},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.workDirError=this.$t("yeaft.session.settings.workDir.saveFailed",{error:n})}else typeof t.session?.workDir=="string"&&(this.workDirDraft=t.session.workDir)}finally{this.workDirBusy=!1}},isMember(e){return this.roster.includes(e)},vpLabelFor(e){let t=this.vpStore?.vpLabel;return typeof t=="function"?t(e):e},vpDescriptionFor(e){let t=this.vpStore?.vpDescription;return typeof t=="function"?t(e):""},vpTextColorFor(e){let t=this.vpStore?.vpTextColor;return typeof t=="function"?t(e):"var(--vp-avatar-rat-fg)"},async toggleMember(e,t){if(!(this.membersBusy||!this.chat)){this.membersBusy=!0,this.membersError="";try{let s=t?"add_member":"remove_member",n=await this.chat.sessionCrudRequest(s,{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(!n||!n.ok){let r=n&&n.error&&n.error.code||"unknown",i=n&&n.error&&n.error.message||r;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:i})}else if(s==="add_member"&&!this.defaultVpId){let r=await this.chat.sessionCrudRequest("set_default_vp",{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(r&&!r.ok){let i=r.error&&r.error.code||"unknown",o=r.error&&r.error.message||i;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:o})}}}finally{this.membersBusy=!1}}},async setDefault(e){if(!(this.membersBusy||!this.chat||this.defaultVpId===e)){this.membersBusy=!0,this.membersError="";try{let t=await this.chat.sessionCrudRequest("set_default_vp",{sessionId:this.groupId,vpId:e},{agentId:this.targetAgentId});if(!t||!t.ok){let s=t&&t.error&&t.error.code||"unknown",n=t&&t.error&&t.error.message||s;this.membersError=this.$t("yeaft.session.members.actionFailed",{error:n})}}finally{this.membersBusy=!1}}},async confirmDelete(){if(!(!this.deleteConfirmReady||this.deleteBusy||!this.chat)){this.deleteBusy=!0,this.deleteError="";try{let e=await this.chat.sessionCrudRequest("delete",{sessionId:this.groupId},{agentId:this.targetAgentId});if(!e||!e.ok){let t=e&&e.error&&e.error.code||"unknown",s=e&&e.error&&e.error.message||t;this.deleteError=this.$t("yeaft.session.error.unknown",{message:s});return}this.requestClose()}finally{this.deleteBusy=!1}}}},template:`
9087
9078
  <Teleport to="body">
9088
9079
  <div
9089
9080
  class="group-settings-overlay"
@@ -9304,8 +9295,8 @@ ${String(e||"").trim()}
9304
9295
  @navigate="loadFolderPickerDir" @edit-path="folderPickerEditPath"
9305
9296
  @confirm="confirmFolderPicker" @close="closeFolderPicker" />
9306
9297
  </Teleport>
9307
- `}});var LS,_1,OS,FS=F(()=>{Md();LS=1,_1=5,OS={name:"YeaftDebugPanel",emits:["close"],data(){return{expandedTurns:{},expandedLoops:{},expandedSections:{},expandedToolDetails:{},copiedFlash:null,copiedFlashAt:0,_expandSnapshot:null,activeTab:"requests"}},watch:{turns(e,t){let s=e&&e[0];!s||!s.turnId||(t&&t[0]&&t[0].turnId)===s.turnId&&this.expandedTurns[s.turnId]||(this.expandedTurns={...this.expandedTurns,[s.turnId]:!0},this.ensureRequestDetailLoaded(s.turnId))},searchQuery(e,t){let s=!!(t&&t.trim()),n=!!(e&&e.trim());if(!s&&n){this._expandSnapshot={turns:{...this.expandedTurns},loops:{...this.expandedLoops}};let r={},i={};for(let o of this.turns)r[o.turnId]=!0,o.loops&&o.loops.length>0&&(i[`${o.turnId}#${o.loops[0].loopNumber}`]=!0);this.expandedTurns=r,this.expandedLoops=i}else if(s&&!n&&this._expandSnapshot)this.expandedTurns=this._expandSnapshot.turns,this.expandedLoops=this._expandSnapshot.loops,this._expandSnapshot=null;else if(n){let r={...this.expandedTurns};for(let i of this.turns)r[i.turnId]===void 0&&(r[i.turnId]=!0);this.expandedTurns=r}}},computed:{store(){return window.Pinia?.useChatStore?.()||null},sessionsStore(){return window.Pinia?.useSessionsStore?.()||null},turns(){let e=this.store&&this.store.yeaftDebugPanel||{},t=e.turnId?this.store&&this.store.yeaftDebugTurnsById&&this.store.yeaftDebugTurnsById[e.turnId]:null;if(!t)return[];let s=this.debugLoopsForTurn(t.turnId),n=s.length>0?s:Array.isArray(t.loops)?t.loops:[],r={...t,loops:n};return[{...this.decorateTurnTokenBreakdowns(r),latestRequest:this.latestRequestForTurn(r)}]},currentTurnId(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.turnId||""},currentTurnSessionId(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.sessionId||""},panelStatus(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.status||"idle"},panelLoading(){return this.panelStatus==="loading"},searchQuery:{get(){return this.store&&this.store.yeaftDebugSearch||""},set(e){this.store&&this.store.setYeaftDebugSearch(e)}},sessionFilter:{get(){if(!this.store)return"";let e=this.store.yeaftDebugSessionFilter;return e??""},set(e){this.store&&(e?this.store.setYeaftDebugSessionFilter(e):this.store.setYeaftDebugSessionFilter(null))}},availableSessions(){return this.store&&this.store.yeaftDebugAvailableSessions||[]},turnTotal(){return this.store&&this.store.yeaftDebugTurnTotal||0},showingMatchedHint(){return this.turnTotal>this.turns.length},requestHistoryLoading(){return!!this.store?.yeaftDebugHistoryLoading},requestHistoryError(){let e=this.store?.yeaftDebugHistoryError||"";return e==="debug_history_timeout"?this.$t("yeaft.debugHistoryUnavailable"):e},requestHistoryProjectionNotice(){return this.store?.yeaftDebugHistoryProjection?.truncated===!0?this.$t("yeaft.debugHistoryTruncated"):""},toolStats(){return this.store?.yeaftToolStats||null},toolStatsLoading(){return!!this.store?.yeaftToolStatsLoading},rankedToolRows(){let e=this.toolStats?.snapshot||{},t=Object.entries(e).map(([r,i])=>({name:r,...i})),s=new Set(t.map(r=>r.name)),n=Array.isArray(this.toolStats?.registered)?this.toolStats.registered:[];for(let r of n)typeof r!="string"||!r||s.has(r)||(t.push({name:r,callCount:0,errorCount:0,errorRate:0,avgMs:0,p50Ms:0,p95Ms:0,lastCalledAt:null,lastError:null}),s.add(r));return t.sort((r,i)=>{let o=(i.callCount||0)-(r.callCount||0);return o!==0?o:r.name.localeCompare(i.name)}),t},unusedToolRows(){return Array.isArray(this.toolStats?.unused)?this.toolStats.unused:[]},toolStatsFetchedAtLabel(){let e=this.toolStats?.fetchedAt;if(!e)return"";try{return new Date(e).toLocaleTimeString()}catch{return""}}},methods:{debugSessionId(e){return this.formatDebugSessionId(e&&(e.sessionId||e.groupId)||"")},formatDebugSessionId(e){let t=String(e||"");return t.startsWith("grp_")?t.slice(4):t},toggleTurn(e){let t=!this.expandedTurns[e];this.expandedTurns={...this.expandedTurns,[e]:t},t&&this.ensureRequestDetailLoaded(e)},debugLoopsForTurn(e){return(Array.isArray(this.store?.yeaftDebugLoops)?this.store.yeaftDebugLoops:[]).filter(s=>s&&s.turnId===e)},debugTurnNeedsDetailLoad(e){if(!e||!e.turnId)return!1;if(!e.detailsLoaded)return!0;let t=this.debugLoopsForTurn(e.turnId),s=Math.max(0,Number(e.loopCount||0)),n=new Set;for(let i of t){let o=Number(i?.loopNumber||0);Number.isFinite(o)&&o>0&&n.add(o)}if((n.size>0?Math.max(...n):0)>n.size||s>t.length)return!0;for(let i=1;i<=s;i++)if(!n.has(i))return!0;return!1},ensureRequestDetailLoaded(e){let t=this.store?.yeaftDebugTurnsById?.[e];!t||!this.store||typeof this.store.loadYeaftDebugHistory!="function"||this.debugTurnNeedsDetailLoad(t)&&this.store.loadYeaftDebugHistory({limit:LS,detailTurnId:e,groupId:t.sessionId||null})},toggleLoop(e,t){let s=`${e}#${t}`;this.expandedLoops={...this.expandedLoops,[s]:!this.expandedLoops[s]}},toggleSection(e,t){let s=`${e}#${t}`;this.expandedSections={...this.expandedSections,[s]:!this.expandedSections[s]}},isLoopExpanded(e,t){return!!this.expandedLoops[`${e}#${t}`]},isSectionExpanded(e,t){return!!this.expandedSections[`${e}#${t}`]},formatMs(e){return e==null?"-":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`},formatTokens(e){let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)},usageTotalInputTokens(e){let t=e||{};return Number.isFinite(Number(t.totalInputTokens))?Number(t.totalInputTokens):(Number(t.inputTokens)||0)+(Number(t.cacheReadTokens)||0)+(Number(t.cacheWriteTokens)||0)},usageTotalTokens(e){let t=e||{};return Number.isFinite(Number(t.totalTokens))?Number(t.totalTokens):this.usageTotalInputTokens(t)+(Number(t.outputTokens)||0)},formatUsageBreakdown(e){let t=e||{},s=Number(t.cacheReadTokens)||0,n=Number(t.cacheWriteTokens)||0,r=this.usageTotalInputTokens(t),i=Number(t.outputTokens)||0,o=this.usageTotalTokens(t),a=`${r} in / ${i} out / ${o} total`;return(s||n)&&(r===(Number(t.inputTokens)||0)?a+=` (input includes cache read ${s}, cache write ${n})`:a+=` (fresh ${Number(t.inputTokens)||0}, cache read ${s}, cache write ${n})`),a},formatClock(e){return Ih(e)},loopClockTime(e,t){if(t&&typeof t.at=="number")return this.formatClock(t.at);if(!e||typeof e.openedAt!="number")return"";let s=e.loops||[],n=0;for(let r of s)if(r){if(r===t||r.loopNumber===t.loopNumber)break;Number.isFinite(r.latencyMs)&&(n+=r.latencyMs)}return Number.isFinite(t.latencyMs)&&(n+=t.latencyMs),this.formatClock(e.openedAt+n)},loopTokenBreakdown(e){if(!e)return{inputMessage:0,inputTool:0,outputMessage:0,outputTool:0,inputTotal:0,outputTotal:0,total:0};let t=Sh(e),s=e.usage||{},n=Math.max(0,this.usageTotalInputTokens(s)),r=Math.max(0,Number(s.outputTokens)||0),i=Math.max(0,this.usageTotalTokens(s)||n+r),o=Td(n,t.inputMessageTokens,t.inputToolTokens),a=e.requestInputBreakdown?Ch(n,e.requestInputBreakdown):null,l=Td(r,t.outputMessageTokens,t.outputToolTokens);return{inputMessage:o.message,inputTool:o.tool,inputSystemPrompt:a?.systemPrompt??null,inputHistoryMessages:a?.historyMessages??null,inputToolDefinitions:a?.tools??null,inputCurrentTurn:a?.currentTurn??null,outputMessage:l.message,outputTool:l.tool,inputTotal:n,outputTotal:r,total:i}},decorateTurnTokenBreakdowns(e){if(!e)return e;let t={inputMessage:0,inputTool:0,outputMessage:0,outputTool:0,inputTotal:0,outputTotal:0,total:0},s=(e&&e.loops||[]).map(o=>{let a=this.loopTokenBreakdown(o);return t.inputMessage+=a.inputMessage,t.inputTool+=a.inputTool,t.outputMessage+=a.outputMessage,t.outputTool+=a.outputTool,t.inputTotal+=a.inputTotal,t.outputTotal+=a.outputTotal,t.total+=a.total,{...o,tokenBreakdown:a}});s.length===0&&(t.inputTotal=Math.max(0,Number(e.summaryInputTokens)||0),t.outputTotal=Math.max(0,Number(e.summaryOutputTokens)||0),t.total=t.inputTotal+t.outputTotal);let n=s.reduce((o,a)=>(Number(a?.tokenBreakdown?.total)||0)>(Number(o?.tokenBreakdown?.total)||0)?a:o,null),r={...t,messageTotal:t.inputMessage+t.outputMessage,toolTotal:t.inputTool+t.outputTool},i=Math.max(Number(e.totalTokens)||0,r.total||0);if(i>r.total){let o=i-r.total;r.total=i,r.inputTotal+=o,r.inputMessage+=o,r.messageTotal+=o}return{...e,loops:s,tokenBreakdown:r,maxLoopTokenBreakdown:n?.tokenBreakdown||null,maxLoopTokenTotal:Number(n?.tokenBreakdown?.total)||0,maxLoopNumber:n?.loopNumber||null}},turnTotalTokens(e){return Math.max(Number(e?.totalTokens)||0,Number(e?.tokenBreakdown?.total)||0)},loopBreakdownMessageTokens(e){return(Number(e?.inputMessage)||0)+(Number(e?.outputMessage)||0)},loopBreakdownToolTokens(e){return(Number(e?.inputTool)||0)+(Number(e?.outputTool)||0)},loopMessageTokens(e){return this.loopBreakdownMessageTokens(e?.tokenBreakdown||{})},loopToolTokens(e){return this.loopBreakdownToolTokens(e?.tokenBreakdown||{})},tokenPct(e,t){let s=Number(e)||0,n=Number(t)||0;return n<=0||s<=0?"0%":`${Math.round(s/n*100)}%`},hasRequestInputBreakdown(e){return e?.inputSystemPrompt!=null&&e?.inputHistoryMessages!=null&&e?.inputToolDefinitions!=null&&e?.inputCurrentTurn!=null},requestInputBreakdownTitle(e){let t=e||{};return this.$t("yeaft.debugInputTokenBreakdown",{total:Number(t.inputTotal)||0,system:Number(t.inputSystemPrompt)||0,history:Number(t.inputHistoryMessages)||0,tools:Number(t.inputToolDefinitions)||0,current:Number(t.inputCurrentTurn)||0})},tokenBreakdownTitle(e){let t=e||{},s=(Number(t.inputMessage)||0)+(Number(t.outputMessage)||0),n=(Number(t.inputTool)||0)+(Number(t.outputTool)||0),r=Math.max(Number(t.total)||0,s+n);return`estimated token split: message ${s} (${this.tokenPct(s,r)}), tool ${n} (${this.tokenPct(n,r)}); input ${Number(t.inputTotal)||0}, output ${Number(t.outputTotal)||0}, total ${r}`},truncate(e,t){let s=String(e||"");return s.length<=t?s:s.slice(0,t)+"\u2026"},toolsForLoop(e,t){let s=typeof t=="object"?t:(e?.loops||[]).find(l=>l&&l.loopNumber===t)||{loopNumber:t},n=s?.loopNumber||0,r=(e&&e.tools||[]).filter(l=>l&&l.loopNumber===n),i=new Set,o=Array.isArray(s?.toolCalls)?s.toolCalls:[],a=[];for(let l=0;l<o.length;l++){let c=o[l]||{},d=c.id||c.callId||c.tool_call_id||null,u=d?r.findIndex((f,g)=>!i.has(g)&&f.callId===d):-1;u<0&&(u=r.findIndex((f,g)=>!i.has(g)&&!f.callId&&f.name===c.name));let p=u>=0?r[u]:null;u>=0&&i.add(u),a.push(this.normalizeToolDebugRow(n,c,p,l))}for(let l=0;l<r.length;l++)i.has(l)||a.push(this.normalizeToolDebugRow(n,null,r[l],a.length));return a},normalizeToolDebugRow(e,t,s,n){let r=!!s,i=t&&Object.prototype.hasOwnProperty.call(t,"input")?t.input:void 0,o=t&&(t.id||t.callId||t.tool_call_id)||s?.callId||null,a=t&&t.name||s?.name||"?";return{loopNumber:e,index:n,callId:o,name:a,input:i,rawCall:t||null,rawResult:s||null,hasResult:r,isRunning:!r,isError:!!s?.isError,durationMs:s?.durationMs||0,toolOutput:s?.toolOutput==null?null:String(s.toolOutput)}},toolDetailKey(e,t,s,n=0){return`${e}#${t}#${s?.callId||s?.name||"tool"}#${n}`},isToolDetailExpanded(e,t,s,n){return!!this.expandedToolDetails[this.toolDetailKey(e,t,s,n)]},toggleToolDetail(e,t,s,n){let r=this.toolDetailKey(e,t,s,n);this.expandedToolDetails={...this.expandedToolDetails,[r]:!this.expandedToolDetails[r]}},toolStatusClass(e){return e?.isRunning?"running":e?.isError?"err":"ok"},toolStatusLabel(e){return e?.isRunning?this.$t?this.$t("yeaft.debugToolRunning"):"running":e?.isError?"\u2717":"\u2713"},toolInputText(e){return e?e.input!==void 0?JSON.stringify(e.input??null,null,2):e.rawCall?JSON.stringify(e.rawCall,null,2):JSON.stringify(e.rawResult||e,null,2):""},toolOutputText(e){return e?e.isRunning?this.$t?this.$t("yeaft.debugToolRunningNoResult"):"Running; no result yet":e.toolOutput!=null?e.toolOutput:e.rawResult?JSON.stringify(e.rawResult,null,2):"":""},reflectionsForLoop(e,t){return(e&&e.reflections||[]).filter(n=>n&&(n.loopNumber===t||n.loopNumber==null&&t===e.loopCount))},loopMetaSummary(e){let t=(e.toolCalls||[]).length;return t>0?`tools\xD7${t}`:"end_turn"},assistantResponseForLoop(e){if(!e)return"";if(e.response)return typeof e.response=="string"?e.response:JSON.stringify(e.response,null,2);let t=Array.isArray(e.messages)?e.messages:[];for(let s=t.length-1;s>=0;s--){let n=t[s];if(!(!n||n.role!=="assistant")){if(typeof n.content=="string")return n.content;if(Array.isArray(n.content)){let r=n.content.map(i=>i?typeof i=="string"?i:typeof i.text=="string"?i.text:"":"").filter(Boolean);if(r.length>0)return r.join(`
9308
- `)}if(n.content!=null)return JSON.stringify(n.content,null,2)}}return""},showAssistantResponse(e,t){let s=`${e}#${t}`,n=`${e}#asst-${t}`;this.expandedLoops={...this.expandedLoops,[s]:!0},this.expandedSections={...this.expandedSections,[n]:!0}},setActiveTab(e){this.activeTab=e==="toolStats"?e:"requests",this.activeTab==="toolStats"&&!this.toolStats&&!this.toolStatsLoading&&this.refreshToolStats()},loadRequestHistory(){if(!this.store||typeof this.store.loadYeaftDebugHistory!="function")return;let e=String(this.searchQuery||"").trim();this.store.loadYeaftDebugHistory({limit:e?_1:LS,indexOnly:!0,search:e})},refreshToolStats(){this.store&&typeof this.store.fetchYeaftToolStats=="function"&&this.store.fetchYeaftToolStats()},formatPct(e){return!Number.isFinite(e)||e===0?"0%":`${(e*100).toFixed(1)}%`},formatLastCalled(e){if(typeof e!="string"||!e)return"never";let t=Date.parse(e);if(Number.isNaN(t))return e;let s=Date.now()-t;return s<6e4?"just now":s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:`${Math.floor(s/864e5)}d ago`},copyText(e,t){let s=e==null?"":typeof e=="string"?e:JSON.stringify(e,null,2);try{if(navigator&&navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(s);else{let n=document.createElement("textarea");n.value=s,n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.select();try{document.execCommand("copy")}catch{}document.body.removeChild(n)}this.copiedFlash=t||"copied",this.copiedFlashAt=Date.now(),setTimeout(()=>{Date.now()-this.copiedFlashAt>=1400&&(this.copiedFlash=null)},1500)}catch{}},copyToolInput(e,t){if(t&&(t.input!==void 0||t.rawCall||t.rawResult)){this.copyText(this.toolInputText(t),"tool input");return}for(let s of e.loops||[])for(let n of s.toolCalls||[])if(n&&n.id===t.callId){this.copyText(JSON.stringify(n.input??null,null,2),"tool input");return}this.copyText(JSON.stringify(t,null,2),"tool record")},latestRequestForTurn(e){let t=(e.loops||[]).filter(Boolean).slice().sort((o,a)=>Number(a.loopNumber||0)-Number(o.loopNumber||0));if(!t.length)return null;let s=null,n=null,r="",i=null;for(let o of t){if(s==null){let a=this.rawRequestForLoop(o)?.body;a!=null&&(s=a,n=o.loopNumber)}if(!r&&o.systemPrompt&&(r=o.systemPrompt,i=o.loopNumber),s!=null&&r)break}return{bodyLoopNumber:n,systemPromptLoopNumber:i,bodyText:s==null?null:typeof s=="string"?s:JSON.stringify(s,null,2),systemPrompt:r}},rawRequestForLoop(e){return e?.rawRequest!==void 0?e.rawRequest:wh(e?.rawRequestBase??e?.requestBase?.rawRequest??null,e?.requestDelta||null)},copyToolOutput(e,t){if(t&&(t.isRunning||t.rawResult||t.toolOutput!=null)){this.copyText(this.toolOutputText(t),"tool output");return}if(t&&t.toolOutput!=null){this.copyText(t.toolOutput,"tool output");return}for(let s of e.loops||[])for(let n of s.messages||[])if(n&&n.role==="tool"&&n.toolCallId===t.callId){this.copyText(typeof n.content=="string"?n.content:JSON.stringify(n.content,null,2),"tool output");return}this.copyText("(tool output not in snapshot)","tool output")},copyTurnAsMarkdown(e){let t=[];t.push(`# Turn ${e.turnId}`),t.push(""),t.push(`- VP: ${e.vpId||"-"}`),t.push(`- Session: ${this.debugSessionId(e)||"-"}`),t.push(`- Loops: ${e.loopCount||e.loops&&e.loops.length||0}`),t.push(`- Total: ${this.formatMs(e.totalMs)} / ${this.formatTokens(e.totalTokens)} tok`),t.push(""),t.push("## User prompt"),t.push(""),t.push("```"),t.push(e.userPrompt||""),t.push("```"),t.push("");let s=this.latestRequestForTurn(e);if(s&&(t.push(`## ${this.$t("yeaft.debugLatestRequestBody")}${s.bodyLoopNumber!=null?` (Loop ${s.bodyLoopNumber})`:""}`),t.push(""),s.bodyText!=null?t.push("```json",s.bodyText,"```"):t.push(this.$t("yeaft.debugRequestBodyUnavailable")),t.push("",`## ${this.$t("yeaft.debugLatestSystemPrompt")}${s.systemPromptLoopNumber!=null?` (Loop ${s.systemPromptLoopNumber})`:""}`,""),s.systemPrompt?t.push("```text",s.systemPrompt,"```"):t.push(this.$t("yeaft.debugSystemPromptUnavailable")),t.push("")),e.memoryLoaded&&e.memoryLoaded.length>0){t.push(`## Memory loaded (${e.memoryLoaded.length})`);for(let r of e.memoryLoaded)t.push(`- ${r.id||"?"} layer=${r.layer||"-"} score=${r.score==null?"-":r.score.toFixed(3)} kind=${r.kind||"-"} scope=${r.label||r.scope||"-"}`),r.body&&(t.push(""),t.push("```text"),t.push(r.body),t.push("```"));t.push("")}if(e.memoryAdjust){let r=e.memoryAdjust;t.push(`## Memory adjust (reason: ${r.reason||"-"})`),t.push(`- added: ${r.added||0}`),t.push(`- evicted: ${r.evicted||0}`),t.push(`- skipped: ${r.skipped||0}`),t.push("")}let n=e.loops||[];for(let r of n){t.push(`## Loop ${r.loopNumber} ${r.model}`);let i=r.usage||{};t.push(`- in/out/total: ${this.formatUsageBreakdown(i)}`),t.push(`- latency: ${this.formatMs(r.latencyMs)} ttfb: ${this.formatMs(r.ttfbMs)}`),t.push(`- stopReason: ${r.stopReason||"-"}`);let o=this.toolsForLoop(e,r.loopNumber);if(o.length>0){t.push(""),t.push(`### Tools (${o.length})`);for(let l of o){let c=l.isRunning?"running":l.isError?"ERROR":"ok";t.push(`- ${l.name} ${c} ${l.isRunning?"-":this.formatMs(l.durationMs)}`)}}let a=this.assistantResponseForLoop(r);a&&(t.push(""),t.push("### Assistant text"),t.push("```"),t.push(a),t.push("```")),t.push("")}this.copyText(t.join(`
9298
+ `}});var LS,_T,OS,FS=F(()=>{Md();LS=1,_T=5,OS={name:"YeaftDebugPanel",emits:["close"],data(){return{expandedTurns:{},expandedLoops:{},expandedSections:{},expandedToolDetails:{},copiedFlash:null,copiedFlashAt:0,_expandSnapshot:null,activeTab:"requests"}},watch:{turns(e,t){let s=e&&e[0];!s||!s.turnId||(t&&t[0]&&t[0].turnId)===s.turnId&&this.expandedTurns[s.turnId]||(this.expandedTurns={...this.expandedTurns,[s.turnId]:!0},this.ensureRequestDetailLoaded(s.turnId))},searchQuery(e,t){let s=!!(t&&t.trim()),n=!!(e&&e.trim());if(!s&&n){this._expandSnapshot={turns:{...this.expandedTurns},loops:{...this.expandedLoops}};let r={},i={};for(let o of this.turns)r[o.turnId]=!0,o.loops&&o.loops.length>0&&(i[`${o.turnId}#${o.loops[0].loopNumber}`]=!0);this.expandedTurns=r,this.expandedLoops=i}else if(s&&!n&&this._expandSnapshot)this.expandedTurns=this._expandSnapshot.turns,this.expandedLoops=this._expandSnapshot.loops,this._expandSnapshot=null;else if(n){let r={...this.expandedTurns};for(let i of this.turns)r[i.turnId]===void 0&&(r[i.turnId]=!0);this.expandedTurns=r}}},computed:{store(){return window.Pinia?.useChatStore?.()||null},sessionsStore(){return window.Pinia?.useSessionsStore?.()||null},turns(){let e=this.store&&this.store.yeaftDebugPanel||{},t=e.turnId?this.store&&this.store.yeaftDebugTurnsById&&this.store.yeaftDebugTurnsById[e.turnId]:null;if(!t)return[];let s=this.debugLoopsForTurn(t.turnId),n=s.length>0?s:Array.isArray(t.loops)?t.loops:[],r={...t,loops:n};return[{...this.decorateTurnTokenBreakdowns(r),latestRequest:this.latestRequestForTurn(r)}]},currentTurnId(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.turnId||""},currentTurnSessionId(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.sessionId||""},panelStatus(){return this.store&&this.store.yeaftDebugPanel&&this.store.yeaftDebugPanel.status||"idle"},panelLoading(){return this.panelStatus==="loading"},searchQuery:{get(){return this.store&&this.store.yeaftDebugSearch||""},set(e){this.store&&this.store.setYeaftDebugSearch(e)}},sessionFilter:{get(){if(!this.store)return"";let e=this.store.yeaftDebugSessionFilter;return e??""},set(e){this.store&&(e?this.store.setYeaftDebugSessionFilter(e):this.store.setYeaftDebugSessionFilter(null))}},availableSessions(){return this.store&&this.store.yeaftDebugAvailableSessions||[]},turnTotal(){return this.store&&this.store.yeaftDebugTurnTotal||0},showingMatchedHint(){return this.turnTotal>this.turns.length},requestHistoryLoading(){return!!this.store?.yeaftDebugHistoryLoading},requestHistoryError(){let e=this.store?.yeaftDebugHistoryError||"";return e==="debug_history_timeout"?this.$t("yeaft.debugHistoryUnavailable"):e},requestHistoryProjectionNotice(){return this.store?.yeaftDebugHistoryProjection?.truncated===!0?this.$t("yeaft.debugHistoryTruncated"):""},toolStats(){return this.store?.yeaftToolStats||null},toolStatsLoading(){return!!this.store?.yeaftToolStatsLoading},rankedToolRows(){let e=this.toolStats?.snapshot||{},t=Object.entries(e).map(([r,i])=>({name:r,...i})),s=new Set(t.map(r=>r.name)),n=Array.isArray(this.toolStats?.registered)?this.toolStats.registered:[];for(let r of n)typeof r!="string"||!r||s.has(r)||(t.push({name:r,callCount:0,errorCount:0,errorRate:0,avgMs:0,p50Ms:0,p95Ms:0,lastCalledAt:null,lastError:null}),s.add(r));return t.sort((r,i)=>{let o=(i.callCount||0)-(r.callCount||0);return o!==0?o:r.name.localeCompare(i.name)}),t},unusedToolRows(){return Array.isArray(this.toolStats?.unused)?this.toolStats.unused:[]},toolStatsFetchedAtLabel(){let e=this.toolStats?.fetchedAt;if(!e)return"";try{return new Date(e).toLocaleTimeString()}catch{return""}}},methods:{debugSessionId(e){return this.formatDebugSessionId(e&&(e.sessionId||e.groupId)||"")},formatDebugSessionId(e){let t=String(e||"");return t.startsWith("grp_")?t.slice(4):t},toggleTurn(e){let t=!this.expandedTurns[e];this.expandedTurns={...this.expandedTurns,[e]:t},t&&this.ensureRequestDetailLoaded(e)},debugLoopsForTurn(e){return(Array.isArray(this.store?.yeaftDebugLoops)?this.store.yeaftDebugLoops:[]).filter(s=>s&&s.turnId===e)},debugTurnNeedsDetailLoad(e){if(!e||!e.turnId)return!1;if(!e.detailsLoaded)return!0;let t=this.debugLoopsForTurn(e.turnId),s=Math.max(0,Number(e.loopCount||0)),n=new Set;for(let i of t){let o=Number(i?.loopNumber||0);Number.isFinite(o)&&o>0&&n.add(o)}if((n.size>0?Math.max(...n):0)>n.size||s>t.length)return!0;for(let i=1;i<=s;i++)if(!n.has(i))return!0;return!1},ensureRequestDetailLoaded(e){let t=this.store?.yeaftDebugTurnsById?.[e];!t||!this.store||typeof this.store.loadYeaftDebugHistory!="function"||this.debugTurnNeedsDetailLoad(t)&&this.store.loadYeaftDebugHistory({limit:LS,detailTurnId:e,groupId:t.sessionId||null})},toggleLoop(e,t){let s=`${e}#${t}`;this.expandedLoops={...this.expandedLoops,[s]:!this.expandedLoops[s]}},toggleSection(e,t){let s=`${e}#${t}`;this.expandedSections={...this.expandedSections,[s]:!this.expandedSections[s]}},isLoopExpanded(e,t){return!!this.expandedLoops[`${e}#${t}`]},isSectionExpanded(e,t){return!!this.expandedSections[`${e}#${t}`]},formatMs(e){return e==null?"-":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`},formatTokens(e){let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)},usageTotalInputTokens(e){let t=e||{};return Number.isFinite(Number(t.totalInputTokens))?Number(t.totalInputTokens):(Number(t.inputTokens)||0)+(Number(t.cacheReadTokens)||0)+(Number(t.cacheWriteTokens)||0)},usageTotalTokens(e){let t=e||{};return Number.isFinite(Number(t.totalTokens))?Number(t.totalTokens):this.usageTotalInputTokens(t)+(Number(t.outputTokens)||0)},formatUsageBreakdown(e){let t=e||{},s=Number(t.cacheReadTokens)||0,n=Number(t.cacheWriteTokens)||0,r=this.usageTotalInputTokens(t),i=Number(t.outputTokens)||0,o=this.usageTotalTokens(t),a=`${r} in / ${i} out / ${o} total`;return(s||n)&&(r===(Number(t.inputTokens)||0)?a+=` (input includes cache read ${s}, cache write ${n})`:a+=` (fresh ${Number(t.inputTokens)||0}, cache read ${s}, cache write ${n})`),a},formatClock(e){return Ih(e)},loopClockTime(e,t){if(t&&typeof t.at=="number")return this.formatClock(t.at);if(!e||typeof e.openedAt!="number")return"";let s=e.loops||[],n=0;for(let r of s)if(r){if(r===t||r.loopNumber===t.loopNumber)break;Number.isFinite(r.latencyMs)&&(n+=r.latencyMs)}return Number.isFinite(t.latencyMs)&&(n+=t.latencyMs),this.formatClock(e.openedAt+n)},loopTokenBreakdown(e){if(!e)return{inputMessage:0,inputTool:0,outputMessage:0,outputTool:0,inputTotal:0,outputTotal:0,total:0};let t=Sh(e),s=e.usage||{},n=Math.max(0,this.usageTotalInputTokens(s)),r=Math.max(0,Number(s.outputTokens)||0),i=Math.max(0,this.usageTotalTokens(s)||n+r),o=Td(n,t.inputMessageTokens,t.inputToolTokens),a=e.requestInputBreakdown?Ch(n,e.requestInputBreakdown):null,l=Td(r,t.outputMessageTokens,t.outputToolTokens);return{inputMessage:o.message,inputTool:o.tool,inputSystemPrompt:a?.systemPrompt??null,inputHistoryMessages:a?.historyMessages??null,inputToolDefinitions:a?.tools??null,inputCurrentTurn:a?.currentTurn??null,outputMessage:l.message,outputTool:l.tool,inputTotal:n,outputTotal:r,total:i}},decorateTurnTokenBreakdowns(e){if(!e)return e;let t={inputMessage:0,inputTool:0,outputMessage:0,outputTool:0,inputTotal:0,outputTotal:0,total:0},s=(e&&e.loops||[]).map(o=>{let a=this.loopTokenBreakdown(o);return t.inputMessage+=a.inputMessage,t.inputTool+=a.inputTool,t.outputMessage+=a.outputMessage,t.outputTool+=a.outputTool,t.inputTotal+=a.inputTotal,t.outputTotal+=a.outputTotal,t.total+=a.total,{...o,tokenBreakdown:a}});s.length===0&&(t.inputTotal=Math.max(0,Number(e.summaryInputTokens)||0),t.outputTotal=Math.max(0,Number(e.summaryOutputTokens)||0),t.total=t.inputTotal+t.outputTotal);let n=s.reduce((o,a)=>(Number(a?.tokenBreakdown?.total)||0)>(Number(o?.tokenBreakdown?.total)||0)?a:o,null),r={...t,messageTotal:t.inputMessage+t.outputMessage,toolTotal:t.inputTool+t.outputTool},i=Math.max(Number(e.totalTokens)||0,r.total||0);if(i>r.total){let o=i-r.total;r.total=i,r.inputTotal+=o,r.inputMessage+=o,r.messageTotal+=o}return{...e,loops:s,tokenBreakdown:r,maxLoopTokenBreakdown:n?.tokenBreakdown||null,maxLoopTokenTotal:Number(n?.tokenBreakdown?.total)||0,maxLoopNumber:n?.loopNumber||null}},turnTotalTokens(e){return Math.max(Number(e?.totalTokens)||0,Number(e?.tokenBreakdown?.total)||0)},loopBreakdownMessageTokens(e){return(Number(e?.inputMessage)||0)+(Number(e?.outputMessage)||0)},loopBreakdownToolTokens(e){return(Number(e?.inputTool)||0)+(Number(e?.outputTool)||0)},loopMessageTokens(e){return this.loopBreakdownMessageTokens(e?.tokenBreakdown||{})},loopToolTokens(e){return this.loopBreakdownToolTokens(e?.tokenBreakdown||{})},tokenPct(e,t){let s=Number(e)||0,n=Number(t)||0;return n<=0||s<=0?"0%":`${Math.round(s/n*100)}%`},hasRequestInputBreakdown(e){return e?.inputSystemPrompt!=null&&e?.inputHistoryMessages!=null&&e?.inputToolDefinitions!=null&&e?.inputCurrentTurn!=null},requestInputBreakdownTitle(e){let t=e||{};return this.$t("yeaft.debugInputTokenBreakdown",{total:Number(t.inputTotal)||0,system:Number(t.inputSystemPrompt)||0,history:Number(t.inputHistoryMessages)||0,tools:Number(t.inputToolDefinitions)||0,current:Number(t.inputCurrentTurn)||0})},tokenBreakdownTitle(e){let t=e||{},s=(Number(t.inputMessage)||0)+(Number(t.outputMessage)||0),n=(Number(t.inputTool)||0)+(Number(t.outputTool)||0),r=Math.max(Number(t.total)||0,s+n);return`estimated token split: message ${s} (${this.tokenPct(s,r)}), tool ${n} (${this.tokenPct(n,r)}); input ${Number(t.inputTotal)||0}, output ${Number(t.outputTotal)||0}, total ${r}`},truncate(e,t){let s=String(e||"");return s.length<=t?s:s.slice(0,t)+"\u2026"},toolsForLoop(e,t){let s=typeof t=="object"?t:(e?.loops||[]).find(l=>l&&l.loopNumber===t)||{loopNumber:t},n=s?.loopNumber||0,r=(e&&e.tools||[]).filter(l=>l&&l.loopNumber===n),i=new Set,o=Array.isArray(s?.toolCalls)?s.toolCalls:[],a=[];for(let l=0;l<o.length;l++){let c=o[l]||{},d=c.id||c.callId||c.tool_call_id||null,u=d?r.findIndex((f,g)=>!i.has(g)&&f.callId===d):-1;u<0&&(u=r.findIndex((f,g)=>!i.has(g)&&!f.callId&&f.name===c.name));let p=u>=0?r[u]:null;u>=0&&i.add(u),a.push(this.normalizeToolDebugRow(n,c,p,l))}for(let l=0;l<r.length;l++)i.has(l)||a.push(this.normalizeToolDebugRow(n,null,r[l],a.length));return a},normalizeToolDebugRow(e,t,s,n){let r=!!s,i=t&&Object.prototype.hasOwnProperty.call(t,"input")?t.input:void 0,o=t&&(t.id||t.callId||t.tool_call_id)||s?.callId||null,a=t&&t.name||s?.name||"?";return{loopNumber:e,index:n,callId:o,name:a,input:i,rawCall:t||null,rawResult:s||null,hasResult:r,isRunning:!r,isError:!!s?.isError,durationMs:s?.durationMs||0,toolOutput:s?.toolOutput==null?null:String(s.toolOutput)}},toolDetailKey(e,t,s,n=0){return`${e}#${t}#${s?.callId||s?.name||"tool"}#${n}`},isToolDetailExpanded(e,t,s,n){return!!this.expandedToolDetails[this.toolDetailKey(e,t,s,n)]},toggleToolDetail(e,t,s,n){let r=this.toolDetailKey(e,t,s,n);this.expandedToolDetails={...this.expandedToolDetails,[r]:!this.expandedToolDetails[r]}},toolStatusClass(e){return e?.isRunning?"running":e?.isError?"err":"ok"},toolStatusLabel(e){return e?.isRunning?this.$t?this.$t("yeaft.debugToolRunning"):"running":e?.isError?"\u2717":"\u2713"},toolInputText(e){return e?e.input!==void 0?JSON.stringify(e.input??null,null,2):e.rawCall?JSON.stringify(e.rawCall,null,2):JSON.stringify(e.rawResult||e,null,2):""},toolOutputText(e){return e?e.isRunning?this.$t?this.$t("yeaft.debugToolRunningNoResult"):"Running; no result yet":e.toolOutput!=null?e.toolOutput:e.rawResult?JSON.stringify(e.rawResult,null,2):"":""},reflectionsForLoop(e,t){return(e&&e.reflections||[]).filter(n=>n&&(n.loopNumber===t||n.loopNumber==null&&t===e.loopCount))},loopMetaSummary(e){let t=(e.toolCalls||[]).length;return t>0?`tools\xD7${t}`:"end_turn"},assistantResponseForLoop(e){if(!e)return"";if(e.response)return typeof e.response=="string"?e.response:JSON.stringify(e.response,null,2);let t=Array.isArray(e.messages)?e.messages:[];for(let s=t.length-1;s>=0;s--){let n=t[s];if(!(!n||n.role!=="assistant")){if(typeof n.content=="string")return n.content;if(Array.isArray(n.content)){let r=n.content.map(i=>i?typeof i=="string"?i:typeof i.text=="string"?i.text:"":"").filter(Boolean);if(r.length>0)return r.join(`
9299
+ `)}if(n.content!=null)return JSON.stringify(n.content,null,2)}}return""},showAssistantResponse(e,t){let s=`${e}#${t}`,n=`${e}#asst-${t}`;this.expandedLoops={...this.expandedLoops,[s]:!0},this.expandedSections={...this.expandedSections,[n]:!0}},setActiveTab(e){this.activeTab=e==="toolStats"?e:"requests",this.activeTab==="toolStats"&&!this.toolStats&&!this.toolStatsLoading&&this.refreshToolStats()},loadRequestHistory(){if(!this.store||typeof this.store.loadYeaftDebugHistory!="function")return;let e=String(this.searchQuery||"").trim();this.store.loadYeaftDebugHistory({limit:e?_T:LS,indexOnly:!0,search:e})},refreshToolStats(){this.store&&typeof this.store.fetchYeaftToolStats=="function"&&this.store.fetchYeaftToolStats()},formatPct(e){return!Number.isFinite(e)||e===0?"0%":`${(e*100).toFixed(1)}%`},formatLastCalled(e){if(typeof e!="string"||!e)return"never";let t=Date.parse(e);if(Number.isNaN(t))return e;let s=Date.now()-t;return s<6e4?"just now":s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:`${Math.floor(s/864e5)}d ago`},copyText(e,t){let s=e==null?"":typeof e=="string"?e:JSON.stringify(e,null,2);try{if(navigator&&navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(s);else{let n=document.createElement("textarea");n.value=s,n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.select();try{document.execCommand("copy")}catch{}document.body.removeChild(n)}this.copiedFlash=t||"copied",this.copiedFlashAt=Date.now(),setTimeout(()=>{Date.now()-this.copiedFlashAt>=1400&&(this.copiedFlash=null)},1500)}catch{}},copyToolInput(e,t){if(t&&(t.input!==void 0||t.rawCall||t.rawResult)){this.copyText(this.toolInputText(t),"tool input");return}for(let s of e.loops||[])for(let n of s.toolCalls||[])if(n&&n.id===t.callId){this.copyText(JSON.stringify(n.input??null,null,2),"tool input");return}this.copyText(JSON.stringify(t,null,2),"tool record")},latestRequestForTurn(e){let t=(e.loops||[]).filter(Boolean).slice().sort((o,a)=>Number(a.loopNumber||0)-Number(o.loopNumber||0));if(!t.length)return null;let s=null,n=null,r="",i=null;for(let o of t){if(s==null){let a=this.rawRequestForLoop(o)?.body;a!=null&&(s=a,n=o.loopNumber)}if(!r&&o.systemPrompt&&(r=o.systemPrompt,i=o.loopNumber),s!=null&&r)break}return{bodyLoopNumber:n,systemPromptLoopNumber:i,bodyText:s==null?null:typeof s=="string"?s:JSON.stringify(s,null,2),systemPrompt:r}},rawRequestForLoop(e){return e?.rawRequest!==void 0?e.rawRequest:wh(e?.rawRequestBase??e?.requestBase?.rawRequest??null,e?.requestDelta||null)},copyToolOutput(e,t){if(t&&(t.isRunning||t.rawResult||t.toolOutput!=null)){this.copyText(this.toolOutputText(t),"tool output");return}if(t&&t.toolOutput!=null){this.copyText(t.toolOutput,"tool output");return}for(let s of e.loops||[])for(let n of s.messages||[])if(n&&n.role==="tool"&&n.toolCallId===t.callId){this.copyText(typeof n.content=="string"?n.content:JSON.stringify(n.content,null,2),"tool output");return}this.copyText("(tool output not in snapshot)","tool output")},copyTurnAsMarkdown(e){let t=[];t.push(`# Turn ${e.turnId}`),t.push(""),t.push(`- VP: ${e.vpId||"-"}`),t.push(`- Session: ${this.debugSessionId(e)||"-"}`),t.push(`- Loops: ${e.loopCount||e.loops&&e.loops.length||0}`),t.push(`- Total: ${this.formatMs(e.totalMs)} / ${this.formatTokens(e.totalTokens)} tok`),t.push(""),t.push("## User prompt"),t.push(""),t.push("```"),t.push(e.userPrompt||""),t.push("```"),t.push("");let s=this.latestRequestForTurn(e);if(s&&(t.push(`## ${this.$t("yeaft.debugLatestRequestBody")}${s.bodyLoopNumber!=null?` (Loop ${s.bodyLoopNumber})`:""}`),t.push(""),s.bodyText!=null?t.push("```json",s.bodyText,"```"):t.push(this.$t("yeaft.debugRequestBodyUnavailable")),t.push("",`## ${this.$t("yeaft.debugLatestSystemPrompt")}${s.systemPromptLoopNumber!=null?` (Loop ${s.systemPromptLoopNumber})`:""}`,""),s.systemPrompt?t.push("```text",s.systemPrompt,"```"):t.push(this.$t("yeaft.debugSystemPromptUnavailable")),t.push("")),e.memoryLoaded&&e.memoryLoaded.length>0){t.push(`## Memory loaded (${e.memoryLoaded.length})`);for(let r of e.memoryLoaded)t.push(`- ${r.id||"?"} layer=${r.layer||"-"} score=${r.score==null?"-":r.score.toFixed(3)} kind=${r.kind||"-"} scope=${r.label||r.scope||"-"}`),r.body&&(t.push(""),t.push("```text"),t.push(r.body),t.push("```"));t.push("")}if(e.memoryAdjust){let r=e.memoryAdjust;t.push(`## Memory adjust (reason: ${r.reason||"-"})`),t.push(`- added: ${r.added||0}`),t.push(`- evicted: ${r.evicted||0}`),t.push(`- skipped: ${r.skipped||0}`),t.push("")}let n=e.loops||[];for(let r of n){t.push(`## Loop ${r.loopNumber} ${r.model}`);let i=r.usage||{};t.push(`- in/out/total: ${this.formatUsageBreakdown(i)}`),t.push(`- latency: ${this.formatMs(r.latencyMs)} ttfb: ${this.formatMs(r.ttfbMs)}`),t.push(`- stopReason: ${r.stopReason||"-"}`);let o=this.toolsForLoop(e,r.loopNumber);if(o.length>0){t.push(""),t.push(`### Tools (${o.length})`);for(let l of o){let c=l.isRunning?"running":l.isError?"ERROR":"ok";t.push(`- ${l.name} ${c} ${l.isRunning?"-":this.formatMs(l.durationMs)}`)}}let a=this.assistantResponseForLoop(r);a&&(t.push(""),t.push("### Assistant text"),t.push("```"),t.push(a),t.push("```")),t.push("")}this.copyText(t.join(`
9309
9300
  `),"turn markdown")}},template:`
9310
9301
  <div class="yeaft-debug-panel">
9311
9302
  <div class="yeaft-debug-header">
@@ -9633,9 +9624,9 @@ ${String(e||"").trim()}
9633
9624
  <span v-else>{{ requestHistoryLoading ? $t('yeaft.debugHistoryLoading') : $t('yeaft.noDebugData') }}</span>
9634
9625
  </div>
9635
9626
  </div>
9636
- `}});function NS(e,t){if(!e||e.kind!=="sub_agent")return"";let s=typeof t=="function"?t:u=>u,n=typeof e.log?.preview=="string"?e.log.preview:"",r=[],i="",o="",a=0,l=()=>{let u=VS(o);u&&r.push(s("yeaft.sessionStatus.task.subAgentEvent",{name:i||s("yeaft.sessionStatus.task.kind.subAgent"),text:u})),i="",o=""},c=()=>{i="",o=""};for(let u of n.split(/\r?\n/)){let p=E1(u);if(p){if(p.type==="text_delta"){i=p.agentName||p.agentId||i,o+=p.text||p.content||p.delta||"";continue}if(p.type==="tool_use"||p.type==="tool_call"){a+=1;continue}if(p.type==="sub_agent_turn_end"){c();let f=qS(p,s);f&&r.push(f);continue}if(p.type==="error"){l();let f=qS(p,s);f&&r.push(f)}}}l();let d=D1(a,s);return d&&r.push(d),r.join(`
9637
- `)}function L1(e,t){if(!e||e.kind!=="sub_agent")return[];let s=typeof t=="function"?t:l=>l,n=$1(e.result?.summary),r=s("yeaft.sessionStatus.task.kind.subAgent"),i=e.agentName||e.agentId||r,o=n?[s("yeaft.sessionStatus.task.subAgentResult",{name:i,text:n})]:[],a=NS(e,t).split(`
9638
- `).filter(Boolean).filter(l=>!o.includes(l));return[...o,...a]}var E1,$1,VS,D1,qS,BS,HS=F(()=>{Nu();E1=e=>{if(typeof e!="string")return null;let t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{return JSON.parse(t)}catch{return null}},$1=(e,t=360)=>{if(typeof e!="string")return"";let s=e.trim().replace(/\s+/g," ");return s.length>t?s.slice(0,t-1)+"\u2026":s},VS=e=>typeof e!="string"?"":e.trim(),D1=(e,t)=>{let s=Number(e||0);return!Number.isFinite(s)||s<=0?"":(typeof t=="function"?t:r=>r)("yeaft.sessionStatus.task.subAgentToolSummary",{count:s})},qS=(e,t)=>{if(!e||typeof e!="object")return"";let s=typeof t=="function"?t:r=>r,n=e.agentName||e.agentId||s("yeaft.sessionStatus.task.kind.subAgent");if(e.type==="sub_agent_turn_end"){let r=VS(e.content||e.text);return r?s("yeaft.sessionStatus.task.subAgentResult",{name:n,text:r}):""}if(e.type==="error"){let r=e.error&&(e.error.message||e.error);return r?s("yeaft.sessionStatus.task.subAgentError",{name:n,error:r}):s("yeaft.sessionStatus.task.subAgentHitError",{name:n})}return""};BS={name:"VpTimelinePane",components:{TerminalOutput:vl},emits:["mention-vp","edit-vp","start-resize","cancel-vp-turn","edit-announcement","cancel-task","close"],props:{rows:{type:Array,required:!0},tasks:{type:Array,default:()=>[]},announcementText:{type:String,default:""},stoppingTasksById:{type:Object,default:()=>({})}},template:`
9627
+ `}});function NS(e,t){if(!e||e.kind!=="sub_agent")return"";let s=typeof t=="function"?t:u=>u,n=typeof e.log?.preview=="string"?e.log.preview:"",r=[],i="",o="",a=0,l=()=>{let u=VS(o);u&&r.push(s("yeaft.sessionStatus.task.subAgentEvent",{name:i||s("yeaft.sessionStatus.task.kind.subAgent"),text:u})),i="",o=""},c=()=>{i="",o=""};for(let u of n.split(/\r?\n/)){let p=ET(u);if(p){if(p.type==="text_delta"){i=p.agentName||p.agentId||i,o+=p.text||p.content||p.delta||"";continue}if(p.type==="tool_use"||p.type==="tool_call"){a+=1;continue}if(p.type==="sub_agent_turn_end"){c();let f=qS(p,s);f&&r.push(f);continue}if(p.type==="error"){l();let f=qS(p,s);f&&r.push(f)}}}l();let d=DT(a,s);return d&&r.push(d),r.join(`
9628
+ `)}function LT(e,t){if(!e||e.kind!=="sub_agent")return[];let s=typeof t=="function"?t:l=>l,n=$T(e.result?.summary),r=s("yeaft.sessionStatus.task.kind.subAgent"),i=e.agentName||e.agentId||r,o=n?[s("yeaft.sessionStatus.task.subAgentResult",{name:i,text:n})]:[],a=NS(e,t).split(`
9629
+ `).filter(Boolean).filter(l=>!o.includes(l));return[...o,...a]}var ET,$T,VS,DT,qS,BS,HS=F(()=>{Nu();ET=e=>{if(typeof e!="string")return null;let t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{return JSON.parse(t)}catch{return null}},$T=(e,t=360)=>{if(typeof e!="string")return"";let s=e.trim().replace(/\s+/g," ");return s.length>t?s.slice(0,t-1)+"\u2026":s},VS=e=>typeof e!="string"?"":e.trim(),DT=(e,t)=>{let s=Number(e||0);return!Number.isFinite(s)||s<=0?"":(typeof t=="function"?t:r=>r)("yeaft.sessionStatus.task.subAgentToolSummary",{count:s})},qS=(e,t)=>{if(!e||typeof e!="object")return"";let s=typeof t=="function"?t:r=>r,n=e.agentName||e.agentId||s("yeaft.sessionStatus.task.kind.subAgent");if(e.type==="sub_agent_turn_end"){let r=VS(e.content||e.text);return r?s("yeaft.sessionStatus.task.subAgentResult",{name:n,text:r}):""}if(e.type==="error"){let r=e.error&&(e.error.message||e.error);return r?s("yeaft.sessionStatus.task.subAgentError",{name:n,error:r}):s("yeaft.sessionStatus.task.subAgentHitError",{name:n})}return""};BS={name:"VpTimelinePane",components:{TerminalOutput:vl},emits:["mention-vp","edit-vp","start-resize","cancel-vp-turn","edit-announcement","cancel-task","close"],props:{rows:{type:Array,required:!0},tasks:{type:Array,default:()=>[]},announcementText:{type:String,default:""},stoppingTasksById:{type:Object,default:()=>({})}},template:`
9639
9630
  <aside class="yeaft-vp-timeline yeaft-session-status-pane" :aria-label="$t('yeaft.sessionStatus.aria')">
9640
9631
  <div
9641
9632
  class="yeaft-vp-timeline-resize-handle"
@@ -9882,7 +9873,7 @@ ${String(e||"").trim()}
9882
9873
  </section>
9883
9874
  </aside>
9884
9875
  `,setup(e,{emit:t}){let s=window.Pinia&&window.Pinia.useVpStore?window.Pinia.useVpStore():null,n=N=>s&&typeof s.vpTextColor=="function"?s.vpTextColor(N):"var(--text-primary)",r=Vue.getCurrentInstance(),i=r&&r.appContext.config.globalProperties.$t||(N=>N),o=Vue.computed(()=>(typeof e.announcementText=="string"?e.announcementText:"").trim()),a=Vue.computed(()=>!!o.value),l=Vue.computed(()=>{let N=o.value.replace(/\s+/g," ");return N.length<=96?N:N.slice(0,95)+"\u2026"}),c=Vue.ref({}),d=N=>JSON.stringify([N.vpId,N.queryProgress?.sessionId,N.queryProgress?.turnId,N.queryProgress?.threadId]),u=(N,ne)=>!!c.value[d(N)]?.[ne],p=(N,ne)=>{let ye=d(N);c.value={...c.value,[ye]:{...c.value[ye],[ne]:!u(N,ne)}}};Vue.watch(()=>e.rows.filter(N=>N.queryProgress).map(d),N=>{c.value=Object.fromEntries(Object.entries(c.value).filter(([ne])=>N.includes(ne)))});let f=N=>Number.isSafeInteger(N)&&N>=0?N.toLocaleString():"\u2014",g=N=>Number.isSafeInteger(N)&&N>=0?f(N):i("yeaft.queryProgress.unavailable"),v=N=>(N.toolStats||[]).filter(ne=>ne.failedCalls>0).slice().sort((ne,ye)=>ye.failedCalls-ne.failedCalls||ne.name.localeCompare(ye.name)),h=Vue.ref({}),m=new Map,y=new Map,k=N=>{let ne=m.get(N);ne&&(ne.scrollTop=ne.scrollHeight,y.set(N,!0))},w=N=>{let ne=!h.value[N];h.value={...h.value,[N]:ne},ne&&(y.set(N,!0),Vue.nextTick(()=>k(N)))},b=(N,ne)=>{ne?(m.set(N,ne),y.has(N)||y.set(N,!0),Vue.nextTick(()=>{y.get(N)&&k(N)})):m.delete(N)},S=N=>{let ne=m.get(N);if(!ne)return;let ye=ne.scrollHeight-ne.scrollTop-ne.clientHeight;y.set(N,ye<8)};Vue.watch(()=>JSON.stringify((Array.isArray(e.tasks)?e.tasks:[]).map(N=>[N.id,N?.log?.preview||""])),()=>Vue.nextTick(()=>{m.forEach((N,ne)=>{y.get(ne)&&k(ne)})}));let C=N=>{let ne=N?.ownerVpId||"";return ne?s&&typeof s.vpLabel=="function"?s.vpLabel(ne):ne:"unknown"},_=N=>{if(!N)return"";try{return new Date(N).toLocaleTimeString()}catch{return String(N)}},M=N=>{switch(N?.kind){case"sub_agent":return i("yeaft.sessionStatus.task.kind.subAgent");case"shell":return i("yeaft.sessionStatus.task.kind.shell");default:return N?.kind||""}},E=N=>{let ne=N?.runtime?.command;return typeof ne=="string"?ne.trim():""},W=N=>{let ne=[],ye=N?.title||N?.id||"",me=E(N);return ye&&ne.push(`${i("yeaft.sessionStatus.task.title")}: ${ye}`),me&&ne.push(`${i("yeaft.sessionStatus.task.command")}: ${me}`),ne.join(`
9885
- `)},$=N=>`${N?.agentId||""}${N?.sessionId||""}::${N?.id||""}`,x=N=>N?.status==="running"&&(N.kind==="shell"&&!!N.runtime?.pid||N.kind==="sub_agent"&&!!N.runtime?.subAgentId),D=N=>!!(N?.id&&e.stoppingTasksById?.[$(N)]),Z=N=>L1(N,i),Q=N=>NS(N,i),T=N=>{switch(N.status){case"idle":return i("yeaft.vpTimeline.status.idle");case"typing":return i("yeaft.vpTimeline.status.typing");case"thinking":return i("yeaft.vpTimeline.status.thinking");case"retrying":return i("yeaft.vpTimeline.status.retrying");case"streaming":return i("yeaft.vpTimeline.status.streaming");case"tool":return i("yeaft.vpTimeline.status.tool");case"error":return i("yeaft.vpTimeline.status.error");case"offline":return i("yeaft.vpTimeline.status.offline");default:return N.status}},A=new Set(["typing","thinking","retrying","streaming","tool"]);return{hasAnnouncement:a,announcementPreview:l,statusLabel:T,isActiveStatus:N=>A.has(N),threadCountTitle:N=>{let ne=Array.isArray(N&&N.threads)?N.threads:[];return ne.length?ne.slice(0,5).map(ye=>`${ye.title||ye.threadId||"thread"}: ${ye.status||"idle"}`).join(`
9876
+ `)},$=N=>`${N?.agentId||""}${N?.sessionId||""}::${N?.id||""}`,x=N=>N?.status==="running"&&(N.kind==="shell"&&!!N.runtime?.pid||N.kind==="sub_agent"&&!!N.runtime?.subAgentId),D=N=>!!(N?.id&&e.stoppingTasksById?.[$(N)]),Z=N=>LT(N,i),Q=N=>NS(N,i),T=N=>{switch(N.status){case"idle":return i("yeaft.vpTimeline.status.idle");case"typing":return i("yeaft.vpTimeline.status.typing");case"thinking":return i("yeaft.vpTimeline.status.thinking");case"retrying":return i("yeaft.vpTimeline.status.retrying");case"streaming":return i("yeaft.vpTimeline.status.streaming");case"tool":return i("yeaft.vpTimeline.status.tool");case"error":return i("yeaft.vpTimeline.status.error");case"offline":return i("yeaft.vpTimeline.status.offline");default:return N.status}},A=new Set(["typing","thinking","retrying","streaming","tool"]);return{hasAnnouncement:a,announcementPreview:l,statusLabel:T,isActiveStatus:N=>A.has(N),threadCountTitle:N=>{let ne=Array.isArray(N&&N.threads)?N.threads:[];return ne.length?ne.slice(0,5).map(ye=>`${ye.title||ye.threadId||"thread"}: ${ye.status||"idle"}`).join(`
9886
9877
  `):""},vpTextColorFor:n,isProgressExpanded:u,toggleProgress:p,formatCount:f,formatTokenCount:g,failedTools:v,expandedTasks:h,toggleTaskExpanded:w,taskOwnerName:C,formatTaskTime:_,taskKindLabel:M,shellTaskCommand:E,taskSummaryTitle:W,isTaskCancellable:x,isTaskStopping:D,taskDetailLines:Z,subAgentTaskStreamText:Q,setTaskLogRef:b,onTaskLogScroll:S}}}});var WS,US=F(()=>{qs();WS={components:{NavigationIcon:Mt},name:"YeaftSessionActions",emits:["toggle-search","reload-messages","toggle-session-status","toggle-workbench","reload-page","fork-session","merge-session"],props:{mergeDisabled:{type:Boolean,default:!1},mergeTitle:{type:String,default:""},showFork:{type:Boolean,default:!1},forkDisabled:{type:Boolean,default:!1},forkState:{type:String,default:"idle"},forkTitle:{type:String,default:""},searchOpen:{type:Boolean,default:!1},loadingMoreHistory:{type:Boolean,default:!1},sessionStatusVisible:{type:Boolean,default:!0},workbenchVisible:{type:Boolean,default:!1},canUseWorkbench:{type:Boolean,default:!1},showPageReload:{type:Boolean,default:!1}},template:`
9887
9878
  <div class="yeaft-session-actions">
9888
9879
  <button
@@ -9976,7 +9967,7 @@ ${String(e||"").trim()}
9976
9967
  </svg>
9977
9968
  </button>
9978
9969
  </div>
9979
- `}});function jS(e){let t=typeof e=="number"?e:Date.parse(e||"");return Number.isFinite(t)?t:null}function Di(e){return e?.entryId||e?.messageId||null}function O1(e){let t=jS(e);return t===null?"":new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function F1(e){return(Array.isArray(e)?e:[]).map((t,s)=>({result:t,index:s,time:jS(t?.timestamp),seq:Number.isFinite(t?.entryEndSeq)?t.entryEndSeq:Number.isFinite(t?.seq)?t.seq:null,messageId:String(t?.messageId||"")})).sort((t,s)=>t.seq===null&&s.seq!==null?-1:t.seq!==null&&s.seq===null?1:t.seq!==null&&t.seq!==s.seq?s.seq-t.seq:t.time!==null&&s.time===null?-1:t.time===null&&s.time!==null?1:t.time!==null&&t.time!==s.time?s.time-t.time:s.messageId.localeCompare(t.messageId)||t.index-s.index).map(({result:t})=>t)}var KS,zS=F(()=>{KS={name:"YeaftConversationOutline",props:{outlineState:{type:Object,required:!0},searchState:{type:Object,required:!0},activeMessageId:{type:String,default:null}},emits:["query","select","move","preview","load-older","load-more-search","close"],template:`
9970
+ `}});function jS(e){let t=typeof e=="number"?e:Date.parse(e||"");return Number.isFinite(t)?t:null}function Di(e){return e?.entryId||e?.messageId||null}function OT(e){let t=jS(e);return t===null?"":new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function FT(e){return(Array.isArray(e)?e:[]).map((t,s)=>({result:t,index:s,time:jS(t?.timestamp),seq:Number.isFinite(t?.entryEndSeq)?t.entryEndSeq:Number.isFinite(t?.seq)?t.seq:null,messageId:String(t?.messageId||"")})).sort((t,s)=>t.seq===null&&s.seq!==null?-1:t.seq!==null&&s.seq===null?1:t.seq!==null&&t.seq!==s.seq?s.seq-t.seq:t.time!==null&&s.time===null?-1:t.time===null&&s.time!==null?1:t.time!==null&&t.time!==s.time?s.time-t.time:s.messageId.localeCompare(t.messageId)||t.index-s.index).map(({result:t})=>t)}var KS,zS=F(()=>{KS={name:"YeaftConversationOutline",props:{outlineState:{type:Object,required:!0},searchState:{type:Object,required:!0},activeMessageId:{type:String,default:null}},emits:["query","select","move","preview","load-older","load-more-search","close"],template:`
9980
9971
  <section id="yeaft-conversation-outline" class="yeaft-conversation-outline" :aria-label="$t('yeaft.outline.label')">
9981
9972
  <div class="yeaft-conversation-outline-header">
9982
9973
  <div>
@@ -10042,7 +10033,7 @@ ${String(e||"").trim()}
10042
10033
  >{{ $t('yeaft.outline.moreMatches') }}</button>
10043
10034
  </div>
10044
10035
  </section>
10045
- `,setup(e,{emit:t,expose:s}){let n=Vue.ref(null),r=Vue.ref(null),i=Vue.computed(()=>Array.from(String(e.searchState.query||"").trim()).length>0||!!e.searchState.senderKey),o=Vue.computed(()=>F1(i.value?e.searchState.results:e.outlineState.results)),a=Vue.computed(()=>{let y=o.value.findIndex(k=>Di(k)===e.activeMessageId);return y>=0?y:0}),l=Vue.computed(()=>i.value?e.searchState.loading:e.outlineState.loading),c=Vue.computed(()=>{if(i.value)return`${e.searchState.results.length}${e.searchState.hasMore?"+":""}`;let y=e.outlineState.totalCount;return Number.isFinite(y)?String(y):String(e.outlineState.results.length||"")}),d=Vue.computed(()=>{let y=i.value?e.searchState.error:e.outlineState.error;return y?y==="unsupported"?"yeaft.outline.unsupported":"yeaft.outline.error":""}),u=()=>Vue.nextTick(()=>{n.value?.focus?.(),r.value&&(r.value.scrollTop=0)}),p=()=>{let y=r.value;t("load-older",{scrollHeight:y?.scrollHeight||0,scrollTop:y?.scrollTop||0})},f=()=>{if(i.value||e.outlineState.loading||!e.outlineState.hasMore)return;let y=r.value;y&&y.scrollHeight-y.scrollTop-y.clientHeight<=40&&p()},g=y=>{t("move",Di(y)),t("preview",y)},v=y=>{let k=Math.max(0,Math.min(o.value.length-1,y)),w=o.value[k];t("move",Di(w)),w&&t("preview",w)},h=y=>{y.key==="Escape"?(y.preventDefault(),t("close")):y.key==="ArrowDown"&&o.value.length?(y.preventDefault(),v(a.value+1)):y.key==="ArrowUp"&&o.value.length?(y.preventDefault(),v(a.value-1)):y.key==="Enter"&&o.value.length&&(y.preventDefault(),t("select",o.value[a.value]||o.value[0]))};return Vue.watch([o,()=>e.activeMessageId],([y,k])=>{y.some(w=>Di(w)===k)||t("move",Di(y[0]))},{immediate:!0}),s({focus:u,restoreOlderScroll:({scrollTop:y=0}={})=>Vue.nextTick(()=>{r.value&&(r.value.scrollTop=y)})}),Vue.onMounted(u),{inputRef:n,listRef:r,isSearching:i,visibleResults:o,activeIndex:a,isLoading:l,countLabel:c,errorKey:d,focus:u,loadOlder:p,onScroll:f,onKeyDown:h,previewResult:g,formatOutlineTime:O1,historyResultIdentity:Di}}}});function YS(e,t){if(!Array.isArray(e)||e.length===0)return[];let s=new Map;if(Array.isArray(t))for(let i of t)i&&i.vpId&&s.set(i.vpId,i);let n=new Set,r=[];for(let i of e)!i||n.has(i)||(n.add(i),r.push(s.get(i)||{vpId:i}));return r}function QS(e,t,s=null){return!t||!e?null:typeof e.sessionById=="function"?e.sessionById(t,s||null)||null:e.sessions?.[t]||null}function q1(e,t){if(!t)return"idle";if(t.connectionState&&t.connectionState!=="connected")return"offline";let s=t.vpStatuses&&t.vpStatuses[e];return s&&s.state?s.state:"idle"}function ZS(e){let{vpList:t,vpStatuses:s,stoppingVpTurnIds:n,connectionState:r,vpLabelOf:i,vpDescriptionOf:o}=e||{},a={vpStatuses:s||{},stoppingVpTurnIds:n||{},connectionState:r||null},l=(p,f)=>{if(typeof i=="function"){let g=i(p);if(g)return g}return f&&(f.displayName||f.displayNameZh)||p},c=(p,f)=>{if(typeof o=="function"){let g=o(p);if(g)return g}return f&&(f.description||f.role||f.descriptionZh||f.roleZh)||""},d=new Set,u=[];if(Array.isArray(t))for(let p of t)!p||!p.vpId||(d.add(p.vpId),u.push(GS(p.vpId,l(p.vpId,p),c(p.vpId,p),a)));if(s)for(let p of Object.keys(s))!p||d.has(p)||(d.add(p),u.push(GS(p,l(p,null),c(p,null),a)));return u}function GS(e,t,s,n){let r=n&&n.vpStatuses&&n.vpStatuses[e];return{vpId:e,displayName:t||e,description:s||"",status:q1(e,n),turnId:r?.turnId||null,isStopping:!!(r?.turnId&&n?.stoppingVpTurnIds?.[r.turnId]),runningThreadCount:r&&Number.isFinite(r.runningThreadCount)?r.runningThreadCount:0,threads:r&&Array.isArray(r.threads)?r.threads:[]}}var XS=F(()=>{});function JS({agentInventoryReady:e=!1,hasYeaftAgent:t=!1,sessionsReady:s=!1,sessionsEmpty:n=!1}={}){return!e||s&&!n?!1:t?s?n:!1:!0}var eC=F(()=>{});function tC({activeSessionFilter:e=null,sessionsStore:t=null,topbarGroup:s=null}={}){return e||t?.activeSessionId||s?.id||null}function sC(e={}){return e.currentAgentInfo?.online?!0:Array.isArray(e.agents)&&e.agents.some(t=>t&&t.online)}var nC=F(()=>{});function iC(e){let t=e?.updatedAt||e?.endedAt||e?.createdAt,s=t?Date.parse(t):NaN;return Number.isFinite(s)?s:0}function V1(e){return Object.values(e||{}).filter(t=>t?.status==="running").sort((t,s)=>iC(s)-iC(t))}function N1(e,t,{agentId:s,sessionId:n}){let r=Array.isArray(t.threads)&&t.threads.length?t.threads.filter(i=>["typing","thinking","retrying","streaming","tool"].includes(i.state)&&i.turnId).slice().sort((i,o)=>(o.updatedAt||o.since||0)-(i.updatedAt||i.since||0)||String(i.threadId).localeCompare(String(o.threadId))):[t];for(let i of r){let o=Mh(e,{agentId:s,sessionId:n,vpId:t.vpId,turnId:i.turnId});if(o&&(!i.threadId||o.threadId===i.threadId))return o}return null}var rC,oC,aC=F(()=>{xS();yu();qs();Bl();qt();fl();Ju();Sp();ec();RS();ES();sa();DS();zp();Ql();FS();HS();US();zS();Kp();ep();XS();Ha();Xl();Tn();eC();nC();Zu();rC="user";oC={name:"YeaftPage",components:{ScheduledTaskBar:AS,ScheduledTaskNotifications:al,NavigationIcon:Mt,ChatInput:Ci,AgentInstaller:di,MessageList:Pl,SettingsPanel:Zl,AgentSettingsPanel:Pi,YeaftSidebar:PS,SessionInviteModal:_S,SessionCreateModal:sr,SessionSettingsModal:$S,PluginCenterPage:bc,WorkbenchPanel:xi,WorkCenterPage:yc,YeaftDebugPanel:OS,VpTimelinePane:BS,YeaftSessionActions:WS,YeaftConversationOutline:KS},template:`
10036
+ `,setup(e,{emit:t,expose:s}){let n=Vue.ref(null),r=Vue.ref(null),i=Vue.computed(()=>Array.from(String(e.searchState.query||"").trim()).length>0||!!e.searchState.senderKey),o=Vue.computed(()=>FT(i.value?e.searchState.results:e.outlineState.results)),a=Vue.computed(()=>{let y=o.value.findIndex(k=>Di(k)===e.activeMessageId);return y>=0?y:0}),l=Vue.computed(()=>i.value?e.searchState.loading:e.outlineState.loading),c=Vue.computed(()=>{if(i.value)return`${e.searchState.results.length}${e.searchState.hasMore?"+":""}`;let y=e.outlineState.totalCount;return Number.isFinite(y)?String(y):String(e.outlineState.results.length||"")}),d=Vue.computed(()=>{let y=i.value?e.searchState.error:e.outlineState.error;return y?y==="unsupported"?"yeaft.outline.unsupported":"yeaft.outline.error":""}),u=()=>Vue.nextTick(()=>{n.value?.focus?.(),r.value&&(r.value.scrollTop=0)}),p=()=>{let y=r.value;t("load-older",{scrollHeight:y?.scrollHeight||0,scrollTop:y?.scrollTop||0})},f=()=>{if(i.value||e.outlineState.loading||!e.outlineState.hasMore)return;let y=r.value;y&&y.scrollHeight-y.scrollTop-y.clientHeight<=40&&p()},g=y=>{t("move",Di(y)),t("preview",y)},v=y=>{let k=Math.max(0,Math.min(o.value.length-1,y)),w=o.value[k];t("move",Di(w)),w&&t("preview",w)},h=y=>{y.key==="Escape"?(y.preventDefault(),t("close")):y.key==="ArrowDown"&&o.value.length?(y.preventDefault(),v(a.value+1)):y.key==="ArrowUp"&&o.value.length?(y.preventDefault(),v(a.value-1)):y.key==="Enter"&&o.value.length&&(y.preventDefault(),t("select",o.value[a.value]||o.value[0]))};return Vue.watch([o,()=>e.activeMessageId],([y,k])=>{y.some(w=>Di(w)===k)||t("move",Di(y[0]))},{immediate:!0}),s({focus:u,restoreOlderScroll:({scrollTop:y=0}={})=>Vue.nextTick(()=>{r.value&&(r.value.scrollTop=y)})}),Vue.onMounted(u),{inputRef:n,listRef:r,isSearching:i,visibleResults:o,activeIndex:a,isLoading:l,countLabel:c,errorKey:d,focus:u,loadOlder:p,onScroll:f,onKeyDown:h,previewResult:g,formatOutlineTime:OT,historyResultIdentity:Di}}}});function YS(e,t){if(!Array.isArray(e)||e.length===0)return[];let s=new Map;if(Array.isArray(t))for(let i of t)i&&i.vpId&&s.set(i.vpId,i);let n=new Set,r=[];for(let i of e)!i||n.has(i)||(n.add(i),r.push(s.get(i)||{vpId:i}));return r}function QS(e,t,s=null){return!t||!e?null:typeof e.sessionById=="function"?e.sessionById(t,s||null)||null:e.sessions?.[t]||null}function qT(e,t){if(!t)return"idle";if(t.connectionState&&t.connectionState!=="connected")return"offline";let s=t.vpStatuses&&t.vpStatuses[e];return s&&s.state?s.state:"idle"}function ZS(e){let{vpList:t,vpStatuses:s,stoppingVpTurnIds:n,connectionState:r,vpLabelOf:i,vpDescriptionOf:o}=e||{},a={vpStatuses:s||{},stoppingVpTurnIds:n||{},connectionState:r||null},l=(p,f)=>{if(typeof i=="function"){let g=i(p);if(g)return g}return f&&(f.displayName||f.displayNameZh)||p},c=(p,f)=>{if(typeof o=="function"){let g=o(p);if(g)return g}return f&&(f.description||f.role||f.descriptionZh||f.roleZh)||""},d=new Set,u=[];if(Array.isArray(t))for(let p of t)!p||!p.vpId||(d.add(p.vpId),u.push(GS(p.vpId,l(p.vpId,p),c(p.vpId,p),a)));if(s)for(let p of Object.keys(s))!p||d.has(p)||(d.add(p),u.push(GS(p,l(p,null),c(p,null),a)));return u}function GS(e,t,s,n){let r=n&&n.vpStatuses&&n.vpStatuses[e];return{vpId:e,displayName:t||e,description:s||"",status:qT(e,n),turnId:r?.turnId||null,isStopping:!!(r?.turnId&&n?.stoppingVpTurnIds?.[r.turnId]),runningThreadCount:r&&Number.isFinite(r.runningThreadCount)?r.runningThreadCount:0,threads:r&&Array.isArray(r.threads)?r.threads:[]}}var XS=F(()=>{});function JS({agentInventoryReady:e=!1,hasYeaftAgent:t=!1,sessionsReady:s=!1,sessionsEmpty:n=!1}={}){return!e||s&&!n?!1:t?s?n:!1:!0}var eC=F(()=>{});function tC({activeSessionFilter:e=null,sessionsStore:t=null,topbarGroup:s=null}={}){return e||t?.activeSessionId||s?.id||null}function sC(e={}){return e.currentAgentInfo?.online?!0:Array.isArray(e.agents)&&e.agents.some(t=>t&&t.online)}var nC=F(()=>{});function iC(e){let t=e?.updatedAt||e?.endedAt||e?.createdAt,s=t?Date.parse(t):NaN;return Number.isFinite(s)?s:0}function VT(e){return Object.values(e||{}).filter(t=>t?.status==="running").sort((t,s)=>iC(s)-iC(t))}function NT(e,t,{agentId:s,sessionId:n}){let r=Array.isArray(t.threads)&&t.threads.length?t.threads.filter(i=>["typing","thinking","retrying","streaming","tool"].includes(i.state)&&i.turnId).slice().sort((i,o)=>(o.updatedAt||o.since||0)-(i.updatedAt||i.since||0)||String(i.threadId).localeCompare(String(o.threadId))):[t];for(let i of r){let o=Mh(e,{agentId:s,sessionId:n,vpId:t.vpId,turnId:i.turnId});if(o&&(!i.threadId||o.threadId===i.threadId))return o}return null}var rC,oC,aC=F(()=>{xS();yu();qs();Bl();qt();fl();Ju();Sp();ec();RS();ES();sa();DS();zp();Ql();FS();HS();US();zS();Kp();ep();XS();Ha();Xl();Tn();eC();nC();Zu();rC="user";oC={name:"YeaftPage",components:{ScheduledTaskBar:AS,ScheduledTaskNotifications:al,NavigationIcon:Mt,ChatInput:Ci,AgentInstaller:di,MessageList:Pl,SettingsPanel:Zl,AgentSettingsPanel:Pi,YeaftSidebar:PS,SessionInviteModal:_S,SessionCreateModal:sr,SessionSettingsModal:$S,PluginCenterPage:bc,WorkbenchPanel:xi,WorkCenterPage:yc,YeaftDebugPanel:OS,VpTimelinePane:BS,YeaftSessionActions:WS,YeaftConversationOutline:KS},template:`
10046
10037
  <div class="yeaft-page" ref="pageRef">
10047
10038
  <!-- Mobile sidebar overlay -->
10048
10039
  <div class="yeaft-sidebar-overlay" v-if="store.sessionSidebarOpen && isMobile && !store.workCenterOpen" @click="store.closeSessionSidebar()"></div>
@@ -10424,7 +10415,7 @@ ${String(e||"").trim()}
10424
10415
  @open-vp-library="openVpLibraryFromGroupSettings"
10425
10416
  />
10426
10417
  </div>
10427
- `,setup(){let e=Pinia.useChatStore(),t=Pinia.useAuthStore(),s=Pinia.useVpStore(),n=Vue.getCurrentInstance(),r=n&&n.appContext.config.globalProperties.$t||(R=>R),i=Vue.computed(()=>!!(e.yeaftDebugPanel&&e.yeaftDebugPanel.open)),o=Vue.ref(null),a=Vue.ref(!1),l=Vue.ref(!1),c=Vue.ref(null),d=Vue.ref("operations"),u=Vue.ref(!1),p=Vue.ref(""),f=Vue.ref(!1),g=Vue.ref(""),v=Vue.ref("vp"),h=Vue.ref(null),m=Vue.ref(null),y=Vue.ref(null),k=Vue.ref(null),w=Vue.ref(null),b=Vue.ref(null),S=Vue.ref(!1),C=Vue.ref(null),_=Vue.computed(()=>e.getYeaftHistoryOutlineState()),M=Vue.ref(e.yeaftHistorySearchState?.query||""),E=null,W=()=>{try{return window.Pinia?.useSessionsStore?.()||null}catch{return null}},$=()=>{let R=W();return{agentId:e.currentAgent||null,sessionId:e.yeaftActiveSessionFilter||R?.activeSessionId||null}},x=()=>rC,D=(R="")=>{let{agentId:ke,sessionId:Be}=$();e.yeaftHistorySearchState={requestId:null,agentId:ke,sessionId:Be,query:"",senderKey:R,loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,error:null}},Z=Vue.computed(()=>{let R=e.currentAgent||"agent",ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||"session";return`yeaft:${R}:${Be}`});Vue.watch(Z,()=>{y.value=null});let Q=null,T=null,A=R=>{if(!R)return!1;let ke=String(R.tagName||"").toLowerCase();return ke==="textarea"||ke==="input"||R.isContentEditable===!0},q=({recoverScroll:R=!1}={})=>{let ke=k.value;if(!ke)return;if(!L.value){ke.style.removeProperty("--yeaft-visual-viewport-height");return}let Be=window.visualViewport,gt=Math.max(1,Math.round(Be?.height||window.innerHeight||1));ke.style.setProperty("--yeaft-visual-viewport-height",`${gt}px`),!(!R||Be&&window.innerHeight&&Be.height<window.innerHeight*.85||A(document.activeElement))&&window.scrollTo(0,0)},H=(R={})=>{Q!=null&&cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{Q=null,q(R)})},N=()=>{H({recoverScroll:!0}),T&&clearTimeout(T),T=setTimeout(()=>{T=null,H({recoverScroll:!0})},260)},ne=Vue.computed(()=>!!e.activeSessionRoute),ye=Vue.computed(()=>!0),me=R=>{let ke=R&&R.id?R.id:null;ke&&(L.value&&qe(),e.setActiveSessionFilter(ke,{agentId:R.agentId||null}),L.value&&e.closeSessionSidebar())},G=R=>{},pe=Vue.ref(null),ae=Vue.ref(!1),de=320,he=Math.max(de,Math.round(window.innerWidth*.25)),re=localStorage.getItem("yeaft-debug-width"),j=Vue.ref(re?parseInt(re,10):he),O=Vue.computed(()=>({"--yeaft-detail-width":j.value+"px"})),z=R=>{ae.value=!0;let ke=R.clientX,Be=j.value,gt=window.innerWidth*.6,it=Ln=>{let ar=ke-Ln.clientX,an=Math.min(gt,Math.max(de,Be+ar));j.value=an},Ut=()=>{ae.value=!1,document.removeEventListener("mousemove",it),document.removeEventListener("mouseup",Ut),localStorage.setItem("yeaft-debug-width",String(j.value))};document.addEventListener("mousemove",it),document.addEventListener("mouseup",Ut)},te="yeaft-session-status-visible",ce="(max-width: 768px)",xe="(max-width: 1024px)",Te=()=>{if(typeof window>"u")return!1;try{return typeof window.matchMedia=="function"?window.matchMedia(ce).matches:Number(window.innerWidth)<=768}catch{return!1}},Y=()=>{if(Te())return!1;try{let R=localStorage.getItem(te);return!(R==="0"||R==="false")}catch{return!0}},ue=Vue.ref(Y()),Se=R=>{if(ue.value=!!R,!Te())try{localStorage.setItem(te,ue.value?"1":"0")}catch{}},Ze=()=>{let R=!ue.value;R&&(e.workbenchExpanded&&e.toggleWorkbench(),e.closeYeaftDebugPanel()),Se(R)},qe=()=>Se(!1),ge=()=>{e.workbenchExpanded||qe(),e.toggleWorkbench()};Vue.watch(i,R=>{R&&qe()},{flush:"sync"}),Vue.watch(()=>e.workbenchExpanded,R=>{R&&qe()},{flush:"sync"});let fe=220,Ie=280,$e=(()=>{try{return localStorage.getItem("yeaft-vp-timeline-width")}catch{return null}})(),je=$e?parseInt($e,10):NaN,Ge=Vue.ref(Number.isFinite(je)&&je>=fe?je:Ie),se=Vue.computed(()=>({"--yeaft-vp-timeline-width":Ge.value+"px"})),Me=R=>{let ke=R.clientX,Be=Ge.value,gt=Math.max(fe,Math.floor(window.innerWidth*.4)),it=Ln=>{let ar=ke-Ln.clientX,an=Math.min(gt,Math.max(fe,Be+ar));Ge.value=an},Ut=()=>{document.removeEventListener("mousemove",it),document.removeEventListener("mouseup",Ut);try{localStorage.setItem("yeaft-vp-timeline-width",String(Ge.value))}catch{}};document.addEventListener("mousemove",it),document.addEventListener("mouseup",Ut)},B=typeof window.matchMedia=="function"?window.matchMedia(ce):null,I=typeof window.matchMedia=="function"?window.matchMedia(xe):null,K=(R,ke)=>R?R.matches:window.innerWidth<=ke,L=Vue.ref(K(B,768)),X=Vue.ref(K(I,1024)),le=Vue.computed(()=>L.value?!e.sessionSidebarOpen:e.sidebarCollapsed),_e=()=>{let R=L.value;L.value=K(B,768),X.value=K(I,1024),L.value&&!R&&qe()},Ee=()=>{_e(),N()},Fe=R=>{R&&(typeof R.addEventListener=="function"?R.addEventListener("change",Ee):typeof R.addListener=="function"&&R.addListener(Ee))},J=R=>{R&&(typeof R.removeEventListener=="function"?R.removeEventListener("change",Ee):typeof R.removeListener=="function"&&R.removeListener(Ee))},ie=()=>{E&&(clearTimeout(E),E=null),M.value="",D(x()),S.value=!1,C.value=null},Re=()=>{let R=x();M.value="",D(R),S.value=!0,e.searchYeaftHistory("",{senderKey:R}),Vue.nextTick(()=>b.value?.focus?.())},Le=()=>{S.value?ie():Re()},We=R=>{let ke=typeof R.composedPath=="function"?R.composedPath():[];S.value&&Uy(R.target,ke)&&ie()},Ne=R=>{M.value=R,E&&clearTimeout(E),C.value=null,E=setTimeout(()=>{E=null,e.searchYeaftHistory(M.value,{senderKey:e.yeaftHistorySearchState.senderKey})},220)},kt=R=>{if(!e.searchYeaftHistory("",{append:!0,senderKey:rC}))return;let ke=Vue.watch(()=>_.value.loading,Be=>{Be||(ke(),b.value?.restoreOlderScroll?.(R))})},Ct=()=>e.searchYeaftHistory(e.yeaftHistorySearchState.query,{append:!0,senderKey:e.yeaftHistorySearchState.senderKey}),_t=R=>{e.hasCapability("session_history_window_prefetch")&&e.loadYeaftHistoryWindow(R)},Xt=R=>{let ke=e.beginYeaftHistoryReveal?.(R)||null;return jy({result:R,revealWindow:Be=>e.revealYeaftHistoryResult(Be,ke),nextTick:()=>Vue.nextTick(),revealMessage:Be=>w.value?.revealMessage?.(Be),isMobile:L.value,closeOutline:ie}).finally(()=>e.finishYeaftHistoryReveal?.(ke))},Is=R=>{if((R.metaKey||R.ctrlKey)&&String(R.key).toLowerCase()==="f"){R.preventDefault(),Re();return}if(R.key==="Escape"){if(S.value){ie();return}if(o.value){V();return}}};Vue.onMounted(()=>{_e(),window.addEventListener("resize",Ee),Fe(B),Fe(I),window.visualViewport?.addEventListener("resize",N),window.visualViewport?.addEventListener("scroll",N),document.addEventListener("click",Qe),document.addEventListener("click",We),document.addEventListener("keydown",Is),H()}),Vue.onUnmounted(()=>{window.removeEventListener("resize",Ee),J(B),J(I),window.visualViewport?.removeEventListener("resize",N),window.visualViewport?.removeEventListener("scroll",N),document.removeEventListener("click",Qe),document.removeEventListener("click",We),document.removeEventListener("keydown",Is),Q!=null&&cancelAnimationFrame(Q),T&&clearTimeout(T),E&&clearTimeout(E)}),Vue.watch(()=>e.yeaftConversationId,R=>{R&&e.activeConversations[0]!==R&&(e.activeConversations=[R])}),Vue.watch(()=>[e.currentAgent,e.yeaftActiveSessionFilter],()=>{L.value&&qe(),ie(),D(x())});let cs=()=>{e.leaveYeaft()},pt=(R,ke,Be,gt=null)=>{if(Dt.value)return!1;let it=W();if(it&&it.activeNeedsInvite){let an=it.activeSession;return an&&$n.delete(an.id),!1}let Ut=e.yeaftActiveSessionFilter||it&&it.activeSessionId||"grp_default",Ln=$l(R).mentions,ar=Array.isArray(ke)?ke:void 0;return e.sendYeaftSessionMessage({groupId:Ut,text:R,mentions:Ln,attachments:ar,quote:Be,...gt?{quickSend:gt}:{}})},ds=R=>{R&&(y.value=R,m.value?.focusInput?.())},Rn=R=>{y.value=null,m.value?.replaceDraft?.(R||"")},rr=()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;ke&&e.cancelYeaftSession(ke)},_n=()=>{if(L.value){e.toggleSessionSidebar();return}e.toggleSidebar()},ir=()=>{e.closeYeaftDebugPanel()},or=()=>{e.reloadYeaftMessages()},sn=()=>{if(typeof e.requestYeaftSessionInventory=="function"){e.requestYeaftSessionInventory();return}e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionHydrateError=null,e.sendWsMessage({type:"get_agents"})},us=()=>{window.location.reload()},nn=Vue.computed(()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;return ke?e.isYeaftSessionProcessing(ke,e.currentAgent||null):!1}),Je=Vue.computed(()=>{let R=W();if(!R||!R.sessions)return null;let ke=e.yeaftActiveSessionFilter||null;if(ke&&typeof R.sessionById=="function"){let Be=R.sessionById(ke,e.currentAgent||null);if(Be)return Be}if(R.activeSessionId&&typeof R.sessionById=="function"){let Be=R.sessionById(R.activeSessionId,e.currentAgent||null);if(Be)return Be}return typeof R.sessionById=="function"?R.sessionById("grp_default",e.currentAgent||null):null}),xt=Vue.computed(()=>{let R=e.yeaftActiveSessionFilter||Je.value?.id,ke=e.currentAgent;return R&&ke?{routeRef:{runtimeProvider:"yeaft",agentId:ke,sessionId:R}}:null}),ps=Vue.computed(()=>{let R=xt.value?.routeRef;return R?.agentId&&R?.sessionId?`yeaft:${R.agentId}:${R.sessionId}`:null}),fs=Vue.computed(()=>ps.value&&e.sessionForkPendingKey===ps.value?e.sessionForkState:"idle"),Dt=Vue.computed(()=>fs.value==="copying"),Lt=Vue.computed(()=>e.sessionForkUnavailableReason(xt.value)),Wt=Vue.computed(()=>!!xt.value&&e.agents.some(R=>R.id===e.currentAgent&&R.capabilities?.includes("session_fork_from_turn"))),Vs=async R=>{if(!R?.ok){let ke=R?.error?.code||"unknown",Be=`yeaft.session.error.${ke}`,gt=r(Be),it=gt===Be?R?.error?.message||ke:gt;await Tt(r("yeaft.session.copyFailed",{message:it}))}},Et=async()=>{!xt.value||Lt.value||await Vs(await e.copyCatalogSession(xt.value))},Jt=async R=>{!Wt.value||Lt.value||!R?.forkBoundaryTurnId||R.isStreaming||R.isActive||await Vs(await e.copyCatalogSession(xt.value,{throughTurnId:R.forkBoundaryTurnId}))},En=()=>tC({activeSessionFilter:e.yeaftActiveSessionFilter,sessionsStore:W(),topbarGroup:Je.value}),As=Vue.computed(()=>{let R=Je.value||{},ke=typeof R.id=="string"?R.id.trim():"",Be=[R.title,R.name,R.config?.title,R.config?.name];for(let gt of Be){let it=typeof gt=="string"?gt.trim():"";if(it&&!(ke&&it===ke)&&!/^(sessions?|groups?)\//i.test(it)&&!/^session_[A-Za-z0-9_-]+$/.test(it)&&!(R.workDir&&it===R.workDir))return it}return""}),Ns=Vue.computed(()=>{let R=Je.value?.workDir;return typeof R=="string"?R.trim():""}),es=Vue.computed(()=>Je.value&&typeof Je.value.announcement=="string"?Je.value.announcement:""),gs=Vue.computed(()=>$k(Je.value,e.yeaftModel||"")),hs=Vue.computed(()=>{let R=gs.value;return R&&e.yeaftAvailableModels.find(ke=>Jo(ke,R))||null}),U=Vue.computed(()=>hs.value?.label||hs.value?.id||gs.value),oe=R=>Ip(R?.effortOptions),Pe=Vue.computed(()=>Lk(Je.value,e.yeaftModelEffort||"")),Ue=Vue.computed(()=>{let R=Array.isArray(hs.value?.effortOptions)?hs.value.effortOptions.filter(Boolean):[];return R.length?R.includes(Pe.value)?Pe.value:Ap(R):null}),et=Vue.computed(()=>Ok(e.yeaftAvailableModels)),lt=Vue.computed(()=>oe(hs.value)),ht=R=>{R==="model"&&!et.value.length||R==="effort"&&!lt.value.length||(o.value=o.value===R?null:R)},V=(R=null)=>{(!R||o.value===R)&&(o.value=null)},Ae=(R,ke)=>{let Be=R.currentTarget;if(R.relatedTarget){Be?.contains(R.relatedTarget)||V(ke);return}setTimeout(()=>{Be?.contains(document.activeElement)||V(ke)},0)},De=(R,ke=null)=>{if(!R)return;let Be=Je.value?.id||null;e.switchYeaftModel(R,Be,ke),V()},Ke=R=>{if(!lt.value.includes(R)||!gs.value)return;let ke=Je.value?.id||null;e.switchYeaftModel(gs.value,ke,R),V()},ct=R=>!R||!Number.isFinite(R)||R<=0?"":R>=1e6?`${Math.round(R/1e5)/10}m`:R>=1e3?`${Math.round(R/1e3)}k`:String(R),nt=R=>{let ke=ct(R?.contextWindow),Be=ct(R?.maxOutput);return ke&&Be?`${ke} \xB7 ${Be} out`:ke},Qe=R=>{if(!o.value)return;R.target.closest(".yeaft-composer-choice")||V()},dt=(R,ke="operations")=>{c.value=R||null,d.value=["operations","trace","llm"].includes(ke)?ke:"operations",l.value=!0},ts=()=>{a.value||(v.value="vp",h.value=null),a.value=!a.value},Pt=({initialTab:R="vp",editVpId:ke=null}={})=>{v.value=["vp","search","mcp","security"].includes(R)?R:"vp",h.value=v.value==="vp"&&ke||null,a.value=!0},ms=()=>{V(),dt(e.currentAgent||null,"llm")},qr=async()=>{if(!(p.value||f.value)){f.value=!0,g.value="";try{let R={"Content-Type":"application/json"};t.token&&(R.Authorization=`Bearer ${t.token}`);let ke=await fetch("/api/user/agent-secret",{headers:R});if(!ke.ok){let it=r("yeaft.onboarding.secretError");try{let Ut=await ke.json();Ut?.error&&(it=Ut.error)}catch{}throw new Error(it)}let Be=await ke.json(),gt=Be?.agentSecret||Be?.agent_secret||"";if(p.value=String(gt||"").trim(),!p.value)throw new Error(r("yeaft.onboarding.secretError"))}catch(R){g.value=R?.message||r("yeaft.onboarding.secretError")}finally{f.value=!1}}},Vr=()=>{u.value=!0},Ac=R=>{u.value=!1},$n=Vue.reactive(new Set),Dn=Vue.computed(()=>{let R=W();return R?R.activeSession:null}),xc=R=>{if(!R)return"";if(R.id==="grp_default"&&(R.name==="Default"||!R.name))try{let ke=typeof window<"u"?window.i18n:null;if(ke&&ke.global&&typeof ke.global.t=="function")return ke.global.t("yeaft.session.defaultName")}catch{}return R.name||R.id||""},Li=Vue.computed(()=>xc(Dn.value)),ia=Vue.computed(()=>{let R=W();if(!R||!R.activeNeedsInvite)return!1;let ke=R.activeSession;return ke?!$n.has(ke.id):!1}),oa=Vue.computed(()=>{let R=W();return!!(R&&R.activeNeedsInvite)}),Tc=Vue.computed(()=>{let R=W();return e._hasHandledAgentList===!0&&e._hasHandledYeaftSessionHydrate===!0&&!!(R&&R.hasLoadedSnapshot)}),aa=Vue.computed(()=>{let R=W();return JS({agentInventoryReady:e._hasHandledAgentList===!0,hasYeaftAgent:sC(e),sessionsReady:e._hasHandledYeaftSessionHydrate===!0&&!!(R&&R.hasLoadedSnapshot),sessionsEmpty:!!(R&&R.isEmpty)})});Vue.watch(aa,R=>{R&&qr()},{immediate:!0});let P=()=>{let R=Dn.value;R&&$n.add(R.id),rn(R?R.id:null)},ee=()=>{let R=Dn.value;R&&$n.add(R.id)},be=Vue.ref(!1),Oe=Vue.ref(null),Ce=Vue.ref(null),Ve=Vue.ref("session"),It=Vue.ref(""),xs=(R={})=>{let ke=R&&(R.sessionId||R.groupId)||null,Be=R&&R.editVpId||"",gt=Be?"members":R&&R.section||"session";ke&&(Oe.value=ke,Ce.value=R&&R.agentId||null,Ve.value=gt,It.value=Be,be.value=!0)},Ts=()=>{let R=En();R&&xs({sessionId:R,section:"session"})},ot=()=>{be.value=!1,Oe.value=null,Ce.value=null,It.value=""},He=()=>{ot(),Pt({initialTab:"vp"})},rn=R=>{R&&xs({sessionId:R,section:"members"})};Vue.watch(()=>{let R=Dn.value;return R?R.id+":"+(Array.isArray(R.roster)?R.roster.length:0)+":"+(R.defaultVpId||""):""},(R,ke)=>{let Be=Dn.value;Be&&R!==ke&&Array.isArray(Be.roster)&&Be.roster.length>0&&$n.delete(Be.id)});let Oi=()=>{a.value=!1},vs=Vue.computed(()=>!a.value&&!aa.value&&ue.value),on=Vue.computed(()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;if(!ke)return[];let gt=(typeof R?.sessionById=="function"?R.sessionById(ke,e.currentAgent||null):null)?.agentId||e.currentAgent||null,it=gt?`${gt}${ke}`:ke,Ut=e.yeaftActiveTasksBySession?.[it]||{};return V1(Ut)}),Mc=Vue.computed(()=>{if(!e.yeaftConversationId)return[];let ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||null;if(!Be)return[];let gt=QS(ke,Be,e.currentAgent||null),it=gt&&Array.isArray(gt.roster)?gt.roster:[];if(it.length===0)return[];let Ut=new Set(it),Ln=YS(it,s.vpList||[]),ar=e.vpStatuses||{},an={},Fi=e.currentAgent||null;for(let mt of Object.values(ar)){if(!mt||!mt.vpId)continue;let la=mt.sessionId??mt.groupId;la&&la!==Be||Fi&&mt.agentId&&mt.agentId!==Fi||Ut.has(mt.vpId)&&(an[mt.vpId]=mt)}let gf={};for(let mt of Object.values(e.activeVpTurns||{}))!mt?.turnId||!mt?.sessionId||mt.sessionId!==Be||Fi&&mt.agentId&&mt.agentId!==Fi||Object.entries(e.stoppingVpTurnIds||{}).some(([la])=>e.activeVpTurns?.[la]===mt)&&(gf[mt.turnId]=!0);return ZS({vpList:Ln,vpStatuses:an,stoppingVpTurnIds:gf,connectionState:e.connectionState,vpLabelOf:mt=>s.vpLabel(mt),vpDescriptionOf:mt=>s.vpDescription(mt)}).map(mt=>({...mt,queryProgress:N1(e,mt,{agentId:Fi,sessionId:Be})}))});return{store:e,pageRef:k,effectiveSidebarCollapsed:le,debugMode:i,composerMenuOpen:o,topbarGroup:Je,forkSessionRow:xt,forkSessionKey:ps,activeSessionForkState:fs,isActiveSessionCopying:Dt,forkUnavailableReason:Lt,forkCurrentSession:Et,forkFromTurnEnabled:Wt,forkFromTurn:Jt,topbarSessionTitle:As,topbarFolderPath:Ns,topbarModel:gs,topbarModelLabel:U,topbarEffort:Ue,topbarModelRows:et,topbarEffortOptions:lt,selectableEffortsForModel:oe,modelOptionMatchesRef:Jo,showSettings:a,showAgentSettings:l,agentSettingsAgentId:c,agentSettingsInitialCategory:d,sessionCreateOpen:u,settingsInitialTab:v,settingsInitialEditVpId:h,chatInputRef:m,messageQuote:y,messageListRef:w,historySearchRef:b,historySearchOpen:S,historySearchActiveMessageId:C,historyOutlineState:_,toggleHistorySearch:Le,closeHistorySearch:ie,onHistorySearchQuery:Ne,loadOlderHistoryOutline:kt,loadMoreHistorySearchResults:Ct,previewHistorySearchResult:_t,selectHistorySearchResult:Xt,yeaftInputDraftKey:Z,openSettings:Pt,isMobile:L,isNarrowDetail:X,detailPanel:pe,isResizingDetail:ae,detailWidthStyle:O,startDetailResize:z,isProcessing:nn,goBack:cs,sendMessage:pt,setMessageQuote:ds,editMessageAsNew:Rn,cancelYeaft:rr,toggleSidebar:_n,closeDebug:ir,reloadMessages:or,retryConversationInventory:sn,reloadPage:us,toggleComposerMenu:ht,closeComposerMenu:V,onComposerMenuFocusout:Ae,selectModel:De,selectEffort:Ke,openLlmConfig:ms,trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,openSessionCreate:Vr,onSessionCreated:Ac,formatTokens:ct,formatModelCtx:nt,toggleSettings:ts,openAgentSettings:dt,onSettingsSaved:Oi,sidebarV2Enabled:ye,onSelectGroupV2:me,onSelectChat:G,canUseWorkbench:ne,shouldShowInviteModal:ia,inviteGroupName:Li,onInviteOpenLibrary:P,onInviteDismiss:ee,isActiveGroupEmpty:oa,conversationInventoryReady:Tc,showOnboardingGuide:aa,agentSecret:p,agentSecretLoading:f,agentSecretError:g,groupSettingsOpen:be,groupSettingsId:Oe,groupSettingsAgentId:Ce,groupSettingsSection:Ve,groupSettingsEditVpId:It,openSessionSettings:xs,openAnnouncementSettings:Ts,closeGroupSettings:ot,openVpLibraryFromGroupSettings:He,openMemberEditor:rn,showVpTimeline:vs,vpTimelineRows:Mc,sessionStatusTasksForActiveSession:on,sessionStatusAnnouncementText:es,sessionStatusVisible:ue,toggleSessionStatus:Ze,closeSessionStatus:qe,toggleWorkbench:ge,timelineWidthStyle:se,startTimelineResize:Me,onEditVpFromTimeline:R=>{if(!R)return;let ke=En();ke&&xs({sessionId:ke,section:"members",editVpId:R})},onMentionVpFromTimeline:R=>{if(!R)return;let ke=m.value;ke&&typeof ke.appendMention=="function"&&ke.appendMention(R)},onCancelVpFromTimeline:R=>{if(!R)return;let ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||null;Be&&typeof e.cancelVpTurnForSession=="function"&&e.cancelVpTurnForSession(R,Be)},onCancelTaskFromTimeline:R=>!R?.id||!R.sessionId||typeof e.cancelYeaftTask!="function"?!1:e.cancelYeaftTask({agentId:R.agentId,sessionId:R.sessionId,taskId:R.id})}}}});var B1,lC,cC=F(()=>{qt();B1=["button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(","),lC={name:"AppDialog",setup(){let e=dl(),t=Vue.ref(null),s=Vue.ref(null),n=null,r=[],i=p=>{if(p){r=Array.from(document.body.children).filter(f=>f!==t.value?.closest(".app-dialog-overlay")&&!f.classList.contains("app-dialog-overlay")),r.forEach(f=>{f.inert=!0});return}r.forEach(f=>{f.inert=!1}),r=[]},o=()=>{Vue.nextTick(()=>{e.type==="prompt"?s.value?.focus?.():t.value?.querySelector(".app-dialog-confirm")?.focus?.()})};Vue.watch(()=>e.open,(p,f)=>{p&&!f?(n=document.activeElement,Vue.nextTick(()=>i(!0))):!p&&f&&(i(!1),Vue.nextTick(()=>{n?.isConnected&&n.focus?.(),n=null}))}),Vue.watch(()=>e.id,o);let a=()=>{e.type==="alert"?cl(!0):cl(!1)},l=()=>cl(!0,e.value),c=p=>{let f=Array.from(t.value?.querySelectorAll(B1)||[]);if(f.length===0){p.preventDefault(),t.value?.focus?.();return}let g=f[0],v=f[f.length-1];p.shiftKey&&document.activeElement===g?(p.preventDefault(),v.focus()):!p.shiftKey&&document.activeElement===v&&(p.preventDefault(),g.focus())},d=p=>{p.key==="Escape"?(p.preventDefault(),a()):p.key==="Tab"&&c(p)},u=p=>{e.open&&d(p)};return Vue.onMounted(()=>document.addEventListener("keydown",u)),Vue.onBeforeUnmount(()=>{document.removeEventListener("keydown",u),i(!1)}),{state:e,dialog:t,input:s,cancel:a,confirm:l,onKeydown:d}},template:`
10418
+ `,setup(){let e=Pinia.useChatStore(),t=Pinia.useAuthStore(),s=Pinia.useVpStore(),n=Vue.getCurrentInstance(),r=n&&n.appContext.config.globalProperties.$t||(R=>R),i=Vue.computed(()=>!!(e.yeaftDebugPanel&&e.yeaftDebugPanel.open)),o=Vue.ref(null),a=Vue.ref(!1),l=Vue.ref(!1),c=Vue.ref(null),d=Vue.ref("operations"),u=Vue.ref(!1),p=Vue.ref(""),f=Vue.ref(!1),g=Vue.ref(""),v=Vue.ref("vp"),h=Vue.ref(null),m=Vue.ref(null),y=Vue.ref(null),k=Vue.ref(null),w=Vue.ref(null),b=Vue.ref(null),S=Vue.ref(!1),C=Vue.ref(null),_=Vue.computed(()=>e.getYeaftHistoryOutlineState()),M=Vue.ref(e.yeaftHistorySearchState?.query||""),E=null,W=()=>{try{return window.Pinia?.useSessionsStore?.()||null}catch{return null}},$=()=>{let R=W();return{agentId:e.currentAgent||null,sessionId:e.yeaftActiveSessionFilter||R?.activeSessionId||null}},x=()=>rC,D=(R="")=>{let{agentId:ke,sessionId:Be}=$();e.yeaftHistorySearchState={requestId:null,agentId:ke,sessionId:Be,query:"",senderKey:R,loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,error:null}},Z=Vue.computed(()=>{let R=e.currentAgent||"agent",ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||"session";return`yeaft:${R}:${Be}`});Vue.watch(Z,()=>{y.value=null});let Q=null,T=null,A=R=>{if(!R)return!1;let ke=String(R.tagName||"").toLowerCase();return ke==="textarea"||ke==="input"||R.isContentEditable===!0},q=({recoverScroll:R=!1}={})=>{let ke=k.value;if(!ke)return;if(!L.value){ke.style.removeProperty("--yeaft-visual-viewport-height");return}let Be=window.visualViewport,gt=Math.max(1,Math.round(Be?.height||window.innerHeight||1));ke.style.setProperty("--yeaft-visual-viewport-height",`${gt}px`),!(!R||Be&&window.innerHeight&&Be.height<window.innerHeight*.85||A(document.activeElement))&&window.scrollTo(0,0)},H=(R={})=>{Q!=null&&cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{Q=null,q(R)})},N=()=>{H({recoverScroll:!0}),T&&clearTimeout(T),T=setTimeout(()=>{T=null,H({recoverScroll:!0})},260)},ne=Vue.computed(()=>!!e.activeSessionRoute),ye=Vue.computed(()=>!0),me=R=>{let ke=R&&R.id?R.id:null;ke&&(L.value&&qe(),e.setActiveSessionFilter(ke,{agentId:R.agentId||null}),L.value&&e.closeSessionSidebar())},G=R=>{},pe=Vue.ref(null),ae=Vue.ref(!1),de=320,he=Math.max(de,Math.round(window.innerWidth*.25)),re=localStorage.getItem("yeaft-debug-width"),j=Vue.ref(re?parseInt(re,10):he),O=Vue.computed(()=>({"--yeaft-detail-width":j.value+"px"})),z=R=>{ae.value=!0;let ke=R.clientX,Be=j.value,gt=window.innerWidth*.6,it=Ln=>{let ar=ke-Ln.clientX,an=Math.min(gt,Math.max(de,Be+ar));j.value=an},Ut=()=>{ae.value=!1,document.removeEventListener("mousemove",it),document.removeEventListener("mouseup",Ut),localStorage.setItem("yeaft-debug-width",String(j.value))};document.addEventListener("mousemove",it),document.addEventListener("mouseup",Ut)},te="yeaft-session-status-visible",ce="(max-width: 768px)",xe="(max-width: 1024px)",Te=()=>{if(typeof window>"u")return!1;try{return typeof window.matchMedia=="function"?window.matchMedia(ce).matches:Number(window.innerWidth)<=768}catch{return!1}},Y=()=>{if(Te())return!1;try{let R=localStorage.getItem(te);return!(R==="0"||R==="false")}catch{return!0}},ue=Vue.ref(Y()),Se=R=>{if(ue.value=!!R,!Te())try{localStorage.setItem(te,ue.value?"1":"0")}catch{}},Ze=()=>{let R=!ue.value;R&&(e.workbenchExpanded&&e.toggleWorkbench(),e.closeYeaftDebugPanel()),Se(R)},qe=()=>Se(!1),ge=()=>{e.workbenchExpanded||qe(),e.toggleWorkbench()};Vue.watch(i,R=>{R&&qe()},{flush:"sync"}),Vue.watch(()=>e.workbenchExpanded,R=>{R&&qe()},{flush:"sync"});let fe=220,Ie=280,$e=(()=>{try{return localStorage.getItem("yeaft-vp-timeline-width")}catch{return null}})(),je=$e?parseInt($e,10):NaN,Ge=Vue.ref(Number.isFinite(je)&&je>=fe?je:Ie),se=Vue.computed(()=>({"--yeaft-vp-timeline-width":Ge.value+"px"})),Me=R=>{let ke=R.clientX,Be=Ge.value,gt=Math.max(fe,Math.floor(window.innerWidth*.4)),it=Ln=>{let ar=ke-Ln.clientX,an=Math.min(gt,Math.max(fe,Be+ar));Ge.value=an},Ut=()=>{document.removeEventListener("mousemove",it),document.removeEventListener("mouseup",Ut);try{localStorage.setItem("yeaft-vp-timeline-width",String(Ge.value))}catch{}};document.addEventListener("mousemove",it),document.addEventListener("mouseup",Ut)},B=typeof window.matchMedia=="function"?window.matchMedia(ce):null,I=typeof window.matchMedia=="function"?window.matchMedia(xe):null,K=(R,ke)=>R?R.matches:window.innerWidth<=ke,L=Vue.ref(K(B,768)),X=Vue.ref(K(I,1024)),le=Vue.computed(()=>L.value?!e.sessionSidebarOpen:e.sidebarCollapsed),_e=()=>{let R=L.value;L.value=K(B,768),X.value=K(I,1024),L.value&&!R&&qe()},Ee=()=>{_e(),N()},Fe=R=>{R&&(typeof R.addEventListener=="function"?R.addEventListener("change",Ee):typeof R.addListener=="function"&&R.addListener(Ee))},J=R=>{R&&(typeof R.removeEventListener=="function"?R.removeEventListener("change",Ee):typeof R.removeListener=="function"&&R.removeListener(Ee))},ie=()=>{E&&(clearTimeout(E),E=null),M.value="",D(x()),S.value=!1,C.value=null},Re=()=>{let R=x();M.value="",D(R),S.value=!0,e.searchYeaftHistory("",{senderKey:R}),Vue.nextTick(()=>b.value?.focus?.())},Le=()=>{S.value?ie():Re()},We=R=>{let ke=typeof R.composedPath=="function"?R.composedPath():[];S.value&&Uy(R.target,ke)&&ie()},Ne=R=>{M.value=R,E&&clearTimeout(E),C.value=null,E=setTimeout(()=>{E=null,e.searchYeaftHistory(M.value,{senderKey:e.yeaftHistorySearchState.senderKey})},220)},kt=R=>{if(!e.searchYeaftHistory("",{append:!0,senderKey:rC}))return;let ke=Vue.watch(()=>_.value.loading,Be=>{Be||(ke(),b.value?.restoreOlderScroll?.(R))})},Ct=()=>e.searchYeaftHistory(e.yeaftHistorySearchState.query,{append:!0,senderKey:e.yeaftHistorySearchState.senderKey}),_t=R=>{e.hasCapability("session_history_window_prefetch")&&e.loadYeaftHistoryWindow(R)},Xt=R=>{let ke=e.beginYeaftHistoryReveal?.(R)||null;return jy({result:R,revealWindow:Be=>e.revealYeaftHistoryResult(Be,ke),nextTick:()=>Vue.nextTick(),revealMessage:Be=>w.value?.revealMessage?.(Be),isMobile:L.value,closeOutline:ie}).finally(()=>e.finishYeaftHistoryReveal?.(ke))},Is=R=>{if((R.metaKey||R.ctrlKey)&&String(R.key).toLowerCase()==="f"){R.preventDefault(),Re();return}if(R.key==="Escape"){if(S.value){ie();return}if(o.value){V();return}}};Vue.onMounted(()=>{_e(),window.addEventListener("resize",Ee),Fe(B),Fe(I),window.visualViewport?.addEventListener("resize",N),window.visualViewport?.addEventListener("scroll",N),document.addEventListener("click",Qe),document.addEventListener("click",We),document.addEventListener("keydown",Is),H()}),Vue.onUnmounted(()=>{window.removeEventListener("resize",Ee),J(B),J(I),window.visualViewport?.removeEventListener("resize",N),window.visualViewport?.removeEventListener("scroll",N),document.removeEventListener("click",Qe),document.removeEventListener("click",We),document.removeEventListener("keydown",Is),Q!=null&&cancelAnimationFrame(Q),T&&clearTimeout(T),E&&clearTimeout(E)}),Vue.watch(()=>e.yeaftConversationId,R=>{R&&e.activeConversations[0]!==R&&(e.activeConversations=[R])}),Vue.watch(()=>[e.currentAgent,e.yeaftActiveSessionFilter],()=>{L.value&&qe(),ie(),D(x())});let cs=()=>{e.leaveYeaft()},pt=(R,ke,Be,gt=null)=>{if(Dt.value)return!1;let it=W();if(it&&it.activeNeedsInvite){let an=it.activeSession;return an&&$n.delete(an.id),!1}let Ut=e.yeaftActiveSessionFilter||it&&it.activeSessionId||"grp_default",Ln=$l(R).mentions,ar=Array.isArray(ke)?ke:void 0;return e.sendYeaftSessionMessage({groupId:Ut,text:R,mentions:Ln,attachments:ar,quote:Be,...gt?{quickSend:gt}:{}})},ds=R=>{R&&(y.value=R,m.value?.focusInput?.())},Rn=R=>{y.value=null,m.value?.replaceDraft?.(R||"")},rr=()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;ke&&e.cancelYeaftSession(ke)},_n=()=>{if(L.value){e.toggleSessionSidebar();return}e.toggleSidebar()},ir=()=>{e.closeYeaftDebugPanel()},or=()=>{e.reloadYeaftMessages()},sn=()=>{if(typeof e.requestYeaftSessionInventory=="function"){e.requestYeaftSessionInventory();return}e._hasHandledAgentList=!1,e._hasHandledYeaftSessionHydrate=!1,e.yeaftSessionHydrateError=null,e.sendWsMessage({type:"get_agents"})},us=()=>{window.location.reload()},nn=Vue.computed(()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;return ke?e.isYeaftSessionProcessing(ke,e.currentAgent||null):!1}),Je=Vue.computed(()=>{let R=W();if(!R||!R.sessions)return null;let ke=e.yeaftActiveSessionFilter||null;if(ke&&typeof R.sessionById=="function"){let Be=R.sessionById(ke,e.currentAgent||null);if(Be)return Be}if(R.activeSessionId&&typeof R.sessionById=="function"){let Be=R.sessionById(R.activeSessionId,e.currentAgent||null);if(Be)return Be}return typeof R.sessionById=="function"?R.sessionById("grp_default",e.currentAgent||null):null}),xt=Vue.computed(()=>{let R=e.yeaftActiveSessionFilter||Je.value?.id,ke=e.currentAgent;return R&&ke?{routeRef:{runtimeProvider:"yeaft",agentId:ke,sessionId:R}}:null}),ps=Vue.computed(()=>{let R=xt.value?.routeRef;return R?.agentId&&R?.sessionId?`yeaft:${R.agentId}:${R.sessionId}`:null}),fs=Vue.computed(()=>ps.value&&e.sessionForkPendingKey===ps.value?e.sessionForkState:"idle"),Dt=Vue.computed(()=>fs.value==="copying"),Lt=Vue.computed(()=>e.sessionForkUnavailableReason(xt.value)),Wt=Vue.computed(()=>!!xt.value&&e.agents.some(R=>R.id===e.currentAgent&&R.capabilities?.includes("session_fork_from_turn"))),Vs=async R=>{if(!R?.ok){let ke=R?.error?.code||"unknown",Be=`yeaft.session.error.${ke}`,gt=r(Be),it=gt===Be?R?.error?.message||ke:gt;await Tt(r("yeaft.session.copyFailed",{message:it}))}},Et=async()=>{!xt.value||Lt.value||await Vs(await e.copyCatalogSession(xt.value))},Jt=async R=>{!Wt.value||Lt.value||!R?.forkBoundaryTurnId||R.isStreaming||R.isActive||await Vs(await e.copyCatalogSession(xt.value,{throughTurnId:R.forkBoundaryTurnId}))},En=()=>tC({activeSessionFilter:e.yeaftActiveSessionFilter,sessionsStore:W(),topbarGroup:Je.value}),As=Vue.computed(()=>{let R=Je.value||{},ke=typeof R.id=="string"?R.id.trim():"",Be=[R.title,R.name,R.config?.title,R.config?.name];for(let gt of Be){let it=typeof gt=="string"?gt.trim():"";if(it&&!(ke&&it===ke)&&!/^(sessions?|groups?)\//i.test(it)&&!/^session_[A-Za-z0-9_-]+$/.test(it)&&!(R.workDir&&it===R.workDir))return it}return""}),Ns=Vue.computed(()=>{let R=Je.value?.workDir;return typeof R=="string"?R.trim():""}),es=Vue.computed(()=>Je.value&&typeof Je.value.announcement=="string"?Je.value.announcement:""),gs=Vue.computed(()=>$k(Je.value,e.yeaftModel||"")),hs=Vue.computed(()=>{let R=gs.value;return R&&e.yeaftAvailableModels.find(ke=>Jo(ke,R))||null}),U=Vue.computed(()=>hs.value?.label||hs.value?.id||gs.value),oe=R=>Ip(R?.effortOptions),Pe=Vue.computed(()=>Lk(Je.value,e.yeaftModelEffort||"")),Ue=Vue.computed(()=>{let R=Array.isArray(hs.value?.effortOptions)?hs.value.effortOptions.filter(Boolean):[];return R.length?R.includes(Pe.value)?Pe.value:Ap(R):null}),et=Vue.computed(()=>Ok(e.yeaftAvailableModels)),lt=Vue.computed(()=>oe(hs.value)),ht=R=>{R==="model"&&!et.value.length||R==="effort"&&!lt.value.length||(o.value=o.value===R?null:R)},V=(R=null)=>{(!R||o.value===R)&&(o.value=null)},Ae=(R,ke)=>{let Be=R.currentTarget;if(R.relatedTarget){Be?.contains(R.relatedTarget)||V(ke);return}setTimeout(()=>{Be?.contains(document.activeElement)||V(ke)},0)},De=(R,ke=null)=>{if(!R)return;let Be=Je.value?.id||null;e.switchYeaftModel(R,Be,ke),V()},Ke=R=>{if(!lt.value.includes(R)||!gs.value)return;let ke=Je.value?.id||null;e.switchYeaftModel(gs.value,ke,R),V()},ct=R=>!R||!Number.isFinite(R)||R<=0?"":R>=1e6?`${Math.round(R/1e5)/10}m`:R>=1e3?`${Math.round(R/1e3)}k`:String(R),nt=R=>{let ke=ct(R?.contextWindow),Be=ct(R?.maxOutput);return ke&&Be?`${ke} \xB7 ${Be} out`:ke},Qe=R=>{if(!o.value)return;R.target.closest(".yeaft-composer-choice")||V()},dt=(R,ke="operations")=>{c.value=R||null,d.value=["operations","trace","llm"].includes(ke)?ke:"operations",l.value=!0},ts=()=>{a.value||(v.value="vp",h.value=null),a.value=!a.value},Pt=({initialTab:R="vp",editVpId:ke=null}={})=>{v.value=["vp","search","mcp","security"].includes(R)?R:"vp",h.value=v.value==="vp"&&ke||null,a.value=!0},ms=()=>{V(),dt(e.currentAgent||null,"llm")},qr=async()=>{if(!(p.value||f.value)){f.value=!0,g.value="";try{let R={"Content-Type":"application/json"};t.token&&(R.Authorization=`Bearer ${t.token}`);let ke=await fetch("/api/user/agent-secret",{headers:R});if(!ke.ok){let it=r("yeaft.onboarding.secretError");try{let Ut=await ke.json();Ut?.error&&(it=Ut.error)}catch{}throw new Error(it)}let Be=await ke.json(),gt=Be?.agentSecret||Be?.agent_secret||"";if(p.value=String(gt||"").trim(),!p.value)throw new Error(r("yeaft.onboarding.secretError"))}catch(R){g.value=R?.message||r("yeaft.onboarding.secretError")}finally{f.value=!1}}},Vr=()=>{u.value=!0},Ac=R=>{u.value=!1},$n=Vue.reactive(new Set),Dn=Vue.computed(()=>{let R=W();return R?R.activeSession:null}),xc=R=>{if(!R)return"";if(R.id==="grp_default"&&(R.name==="Default"||!R.name))try{let ke=typeof window<"u"?window.i18n:null;if(ke&&ke.global&&typeof ke.global.t=="function")return ke.global.t("yeaft.session.defaultName")}catch{}return R.name||R.id||""},Li=Vue.computed(()=>xc(Dn.value)),ia=Vue.computed(()=>{let R=W();if(!R||!R.activeNeedsInvite)return!1;let ke=R.activeSession;return ke?!$n.has(ke.id):!1}),oa=Vue.computed(()=>{let R=W();return!!(R&&R.activeNeedsInvite)}),Tc=Vue.computed(()=>{let R=W();return e._hasHandledAgentList===!0&&e._hasHandledYeaftSessionHydrate===!0&&!!(R&&R.hasLoadedSnapshot)}),aa=Vue.computed(()=>{let R=W();return JS({agentInventoryReady:e._hasHandledAgentList===!0,hasYeaftAgent:sC(e),sessionsReady:e._hasHandledYeaftSessionHydrate===!0&&!!(R&&R.hasLoadedSnapshot),sessionsEmpty:!!(R&&R.isEmpty)})});Vue.watch(aa,R=>{R&&qr()},{immediate:!0});let P=()=>{let R=Dn.value;R&&$n.add(R.id),rn(R?R.id:null)},ee=()=>{let R=Dn.value;R&&$n.add(R.id)},be=Vue.ref(!1),Oe=Vue.ref(null),Ce=Vue.ref(null),Ve=Vue.ref("session"),It=Vue.ref(""),xs=(R={})=>{let ke=R&&(R.sessionId||R.groupId)||null,Be=R&&R.editVpId||"",gt=Be?"members":R&&R.section||"session";ke&&(Oe.value=ke,Ce.value=R&&R.agentId||null,Ve.value=gt,It.value=Be,be.value=!0)},Ts=()=>{let R=En();R&&xs({sessionId:R,section:"session"})},ot=()=>{be.value=!1,Oe.value=null,Ce.value=null,It.value=""},He=()=>{ot(),Pt({initialTab:"vp"})},rn=R=>{R&&xs({sessionId:R,section:"members"})};Vue.watch(()=>{let R=Dn.value;return R?R.id+":"+(Array.isArray(R.roster)?R.roster.length:0)+":"+(R.defaultVpId||""):""},(R,ke)=>{let Be=Dn.value;Be&&R!==ke&&Array.isArray(Be.roster)&&Be.roster.length>0&&$n.delete(Be.id)});let Oi=()=>{a.value=!1},vs=Vue.computed(()=>!a.value&&!aa.value&&ue.value),on=Vue.computed(()=>{let R=W(),ke=e.yeaftActiveSessionFilter||R?.activeSessionId||null;if(!ke)return[];let gt=(typeof R?.sessionById=="function"?R.sessionById(ke,e.currentAgent||null):null)?.agentId||e.currentAgent||null,it=gt?`${gt}${ke}`:ke,Ut=e.yeaftActiveTasksBySession?.[it]||{};return VT(Ut)}),Mc=Vue.computed(()=>{if(!e.yeaftConversationId)return[];let ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||null;if(!Be)return[];let gt=QS(ke,Be,e.currentAgent||null),it=gt&&Array.isArray(gt.roster)?gt.roster:[];if(it.length===0)return[];let Ut=new Set(it),Ln=YS(it,s.vpList||[]),ar=e.vpStatuses||{},an={},Fi=e.currentAgent||null;for(let mt of Object.values(ar)){if(!mt||!mt.vpId)continue;let la=mt.sessionId??mt.groupId;la&&la!==Be||Fi&&mt.agentId&&mt.agentId!==Fi||Ut.has(mt.vpId)&&(an[mt.vpId]=mt)}let gf={};for(let mt of Object.values(e.activeVpTurns||{}))!mt?.turnId||!mt?.sessionId||mt.sessionId!==Be||Fi&&mt.agentId&&mt.agentId!==Fi||Object.entries(e.stoppingVpTurnIds||{}).some(([la])=>e.activeVpTurns?.[la]===mt)&&(gf[mt.turnId]=!0);return ZS({vpList:Ln,vpStatuses:an,stoppingVpTurnIds:gf,connectionState:e.connectionState,vpLabelOf:mt=>s.vpLabel(mt),vpDescriptionOf:mt=>s.vpDescription(mt)}).map(mt=>({...mt,queryProgress:NT(e,mt,{agentId:Fi,sessionId:Be})}))});return{store:e,pageRef:k,effectiveSidebarCollapsed:le,debugMode:i,composerMenuOpen:o,topbarGroup:Je,forkSessionRow:xt,forkSessionKey:ps,activeSessionForkState:fs,isActiveSessionCopying:Dt,forkUnavailableReason:Lt,forkCurrentSession:Et,forkFromTurnEnabled:Wt,forkFromTurn:Jt,topbarSessionTitle:As,topbarFolderPath:Ns,topbarModel:gs,topbarModelLabel:U,topbarEffort:Ue,topbarModelRows:et,topbarEffortOptions:lt,selectableEffortsForModel:oe,modelOptionMatchesRef:Jo,showSettings:a,showAgentSettings:l,agentSettingsAgentId:c,agentSettingsInitialCategory:d,sessionCreateOpen:u,settingsInitialTab:v,settingsInitialEditVpId:h,chatInputRef:m,messageQuote:y,messageListRef:w,historySearchRef:b,historySearchOpen:S,historySearchActiveMessageId:C,historyOutlineState:_,toggleHistorySearch:Le,closeHistorySearch:ie,onHistorySearchQuery:Ne,loadOlderHistoryOutline:kt,loadMoreHistorySearchResults:Ct,previewHistorySearchResult:_t,selectHistorySearchResult:Xt,yeaftInputDraftKey:Z,openSettings:Pt,isMobile:L,isNarrowDetail:X,detailPanel:pe,isResizingDetail:ae,detailWidthStyle:O,startDetailResize:z,isProcessing:nn,goBack:cs,sendMessage:pt,setMessageQuote:ds,editMessageAsNew:Rn,cancelYeaft:rr,toggleSidebar:_n,closeDebug:ir,reloadMessages:or,retryConversationInventory:sn,reloadPage:us,toggleComposerMenu:ht,closeComposerMenu:V,onComposerMenuFocusout:Ae,selectModel:De,selectEffort:Ke,openLlmConfig:ms,trackOverlayPointerDown:Vt,trackOverlayPointerUp:Nt,clearOverlayPointerGesture:Bt,openSessionCreate:Vr,onSessionCreated:Ac,formatTokens:ct,formatModelCtx:nt,toggleSettings:ts,openAgentSettings:dt,onSettingsSaved:Oi,sidebarV2Enabled:ye,onSelectGroupV2:me,onSelectChat:G,canUseWorkbench:ne,shouldShowInviteModal:ia,inviteGroupName:Li,onInviteOpenLibrary:P,onInviteDismiss:ee,isActiveGroupEmpty:oa,conversationInventoryReady:Tc,showOnboardingGuide:aa,agentSecret:p,agentSecretLoading:f,agentSecretError:g,groupSettingsOpen:be,groupSettingsId:Oe,groupSettingsAgentId:Ce,groupSettingsSection:Ve,groupSettingsEditVpId:It,openSessionSettings:xs,openAnnouncementSettings:Ts,closeGroupSettings:ot,openVpLibraryFromGroupSettings:He,openMemberEditor:rn,showVpTimeline:vs,vpTimelineRows:Mc,sessionStatusTasksForActiveSession:on,sessionStatusAnnouncementText:es,sessionStatusVisible:ue,toggleSessionStatus:Ze,closeSessionStatus:qe,toggleWorkbench:ge,timelineWidthStyle:se,startTimelineResize:Me,onEditVpFromTimeline:R=>{if(!R)return;let ke=En();ke&&xs({sessionId:ke,section:"members",editVpId:R})},onMentionVpFromTimeline:R=>{if(!R)return;let ke=m.value;ke&&typeof ke.appendMention=="function"&&ke.appendMention(R)},onCancelVpFromTimeline:R=>{if(!R)return;let ke=W(),Be=e.yeaftActiveSessionFilter||ke?.activeSessionId||null;Be&&typeof e.cancelVpTurnForSession=="function"&&e.cancelVpTurnForSession(R,Be)},onCancelTaskFromTimeline:R=>!R?.id||!R.sessionId||typeof e.cancelYeaftTask!="function"?!1:e.cancelYeaftTask({agentId:R.agentId,sessionId:R.sessionId,taskId:R.id})}}}});var BT,lC,cC=F(()=>{qt();BT=["button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(","),lC={name:"AppDialog",setup(){let e=dl(),t=Vue.ref(null),s=Vue.ref(null),n=null,r=[],i=p=>{if(p){r=Array.from(document.body.children).filter(f=>f!==t.value?.closest(".app-dialog-overlay")&&!f.classList.contains("app-dialog-overlay")),r.forEach(f=>{f.inert=!0});return}r.forEach(f=>{f.inert=!1}),r=[]},o=()=>{Vue.nextTick(()=>{e.type==="prompt"?s.value?.focus?.():t.value?.querySelector(".app-dialog-confirm")?.focus?.()})};Vue.watch(()=>e.open,(p,f)=>{p&&!f?(n=document.activeElement,Vue.nextTick(()=>i(!0))):!p&&f&&(i(!1),Vue.nextTick(()=>{n?.isConnected&&n.focus?.(),n=null}))}),Vue.watch(()=>e.id,o);let a=()=>{e.type==="alert"?cl(!0):cl(!1)},l=()=>cl(!0,e.value),c=p=>{let f=Array.from(t.value?.querySelectorAll(BT)||[]);if(f.length===0){p.preventDefault(),t.value?.focus?.();return}let g=f[0],v=f[f.length-1];p.shiftKey&&document.activeElement===g?(p.preventDefault(),v.focus()):!p.shiftKey&&document.activeElement===v&&(p.preventDefault(),g.focus())},d=p=>{p.key==="Escape"?(p.preventDefault(),a()):p.key==="Tab"&&c(p)},u=p=>{e.open&&d(p)};return Vue.onMounted(()=>document.addEventListener("keydown",u)),Vue.onBeforeUnmount(()=>{document.removeEventListener("keydown",u),i(!1)}),{state:e,dialog:t,input:s,cancel:a,confirm:l,onKeydown:d}},template:`
10428
10419
  <Teleport to="body">
10429
10420
  <div v-if="state.open" class="modal-overlay app-dialog-overlay" @click.self="cancel">
10430
10421
  <section ref="dialog" class="modal app-dialog" role="dialog" aria-modal="true" tabindex="-1" :aria-labelledby="'app-dialog-title-' + state.id" :aria-describedby="'app-dialog-message-' + state.id">
@@ -10487,10 +10478,10 @@ ${String(e||"").trim()}
10487
10478
  </footer>
10488
10479
  </form>
10489
10480
  </div>
10490
- `}});function H1(e,t,s){if(!gC.includes(e)||!s?.isAuthenticated||!["yeaft","chat"].includes(t.currentView)||t.workCenterOpen||t.pluginCenterOpen||t.digitalPersonOpen)return!1;if(e==="closeWorkbench")return t.workbenchExpanded===!0;if(t.connectionState!=="connected"||!t.authenticated)return!1;let n=t.agents?.find(o=>o.id===t.currentAgent);if(!n?.online)return!1;if(e==="newSession")return!0;if(t.currentView==="chat"&&(t.isSplitMode||!["admin","pro"].includes(s.role)))return!1;let r=t.activeSessionRoute;if(!vt(r)||r.agentId!==n.id||t.currentAgentInfo?.id!==n.id||t.workbenchRouteProtocolSupported!==!0)return!1;let i=e==="terminal"?"terminal":"file_editor";return t.hasCapability("workbench_session_routes")&&t.hasCapability(i)&&n.capabilities?.includes("workbench_session_routes")===!0&&n.capabilities?.includes(i)===!0}function z1(e,t){for(let s=e;s?.nodeType===1;s=s.parentElement){if(s.hidden||s.getAttribute("aria-hidden")==="true")return!1;let n=t.defaultView?.getComputedStyle(s);if(n?.display==="none"||n?.visibility==="hidden")return!1}return!0}function G1(e,t=globalThis.document){let s=[e?.target,t?.activeElement,...e?.composedPath?.()||[]];return s.some(r=>r?.closest?.(W1))||!s.some(r=>r?.closest?.(j1))&&s.some(r=>r?.closest?.(U1))?!0:[...t?.querySelectorAll(K1)||[]].some(r=>z1(r,t))}function hC(e,{preferences:t,store:s,auth:n,execute:r,document:i=globalThis.document}){if(G1(e,i))return null;let o=gC.find(a=>Nl(e,t?.bindings?.[a]));return!o||!H1(o,s,n)||r(o)!==!0?null:(e.preventDefault(),e.stopPropagation(),o)}var gC,W1,U1,j1,K1,mC=F(()=>{zo();Ls();gC=Object.freeze(["terminal","files","git","newSession","closeWorkbench"]);W1='[contenteditable]:not([contenteditable="false"]), .monaco-editor, .cm-editor, .CodeMirror, .xterm, .terminal-container, iframe',U1='input, textarea, select, [role="textbox"]',j1="[data-message-composer]",K1='[aria-modal="true"], [role="dialog"], dialog[open], .modal-overlay, .settings-overlay, .agent-settings-overlay'});var vC,yC=F(()=>{sa();zo();mC();Ls();vC={name:"UserShortcutsRuntime",components:{SessionCreateModal:sr},template:`
10481
+ `}});function HT(e,t,s){if(!gC.includes(e)||!s?.isAuthenticated||!["yeaft","chat"].includes(t.currentView)||t.workCenterOpen||t.pluginCenterOpen||t.digitalPersonOpen)return!1;if(e==="closeWorkbench")return t.workbenchExpanded===!0;if(t.connectionState!=="connected"||!t.authenticated)return!1;let n=t.agents?.find(o=>o.id===t.currentAgent);if(!n?.online)return!1;if(e==="newSession")return!0;if(t.currentView==="chat"&&(t.isSplitMode||!["admin","pro"].includes(s.role)))return!1;let r=t.activeSessionRoute;if(!vt(r)||r.agentId!==n.id||t.currentAgentInfo?.id!==n.id||t.workbenchRouteProtocolSupported!==!0)return!1;let i=e==="terminal"?"terminal":"file_editor";return t.hasCapability("workbench_session_routes")&&t.hasCapability(i)&&n.capabilities?.includes("workbench_session_routes")===!0&&n.capabilities?.includes(i)===!0}function zT(e,t){for(let s=e;s?.nodeType===1;s=s.parentElement){if(s.hidden||s.getAttribute("aria-hidden")==="true")return!1;let n=t.defaultView?.getComputedStyle(s);if(n?.display==="none"||n?.visibility==="hidden")return!1}return!0}function GT(e,t=globalThis.document){let s=[e?.target,t?.activeElement,...e?.composedPath?.()||[]];return s.some(r=>r?.closest?.(WT))||!s.some(r=>r?.closest?.(jT))&&s.some(r=>r?.closest?.(UT))?!0:[...t?.querySelectorAll(KT)||[]].some(r=>zT(r,t))}function hC(e,{preferences:t,store:s,auth:n,execute:r,document:i=globalThis.document}){if(GT(e,i))return null;let o=gC.find(a=>Nl(e,t?.bindings?.[a]));return!o||!HT(o,s,n)||r(o)!==!0?null:(e.preventDefault(),e.stopPropagation(),o)}var gC,WT,UT,jT,KT,mC=F(()=>{zo();Ls();gC=Object.freeze(["terminal","files","git","newSession","closeWorkbench"]);WT='[contenteditable]:not([contenteditable="false"]), .monaco-editor, .cm-editor, .CodeMirror, .xterm, .terminal-container, iframe',UT='input, textarea, select, [role="textbox"]',jT="[data-message-composer]",KT='[aria-modal="true"], [role="dialog"], dialog[open], .modal-overlay, .settings-overlay, .agent-settings-overlay'});var vC,yC=F(()=>{sa();zo();mC();Ls();vC={name:"UserShortcutsRuntime",components:{SessionCreateModal:sr},template:`
10491
10482
  <SessionCreateModal v-if="sessionCreateOpen" :initial-agent-id="sessionCreateAgentId"
10492
10483
  @close="sessionCreateOpen = false" @created="sessionCreateOpen = false" />
10493
- `,setup(){let e=window.Pinia.useChatStore(),t=window.Pinia.useAuthStore(),{preferences:s,ownerId:n}=Si(),r=Vue.ref(!1),i=Vue.ref(null);Vue.watch([n,()=>e.currentAgent,()=>e.currentView,()=>e.digitalPersonOpen],()=>{r.value=!1},{flush:"sync"});let o=l=>{if(l==="newSession")return i.value=e.currentAgent,r.value=!0,!0;if(l==="closeWorkbench")return e.workbenchExpanded?(e.toggleWorkbench(),!0):!1;let c={capabilityId:l,routeKey:vt(e.activeSessionRoute),accepted:!1};return window.dispatchEvent(new CustomEvent("workbench-open-capability",{detail:c})),c.accepted},a=l=>hC(l,{preferences:s.value,store:e,auth:t,execute:o});return Vue.onMounted(()=>document.addEventListener("keydown",a)),Vue.onUnmounted(()=>document.removeEventListener("keydown",a)),{sessionCreateOpen:r,sessionCreateAgentId:i}}}});function kC(){if(bC)return!1;bC=!0;let e=null;try{if(e=globalThis.localStorage||null,e?.getItem(pf)==="done")return!1}catch{e=null}let t=globalThis.indexedDB;if(!t||typeof t.deleteDatabase!="function"){try{e?.setItem(pf,"done")}catch{}return!1}try{let s=t.deleteDatabase(Y1);return s.onsuccess=()=>{try{e?.setItem(pf,"done")}catch{}},s.onerror=()=>{},s.onblocked=()=>{},!0}catch{return!1}}var Y1,pf,bC,wC=F(()=>{Y1="yeaft-history-cache",pf="yeaft-history-cache-removed-v1",bC=!1});var X1=SC(()=>{el();ss();ai();lv();uv();un();mv();Sv();Iv();xv();Rw();CS();aC();Mp();Bu();cC();uC();fC();yC();wC();kC();window.Pinia={...Pinia,useChatStore:null,useAuthStore:null,useBrowserStore:null};var Q1={components:{DigitalPersonPage:SS,LoginPage:Av,ChatPage:Pw,YeaftPage:oC,AppDialog:lC,SessionMergeModal:pC,UserShortcutsRuntime:vC,PluginSaveNotices:dC},template:`
10484
+ `,setup(){let e=window.Pinia.useChatStore(),t=window.Pinia.useAuthStore(),{preferences:s,ownerId:n}=Si(),r=Vue.ref(!1),i=Vue.ref(null);Vue.watch([n,()=>e.currentAgent,()=>e.currentView,()=>e.digitalPersonOpen],()=>{r.value=!1},{flush:"sync"});let o=l=>{if(l==="newSession")return i.value=e.currentAgent,r.value=!0,!0;if(l==="closeWorkbench")return e.workbenchExpanded?(e.toggleWorkbench(),!0):!1;let c={capabilityId:l,routeKey:vt(e.activeSessionRoute),accepted:!1};return window.dispatchEvent(new CustomEvent("workbench-open-capability",{detail:c})),c.accepted},a=l=>hC(l,{preferences:s.value,store:e,auth:t,execute:o});return Vue.onMounted(()=>document.addEventListener("keydown",a)),Vue.onUnmounted(()=>document.removeEventListener("keydown",a)),{sessionCreateOpen:r,sessionCreateAgentId:i}}}});function kC(){if(bC)return!1;bC=!0;let e=null;try{if(e=globalThis.localStorage||null,e?.getItem(pf)==="done")return!1}catch{e=null}let t=globalThis.indexedDB;if(!t||typeof t.deleteDatabase!="function"){try{e?.setItem(pf,"done")}catch{}return!1}try{let s=t.deleteDatabase(YT);return s.onsuccess=()=>{try{e?.setItem(pf,"done")}catch{}},s.onerror=()=>{},s.onblocked=()=>{},!0}catch{return!1}}var YT,pf,bC,wC=F(()=>{YT="yeaft-history-cache",pf="yeaft-history-cache-removed-v1",bC=!1});var XT=SC(()=>{el();ss();ai();lv();uv();un();mv();Sv();Iv();xv();Rw();CS();aC();Mp();Bu();cC();uC();fC();yC();wC();kC();window.Pinia={...Pinia,useChatStore:null,useAuthStore:null,useBrowserStore:null};var QT={components:{DigitalPersonPage:SS,LoginPage:Av,ChatPage:Pw,YeaftPage:oC,AppDialog:lC,SessionMergeModal:pC,UserShortcutsRuntime:vC,PluginSaveNotices:dC},template:`
10494
10485
  <AppDialog />
10495
10486
  <div v-if="!authStore.initialized" class="auth-bootstrap" aria-busy="true"><span class="session-loading-spinner"></span></div>
10496
10487
  <LoginPage v-else-if="!authStore.isAuthenticated" />
@@ -10502,4 +10493,4 @@ ${String(e||"").trim()}
10502
10493
  <YeaftPage v-else-if="chatStore.currentView === 'yeaft'" />
10503
10494
  <ChatPage v-else />
10504
10495
  </template>
10505
- `,setup(){let e=Ar(),t=Xe();return Vue.watch([()=>JSON.stringify(e.activeSessionRoute),()=>e.currentView,()=>e.digitalPersonOpen,()=>e.workCenterOpen],()=>{e.sessionBranchNavigationGeneration++},{flush:"sync"}),e.initTheme(),e.setupVisibilityHandler(),Vue.onMounted(()=>{t.initialize()}),Vue.watch(()=>t.initialized&&t.isAuthenticated,s=>{s&&e.connect()},{immediate:!0}),{authStore:t,chatStore:e}}},Ic=Vue.createApp(Q1),Z1=Pinia.createPinia();Ic.use(Z1);Mf(Ic,{"zh-CN":wv,en:Cv});hv();window.Pinia.useChatStore=Ar;window.Pinia.useAuthStore=Xe;window.Pinia.useVpStore=Zs;window.Pinia.useSessionsStore=av;window.Pinia.useBrowserStore=dv;Ic.component("ToolLine",yl);Ic.mount("#app")});export default X1();
10496
+ `,setup(){let e=Ar(),t=Xe();return Vue.watch([()=>JSON.stringify(e.activeSessionRoute),()=>e.currentView,()=>e.digitalPersonOpen,()=>e.workCenterOpen],()=>{e.sessionBranchNavigationGeneration++},{flush:"sync"}),e.initTheme(),e.setupVisibilityHandler(),Vue.onMounted(()=>{t.initialize()}),Vue.watch(()=>t.initialized&&t.isAuthenticated,s=>{s&&e.connect()},{immediate:!0}),{authStore:t,chatStore:e}}},Ic=Vue.createApp(QT),ZT=Pinia.createPinia();Ic.use(ZT);Mf(Ic,{"zh-CN":wv,en:Cv});hv();window.Pinia.useChatStore=Ar;window.Pinia.useAuthStore=Xe;window.Pinia.useVpStore=Zs;window.Pinia.useSessionsStore=av;window.Pinia.useBrowserStore=dv;Ic.component("ToolLine",yl);Ic.mount("#app")});export default XT();