@yeaft/webchat-agent 1.0.600 → 1.0.602
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.
- package/local-runtime/version.json +1 -1
- package/local-runtime/web/app.bundle.js +18 -17
- package/local-runtime/web/app.bundle.js.gz +0 -0
- package/local-runtime/web/index.html +2 -2
- package/local-runtime/web/style.bundle.css +1 -1
- package/local-runtime/web/style.bundle.css.gz +0 -0
- package/package.json +1 -1
- package/yeaft/config.js +4 -0
- package/yeaft/person/capabilities.js +26 -14
- package/yeaft/person/contracts.js +7 -6
- package/yeaft/person/native-tools.js +143 -0
- package/yeaft/person/repository.js +47 -4
- package/yeaft/person/runtime.js +43 -15
- package/yeaft/person/service.js +18 -5
- package/yeaft/person/sqlite-repository.js +3 -1
- package/yeaft/person/sqlite-store.js +42 -5
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
var N=(e,t,s)=>()=>{if(s)throw s[0];try{return e&&(t=e(e=0)),t}catch(n){throw s=[n],n}};var ww=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(s){throw t=0,s}};function xu(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 Tu(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 Mu(e){return e&&typeof e=="object"&&typeof e.n=="string"&&typeof e.c=="string"}function is(e){return nacl.util.decodeBase64(e)}var wo=N(()=>{});function Es(){return globalThis.localStorage||null}function Ru(){let e=ir();for(let t of kl)try{t(e)}catch{}}function kw(){try{Es()?.removeItem(ei),Es()?.removeItem(ti)}catch{}}function Sw(e){return String(e||"").trim()||null}function Pu(e,t){if(!or(t))return{};try{let s=JSON.parse(Es()?.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)?(Es()?.removeItem(e),{}):s.records}catch{try{Es()?.removeItem(e)}catch{}return{}}}function _u(e,t,s){if(!or(s))return!1;try{return Es()?.setItem(e,JSON.stringify({ownerId:s.ownerId,records:t||{}})),!0}catch{return!1}}function os(e){let t=Sw(e);if(!t)return Sl(),null;if(_n!==t){_n=t,ko+=1;for(let s of[ei,ti])try{let n=JSON.parse(Es()?.getItem(s)||"null");(!n||n.ownerId!==t)&&Es()?.removeItem(s)}catch{try{Es()?.removeItem(s)}catch{}}Ru()}return ir()}function Sl(){_n=null,ko+=1,kw(),Ru()}function ir(){return _n?{ownerId:_n,epoch:ko}:null}function or(e){return!!e&&!!_n&&e.ownerId===_n&&e.epoch===ko}function Eu(e){return{drafts:Pu(ei,e),outbox:Pu(ti,e)}}function Cl(e,t){return _u(ei,e,t)}function si(e,t){return _u(ti,e,t)}function Du(e){return typeof e!="function"?()=>{}:(kl.add(e),()=>kl.delete(e))}var ei,ti,_n,ko,kl,EA,Il=N(()=>{ei="yeaft-work-center-composer-drafts-v1",ti="yeaft-work-center-message-outbox-v1",_n=null,ko=0,kl=new Set;EA=Object.freeze({drafts:ei,outbox:ti})});function Al(){try{globalThis.Pinia?.useChatStore?.()?.clearYeaftHistoryMemory?.()}catch{}}function Ds(e){let t=String(e||"").trim()||null;So!==t&&Al(),So=t}function Iw(){Al(),So=null}var Cw,So,Aw,Ye,Ft=N(()=>{wo();Il();({defineStore:Cw}=Pinia);So=null;Aw=1800*1e3,Ye=Cw("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",os(this.userId),Ds(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?is(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,os(this.userId),Ds(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?is(r.sessionKey):null,this.role=r.role||"pro",this.userId=r.userId||null,os(this.userId),Ds(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?is(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,os(this.userId),Ds(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?is(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,os(this.userId),Ds(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?is(s.sessionKey):null,this.role=s.role||"pro",this.userId=s.userId||null,os(this.userId),Ds(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?is(n.sessionKey):null,this.role=n.role||"pro",this.userId=n.userId||null,os(this.userId),Ds(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?is(r):null,this.role=i||"pro",this.userId=o||null,os(this.userId),Ds(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,os(this.userId),a!==this.userId&&Al(),So=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,Aw),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,os(this.userId),Ds(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=is(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(){Sl(),Iw(),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 Lu(){try{let e=JSON.parse(globalThis.localStorage?.getItem($u)||"null");return!e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,t])=>t===!0))}catch{return{}}}function Ou(e){try{globalThis.localStorage?.setItem($u,JSON.stringify(e))}catch{}}var $u,Fu=N(()=>{$u="digital-person-ui-enabled-by-agent"});function Be(e,t){let s=$s?.value||"zh-CN",r=(ar[s]||ar["zh-CN"]||{})[e];if(r===void 0&&s!=="zh-CN"&&(r=(ar["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 xw(){return $s?.value||"zh-CN"}function ni(e){ar[e]&&($s&&($s.value=e),localStorage.setItem("locale",e),document.documentElement.setAttribute("lang",e))}function Tw(){let e=localStorage.getItem("locale");return e&&ar[e]?e:(navigator.language||navigator.userLanguage||"").startsWith("en")?"en":"zh-CN"}function Vu(e,t){return ar=t,$s=Vue.ref(Tw()),document.documentElement.setAttribute("lang",$s.value),e.config.globalProperties.$t=Be,e.config.globalProperties.$locale=$s,e.provide("t",Be),e.provide("locale",$s),{t:Be,setLocale:ni,getLocale:xw,locale:$s}}var $s,ar,ms=N(()=>{$s=null,ar={}});function lr(e){return e?.capabilityMetadataProvided!==!0?!0:Array.isArray(e.capabilities)&&e.capabilities.includes(xl)}var xl,Co=N(()=>{xl="yeaft_plugins"});function Io(e){if(e?.capabilityMetadataProvided!==!0)return!1;let t=Array.isArray(e.capabilities)?e.capabilities:[];return t.includes(xl)&&t.includes(Mw)}var Mw,Tl=N(()=>{Co();Mw="yeaft_managed_skills"});function En(e){if(e==null||e==="")return"claude-code";if(Pw.has(e))return e;throw new Error(`Unknown Chat runtime provider: ${e}`)}function rn(e){if(typeof e!="string"||!e)throw new Error("Chat catalog key requires conversationId");return`chat:${e}`}function cr(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 ri(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 qu(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 Bu(e,t,s="recent",n=null){let r=rn(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 Ml(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 Pw,Ao=N(()=>{Pw=new Set(["claude-code","copilot"])});function dr(e,t,s=""){ii&&(clearTimeout(ii),ii=null),e.sessionLoading=t,e.sessionLoadingText=s,t&&(ii=setTimeout(()=>{e.sessionLoading&&(e.sessionLoading=!1,e.sessionLoadingText=""),ii=null},Rw))}function vs(e){dr(e,!1)}function Nu(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:En(t.provider),catalogKey:t.catalogKey||null},e.recoveryDismissed=!1)}}function Hu(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:En(r)}),e.pendingRecovery=null,e.recoveryDismissed=!1},500)}function Wu(e){e.recoveryDismissed=!0,e.pendingRecovery=null}function Uu(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]=[],dr(e,!0,Be("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 ju(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 Dn(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=En(t.provider),n={sessionId:t.claudeSessionId,workDir:t.workDir,agentId:t.agentId||e.currentAgent,provider:s,catalogKey:rn(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 Ku(e){return e.lastUsedSession}function zu(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 Gu(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 Yu(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 Qu(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 Xu(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 Zu(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 Ju(e,t=20){if(Ye().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 ep(e,t){if(!Ye().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 Pl(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 tp(e,t){let s=Pl(e,t);return s&&s.online}var Rw,ii,$n=N(()=>{Ft();ms();Ao();Rw=3e4,ii=null});function sp(){typeof window>"u"||typeof window.dispatchEvent!="function"||typeof CustomEvent>"u"||window.dispatchEvent(new CustomEvent("browser-runtime-transport-reset"))}function np(e){return e?.code===1008&&String(e.reason||"").toLowerCase().includes("authentication")}function rp(e){let t=oi;oi=[];for(let{resolve:s,reject:n,timer:r}of t)clearTimeout(r),e?s():n(new Error("WebSocket reconnect failed"))}function op(e,t){if(!e.ws||e.ws.readyState!==WebSocket.OPEN)return!1;if(e.currentView==="yeaft"&&Ew.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=xu(t,e.sessionKey);e.ws.send(JSON.stringify(s))}else e.ws.send(JSON.stringify(t));return!0}catch{return!1}}function ai(e,t=1e4){return e.ws&&e.ws.readyState===WebSocket.OPEN?Promise.resolve():new Promise((s,n)=>{let r=setTimeout(()=>{oi=oi.filter(i=>i.resolve!==s),n(new Error("WebSocket reconnect timeout"))},t);oi.push({resolve:s,reject:n,timer:r}),(!e.ws||e.ws.readyState!==WebSocket.CONNECTING)&&(e.reconnectAttempts=0,e.connect())})}function ap(e,t){try{let s=JSON.parse(t);return e.sessionKey&&Mu(s)?Tu(s,e.sessionKey):s}catch{return null}}function ip(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 lp(e){let t=Ye(),s=location.protocol==="https:"?"wss:":"ws:";e.reconnectTimer&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=null);let n=t.getActiveToken?.()||t.token||null,r=t.authGeneration;if(e.ws&&e.ws.readyState===WebSocket.CONNECTING&&e._wsAuthToken===n&&e._wsAuthGeneration===r)return;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,sp(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!1,e.pendingAgentSelection=null,e.agentSwitching=!1,e.ws&&(ip(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 i=Number(e.chatHistoryConnectionGeneration||0)+1;e.chatHistoryConnectionGeneration=i;for(let[l,d]of Object.entries(e.projectMutationRequests||{}))d?.resolve?.({ok:!1,requestId:l,error:{code:"connection_changed"}});e.projectMutationRequests={},e.sessionProjects=[];for(let[l,d]of Object.entries(e.chatHistoryRequests||{}))d?.loading&&(e.chatHistoryRequests[l]={...d,loading:!1,cancelled:!0,error:"connection_changed"});let o=Object.values(e.sessionCatalogMutationRequests||{});o.length>0&&(e.sessionCatalog=o[0].previousCatalog,Array.isArray(o[0].previousHiddenCatalog)&&(e.hiddenSessionCatalog=o[0].previousHiddenCatalog),e.sessionCatalogMutationRequests={}),e.sessionCatalogLoaded=!1,e.sessionCatalog=[],e.hiddenSessionCatalog=[],e.activeCatalogKey=null,e._wsAuthToken=n,e._wsAuthGeneration=r;let a=`${s}//${location.host}?type=web`;n&&(a+=`&token=${encodeURIComponent(n)}`);let c=new WebSocket(a);e.ws=c,c.onopen=()=>{if(c===e.ws){e.connectionState="connected",e.reconnectAttempts=0,e.startHeartbeat();try{c.send(JSON.stringify({type:"client_hello",plaintextOk:!0,workbenchRouteProtocol:1,workCenterWorkbenchProtocol:1,browserRuntimeProtocol:1,browserRuntimeSetupProtocol:1}))}catch{}rp(!0)}},c.onmessage=l=>{if(c!==e.ws)return;let d=e.parseWsMessage(l.data);d&&(d.type,e.handleMessage({...d,_wsAuthToken:n,_wsAuthGeneration:r}))},c.onclose=l=>{if(c!==e.ws){np(l)&&t.handleAuthFailure?.(void 0,n,r);return}e.authenticated=!1,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,sp(),e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateError=null;for(let u of Object.values(e._workCenterFeaturePending||{}))clearTimeout(u.timer),u.reject(new Error("WebSocket disconnected"));e._workCenterFeaturePending={},ip(e,i,"agent_offline","WebSocket disconnected"),e.pendingAgentSelection=null,e.agentSwitching=!1;let d=e.connectionState==="updating";if(e.connectionState=d?"updating":"disconnected",e.stopHeartbeat(),vs(e),np(l)){t.handleAuthFailure?.(void 0,n,r),e.reconnectAttempts=0,rp(!1);return}if(e._yeaftReconnectCatchUpPending=!0,d){e.reconnectAttempts=0,e.reconnectTimer=setTimeout(()=>{e.connect()},2e3);return}e.scheduleReconnect()},e.ws.onerror=l=>{}}function cp(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 dp(e){e.reconnectAttempts=0,e.connect()}function up(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 pp(e){e.heartbeatTimer&&(clearInterval(e.heartbeatTimer),e.heartbeatTimer=null)}function gp(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 oi,Ew,Rl=N(()=>{Ft();wo();$n();oi=[];Ew=new Set(["sync_messages","refresh_conversation","select_conversation","cancel_execution","update_conversation_settings","ask_user_answer"])});function Ve(e,t){let s=t==null?"__all__":String(t);return e?`${e}${s}`:s}function li(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 ci(e,t,s){return typeof s!="string"||!s?null:`${Ve(e,t)}message:${s}`}function on(e,t,s){return typeof s!="string"||!s?null:`${Ve(e,t)}client:${s}`}var ur=N(()=>{});function _l(e){return typeof e=="string"&&e?e:null}function pr(e,t){return e?.yeaftSessionHistoryState?.[t]||null}function as(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:Ve(s,t)}}function hp(e,{agentId:t,sessionId:s,mode:n="recent",preserveLoaded:r=!1,latestSeq:i=null}={}){if(!t||!s)return null;let o=Ve(t,s),a=pr(e,o)||{},c=Number(a.generation||0)+1,l=`yeaft_history_${c}_${crypto.randomUUID()}`,d={...a,loaded:!!a.loaded,loading:!0,error:null,requestId:l,generation:c,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},Ln(e),{sessionKey:o,requestId:l,generation:c,state:d}}function El(e,t={}){let s=t.sessionId??t.groupId??null;if(!s)return!1;let n=t.agentId||e?.yeaftSessionAgentById?.[s]||null,r=Ve(n,s),i=pr(e,r),o=_l(t.requestId);if(!i)return o===null;let a=_l(i.requestId);return o?o===a:a===null}function mp(e,t={},s={},n="chunk"){if(!El(e,t))return null;let r=t.sessionId??t.groupId??null,i=t.agentId||e?.yeaftSessionAgentById?.[r]||null,o=Ve(i,r),a=pr(e,o)||{},c=_l(t.requestId),l=c!==null&&n==="completion",d={...a,...l?{}:s,...l?{completionSeen:!0}:{},error:null};return l?(d.loading=!0,d.requestId=c):(d.loading=!1,d.requestId=null,d.completedAt=Date.now(),delete d.completionSeen),e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[o]:d},Ln(e),d}function di(e,{agentId:t,sessionId:s,requestId:n,error:r="history_load_failed"}={}){if(!t||!s||!n)return!1;let i=Ve(t,s),o=pr(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()}},Ln(e),!0)}function Ln(e){let{sessionKey:t}=as(e),s=t?pr(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 Dl(e){let{sessionKey:t}=as(e);return t?pr(e,t):null}var fp,xo=N(()=>{ur();fp=15e3});function $l(e){return e?.sessionId??e?.groupId??null}function Ol(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 bt(e){return e?.isStreaming||e?.status==="pending"?!1:Number.isFinite(e?.seq)||!!Ol(e)||e?.isHistory===!0&&!e?.clientMessageId}function To(e){if(Number.isFinite(e?.seq))return Number(e.seq);let s=Ol(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 $w(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}function Lw(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&&!Ol(e):!1}function Ow(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),Lw(n)&&(s.protected=!0);return t}function yp(e,{conversationId:t,agentId:s=null,sessionId:n=null,limits:r=vp}={}){let i=e?.messagesMap?.[t];if(!Array.isArray(i)||i.length===0||!s||!n)return{evictedRows:0,keptRows:0};let o=y=>$l(y)===n,a=i.filter(o),c=Ow(a);if(c.length===0)return{evictedRows:0,keptRows:0};let l=c.filter(y=>y.protected),d=new Set(l),u=Number.isFinite(r.maxTurnsPerSession)?Math.max(0,Math.floor(r.maxTurnsPerSession)):Ll,p=Math.max(0,u-l.length);for(let y=c.length-1;y>=0&&p>0;y-=1){let S=c[y];d.has(S)||(d.add(S),p-=1)}let g=new Set(c.filter(y=>d.has(y)).flatMap(y=>y.rows)),f=a.filter(y=>!g.has(y));if(f.length===0)return{evictedRows:0,keptRows:g.size};let v=i.filter(y=>!o(y)||g.has(y));i.splice(0,i.length,...v);let h=Ve(s,n),b=e.yeaftHistoryCacheState?.[h]||null,m=bp(a.filter(y=>g.has(y))),w=JSON.stringify(b?.ranges||[])===JSON.stringify(m.ranges)?Number(b?.rangeEpoch)||0:(Number(b?.rangeEpoch)||0)+1;if(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[h]:{...b||{},agentId:s,sessionId:n,conversationId:t,lastAccessed:Date.now(),rangeEpoch:w,...m}},f.some(bt)){let y=m.ranges[0]?.startSeq??null,S=e.yeaftSessionHistoryState?.[h]||{};e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState||{},[h]:{...S,serverOldestFetchedSeq:y,oldestSeq:y,serverHasMore:y!==null,hasMore:y!==null,gapTraversalInitialized:!1,gapQueue:[],requestedBeforeSeqs:[],completedHistoryWorkKeys:[],pendingPageKind:null,pendingPageBeforeSeq:null,pendingGapStopAtSeq:null,pendingCacheEpoch:null,pendingHistoryWorkKey:null,paginationError:null,count:m.rowCount}};let C=as(e);C.agentId===s&&C.sessionId===n&&Ln(e)}return{evictedRows:f.length,keptRows:g.size}}function Fw(e){let t=[],s=null;for(let n of e)bt(n)&&((n?.type==="user"||!s)&&(s=[],t.push(s)),s.push(n));return t}function Vw(e,t){let s=Number.isFinite(t.maxTurnsPerSession)?Math.max(0,Math.floor(t.maxTurnsPerSession)):Ll,n=Fw(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 qw(e){let t=Array.from(new Set(e.map(To).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 bp(e){let t=e.filter(bt);return{rowCount:t.length,byteCount:t.reduce((s,n)=>s+$w(n),0),ranges:qw(t)}}function Bw(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 Nw(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o}){let a=e.messagesMap?.[t]||[],c=a.filter(m=>$l(m)===n);Bw(c,r,i);let l=Vw(c,o),d=c.filter(m=>!bt(m)||l.has(m)),u=new Set(d),p=a.filter(m=>$l(m)!==n||u.has(m));a.splice(0,a.length,...p);let g=bp(d),f=Ve(s,n),v=e.yeaftHistoryCacheState?.[f]||null,b=JSON.stringify(v?.ranges||[])===JSON.stringify(g.ranges)?Number(v?.rangeEpoch)||0:(Number(v?.rangeEpoch)||0)+1;e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[f]:{agentId:s,sessionId:n,conversationId:t,lastAccessed:i,rangeEpoch:b,...g}}}function wp(e,t,s,n=Date.now()){if(!t||!s)return;let r=Ve(t,s),i=e.yeaftHistoryCacheState?.[r];i&&(e.yeaftHistoryCacheState={...e.yeaftHistoryCacheState||{},[r]:{...i,lastAccessed:n}})}function Fl(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r=[],now:i=Date.now(),limits:o=vp}={}){!e||!t||!s||!n||Nw(e,{conversationId:t,agentId:s,sessionId:n,incomingRows:r,now:i,limits:o})}var Ll,vp,Mo=N(()=>{ur();xo();Ll=500,vp=Object.freeze({maxTurnsPerSession:Ll})});function Ls(e){return e?.sessionId??e?.groupId??null}function Sp(e){let t=e?.stableKey??e?.uiKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function Hw(e,t){if(e?.type!=="assistant"||t?.type!=="assistant"||Ls(e)!==Ls(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 Cp(e,t){let s=e.uiKey||t.uiKey||null;return Object.assign(e,t),s&&(e.uiKey=s),bt(t)&&(e.isStreaming=!1,e.status==="pending"&&(e.status="completed")),e}function Po(e){let t=bt(e),s=t?To(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 Ww(e,t,s){let n=[],r=new Map,i=new Map;for(let c=t;c<s;c+=1){let l=e[c],d=Ls(l),u=bt(l)?To(l):null,p=i.get(d);if(!Number.isFinite(u)&&p){p.rows.push(l);continue}let g={sessionId:d,seq:u,rows:[l]};n.push(g),i.set(d,g),Number.isFinite(u)&&(r.has(d)||r.set(d,[]),r.get(d).push(g))}for(let c of r.values())c.sort((l,d)=>l.seq-d.seq);let o=new Map,a=t;for(let c of n){let l=c;if(Number.isFinite(c.seq)){let d=o.get(c.sessionId)||0;l=r.get(c.sessionId)[d],o.set(c.sessionId,d+1)}for(let d of l.rows)e[a++]=d}}function Vl(e){e.sort((t,s)=>{let n=Po(t),r=Po(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=Po(e[t])[0],n=t+1;for(;n<e.length&&Po(e[n])[0]===s;)n+=1;Number.isFinite(s)&&n-t>1&&Ww(e,t,n),t=n}return e}function Uw(e,t){return Array.isArray(e.messagesMap?.[t])||(e.messagesMap=e.messagesMap||{},e.messagesMap[t]=[]),e.messagesMap[t]}function ql(e,t){return e.filter(s=>t===void 0||Ls(s)===t)}function Ip(e,t){let s=Sp(t);if(s){let n=e.find(r=>Sp(r)===s);if(n)return n}if(t?.type==="user"&&t.clientMessageId){let n=e.find(r=>r?.type==="user"&&r.clientMessageId===t.clientMessageId&&Ls(r)===Ls(t));if(n)return n}return t?.type==="assistant"&&e.find(n=>Hw(n,t))||null}function ys(e){if(!e||typeof e!="object")return null;let t=kp.get(e);return t||(t=new Bl(e),kp.set(e,t)),t}var kp,Bl,ui=N(()=>{Mo();kp=new WeakMap;Bl=class{constructor(t){this.store=t}rows(t){return Uw(this.store,t)}durableRows(t,s=void 0){return ql(this.rows(t),s).filter(bt)}overlayRows(t,s=void 0){return ql(this.rows(t),s).filter(n=>!bt(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),c=Array.isArray(n)?n.filter(Boolean):[],l=ql(a,s).length>0;if(o&&r==="recent"&&c.length===0&&l)return{insertedRows:0,inserted:[],preservedEmpty:!0};if(i){let p=a.filter(g=>Ls(g)!==s||!bt(g));a.splice(0,a.length,...p)}let d=0,u=[];for(let p of c){let g=Ip(a,p);g?Cp(g,p):(a.push(p),u.push(p),d+=1)}return Vl(a),{insertedRows:d,inserted:u,preservedEmpty:!1}}upsertOverlay({conversationId:t,row:s}={}){if(!t||!s)return null;let n=this.rows(t),r=Ip(n,s);return r?Cp(r,s):n.push(s),Vl(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"&&!bt(a)&&(s===void 0||Ls(a)===s)&&(!n||a.turnId===n));return o?(o.content?r.startsWith(o.content)?o.content=r:o.content.endsWith(r)||(o.content+=r):o.content=r,o):null}replaceProjection(t,s=[]){let n=this.rows(t);return n.splice(0,n.length,...Array.isArray(s)?s:[]),Vl(n),n}removeDurable({conversationId:t,sessionId:s}={}){if(!t)return 0;let n=this.rows(t),r=n.filter(o=>Ls(o)!==s||!bt(o)),i=n.length-r.length;return n.splice(0,n.length,...r),i}}});function pi(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"||pi(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 Kw(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 Ro(e){let t=e?.stableKey??e?.messageId??e?.dbMessageId??e?.id;return t==null||t===""?null:String(t)}function Nl(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 gi(e,t,s){for(let n of Array.isArray(s)?s:[])Nl(e,t,n);return s}function Hl(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 Ap(e=[],t=[]){let s=[],n=new Map,r=new Map;for(let i of[...e,...t]){if(!i)continue;let o=Ro(i),a=i.type==="user"&&i.clientMessageId?String(i.clientMessageId):null;if(o&&n.has(o)){Hl(n.get(o),i);continue}if(a&&r.has(a)){let c=r.get(a);Hl(c,i),o&&!n.has(o)&&n.set(o,c);continue}s.push(i),o&&n.set(o,i),a&&r.set(a,i)}return s}function xp(e,t,s){return!e||e!==t?!1:!s?.loaded&&!s?.loading}function Tp(e,t){return!!t&&!!e?.loaded&&!e?.loading&&Number.isFinite(e?.latestSeq)}function Mp({sessionState:e,hasCachedSessionRows:t,force:s=!1}={}){return e?.loading?!1:s?!e?.loaded:e?.loaded?!1:!t}function zw(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"&&Ro(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 _o(e,t,s){if(!t)return;let n={...s};Nl(e,t,n);let r={...n,id:s.dbMessageId||s.id||Date.now().toString()+Math.random().toString(36).substr(2,9),timestamp:Kw(s)};if(pi(e,t)&&!r.sessionId&&(r.sessionId=e._currentYeaftSessionId||e.yeaftActiveSessionFilter||jw),pi(e,t)){let o=e._currentYeaftAgentId||Object.entries(e.yeaftConversationIdsByAgent||{}).find(([,l])=>l===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,c=typeof r.clientMessageId=="string"?r.clientMessageId:null;r.stableKey||(r.stableKey=a?ci(o,r.sessionId,a):on(o,r.sessionId,c)),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]=[]),Nl(e,t,r),pi(e,t))return ys(e).upsertOverlay({conversationId:t,sessionId:r.sessionId,row:r});let i=Ro(s);if(i){let o=e.messagesMap[t].find(a=>Ro(a)===i);if(o)return Hl(o,r),t===e.yeaftConversationId&&e.messagesMap[t].sort((a,c)=>a.timestamp-c.timestamp),o}return e.messagesMap[t].push(r),t===e.yeaftConversationId&&e.messagesMap[t].sort((o,a)=>o.timestamp-a.timestamp),r}function Pp(e,t,s,n={}){if(!t||!s)return;e.messagesMap[t]||(e.messagesMap[t]=[]);let r=e.messagesMap[t];if(zw(e,t,n,s))return;if(pi(e,t)){let c=ys(e).appendOverlayText({conversationId:t,sessionId:n.sessionId||e._currentYeaftSessionId||void 0,turnId:n.turnId||e._currentYeaftTurnId||null,text:s});if(c){gr(e,t,c),n.id&&!c.id&&(c.id=n.id),n.id&&!c.messageId&&(c.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}_o(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 _o(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 Rp(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 _p(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 Ep(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(c=>c.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 c=n.length-1;c>=0;c--)if(n[c].type==="tool-use"&&!n[c].hasResult){n[c].hasResult=!0,n[c].toolResult=a.content;break}}}}if(r&&s&&!e.conversationTitles[s]){let i=r.trim().substring(0,100);e.conversationTitles[s]=i}}function On(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 Gw(e){return{id:e.id,dbMessageId:e.id,timestamp:e.created_at}}function Dp(e){if(!e)return null;let t=Gw(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 jw,fi=N(()=>{ui();ur();jw="grp_default"});function Fn(e,t){return e._closedAt?.[t]?Date.now()-e._closedAt[t]<3e4:!1}function fr(e,t){We(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]){We(e,t);return}s()},3e4))},45e3);e._processingWatchdogs[t]=n}function Eo(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)?mr(e,t):fr(e,t))}function We(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 hi(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 hr(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]&&mr(e,t)))}function $p(e,t){We(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 mr(e,t){let s=e._yeaftWatchdogPauseReasons?.[t];if(We(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 an=N(()=>{});function Wl(e,t){return t&&Array.isArray(e?._yeaftRetiredConversationIdsByAgent?.[t])?e._yeaftRetiredConversationIdsByAgent[t]:[]}function vr(e,t,s){return!t||!s?!1:Wl(e,t).includes(s)}function Ul(e,t){let s=e?._yeaftRetiredConversationTargetsByAgent?.[t];return s&&typeof s=="object"?s:{}}function Lp(e,t,s){if(!t||!s)return null;let n=Ul(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 mi(e,t,s,n=null){if(!t||!s)return;let r=Wl(e,t).filter(a=>a!==s).concat(s).slice(-8);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent||{},[t]:r};let i=Ul(e,t),o={};for(let a of r){let c=i[a];c&&(o[a]=c===s&&n?n:c)}n&&n!==s&&(o[s]=n),e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:o}}function jl(e,t,s){if(!t||!s||!e?._yeaftRetiredConversationIdsByAgent)return;let n=Wl(e,t).filter(i=>i!==s);e._yeaftRetiredConversationIdsByAgent={...e._yeaftRetiredConversationIdsByAgent,[t]:n};let r={...Ul(e,t)};delete r[s],e._yeaftRetiredConversationTargetsByAgent={...e._yeaftRetiredConversationTargetsByAgent||{},[t]:r}}var Do=N(()=>{});function Xw(e,t,s){let n=e.messagesMap?.[t]||[],r=e.messagesMap?.[s]||[];e.messagesMap||(e.messagesMap={}),gi(e,t,n),gi(e,s,r);let i=Ap(r,n).sort((o,a)=>{let c=Number.isFinite(o?.seq)?o.seq:null,l=Number.isFinite(a?.seq)?a.seq:null;return c!==null&&l!==null&&c!==l?c-l:c!==null&&l===null?-1:c===null&&l!==null?1:(o?.timestamp||0)-(a?.timestamp||0)});ys(e).replaceProjection(s,i)}function Zw(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 $o(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)}function yr(e,t,s,{removeSource:n}){$o(e,t)&&($o(e,s)||(e[s]=n?e[t]:Zw(e[t])),n&&delete e[t])}function bs(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 Lo(e,t,s,n){return!t||!s||!n||s===n?!1:(e._yeaftPendingConversationPromotions={...e._yeaftPendingConversationPromotions||{},[t]:{sourceConversationId:s,targetConversationId:n}},!0)}function vi(e,t,s=null){let n=bs(e,t,s);if(!n)return null;let r={...e._yeaftPendingConversationPromotions||{}};return delete r[t],e._yeaftPendingConversationPromotions=r,n}function yi(e,t,s){let n=bs(e,t);return!n||!s||n.targetConversationId===s?null:(ws(e,n.targetConversationId,s,{removeSource:!0}),mi(e,t,n.targetConversationId,s),Lo(e,t,n.sourceConversationId,s),n)}function ws(e,t,s,{removeSource:n=!0}={}){if(!t||!s||t===s)return!1;Xw(e,t,s),e.yeaftHistoryCacheState&&(e.yeaftHistoryCacheState=Object.fromEntries(Object.entries(e.yeaftHistoryCacheState).map(([l,d])=>[l,d?.conversationId===t?{...d,conversationId:s}:d]))),yr(e.processingConversations,t,s,{removeSource:n}),yr(e.executionStatusMap,t,s,{removeSource:n}),yr(e.refreshingSessionMap,t,s,{removeSource:n}),yr(e._closedAt,t,s,{removeSource:n}),yr(e._autoRefreshed,t,s,{removeSource:n}),yr(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)&&We(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 l=$o(e.sessionHealth,s),d=e.sessionHealth?.[s],u=$o(e._autoRefreshed,s),p=e._autoRefreshed?.[s];mr(e,s),l&&(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 Kl=N(()=>{fi();ui();Do();an()});function Oo(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 zl=N(()=>{});function Gl(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function Jw(){return Date.now()}function ek(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`pt_${crypto.randomUUID()}`:`pt_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`}function tk(e,t=160){return typeof e!="string"?e:e.length>t?`${e.slice(0,t)}...[truncated]`:e}function sk(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"?tk(n):n);return t}function Vn(){return ek()}function Ct(e,t={}){!e||!t.traceId||(Array.isArray(e._perfTraceQueue)||(e._perfTraceQueue=[]),e._perfTraceQueue.push({traceId:t.traceId,source:"web",phase:t.phase||"unknown",at:Jw(),monotonicMs:Gl(),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:sk(t.detail)}),e._perfTraceQueue.length>200&&e._perfTraceQueue.splice(0,e._perfTraceQueue.length-200),nk(e))}function nk(e){!e||e._perfTraceFlushTimer||(e._perfTraceFlushTimer=setTimeout(()=>rk(e),250))}function rk(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 Fo(e,t={}){if(typeof requestAnimationFrame!="function")return;let s=Gl();requestAnimationFrame(()=>{requestAnimationFrame(()=>{Ct(e,{...t,phase:t.phase||"render.next_paint",durationMs:Gl()-s})})})}var Yl=N(()=>{});function ks(e){return Number.isFinite(e)?Number(e):null}function ik(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 bi(e){return Number.isFinite(e)&&e>=0?Math.floor(e):0}function qn(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:${bi(e.cacheEpoch)}:${s}:${t}`}return`server:${t}`}function wi(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 ok(e,t){let s=qn(t);if(!s)return e.completedHistoryWorkKeys||[];let n=wi(e);return n.add(s),Array.from(n).slice(-256)}function ak(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 lk(e,t={},s=0){let n=ik(e),r=bi(s),i=wi(t),o=[];for(let a=1;a<n.length;a+=1){let c=n[a-1],l=n[a];if(c.endSeq+1>=l.startSeq)continue;let d={kind:"gap",beforeSeq:l.startSeq,stopAtSeq:c.endSeq+1,cacheEpoch:r};d.workKey=qn(d),i.has(d.workKey)||o.push(d)}return o.sort((a,c)=>c.beforeSeq-a.beforeSeq)}function Op(e,t,s){let n=lk(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=qn(o),wi(t).has(o.workKey)?[]:[o]}function Fp(e={},t=[],s=0){let n=bi(s),r=wi(e),i=e.serverHasMore!==!1,o=ks(e.serverOldestFetchedSeq??e.oldestSeq),a=e.gapTraversalInitialized===!0,c=Array.isArray(e.gapQueue)?e.gapQueue.slice():[],l=null,d=null;if(i&&o!==null){let u={kind:"server",beforeSeq:o,stopAtSeq:null,cacheEpoch:n};u.workKey=qn(u),r.has(u.workKey)?(i=!1,d="history_cursor_repeated"):l=u}return!l&&!i&&(a||(c=Op(t,e,n),a=!0),l=c[0]||null),l?{request:l,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:c,pendingPageKind:l.kind,pendingPageBeforeSeq:l.beforeSeq,pendingGapStopAtSeq:l.stopAtSeq,pendingCacheEpoch:l.cacheEpoch,pendingHistoryWorkKey:l.workKey,hasMore:!0,paginationError:null}}:{request:null,state:{...e,serverHasMore:i,gapTraversalInitialized:a,gapQueue:c,hasMore:!1,paginationError:d}}}function Vp(e={},{mode:t,oldestSeq:s,hasMore:n,ranges:r=[],pageKind:i=null,stopAtSeq:o=null,cacheEpoch:a=0}={}){if(t==="delta")return e;let c=bi(a),l=ks(s),d=ks(e.pendingPageBeforeSeq),u=i||e.pendingPageKind||(t==="older"?"server":null),p=ks(o??e.pendingGapStopAtSeq),g=bi(e.pendingCacheEpoch??c),f={kind:u,beforeSeq:d,stopAtSeq:p,cacheEpoch:g},v=ks(e.serverOldestFetchedSeq??e.oldestSeq),h=e.serverHasMore!==!1,b=Number(e.noProgressCount)||0,m=null,k=e.requestedBeforeSeqs||[],w=e.completedHistoryWorkKeys||[],y=e.gapTraversalInitialized===!0,S=Array.isArray(e.gapQueue)?e.gapQueue.slice():[];if(t==="recent")v=l,h=!!n,b=0,k=[],w=[],y=!1,S=[];else if(d===null)l!==null&&(v=v===null?l:Math.min(v,l)),h=!!n,b=0;else{k=ak(e,d),w=ok(e,f);let R=l!==null&&l<d;if(u==="server")R?(v=v===null?l:Math.min(v,l),h=!!n,b=0):(h=!1,b+=1,m="history_cursor_no_progress");else if(u==="gap"){let W=qn(f);S=S.filter(z=>qn(z)!==W);let B=p!==null&&l!==null&&l<=p;if(R||B||n===!1){if(b=0,!B&&n!==!1&&l!==null&&p!==null){let z={kind:"gap",beforeSeq:l,stopAtSeq:p,cacheEpoch:g};z.workKey=qn(z),wi({completedHistoryWorkKeys:w}).has(z.workKey)||S.unshift(z)}}else b+=1,m="history_cursor_no_progress"}}t==="older"&&!h&&!y&&(S=Op(r,{...e,serverOldestFetchedSeq:v,completedHistoryWorkKeys:w},c),y=!0);let C={...e,serverOldestFetchedSeq:v,serverHasMore:h,requestedBeforeSeqs:k,completedHistoryWorkKeys:w,gapTraversalInitialized:y,gapQueue:S,noProgressCount:b,oldestSeq:v,paginationError:m};return delete C.pendingPageKind,delete C.pendingPageBeforeSeq,delete C.pendingGapStopAtSeq,delete C.pendingCacheEpoch,delete C.pendingHistoryWorkKey,{...C,hasMore:h||S.length>0}}var Ql=N(()=>{});function Hp(e){return e.filter(t=>!(t.type==="user"&&(!t.content||!t.content.trim())))}function Bn(e){let t=typeof e=="string"?e.match(/^m(\d+)$/):null,s=t?Number(t[1]):null;return Number.isFinite(s)?s:null}function qp(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 ck(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 dk(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 uk(e,t){return e.speakerVpId||e.vpId||e.vp_id||e.authorVpId||e.authorVP||dk(t)}function pk(e){return e?.stableKey||(e&&(e.messageId||e.id)?e.messageId||e.id:null)}function gk(e,t=null){if(!e||e.stableKey)return e;let s=ln(e),n=e.messageId||e.id||null,r=e.type==="user"&&e.clientMessageId||null;return e.stableKey=r&&n===r?on(t,s,r):ci(t,s,n),Number.isFinite(e.seq)||(e.seq=Bn(n)),e.uiKey||(e.uiKey=e.stableKey||null),e}function ln(e){return e?e.sessionId??e.groupId??null:null}function fk(e){return!e||e.type!=="user"||!e.clientMessageId?!1:(e.messageId||e.id||null)===e.clientMessageId}function hk(e,t,s,n){let r=e.rows(t),i=r.some(l=>l&&(n==null||ln(l)===n));if(s.length===0&&i)return{insertedRows:0,preservedEmpty:!0};let o=s.reduce((l,d)=>Math.max(l,d?.timestamp||0),0),a=r.filter(l=>l?n!=null&&ln(l)!==n||bt(l)||l.isStreaming||l.type==="tool-use"&&l.toolName==="AskUserQuestion"&&(l.askAnswered||l.askPending||l.askExpired)||fk(l)?!0:o>0&&(l.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 mk(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 vk(e,t){let s=typeof e.yeaftConversationId=="string"?e.yeaftConversationId:"";return s.startsWith(`yeaft-local-${t}-`)||/^yeaft-local-\d/.test(s)?s:null}function yk(e,t,s,n){let r=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(!r||!n||e.currentView!=="yeaft")return;let i=as(e);if(i.sessionId!==(s||null)||i.agentId&&i.agentId!==r)return;let o=e.yeaftConversationId||null;if(vr(e,r,n)){let d=e.yeaftConversationIdsByAgent?.[r]||null;d&&d!==n&&ws(e,n,d,{removeSource:n!==e.yeaftConversationId});return}let a=bs(e,r);a&&a.targetConversationId!==n&&yi(e,r,n);let c=bs(e,r,n);if(c&&(ws(e,c.sourceConversationId,n,{removeSource:!0}),vi(e,r,n),e.yeaftConversationId=n),o===n||c){e.messagesMap[n]||(e.messagesMap[n]=[]),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.activeConversations=[n];return}let l=vk(e,r);l&&(ws(e,l,n,{removeSource:!0}),e.yeaftConversationIdsByAgent={...e.yeaftConversationIdsByAgent||{},[r]:n},e.yeaftConversationId=n,e.activeConversations=[n])}function cn(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 Wp(e,t){vs(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:Be("store.convCreated",{agent:s?.name||t.agentId,workDir:t.workDir})}),e.saveOpenSessions()}function Up(e,t){vs(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:Be("store.convResumed",{agent:s?.name||t.agentId,sessionId:t.claudeSessionId?t.claudeSessionId.slice(0,8)+"...":""})}),t.dbMessages&&t.dbMessages.length>0){let n=Hp(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:On(e.messagesMap[t.conversationId]),hasMoreOlder:!!t.hasMoreMessages},e.saveOpenSessions()}function Xl(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],We(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:Be("chat.session.closed")}));for(let n of e.panels)n.conversationId===t.conversationId&&(n.conversationId=null);e.saveOpenSessions()}function jp(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],We(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),cn(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 Kp(e,t){let s=t.conversationId;if(s){delete e.processingConversations[s],We(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),cn(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 zp(e,t){if(t.conversationId){if(t.isProcessing&&!Fn(e,t.conversationId)&&!e._turnCompletedConvs?.has(t.conversationId))e.processingConversations[t.conversationId]=!0;else if(e.processingConversations[t.conversationId]){delete e.processingConversations[t.conversationId],We(e,t.conversationId);let s=e.executionStatusMap[t.conversationId];s&&(s.currentTool=null),e.finishStreamingForConversation(t.conversationId)}}}function Gp(e,t){let s=t.conversationId||e.currentConversation;if(s){delete e.processingConversations[s],We(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),cn(e,s)}}function Yp(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=Hp((t.messages||[]).map(a=>e.formatDbMessage(a)).flat().filter(Boolean));if(i.length>0){let a=n.find(c=>c.dbMessageId);if(a&&i[0].dbMessageId&&i[i.length-1].dbMessageId<a.dbMessageId){let c=n.indexOf(a);e.debug,n.splice(c,0,...i)}else{e.debug;for(let c of i)if(!(c.dbMessageId&&n.some(l=>l.dbMessageId===c.dbMessageId))){if(c.dbMessageId&&(c.type==="assistant"||c.type==="user")){let l=null;if(c.type==="user"?l=n.find(d=>!d.dbMessageId&&!d.isStreaming&&Oo(d,c)):l=n.find(d=>!d.dbMessageId&&!d.isStreaming&&d.type==="assistant"&&d.content===c.content),l){l.dbMessageId=c.dbMessageId,l.id=c.id,c.timestamp&&(l.timestamp=c.timestamp),c.clientMessageId&&!l.clientMessageId&&(l.clientMessageId=c.clientMessageId);continue}}n.push(c)}}}r||(e.hasMoreMessages=t.hasMore??!1),vs(e);let o=e.chatSessionState[t.conversationId]?.hasMoreOlder;e.chatSessionState[t.conversationId]={lastSeenDbId:On(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 Qp(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(ln(h)!==s)continue;let b=h?.persistedMessageId||h?.messageId||h?.id||null;b&&h._historyWindowPrefetched!==!0&&h._historyWindowDetached!==!0&&o.add(b),!(!t.entryId||!i.has(b))&&(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:c}=Xp(a,s,"window",e.messagesMap[r],n),l=`history-window:${t.requestId||t.anchorMessageId||Date.now()}`;for(let h of c){let b=h.persistedMessageId||h.messageId||h.id;o.has(b)||(h._historyWindowKey=l,h._historyWindowDetached=t.prefetch!==!0,h._historyWindowPrefetched=t.prefetch===!0)}let d=ys(e),u=d.rows(r),p=new Set(t.messages.map(h=>h?.id).filter(Boolean)),g=[];if(t.prefetch!==!0){for(let b of u){if(ln(b)!==s)continue;let m=b?.persistedMessageId||b?.messageId||b?.id||null;p.has(m)&&(b._historyWindowPrefetched!==!0&&b._historyWindowDetached!==!0||(b._historyWindowKey=l,b._historyWindowDetached=!0,b._historyWindowPrefetched=!1,g.push(b)))}let h=u.filter(b=>ln(b)!==s||b._historyWindowDetached!==!0||b._historyWindowKey===l);h.length!==u.length&&d.replaceProjection(r,h)}d.commitDurable({conversationId:r,sessionId:s,rows:c,mode:"window"});let f=c.length>0?c:g,v=as(e);return Fl(e,{conversationId:r,agentId:n,sessionId:s,incomingRows:f,activeAgentId:v.agentId,activeSessionId:v.sessionId}),r}function Bp(e){return e?.toolId?[ln(e)??"",e.vpId||e.speakerVpId||"",e.turnId||"",e.threadId||"main",e.toolId].join("\0"):null}function Np(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 bk(e,t){return(e||[]).find(s=>s?.type==="tool-use"&&(s.toolName==="AskUser"||s.toolName==="AskUserQuestion")&&s.toolId===t.toolCallId&&ln(s)===t.sessionId&&(s.vpId||s.speakerVpId||"")===(t.vpId||"")&&(s.turnId||"")===(t.turnId||"")&&(s.threadId||"main")===(t.threadId||"main"))||null}function Xp(e,t,s,n,r=null){let i=new Set((n||[]).map(l=>pk(gk(l,r))).filter(Boolean)),o=new Set,a=[],c=0;for(let l of e){if(!l||l._reflection||l.internal||l.systemOnly||l.systemOnlyMessage||mk(l.content))continue;let d=l.id||l.messageId||null,u=l.clientMessageId||null,p=l.sessionId??l.groupId??t??null,g=ci(r,p,d),f=u?on(r,p,u):g,v=l.historyEntryId?{historyEntryId:l.historyEntryId,...Number.isFinite(l.historyIndexGeneration)?{historyIndexGeneration:l.historyIndexGeneration}:{}}:{},h=g&&(o.has(g)||s!=="recent"&&i.has(g));if(g&&o.add(g),l.role==="user"){if(h)continue;c+=1;let b=d||l.messageId||l.turnId||null;a.push({...d?{id:d,messageId:d}:{},...g?{stableKey:g}:{},...f?{uiKey:f}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),type:"user",content:l.content,timestamp:qp(l),sessionId:p,turnId:l.turnId||b,...u?{clientMessageId:u}:{},...Array.isArray(l.attachments)&&l.attachments.length>0?{attachments:l.attachments}:{},...l.quote?{quote:l.quote}:{},isStreaming:!1,isHistory:!0})}else if(l.role==="assistant"){h||(c+=1);let b=d||l.messageId||l.turnId||null,m=uk(l,p),k=qp(l),w=!!l.turnId,y=l.turnId||b,S=typeof l.content=="string"?l.content:l.content||"",C=Array.isArray(l.todos)?l.todos:ck(l.toolCalls),R=l.executionOrigin==="route_forward"?{executionOrigin:"route_forward"}:{};!h&&(typeof S!="string"||S.trim())&&a.push({...d?{id:d,messageId:d}:{},...g?{stableKey:g}:{},...f?{uiKey:f}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),...l.entryId?{entryId:l.entryId}:{},...Array.isArray(l.sourceMessageIds)?{sourceMessageIds:l.sourceMessageIds}:{},type:"assistant",content:S,timestamp:k,sessionId:p,turnId:y,_hasPersistedTurnId:w,...R,...m?{vpId:m,speakerVpId:m}:{},...l.responseKind==="progress"||l.responseKind==="result"?{responseKind:l.responseKind}:{},...Number.isInteger(l.llmCallCount)&&l.llmCallCount>0?{llmCallCount:l.llmCallCount}:{},...Number.isFinite(l.inputTokens)&&l.inputTokens>=0?{inputTokens:l.inputTokens}:{},...Number.isFinite(l.outputTokens)&&l.outputTokens>=0?{outputTokens:l.outputTokens}:{},...Number.isFinite(l.totalTokens)&&l.totalTokens>=0?{totalTokens:l.totalTokens}:{},...Number.isFinite(l.totalMs)&&l.totalMs>=0?{totalMs:l.totalMs}:{},...typeof l.model=="string"&&l.model?{model:l.model}:{},...typeof l.effort=="string"&&l.effort?{effort:l.effort}:{},...l.incomplete===!0?{incomplete:!0}:{},...typeof l.stopReason=="string"&&l.stopReason?{stopReason:l.stopReason}:{},isStreaming:!1,isHistory:!0}),Array.isArray(C)&&C.length>0&&a.push({...d?{id:`${d}:todos`,messageId:`${d}:todos`,persistedMessageId:d}:{},...g?{stableKey:`${g}:todos`}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),type:"tool-use",toolName:"TodoWrite",toolInput:{todos:C},timestamp:k,startTime:k||0,sessionId:p,turnId:y,...R,...m?{vpId:m,speakerVpId:m}:{},isStreaming:!1,isHistory:!0,hasResult:!0});for(let[W,B]of(Array.isArray(l.toolCalls)?l.toolCalls:[]).entries()){if(!B||B.name==="TodoWrite")continue;let z=B.id||`index:${W}`,L=encodeURIComponent(String(z));a.push({...d?{id:`${d}:tool:${L}`,messageId:`${d}:tool:${L}`,persistedMessageId:d}:{},...g?{stableKey:`${g}:tool:${L}`}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),type:"tool-use",toolId:B.id||null,toolName:B.name||"unknown",toolInput:B.input||{},timestamp:k,startTime:k||0,sessionId:p,turnId:y,...l.threadId?{threadId:l.threadId}:{},...R,...m?{vpId:m,speakerVpId:m}:{},isStreaming:!1,isHistory:!0,hasResult:!0})}for(let W of Array.isArray(l.images)?l.images:[]){if(!W?.assetId)continue;let B=W.sourceToolCallId?`${W.assetId}:tool:${encodeURIComponent(W.sourceToolCallId)}`:W.assetId,z=Number.isInteger(W.sourceImageIndex)?`${B}:index:${W.sourceImageIndex}`:B;a.push({id:`${d||b||y}:image:${z}`,messageId:`${d||b||y}:image:${z}`,...d?{persistedMessageId:d}:{},...g?{stableKey:`${g}:image:${z}`}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),type:"chat-image",...W,timestamp:k,sessionId:p,turnId:y,...R,...m?{vpId:m,speakerVpId:m}:{},isStreaming:!1,isHistory:!0})}for(let W of Array.isArray(l.askUserResults)?l.askUserResults:[]){if(!W?.toolCallId||W.status!=="answered"&&W.status!=="expired")continue;let B=[{question:typeof W.question=="string"?W.question:"",options:(Array.isArray(W.options)?W.options:[]).filter(T=>typeof T=="string").map(T=>({label:T,description:""})),multiSelect:!1}],z={toolCallId:W.toolCallId,sessionId:p,vpId:m||"",turnId:y||"",threadId:l.threadId||"main"},L=bk(n,z);if(L){Object.assign(L,v),Np(L,W,B);let T=a.findIndex($=>$?.type==="tool-use"&&$.toolId===W.toolCallId&&($.sessionId??$.groupId??null)===(L.sessionId??L.groupId??null)&&($.turnId||"")===(L.turnId||""));T>=0&&a.splice(T,1);continue}let O=Np({id:`${d||b||y}:ask:${W.toolCallId}`,messageId:`${d||b||y}:ask:${W.toolCallId}`,...d?{persistedMessageId:d}:{},...g?{stableKey:`${g}:ask:${W.toolCallId}`}:{},...v,seq:Number.isFinite(l.seq)?l.seq:Bn(d),type:"tool-use",timestamp:k,sessionId:p,turnId:y,threadId:z.threadId,...R,...m?{vpId:m,speakerVpId:m}:{},isStreaming:!1},W,B),D=Bp(O);(!D||!a.some(T=>Bp(T)===D))&&a.push(O);let I=a.findIndex(T=>T!==O&&T?.type==="tool-use"&&T.toolId===W.toolCallId&&(T.sessionId??T.groupId??null)===(O.sessionId??O.groupId??null)&&(T.turnId||"")===(O.turnId||""));I>=0&&a.splice(I,1)}}}return{formatted:a,acceptedHistoryMessages:c}}function Zp(e,t){let s=t.sessionId!=null?t.sessionId:t.groupId,n=t.agentId||s&&e.yeaftSessionAgentById?.[s]||null;if(vr(e,n,t.conversationId)){let M=e.yeaftConversationIdsByAgent?.[n]||null;if(!M||M===t.conversationId)return;ws(e,t.conversationId,M,{removeSource:t.conversationId!==e.yeaftConversationId}),t={...t,conversationId:M}}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=Ve(o,s),c=e.yeaftSessionHistoryState?.[a]||null;typeof t.streamId=="string"&&typeof c?.streamId=="string"&&(t.streamId!==c.streamId||Number.isFinite(t.revision)&&Number.isFinite(c.revision)&&t.revision!==c.revision)&&(r="recent",typeof e.clearYeaftHistoryMemory=="function"&&(e.clearYeaftHistoryMemory({agentId:o,sessionId:s,preserveLiveRows:!0,preserveSessionOwner:!0}),t.requestId&&c?.requestId===t.requestId&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[a]:{requestId:c.requestId,generation:c.generation,requestedAt:c.requestedAt,mode:c.mode,loading:!0}}))),t.perfTraceId&&Ct(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}yk(e,t,s,p),e.messagesMap[p]||(e.messagesMap[p]=[]);let{formatted:g,acceptedHistoryMessages:f}=Xp(i,s,r,e.messagesMap[p],d);gi(e,p,g);let v=ys(e),h=0,b=!1;if(r==="recent"){let M=hk(v,p,g,s??null);h=M.insertedRows,b=M.preservedEmpty}else if(g.length>0&&(h=v.commitDurable({conversationId:p,sessionId:s??null,rows:g,mode:r}).insertedRows,r==="older"&&typeof e.expandYeaftMessageWindow=="function")){let U=e.yeaftActiveSessionFilter?s??null:null;e.expandYeaftMessageWindow(U,t.turns||10,d)}let m=as(e);Fl(e,{conversationId:p,agentId:d,sessionId:s,incomingRows:g,activeAgentId:m.agentId,activeSessionId:m.sessionId});let k=Ve(t.agentId||null,s),w=e.yeaftHistoryCacheState?.[k]||null,y=e.yeaftSessionHistoryState?.[k]||{},S=Number.isFinite(y.serverOldestFetchedSeq)?y.serverOldestFetchedSeq:Number.isFinite(y.oldestSeq)?y.oldestSeq:null,C=Number.isFinite(t.nextBeforeSeq)?t.nextBeforeSeq:Number.isFinite(t.oldestSeq)?t.oldestSeq:b?S:null,R=b&&!Number.isFinite(t.nextBeforeSeq)&&!Number.isFinite(t.oldestSeq)?y.serverHasMore??y.hasMore??!1:t.hasMore,W=r==="delta"?y:Vp(y,{mode:r,oldestSeq:C,hasMore:R,ranges:w?.ranges||[],pageKind:t.pageKind,stopAtSeq:t.gapStopAtSeq,cacheEpoch:w?.rangeEpoch??t.cacheEpoch??0}),B=typeof t.latestSeq=="number"?t.latestSeq:y.latestSeq??null,z={streamId:typeof t.streamId=="string"?t.streamId:y.streamId??null,revision:Number.isFinite(t.revision)?t.revision:y.revision??null},L=r==="delta"?{...y,...z,loaded:!0,loading:!1,latestSeq:B,syncingAfterSeq:null,count:(y.count||0)+h}:{...W,...z,loaded:!0,loading:!1,count:w?w.rowCount:r==="older"?(y.count||0)+h:b?y.count||0:f,latestSeq:b&&!Number.isFinite(t.latestSeq)?y.latestSeq??null:B,syncingAfterSeq:null};t.requestId&&typeof e.finishYeaftHistoryLoad=="function"?e.finishYeaftHistoryLoad(t,L,"chunk"):e.yeaftSessionHistoryState&&(e.yeaftSessionHistoryState={...e.yeaftSessionHistoryState,[k]:L}),r==="delta"&&t.hasMoreAfter===!0&&Number.isFinite(L.latestSeq)&&L.latestSeq>Number(t.afterSeq??-1)&&typeof e.continueYeaftHistoryDelta=="function"&&queueMicrotask(()=>e.continueYeaftHistoryDelta(s,d,L.latestSeq));let O=as(e),D=O.sessionId===(s||null),I=!t.agentId||!O.agentId||t.agentId===O.agentId,T=D&&I,$=Ve(null,O.sessionId);if(t.perfTraceId&&(Ct(e,{traceId:t.perfTraceId,phase:"history.chunk_applied",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,formattedCount:g.length,insertedRows:h,acceptedHistoryMessages:f,preservedEmptyRecent:b}}),Fo(e,{traceId:t.perfTraceId,phase:"history.next_paint",agentId:t.agentId||null,sessionId:s||null,messageType:t.type,detail:{mode:r,insertedRows:h}})),T)e.yeaftHasMoreHistory=L.hasMore,e.yeaftOldestLoadedSeq=Number.isFinite(L.serverOldestFetchedSeq)?L.serverOldestFetchedSeq:Number.isFinite(L.oldestSeq)?L.oldestSeq:e.yeaftOldestLoadedSeq,e.yeaftLoadingMoreHistory=!1;else if(e.yeaftLoadingMoreHistory){let M=e.yeaftSessionHistoryState?.[O.sessionKey]||e.yeaftSessionHistoryState?.[$]||null;e.yeaftLoadingMoreHistory=!!M?.loading}}var Vo=N(()=>{an();Kl();Do();$n();zl();fi();ms();Yl();xo();ur();Mo();Ql();ui()});function Jp(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 wk(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 Zl(e,t){return e.executionStatusMap[t]||(e.executionStatusMap[t]={currentTool:null,toolHistory:[],lastActivity:null}),e.executionStatusMap[t]}function eg(e,t,s,n=null){if(!t)return;let r=Zl(e,t);if(r.lastActivity=Date.now(),Eo(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;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=wk(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 l=a.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);if(l){e.appendToAssistantMessageForConversation(t,l[1].trim()),e.finishStreamingForConversation(t);return}}let c=[];if(s.tool_use_result)c=Array.isArray(s.tool_use_result)?s.tool_use_result:[s.tool_use_result];else if(s.message?.content){let l=s.message.content;c=(Array.isArray(l)?l:[]).filter(u=>u.type==="tool_result")}if(c.length>0){let l=e.messagesMap[t]||[];for(let d of c){if(r.toolHistory.length>0){let f=r.toolHistory.findIndex(v=>v.status==="running");f>=0&&(r.toolHistory[f].status="done")}let u=d.tool_use_id||d.toolUseId||d.tool_call_id||d.toolCallId||null,p=d.content||d,g=!1;if(u){for(let f=l.length-1;f>=0;f--)if(l[f].type==="tool-use"&&l[f].toolId===u){l[f].hasResult=!0,l[f].toolResult=d.is_update&&l[f].toolResult?`${l[f].toolResult}
|
|
2
2
|
|
|
3
|
-
${p}`:p,g=!0;break}}if(!g){for(let f=l.length-1;f>=0;f--)if(l[f].type==="tool-use"&&!l[f].hasResult){l[f].hasResult=!0,l[f].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 l=s.message?.clientMessageId||s.clientMessageId||null,d={type:"user",content:a,clientMessageId:l},u=e.messagesMap[t]||[];if(u.some(g=>Oo(g,d))){if(l){for(let g=u.length-1;g>=0;g--)if(u[g].type==="user"&&u[g].clientMessageId===l){s.dbMessageId&&!u[g].dbMessageId&&(u[g].dbMessageId=s.dbMessageId),s.message?.id&&!u[g].messageId&&(u[g].id=s.message.id,u[g].messageId=s.message.id),s.ts&&!u[g].ts&&(u[g].ts=s.ts),Jp(e,u[g],n);break}}}else{let g=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}:{},...l?{clientMessageId:l}:{}});Jp(e,g,n)}}}else if(s.type==="result"){delete e.processingConversations[t],We(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]:g,...f}=e.activeVpTurns;!o&&p?.sessionId&&(o=p.sessionId),e.activeVpTurns=f}}if(o&&e._currentYeaftVpId&&e.vpStatuses){let d=e._currentYeaftTurnId||null,u={...e.vpStatuses||{}},p=!1;for(let[g,f]of Object.entries(u))!f||f.vpId!==e._currentYeaftVpId||e._currentYeaftAgentId&&f.agentId&&f.agentId!==e._currentYeaftAgentId||(f.sessionId||f.groupId||null)!==o||d&&f.turnId&&f.turnId!==d||(u[g]={...f,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,cn(e,t,e._currentYeaftSessionId?{sessionId:e._currentYeaftSessionId,vpId:e._currentYeaftVpId,turnId:e._currentYeaftTurnId,threadId:e._currentYeaftThreadId}:null);let a=e.messagesMap[t]||[],c=s.result_text||"";if(typeof c=="string"&&c.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,c.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 tg=N(()=>{an();Vo();zl()});function Ck(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:kt(t[e][0]),phase:kt(t[e][1]),params:{}}:typeof e=="string"&&/^Script\.[a-z][a-z0-9-]{0,47}$/.test(e)?{label:kt("script"),phase:kt("runningScript"),params:{name:e}}:{label:kt("capability"),phase:kt("usingCapability"),params:{}}}function Jl(e){return(Array.isArray(e)?e:[]).filter(t=>t&&typeof t.episodeId=="string"&&Sk.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:sg(t.createdAt),...t.kind==="accepted"?{trigger:["send","think","dream"].includes(t.trigger?.kind)?t.trigger.kind:null}:{},...t.kind.startsWith("capability_")?{...Ck(t.capability?.id??t.capabilityId),failed:t.kind==="capability_failed"||t.result?.ok===!1}:{}})).sort((t,s)=>t.seq-s.seq).slice(-50)}function ng(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(b=>b.episodeId===r),o=i.find(b=>b.kind==="accepted"),a=i.findLast(b=>qo[b.kind]),c=e.latestEpisode?.id===r?e.latestEpisode:null,l=qo[c?.status]||qo[a?.kind],d=!l&&(e.busy||s),u=!["disabled","unsupported","noAgent"].includes(t)&&!!(d||l||i.length||e.retryCommand),p=[],g=new Map,f=kt(o?.trigger==="dream"?"dreaming":o?.trigger==="think"?"thinking":"preparing"),v={};for(let b of i){let m=b.kind.startsWith("call_");if(!m&&!b.kind.startsWith("capability_"))continue;let k=`${m?"model":"capability"}:${b.callId||b.id}`,w=g.get(k);w||(w={id:k,label:m?kt("model"):b.label,params:m?{}:b.params,status:"running",durationMs:null,start:null},g.set(k,w),p.push(w)),b.kind.endsWith("_started")?(w.start=b.at,m?(f=kt(o?.trigger==="dream"?"dreaming":o?.trigger==="think"?"thinking":"preparing"),v={}):(f=b.phase,v=b.params)):(w.status=b.kind==="call_failed"||b.failed?"failed":"completed",w.durationMs=w.start!=null&&b.at!=null&&b.at>=w.start?b.at-w.start:null,f=kt(m&&b.kind==="call_output"?"processingResponse":"preparing"),v={})}for(let b of p)b.status==="running"&&(l||!d)&&(b.status=["cancelled","interrupted"].includes(l)?l:"unknown"),b.status==="running"&&(t||e.activityStale||e.progressStale)&&(b.status="unknown"),delete b.start;let h=f;return l?h=kt(l):s?h=kt("confirming"):e.cancelPending?h=kt("stopping"):e.retryCommand&&!e.busy?h=kt("uncertain"):(!d||e.activityStale||e.progressStale)&&(h=kt("stale")),(t==="disconnected"||t==="offline")&&(h=kt("disconnected")),h!==f&&(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:sg(c?.endedAt)??a?.at??null,limited:p.length>30||!!i.length&&!o}}var qo,Sk,kt,sg,ec=N(()=>{qo={committed:"completed",completed:"completed",failed:"failed",cancelled:"cancelled",interrupted:"interrupted",budget_exhausted:"budgetExhausted"},Sk=new Set(["accepted","call_started","call_output","call_failed","capability_started","capability_result","capability_failed",...Object.keys(qo)]),kt=e=>`person.activity.${e}`,sg=e=>{let t=e==null?NaN:new Date(e).getTime();return Number.isFinite(t)?t:null}});function Fs(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 og(e,t){let s=br.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 nc(){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,cancelPending:!1,retryCommand:null,tracesStale:!1,activityRecords:[],activityEpisodeId:null,activityStale:!1,progressStale:!1,models:[],modelCandidates:[],settingsPending:!1,renameSupported:!1,memory:Bo(),skills:Bo(),search:{...Bo(),query:""}}}function sc(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 ag({chat:e,state:t,scope:s,timeoutMs:n=3e4,pollMs:r=1500,reupload:i=null}){br.has(e)||br.set(e,new Map);let o=0,a="",c="",l=null,d=!1,u=0,p=0,g=!1,f=!1,v=0,h=0,b=null,m=!1,k=new Set,w=(_=o)=>!m&&_===o&&c===s(),y=()=>{let _=tc.get(e);return(!_||_.scope!==s())&&(_={scope:s(),commands:new Map,files:new Map},tc.set(e,_)),_.commands},S=()=>(y(),tc.get(e).files),C=_=>{t.error={code:_.code||"requestFailed",message:_.message}};function R(_,F={}){let X=o;if(!w(X))return Promise.reject(Os("stale"));let q=Fs(e,a);if(q)return Promise.reject(Os(q));let E=`person-${ig()}`;return new Promise((se,le)=>{let ee=()=>{clearTimeout(de),br.get(e).delete(E),k.delete(E)},de=setTimeout(()=>{ee(),le(Os("timeout"))},n);br.get(e).set(E,{agentId:a,op:_,current:()=>w(X),finish:ee,resolve:se,reject:le}),k.add(E),e.sendWsMessage({type:"person_request",agentId:a,requestId:E,op:_,payload:F})||(ee(),le(Os("disconnected")))})}function W(_=""){let F=["disconnected","offline"].includes(Fs(e,_)),X=_===a&&c===s()&&F?{activityRecords:t.activityRecords,activityEpisodeId:t.episodeId||t.activityEpisodeId,latestEpisode:t.latestEpisode,busy:t.busy,activityStale:!0,progressStale:!0}:{};o+=1,clearTimeout(l),l=null,d=!1;for(let q of k){let E=br.get(e).get(q);E?.finish(),E?.reject(Os("stale"))}a=_,c=s(),g=!1,f=!1,v+=1,h=0,b=null,Object.assign(t,nc(),X,{retryCommand:y().get(a)||null})}async function B(){let _=o,F=++u,X;try{X=await R("snapshot")}catch(le){if(!w(_)||F!==u)return;throw t.progressStale=!0,le}if(!w(_)||F!==u)return;t.person=X.person,t.modelCandidates=X.person?.settings?.modelCandidates||[],t.state=X.state,t.latestEpisode=X.latestEpisode||null;let q=X.messages||[],E=t.messages.at(-1)?.seq,se=q[0]?.seq;if(!t.messages.length||Number.isSafeInteger(se)&&Number.isSafeInteger(E)&&se>E+1)p+=1,t.messages=sc([],q),t.messageCursor=X.nextMessagesCursor??null;else{let le=new Set(t.messages.map(ee=>ee.id));q.some(ee=>!le.has(ee.id))&&(p+=1),t.messages=sc(t.messages,q)}t.busy=X.busy===!0,t.episodeId=X.episodeId||null,t.activityEpisodeId=t.episodeId||t.latestEpisode?.id||t.activityEpisodeId,t.progressStale=!1}async function z(){let _=o,F=++v;try{let X=await R("traces",{cursor:null,limit:rg});if(!w(_)||F!==v)return;t.activityRecords=Jl(X.items),t.activityStale=!1}catch(X){if(!w(_)||F!==v)return;t.activityStale=!0,C(X)}}async function L(_,F=!1,{preserveHistory:X=!1}={}){let q=o;if(!w(q))return;let E=_==="messages"?"messagesLoading":"tracesLoading",se=_==="messages"?"messageCursor":"traceCursor";if(_==="traces"&&!F){if(h+=1,t.tracesStale=!0,X&&(g||f))return z();if(t.tracesLoading){(!b||!X)&&(b={preserveHistory:X});return}}if(t[E]||F&&t[se]==null)return;t[E]=!0,_==="traces"&&F&&(f=!0);let le=_==="traces"&&!F?++v:null,ee=h,de=_==="messages"&&!F?++p:p;try{let be=await R(_,{cursor:F?t[se]:null,limit:rg});if(!w(q)||_==="messages"&&de!==p)return;let ye=_==="traces"&&!F&&X&&g;ye||(t[_]=sc(F?t[_]:[],be.items),t[se]=be.nextCursor??null),_==="traces"&&!F&&le===v&&ee===h&&(t.activityRecords=Jl(be.items),t.activityStale=!1),_==="traces"&&!ye&&(g=F,!F&&ee===h&&(t.tracesStale=!1))}catch(be){w(q)&&(_==="traces"&&!F&&le===v&&(t.activityStale=!0),C(be))}finally{if(w(q)&&(t[E]=!1,_==="traces"&&F&&(f=!1),_==="traces"&&b)){let be=b;b=null,await L("traces",!1,be)}}}function O(){if(clearTimeout(l),!w()||!t.busy||Fs(e,a))return;let _=o;l=setTimeout(async()=>{if(!(!w(_)||d)){d=!0;try{if(await B(),!w(_))return;await L("traces",!1,{preserveHistory:!0})}catch(F){w(_)&&C(F)}finally{w(_)&&(d=!1,O())}}},r)}async function D(_){if(W(_),Fs(e,a))return;let F=o;t.loading=!0;try{let X=await R("status");if(!w(F)||(t.configured=X.configured===!0,t.storageReady=X.storageReady!==!1,t.modelReady=X.modelReady!==!1,t.reason=X.reason||"",t.renameSupported=X.renameSupported===!0,t.models=X.availableModels||X.models||[],t.modelCandidates=X.modelCandidates||[],!t.configured||!t.storageReady)||(await R("open"),!w(F))||(await B(),!w(F)))return;await Promise.all([L("messages"),L("traces")]),w(F)&&O()}catch(X){w(F)&&C(X)}finally{w(F)&&(t.loading=!1)}}async function I({preserveHistory:_=!1}={}){if(!t.person||t.storageReady===!1)return D(a);let F=o;if(!t.loading){t.loading=!0,t.error=null;try{let X=await R("status");if(!w(F)||(t.configured=X.configured===!0,t.storageReady=X.storageReady!==!1,t.modelReady=X.modelReady!==!1,t.reason=X.reason||"",t.renameSupported=X.renameSupported===!0,t.models=X.availableModels||X.models||[],t.modelCandidates=X.modelCandidates||[],!t.configured||!t.storageReady))return;await B(),w(F)&&await Promise.all([L("messages"),L("traces",!1,{preserveHistory:_})])}catch(X){w(F)&&C(X)}finally{w(F)&&(t.loading=!1,O())}}}async function T(_,F="",X=!1,q=[]){if(t.settingsPending||t.commandPending||t.loading||!t.person||!X&&(!t.configured||t.modelReady===!1)||Fs(e,a)||t.retryCommand&&!X||!X&&(t.busy||_==="send"&&!F.trim()&&!q.length))return!1;let E=X?t.retryCommand:{op:_,payload:{..._==="dream"?{}:{text:F.trim(),...q.length?{attachments:q.map(({fileId:le})=>({fileId:le}))}:{}},clientMessageId:ig()}};if(!E)return!1;let se=o;X||S().set(a,q.map(le=>le.file).filter(Boolean)),y().set(a,E),t.retryCommand=E,t.commandPending=!0,t.error=null;try{let le,ee=!!E.payload.attachments?.length,de=async()=>{let be=S().get(a);if(!i||be?.length!==E.payload.attachments.length)throw Os("attachment_expired");let ye=await i(be);if(!w(se))throw Os("stale");E.payload={...E.payload,attachments:ye.map(({fileId:ie})=>({fileId:ie}))}};if(X){let be=await R("receipt",{clientMessageId:E.payload.clientMessageId});if(!w(se))return!1;if(be.found){if(be.kind!==E.op||be.text!==(E.payload.text??""))throw Os("idempotency_conflict");le=be}else{if(!t.configured||t.modelReady===!1)throw Os("model_unavailable");ee&&i&&await de()}}if(!le)try{le=await R(E.op,E.payload)}catch(be){if(be.code!=="attachment_expired"||!ee||!i||!w(se))throw be;await de(),le=await R(E.op,E.payload)}return w(se)?(y().delete(a),S().delete(a),t.retryCommand=null,u+=1,t.episodeId=le.episodeId||null,t.activityEpisodeId=t.episodeId,t.activityStale=!1,t.progressStale=!1,t.busy=!le.status||["accepted","running"].includes(le.status),O(),(le.found||!t.busy)&&await I({preserveHistory:!0}),!0):!1}catch(le){return w(se)&&(!X&&!["timeout","outcome_unknown","disconnected","stale"].includes(le.code)&&(y().delete(a),S().delete(a),t.retryCommand=null),C(le)),!1}finally{w(se)&&(t.commandPending=!1)}}async function $(_,F=!1){if(["memory","skills"].includes(_))return U(_,"inspect",{section:_},F)}async function M(_,F=!1){let X=typeof _=="string"?_.trim():"";if(!(F&&X!==t.search.query))return U("search","search",{query:X},F)}async function U(_,F,X,q){if(!w()||(q||(t[_]={...Bo(),..._==="search"?{query:X.query}:{}}),!t.person||t.loading||Fs(e,a))||q&&(t[_].loading||t[_].nextCursor==null))return;let E=t[_];if(_==="search"&&!X.query)return;let se=o;E.loading=!0,E.error=null;try{let le=await R(F,{...X,cursor:q?E.nextCursor:null,limit:20});if(!w(se)||E!==t[_])return;E.items=q?[...new Map([...E.items,...le.items].map(ee=>[ee.id,ee])).values()]:le.items,E.nextCursor=le.nextCursor??null,E.loaded=!0}catch(le){w(se)&&E===t[_]&&(E.error={code:le.code,message:le.message})}finally{w(se)&&E===t[_]&&(E.loading=!1)}}async function G(_){if(!w()||t.settingsPending||t.loading||t.busy||t.commandPending||!t.person||Fs(e,a))return!1;let F=o;t.settingsPending=!0,t.error=null;try{let X=Array.isArray(_)?{modelCandidates:[..._]}:_,q=await R("settings",X);if(!w(F))return!1;t.modelCandidates=q.settings.modelCandidates||[],t.person.settings=q.settings,q.person?.id===t.person.id&&(t.person=q.person),u+=1;let E=await R("status");return w(F)?(t.renameSupported=E.renameSupported===!0,t.models=E.availableModels||E.models||[],t.modelReady=E.modelReady!==!1,t.reason=E.reason||"",!0):!1}catch(X){return w(F)&&C(X),!1}finally{w(F)&&(t.settingsPending=!1)}}async function Q(){if(t.cancelPending||!t.busy||!t.episodeId)return;let _=t.episodeId,F=o;t.cancelPending=!0;try{await R("cancel",{episodeId:_}),w(F)&&await I({preserveHistory:!0})}catch(X){w(F)&&C(X)}finally{w(F)&&(t.cancelPending=!1)}}return{open:D,refresh:I,command:T,cancel:Q,page:L,settings:G,inspect:$,search:M,discardRetry(){y().delete(a),S().delete(a),t.retryCommand=null},dispose(){W(),m=!0}}}var br,tc,rg,ig,Os,Bo,rc=N(()=>{ec();br=new WeakMap,tc=new WeakMap,rg=50,ig=()=>globalThis.crypto.randomUUID(),Os=e=>Object.assign(new Error(e),{code:e});Bo=()=>({items:[],nextCursor:null,loading:!1,loaded:!1,error:null})});function Nn(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function No(e,t){if(!t)return e??null;if(Object.prototype.hasOwnProperty.call(t,"base"))return Nn(t.base)??null;if(Object.prototype.hasOwnProperty.call(t,"replacement"))return Nn(t.replacement)??null;let s=e&&typeof e=="object"&&!Array.isArray(e)?Nn(e):{};if(t.set&&typeof t.set=="object")for(let[n,r]of Object.entries(t.set))s[n]=Nn(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]=Nn(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]=Nn(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(Nn(t.body.messagesAppend)||[])}s.body=n}return s}function lg(e,t){return!t||!Object.prototype.hasOwnProperty.call(t,"rawRequestDelta")?e??null:No(e??null,t.rawRequestDelta)}function ki(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 Ik(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 cg(e){let t=0,s=0;if(e&&Array.isArray(e.messages))for(let i of e.messages){let{messageText:o,toolText:a}=Ik(i);for(let c of o)t+=ki(c);for(let c of a)s+=ki(c)}let n=0,r=0;if(e&&typeof e.response=="string"&&(n+=ki(e.response)),e&&Array.isArray(e.toolCalls)){for(let i of e.toolCalls)if(i&&(r+=ki(String(i.name||"")),i.input!==void 0))try{r+=ki(JSON.stringify(i.input))}catch{}}return{inputMessageTokens:t,inputToolTokens:s,outputMessageTokens:n,outputToolTokens:r,inputTotalEstimated:t+s,outputTotalEstimated:n+r}}function ic(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),c=Math.min(n,Math.max(0,a));return{message:c,tool:n-c}}function dg(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((l,[,d])=>l+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(([l,d],u)=>{let p=d/i*s,g=Math.floor(p);return o[l]=g,{key:l,index:u,fraction:p-g}}),c=s-Object.values(o).reduce((l,d)=>l+d,0);a.sort((l,d)=>d.fraction-l.fraction||l.index-d.index);for(let l=0;l<c;l++)o[a[l%a.length].key]+=1;return o}function ug(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 oc=N(()=>{});function Vs(e,t){return!e||!t?"":`${e}${t}`}function wr(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 ac(e){return e?`${e}`:""}function lc(e,t){return!e||!t?"":`${e}${t}`}var Ho=N(()=>{});function Ak(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 pg(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 gg(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,c=!!(a&&s.some(d=>d&&d.id===a&&d.online));e.agents=n,e.workCenterActivityConnectionGeneration=Number(e.chatHistoryConnectionGeneration||0),e._hasHandledAgentList=!0;for(let[d,u]of Object.entries(e.agentOperations||{})){let p=n.find(g=>g.id===d);for(let g of["restart","upgrade"]){let f=u?.[g];if(!f?.pending||!f.acknowledged)continue;if(!p?.online){f.sawOffline||(e.agentOperations={...e.agentOperations,[d]:{...e.agentOperations[d]||{},[g]:{...f,sawOffline:!0}}});continue}let v=g==="upgrade"&&f.oldVersion&&p.version!==f.oldVersion;!f.sawOffline&&!v||e.finishAgentOperation?.(d,g)}}let l=e.currentAgent||null;if(l){let d=e._yeaftAgentSeen&&e._yeaftAgentSeen.id===l?e._yeaftAgentSeen:null,u=n.find(g=>g.id===l)||null;(e.currentView==="yeaft"||e.workCenterOpen&&e.workCenterAgentId===l)&&Ak(d,u)&&(e._yeaftReconnectCatchUpPending=!0),u?e._yeaftAgentSeen={id:l,online:!!u.online,version:u.version!=null?u.version:null}:d?d.online&&(e._yeaftAgentSeen={id:l,online:!1,version:d.version}):e._yeaftAgentSeen={id:l,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 g of n)for(let f of g.conversations||[])u.has(f.id)||(u.add(f.id),d.push({...f,type:f.type,agentId:g.id,agentName:g.name}),f.title&&(f.customTitle&&(e.customConversationTitles[f.id]=f.title),e.conversationTitles[f.id]||(e.conversationTitles[f.id]=f.title)));for(let g of d){g.agentOnline=!0;let f=e.conversations.find(v=>v.id===g.id);if(f)f.claudeSessionId=g.claudeSessionId||f.claudeSessionId,f.processing=g.processing,f.userId=g.userId,f.username=g.username,f.agentId=g.agentId,f.agentName=g.agentName,f.agentOnline=!0,g.type&&(f.type=g.type),g.name!==void 0&&(f.name=g.name);else{let v=e._recentlyDeletedSessions?.[g.id];if(v&&Date.now()-v<15e3)continue;e.conversations.push(g)}g.pinned&&!e.pinnedSessions.includes(g.id)&&e.pinnedSessions.push(g.id)}let p=new Set(n.map(g=>g.id));e.conversations=e.conversations.filter(g=>{if(u.has(g.id)||e.activeConversations.includes(g.id))return!0;if(g.agentId&&p.has(g.agentId)){let f=e._recentlyDeletedSessions?.[g.id];return f&&Date.now()-f<15e3||(delete e.messagesMap[g.id],delete e.processingConversations[g.id],We(e,g.id),delete e.executionStatusMap[g.id]),!1}return g.agentId&&!p.has(g.agentId)&&(g.agentOnline=!1),!0});for(let g of d)if(g.processing&&!Fn(e,g.id)&&!e._turnCompletedConvs?.has(g.id))e.processingConversations[g.id]=!0;else if(e.processingConversations[g.id]){delete e.processingConversations[g.id],We(e,g.id);let f=e.executionStatusMap[g.id];f&&(f.currentTool=null),e.finishStreamingForConversation(g.id)}for(let g of Object.keys(e.processingConversations))if(!u.has(g)){if(g.startsWith("yeaft-"))continue;delete e.processingConversations[g],We(e,g);let f=e.executionStatusMap[g];f&&(f.currentTool=null),e.finishStreamingForConversation(g)}}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,g=u||r&&!c;if(e.currentAgentInfo=d,g&&(e._offlineConversationRestoreKey=null,e.sendWsMessage({type:"select_agent",agentId:e.currentAgent,silent:!0})),g&&e.workCenterOpen&&e.workCenterAgentId===e.currentAgent&&typeof e.listWorkItems=="function"){let f=e._workCenterListFiltersByAgent?.[e.workCenterAgentId]||{};e.listWorkItems(e.workCenterAgentId,f).catch(()=>{})}if(e._yeaftReconnectCatchUpPending=!1,e.currentView==="yeaft"&&typeof e.requestYeaftSessionBootstrap=="function"){let f=u||!e.yeaftSessionReady||!e.yeaftModel||!e.yeaftStatus;(f||u)&&e.requestYeaftSessionBootstrap({forceSessionReady:f,catchUpHistory:u})}if(!g)return;if(e.currentConversation){let f=e.conversations.find(b=>b.id===e.currentConversation);e.sendWsMessage({type:"select_conversation",conversationId:e.currentConversation});let v=e.messagesMap[e.currentConversation]||[],h=On(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||pg(e);return}else{let u=`${e.currentAgent||""}:${e.currentConversation||""}`;e.currentConversation&&(!r||c||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(g=>g.id===d);if(p){let g=n.find(f=>f.id===p.agentId&&f.online);if(g){pg(e,{agentId:p.agentId,agentInfo:g});return}}}u&&(e.agents.find(g=>g.id===u&&g.online)?e.selectAgent(u):e.checkPendingRecovery())}}function fg(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 c=new Set(a.map(u=>u.id)),l=e.conversations.filter(u=>!c.has(u.id));e.conversations=[...l,...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&&!Fn(e,u.id)&&!e._turnCompletedConvs?.has(u.id))e.processingConversations[u.id]=!0;else if(e.processingConversations[u.id]){delete e.processingConversations[u.id],We(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(!l.some(g=>g.id===u)){delete e.processingConversations[u],We(e,u);let g=e.executionStatusMap[u];g&&(g.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,vs(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)}ju(e)}return!0}var hg=N(()=>{an();$n();fi()});function xk(e={}){return{providers:e.providers||[],primaryModel:e.primaryModel||null,fastModel:e.fastModel||null,language:e.language||"en"}}function kr(e){cc.delete(e)}function _k(e,t){let s=cc.get(e);s||(s=new Map,cc.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,c=e.yeaftDebugPanel?.agentId||null,l=e._yeaftDebugHistoryPending?.payload,d=l?.requestId||e._yeaftDebugHistoryLatestDetailRequestId||e._yeaftDebugHistoryLatestListRequestId;if(!n||!r||c&&n!==c||l&&n!==l.agentId||r!==d||!Number.isSafeInteger(i)||!Number.isSafeInteger(o)||o<=1||i<0||i>=o||a==null||new TextEncoder().encode(a).byteLength>Rk)return null;let u=Date.now();for(let[v,h]of s)h.expiresAt<=u&&s.delete(v);let p=`${n}\0${r}`,g=s.get(p);if(!g){if(i!==0)return null;g={nextIndex:0,chunkCount:o,parts:[],bytes:0,expiresAt:u+mg},s.set(p,g)}let f=new TextEncoder().encode(a).byteLength;if(g.chunkCount!==o||i!==g.nextIndex)return s.delete(p),null;if(g.parts.push(a),g.bytes+=f,g.nextIndex+=1,g.expiresAt=u+mg,e.refreshYeaftDebugHistoryTimeout?.(r),g.nextIndex!==g.chunkCount)return null;s.delete(p);try{let v=JSON.parse(g.parts.join(""));return v?.type==="yeaft_debug_history"&&v.requestId===r?{...v,agentId:n}:null}catch{return null}}function Ek(e,t){let s=t.agentId&&t.sessionId?e.yeaftConversationIdsByAgent?.[t.agentId]:null;if(!s)return;let n=e.messagesMap[s]||[],r=n.findIndex(l=>l.type==="user"&&l.sessionId===t.sessionId&&l.clientMessageId===t.clientMessageId&&(l.messageId||l.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(l=>l!==i&&l.type==="user"&&l.sessionId===t.sessionId&&l.status!=="error"&&l.clientMessageId&&(l.messageId||l.id)===l.clientMessageId),a=n.slice(r+1).some(l=>l.type==="user"&&l.sessionId===t.sessionId&&l.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(([l,d])=>{let u=wr(l);return d&&(!u.agentId||u.agentId===t.agentId)})||(delete e.processingConversations[s],We(e,s))}function vg(){return window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore()}function Dk(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 $k(e){let t=vg(),s=null;try{s=localStorage.getItem("lastViewedYeaftSession")||null}catch{}let n=wr(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 yg(e){let t=vg(),s=$k(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})}),e.yeaftSessionHydrateSlices=[]}function Lk(e){let t=e.yeaftSessionHydrateRequestId||null;e.yeaftSessionInventoryCompleteSupported!==!1||!t||(clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=setTimeout(()=>{e.yeaftSessionHydrateRequestId===t&&(e._legacyYeaftSessionHydrateTimer=null,yg(e),e._hasHandledYeaftSessionHydrate=!0,e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!0)},Pk))}function Ok(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=No(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=No(n.rawRequest,t.rawRequestDelta)),n}function Fk(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=Ok(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 bg(e,t){let s=Ye();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=_k(e,t);if(!n)return;t=n}switch(e._lastPongAt=Date.now(),t.type){case"person_response":og(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=is(t.sessionKey),s.setSessionKey(t.sessionKey)),t.acceptPlaintext===!0&&(e.serverEncryptionRequired=!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||Be("login.error.loginFailed")}),s.handleAuthFailure?.(void 0,t._wsAuthToken,t._wsAuthGeneration);break;case"agent_list":gg(e,t);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;Dk(e,t),e.yeaftSessionInventoryCompleteSupported!==!0&&Lk(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?yg(e):e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateRequestId=null,e._hasHandledYeaftSessionHydrate=t.ok!==!1,e.yeaftSessionHydrateError=t.ok===!1?t.error||"session_inventory_failed":null;break;case"session_catalog_snapshot":e.applySessionCatalogSnapshot(t.catalog,t.projectsAuthoritative===!0?t.projects:null,t.hiddenCatalog);break;case"session_ui_metadata_updated":e.finishSessionCatalogMutation?.(t);break;case"session_catalog_reorder_result":e.finishSessionCatalogMutation?.(t);break;case"agent_selected":if(!fg(e,t))break;e.workCenterOpen&&e.workCenterAgentId&&e.listWorkItems(e.workCenterAgentId).catch(()=>{});break;case"conversation_created":Wp(e,t);break;case"conversation_resumed":Up(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 c=o[a.name];c&&c.length>0?a.enabled=!c.some(l=>i.has(l)):a.enabled=!i.has(`mcp__${a.name}`)}}t.needRestart&&n&&(n.needRestart=!0);break}case"sync_messages_result":Yp(e,t);break;case"conversation_deleted":Xl(e,t);break;case"conversation_delete_result":t.ok&&Xl(e,t);break;case"turn_completed":jp(e,t);break;case"conversation_closed":Kp(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":Zp(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:Qp(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,kr(e),e._fetchYeaftDebugHistoryTimer&&(clearTimeout(e._fetchYeaftDebugHistoryTimer),e._fetchYeaftDebugHistoryTimer=null),e._yeaftDebugHistoryInFlightKey=null;let c=Array.isArray(t?.turns)?t.turns:[],l=t?.search?Mk:Tk,d=i?c:c.slice(-l),u=new Set(d.map(C=>C?.turnId).filter(Boolean)),p=Fk(Array.isArray(t?.loops)?t.loops:[]),g=i?p:p.filter(C=>!C?.turnId||u.has(C.turnId));e.yeaftDebugHistoryHasMore=!!t?.hasMore||!i&&c.length>d.length,!t?.detailTurnId&&Number.isFinite(t?.limit)&&t.limit>0&&(e.yeaftDebugHistoryLimit=Math.min(l,t.limit)),(!e.yeaftDebugTurnsById||typeof e.yeaftDebugTurnsById!="object")&&(e.yeaftDebugTurnsById={}),Array.isArray(e.yeaftDebugLoops)||(e.yeaftDebugLoops=[]),Array.isArray(e.yeaftDebugTurnOrder)||(e.yeaftDebugTurnOrder=[]);let f=i?{...e.yeaftDebugTurnsById}:{};for(let C of d){let R=C?.turnId;if(!R)continue;let W=f[R];if(W){let B=C?.detailsLoaded?{...W,...C}:{...C,...W};B.memoryLoaded==null&&W.memoryLoaded!=null&&(B.memoryLoaded=W.memoryLoaded),B.memoryAdjust==null&&W.memoryAdjust!=null&&(B.memoryAdjust=W.memoryAdjust),f[R]=B}else f[R]=C}e.yeaftDebugTurnsById=f;let v=C=>C?.loopInstanceId||`${C?.turnId||""}#${C?.loopNumber||0}`,h=e.yeaftDebugLoops,b=new Map;for(let C of h)C&&b.set(v(C),C);let m=new Set,k=[];for(let C of g){if(!C)continue;let R=v(C);m.add(R);let W=b.get(R);k.push(i?{...W||{},...C}:W||C)}if(i)for(let C of h)!C||m.has(v(C))||k.push(C);e.yeaftDebugLoops=k;let w=new Set,y=[],S=C=>{!C||w.has(C)||(w.add(C),y.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?y:y.slice(-l),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){Ek(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(l=>t.message?.includes(l));if((t.message?.includes("Agent is still syncing")||t.message?.includes("Agent not found"))&&vs(e),["No conversation selected","Agent is still syncing","No agent available"].some(l=>t.message?.includes(l))&&n&&(delete e.processingConversations[n],We(e,n),e.finishStreamingForConversation(n)),r&&n){let l=e.messagesMap[n];if(l&&l.length>0)for(let d=l.length-1;d>=0&&d>=l.length-5;d--){let u=l[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 g=p.findIndex(f=>f.id===u.id);g>=0&&p.splice(g,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 c=null;if(r&&n){let l=e.messagesMap[n];l&&l.length>0&&(c=l[l.length-1])}if(r&&n&&c){let l=n,d="err_"+o;c._sysErrRemoveTimer=setTimeout(()=>{let u=e.messagesMap[l];if(u){let p=u.findIndex(g=>g.id===d);p>=0&&u.splice(p,1)}},5e3)}!r&&n&&(delete e.processingConversations[n],We(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":zp(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":Gp(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,c=t.agentId?e.currentAgent===t.agentId&&(i===a||r===a):r===a;a&&c&&(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"){We(e,n),$p(e,n);break}if(t.status==="ok")e.sessionHealth?.[n]&&delete e.sessionHealth[n],!t.isProcessing&&e.processingConversations[n]&&(delete e.processingConversations[n],We(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],We(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||xk(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":{let n={plugins:t.plugins&&typeof t.plugins=="object"?t.plugins:{},error:t.error||null,loaded:!0,at:Date.now()};t.agentId&&(e.pluginConfigByAgent={...e.pluginConfigByAgent,[t.agentId]:n});let r=t.requestId?e._pluginPending?.[t.requestId]:null;r&&(clearTimeout(r.timer),delete e._pluginPending[t.requestId],r.resolve(n));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":{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 Tk,Mk,Pk,Rk,mg,cc,wg=N(()=>{rc();Ft();wo();ms();an();$n();oc();Ho();hg();Vo();Tk=1,Mk=5,Pk=500,Rk=512*1024,mg=3e4,cc=new WeakMap});function Sg(){return Object.values(kg).sort((t,s)=>t.order-s.order).map(t=>({teamId:t.id,team:t,roles:Object.values(ls).filter(s=>s.group===t.id)}))}function Cg(e){let t=[];for(let s of Object.values(ls)){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 Hn(e,t){let s=ls[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 dc(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(c=>!ls[c.role]&&t.some(l=>l.id===c.role)))return null;if(e.length===1){let{role:c,action:l}=e[0],d=t.find(p=>p.id===c);if(!d)return null;let u;if(l&&d.actions){let p=d.actions.find(g=>g.id===l);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:c,action:l}of e){let d=t.find(p=>p.id===c),u=ls[c];if(d)if(l){let p=d.actions?.find(g=>g.id===l);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(`
|
|
3
|
+
${p}`:p,g=!0;break}}if(!g){for(let f=l.length-1;f>=0;f--)if(l[f].type==="tool-use"&&!l[f].hasResult){l[f].hasResult=!0,l[f].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 l=s.message?.clientMessageId||s.clientMessageId||null,d={type:"user",content:a,clientMessageId:l},u=e.messagesMap[t]||[];if(u.some(g=>Oo(g,d))){if(l){for(let g=u.length-1;g>=0;g--)if(u[g].type==="user"&&u[g].clientMessageId===l){s.dbMessageId&&!u[g].dbMessageId&&(u[g].dbMessageId=s.dbMessageId),s.message?.id&&!u[g].messageId&&(u[g].id=s.message.id,u[g].messageId=s.message.id),s.ts&&!u[g].ts&&(u[g].ts=s.ts),Jp(e,u[g],n);break}}}else{let g=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}:{},...l?{clientMessageId:l}:{}});Jp(e,g,n)}}}else if(s.type==="result"){delete e.processingConversations[t],We(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]:g,...f}=e.activeVpTurns;!o&&p?.sessionId&&(o=p.sessionId),e.activeVpTurns=f}}if(o&&e._currentYeaftVpId&&e.vpStatuses){let d=e._currentYeaftTurnId||null,u={...e.vpStatuses||{}},p=!1;for(let[g,f]of Object.entries(u))!f||f.vpId!==e._currentYeaftVpId||e._currentYeaftAgentId&&f.agentId&&f.agentId!==e._currentYeaftAgentId||(f.sessionId||f.groupId||null)!==o||d&&f.turnId&&f.turnId!==d||(u[g]={...f,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,cn(e,t,e._currentYeaftSessionId?{sessionId:e._currentYeaftSessionId,vpId:e._currentYeaftVpId,turnId:e._currentYeaftTurnId,threadId:e._currentYeaftThreadId}:null);let a=e.messagesMap[t]||[],c=s.result_text||"";if(typeof c=="string"&&c.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,c.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 tg=N(()=>{an();Vo();zl()});function Ck(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:kt(t[e][0]),phase:kt(t[e][1]),params:{}}:typeof e=="string"&&/^Script\.[a-z][a-z0-9-]{0,47}$/.test(e)?{label:kt("script"),phase:kt("runningScript"),params:{name:e}}:{label:kt("capability"),phase:kt("usingCapability"),params:{}}}function Jl(e){return(Array.isArray(e)?e:[]).filter(t=>t&&typeof t.episodeId=="string"&&Sk.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:sg(t.createdAt),...t.kind==="accepted"?{trigger:["send","think","dream"].includes(t.trigger?.kind)?t.trigger.kind:null}:{},...t.kind.startsWith("capability_")?{...Ck(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 ng(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(b=>b.episodeId===r),o=i.find(b=>b.kind==="accepted"),a=i.findLast(b=>qo[b.kind]),c=e.latestEpisode?.id===r?e.latestEpisode:null,l=qo[c?.status]||qo[a?.kind],d=!l&&(e.busy||s),u=!["disabled","unsupported","noAgent"].includes(t)&&!!(d||l||i.length||e.retryCommand),p=[],g=new Map,f=kt(o?.trigger==="dream"?"dreaming":o?.trigger==="think"?"thinking":"preparing"),v={};for(let b of i){let m=b.kind.startsWith("call_");if(!m&&!b.kind.startsWith("capability_"))continue;let k=`${m?"model":"capability"}:${b.callId||b.id}`,w=g.get(k);w||(w={id:k,label:m?kt("model"):b.label,params:m?{}:b.params,status:"running",durationMs:null,start:null},g.set(k,w),p.push(w)),b.kind.endsWith("_started")?(w.start=b.at,m?(f=kt(o?.trigger==="dream"?"dreaming":o?.trigger==="think"?"thinking":"preparing"),v={}):(f=b.phase,v=b.params)):(w.status=b.kind==="call_failed"||b.failed?"failed":"completed",w.durationMs=w.start!=null&&b.at!=null&&b.at>=w.start?b.at-w.start:null,f=kt(m&&b.kind==="call_output"?"processingResponse":"preparing"),v={})}for(let b of p)b.status==="running"&&(l||!d)&&(b.status=["cancelled","interrupted"].includes(l)?l:"unknown"),b.status==="running"&&(t||e.activityStale||e.progressStale)&&(b.status="unknown"),delete b.start;let h=f;return l?h=kt(l):s?h=kt("confirming"):e.cancelPending?h=kt("stopping"):e.retryCommand&&!e.busy?h=kt("uncertain"):(!d||e.activityStale||e.progressStale)&&(h=kt("stale")),(t==="disconnected"||t==="offline")&&(h=kt("disconnected")),h!==f&&(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:sg(c?.endedAt)??a?.at??null,limited:p.length>30||!!i.length&&!o}}var qo,Sk,kt,sg,ec=N(()=>{qo={committed:"completed",completed:"completed",failed:"failed",cancelled:"cancelled",interrupted:"interrupted",budget_exhausted:"budgetExhausted"},Sk=new Set(["accepted","call_started","call_output","call_failed","capability_started","capability_result","capability_failed","capability_finalized",...Object.keys(qo)]),kt=e=>`person.activity.${e}`,sg=e=>{let t=e==null?NaN:new Date(e).getTime();return Number.isFinite(t)?t:null}});function Fs(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 og(e,t){let s=br.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 nc(){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,cancelPending:!1,retryCommand:null,tracesStale:!1,activityRecords:[],activityEpisodeId:null,activityStale:!1,progressStale:!1,models:[],modelCandidates:[],settingsPending:!1,renameSupported:!1,memory:Bo(),skills:Bo(),search:{...Bo(),query:""}}}function sc(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 ag({chat:e,state:t,scope:s,timeoutMs:n=3e4,pollMs:r=1500,reupload:i=null}){br.has(e)||br.set(e,new Map);let o=0,a="",c="",l=null,d=!1,u=0,p=0,g=!1,f=!1,v=0,h=0,b=null,m=!1,k=new Set,w=(_=o)=>!m&&_===o&&c===s(),y=()=>{let _=tc.get(e);return(!_||_.scope!==s())&&(_={scope:s(),commands:new Map,files:new Map},tc.set(e,_)),_.commands},S=()=>(y(),tc.get(e).files),C=_=>{t.error={code:_.code||"requestFailed",message:_.message}};function R(_,F={}){let X=o;if(!w(X))return Promise.reject(Os("stale"));let q=Fs(e,a);if(q)return Promise.reject(Os(q));let E=`person-${ig()}`;return new Promise((se,le)=>{let ee=()=>{clearTimeout(de),br.get(e).delete(E),k.delete(E)},de=setTimeout(()=>{ee(),le(Os("timeout"))},n);br.get(e).set(E,{agentId:a,op:_,current:()=>w(X),finish:ee,resolve:se,reject:le}),k.add(E),e.sendWsMessage({type:"person_request",agentId:a,requestId:E,op:_,payload:F})||(ee(),le(Os("disconnected")))})}function W(_=""){let F=["disconnected","offline"].includes(Fs(e,_)),X=_===a&&c===s()&&F?{activityRecords:t.activityRecords,activityEpisodeId:t.episodeId||t.activityEpisodeId,latestEpisode:t.latestEpisode,busy:t.busy,activityStale:!0,progressStale:!0}:{};o+=1,clearTimeout(l),l=null,d=!1;for(let q of k){let E=br.get(e).get(q);E?.finish(),E?.reject(Os("stale"))}a=_,c=s(),g=!1,f=!1,v+=1,h=0,b=null,Object.assign(t,nc(),X,{retryCommand:y().get(a)||null})}async function B(){let _=o,F=++u,X;try{X=await R("snapshot")}catch(le){if(!w(_)||F!==u)return;throw t.progressStale=!0,le}if(!w(_)||F!==u)return;t.person=X.person,t.modelCandidates=X.person?.settings?.modelCandidates||[],t.state=X.state,t.latestEpisode=X.latestEpisode||null;let q=X.messages||[],E=t.messages.at(-1)?.seq,se=q[0]?.seq;if(!t.messages.length||Number.isSafeInteger(se)&&Number.isSafeInteger(E)&&se>E+1)p+=1,t.messages=sc([],q),t.messageCursor=X.nextMessagesCursor??null;else{let le=new Set(t.messages.map(ee=>ee.id));q.some(ee=>!le.has(ee.id))&&(p+=1),t.messages=sc(t.messages,q)}t.busy=X.busy===!0,t.episodeId=X.episodeId||null,t.activityEpisodeId=t.episodeId||t.latestEpisode?.id||t.activityEpisodeId,t.progressStale=!1}async function z(){let _=o,F=++v;try{let X=await R("traces",{cursor:null,limit:rg});if(!w(_)||F!==v)return;t.activityRecords=Jl(X.items),t.activityStale=!1}catch(X){if(!w(_)||F!==v)return;t.activityStale=!0,C(X)}}async function L(_,F=!1,{preserveHistory:X=!1}={}){let q=o;if(!w(q))return;let E=_==="messages"?"messagesLoading":"tracesLoading",se=_==="messages"?"messageCursor":"traceCursor";if(_==="traces"&&!F){if(h+=1,t.tracesStale=!0,X&&(g||f))return z();if(t.tracesLoading){(!b||!X)&&(b={preserveHistory:X});return}}if(t[E]||F&&t[se]==null)return;t[E]=!0,_==="traces"&&F&&(f=!0);let le=_==="traces"&&!F?++v:null,ee=h,de=_==="messages"&&!F?++p:p;try{let be=await R(_,{cursor:F?t[se]:null,limit:rg});if(!w(q)||_==="messages"&&de!==p)return;let ye=_==="traces"&&!F&&X&&g;ye||(t[_]=sc(F?t[_]:[],be.items),t[se]=be.nextCursor??null),_==="traces"&&!F&&le===v&&ee===h&&(t.activityRecords=Jl(be.items),t.activityStale=!1),_==="traces"&&!ye&&(g=F,!F&&ee===h&&(t.tracesStale=!1))}catch(be){w(q)&&(_==="traces"&&!F&&le===v&&(t.activityStale=!0),C(be))}finally{if(w(q)&&(t[E]=!1,_==="traces"&&F&&(f=!1),_==="traces"&&b)){let be=b;b=null,await L("traces",!1,be)}}}function O(){if(clearTimeout(l),!w()||!t.busy||Fs(e,a))return;let _=o;l=setTimeout(async()=>{if(!(!w(_)||d)){d=!0;try{if(await B(),!w(_))return;await L("traces",!1,{preserveHistory:!0})}catch(F){w(_)&&C(F)}finally{w(_)&&(d=!1,O())}}},r)}async function D(_){if(W(_),Fs(e,a))return;let F=o;t.loading=!0;try{let X=await R("status");if(!w(F)||(t.configured=X.configured===!0,t.storageReady=X.storageReady!==!1,t.modelReady=X.modelReady!==!1,t.reason=X.reason||"",t.renameSupported=X.renameSupported===!0,t.models=X.availableModels||X.models||[],t.modelCandidates=X.modelCandidates||[],!t.configured||!t.storageReady)||(await R("open"),!w(F))||(await B(),!w(F)))return;await Promise.all([L("messages"),L("traces")]),w(F)&&O()}catch(X){w(F)&&C(X)}finally{w(F)&&(t.loading=!1)}}async function I({preserveHistory:_=!1}={}){if(!t.person||t.storageReady===!1)return D(a);let F=o;if(!t.loading){t.loading=!0,t.error=null;try{let X=await R("status");if(!w(F)||(t.configured=X.configured===!0,t.storageReady=X.storageReady!==!1,t.modelReady=X.modelReady!==!1,t.reason=X.reason||"",t.renameSupported=X.renameSupported===!0,t.models=X.availableModels||X.models||[],t.modelCandidates=X.modelCandidates||[],!t.configured||!t.storageReady))return;await B(),w(F)&&await Promise.all([L("messages"),L("traces",!1,{preserveHistory:_})])}catch(X){w(F)&&C(X)}finally{w(F)&&(t.loading=!1,O())}}}async function T(_,F="",X=!1,q=[]){if(t.settingsPending||t.commandPending||t.loading||!t.person||!X&&(!t.configured||t.modelReady===!1)||Fs(e,a)||t.retryCommand&&!X||!X&&(t.busy||_==="send"&&!F.trim()&&!q.length))return!1;let E=X?t.retryCommand:{op:_,payload:{..._==="dream"?{}:{text:F.trim(),...q.length?{attachments:q.map(({fileId:le})=>({fileId:le}))}:{}},clientMessageId:ig()}};if(!E)return!1;let se=o;X||S().set(a,q.map(le=>le.file).filter(Boolean)),y().set(a,E),t.retryCommand=E,t.commandPending=!0,t.error=null;try{let le,ee=!!E.payload.attachments?.length,de=async()=>{let be=S().get(a);if(!i||be?.length!==E.payload.attachments.length)throw Os("attachment_expired");let ye=await i(be);if(!w(se))throw Os("stale");E.payload={...E.payload,attachments:ye.map(({fileId:ie})=>({fileId:ie}))}};if(X){let be=await R("receipt",{clientMessageId:E.payload.clientMessageId});if(!w(se))return!1;if(be.found){if(be.kind!==E.op||be.text!==(E.payload.text??""))throw Os("idempotency_conflict");le=be}else{if(!t.configured||t.modelReady===!1)throw Os("model_unavailable");ee&&i&&await de()}}if(!le)try{le=await R(E.op,E.payload)}catch(be){if(be.code!=="attachment_expired"||!ee||!i||!w(se))throw be;await de(),le=await R(E.op,E.payload)}return w(se)?(y().delete(a),S().delete(a),t.retryCommand=null,u+=1,t.episodeId=le.episodeId||null,t.activityEpisodeId=t.episodeId,t.activityStale=!1,t.progressStale=!1,t.busy=!le.status||["accepted","running"].includes(le.status),O(),(le.found||!t.busy)&&await I({preserveHistory:!0}),!0):!1}catch(le){return w(se)&&(!X&&!["timeout","outcome_unknown","disconnected","stale"].includes(le.code)&&(y().delete(a),S().delete(a),t.retryCommand=null),C(le)),!1}finally{w(se)&&(t.commandPending=!1)}}async function $(_,F=!1){if(["memory","skills"].includes(_))return U(_,"inspect",{section:_},F)}async function M(_,F=!1){let X=typeof _=="string"?_.trim():"";if(!(F&&X!==t.search.query))return U("search","search",{query:X},F)}async function U(_,F,X,q){if(!w()||(q||(t[_]={...Bo(),..._==="search"?{query:X.query}:{}}),!t.person||t.loading||Fs(e,a))||q&&(t[_].loading||t[_].nextCursor==null))return;let E=t[_];if(_==="search"&&!X.query)return;let se=o;E.loading=!0,E.error=null;try{let le=await R(F,{...X,cursor:q?E.nextCursor:null,limit:20});if(!w(se)||E!==t[_])return;E.items=q?[...new Map([...E.items,...le.items].map(ee=>[ee.id,ee])).values()]:le.items,E.nextCursor=le.nextCursor??null,E.loaded=!0}catch(le){w(se)&&E===t[_]&&(E.error={code:le.code,message:le.message})}finally{w(se)&&E===t[_]&&(E.loading=!1)}}async function G(_){if(!w()||t.settingsPending||t.loading||t.busy||t.commandPending||!t.person||Fs(e,a))return!1;let F=o;t.settingsPending=!0,t.error=null;try{let X=Array.isArray(_)?{modelCandidates:[..._]}:_,q=await R("settings",X);if(!w(F))return!1;t.modelCandidates=q.settings.modelCandidates||[],t.person.settings=q.settings,q.person?.id===t.person.id&&(t.person=q.person),u+=1;let E=await R("status");return w(F)?(t.renameSupported=E.renameSupported===!0,t.models=E.availableModels||E.models||[],t.modelReady=E.modelReady!==!1,t.reason=E.reason||"",!0):!1}catch(X){return w(F)&&C(X),!1}finally{w(F)&&(t.settingsPending=!1)}}async function Q(){if(t.cancelPending||!t.busy||!t.episodeId)return;let _=t.episodeId,F=o;t.cancelPending=!0;try{await R("cancel",{episodeId:_}),w(F)&&await I({preserveHistory:!0})}catch(X){w(F)&&C(X)}finally{w(F)&&(t.cancelPending=!1)}}return{open:D,refresh:I,command:T,cancel:Q,page:L,settings:G,inspect:$,search:M,discardRetry(){y().delete(a),S().delete(a),t.retryCommand=null},dispose(){W(),m=!0}}}var br,tc,rg,ig,Os,Bo,rc=N(()=>{ec();br=new WeakMap,tc=new WeakMap,rg=50,ig=()=>globalThis.crypto.randomUUID(),Os=e=>Object.assign(new Error(e),{code:e});Bo=()=>({items:[],nextCursor:null,loading:!1,loaded:!1,error:null})});function Nn(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function No(e,t){if(!t)return e??null;if(Object.prototype.hasOwnProperty.call(t,"base"))return Nn(t.base)??null;if(Object.prototype.hasOwnProperty.call(t,"replacement"))return Nn(t.replacement)??null;let s=e&&typeof e=="object"&&!Array.isArray(e)?Nn(e):{};if(t.set&&typeof t.set=="object")for(let[n,r]of Object.entries(t.set))s[n]=Nn(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]=Nn(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]=Nn(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(Nn(t.body.messagesAppend)||[])}s.body=n}return s}function lg(e,t){return!t||!Object.prototype.hasOwnProperty.call(t,"rawRequestDelta")?e??null:No(e??null,t.rawRequestDelta)}function ki(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 Ik(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 cg(e){let t=0,s=0;if(e&&Array.isArray(e.messages))for(let i of e.messages){let{messageText:o,toolText:a}=Ik(i);for(let c of o)t+=ki(c);for(let c of a)s+=ki(c)}let n=0,r=0;if(e&&typeof e.response=="string"&&(n+=ki(e.response)),e&&Array.isArray(e.toolCalls)){for(let i of e.toolCalls)if(i&&(r+=ki(String(i.name||"")),i.input!==void 0))try{r+=ki(JSON.stringify(i.input))}catch{}}return{inputMessageTokens:t,inputToolTokens:s,outputMessageTokens:n,outputToolTokens:r,inputTotalEstimated:t+s,outputTotalEstimated:n+r}}function ic(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),c=Math.min(n,Math.max(0,a));return{message:c,tool:n-c}}function dg(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((l,[,d])=>l+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(([l,d],u)=>{let p=d/i*s,g=Math.floor(p);return o[l]=g,{key:l,index:u,fraction:p-g}}),c=s-Object.values(o).reduce((l,d)=>l+d,0);a.sort((l,d)=>d.fraction-l.fraction||l.index-d.index);for(let l=0;l<c;l++)o[a[l%a.length].key]+=1;return o}function ug(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 oc=N(()=>{});function Vs(e,t){return!e||!t?"":`${e}${t}`}function wr(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 ac(e){return e?`${e}`:""}function lc(e,t){return!e||!t?"":`${e}${t}`}var Ho=N(()=>{});function Ak(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 pg(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 gg(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,c=!!(a&&s.some(d=>d&&d.id===a&&d.online));e.agents=n,e.workCenterActivityConnectionGeneration=Number(e.chatHistoryConnectionGeneration||0),e._hasHandledAgentList=!0;for(let[d,u]of Object.entries(e.agentOperations||{})){let p=n.find(g=>g.id===d);for(let g of["restart","upgrade"]){let f=u?.[g];if(!f?.pending||!f.acknowledged)continue;if(!p?.online){f.sawOffline||(e.agentOperations={...e.agentOperations,[d]:{...e.agentOperations[d]||{},[g]:{...f,sawOffline:!0}}});continue}let v=g==="upgrade"&&f.oldVersion&&p.version!==f.oldVersion;!f.sawOffline&&!v||e.finishAgentOperation?.(d,g)}}let l=e.currentAgent||null;if(l){let d=e._yeaftAgentSeen&&e._yeaftAgentSeen.id===l?e._yeaftAgentSeen:null,u=n.find(g=>g.id===l)||null;(e.currentView==="yeaft"||e.workCenterOpen&&e.workCenterAgentId===l)&&Ak(d,u)&&(e._yeaftReconnectCatchUpPending=!0),u?e._yeaftAgentSeen={id:l,online:!!u.online,version:u.version!=null?u.version:null}:d?d.online&&(e._yeaftAgentSeen={id:l,online:!1,version:d.version}):e._yeaftAgentSeen={id:l,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 g of n)for(let f of g.conversations||[])u.has(f.id)||(u.add(f.id),d.push({...f,type:f.type,agentId:g.id,agentName:g.name}),f.title&&(f.customTitle&&(e.customConversationTitles[f.id]=f.title),e.conversationTitles[f.id]||(e.conversationTitles[f.id]=f.title)));for(let g of d){g.agentOnline=!0;let f=e.conversations.find(v=>v.id===g.id);if(f)f.claudeSessionId=g.claudeSessionId||f.claudeSessionId,f.processing=g.processing,f.userId=g.userId,f.username=g.username,f.agentId=g.agentId,f.agentName=g.agentName,f.agentOnline=!0,g.type&&(f.type=g.type),g.name!==void 0&&(f.name=g.name);else{let v=e._recentlyDeletedSessions?.[g.id];if(v&&Date.now()-v<15e3)continue;e.conversations.push(g)}g.pinned&&!e.pinnedSessions.includes(g.id)&&e.pinnedSessions.push(g.id)}let p=new Set(n.map(g=>g.id));e.conversations=e.conversations.filter(g=>{if(u.has(g.id)||e.activeConversations.includes(g.id))return!0;if(g.agentId&&p.has(g.agentId)){let f=e._recentlyDeletedSessions?.[g.id];return f&&Date.now()-f<15e3||(delete e.messagesMap[g.id],delete e.processingConversations[g.id],We(e,g.id),delete e.executionStatusMap[g.id]),!1}return g.agentId&&!p.has(g.agentId)&&(g.agentOnline=!1),!0});for(let g of d)if(g.processing&&!Fn(e,g.id)&&!e._turnCompletedConvs?.has(g.id))e.processingConversations[g.id]=!0;else if(e.processingConversations[g.id]){delete e.processingConversations[g.id],We(e,g.id);let f=e.executionStatusMap[g.id];f&&(f.currentTool=null),e.finishStreamingForConversation(g.id)}for(let g of Object.keys(e.processingConversations))if(!u.has(g)){if(g.startsWith("yeaft-"))continue;delete e.processingConversations[g],We(e,g);let f=e.executionStatusMap[g];f&&(f.currentTool=null),e.finishStreamingForConversation(g)}}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,g=u||r&&!c;if(e.currentAgentInfo=d,g&&(e._offlineConversationRestoreKey=null,e.sendWsMessage({type:"select_agent",agentId:e.currentAgent,silent:!0})),g&&e.workCenterOpen&&e.workCenterAgentId===e.currentAgent&&typeof e.listWorkItems=="function"){let f=e._workCenterListFiltersByAgent?.[e.workCenterAgentId]||{};e.listWorkItems(e.workCenterAgentId,f).catch(()=>{})}if(e._yeaftReconnectCatchUpPending=!1,e.currentView==="yeaft"&&typeof e.requestYeaftSessionBootstrap=="function"){let f=u||!e.yeaftSessionReady||!e.yeaftModel||!e.yeaftStatus;(f||u)&&e.requestYeaftSessionBootstrap({forceSessionReady:f,catchUpHistory:u})}if(!g)return;if(e.currentConversation){let f=e.conversations.find(b=>b.id===e.currentConversation);e.sendWsMessage({type:"select_conversation",conversationId:e.currentConversation});let v=e.messagesMap[e.currentConversation]||[],h=On(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||pg(e);return}else{let u=`${e.currentAgent||""}:${e.currentConversation||""}`;e.currentConversation&&(!r||c||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(g=>g.id===d);if(p){let g=n.find(f=>f.id===p.agentId&&f.online);if(g){pg(e,{agentId:p.agentId,agentInfo:g});return}}}u&&(e.agents.find(g=>g.id===u&&g.online)?e.selectAgent(u):e.checkPendingRecovery())}}function fg(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 c=new Set(a.map(u=>u.id)),l=e.conversations.filter(u=>!c.has(u.id));e.conversations=[...l,...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&&!Fn(e,u.id)&&!e._turnCompletedConvs?.has(u.id))e.processingConversations[u.id]=!0;else if(e.processingConversations[u.id]){delete e.processingConversations[u.id],We(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(!l.some(g=>g.id===u)){delete e.processingConversations[u],We(e,u);let g=e.executionStatusMap[u];g&&(g.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,vs(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)}ju(e)}return!0}var hg=N(()=>{an();$n();fi()});function xk(e={}){return{providers:e.providers||[],primaryModel:e.primaryModel||null,fastModel:e.fastModel||null,language:e.language||"en"}}function kr(e){cc.delete(e)}function _k(e,t){let s=cc.get(e);s||(s=new Map,cc.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,c=e.yeaftDebugPanel?.agentId||null,l=e._yeaftDebugHistoryPending?.payload,d=l?.requestId||e._yeaftDebugHistoryLatestDetailRequestId||e._yeaftDebugHistoryLatestListRequestId;if(!n||!r||c&&n!==c||l&&n!==l.agentId||r!==d||!Number.isSafeInteger(i)||!Number.isSafeInteger(o)||o<=1||i<0||i>=o||a==null||new TextEncoder().encode(a).byteLength>Rk)return null;let u=Date.now();for(let[v,h]of s)h.expiresAt<=u&&s.delete(v);let p=`${n}\0${r}`,g=s.get(p);if(!g){if(i!==0)return null;g={nextIndex:0,chunkCount:o,parts:[],bytes:0,expiresAt:u+mg},s.set(p,g)}let f=new TextEncoder().encode(a).byteLength;if(g.chunkCount!==o||i!==g.nextIndex)return s.delete(p),null;if(g.parts.push(a),g.bytes+=f,g.nextIndex+=1,g.expiresAt=u+mg,e.refreshYeaftDebugHistoryTimeout?.(r),g.nextIndex!==g.chunkCount)return null;s.delete(p);try{let v=JSON.parse(g.parts.join(""));return v?.type==="yeaft_debug_history"&&v.requestId===r?{...v,agentId:n}:null}catch{return null}}function Ek(e,t){let s=t.agentId&&t.sessionId?e.yeaftConversationIdsByAgent?.[t.agentId]:null;if(!s)return;let n=e.messagesMap[s]||[],r=n.findIndex(l=>l.type==="user"&&l.sessionId===t.sessionId&&l.clientMessageId===t.clientMessageId&&(l.messageId||l.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(l=>l!==i&&l.type==="user"&&l.sessionId===t.sessionId&&l.status!=="error"&&l.clientMessageId&&(l.messageId||l.id)===l.clientMessageId),a=n.slice(r+1).some(l=>l.type==="user"&&l.sessionId===t.sessionId&&l.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(([l,d])=>{let u=wr(l);return d&&(!u.agentId||u.agentId===t.agentId)})||(delete e.processingConversations[s],We(e,s))}function vg(){return window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore()}function Dk(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 $k(e){let t=vg(),s=null;try{s=localStorage.getItem("lastViewedYeaftSession")||null}catch{}let n=wr(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 yg(e){let t=vg(),s=$k(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})}),e.yeaftSessionHydrateSlices=[]}function Lk(e){let t=e.yeaftSessionHydrateRequestId||null;e.yeaftSessionInventoryCompleteSupported!==!1||!t||(clearTimeout(e._legacyYeaftSessionHydrateTimer),e._legacyYeaftSessionHydrateTimer=setTimeout(()=>{e.yeaftSessionHydrateRequestId===t&&(e._legacyYeaftSessionHydrateTimer=null,yg(e),e._hasHandledYeaftSessionHydrate=!0,e.yeaftSessionHydrateRequestId=null,e.yeaftSessionHydrateError=null,e._yeaftSessionInventorySocketQuarantined=!0)},Pk))}function Ok(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=No(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=No(n.rawRequest,t.rawRequestDelta)),n}function Fk(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=Ok(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 bg(e,t){let s=Ye();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=_k(e,t);if(!n)return;t=n}switch(e._lastPongAt=Date.now(),t.type){case"person_response":og(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=is(t.sessionKey),s.setSessionKey(t.sessionKey)),t.acceptPlaintext===!0&&(e.serverEncryptionRequired=!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||Be("login.error.loginFailed")}),s.handleAuthFailure?.(void 0,t._wsAuthToken,t._wsAuthGeneration);break;case"agent_list":gg(e,t);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;Dk(e,t),e.yeaftSessionInventoryCompleteSupported!==!0&&Lk(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?yg(e):e.yeaftSessionHydrateSlices=[],e.yeaftSessionHydrateRequestId=null,e._hasHandledYeaftSessionHydrate=t.ok!==!1,e.yeaftSessionHydrateError=t.ok===!1?t.error||"session_inventory_failed":null;break;case"session_catalog_snapshot":e.applySessionCatalogSnapshot(t.catalog,t.projectsAuthoritative===!0?t.projects:null,t.hiddenCatalog);break;case"session_ui_metadata_updated":e.finishSessionCatalogMutation?.(t);break;case"session_catalog_reorder_result":e.finishSessionCatalogMutation?.(t);break;case"agent_selected":if(!fg(e,t))break;e.workCenterOpen&&e.workCenterAgentId&&e.listWorkItems(e.workCenterAgentId).catch(()=>{});break;case"conversation_created":Wp(e,t);break;case"conversation_resumed":Up(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 c=o[a.name];c&&c.length>0?a.enabled=!c.some(l=>i.has(l)):a.enabled=!i.has(`mcp__${a.name}`)}}t.needRestart&&n&&(n.needRestart=!0);break}case"sync_messages_result":Yp(e,t);break;case"conversation_deleted":Xl(e,t);break;case"conversation_delete_result":t.ok&&Xl(e,t);break;case"turn_completed":jp(e,t);break;case"conversation_closed":Kp(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":Zp(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:Qp(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,kr(e),e._fetchYeaftDebugHistoryTimer&&(clearTimeout(e._fetchYeaftDebugHistoryTimer),e._fetchYeaftDebugHistoryTimer=null),e._yeaftDebugHistoryInFlightKey=null;let c=Array.isArray(t?.turns)?t.turns:[],l=t?.search?Mk:Tk,d=i?c:c.slice(-l),u=new Set(d.map(C=>C?.turnId).filter(Boolean)),p=Fk(Array.isArray(t?.loops)?t.loops:[]),g=i?p:p.filter(C=>!C?.turnId||u.has(C.turnId));e.yeaftDebugHistoryHasMore=!!t?.hasMore||!i&&c.length>d.length,!t?.detailTurnId&&Number.isFinite(t?.limit)&&t.limit>0&&(e.yeaftDebugHistoryLimit=Math.min(l,t.limit)),(!e.yeaftDebugTurnsById||typeof e.yeaftDebugTurnsById!="object")&&(e.yeaftDebugTurnsById={}),Array.isArray(e.yeaftDebugLoops)||(e.yeaftDebugLoops=[]),Array.isArray(e.yeaftDebugTurnOrder)||(e.yeaftDebugTurnOrder=[]);let f=i?{...e.yeaftDebugTurnsById}:{};for(let C of d){let R=C?.turnId;if(!R)continue;let W=f[R];if(W){let B=C?.detailsLoaded?{...W,...C}:{...C,...W};B.memoryLoaded==null&&W.memoryLoaded!=null&&(B.memoryLoaded=W.memoryLoaded),B.memoryAdjust==null&&W.memoryAdjust!=null&&(B.memoryAdjust=W.memoryAdjust),f[R]=B}else f[R]=C}e.yeaftDebugTurnsById=f;let v=C=>C?.loopInstanceId||`${C?.turnId||""}#${C?.loopNumber||0}`,h=e.yeaftDebugLoops,b=new Map;for(let C of h)C&&b.set(v(C),C);let m=new Set,k=[];for(let C of g){if(!C)continue;let R=v(C);m.add(R);let W=b.get(R);k.push(i?{...W||{},...C}:W||C)}if(i)for(let C of h)!C||m.has(v(C))||k.push(C);e.yeaftDebugLoops=k;let w=new Set,y=[],S=C=>{!C||w.has(C)||(w.add(C),y.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?y:y.slice(-l),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){Ek(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(l=>t.message?.includes(l));if((t.message?.includes("Agent is still syncing")||t.message?.includes("Agent not found"))&&vs(e),["No conversation selected","Agent is still syncing","No agent available"].some(l=>t.message?.includes(l))&&n&&(delete e.processingConversations[n],We(e,n),e.finishStreamingForConversation(n)),r&&n){let l=e.messagesMap[n];if(l&&l.length>0)for(let d=l.length-1;d>=0&&d>=l.length-5;d--){let u=l[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 g=p.findIndex(f=>f.id===u.id);g>=0&&p.splice(g,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 c=null;if(r&&n){let l=e.messagesMap[n];l&&l.length>0&&(c=l[l.length-1])}if(r&&n&&c){let l=n,d="err_"+o;c._sysErrRemoveTimer=setTimeout(()=>{let u=e.messagesMap[l];if(u){let p=u.findIndex(g=>g.id===d);p>=0&&u.splice(p,1)}},5e3)}!r&&n&&(delete e.processingConversations[n],We(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":zp(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":Gp(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,c=t.agentId?e.currentAgent===t.agentId&&(i===a||r===a):r===a;a&&c&&(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"){We(e,n),$p(e,n);break}if(t.status==="ok")e.sessionHealth?.[n]&&delete e.sessionHealth[n],!t.isProcessing&&e.processingConversations[n]&&(delete e.processingConversations[n],We(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],We(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||xk(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":{let n={plugins:t.plugins&&typeof t.plugins=="object"?t.plugins:{},error:t.error||null,loaded:!0,at:Date.now()};t.agentId&&(e.pluginConfigByAgent={...e.pluginConfigByAgent,[t.agentId]:n});let r=t.requestId?e._pluginPending?.[t.requestId]:null;r&&(clearTimeout(r.timer),delete e._pluginPending[t.requestId],r.resolve(n));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":{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 Tk,Mk,Pk,Rk,mg,cc,wg=N(()=>{rc();Ft();wo();ms();an();$n();oc();Ho();hg();Vo();Tk=1,Mk=5,Pk=500,Rk=512*1024,mg=3e4,cc=new WeakMap});function Sg(){return Object.values(kg).sort((t,s)=>t.order-s.order).map(t=>({teamId:t.id,team:t,roles:Object.values(ls).filter(s=>s.group===t.id)}))}function Cg(e){let t=[];for(let s of Object.values(ls)){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 Hn(e,t){let s=ls[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 dc(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(c=>!ls[c.role]&&t.some(l=>l.id===c.role)))return null;if(e.length===1){let{role:c,action:l}=e[0],d=t.find(p=>p.id===c);if(!d)return null;let u;if(l&&d.actions){let p=d.actions.find(g=>g.id===l);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:c,action:l}of e){let d=t.find(p=>p.id===c),u=ls[c];if(d)if(l){let p=d.actions?.find(g=>g.id===l);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
|
---
|
|
5
5
|
|
|
6
6
|
`)+(s||"")}}function Ag(e){return Object.values(kg).filter(t=>e||!t.adminOnly).sort((t,s)=>t.order-s.order)}var kg,ls,Ig,Wn,Si=N(()=>{kg={dev:{id:"dev",name:"\u8F6F\u4EF6\u5F00\u53D1",nameEn:"Software Dev",icon:"\u{1F5A5}\uFE0F",order:0},trading:{id:"trading",name:"\u4EA4\u6613",nameEn:"Trading",icon:"\u{1F4C8}",order:1,adminOnly:!0},writing:{id:"writing",name:"\u5199\u4F5C",nameEn:"Writing",icon:"\u270D\uFE0F",order:2,adminOnly:!0},video:{id:"video",name:"\u89C6\u9891",nameEn:"Video",icon:"\u{1F3AC}",order:3,adminOnly:!0}},ls={jobs:{id:"jobs",name:"Jobs",fullName:"Steve Jobs",title:"\u4EA7\u54C1\u7ECF\u7406",titleEn:"Product Manager",group:"dev",actions:[{id:"product-analysis",name:"\u4EA7\u54C1\u5206\u6790",nameEn:"Product Analysis"},{id:"design-review",name:"\u8BBE\u8BA1\u5BA1\u67E5",nameEn:"Design Review"},{id:"requirements",name:"\u9700\u6C42\u62C6\u89E3",nameEn:"Requirements"}]},fowler:{id:"fowler",name:"Fowler",fullName:"Martin Fowler",title:"\u8F6F\u4EF6\u67B6\u6784\u5E08",titleEn:"Software Architect",group:"dev",actions:[{id:"architecture",name:"\u67B6\u6784\u5BA1\u67E5",nameEn:"Architecture Review"},{id:"refactoring",name:"\u91CD\u6784\u5206\u6790",nameEn:"Refactoring"},{id:"code-review",name:"\u4EE3\u7801\u5BA1\u67E5",nameEn:"Code Review"}]},torvalds:{id:"torvalds",name:"Torvalds",fullName:"Linus Torvalds",title:"\u7CFB\u7EDF\u5F00\u53D1\u5DE5\u7A0B\u5E08",titleEn:"Systems Engineer",group:"dev",actions:[{id:"system-design",name:"\u7CFB\u7EDF\u8BBE\u8BA1",nameEn:"System Design"},{id:"performance",name:"\u6027\u80FD\u4F18\u5316",nameEn:"Performance"},{id:"code-style",name:"\u4EE3\u7801\u98CE\u683C",nameEn:"Code Style"},{id:"implementation",name:"\u4EE3\u7801\u5B9E\u73B0",nameEn:"Implementation"}]},beck:{id:"beck",name:"Beck",fullName:"Kent Beck",title:"\u6D4B\u8BD5\u5DE5\u7A0B\u5E08",titleEn:"Test Engineer",group:"dev",actions:[{id:"test-strategy",name:"\u6D4B\u8BD5\u7B56\u7565",nameEn:"Test Strategy"},{id:"tdd-guide",name:"TDD \u6307\u5BFC",nameEn:"TDD Guide"},{id:"quality-check",name:"\u8D28\u91CF\u8BC4\u4F30",nameEn:"Quality Check"}]},schneier:{id:"schneier",name:"Schneier",fullName:"Bruce Schneier",title:"\u5B89\u5168\u5DE5\u7A0B\u5E08",titleEn:"Security Engineer",group:"dev",actions:[{id:"security-audit",name:"\u5B89\u5168\u5BA1\u8BA1",nameEn:"Security Audit"},{id:"threat-model",name:"\u5A01\u80C1\u5EFA\u6A21",nameEn:"Threat Model"},{id:"auth-review",name:"\u8BA4\u8BC1\u5BA1\u67E5",nameEn:"Auth Review"}]},rams:{id:"rams",name:"Rams",fullName:"Dieter Rams",title:"UI/UX \u8BBE\u8BA1\u5E08",titleEn:"UI/UX Designer",group:"dev",actions:[{id:"ui-review",name:"\u754C\u9762\u5BA1\u67E5",nameEn:"UI Review"},{id:"interaction",name:"\u4EA4\u4E92\u8BBE\u8BA1",nameEn:"Interaction Design"},{id:"layout",name:"\u5E03\u5C40\u4F18\u5316",nameEn:"Layout Optimization"}]},graham:{id:"graham",name:"Graham",fullName:"Paul Graham",title:"\u6280\u672F\u5199\u4F5C / \u65B9\u6848\u8BC4\u4F30\u5E08",titleEn:"Tech Writer / Evaluator",group:"dev",actions:[{id:"writing",name:"\u6280\u672F\u5199\u4F5C",nameEn:"Tech Writing"},{id:"proposal-review",name:"\u65B9\u6848\u8BC4\u4F30",nameEn:"Proposal Review"},{id:"explain",name:"\u6982\u5FF5\u89E3\u91CA",nameEn:"Explain"}]},hightower:{id:"hightower",name:"Hightower",fullName:"Kelsey Hightower",title:"DevOps / \u8FD0\u7EF4\u5DE5\u7A0B\u5E08",titleEn:"DevOps Engineer",group:"dev",actions:[{id:"deployment",name:"\u90E8\u7F72\u5BA1\u67E5",nameEn:"Deployment Review"},{id:"cicd",name:"CI/CD \u8BC4\u4F30",nameEn:"CI/CD Review"},{id:"infra",name:"\u57FA\u7840\u8BBE\u65BD",nameEn:"Infrastructure"}]},gregg:{id:"gregg",name:"Gregg",fullName:"Brendan Gregg",title:"\u6027\u80FD\u5DE5\u7A0B\u5E08",titleEn:"Performance Engineer",group:"dev",actions:[{id:"perf-analysis",name:"\u6027\u80FD\u5206\u6790",nameEn:"Perf Analysis"},{id:"tuning",name:"\u7CFB\u7EDF\u8C03\u4F18",nameEn:"Tuning"},{id:"benchmark",name:"\u57FA\u51C6\u6D4B\u8BD5",nameEn:"Benchmark"}]},codd:{id:"codd",name:"Codd",fullName:"Edgar Codd",title:"\u6570\u636E\u5E93 / SQL \u4E13\u5BB6",titleEn:"Database / SQL Expert",group:"dev",actions:[{id:"sql-optimization",name:"SQL \u4F18\u5316",nameEn:"SQL Optimization"},{id:"schema-design",name:"Schema \u8BBE\u8BA1",nameEn:"Schema Design"},{id:"data-modeling",name:"\u6570\u636E\u5EFA\u6A21",nameEn:"Data Modeling"}]},knuth:{id:"knuth",name:"Knuth",fullName:"Donald Knuth",title:"\u7B97\u6CD5 / \u6570\u636E\u5904\u7406\u4E13\u5BB6",titleEn:"Algorithm Expert",group:"dev",actions:[{id:"algorithm-design",name:"\u7B97\u6CD5\u8BBE\u8BA1",nameEn:"Algorithm Design"},{id:"data-processing",name:"\u6570\u636E\u5904\u7406",nameEn:"Data Processing"},{id:"optimization",name:"\u4F18\u5316",nameEn:"Optimization"}]},thomas:{id:"thomas",name:"Thomas",fullName:"Dave Thomas",title:"\u6280\u672F\u6587\u6863\u5DE5\u7A0B\u5E08",titleEn:"Tech Doc Engineer",group:"dev",actions:[{id:"api-docs",name:"API \u6587\u6863",nameEn:"API Docs"},{id:"readme",name:"README",nameEn:"README"},{id:"comment-review",name:"\u6CE8\u91CA\u5BA1\u67E5",nameEn:"Comment Review"}]},soros:{id:"soros",name:"Soros",fullName:"George Soros",title:"\u5B8F\u89C2\u7B56\u7565\u5E08",titleEn:"Macro Strategist",group:"trading",actions:[{id:"macro-analysis",name:"\u5B8F\u89C2\u5206\u6790",nameEn:"Macro Analysis"},{id:"risk-assessment",name:"\u98CE\u9669\u8BC4\u4F30",nameEn:"Risk Assessment"},{id:"thesis-review",name:"\u8BBA\u70B9\u5BA1\u67E5",nameEn:"Thesis Review"}]},livermore:{id:"livermore",name:"Livermore",fullName:"Jesse Livermore",title:"\u6280\u672F\u5206\u6790\u5E08",titleEn:"Technical Analyst",group:"trading",actions:[{id:"price-action",name:"\u4EF7\u683C\u884C\u4E3A",nameEn:"Price Action"},{id:"pattern-recognition",name:"\u56FE\u5F62\u8BC6\u522B",nameEn:"Pattern Recognition"},{id:"trade-plan",name:"\u4EA4\u6613\u8BA1\u5212",nameEn:"Trade Plan"}]},dalio:{id:"dalio",name:"Dalio",fullName:"Ray Dalio",title:"\u7814\u7A76\u5458 / \u7ECF\u6D4E\u5206\u6790\u5E08",titleEn:"Research / Economist",group:"trading",actions:[{id:"economic-analysis",name:"\u7ECF\u6D4E\u5206\u6790",nameEn:"Economic Analysis"},{id:"portfolio-review",name:"\u7EC4\u5408\u5BA1\u67E5",nameEn:"Portfolio Review"},{id:"research-report",name:"\u7814\u7A76\u62A5\u544A",nameEn:"Research Report"}]},taleb:{id:"taleb",name:"Taleb",fullName:"Nassim Taleb",title:"\u98CE\u63A7\u5B98",titleEn:"Risk Manager",group:"trading",actions:[{id:"risk-audit",name:"\u98CE\u9669\u5BA1\u8BA1",nameEn:"Risk Audit"},{id:"antifragile",name:"\u53CD\u8106\u5F31\u8BC4\u4F30",nameEn:"Antifragile Assessment"},{id:"stress-test",name:"\u538B\u529B\u6D4B\u8BD5",nameEn:"Stress Test"}]},jones:{id:"jones",name:"Jones",fullName:"Paul Tudor Jones",title:"\u4EA4\u6613\u6267\u884C\u5458",titleEn:"Trade Executor",group:"trading",actions:[{id:"execution",name:"\u6267\u884C\u8BA1\u5212",nameEn:"Execution Plan"},{id:"position-sizing",name:"\u4ED3\u4F4D\u8BA1\u7B97",nameEn:"Position Sizing"},{id:"trade-review",name:"\u4EA4\u6613\u590D\u76D8",nameEn:"Trade Review"}]},simons:{id:"simons",name:"Simons",fullName:"Jim Simons",title:"\u91CF\u5316\u5206\u6790\u5E08",titleEn:"Quant Analyst",group:"trading",actions:[{id:"quant-signal",name:"\u91CF\u5316\u4FE1\u53F7",nameEn:"Quant Signal"},{id:"backtest-review",name:"\u56DE\u6D4B\u5BA1\u67E5",nameEn:"Backtest Review"},{id:"model-design",name:"\u6A21\u578B\u8BBE\u8BA1",nameEn:"Model Design"}]},jinyong:{id:"jinyong",name:"\u91D1\u5EB8",fullName:"\u91D1\u5EB8\uFF08Louis Cha\uFF09",title:"\u6B66\u4FA0\u5927\u5E08",titleEn:"Wuxia Master",group:"writing",actions:[{id:"world-building",name:"\u6B66\u4FA0\u4E16\u754C\u89C2",nameEn:"Wuxia World Building"},{id:"character-design",name:"\u4EBA\u7269\u5851\u9020",nameEn:"Character Design"},{id:"plot-design",name:"\u60C5\u8282\u7F16\u6392",nameEn:"Plot Design"}]},zhouzi:{id:"zhouzi",name:"\u8098\u5B50",fullName:"\u4F1A\u8BF4\u8BDD\u7684\u8098\u5B50",title:"\u7F51\u6587\u5929\u738B",titleEn:"Web Novel King",group:"writing",actions:[{id:"cool-factor",name:"\u723D\u611F\u8BBE\u8BA1",nameEn:"Cool Factor Design"},{id:"pacing",name:"\u8282\u594F\u628A\u63A7",nameEn:"Pacing Control"},{id:"cheat-design",name:"\u91D1\u624B\u6307\u8BBE\u8BA1",nameEn:"Cheat System Design"}]},qiongyao:{id:"qiongyao",name:"\u743C\u7476",fullName:"\u743C\u7476\uFF08Chiung Yao\uFF09",title:"\u8A00\u60C5\u5B97\u5E08",titleEn:"Romance Master",group:"writing",actions:[{id:"emotion-writing",name:"\u60C5\u611F\u63CF\u5199",nameEn:"Emotion Writing"},{id:"dialogue-design",name:"\u5BF9\u8BDD\u8BBE\u8BA1",nameEn:"Dialogue Design"},{id:"romance-arc",name:"\u8650\u604B\u67B6\u6784",nameEn:"Romance Arc"}]},luxun:{id:"luxun",name:"\u9C81\u8FC5",fullName:"\u9C81\u8FC5\uFF08Lu Xun\uFF09",title:"\u6587\u5B66\u5DE8\u5320",titleEn:"Literary Giant",group:"writing",actions:[{id:"satire",name:"\u8BBD\u523A\u5199\u4F5C",nameEn:"Satirical Writing"},{id:"character-sketch",name:"\u4EBA\u7269\u523B\u753B",nameEn:"Character Sketch"},{id:"prose-craft",name:"\u6587\u7B14\u9524\u70BC",nameEn:"Prose Craft"}]},kubrick:{id:"kubrick",name:"Kubrick",fullName:"Stanley Kubrick",title:"\u5BFC\u6F14 / \u89C6\u89C9\u603B\u76D1",titleEn:"Director / Visual Director",group:"video",actions:[{id:"narrative-pacing",name:"\u53D9\u4E8B\u8282\u594F",nameEn:"Narrative Pacing"},{id:"visual-concept",name:"\u89C6\u89C9\u6982\u5FF5",nameEn:"Visual Concept"},{id:"scene-breakdown",name:"\u573A\u666F\u62C6\u89E3",nameEn:"Scene Breakdown"}]},kaufman:{id:"kaufman",name:"Kaufman",fullName:"Charlie Kaufman",title:"\u7F16\u5267",titleEn:"Screenwriter",group:"video",actions:[{id:"script-writing",name:"\u811A\u672C\u5199\u4F5C",nameEn:"Script Writing"},{id:"character-design",name:"\u89D2\u8272\u8BBE\u8BA1",nameEn:"Character Design"},{id:"narrative-structure",name:"\u53D9\u4E8B\u7ED3\u6784",nameEn:"Narrative Structure"}]},spielberg:{id:"spielberg",name:"Spielberg",fullName:"Steven Spielberg",title:"\u5206\u955C / \u89C6\u89C9\u53D9\u4E8B\u5E08",titleEn:"Storyboard / Visual Storyteller",group:"video",actions:[{id:"storyboard",name:"\u5206\u955C\u8BBE\u8BA1",nameEn:"Storyboard"},{id:"shot-design",name:"\u955C\u5934\u65B9\u6848",nameEn:"Shot Design"},{id:"visual-storytelling",name:"\u89C6\u89C9\u53D9\u4E8B",nameEn:"Visual Storytelling"}]},schoonmaker:{id:"schoonmaker",name:"Schoonmaker",fullName:"Thelma Schoonmaker",title:"\u526A\u8F91\u5E08",titleEn:"Editor",group:"video",actions:[{id:"editing-rhythm",name:"\u526A\u8F91\u8282\u594F",nameEn:"Editing Rhythm"},{id:"sequence-design",name:"\u5E8F\u5217\u8BBE\u8BA1",nameEn:"Sequence Design"},{id:"final-cut",name:"\u6700\u7EC8\u5BA1\u7247",nameEn:"Final Cut"}]}};Ig="dev",Wn=3});function qk(e,t){return!t||!e?.yeaftConversationIdsByAgent?[]:Object.entries(e.yeaftConversationIdsByAgent).filter(([,s])=>s===t).map(([s])=>s).filter(Boolean)}function xg(){return`cm_${crypto.randomUUID()}`}function Tg(e,t){if(t===e.currentAgent&&!e.pendingAgentSelection)return;let s=`agent_select_${crypto.randomUUID()}`;return e.agentSwitching=!0,e.pendingAgentSelection={agentId:t,requestId:s},e.sendWsMessage({type:"select_agent",agentId:t,requestId:s})===!1?(e.pendingAgentSelection=null,e.agentSwitching=!1,null):s}function Mg(e,t,s=null,n=null,r={}){let i=s||e.currentAgent;if(!i){e.addMessage({type:"error",content:Be("chat.agent.selectFirst")});return}dr(e,!0,Be("chat.session.creating"));let o={type:"create_conversation",agentId:i,workDir:t||e.currentAgentWorkDir};n!==null&&(o.disallowedTools=n),r&&typeof r.provider=="string"&&(o.provider=r.provider),r&&r.providerOptions&&typeof r.providerOptions=="object"&&(o.providerOptions=r.providerOptions),e.sendWsMessage(o)}function Pg(e,t,s,n=null,r=null,i=null){let o=n||e.currentAgent;if(!o){e.addMessage({type:"error",content:Be("chat.agent.selectFirst")});return}let a=null,c={};r&&typeof r=="object"&&!Array.isArray(r)?c=r:(a=r,i&&typeof i=="object"&&(c=i));let l=En(c.provider),d=(e.conversations||[]).find(g=>g.type!=="yeaft"&&g.agentId===o&&En(g.provider)===l&&g.claudeSessionId===t),u=d&&(e.hiddenSessionCatalog||[]).find(g=>g.routeRef?.agentId===o&&g.routeRef?.runtimeProvider===l&&g.routeRef?.sessionId===d.id);if(u&&e.restoreCatalogSession(u)!==!0)return;dr(e,!0,Be("chat.session.loadingHistory"));let p={type:"resume_conversation",agentId:o,...d?{conversationId:d.id}:{},claudeSessionId:t,workDir:s||e.currentAgentWorkDir};a!==null&&(p.disallowedTools=a),typeof c.provider=="string"&&(p.provider=c.provider),c.providerOptions&&typeof c.providerOptions=="object"&&(p.providerOptions=c.providerOptions),e.sendWsMessage(p)}function Rg(e,t,s,{refresh:n=!1}={}){if(e.panels.length>1){let a=e.activePanelId||e.panels[0]?.id;a&&e.setPanelConversation(a,t,{refresh:n});return}if(t===e.currentConversation){n&&(e.syncChatConversationHistory?.(t),Dn(e));return}let r=e.conversations.find(a=>a.id===t&&a.type!=="yeaft");if(r&&r.agentId&&r.agentId!==e.currentAgent){let a=e.agents.find(c=>c.id===r.agentId);a&&(e.currentAgent=r.agentId,e.currentAgentInfo=a,e.sendWsMessage({type:"select_agent",agentId:r.agentId,silent:!0}))}e.sendWsMessage({type:"select_conversation",conversationId:t}),e.panels.length>1?e.activeConversations.includes(t)||e.activeConversations.push(t):e.activeConversations=[t],r&&(e.currentWorkDir=r.workDir);let i=e.messagesMap[t];(!i||i.length===0)&&(e.messagesMap[t]=[],dr(e,!0,Be("chat.session.loadingHistory"))),e.syncChatConversationHistory?.(t),e.loadingMoreMessages=!1;let o=e.chatSessionState[t];e.hasMoreMessages=!!o?.hasMoreOlder,Dn(e)}function uc(e,t,s){t&&e.sendWsMessage({type:"update_conversation_settings",conversationId:t,...s})}function _g(e,t,s){let n=e.currentConversation;if(!n)return;let r=e.conversationMcpServers[n];if(r){let p=r.find(g=>g.name===t);p&&(p.enabled=s)}let i=e.conversationMcpServers[n]||[],o=e.conversationMcpServerTools[n]||{},a=[];for(let p of i)if(!p.enabled){let g=o[p.name];g&&g.length>0?a.push(...g):a.push(`mcp__${p.name}`)}let u=[...(e.conversations.find(p=>p.id===n)?.disallowedTools||[]).filter(p=>!p.startsWith("mcp__")),...a];uc(e,n,{disallowedTools:u})}function Eg(e,t,s){return t?e.sendWsMessage({type:"delete_conversation",requestId:`delete_${crypto.randomUUID()}`,conversationId:t,...s?{agentId:s}:{}}):!1}function Dg(e,t,s){e._recentlyDeletedSessions||(e._recentlyDeletedSessions={}),e._recentlyDeletedSessions[t]=Date.now(),e.conversations=e.conversations.filter(i=>i.id!==t);let n=e.activeConversations.indexOf(t);n>=0&&(e.activeConversations.splice(n,1),e.activeConversations.length===0&&(localStorage.removeItem("lastViewedConversation"),e.lastViewedConversation=null));for(let i of e.panels)i.conversationId===t&&(i.conversationId=null);let r=e.pinnedSessions.indexOf(t);r>=0&&(e.pinnedSessions.splice(r,1),localStorage.setItem("pinned-sessions",JSON.stringify(e.pinnedSessions))),e.sendWsMessage({type:"delete_conversation",requestId:`delete_${crypto.randomUUID()}`,conversationId:t,...s?{agentId:s}:{}})}function $g(e,t,s=[],n={}){let r=n.expertSelections&&n.expertSelections.length>0;if(!t.trim()&&s.length===0&&!r||!e.currentAgent||!e.currentConversation)return;let i=xg();if(e.addMessage({type:"user",content:t,clientMessageId:i,attachments:s.length>0?s:void 0,expertSelections:r?n.expertSelections:void 0}),t.trim()){let l=t.trim().substring(0,100);e.conversationTitles[e.currentConversation]=l}else if(r){let l=n.expertSelections[0],d=`@${l.role}${l.action?"\xB7"+l.action:""}`;e.conversationTitles[e.currentConversation]=d}let o=e.conversations.find(l=>l.id===e.currentConversation);o&&(o.lastMessageAt=Date.now()),e.processingConversations[e.currentConversation]||(e.processingConversations[e.currentConversation]=!0,e._closedAt?.[e.currentConversation]&&delete e._closedAt[e.currentConversation],e._turnCompletedConvs?.delete(e.currentConversation),e.getOrCreateExecutionStatus(e.currentConversation),fr(e,e.currentConversation));let a=s.map(l=>l.fileId),c={type:"chat",conversationId:e.currentConversation,prompt:t,fileIds:a,workDir:e.currentWorkDir,clientMessageId:i};if(n.targetRole&&(c.targetRole=n.targetRole),r){c.expertSelections=n.expertSelections;let l=dc(n.expertSelections,e.customExpertRoles,t,e.language||"zh-CN");l&&(c.expertMessage=l.effectivePrompt)}e.sendWsMessage(c)||ai(e).then(()=>{e.sendWsMessage(c)}).catch(()=>{e.addMessage({type:"system",content:Be("chat.connection.reconnectFailed")}),delete e.processingConversations[e.currentConversation],We(e,e.currentConversation)})}function Lg(e){if(!e.currentConversation||!e.processingConversations[e.currentConversation])return;let t=e.currentConversation;e.sendWsMessage({type:"cancel_execution",conversationId:t}),delete e.processingConversations[t],We(e,t),e._closedAt||(e._closedAt={}),e._closedAt[t]=Date.now();let s=e.executionStatusMap[t];s&&(s.currentTool=null),e.finishStreamingForConversation(t),cn(e,t),e.addMessage({type:"system",content:Be("chat.execution.cancelled")})}function Og(e,t,s,n){let r=n||e.currentConversation,o=(e.messagesMap[r]||[]).find(f=>f.type==="tool-use"&&f.toolName==="AskUserQuestion"&&f.askRequestId===t),a=e.currentView==="yeaft"||!!o?.sessionId;if(a&&(!o||o.askAnswered||o.askExpired)||a&&o.askPending&&Date.now()-(o.askSubmittedAt||0)<15e3)return!1;let c=o?.sessionId||e.yeaftActiveSessionFilter||null,l=typeof o?.agentId=="string"&&o.agentId?o.agentId:null,d=a?qk(e,r):[],u=d.length===1?d[0]:null;if(l&&u&&l!==u)return!1;let p=a&&!l&&!u&&typeof e.agentIdForSession=="function"?e.agentIdForSession(c):null,g=e.sendWsMessage(a?{type:"yeaft_ask_user_answer",agentId:l||u||p||e.yeaftAgentId||e.currentAgent||null,conversationId:r,requestId:t,toolCallId:o?.toolId||null,answers:s,sessionId:c,vpId:o?.vpId||o?.speakerVpId||null,turnId:o?.turnId||null,threadId:o?.threadId||"main"}:{type:"ask_user_answer",conversationId:r,requestId:t,answers:s});o&&!a?(o.askAnswered=!0,o.selectedAnswers=s):o&&g!==!1?(o.askPending=!0,o.pendingAnswers=s,o.askSubmittedAt=Date.now(),o.askError=null):o&&(o.askError="send_failed"),!a&&g!==!1&&r&&!e.processingConversations[r]&&(e.processingConversations[r]=!0,e._closedAt?.[r]&&delete e._closedAt[r],e.getOrCreateExecutionStatus(r))}function Fg(e,t){t&&(e.activeConversations.includes(t)||e.activeConversations.length>=3||(e.activeConversations.push(t),e.messagesMap[t]||(e.messagesMap[t]=[],e.requestChatHistory?.(t,{mode:"recent",turns:5})),Dn(e)))}function Vg(e,t){let s=e.activeConversations.indexOf(t);s<0||(e.activeConversations.splice(s,1),e.activeConversations.length===0&&(localStorage.removeItem("lastViewedConversation"),e.lastViewedConversation=null),Dn(e))}function qg(e,t,s,n=[],r={}){let i=r.expertSelections&&r.expertSelections.length>0;if(!s.trim()&&n.length===0&&!i||!e.currentAgent||!t)return;let o=xg();if(e.addMessageToConversation(t,{type:"user",content:s,clientMessageId:o,attachments:n.length>0?n:void 0,expertSelections:i?r.expertSelections:void 0}),s.trim()){let d=s.trim().substring(0,100);e.conversationTitles[t]=d}else if(i){let d=r.expertSelections[0],u=`@${d.role}${d.action?"\xB7"+d.action:""}`;e.conversationTitles[t]=u}let a=e.conversations.find(d=>d.id===t);a&&(a.lastMessageAt=Date.now()),e.processingConversations[t]||(e.processingConversations[t]=!0,e._closedAt?.[t]&&delete e._closedAt[t],e._turnCompletedConvs?.delete(t),e.getOrCreateExecutionStatus(t),fr(e,t));let c=n.map(d=>d.fileId),l={type:"chat",conversationId:t,prompt:s,fileIds:c,workDir:a?.workDir||e.currentWorkDir,clientMessageId:o};if(r.targetRole&&(l.targetRole=r.targetRole),i){l.expertSelections=r.expertSelections;let d=dc(r.expertSelections,e.customExpertRoles,s,e.language||"zh-CN");d&&(l.expertMessage=d.effectivePrompt)}e.sendWsMessage(l)||ai(e).then(()=>{e.sendWsMessage(l)}).catch(()=>{e.addMessageToConversation(t,{type:"system",content:Be("chat.connection.reconnectFailed")}),delete e.processingConversations[t],We(e,t)})}function Bg(e,t){if(!t||!e.processingConversations[t])return;e.sendWsMessage({type:"cancel_execution",conversationId:t}),delete e.processingConversations[t],We(e,t),e._closedAt||(e._closedAt={}),e._closedAt[t]=Date.now();let s=e.executionStatusMap[t];s&&(s.currentTool=null),e.finishStreamingForConversation(t),cn(e,t),e.addMessageToConversation(t,{type:"system",content:Be("chat.execution.cancelled")})}function Ng(e){e.ws&&e.ws.readyState===WebSocket.OPEN&&(typeof e.requestYeaftSessionInventory=="function"?e.requestYeaftSessionInventory():e.sendWsMessage({type:"get_agents"}))}function Hg(e){!e.currentAgent||!e.currentConversation||e.sendWsMessage({type:"refresh_conversation",conversationId:e.currentConversation})}var Wg=N(()=>{an();$n();Rl();Vo();ms();Si();Ao()});function Nk(e=globalThis.localStorage){try{return e?.getItem(jg)==="yeaft"?"yeaft":Ug}catch{return Ug}}function pc(e,t=globalThis.localStorage){if(e!=="chat"&&e!=="yeaft")return!1;try{return t?.setItem(jg,e),!!t}catch{return!1}}function Kg(e=globalThis.localStorage){let t=Nk(e);if(t!=="yeaft")return{currentView:t,_yeaftTransitionActive:!1,_savedActiveConversations:null,_savedChatIdentity:null,_pendingChatRestoreConversationId:null};let s=null;try{s=e?.getItem("lastViewedConversation")||null}catch{}let n=s&&!s.startsWith("yeaft-")?s:null;return{currentView:t,_yeaftTransitionActive:!0,_savedActiveConversations:null,_savedChatIdentity:null,_pendingChatRestoreConversationId:n}}function gc(e){return e._yeaftTransitionActive?!1:(e._savedActiveConversations=[...e.activeConversations],e._savedChatIdentity={agentId:e.currentAgent||null,agentInfo:e.currentAgentInfo?{...e.currentAgentInfo}:null,workDir:e.currentWorkDir||null},e._yeaftTransitionActive=!0,!0)}function zg(e){let t=gc(e);return e.activeConversations=[e.yeaftConversationId],t}function Gg(e){if(!e._yeaftTransitionActive)return null;let t=e._savedChatIdentity||null;return e.activeConversations=e._savedActiveConversations||[],t&&(e.currentAgent=t.agentId,e.currentAgentInfo=t.agentInfo,e.currentWorkDir=t.workDir),e._savedActiveConversations=null,e._savedChatIdentity=null,e._yeaftTransitionActive=!1,t}var jg,Ug,Yg=N(()=>{jg="yeaft-preferred-conversation-view",Ug="chat"});function Qg(e,t,s){let n={...e||{}},r={...n[t]||{}};return r[s]=(r[s]||0)+1,n[t]=r,n}function Xg(e,t,s){let n={...e||{}},r={...n[t]||{}},i=(r[s]||0)-1;return i<=0?delete r[s]:r[s]=i,Object.keys(r).length===0?delete n[t]:n[t]=r,n}var Zg=N(()=>{});function Wo(e){return e.currentView==="yeaft"?e.yeaftConversationId||null:e.activeConversations[0]||null}var Jg=N(()=>{});function ef({loops:e,turnsById:t,turnOrder:s,maxLoops:n}){if(!Array.isArray(e)||e.length<=n)return{loops:e,turnsById:t,turnOrder:s};let r=e.length-n,i=e.slice(r),o=new Set;for(let l of i)l&&l.turnId&&o.add(l.turnId);for(let l of s){let d=t[l];d&&d.closedAt==null&&o.add(l)}let a={};for(let l of Object.keys(t))o.has(l)&&(a[l]=t[l]);let c=s.filter(l=>o.has(l));return{loops:i,turnsById:a,turnOrder:c}}var tf=N(()=>{});function ze(e){let t=Number(e);return Number.isFinite(t)?t:null}function Ut(e){let t=ze(e);return Number.isInteger(t)&&t>0?t:null}function fc(e){let t=ze(e);return Number.isInteger(t)&&t>=0?t:null}function sf(e){return Wk.has(e)?1:0}function Uk(e,t){if(!e)return t||null;if(!t)return e;let s=ze(e.progressRevision),n=ze(t.progressRevision);if(s!=null||n!=null){if(s==null)return t;if(n==null)return e;if(s!==n)return n>s?t:e}let r=sf(e.status),i=sf(t.status);if(r!==i)return i>r?t:e;let o=ze(e.updatedAt)??ze(e.createdAt)??0;return(ze(t.updatedAt)??ze(t.createdAt)??0)>o?t:e}function Sr(e){return Math.max(0,Number(e)||0)}function nf(e){return typeof e?.id=="string"&&e.id.startsWith("event:")?e.id.slice(6):null}function jk(e,t){if(/^\d+$/.test(e)&&/^\d+$/.test(t)){let s=BigInt(e),n=BigInt(t);return s<n?-1:s>n?1:0}return e.localeCompare(t)}function Kk(e,t){let s=Sr(e?.createdAt)-Sr(t?.createdAt);if(s)return s;let n=nf(e),r=nf(t);if(n!=null&&r!=null)return jk(n,r);let i=e?.role==="user"?0:1,o=t?.role==="user"?0:1;if(i!==o)return i-o;let a=Sr(e?.generation)-Sr(t?.generation);return a||Sr(e?.attempt)-Sr(t?.attempt)||String(e?.id||"").localeCompare(String(t?.id||""))}function Ii(...e){let t=new Map;for(let s of e){let n=Array.isArray(s)?s:[s];for(let r of n)r?.id&&t.set(r.id,Uk(t.get(r.id),r))}return[...t.values()].sort(Kk)}function jt(e){let t=Number(e);return Number.isInteger(t)&&t>0?t:1}function Cr(e,t,s,n){return`${e}:${t}:${s}:${jt(n)}`}function hc(e,t,s,n){return`${e}:${t}:${s}:${jt(n)}`}function Ko(e,t){let s=Ut(e?.dataRevision),n=Ut(t?.dataRevision);if(s!=null||n!=null)return s==null?-1:n==null?1:Math.sign(s-n);let r=ze(e?.revision),i=ze(t?.revision);return r!=null&&i!=null?Math.sign(r-i):0}function rf(e){return["done","cancelled"].includes(e?.status)||["done","cancelled"].includes(e?.lifecycle)}function Ir(e,t){if(!e||!t||e.id!==t.id)return!1;if(zo(t,e)&&rf(t)&&!rf(e))return!0;let s=Ut(e.executionControl?.dataRevision)==null&&Ut(t.executionControl?.dataRevision)==null?Ko(e.executionControl,t.executionControl):0;if(s<0)return!0;let n=ze(e.revision),r=ze(t.revision);if(n!=null&&r!=null&&n!==r)return n<r;let i=ze(e.coordinatorRevision),o=ze(t.coordinatorRevision);if(i!=null&&o!=null&&i!==o)return i<o;if(s>0)return!1;let a=ze(e.updatedAt),c=ze(t.updatedAt);return a!=null&&c!=null&&a<c}function zk(e,t){return!e||!t||e.id!==t.id?!1:Ko(e.executionControl,t.executionControl)<0||Ir(e,t)}function Ci(e,t,s){let n=Ko(t.executionControl,e.executionControl),r=n>0||n===0&&s!==e&&t.executionControl?t.executionControl:e.executionControl,i=r===s.executionControl?s:{...s,executionControl:r};if(i.executionStats&&r?.usage){let o={...i.executionStats};for(let a of["llmRequestCount","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens"])Number.isFinite(r.usage[a])&&(o[a]=r.usage[a]);Object.keys(o).some(a=>o[a]!==i.executionStats[a])&&(i={...i,executionStats:o})}return i}function af(e,t){if(zk(e,t))return!0;if(!e||!t||e.id!==t.id)return!1;let s=ze(e.revision),n=ze(t.revision);return e.currentActionId!==t.currentActionId&&s!=null&&n!=null&&s<=n}function mc(e,t){let s=Ut(e?.generation),n=Ut(t?.generation);if(s!=null&&n!=null&&s!==n)return n<s;let r=fc(e?.attempt),i=fc(t?.attempt);if(r!=null&&i!=null&&r!==i)return i<r;let o=ze(e?.progressRevision),a=ze(t?.progressRevision);return o!=null&&a!=null&&a<o}function vc(e,t){if(!e||e.id!==t?.id||Ir(t,e))return null;let s=Array.isArray(e.actions)?e.actions:[],n=Array.isArray(t.actionStats)?t.actionStats:[],r=e.currentActionId||null,i=Object.prototype.hasOwnProperty.call(t,"currentActionId")?t.currentActionId||null:r,o=typeof t.eventActionId=="string"&&n.some(f=>f?.id===t.eventActionId)?t.eventActionId:null,a=o||r!==i&&r||i;if(!a)return null;let c=s.find(f=>f?.id===a)||null,l=n.find(f=>f?.id===a)||(t.currentAction?.id===a?t.currentAction:null);if(c&&l&&mc(c,l))return null;let d=Ut(c?.generation),u=Ut(l?.generation),p=fc(l?.attempt),g={actionId:a,generation:u||d||1,...p==null?{}:{attempt:p}};return o||r!==i||!c||d!=null&&u!=null&&u>d||c?.status==="running"&&l?.status&&l.status!=="running"?g:null}function lf(e,t){if(!e||e.id!==t?.id||Ir(t,e))return!1;let s=ze(t.coordinatorRevision),n=ze(e.coordinatorRevision)??0;return s!=null&&s>n?!0:vc(e,t)!=null}function cf(e,t){if(!e||e.id!==t?.id)return e;if(Ir(t,e)||bc(e,t,e.actions,t.actionStats))return Ci(e,t,e);let s={...e},n=!Array.isArray(e.actions)||!Array.isArray(t.actionStats);if(Array.isArray(e.actions)&&Array.isArray(t.actionStats)){let i=new Map(t.actionStats.map(a=>[a?.id,a])),o=!1;n=!0,s.actions=e.actions.map(a=>{let c=i.get(a?.id);if(!c)return a;if(o=!0,mc(a,c))return n=!1,a;if(ze(c?.progressRevision)==null){let{response:p,messages:g,...f}=c;return{...a,...f}}let d=Ut(a?.generation),u=Ut(c?.generation);if(d!=null&&u!=null&&u>d){let{messages:p,thread:g,liveMessage:f,response:v,failure:h,messageCursor:b,messageCount:m,failureReason:k,...w}=a;return{...w,...c}}return{...a,...c}}),o||(n=Number(t.coordinatorRevision)>Number(e.coordinatorRevision||0))}for(let i of of)!n&&Gk.has(i)||i!=="executionControl"&&Object.prototype.hasOwnProperty.call(t,i)&&(s[i]=t[i]);let r=n?t:e;return s.executionControl=Ci(e,t,r).executionControl,Ci(e,s,s)}function yc(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;let s=new Map(e.map(n=>[n?.id,n]));return t.some(n=>{let r=s.get(n?.id);return r?mc(r,n):!1})}function zo(e,t){return(Ut(e?.executionControl?.dataRevision)!=null||Ut(t?.executionControl?.dataRevision)!=null||ze(e?.executionControl?.revision)===ze(t?.executionControl?.revision))&&ze(e?.revision)===ze(t?.revision)&&ze(e?.coordinatorRevision)===ze(t?.coordinatorRevision)&&ze(e?.updatedAt)===ze(t?.updatedAt)}function bc(e,t,s,n){return Ko(t.executionControl,e.executionControl)<0&&zo(e,t)&&!yc(n,s)}function wc(e,t){if(!e||e.id!==t?.id)return t;let s=Ir(t,e)||bc(e,t,e.actions,t.actions)||zo(e,t)&&yc(e.actions,t.actions);return Ci(e,t,s?e:t)}function Vt(e,t){let s=Array.isArray(e)?e:[],n=s.find(i=>i.id===t?.id)||null,r=n&&Ir(t,n)?n:t;return n&&r===t&&(bc(n,t,n.actionStats,t.actionStats)||zo(n,t)&&yc(n.actionStats,t.actionStats))&&(r=n),r?.id?(n&&(r=Ci(n,t,r)),[r,...s.filter(i=>i.id!==r.id)].sort((i,o)=>Number(o.updatedAt||0)-Number(i.updatedAt||0))):s}function df(e){if(!e||["done","cancelled"].includes(e.status)||["done","cancelled"].includes(e.lifecycle))return[];let t=Array.isArray(e.actionStats)?e.actionStats:e.currentAction?.id?[e.currentAction]:[];return kc(t.filter(s=>["ready","running","waiting"].includes(s?.status)))}function uf(e){return jo(e?.updatedAt)||jo(e?.createdAt)}function Uo(e){return jo(e?.createdAt)||jo(e?.updatedAt)}function jo(e){let t=Number(e);return t>0&&Number.isFinite(new Date(t).getTime())?t:0}function kc(e){return[...e].sort((t,s)=>{let n=Uo(t),r=Uo(s);return n!==r?r-n:(Number(s?.sequence)||0)-(Number(t?.sequence)||0)})}function pf(e){if(!e?.id)return null;let t={id:e.id};for(let s of of)Object.hasOwn(e,s)&&(t[s]=e[s]);return Array.isArray(e.actions)?t.actionStats=e.actions.map(s=>Object.fromEntries(["id","generation","attempt","status","sequence","createdAt","updatedAt","assignedVp","contentSummary","progressRevision"].filter(n=>Object.hasOwn(s,n)).map(n=>[n,s[n]]))):Array.isArray(e.actionStats)&&(t.actionStats=e.actionStats),t}var of,Wk,Gk,Go=N(()=>{of=Object.freeze(["revision","planRevision","ledgerRevision","coordinatorRevision","title","goal","workItemType","planningMode","status","lifecycle","attentionState","activeActionIds","attentionActionIds","currentActionId","currentAction","executionStats","executionControl","failureReason","schedule","sourceScheduleId","scheduledOccurrenceAt","origin","linkedSessionIds","createdAt","updatedAt"]);Wk=new Set(["completed","failed","cancelled","superseded","interrupted"]);Gk=new Set(["status","lifecycle","attentionState","activeActionIds","attentionActionIds","currentActionId","currentAction","executionStats","failureReason"])});function Un(e){return typeof e=="string"?e.trim():""}function gf(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(typeof e=="string"&&e.trim()){let t=Date.parse(e);if(Number.isFinite(t))return t}return null}function Ss(e){let t=gf(e);if(!t)return"";try{return new Intl.DateTimeFormat(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(t))}catch{return""}}function Yk(e){return Array.isArray(e)?e.slice(0,100).map(t=>({content:Un(t?.content).slice(0,2e3),status:["pending","in_progress","completed"].includes(t?.status)?t.status:"pending",...Un(t?.activeForm)?{activeForm:Un(t.activeForm).slice(0,2e3)}:{}})).filter(t=>t.content):[]}function Pt(e){if(!e||typeof e!="object")return null;let t=Un(e.content).slice(0,1e5),s=Yk(e.todos);if(!t&&s.length===0)return null;let n=e.role==="assistant"?"assistant":"user",r=gf(e.timestamp);return{id:Un(e.id).slice(0,256)||null,role:n,author:Un(e.author).slice(0,256)||(n==="assistant"?"Assistant":"User"),content:t,...r?{timestamp:r}:{},...s.length>0?{todos:s}:{}}}function ff(e,t){return Pt({id:e?.messageId||e?.id||null,role:"user",author:t,content:e?.content||"",timestamp:e?.timestamp||e?.createdAt||e?.ts||e?.time||null})}function hf(e,t){let s=e?.todoMsg?.toolInput?.todos,n=Array.isArray(e?.toolMsgs)?e.toolMsgs.map(i=>Un(i?.toolName)).filter(Boolean):[],r=n.length>0?`Tool actions: ${n.join(", ")}`:"";return Pt({id:e?.atMessageId||e?.messageId||e?.id||e?.turnId||null,role:"assistant",author:t,content:e?.textContent||r,timestamp:e?.timestamp||e?.createdAt||e?.speakerTimestamp||null,todos:s})}var dn=N(()=>{});function Cc(e){return typeof e=="string"?e:Array.isArray(e)?e.map(t=>typeof t=="string"?t:t?.type==="text"&&typeof t.text=="string"?t.text:"").join(""):e==null?"":String(e)}function Qk(e,t){if(!e||e.type!=="assistant")return!1;let s=e.sessionId??e.groupId??null,n=e.speakerVpId||e.vpId||null;return!(t.sessionId&&s!==t.sessionId||t.vpId&&n!==t.vpId||t.turnId&&e.turnId!==t.turnId)}function mf(e,t={}){if(!Array.isArray(e)||!t.turnId)return!1;let s=e.filter(n=>Qk(n,t));if(s.length===0)return!1;for(let n of s)n.responseKind="progress";if(t.reason==="end_turn"){for(let n=s.length-1;n>=0;n-=1)if(Cc(s[n].content).trim()){s[n].responseKind="result";break}}return!0}function Yo(e,t){if(!e||!t)return;let s=Cc(t.content);s&&(Array.isArray(e.textSegments)||(e.textSegments=[]),e.textSegments.push({key:t.messageId||t.id||`response-${e.textSegments.length}`,content:s,kind:t.responseKind==="result"?"result":"progress",explicitKind:t.responseKind==="progress"||t.responseKind==="result",isStreaming:t.isStreaming===!0}),e.textContent=e.textSegments.map(n=>n.content).join(`
|
|
7
7
|
|
|
8
8
|
`))}function Ic(e=[]){let t=(o,a)=>JSON.stringify([o.sessionId||o.groupId||"",o.speakerVpId||o.vpId||"",o.turnId||"",a]),s=new Map;for(let o of e)o.type==="tool-use"&&o.toolId&&s.set(t(o,o.toolId),o);let n=new Map,r=new Set;for(let o of e){if(o.type!=="chat-image"||!o.sourceToolCallId)continue;let a=s.get(t(o,o.sourceToolCallId));a&&(n.has(a)||n.set(a,[]),n.get(a).push(o),r.add(o))}if(r.size===0)return e;for(let o of n.values())o.sort((a,c)=>(a.sourceImageIndex??0)-(c.sourceImageIndex??0));let i=[];for(let o of e)r.has(o)||(i.push(o),n.has(o)&&i.push(...n.get(o)));return i}function Ai(e){return JSON.stringify([e.assetId||e.id,e.sourceToolCallId||"",e.turnId||"",e.sourceImageIndex??""])}function vf(e,t=[]){let s=Array.isArray(e?.imageMsgs)?e.imageMsgs:[],n=new Map(t.map(l=>[l.key,l])),r=new Map(s.map(l=>[Ai(l),l])),i=new Set,o=[],a=(l,d)=>{if(!d||i.has(d))return;i.add(d);let u=o[o.length-1];l!=="result"&&u?.kind===l?u.items.push(d):o.push({kind:l,key:`${l}:${l==="images"?Ai(d):d.key||o.length}`,items:[d]})},c=0;for(let l of Ic(Array.isArray(e?.messages)?e.messages:[]))if(l.type==="assistant"&&Cc(l.content)){let d=l.messageId||l.id||`response-${c}`,u=n.get(d);u&&a(u.kind==="result"?"result":"progress",u),c+=1}else l.type==="chat-image"&&a("images",r.get(Ai(l)));for(let l of t)a(l.kind==="result"?"result":"progress",l);for(let l of s)a("images",l);return o}function Qo(e){let t=Array.isArray(e?.textSegments)?e.textSegments:[];if(t.length===0)return;let s=Array.isArray(e?.messages)?e.messages:[],n=e?.isActive===!0||e?.isStreaming===!0||t.some(c=>c.isStreaming===!0)||s.some(c=>c?.isStreaming===!0||c?.status==="pending"),r=s.some(c=>c?.incomplete===!0||Sc.has(c?.status)||Sc.has(c?.turnEndReason)||Sc.has(c?.stopReason));if(n||r){for(let c of t)c.kind="progress";return}if(t.some(c=>c.kind==="result"))return;let i=s.some(c=>c?.turnEndReason==="end_turn"),o=t.some(c=>c.explicitKind),a=t.length===1&&!o;(i||a||e.isHistory&&!o)&&(t[t.length-1].kind="result")}var Sc,xi=N(()=>{Sc=new Set(["aborted","errored","error","cancelled","canceled"])});function cs(e){return typeof e=="string"?e.trim():""}function lt(e){let t=cs(e?.runtimeProvider),s=cs(e?.agentId),n=cs(t==="work-center"?e?.workItemId:e?.sessionId);return!t||!s||!n?"":[t,s,n].map(r=>encodeURIComponent(r)).join(":")}function Xk(e){let t=0xcbf29ce484222325n;for(let s of String(e||""))t^=BigInt(s.codePointAt(0)),t=BigInt.asUintN(64,t*0x100000001b3n);return t.toString(16).padStart(16,"0")}function qs(e,t){let s=cs(e),n=cs(t);return!s||!n?"":`${s}@${Xk(n)}`}function jn(e,t="main"){if(!e)return"";let s=["main","files-folder-picker","git-folder-picker"].includes(t)?t:"main";return s==="main"?`_workbench:${e}`:`_workbench:${e}:${s}`}function Cs(e,t){let s=cs(e?.conversationId);if(!t||!s)return null;if(s===jn(t))return"main";for(let n of["files-folder-picker","git-folder-picker"])if(s===jn(t,n))return n;return null}function Ar(e,t){let s=(n={})=>{let r={runtimeProvider:cs(t.runtimeProvider),agentId:cs(t.agentId),...t.runtimeProvider==="work-center"?{workItemId:cs(t.workItemId)}:{sessionId:cs(t.sessionId)}},i="main";n.conversationId==="_folder_picker"?i="files-folder-picker":n.conversationId==="_git_folder_picker"&&(i="git-folder-picker");let o={...n,agentId:r.agentId,workbenchRoute:r,workbenchRouteKey:t.routeKey,workbenchWorkspaceGeneration:t.workspaceGeneration,workbenchScope:i,conversationId:jn(t.routeKey,i)};return(t.workspaceLocked===!0||!Object.hasOwn(o,"workDir")&&t.workDir)&&(o.workDir=t.workDir),e.sendWsMessage(o)};return new Proxy(e,{get(n,r,i){return r==="currentAgent"?t.agentId||null:r==="currentConversation"?t.conversationId||t.sessionId||null:r==="effectiveWorkDir"?t.workDir||"":r==="activeSessionRoute"?{runtimeProvider:t.runtimeProvider,agentId:t.agentId,...t.runtimeProvider==="work-center"?{workItemId:t.workItemId}:{sessionId:t.sessionId}}:r==="sendWsMessage"?s:Reflect.get(n,r,i)},set(n,r,i,o){return Reflect.set(n,r,i,o)}})}function xr(e,t,s=""){return t?(e?.workbenchRouteKey?e.workbenchRouteKey===t:Cs(e,t)!==null)?s?e?.workbenchWorkspaceGeneration===s:!0:!1:!0}var Is=N(()=>{});function Ac(e){return e?.type==="user"&&typeof e.content=="string"&&e.content.trim()}function xc(e){return e?.type==="assistant"||e?.type==="thinking"||e?.type==="tool_use"||e?.type==="tool-use"||e?.type==="tool_result"||e?.type==="tool-result"}function Tc(e,t){if(!e||e.kind!=="assistant")return!0;let s=e.turnId||e.lastTurnId||"",n=t?.turnId||"";if(s&&n&&s!==n)return!0;let r=e.speakerVpId||"",i=t?.speakerVpId||t?.vpId||"";return!!(r&&i&&r!==i)}function Mc(e=[]){let t=[],s=null,n=r=>{s&&(t.push({start:s.start,end:r,kind:s.kind}),s=null)};for(let r=0;r<e.length;r++){let i=e[r];if(i){if(Ac(i)||i.type==="system"||i.type==="error"){n(r),s={start:r,kind:i.type};continue}if(!xc(i)){s||(s={start:r,kind:"other"});continue}(!s||s.kind==="assistant"&&Tc(s,i))&&(n(r),s={start:r,kind:"assistant",turnId:i.turnId||"",speakerVpId:i.speakerVpId||i.vpId||""}),s.lastTurnId=i.turnId||s.lastTurnId||"",s.speakerVpId=s.speakerVpId||i.speakerVpId||i.vpId||""}}return n(e.length),t}function yf(e,t){return!e||e._historyWindowPrefetched===!0?!1:t?(e.sessionId??e.groupId)===t:!0}function Pc(e=[],t=null,s=Ti,n=null){let r=Math.max(1,Number.isFinite(s)?Math.floor(s):Ti),i=[],o=[],a=null,c=d=>{a&&(o.push({start:a.start,end:d,kind:a.kind}),a=null)};for(let d of e){if(!yf(d,t))continue;let u=i.length;if(i.push(d),Ac(d)||d.type==="system"||d.type==="error"){c(u),a={start:u,kind:d.type};continue}if(!xc(d)){a||(a={start:u,kind:"other"});continue}(!a||a.kind==="assistant"&&Tc(a,d))&&(c(u),a={start:u,kind:"assistant",turnId:d.turnId||"",speakerVpId:d.speakerVpId||d.vpId||""}),a.lastTurnId=d.turnId||a.lastTurnId||"",a.speakerVpId=a.speakerVpId||d.speakerVpId||d.vpId||""}if(c(i.length),o.length<=r)return i;let l=o[o.length-r];return i.slice(l.start)}function bf(e=[],t=null,s=Ti){let n=Math.max(1,s||Ti),r=0,i=null,o=()=>i?(i=null,r+=1,r>n):!1;for(let a of e)if(yf(a,t)){if(Ac(a)||a.type==="system"||a.type==="error"){if(o())return!0;i={kind:a.type};continue}if(!xc(a)){i||(i={kind:"other"});continue}if(!i||i.kind==="assistant"&&Tc(i,a)){if(o())return!0;i={kind:"assistant",turnId:a.turnId||"",speakerVpId:a.speakerVpId||a.vpId||""}}i.lastTurnId=a.turnId||i.lastTurnId||"",i.speakerVpId=i.speakerVpId||a.speakerVpId||a.vpId||""}return o(),r>n}function un(){return Ti}function Mi(){return Zk}var Ti,Zk,wf=N(()=>{Ti=Number.POSITIVE_INFINITY,Zk=20});function eS(e,t){let s=new Set;if(!t)return s;for(let n of e?.sessionCatalog||[])n?.runtimeProvider!=="yeaft"||n?.routeRef?.sessionId!==t||n.routeRef.agentId&&s.add(n.routeRef.agentId);if(s.size===0){let n=Hs();for(let r of n?.sessionList||[])r?.id===t&&r?.agentId&&s.add(r.agentId)}return s}function Lf(e,t){let s=eS(e,t);return s.size===1?s.values().next().value:null}function Jo(e,t,s){return!!s&&Lf(e,t)===s}function qt(e,t,s){return!e||e.sessionId!==t?!1:s?e.agentId===s:!e.agentId}function kf(e,t,s=null){if(!t)return!1;let n=s||Oe(e,t),r=Vs(n,t);if(r&&e.yeaftProcessingSessions?.[r]||e.yeaftProcessingSessions?.[t]&&Jo(e,t,n))return!0;for(let i of Object.values(e.activeVpTurns||{}))if(qt(i,t,n))return!0;for(let i of Object.values(e.vpStatuses||{}))if(qt(i,t,n)&&Ri.has(i?.state))return!0;return!1}function tS(e,t,s,n=null){let r={...e.yeaftProcessingSessions||{}};if(t){let i=ac(t);if(r=Object.fromEntries(Object.entries(r).filter(([o])=>n?o!==Vs(t,n):!o.startsWith(i))),n)Jo(e,n,t)&&delete r[n];else for(let o of Object.keys(r))Jo(e,o,t)&&delete r[o]}else n?delete r[n]:r={};for(let i of s||[]){let o=i?.sessionId||i?.groupId||null;if(!o||!Ri.has(i?.state))continue;let a=Vs(t,o)||o;r[a]=!0}return r}function Kn(e,t,s){let n=lc(t,s);return n&&e?.activeVpTurns?.[n]?n:e?.activeVpTurns?.[s]&&(!t||!e.activeVpTurns[s]?.agentId||e.activeVpTurns[s].agentId===t)?s:n||s||""}function Sf(e,t){if(!t){e.activeVpTurns={},e.stoppingVpTurnIds={},e.vpStatuses={},e.yeaftProcessingSessions={};return}e.activeVpTurns=Object.fromEntries(Object.entries(e.activeVpTurns||{}).filter(([,n])=>n?.agentId&&n.agentId!==t)),e.stoppingVpTurnIds=Object.fromEntries(Object.entries(e.stoppingVpTurnIds||{}).filter(([n])=>e.activeVpTurns?.[n])),e.vpStatuses=Object.fromEntries(Object.entries(e.vpStatuses||{}).filter(([,n])=>n?.agentId&&n.agentId!==t));let s=ac(t);e.yeaftProcessingSessions=Object.fromEntries(Object.entries(e.yeaftProcessingSessions||{}).filter(([n])=>!n.startsWith(s)))}function Bs(e,t){return`${e||""}:${t||""}`}function pS(e){return e?.kind==="action"&&typeof e.actionId=="string"&&Number.isInteger(Number(e.generation))&&Number(e.generation)>0?{kind:"action",actionId:e.actionId,generation:Number(e.generation)}:{kind:"coordinator"}}function gS(e){return typeof e=="string"?e:e?.kind==="action"&&typeof e.actionId=="string"?{kind:"action",actionId:e.actionId,generation:Number.isInteger(Number(e.generation))?Number(e.generation):0}:{kind:"coordinator"}}function fS(e={}){let t=Pt(e.quote);return{agentId:e.agentId||"",workItemId:e.workItemId||"",target:pS(e.target),text:String(e.text||""),...t?{quote:t}:{},attachments:Array.isArray(e.attachments)?e.attachments.map(s=>({fileId:s?.fileId||"",name:s?.name||"",mimeType:s?.mimeType||"",size:Math.max(0,Number(s?.size)||0)})):[],revision:Number(e.revision)||0,planRevision:Number(e.planRevision)||0,ledgerRevision:Number(e.ledgerRevision)||0,coordinatorRevision:Number(e.coordinatorRevision)||0}}function xf(e,t,s){return{conversationId:s||null,agentId:e?.agentId||t?.agentId||null,requestId:t?.requestId||null,toolCallId:t?.toolCallId||null,sessionId:e?.sessionId||t?.sessionId||null,vpId:e?.vpId||t?.vpId||null,turnId:e?.turnId||t?.turnId||null,threadId:e?.threadId||t?.threadId||null}}function Tf(e,t){return{conversationId:t||null,agentId:e?.agentId||null,requestId:e?.askRequestId||null,toolCallId:e?.toolId||null,sessionId:e?.sessionId||e?.groupId||null,vpId:e?.vpId||e?.speakerVpId||null,turnId:e?.turnId||null,threadId:e?.threadId||null}}function hS(e,t){return Oc.every(s=>!t[s]||e[s]===t[s])}function Of(e,t){return Oc.every(s=>!e[s]||!t[s]||e[s]===t[s])}function Mf(e,t,s){let n=(e||[]).filter(o=>o?.type==="tool-use"&&(o.toolName==="AskUser"||o.toolName==="AskUserQuestion")&&(!t.requestId||!o.askRequestId||o.askRequestId===t.requestId)&&(!t.toolCallId||!o.toolId||o.toolId===t.toolCallId)),r=n.filter(o=>hS(Tf(o,s),t));if(r.length===1)return r[0];let i=n.filter(o=>Of(Tf(o,s),t));return i.length===1?i[0]:null}function Ff(e){return Oc.map(t=>e[t]||"").join("\0")}function mS(e,t,s){let n=Ff(t),r={...e._yeaftAskTerminalEvents||{},[n]:{identity:t,event:s,receivedAt:Date.now()}},i=Object.keys(r);if(i.length>If){i.sort((o,a)=>r[o].receivedAt-r[a].receivedAt);for(let o of i.slice(0,i.length-If))delete r[o]}e._yeaftAskTerminalEvents=r}function Pf(e,t){let s=e._yeaftAskTerminalEvents||{},n=Ff(t),r=s[n]?n:null;if(!r){let c=Object.entries(s).filter(([,l])=>Of(l.identity||{},t));c.length===1&&(r=c[0][0])}if(!r)return null;let i=s[r],{[r]:o,...a}=s;return e._yeaftAskTerminalEvents=a,i?.event||null}function vS(e,t,s){return(e.messagesMap?.[t]||[]).some(n=>n?.type==="tool-use"&&n.sessionId===s&&n.hasResult===!1)}function _c(e,t){if(!(t.type==="ask_user_answer_rejected"&&(e.askAnswered||e.askExpired))){if(t.type==="ask_user_answer_rejected"&&t.reason==="agent_unavailable"){e.askError="agent_unavailable",e.askSubmittedAt=0;return}e.askError=t.type==="ask_user_answer_rejected"?t.reason||"unavailable":null,e.askSubmittedAt=null,t.type==="ask_user_answered"?(e.askAnswered=!0,e.selectedAnswers=t.answers||{},e.askExpired=!1):(e.isHistory=!0,e.askExpired=!0,e.askAnswered=!1,e.selectedAnswers=null),e.askPending=!1,e.pendingAnswers=null,e.askSubmitGeneration=null,e.askRequestId=null}}function yS(e){if(!e||typeof e!="string")return null;let t=e.match(/^(\d+)/);if(!t)return null;let s=Number(t[1]);return Number.isFinite(s)?s:null}function bS(e){if(!e||typeof e!="string")return null;let t=e.match(/^m(\d+)$/);if(!t)return null;let s=Number(t[1]);return Number.isFinite(s)?s:null}function Pi(e){return li(e)}function Ec(e,t,s){return`${Vs(e,t)}::${s||""}`}function Dc(e){return Object.fromEntries(Object.entries(e||{}).filter(([,t])=>t?.status==="running"))}function Hs(){try{return typeof window>"u"?null:window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore()||null}catch{return null}}function Rf(e){let t=Hs();if(!t?.reorderSessionsGlobally)return;let s=(Array.isArray(e)?e:[]).filter(n=>n?.runtimeProvider==="yeaft").map(n=>`${n.routeRef?.agentId||""}${n.routeRef?.sessionId||""}`).filter(n=>!n.startsWith(""));t.reorderSessionsGlobally(s)}function Oe(e,t,s=null){if(s)return s;if(t){let n=Hs(),r=n?.activeSessionKey?n.sessions?.[n.activeSessionKey]:null;if(r?.id===t&&r.agentId)return r.agentId;let i=n&&typeof n.sessionById=="function"?n.sessionById(t,e?.currentAgent||null):null;if(i&&i.agentId)return i.agentId;let o=e?.yeaftSessionAgentById?e.yeaftSessionAgentById[t]:null;if(o)return o}return e?.currentAgent||null}function _f(e){let t=pn(e),s=Oe(e,t),n=Hs()?.sessionById?.(t,s),r=e.currentAgentInfo?.id===s?e.currentAgentInfo:e.agents?.find(o=>o?.id===s),i=o=>typeof o=="string"?o.trim():"";return i(n?.workDir)||i(r?.workDir)}function wS(e,t){let s=i=>String(i||"").replace(/^v/,"").split(".").slice(0,3).map(o=>Number.parseInt(o,10)),n=s(e),r=s(t);if(n.length<3||r.length<3||[...n,...r].some(i=>!Number.isFinite(i)))return!1;for(let i=0;i<3;i+=1)if(n[i]!==r[i])return n[i]>r[i];return!0}function It(e,t,s){if(!t||!s)return!1;let n=Array.isArray(e?.agents)?e.agents.find(o=>o?.id===t):null,r=e?.currentAgentInfo?.id===t?e.currentAgentInfo:null;return(n?.capabilities||r?.capabilities||[]).includes(s)?!0:s==="session_history_search"&&wS(n?.version||r?.version,"1.0.166")}function pn(e,{fallbackDefault:t=!1}={}){if(e?.yeaftActiveSessionFilter)return e.yeaftActiveSessionFilter;let s=Hs();return s?.activeSessionId?s.activeSessionId:t?"grp_default":null}function $c(e,t="session"){return[e?.vpId||e?.ownerVpId||"vp",e?.threadId||"thread",e?.turnId||t].join(":")}function Ns(e,t,s=null){return s||t&&e?.yeaftConversationIdsByAgent?.[t]||e?.yeaftConversationId||null}function At(e,t=null,s=null){let n=t||e?.yeaftActiveSessionFilter||null,r=s||Oe(e,n);return(r&&e?.yeaftConversationIdsByAgent?e.yeaftConversationIdsByAgent[r]:null)||e?.yeaftConversationId||null}function Ef(e,t,s){if(e?.currentView!=="yeaft")return!1;let n=e?.yeaftActiveSessionFilter||null;if(n&&t!==n)return!1;let r=Oe(e,n);return!r||!s||r===s}function Zo(e){return{ownerGeneration:Number(e._workCenterActivityOwnerGeneration||0),connectionGeneration:Number(e.chatHistoryConnectionGeneration||0),owner:ir()}}function As(e,t){return!!t&&t.ownerGeneration===Number(e._workCenterActivityOwnerGeneration||0)&&t.connectionGeneration===Number(e.chatHistoryConnectionGeneration||0)&&(t.owner?or(t.owner):!ir())}var Jk,it,Xo,Rc,sS,nS,rS,iS,oS,Cf,aS,Ri,lS,cS,If,Af,dS,uS,Oc,Df,Lc,$f,zn,ea=N(()=>{Ft();Fu();Il();ms();Co();Tl();Rl();fi();tg();wg();Wg();$n();an();ui();Yg();Kl();Do();Zg();Jg();tf();Ao();Go();Yl();dn();xi();Is();ur();xo();Ho();wf();Mo();Ql();({defineStore:Jk}=Pinia),it=Object.freeze([]),Xo=(e,t,s)=>`${e||""}::${t||""}::${s}`;Rc=5,sS=100,nS=512*1024,rS=15e3,iS=1e4,oS=450,Cf=Object.freeze([150,300,600,1e3]),aS=new Set(["index_building","stale_result"]),Ri=new Set(["typing","thinking","retrying","streaming","tool"]),lS=Object.freeze(["model","availableModels","refreshedAt","catalogRefreshedAt","catalogEpoch","catalogRevision","catalogDigest","refreshStartedAt","refreshReason","refreshError","refreshing"]),cS=8,If=64,Af=Object.freeze(["running","waiting"]),dS=100,uS=10;Oc=Object.freeze(["conversationId","agentId","requestId","toolCallId","sessionId","vpId","turnId","threadId"]);Df=1e3,Lc=1,$f=5;zn=Jk("chat",{state:()=>({ws:null,authenticated:!1,_hasHandledAgentList:!1,_hasHandledYeaftSessionHydrate:!1,yeaftSessionInventoryCompleteSupported:null,workbenchRouteProtocolSupported:null,workCenterWorkbenchProtocolSupported:null,browserRuntimeProtocolSupported:null,browserRuntimeSetupProtocolSupported:null,browserRuntimeServerEnabled:!1,yeaftSessionHydrateRequestId:null,yeaftSessionHydrateSlices:[],yeaftSessionHydrateError:null,_yeaftSessionInventorySocketQuarantined:!1,sessionKey:null,serverEncryptionRequired:!0,sessionForkPendingKey:null,sessionForkState:"idle",digitalPersonOpen:!1,digitalPersonAgentId:null,digitalPersonUiEnabledByAgent:Lu(),connectionState:"disconnected",reconnectAttempts:0,maxReconnectAttempts:10,reconnectTimer:null,agents:[],currentAgent:null,currentAgentInfo:null,conversations:[],activeConversations:[],currentWorkDir:null,messagesMap:{},_messageUiKeySequence:0,chatSessionState:{},panels:[],activePanelId:null,_pendingPaneId:null,conversationTitles:{},customConversationTitles:{},processingConversations:{},yeaftProcessingSessions:{},yeaftUnreadSessionKeys:{},theme:localStorage.getItem("theme")||(typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),themeFollowSystem:!localStorage.getItem("theme"),locale:localStorage.getItem("locale")||"zh-CN",executionStatusMap:{},sessionHealth:{},historySessions:[],historySessionsLoading:!1,folders:[],foldersLoading:!1,providerModels:[],providerModelsLoading:!1,contextUsage:null,lastUsedAgent:localStorage.getItem("lastUsedAgent")||null,lastUsedSession:JSON.parse(localStorage.getItem("lastUsedSession")||"null"),lastViewedConversation:localStorage.getItem("lastViewedConversation")||null,pendingRecovery:null,recoveryDismissed:!1,sessionLoading:!1,sessionLoadingText:"",agentSwitching:!1,pendingAgentSelection:null,_pendingSessionTitle:null,workbenchExpanded:!1,workbenchMaximized:!1,workbenchPanelStateByRoute:{},sidebarCollapsed:!1,sessionSidebarOpen:!1,compactStatus:null,clearStatus:null,refreshingSession:!1,refreshingSessionMap:{},proxyPorts:{},hasMoreMessages:!1,loadingMoreMessages:!1,chatHistoryRequests:{},chatHistoryRequestIdSupported:null,chatHistoryConnectionGeneration:0,sessionCatalog:[],hiddenSessionCatalog:[],sessionProjects:[],sessionCatalogLoaded:!1,sessionCatalogMutationRequests:{},projectMutationRequests:{},activeCatalogKey:null,openUnifiedSessionCreate:!1,openUnifiedChatCreate:!1,pendingUnifiedSessionSettings:null,pluginCenterOpen:!1,pluginCenterAgentId:null,pluginConfigByAgent:{},pluginCatalogByKey:{},pluginCatalogRequestByKey:{},managedSkillRequestByKey:{},_pluginPending:{},yeaftHasMoreHistory:!1,yeaftLoadingMoreHistory:!1,yeaftOldestLoadedSeq:null,yeaftHistoryLoadError:null,_yeaftManualHistoryRefresh:null,yeaftSessionHistoryState:{},yeaftMessageWindowState:{},yeaftHistoryCacheState:{},yeaftBootstrapMetaLoadingKey:null,yeaftHistoryPerfTraceBySession:{},_yeaftHistoryPrefetchBySession:{},yeaftHistorySearchState:{requestId:null,agentId:null,sessionId:null,query:"",senderKey:"",loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,nextCursor:null,error:null},yeaftHistoryOutlineBySession:{},_yeaftHistoryOutlineTimeouts:{},_yeaftHistorySearchTimeout:null,_yeaftHistoryWindowPendingByKey:{},_yeaftHistoryResultRefreshByRequestId:{},_yeaftHistoryRevealLeases:{},_yeaftHistoryRevealSequence:0,yeaftHistoryFocusWindowBySession:{},_yeaftReconnectCatchUpPending:!1,_yeaftOpenedSessionsLoadedAgents:{},_yeaftAgentSeen:null,slashCommandsMap:{},slashCommandDescriptions:{},inputDrafts:{},mcpServers:{},expertRoleDefinitions:null,llmConfig:{},llmModelDiscovery:{},llmGithubDevice:null,modelsDevRegistry:{registry:{},fetchedAt:0,error:null,loaded:!1},_modelsDevPending:null,yeaftSettings:{},searchSettings:null,telemetrySettings:null,telemetrySettingsByAgent:{},telemetryRequestByAgent:{},workCenterFeatureSettingsByAgent:{},workCenterFeatureRequestByAgent:{},agentOperations:{},agentUpgradeBatch:null,tavilyUsage:null,tavilyUsageLoading:!1,_perfTraceQueue:[],_perfTraceFlushTimer:null,yeaftPerfTraceByMessageId:{},yeaftPerfTraceByTurnId:{},yeaftMcpServers:[],yeaftMcpRuntime:{connected:!1,toolCount:0,perServer:[]},yeaftMcpLoading:!1,yeaftMcpError:null,btwMode:!1,btwMessages:[],btwLoading:!1,btwSessionId:null,conversationMcpServers:{},conversationMcpServerTools:{},mcpPanelOpen:!1,expertSelections:[],customExpertRoles:[],subagents:{},activeSubagentId:null,activeRightPanel:null,pinnedSessions:JSON.parse(localStorage.getItem("pinned-sessions")||"[]"),...Kg(),workCenterOpen:!1,workCenterUiEnabled:localStorage.getItem("work-center-ui-enabled")!=="false",workCenterAgentId:null,workCenterItemsByAgent:{},workCenterActivityConnectionGeneration:-1,workCenterActivityByAgent:{},workCenterActivityLoadingByAgent:{},workCenterActivityErrorByAgent:{},_workCenterActivityGenerationByAgent:{},_workCenterActivityEventGenerationByAgent:{},_workCenterActivityEventsByAgent:{},_workCenterActivityOwnerGeneration:0,workCenterListPageByAgent:{},workCenterListMoreLoadingByAgent:{},_workCenterListGenerationByAgent:{},_workCenterListQueryByAgent:{},_workCenterListFiltersByAgent:{},_workCenterListMoreRequestsByAgent:{},_workCenterListEventGenerationByAgent:{},_workCenterListEventsByAgent:{},_workCenterDeletedIdsByAgent:{},workCenterDetailByAgent:{},workCenterActionMessages:{},workCenterActionMessagesLoading:{},workCenterActionMessagesError:{},workCenterActionRequests:{},workCenterActionRequestDetails:{},workCenterActionRequestsLoading:{},workCenterActionRequestsError:{},workCenterActionRequestDetailsLoading:{},workCenterActionRequestDetailsError:{},workCenterLoadedByAgent:{},workCenterLoadingByAgent:{},workCenterErrorByAgent:{},workCenterWatcherByAgent:{},workCenterSettingsByAgent:{},workCenterRuntimeByAgent:{},workCenterDeliveryInstructionsByAgent:{},_workCenterDeliveryInstructionsGenerationByAgent:{},workCenterSettingsLoadingByAgent:{},workCenterSettingsErrorByAgent:{},_workCenterSettingsGenerationByAgent:{},_workCenterDetailRequestGenerationByAgent:{},_workCenterDetailRequestFenceByAgent:{},_workCenterDetailEventRefreshByAgent:{},_workCenterActionInputGenerationByAgent:{},_workCenterActionMessageRequests:{},_workCenterActionMessageGenerationByKey:{},_workCenterActionRequestsGeneration:{},_workCenterActionRequestDetailsGeneration:{},workCenterPending:{},workCenterComposerDrafts:{},workCenterMessageOutbox:{},_workCenterBrowserFence:null,_workCenterBrowserUnsubscribe:null,workCenterCreateDraft:null,yeaftConversationId:null,yeaftConversationIdsByAgent:{},_yeaftPendingConversationPromotions:{},_yeaftRetiredConversationIdsByAgent:{},_yeaftRetiredConversationTargetsByAgent:{},yeaftSessionAgentById:{},yeaftModel:null,yeaftModelEffort:null,yeaftSessionReady:!1,yeaftStatus:null,yeaftAvailableModels:[],yeaftStatusByAgent:{},_yeaftRetiredCatalogEpochsByAgent:{},yeaftModelsRefreshing:!1,yeaftModelRefreshError:null,yeaftYeaftDir:null,yeaftActiveTasksBySession:{},yeaftStoppingTasksById:{},yeaftToolStats:null,yeaftToolStatsLoading:!1,yeaftDebugLoops:[],yeaftDebugTurnsById:{},yeaftDebugTurnOrder:[],yeaftDebugHistoryLoading:!1,yeaftDebugHistoryError:null,yeaftDebugHistoryFetchedAt:0,yeaftDebugHistoryProjection:null,yeaftDebugHistoryLimit:Lc,yeaftDebugHistoryHasMore:!1,yeaftDebugPanel:{open:!1,status:"idle",requestId:null,agentId:null,sessionId:null,turnId:null,error:null},yeaftDebugSearch:"",yeaftDebugSessionFilter:null,yeaftReflectionCards:{},yeaftSubAgentCards:{},yeaftSidebarV2Enabled:!0,yeaftActiveSessionFilter:null,_currentYeaftSessionId:null,_currentYeaftVpId:null,_currentYeaftTurnId:null,_currentYeaftThreadId:null,_yeaftAskTerminalEvents:{},activeVpTurns:{},vpStatuses:{},stoppingVpTurnIds:{},yeaftVpTyping:{},_vpCrudPending:null}),getters:{currentConversation:e=>e.activeConversations[0]||null,activeConversationId:e=>Wo(e),activeSessionRoute(e){if(e.currentView==="yeaft"){let n=pn(e);return n?{runtimeProvider:"yeaft",agentId:Oe(e,n),sessionId:n}:null}let t=Wo(e);if(!t)return null;let s=e.conversations.find(n=>n?.id===t&&n.type!=="yeaft");return s?{runtimeProvider:s.provider==="copilot"?"copilot":"claude-code",agentId:s.agentId||e.currentAgent||null,sessionId:t}:null},messages(e){let t=this.activeConversationId,s=t&&e.messagesMap[t]||it;if(e.currentView==="yeaft"){let n=e.yeaftActiveSessionFilter||null,r=Ve(Oe(e,n),n),i=e.yeaftMessageWindowState[r]?.visibleTurns||un(),o=e.yeaftHistoryFocusWindowBySession?.[r]?.windowKey||null;return Pc(s,e.yeaftActiveSessionFilter||null,i,o)}return s},yeaftAllMessages:e=>{let t=At(e);return t&&e.messagesMap[t]||it},yeaftVisibleMessages(e){let t=At(e),s=t&&e.messagesMap[t]||it,n=e.yeaftActiveSessionFilter||null,r=Ve(Oe(e,n),n),i=e.yeaftMessageWindowState[r]?.visibleTurns||un(),o=e.yeaftHistoryFocusWindowBySession?.[r]?.windowKey||null;return Pc(s,e.yeaftActiveSessionFilter||null,i,o)},hasHiddenYeaftMessages(e){if(e.currentView!=="yeaft")return!1;let t=At(e),s=t&&e.messagesMap[t]||it,n=e.yeaftActiveSessionFilter||null,r=Ve(Oe(e,n),n),i=e.yeaftMessageWindowState[r]?.visibleTurns||un();return bf(s,e.yeaftActiveSessionFilter||null,i)},activeYeaftHistoryState(e){return Dl(e)},yeaftManualHistoryRefreshLoading(e){let t=e._yeaftManualHistoryRefresh||null;if(!t?.requestId)return!1;let s=Ve(t.agentId,t.sessionId),n=as(e),r=e.yeaftSessionHistoryState?.[s]||null;return n.sessionKey===s&&r?.loading===!0&&r.requestId===t.requestId},yeaftInitialHistoryLoading(e){let t=Dl(e);return e.currentView==="yeaft"&&!!e.yeaftActiveSessionFilter&&!!t?.loading&&!t?.loaded&&this.yeaftVisibleMessages.length===0},vpsTypingInCurrentConv(e){let t=this.activeConversationId;if(!t)return it;let s=(e.yeaftVpTyping||{})[t];if(!s)return it;let n=Object.keys(s).filter(r=>(s[r]||0)>0);return n.length===0?it:n},isVpTypingInCurrentConv(e){return t=>{if(!t)return!1;let s=this.activeConversationId;if(!s)return!1;let n=(e.yeaftVpTyping||{})[s];return n?(n[t]||0)>0:!1}},yeaftDebugTurnsForActiveSession:e=>{let t=e.yeaftDebugTurnOrder||it,s=e.yeaftDebugTurnsById||{},n=e.yeaftDebugLoops||it,r=e.yeaftReflectionCards||{},i=e.yeaftDebugSessionFilter,o;i==="__all__"?o=null:i?o=i:o=null;let a={};for(let d of n)!d||!d.turnId||(a[d.turnId]||(a[d.turnId]=[]),a[d.turnId].push(d));let c={};for(let d of Object.keys(r)){let u=r[d];!u||!u.turnId||(c[u.turnId]||(c[u.turnId]=[]),c[u.turnId].push(u))}let l=[];for(let d=t.length-1;d>=0;d--){let u=t[d],p=s[u];if(!p||o&&p.sessionId&&p.sessionId!==o)continue;let g=a[u]||it,f=c[u]||it,v=g.length,h=0,b=0;for(let w of g){let y=w&&w.usage;y&&Number.isFinite(y.totalTokens)?h+=y.totalTokens:y&&(h+=(y.totalInputTokens||(y.inputTokens||0)+(y.cacheReadTokens||0)+(y.cacheWriteTokens||0))+(y.outputTokens||0)),w&&Number.isFinite(w.latencyMs)&&(b+=w.latencyMs)}let m=!p.closedAt,k={...p,loopCount:m||!p.loopCount?v:p.loopCount,totalTokens:m||!p.totalTokens?h:p.totalTokens,totalMs:m||!p.totalMs?b:p.totalMs,loops:g,reflections:f};l.push(k)}return l},yeaftDebugAvailableSessions:e=>{let t=new Set;for(let s of e.yeaftDebugTurnOrder||it){let n=e.yeaftDebugTurnsById[s];n&&n.sessionId&&t.add(n.sessionId)}return Array.from(t).sort()},yeaftDebugTurnTotal:e=>(e.yeaftDebugTurnOrder||it).length,messagesCache:e=>e.messagesMap,isMultiColumn:e=>e.activeConversations.length>1,isSplitMode:e=>e.panels.length>1,isProcessing:e=>{if(e.currentView==="yeaft"){let t=pn(e);return t?kf(e,t,Oe(e,t)):!1}return e.currentConversation?!!e.processingConversations[e.currentConversation]:!1},canSend:e=>!(!e.currentAgent||!e.currentConversation),currentAgentName:e=>e.currentAgentInfo?.name||"\u9009\u62E9 Agent",currentAgentWorkDir:e=>e.currentAgentInfo?.workDir||"",effectiveWorkDir:e=>e.currentView==="yeaft"?_f(e):e.currentWorkDir||e.currentAgentInfo?.workDir||"",fileReferenceResolutionContextKey:e=>{let t=e.currentView==="yeaft"?(()=>{let o=pn(e);return o?{runtimeProvider:"yeaft",agentId:Oe(e,o),sessionId:o}:null})():(()=>{let o=Wo(e),a=e.conversations.find(c=>c?.id===o&&c.type!=="yeaft");return a?{runtimeProvider:a.provider==="copilot"?"copilot":"claude-code",agentId:a.agentId||e.currentAgent||null,sessionId:o}:null})(),s=t?.agentId||e.currentAgent||null,n=t?.runtimeProvider==="yeaft"?At(e,t.sessionId,s):e.currentConversation,r=It(e,s,"file_reference_resolution");if(!s||!n||!r)return"";let i=e.currentView==="yeaft"?_f(e):e.currentWorkDir||e.currentAgentInfo?.workDir||"";return JSON.stringify([e.connectionState,e.authenticated,e.workbenchRouteProtocolSupported,t?.runtimeProvider||"",s,t?.sessionId||"",n,i,It(e,s,"file_editor"),It(e,s,"workbench_session_routes"),It(e,s,"response_image_preview")])},currentAgentCapabilities:e=>e.currentAgentInfo?.capabilities||["terminal","file_editor","background_tasks"],hasCapability:e=>t=>(e.currentAgentInfo?.capabilities||["terminal","file_editor","background_tasks"]).includes(t),hasAgentCapability:e=>(t,s)=>It(e,t,s),getConversationTitle:e=>t=>e.customConversationTitles[t]||e.conversationTitles[t]||null,executionStatus:e=>e.currentConversation?e.executionStatusMap[e.currentConversation]||{currentTool:null,toolHistory:[],lastActivity:null}:{currentTool:null,toolHistory:[],lastActivity:null},isConversationProcessing:e=>t=>!!e.processingConversations[t],isConversationConnecting:e=>t=>t?!!e.conversations.find(n=>n.id===t)?.connecting:!1,isConversationCompacting:e=>t=>t?e.compactStatus?.conversationId===t&&e.compactStatus?.status==="compacting":!1,isYeaftSessionProcessing:e=>(t,s=null)=>kf(e,t,s),isSessionHistorySyncing:e=>t=>{let s=t?.sessionId||null;return s?t.runtimeProvider==="yeaft"?!!e.yeaftSessionHistoryState?.[Ve(t.agentId||null,s)]?.loading:!!e.chatHistoryRequests?.[rn(s)]?.loading:!1},isYeaftSessionUnread:e=>(t,s=null)=>{if(!t)return!1;let n=Oe(e,t,s);return n?!!e.yeaftUnreadSessionKeys?.[cr(n,t)]:!1},showRecoveryBanner:e=>e.pendingRecovery&&!e.recoveryDismissed&&!e.currentConversation,currentSubagents:e=>{if(!e.currentConversation)return it;let t=e.subagents[e.currentConversation];return t?Object.values(t):it},hasRunningSubagents:e=>{if(!e.currentConversation)return!1;let t=e.subagents[e.currentConversation];return t?Object.values(t).some(s=>s.status==="running"):!1},runningSubagentCount:e=>{if(!e.currentConversation)return 0;let t=e.subagents[e.currentConversation];return t?Object.values(t).filter(s=>s.status==="running").length:0},activeSubagentMessages:e=>{if(!e.currentConversation||!e.activeSubagentId)return it;let t=e.subagents[e.currentConversation];if(!t)return it;let s=t[e.activeSubagentId];return(Array.isArray(s?.messages)?s.messages:it).filter(r=>r?.type==="text")},selectedTaskInfo:()=>null,currentMcpServers:e=>e.currentConversation&&e.conversationMcpServers[e.currentConversation]||it},actions:{activateChatView({persistPreference:e=!1}={}){let t=this._pendingChatRestoreConversationId;this._pendingChatRestoreConversationId=null;let s=t?this.conversations.find(o=>o.id===t):null,n=s?.agentId?this.agents.find(o=>o.id===s.agentId&&o.online):null;!this._savedChatIdentity&&s&&n&&(this._savedChatIdentity={agentId:n.id,agentInfo:{...n},workDir:s.workDir||n.workDir||null}),this.currentView="chat",e&&pc("chat");let r=this._savedChatIdentity||null,i=this.pendingAgentSelection&&this.pendingAgentSelection.agentId!==r?.agentId;r?.agentId&&(this.currentAgent!==r.agentId||i)&&this.selectAgent(r.agentId),Gg(this),t&&s&&n&&(this.autoRestoreConversation(t),this.sendWsMessage({type:"refresh_conversation",conversationId:t}))},isDigitalPersonUiEnabled(e=this.currentAgent){return!!e&&Object.hasOwn(this.digitalPersonUiEnabledByAgent,e)&&this.digitalPersonUiEnabledByAgent[e]===!0},setDigitalPersonUiEnabled(e,t=this.currentAgent){return t?(this.digitalPersonUiEnabledByAgent={...this.digitalPersonUiEnabledByAgent,[t]:e===!0},Ou(this.digitalPersonUiEnabledByAgent),e!==!0&&this.digitalPersonAgentId===t&&this.leaveDigitalPerson(),!0):!1},enterDigitalPerson(e=null){return e=e||this.currentAgent||this.agents.find(t=>this.isDigitalPersonUiEnabled(t.id)&&t.capabilities?.includes("digital_person"))?.id,!this.isDigitalPersonUiEnabled(e)||!this.agents.some(t=>t.id===e&&t.capabilities?.includes("digital_person"))?!1:(this.digitalPersonAgentId=e,this.digitalPersonOpen=!0,this.closeSessionSidebar(),!0)},leaveDigitalPerson(){this.digitalPersonOpen=!1},enterWorkCenter(e=null){if(!this.hydrateWorkCenterBrowserState())return!1;let t=this.agents.filter(n=>n?.online&&Array.isArray(n.capabilities)&&n.capabilities.includes("work_center")),s=t.some(n=>n.id===e)?e:t.some(n=>n.id===this.workCenterAgentId)?this.workCenterAgentId:t[0]?.id||null;return this.workCenterAgentId=s,this.workCenterOpen=!0,this.closeSessionSidebar(),s&&this.listWorkItems(s).catch(()=>{}),!0},leaveWorkCenter(){if(!this.workCenterOpen)return;this.workCenterOpen=!1;let e=new URL(window.location.href);for(let t of["workAgentId","workItemId","workContent"])e.searchParams.delete(t);window.history.replaceState({...window.history.state,workCenter:!1,workCenterContent:!1},"",`${e.pathname}${e.search}${e.hash}`)},setWorkCenterUiEnabled(e){this.workCenterUiEnabled=e!==!1;try{localStorage.setItem("work-center-ui-enabled",String(this.workCenterUiEnabled))}catch{}this.workCenterUiEnabled||this.leaveWorkCenter()},openPluginCenter(e=null){let t=this.agents.find(s=>s?.online&&s.id===e)||this.agents.find(s=>s?.online&&s.id===this.currentAgent)||this.agents.find(s=>s?.online)||null;return t?(this.pluginCenterAgentId=t.id,this.pluginCenterOpen=!0,!0):!1},closePluginCenter(){this.pluginCenterOpen=!1},pluginCatalogKey(e,t=""){return`${e||""}${String(t||"").trim()}`},loadPluginConfig(e=this.pluginCenterAgentId||this.currentAgent){if(!e)return Promise.resolve({plugins:{},error:"no agent"});let t=this.agents.find(n=>n?.id===e);if(!lr(t))return Promise.resolve({plugins:{},error:"The selected Agent does not support Plugins; upgrade and restart the Agent"});let s=`plugins-get-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(n=>{let r=setTimeout(()=>{this._pluginPending?.[s]&&(delete this._pluginPending[s],n({plugins:{},error:"timeout"}))},1e4);this._pluginPending[s]={resolve:n,timer:r,kind:"config",agentId:e},this.sendWsMessage({type:"get_yeaft_plugins",agentId:e,requestId:s})})},savePluginConfig(e,t=this.pluginCenterAgentId||this.currentAgent){if(!t)return Promise.resolve({plugins:{},error:"no agent"});let s=this.agents.find(r=>r?.id===t);if(!lr(s))return Promise.resolve({plugins:{},error:"The selected Agent does not support Plugins; upgrade and restart the Agent"});let n=`plugins-save-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(r=>{let i=setTimeout(()=>{this._pluginPending?.[n]&&(delete this._pluginPending[n],r({plugins:{},error:"timeout"}))},1e4);this._pluginPending[n]={resolve:r,timer:i,kind:"save",agentId:t},this.sendWsMessage({type:"update_yeaft_plugins",agentId:t,requestId:n,plugins:e})})},activePluginSession(){let e=this.yeaftActiveSessionFilter||Hs()?.activeSessionId||null;if(!e)return{sessionId:"",workDir:""};let t=Oe(this,e),s=Hs()?.sessionById?.(e,t)||null;return{sessionId:e,agentId:s?.agentId||t||"",workDir:typeof s?.workDir=="string"?s.workDir.trim():""}},managedSkillRequestKey(e,t,s){return`${e||""}${t||""}${s||""}`},mutateManagedSkill({action:e,scope:t,skill:s,name:n,sessionId:r=""}={},i=this.pluginCenterAgentId||this.currentAgent){if(!i)return Promise.resolve({catalog:{tools:[],skills:[],skillSources:[],mcpServers:[]},error:"no agent"});let o=this.agents.find(l=>l?.id===i);if(!Io(o))return Promise.resolve({catalog:{tools:[],skills:[],skillSources:[],mcpServers:[]},error:"The selected Agent does not support Skill management; upgrade and restart the Agent"});let a=`managed-skill-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,c=this.managedSkillRequestKey(i,t,r);return this.managedSkillRequestByKey={...this.managedSkillRequestByKey,[c]:a},new Promise(l=>{let d=setTimeout(()=>{this._pluginPending?.[a]&&(delete this._pluginPending[a],l({catalog:{tools:[],skills:[],skillSources:[],mcpServers:[]},error:"timeout"}))},1e4);this._pluginPending[a]={resolve:l,timer:d,kind:"managed-skill",agentId:i,key:c,workDir:t==="project"&&this.activePluginSession().workDir||""},this.sendWsMessage({type:"yeaft_managed_skill",agentId:i,requestId:a,action:e,scope:t,...r?{sessionId:r}:{},...s?{skill:s}:{},...n?{name:n}:{}})})},loadPluginCatalog(e=this.pluginCenterAgentId||this.currentAgent,t=""){if(!e)return Promise.resolve({catalog:{tools:[],skills:[],mcpServers:[]},error:"no agent"});let s=this.agents.find(i=>i?.id===e);if(!lr(s))return Promise.resolve({catalog:{tools:[],skills:[],mcpServers:[]},error:"The selected Agent does not support Plugins; upgrade and restart the Agent"});let n=this.pluginCatalogKey(e,t),r=`plugins-catalog-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return this.pluginCatalogRequestByKey={...this.pluginCatalogRequestByKey,[n]:r},this.pluginCatalogByKey={...this.pluginCatalogByKey,[n]:{...this.pluginCatalogByKey[n]||{},loading:!0,error:null}},new Promise(i=>{let o=setTimeout(()=>{this._pluginPending?.[r]&&(delete this._pluginPending[r],this.pluginCatalogRequestByKey?.[n]===r&&(this.pluginCatalogByKey={...this.pluginCatalogByKey,[n]:{...this.pluginCatalogByKey[n]||{},loading:!1,error:"timeout"}}),i({catalog:{tools:[],skills:[],mcpServers:[]},error:"timeout"}))},1e4);this._pluginPending[r]={resolve:i,timer:o,kind:"catalog",agentId:e,key:n},this.sendWsMessage({type:"yeaft_plugin_catalog",agentId:e,requestId:r,workDir:String(t||"").trim()})})},enterWorkCenterFromSession(e,t=""){if(!e?.id)return;let s=e.agentId||Oe(this,e.id),n=String(t||e.title||e.name||"").trim();this.workCenterCreateDraft={sourceAgentId:s,requirement:n,workDir:String(e.workDir||"").trim(),origin:{sessionId:e.id,messageId:null,createdBy:"user"},linkedSessionIds:[e.id]},this.enterWorkCenter(s)},hydrateWorkCenterBrowserState(){this._workCenterBrowserUnsubscribe||(this._workCenterBrowserUnsubscribe=Du(()=>{or(this._workCenterBrowserFence)||this.clearWorkCenterBrowserState()}));let e=ir();if(!e)return this._workCenterBrowserFence=null,this.workCenterComposerDrafts={},this.workCenterMessageOutbox={},this.clearWorkCenterActivityState(),!1;if(!or(this._workCenterBrowserFence)){this.clearWorkCenterActivityState();let t=Eu(e);this._workCenterBrowserFence=e,this.workCenterComposerDrafts=t.drafts,this.workCenterMessageOutbox=t.outbox}return!0},clearWorkCenterBrowserState(){this._workCenterBrowserFence=null,this.workCenterComposerDrafts={},this.workCenterMessageOutbox={},this.clearWorkCenterActivityState()},clearWorkCenterActivityState(){this._workCenterActivityOwnerGeneration=Number(this._workCenterActivityOwnerGeneration||0)+1,this.workCenterActivityByAgent={},this.workCenterActivityLoadingByAgent={},this.workCenterActivityErrorByAgent={},this._workCenterActivityGenerationByAgent={},this._workCenterActivityEventGenerationByAgent={},this._workCenterActivityEventsByAgent={};for(let e of["_workCenterListGenerationByAgent","_workCenterDetailRequestGenerationByAgent"])this[e]=Object.fromEntries(Object.entries(this[e]||{}).map(([t,s])=>[t,Number(s||0)+1]));for(let e of["workCenterItemsByAgent","workCenterDetailByAgent","workCenterLoadedByAgent","workCenterLoadingByAgent","workCenterErrorByAgent","workCenterListPageByAgent","workCenterListMoreLoadingByAgent","workCenterWatcherByAgent","_workCenterListQueryByAgent","_workCenterListFiltersByAgent","_workCenterListMoreRequestsByAgent","_workCenterListEventsByAgent","_workCenterDetailRequestFenceByAgent","_workCenterDetailEventRefreshByAgent"])this[e]={}},workCenterComposerKey(e,t){return Bs(e,t)},saveWorkCenterComposerDraft(e,t,s={}){let n=Bs(e,t);if(!e||!t)return;let r=Pt(s.quote),i={...this.workCenterComposerDrafts||{},[n]:{text:String(s.text||""),...r?{quote:r}:{},attachments:Array.isArray(s.attachments)?s.attachments:[],target:gS(s.target),error:String(s.error||"")}};return Cl(i,this._workCenterBrowserFence)?(this.workCenterComposerDrafts=i,!0):!1},loadWorkCenterComposerDraft(e,t){return this.workCenterComposerDrafts?.[Bs(e,t)]||null},removeWorkCenterComposerDraft(e,t){let s=Bs(e,t),n={...this.workCenterComposerDrafts||{}};return delete n[s],Cl(n,this._workCenterBrowserFence)?(this.workCenterComposerDrafts=n,!0):!1},prepareWorkCenterMessageEnvelope(e={}){let t=fS(e),s=Bs(t.agentId,t.workItemId),n=this.workCenterMessageOutbox?.[s]||null;if(n)return n;let r={...t,clientMessageId:globalThis.crypto?.randomUUID?.()||`${Date.now()}-${Math.random()}`,createdAt:Date.now()},i={...this.workCenterMessageOutbox||{},[s]:r};return si(i,this._workCenterBrowserFence)?(this.workCenterMessageOutbox=i,r):null},loadWorkCenterMessageEnvelope(e,t){return this.workCenterMessageOutbox?.[Bs(e,t)]||null},replaceWorkCenterMessageEnvelopeAttachments(e,t,s=[]){let n=Bs(e,t),r=this.workCenterMessageOutbox?.[n];if(!r)return null;let i={...r,attachments:Array.isArray(s)?s.map(a=>({fileId:a?.fileId||"",name:a?.name||"",mimeType:a?.mimeType||"",size:Math.max(0,Number(a?.size)||0)})):[]},o={...this.workCenterMessageOutbox||{},[n]:i};return si(o,this._workCenterBrowserFence)?(this.workCenterMessageOutbox=o,i):null},discardWorkCenterMessageEnvelope(e,t){let s=Bs(e,t),n={...this.workCenterMessageOutbox||{}};return delete n[s],si(n,this._workCenterBrowserFence)?(this.workCenterMessageOutbox=n,!0):!1},confirmWorkCenterMessageEnvelope(e,t,s){let n=Bs(e,t),r=this.workCenterMessageOutbox?.[n];if(!r||r.clientMessageId!==s)return!1;let i={...this.workCenterMessageOutbox||{}};return delete i[n],si(i,this._workCenterBrowserFence)?(this.workCenterMessageOutbox=i,this.removeWorkCenterComposerDraft(e,t),!0):!1},workCenterRequest(e,t={},s=null){let n=s||this.workCenterAgentId||this.currentAgent;if(!n)return Promise.reject(new Error("No Agent selected"));let r=`work-center-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((i,o)=>{let a=setTimeout(()=>{delete this.workCenterPending[r],o(new Error("Work Center request timed out"))},3e4);this.workCenterPending[r]={resolve:i,reject:o,timer:a,agentId:n,op:e,clientMessageId:typeof t.clientMessageId=="string"?t.clientMessageId:null},this.sendWsMessage({type:"work_center_request",agentId:n,requestId:r,op:e,payload:t})})},workItemMatchesBoardQuery(e,t={}){if(!e||t.lane&&e.boardLane!==t.lane||t.vpId&&!(e.executors||[]).some(n=>n?.id===t.vpId)||t.workItemType&&e.workItemType!==t.workItemType||t.updatedFrom&&Number(e.updatedAt)<Number(t.updatedFrom)||t.updatedTo&&Number(e.updatedAt)>Number(t.updatedTo))return!1;let s=String(t.keyword||"").trim().toLowerCase();return!s||String(e.title||"").toLowerCase().includes(s)||String(e.goal||"").toLowerCase().includes(s)},applyWorkItemBoardSummary(e,t,s={}){let n=Vt(e,t),r=n.find(i=>i?.id===t?.id)||null;return!r||this.workItemMatchesBoardQuery(r,s)?n:n.filter(i=>i.id!==r.id)},workItemIsActive(e){return!!e&&Af.includes(e.status)&&!["done","cancelled"].includes(e.lifecycle)},applyWorkItemActivitySummary(e,t){let s=Vt(e,t),n=s.find(r=>r?.id===t?.id)||null;return!n||this.workItemIsActive(n)?s:s.filter(r=>r.id!==n.id)},syncWorkCenterActivity(e,t){if(!t?.id||this.workItemDeleted(e,t.id))return;let s=this._workCenterActivityEventsByAgent[e]?.[t.id]?.summary,n=this.workCenterActivityByAgent[e]||[],r=Vt(Vt(n,s),t).find(o=>o.id===t.id),i=Number(this._workCenterActivityEventGenerationByAgent[e]||0)+1;this._workCenterActivityEventGenerationByAgent={...this._workCenterActivityEventGenerationByAgent,[e]:i},this._workCenterActivityEventsByAgent={...this._workCenterActivityEventsByAgent,[e]:{...this._workCenterActivityEventsByAgent[e]||{},[t.id]:{generation:i,summary:r}}},this.workCenterActivityByAgent={...this.workCenterActivityByAgent,[e]:this.applyWorkItemActivitySummary(n,r)}},async loadWorkCenterActivity(e=null){let t=e||this.workCenterAgentId||this.currentAgent;if(!t)return[];let s=Number(this._workCenterActivityGenerationByAgent[t]||0)+1,n=Zo(this),r=Number(this._workCenterActivityEventGenerationByAgent[t]||0);this._workCenterActivityGenerationByAgent={...this._workCenterActivityGenerationByAgent,[t]:s},this.workCenterActivityLoadingByAgent={...this.workCenterActivityLoadingByAgent,[t]:!0},this.workCenterActivityErrorByAgent={...this.workCenterActivityErrorByAgent,[t]:null};try{let i=await Promise.all(Af.map(async d=>{let u=[],p=new Set,g=null;for(let f=0;f<uS;f+=1){let v={status:d,limit:dS};g&&(v.cursor=g);let h=await this.workCenterRequest("list",v,t);if(!As(this,n))return[];Array.isArray(h?.items)&&u.push(...h.items);let b=typeof h?.nextCursor=="string"&&h.nextCursor?h.nextCursor:null;if(!b||p.has(b))break;p.add(b),g=b}return u}));if(!(this._workCenterActivityGenerationByAgent[t]===s&&As(this,n)))return i.flat();let a=new Map((this.workCenterActivityByAgent[t]||[]).map(d=>[d.id,d])),c=this._workCenterActivityEventsByAgent[t]||{},l=[];for(let d of i.flat()){if(!d?.id||this.workItemDeleted(t,d.id))continue;let u=c[d.id]?.summary,p=a.get(d.id);u&&(p=Vt(p?[p]:[],u)[0]);let g=Vt(p?[p]:[],d)[0]||d;l=this.applyWorkItemActivitySummary(l,g)}for(let d of Object.values(this._workCenterActivityEventsByAgent[t]||{}))Number(d?.generation)<=r||(l=this.applyWorkItemActivitySummary(l,d.summary));return this.workCenterActivityByAgent={...this.workCenterActivityByAgent,[t]:l},l}catch(i){throw this._workCenterActivityGenerationByAgent[t]===s&&As(this,n)&&(this.workCenterActivityErrorByAgent={...this.workCenterActivityErrorByAgent,[t]:i?.message||String(i)}),i}finally{this._workCenterActivityGenerationByAgent[t]===s&&As(this,n)&&(this.workCenterActivityLoadingByAgent={...this.workCenterActivityLoadingByAgent,[t]:!1})}},async listWorkItems(e=null,t={}){let s=e||this.workCenterAgentId||this.currentAgent;if(!s)return[];let n={lane:["needs_attention","active","closed"].includes(t.lane)?t.lane:null,keyword:String(t.keyword||t.search||"").trim(),vpId:String(t.vpId||"").trim(),workItemType:String(t.workItemType||"").trim(),createdFrom:Number(t.createdFrom)||null,createdTo:Number(t.createdTo)||null,updatedFrom:Number(t.updatedFrom)||null,updatedTo:Number(t.updatedTo)||null,limit:Math.min(Math.max(Number(t.limit)||100,1),200)},r=Zo(this),i=JSON.stringify(n),o=Number(this._workCenterListGenerationByAgent[s]||0)+1,a=Number(this._workCenterListEventGenerationByAgent[s]||0);this._workCenterListGenerationByAgent={...this._workCenterListGenerationByAgent,[s]:o},this._workCenterListQueryByAgent={...this._workCenterListQueryByAgent,[s]:i},this._workCenterListFiltersByAgent={...this._workCenterListFiltersByAgent,[s]:n},this.workCenterLoadingByAgent={...this.workCenterLoadingByAgent,[s]:!0},this.workCenterErrorByAgent={...this.workCenterErrorByAgent,[s]:null};try{let c=await this.workCenterRequest("list",n,s),l=(Array.isArray(c?.items)?c.items:[]).filter(u=>!this.workItemDeleted(s,u?.id));if(As(this,r)&&this._workCenterListGenerationByAgent[s]===o&&this._workCenterListQueryByAgent[s]===i&&this.workCenterAgentId===s){let u=this._workCenterListEventsByAgent[s]||{},p=new Map((this.workCenterItemsByAgent[s]||[]).map(f=>[f.id,f])),g=l.flatMap(f=>{let v=u[f.id]?.summary,h=Vt(v?[v]:[],p.get(f.id)),b=Vt(h,f)[0];return this.syncWorkCenterActivity(s,b),this.workItemMatchesBoardQuery(b,n)?[b]:[]});for(let f of Object.values(u))Number(f?.generation)<=a||f?.queryKey!==i||(g=this.applyWorkItemBoardSummary(g,f.summary,n));this.workCenterItemsByAgent={...this.workCenterItemsByAgent,[s]:g},this.workCenterListPageByAgent={...this.workCenterListPageByAgent,[s]:{nextCursor:c?.nextCursor||null,queryKey:i}},this.workCenterWatcherByAgent={...this.workCenterWatcherByAgent,[s]:c?.watcher||null},this.workCenterLoadedByAgent={...this.workCenterLoadedByAgent,[s]:!0}}return l}catch(c){throw As(this,r)&&this._workCenterListGenerationByAgent[s]===o&&this._workCenterListQueryByAgent[s]===i&&(this.workCenterErrorByAgent={...this.workCenterErrorByAgent,[s]:c?.message||String(c)}),c}finally{As(this,r)&&this._workCenterListGenerationByAgent[s]===o&&this._workCenterListQueryByAgent[s]===i&&(this.workCenterLoadingByAgent={...this.workCenterLoadingByAgent,[s]:!1})}},async loadMoreWorkItems(e=null){let t=e||this.workCenterAgentId||this.currentAgent,s=this.workCenterListPageByAgent[t],n=this._workCenterListFiltersByAgent[t];if(!t||!s?.nextCursor||!n)return[];let r=Zo(this),i=s.queryKey,o=this._workCenterListGenerationByAgent[t],a=Number(this._workCenterListEventGenerationByAgent[t]||0),c=s.nextCursor,l=`${o}:${i}:${c}`;if(this._workCenterListMoreRequestsByAgent[t]?.key===l)return this._workCenterListMoreRequestsByAgent[t].request;this.workCenterListMoreLoadingByAgent={...this.workCenterListMoreLoadingByAgent,[t]:!0};let d=(async()=>{try{let u=await this.workCenterRequest("list",{...n,cursor:c},t),p=this.workCenterListPageByAgent[t];if(!As(this,r)||this._workCenterListGenerationByAgent[t]!==o||this._workCenterListQueryByAgent[t]!==i||p?.queryKey!==i||p?.nextCursor!==c||this.workCenterAgentId!==t)return[];let g=[...this.workCenterItemsByAgent[t]||[]],f=this._workCenterListEventsByAgent[t]||{};for(let v of Array.isArray(u?.items)?u.items:[]){if(this.workItemDeleted(t,v?.id))continue;let h=g.findIndex(w=>w.id===v.id),b=f[v.id]?.summary,m=Vt(b?[b]:[],h<0?null:g[h]),k=Vt(m,v)[0];this.syncWorkCenterActivity(t,k),h>=0&&g.splice(h,1),this.workItemMatchesBoardQuery(k,n)&&g.splice(h<0?g.length:h,0,k)}for(let v of Object.values(f))Number(v?.generation)<=a||v?.queryKey!==i||(g=this.applyWorkItemBoardSummary(g,v.summary,n));return this.workCenterItemsByAgent={...this.workCenterItemsByAgent,[t]:g},this.workCenterListPageByAgent={...this.workCenterListPageByAgent,[t]:{nextCursor:u?.nextCursor||null,queryKey:i}},u?.items||[]}finally{if(As(this,r)&&this._workCenterListMoreRequestsByAgent[t]?.key===l){let u={...this._workCenterListMoreRequestsByAgent};delete u[t],this._workCenterListMoreRequestsByAgent=u,this.workCenterListMoreLoadingByAgent={...this.workCenterListMoreLoadingByAgent,[t]:!1}}}})();return this._workCenterListMoreRequestsByAgent={...this._workCenterListMoreRequestsByAgent,[t]:{key:l,request:d}},d},workItemDeleted(e,t){return!!this._workCenterDeletedIdsByAgent[e]?.[t]},removeWorkItemState(e,t){this._workCenterDeletedIdsByAgent={...this._workCenterDeletedIdsByAgent,[e]:{...this._workCenterDeletedIdsByAgent[e]||{},[t]:!0}},this.beginWorkCenterDetailWrite(e),this.workCenterItemsByAgent={...this.workCenterItemsByAgent,[e]:(this.workCenterItemsByAgent[e]||[]).filter(n=>n.id!==t)},this.workCenterActivityByAgent={...this.workCenterActivityByAgent,[e]:(this.workCenterActivityByAgent[e]||[]).filter(n=>n.id!==t)},this.workCenterDetailByAgent[e]?.id===t&&(this.workCenterDetailByAgent={...this.workCenterDetailByAgent,[e]:null});let s=`${e}:${t}:`;for(let n of["workCenterActionMessages","workCenterActionMessagesLoading","workCenterActionMessagesError","workCenterActionRequests","workCenterActionRequestsLoading","workCenterActionRequestsError","workCenterActionRequestDetails","workCenterActionRequestDetailsLoading","workCenterActionRequestDetailsError","_workCenterActionMessageRequests","_workCenterActionMessageGenerationByKey","_workCenterActionRequestsGeneration","_workCenterActionRequestDetailsGeneration"]){let r={};for(let[i,o]of Object.entries(this[n]||{}))i.startsWith(s)||(r[i]=o);this[n]=r}},beginWorkCenterDetailWrite(e){let t=Number(this._workCenterDetailRequestGenerationByAgent[e]||0)+1;return this._workCenterDetailRequestGenerationByAgent={...this._workCenterDetailRequestGenerationByAgent,[e]:t},this._workCenterDetailRequestFenceByAgent={...this._workCenterDetailRequestFenceByAgent,[e]:Zo(this)},t},commitWorkCenterDetail(e,t,s){if(t?.id&&this.workItemDeleted(e,t.id)||s!=null&&(Number(this._workCenterDetailRequestGenerationByAgent[e]||0)!==s||!As(this,this._workCenterDetailRequestFenceByAgent?.[e])))return!1;let n=this.workCenterDetailByAgent[e],r=wc(n,t);return n&&r===n?!1:(this.workCenterDetailByAgent={...this.workCenterDetailByAgent,[e]:r},this.syncWorkCenterActivity(e,pf(r)),!0)},async getWorkItem(e,t=null){let s=t||this.workCenterAgentId||this.currentAgent,n=this.beginWorkCenterDetailWrite(s),r=await this.workCenterRequest("get",{id:e},s);return this.commitWorkCenterDetail(s,r,n),this.workCenterDetailByAgent[s]||r},invalidateWorkItemActionMessages(e,t,s,n){if(!e||!t||!s)return null;let r=jt(n),i=Cr(e,t,s,r);this._workCenterActionMessageGenerationByKey={...this._workCenterActionMessageGenerationByKey,[i]:Number(this._workCenterActionMessageGenerationByKey[i]||0)+1};for(let a of["workCenterActionMessages","workCenterActionMessagesLoading","workCenterActionMessagesError"]){let c={...this[a]};delete c[i],this[a]=c}let o={...this._workCenterActionMessageRequests};for(let a of Object.keys(o))a.startsWith(`${i}:`)&&delete o[a];return this._workCenterActionMessageRequests=o,i},async loadWorkItemActionMessages(e,t,s,n,r=null){let i=r||this.workCenterAgentId||this.currentAgent,o=jt(s),a=Cr(i,e,t,o),c=Number(this._workCenterActionMessageGenerationByKey[a]||0),l=`${a}:${n==null?"latest":String(n)}`;if(this._workCenterActionMessageRequests[l])return this._workCenterActionMessageRequests[l];this.workCenterActionMessagesLoading={...this.workCenterActionMessagesLoading,[a]:!0},this.workCenterActionMessagesError={...this.workCenterActionMessagesError,[a]:null};let d=(async()=>{try{let u=await this.workCenterRequest("get_action_messages",{id:e,actionId:t,generation:o,cursor:n,limit:20},i);if(this.workItemDeleted(i,e)||jt(u?.generation)!==o||Number(this._workCenterActionMessageGenerationByKey[a]||0)!==c)return u;let p=this.workCenterActionMessages[a]?.messages||[],g=Ii(p,u?.messages||[]),f=this.workCenterActionMessages[a],v=f?.nextCursor,h=n==null?null:Number(n),b=v==null?null:Number(v),m=!f||h==null||b!=null&&h===b;return this.workCenterActionMessages={...this.workCenterActionMessages,[a]:{generation:o,messages:g,nextCursor:m?u?.nextCursor??null:v,total:Math.max(Number(u?.total)||0,Number(f?.total)||0,g.length)}},u}catch(u){throw Number(this._workCenterActionMessageGenerationByKey[a]||0)===c&&(this.workCenterActionMessagesError={...this.workCenterActionMessagesError,[a]:u?.message||String(u)}),u}finally{if(this._workCenterActionMessageRequests[l]===d){let u={...this._workCenterActionMessageRequests};delete u[l],this._workCenterActionMessageRequests=u;let p=Object.keys(u).some(g=>g.startsWith(`${a}:`));this.workCenterActionMessagesLoading={...this.workCenterActionMessagesLoading,[a]:p}}}})();return this._workCenterActionMessageRequests={...this._workCenterActionMessageRequests,[l]:d},d},async loadWorkItemActionRequests(e,t,s,n=null){let r=n||this.workCenterAgentId||this.currentAgent,i=jt(s),o=hc(r,e,t,i),a=Number(this._workCenterActionRequestsGeneration[o]||0)+1;this._workCenterActionRequestsGeneration={...this._workCenterActionRequestsGeneration,[o]:a},this.workCenterActionRequestsLoading={...this.workCenterActionRequestsLoading,[o]:!0},this.workCenterActionRequestsError={...this.workCenterActionRequestsError,[o]:null};try{let c=await this.workCenterRequest("get_action_requests",{id:e,actionId:t,generation:i},r),l=!this.workItemDeleted(r,e)&&jt(c?.generation)===i&&this._workCenterActionRequestsGeneration[o]===a;return l&&(this.workCenterActionRequests={...this.workCenterActionRequests,[o]:c?.requests||[]}),l?c?.requests||[]:this.workCenterActionRequests[o]||[]}catch(c){throw this._workCenterActionRequestsGeneration[o]===a&&(this.workCenterActionRequestsError={...this.workCenterActionRequestsError,[o]:c?.message||String(c)}),c}finally{this._workCenterActionRequestsGeneration[o]===a&&(this.workCenterActionRequestsLoading={...this.workCenterActionRequestsLoading,[o]:!1})}},async loadWorkItemActionRequest(e,t,s,n,r,i=null){let o=i||this.workCenterAgentId||this.currentAgent,a=jt(s),l=`${hc(o,e,t,a)}:${n}:${r}`,d=Number(this._workCenterActionRequestDetailsGeneration[l]||0)+1;this._workCenterActionRequestDetailsGeneration={...this._workCenterActionRequestDetailsGeneration,[l]:d},this.workCenterActionRequestDetailsLoading={...this.workCenterActionRequestDetailsLoading,[l]:!0},this.workCenterActionRequestDetailsError={...this.workCenterActionRequestDetailsError,[l]:null};try{let u=await this.workCenterRequest("get_action_request",{id:e,actionId:t,generation:a,runId:n,requestId:r},o),p=!this.workItemDeleted(o,e)&&jt(u?.generation)===a&&this._workCenterActionRequestDetailsGeneration[l]===d;return p&&(this.workCenterActionRequestDetails={...this.workCenterActionRequestDetails,[l]:u?.request||null}),p?u?.request||null:this.workCenterActionRequestDetails[l]||null}catch(u){throw this._workCenterActionRequestDetailsGeneration[l]===d&&(this.workCenterActionRequestDetailsError={...this.workCenterActionRequestDetailsError,[l]:u?.message||String(u)}),u}finally{this._workCenterActionRequestDetailsGeneration[l]===d&&(this.workCenterActionRequestDetailsLoading={...this.workCenterActionRequestDetailsLoading,[l]:!1})}},async loadWorkCenterSettings(e=null){let t=e||this.workCenterAgentId||this.currentAgent;if(!t)throw new Error("No Agent selected");let s=Number(this._workCenterSettingsGenerationByAgent[t]||0)+1;this._workCenterSettingsGenerationByAgent={...this._workCenterSettingsGenerationByAgent,[t]:s},this.workCenterSettingsLoadingByAgent={...this.workCenterSettingsLoadingByAgent,[t]:!0},this.workCenterSettingsErrorByAgent={...this.workCenterSettingsErrorByAgent,[t]:null};try{let n=await this.workCenterRequest("get_settings",{},t);return this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsByAgent={...this.workCenterSettingsByAgent,[t]:n?.settings||null},this.workCenterRuntimeByAgent={...this.workCenterRuntimeByAgent,[t]:n?.runtime||null}),n}catch(n){throw this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsErrorByAgent={...this.workCenterSettingsErrorByAgent,[t]:n?.message||String(n)}),n}finally{this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsLoadingByAgent={...this.workCenterSettingsLoadingByAgent,[t]:!1})}},async refreshWorkCenterRuntime(e=null){let t=e||this.workCenterAgentId||this.currentAgent;if(!t)throw new Error("No Agent selected");let s=Number(this._workCenterSettingsGenerationByAgent[t]||0)+1;this._workCenterSettingsGenerationByAgent={...this._workCenterSettingsGenerationByAgent,[t]:s},this.workCenterSettingsLoadingByAgent={...this.workCenterSettingsLoadingByAgent,[t]:!0},this.workCenterSettingsErrorByAgent={...this.workCenterSettingsErrorByAgent,[t]:null};try{let n=await this.workCenterRequest("refresh_runtime",{},t);return this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsByAgent={...this.workCenterSettingsByAgent,[t]:n?.settings||null},this.workCenterRuntimeByAgent={...this.workCenterRuntimeByAgent,[t]:n?.runtime||null}),n}catch(n){throw this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsErrorByAgent={...this.workCenterSettingsErrorByAgent,[t]:n?.message||String(n)}),n}finally{this._workCenterSettingsGenerationByAgent[t]===s&&(this.workCenterSettingsLoadingByAgent={...this.workCenterSettingsLoadingByAgent,[t]:!1})}},async saveWorkCenterSettings(e,t=null){let s=t||this.workCenterAgentId||this.currentAgent;if(!s)throw new Error("No Agent selected");let n=Number(this._workCenterSettingsGenerationByAgent[s]||0)+1;this._workCenterSettingsGenerationByAgent={...this._workCenterSettingsGenerationByAgent,[s]:n};let r=await this.workCenterRequest("update_settings",{settings:e},s);return this._workCenterSettingsGenerationByAgent[s]===n&&(this.workCenterSettingsByAgent={...this.workCenterSettingsByAgent,[s]:r?.settings||null},this.workCenterRuntimeByAgent={...this.workCenterRuntimeByAgent,[s]:r?.runtime||null},this.workCenterSettingsErrorByAgent={...this.workCenterSettingsErrorByAgent,[s]:null}),r},previewWorkCenterPlan(e={},t=null){let s=t||this.workCenterAgentId||this.currentAgent;return this.workCenterRequest("preview",e,s)},async loadWorkCenterDeliveryInstructions(e=null){let t=e||this.workCenterAgentId||this.currentAgent;if(!t)return[];let s=Number(this._workCenterDeliveryInstructionsGenerationByAgent[t]||0)+1;this._workCenterDeliveryInstructionsGenerationByAgent={...this._workCenterDeliveryInstructionsGenerationByAgent,[t]:s};let n=await this.workCenterRequest("list_delivery_instructions",{limit:12},t);return this._workCenterDeliveryInstructionsGenerationByAgent[t]===s&&(this.workCenterDeliveryInstructionsByAgent={...this.workCenterDeliveryInstructionsByAgent,[t]:Array.isArray(n?.values)?n.values:[]}),this.workCenterDeliveryInstructionsByAgent[t]||[]},async createWorkItem(e,t=null){let s=t||this.workCenterAgentId||this.currentAgent,n=this.beginWorkCenterDetailWrite(s),r=await this.workCenterRequest("create",e,s);return await this.listWorkItems(s,this._workCenterListFiltersByAgent[s]||{}),this.commitWorkCenterDetail(s,r,n),r},async updateWorkItem(e,t,s=null){let n=s||this.workCenterAgentId||this.currentAgent,r=this.beginWorkCenterDetailWrite(n),i=await this.workCenterRequest("update",{id:e,patch:t},n);return await this.listWorkItems(n,this._workCenterListFiltersByAgent[n]||{}),this.commitWorkCenterDetail(n,i,r),i},async updateWorkItemSchedule(e,t,s=null){let n=s||this.workCenterAgentId||this.currentAgent,r=this.beginWorkCenterDetailWrite(n),i=await this.workCenterRequest("update_schedule",{id:e,schedule:t},n);return await this.listWorkItems(n,this._workCenterListFiltersByAgent[n]||{}),this.commitWorkCenterDetail(n,i,r),i},async startWorkItem(e,t=null){let s=t||this.workCenterAgentId||this.currentAgent,n=this.beginWorkCenterDetailWrite(s),r=await this.workCenterRequest("start",{id:e},s);return await this.listWorkItems(s,this._workCenterListFiltersByAgent[s]||{}),this.commitWorkCenterDetail(s,r,n),r},async cancelWorkItem(e,t=null){let s=t||this.workCenterAgentId||this.currentAgent,n=this.beginWorkCenterDetailWrite(s),r=await this.workCenterRequest("cancel",{id:e},s);return await this.listWorkItems(s,this._workCenterListFiltersByAgent[s]||{}),this.commitWorkCenterDetail(s,r,n),r},async resumeWorkItem(e,t,s=null,n=void 0){let r=s||this.workCenterAgentId||this.currentAgent,i=this.beginWorkCenterDetailWrite(r),o={id:e,revision:t};n!=null&&(o.executionControlRevision=n);let a=await this.workCenterRequest("resume",o,r);return await this.listWorkItems(r,this._workCenterListFiltersByAgent[r]||{}),this.commitWorkCenterDetail(r,a,i),a},async extendWorkItemBudget(e,t,s,n=null){let r=n||this.workCenterAgentId||this.currentAgent,i=this.beginWorkCenterDetailWrite(r),o=await this.workCenterRequest("extend_budget",{id:e,executionControlRevision:t,additions:s},r);return await this.listWorkItems(r,this._workCenterListFiltersByAgent[r]||{}),this.commitWorkCenterDetail(r,o,i),o},async deleteWorkItem(e,t,s=null){let n=s||this.workCenterAgentId||this.currentAgent,r=await this.workCenterRequest("delete",{id:e,revision:t},n);return this.removeWorkItemState(n,e),r},async postWorkItemMessage(e,t,s,n,r=[],i=null,o={},a=null){if(!this.hydrateWorkCenterBrowserState())throw new Error("Work Center browser owner is unavailable; sign in again and retry");let c=i||this.workCenterAgentId||this.currentAgent,l=this.prepareWorkCenterMessageEnvelope({agentId:c,workItemId:e,target:s,text:t,quote:a,attachments:r,revision:n,planRevision:o.planRevision,ledgerRevision:o.ledgerRevision,coordinatorRevision:o.coordinatorRevision});if(!l)throw new Error("Work Center browser owner changed; reopen Work Center and try again");let d=l.clientMessageId,u=this.workCenterDetailByAgent[c]?.id===e?this.workCenterDetailByAgent[c]:null,p=await this.workCenterRequest("post_work_item_message",{id:l.workItemId,clientMessageId:d,text:l.text,target:l.target,revision:l.revision,planRevision:l.planRevision||Number(u?.planRevision)||0,ledgerRevision:l.ledgerRevision||Number(u?.ledgerRevision)||0,coordinatorRevision:Number.isInteger(Number(l.coordinatorRevision))?Number(l.coordinatorRevision):Number(u?.coordinatorRevision)||0,...l.quote?{quote:l.quote}:{},attachments:l.attachments},c);if(l.target.kind==="coordinator"){if(!p?.accepted)throw new Error("Work Center Coordinator did not accept the message");return this.confirmWorkCenterMessageEnvelope(c,e,d),p}return await this.listWorkItems(c,this._workCenterListFiltersByAgent[c]||{}),this.confirmWorkCenterMessageEnvelope(c,e,d),p},async sendWorkItemMessage(e,t,s,n=[],r=null,i={},o=null){let a=r||this.workCenterAgentId||this.currentAgent,c=this.workCenterDetailByAgent[a]?.id===e?this.workCenterDetailByAgent[a]:null,l=await this.workCenterRequest("work_item_message",{id:e,text:t,revision:s,planRevision:Number.isInteger(Number(i.planRevision))?Number(i.planRevision):Number(c?.planRevision)||0,ledgerRevision:Number.isInteger(Number(i.ledgerRevision))?Number(i.ledgerRevision):Number(c?.ledgerRevision)||0,coordinatorRevision:Number.isInteger(Number(i.coordinatorRevision))?Number(i.coordinatorRevision):Number(c?.coordinatorRevision)||0,...Pt(o)?{quote:Pt(o)}:{},attachments:Array.isArray(n)?n:[]},a);if(!l?.accepted)throw new Error("Work Center Coordinator did not accept the message");return l},async retryWorkItemAction(e,t,s,n,r=null){let i=r||this.workCenterAgentId||this.currentAgent,o=this.beginWorkCenterDetailWrite(i),a=await this.workCenterRequest("retry_action",{id:e,actionId:t,revision:s,generation:n},i);return await this.listWorkItems(i,this._workCenterListFiltersByAgent[i]||{}),this.commitWorkCenterDetail(i,a,o),a},async sendWorkItemActionInput(e,t,s,n,r,i=[],o=null,a=null){let c=o||this.workCenterAgentId||this.currentAgent,l=Number(this._workCenterActionInputGenerationByAgent[c]||0)+1;this._workCenterActionInputGenerationByAgent={...this._workCenterActionInputGenerationByAgent,[c]:l};let d=Pt(a),u=await this.workCenterRequest("action_input",{id:e,text:t,actionId:s,revision:n,generation:r,attachments:i,...d?{quote:d}:{}},c);await this.listWorkItems(c,this._workCenterListFiltersByAgent[c]||{});let p=this.workCenterDetailByAgent[c],g=p?.actions?.find(h=>h?.id===s),f=p?.id===e&&Number(p.revision)===Number(n)&&g&&Number(g.generation)===Number(r),v=wc(p,u);return this._workCenterActionInputGenerationByAgent[c]===l&&f&&!af(v,p)?(this.workCenterDetailByAgent={...this.workCenterDetailByAgent,[c]:v},v):p?.id===e?p:u},async guideWorkItemAction(e,t,s,n,r,i=[],o=null){let a=o||this.workCenterAgentId||this.currentAgent,c=this.beginWorkCenterDetailWrite(a),l=await this.workCenterRequest("guide",{id:e,guidance:t,actionId:s,revision:n,generation:r,attachments:i},a);return await this.listWorkItems(a,this._workCenterListFiltersByAgent[a]||{}),this.commitWorkCenterDetail(a,l,c),l},previewWorkItemAttachment(e,t,s=null){let n=s||this.workCenterAgentId||this.currentAgent;return this.workCenterRequest("preview_attachment",{id:e,attachmentId:t},n)},applyWorkCenterEvent(e,t){if(!e||!t?.workItem)return;let s=t.workItem;if(t.clientMessageId){this.confirmWorkCenterMessageEnvelope(e,s.id,t.clientMessageId);let p=Object.entries(this.workCenterPending||{}).find(([,g])=>g?.agentId===e&&g.clientMessageId===t.clientMessageId);if(p){let[g,f]=p;clearTimeout(f.timer),delete this.workCenterPending[g],f.resolve(t.type==="coordinator.turn_started"?{accepted:!0,turnId:null,receipt:!0}:t.workItem)}}let n=this.workCenterItemsByAgent[e]||[];if(t.type==="work_item.deleted"){this.removeWorkItemState(e,s.id);return}if(this.workItemDeleted(e,s.id))return;let r=this._workCenterListFiltersByAgent[e]||{},i=this._workCenterListEventsByAgent[e]?.[s.id]?.summary||null,o=i?[i]:[],a=n.find(p=>p?.id===s.id)||null;a&&(o=Vt(o,a));let c=Vt(o,s).find(p=>p?.id===s.id)||s,l=Number(this._workCenterListEventGenerationByAgent[e]||0)+1;this._workCenterListEventGenerationByAgent={...this._workCenterListEventGenerationByAgent,[e]:l},this._workCenterListEventsByAgent={...this._workCenterListEventsByAgent,[e]:{...this._workCenterListEventsByAgent[e]||{},[s.id]:{generation:l,queryKey:this._workCenterListQueryByAgent[e]||null,summary:c}}},this.syncWorkCenterActivity(e,c);let d=this.applyWorkItemBoardSummary(n,c,r);this.workCenterItemsByAgent={...this.workCenterItemsByAgent,[e]:d};let u=this.workCenterDetailByAgent[e];if(u?.id===s.id){let p=t.type==="run.finished"&&t.actionId&&Array.isArray(s.actionStats)&&s.actionStats.some(m=>m?.id===t.actionId)?{...s,eventActionId:t.actionId}:s,g=vc(u,p),f=Number(s.coordinatorRevision),v=Number(u.coordinatorRevision)||0,h=Number.isInteger(f)&&f>v,b=lf(u,p);this.workCenterDetailByAgent={...this.workCenterDetailByAgent,[e]:cf(u,s)},b&&this.refreshWorkItemDetailAfterActionChange(e,s,h?null:g)}},async refreshWorkItemDetailAfterActionChange(e,t,s=null){let n=s?(Array.isArray(t.actionStats)?t.actionStats:[]).find(v=>v?.id===s.actionId):(Array.isArray(t.actionStats)?t.actionStats:[]).find(v=>v?.id===t.currentActionId)||t.currentAction,r=s?.actionId||t.currentActionId||null,i=Number(s?.generation??n?.generation),o=Number.isInteger(i)&&i>0?i:null,a=Number(t.coordinatorRevision),c=!s&&Number.isInteger(a)&&a>=0?a:null,l=Number(s?.attempt),d=Number.isInteger(l)&&l>=0?l:null,u=c!=null?`${t.id}:coordinator:${c}`:`${t.id}:${r}${o==null?"":`:${o}`}${d==null?"":`:${d}`}`;if(this._workCenterDetailEventRefreshByAgent[e]?.key===u)return;let p=this.beginWorkCenterDetailWrite(e),g={key:u,generation:p};this._workCenterDetailEventRefreshByAgent={...this._workCenterDetailEventRefreshByAgent,[e]:g},s&&this.invalidateWorkItemActionMessages(e,t.id,s.actionId,s.generation);let f=r&&o!=null?this.loadWorkItemActionMessages(t.id,r,o,null,e).catch(()=>null):null;try{let v=await this.workCenterRequest("get",{id:t.id},e),h=this.workCenterDetailByAgent[e],b=h?.actions?.find(C=>C?.id===r),m=v?.actions?.find(C=>C?.id===r),k=o==null||jt(b?.generation)===o,w=o==null||jt(m?.generation)>=o,y=c==null||Number(v?.coordinatorRevision)===c,S=c!=null||k&&w&&(t.currentActionId==null?v?.currentActionId==null:h?.currentActionId===t.currentActionId&&v?.currentActionId===t.currentActionId);h?.id===t.id&&y&&S&&this.commitWorkCenterDetail(e,v,p)&&f&&await f}catch{}finally{if(this._workCenterDetailEventRefreshByAgent[e]===g){let v={...this._workCenterDetailEventRefreshByAgent};delete v[e],this._workCenterDetailEventRefreshByAgent=v}}},cacheYeaftAgentStatus(e,t,{allowBootstrapCatalog:s=!1}={}){if(!e||!t)return;let n=this.yeaftStatusByAgent[e]||{},r=Number(n.catalogRevision)||0,i=Number(t.catalogRevision)||0,o=typeof n.catalogEpoch=="string"?n.catalogEpoch:"",a=typeof t.catalogEpoch=="string"?t.catalogEpoch:"",c=Number(n.catalogRefreshedAt)||0,l=Number(t.catalogRefreshedAt)||0,d=Array.isArray(t.availableModels),u=t.type==="yeaft_status"&&d&&(i>0||l>0),p=Array.isArray(this._yeaftRetiredCatalogEpochsByAgent?.[e])?this._yeaftRetiredCatalogEpochsByAgent[e]:[],g=!!a&&p.includes(a),f=!!a&&a===o,v=i>0?f&&i===r:l>0&&l===c,h=i>0?!!a&&(a!==o||i>r):r===0&&l>c,b=i>0?!!t.catalogDigest&&!!n.catalogDigest&&t.catalogDigest===n.catalogDigest:t.catalogDigest===n.catalogDigest,m=u&&!g&&(h||v&&b),w=m||s&&r===0&&c===0&&!u&&d,y={...t};if(!w)for(let C of lS)delete y[C];let S={...n,...y};if(w){if(m&&o&&a&&o!==a){let C=[...p.filter(R=>R!==o),o].slice(-cS);this._yeaftRetiredCatalogEpochsByAgent={...this._yeaftRetiredCatalogEpochsByAgent||{},[e]:C}}S.availableModels=t.availableModels,S.catalogRefreshedAt=m?l:null,S.catalogEpoch=m&&a||null,S.catalogRevision=m&&i||null,S.catalogDigest=m&&t.catalogDigest||null}this.yeaftStatusByAgent={...this.yeaftStatusByAgent,[e]:S},this.currentAgent===e&&this.applyCachedYeaftStatus(e)},applyCachedYeaftStatus(e=this.currentAgent){let t=e?this.yeaftStatusByAgent[e]:null;return t?(this.yeaftModel=t.model||null,this.yeaftModelEffort=t.modelEffort||null,this.yeaftAvailableModels=Array.isArray(t.availableModels)?t.availableModels:[],this.yeaftModelsRefreshing=!!t.refreshing,this.yeaftModelRefreshError=t.refreshError||null,this.yeaftYeaftDir=t.yeaftDir||null,this.yeaftStatus={skills:t.skills,mcpServers:t.mcpServers,tools:t.tools,multiVp:!!t.multiVp},!0):!1},activateYeaftAgentCatalog(e,t=this.currentAgent){let s=e?this.yeaftStatusByAgent[e]:null;return s&&this.applyCachedYeaftStatus(e),Array.isArray(s?.availableModels)?!0:(this.yeaftModel=null,this.yeaftModelEffort=null,this.yeaftAvailableModels=[],s||(this.yeaftStatus=null),this.yeaftModelsRefreshing=!!e&&!s?.refreshError,this.yeaftModelRefreshError=s?.refreshError||null,t!==e&&(this.yeaftYeaftDir=null),!1)},activateYeaftAgent(e,t=null){if(!e)return!1;let s=this.currentAgent;return this.currentAgent=e,t&&(this.currentAgentInfo=t),this.activateYeaftAgentCatalog(e,s)},resolveYeaftSessionAgentId(e){return Oe(this,e)},requestYeaftSessionInventory(){if(this.yeaftSessionInventoryCompleteSupported===!1&&this.yeaftSessionHydrateRequestId)return this.yeaftSessionHydrateRequestId;if(this._yeaftSessionInventorySocketQuarantined)return this.manualReconnect(),null;clearTimeout(this._legacyYeaftSessionHydrateTimer),this._legacyYeaftSessionHydrateTimer=null;let e=`session_inventory_${crypto.randomUUID()}`;this.yeaftSessionHydrateRequestId=e,this.yeaftSessionHydrateSlices=[],this._hasHandledAgentList=!1,this._hasHandledYeaftSessionHydrate=!1,this.yeaftSessionHydrateError=null;let t=this.conversations.map(n=>n.id).filter(Boolean);return this.sendWsMessage({type:"get_agents",requestId:e,conversationIds:t.length>0?t:void 0})?(setTimeout(()=>{this.yeaftSessionHydrateRequestId===e&&(this.yeaftSessionHydrateRequestId=null,this.yeaftSessionHydrateSlices=[],this.yeaftSessionHydrateError="session_inventory_timeout",this.yeaftSessionInventoryCompleteSupported!==!0&&(this._yeaftSessionInventorySocketQuarantined=!0))},rS),e):(this.yeaftSessionHydrateRequestId=null,this.yeaftSessionHydrateSlices=[],this.yeaftSessionHydrateError="session_inventory_send_failed",null)},beginYeaftHistoryLoad(e){let t=hp(this,e);if(!t)return null;let{agentId:s,sessionId:n}=e||{};return setTimeout(()=>{di(this,{agentId:s,sessionId:n,requestId:t.requestId,error:"history_load_timeout"})},fp),t},finishYeaftHistoryLoad(e,t={},s="chunk"){return mp(this,e,t,s)},isCurrentYeaftHistoryResponse(e){return El(this,e)},syncActiveYeaftHistoryLoad(){return Ln(this)},enterYeaft(e=null,{deferBootstrap:t=!1}={}){let s=this.currentAgent;gc(this);let n=pn(this),r=!e&&n?Oe(this,n):null,i=e||r||this.currentAgent||null;if(!i){let a=this.agents.find(c=>c.online);a&&(i=a.id)}if(i&&this.currentAgent!==i){this.selectAgent(i),this.currentAgent=i;let a=this.agents.find(c=>c.id===i);a&&(this.currentAgentInfo=a)}if(!this.applyCachedYeaftStatus(i)&&s&&s!==i&&(this.yeaftAvailableModels=[],this.yeaftStatus=null,this.yeaftModelsRefreshing=!0,this.yeaftModelRefreshError=null),i){let a=this.yeaftConversationIdsByAgent?.[i]||null;a||(a=`yeaft-local-${i}-${Date.now()}`,this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[i]:a}),this.yeaftConversationId=a}else this.yeaftConversationId||(this.yeaftConversationId=`yeaft-local-${Date.now()}`);this.messagesMap[this.yeaftConversationId]||(this.messagesMap[this.yeaftConversationId]=[]),zg(this),this.currentView="yeaft",pc("yeaft"),this.hasMoreMessages=!1,this.loadingMoreMessages=!1,this.yeaftHasMoreHistory=!1,this.yeaftLoadingMoreHistory=!1,this.yeaftOldestLoadedSeq=null,this._yeaftReconnectCatchUpPending=!1,this.loadOpenedYeaftSessionsForConnectedAgents(null,{force:!0}),t||this.requestYeaftSessionBootstrap({forceSessionReady:!0,catchUpHistory:!0,forceHistoryReplay:!0})},loadOpenedYeaftSessionsForConnectedAgents(e=null,{force:t=!1}={}){let s=Array.isArray(e)?e.filter(Boolean):Array.isArray(this.agents)?this.agents.filter(i=>i&&i.online&&i.id).map(i=>i.id):[],n=[...new Set(s)];(!this._yeaftOpenedSessionsLoadedAgents||typeof this._yeaftOpenedSessionsLoadedAgents!="object")&&(this._yeaftOpenedSessionsLoadedAgents={});let r=[];for(let i of n)!t&&this._yeaftOpenedSessionsLoadedAgents[i]||(this._yeaftOpenedSessionsLoadedAgents[i]=Date.now(),r.push(i),this.sessionCrudRequest("list",{},{agentId:i}).catch(o=>{delete this._yeaftOpenedSessionsLoadedAgents[i]}));return r},requestYeaftSessionBootstrap({forceSessionReady:e=!1,catchUpHistory:t=!1,forceHistoryReplay:s=!1}={}){if(!this.currentAgent)return;let n=pn(this),r=n?Oe(this,n):this.currentAgent,i=Ve(r,n),o=n?this.yeaftSessionHistoryState[i]:null,a=e||!this.yeaftSessionReady||!this.yeaftModel||!this.yeaftStatus,c=Number.isFinite(o?.latestSeq)?o.latestSeq:null,l=!!n&&!!this.yeaftConversationId&&Array.isArray(this.messagesMap?.[this.yeaftConversationId])&&this.messagesMap[this.yeaftConversationId].some(m=>m&&(m.sessionId??m.groupId??null)===n),d=!!n&&Mp({sessionState:o,hasCachedSessionRows:l,force:!!s}),u=!!n&&!d&&Tp(o,t);if(!a&&!d&&!u)return!1;let p=`${r}:${n||"__none__"}`,g=a&&!d&&!u;if(g&&this.yeaftBootstrapMetaLoadingKey===p)return!1;g&&(this.yeaftBootstrapMetaLoadingKey=p);let f=null;n&&d?f=this.beginYeaftHistoryLoad({agentId:r,sessionId:n,mode:"recent",preserveLoaded:!1}):n&&l&&!o?.loaded?(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState,[i]:{...o||{},loaded:!0,loading:!1,hasMore:!!o?.hasMore,oldestSeq:Number.isFinite(o?.oldestSeq)?o.oldestSeq:null,count:o?.count||0,latestSeq:c}},this.yeaftLoadingMoreHistory=!1):n&&u&&(f=this.beginYeaftHistoryLoad({agentId:r,sessionId:n,mode:"delta",preserveLoaded:!0,latestSeq:c}));let v={type:"yeaft_load_history",agentId:r,sessionId:n,...f?{requestId:f.requestId}:{}};u?v.afterSeq=c:v.limit=d?Rc:0;let h=Vn();v.perfTraceId=h;let b=u?"delta":d?"recent":"metadata";return n&&(this.yeaftHistoryPerfTraceBySession={...this.yeaftHistoryPerfTraceBySession||{},[i]:h}),Ct(this,{traceId:h,phase:"history.request_send",agentId:r,sessionId:n,messageType:v.type,bytes:JSON.stringify(v).length,detail:{mode:b,limit:v.limit??null,afterSeq:v.afterSeq??null,hasCachedSessionRows:l,needSessionReady:a}}),this.sendWsMessage(v),!0},leaveYeaft(){this.activateChatView({persistPreference:!0})},fetchYeaftToolStats(){this.currentAgent&&(this.yeaftToolStatsLoading=!0,this.sendWsMessage({type:"yeaft_fetch_tool_stats",agentId:this.currentAgent}),this._fetchYeaftToolStatsTimer&&clearTimeout(this._fetchYeaftToolStatsTimer),this._fetchYeaftToolStatsTimer=setTimeout(()=>{this.yeaftToolStatsLoading&&(this.yeaftToolStatsLoading=!1,this.yeaftToolStats={...this.yeaftToolStats||{snapshot:{},registered:[],unused:[]},error:null,notice:"Tool stats are unavailable right now. Try again after the agent reconnects.",fetchedAt:Date.now()}),this._fetchYeaftToolStatsTimer=null},1e4))},loadYeaftDebugHistory({groupId:e,limit:t,indexOnly:s=!1,detailTurnId:n=null,search:r=void 0}={}){let i=Oe(this,e);if(!i)return;let o=typeof r=="string"?r.trim():(this.yeaftDebugSearch||"").trim(),a=typeof n=="string"&&n,c=o&&!a?$f:Lc,l=Number.isFinite(t)&&t>0?t:this.yeaftDebugHistoryLimit||c,d=Math.max(1,Math.min(c,l)),u=a?"detail":"list",p=`dbg_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`,g=JSON.stringify({agentId:i,groupId:e||null,limit:d,indexOnly:!!s,detailTurnId:n||null,search:a?"":o});if(this._yeaftDebugHistoryInFlightKey===g)return;this._yeaftDebugHistoryInFlightKey=g,a?this._yeaftDebugHistoryLatestDetailRequestId=p:this._yeaftDebugHistoryLatestListRequestId=p,this.yeaftDebugHistoryLimit=d,this.yeaftDebugHistoryLoading=!0,this.yeaftDebugHistoryError=null,this.yeaftDebugHistoryProjection=null;let f={type:"yeaft_fetch_debug_history",agentId:i,requestId:p,requestKind:u,limit:d};s&&(f.indexOnly=!0),typeof n=="string"&&n?f.detailTurnId=n:o&&(f.search=o),typeof e=="string"&&e&&(f.sessionId=e),this._yeaftDebugHistoryPending={payload:f,attempt:0,startedAt:Date.now()},kr(this),this.refreshYeaftDebugHistoryTimeout(p),this.sendWsMessage(f)},scheduleYeaftDebugDetailRefresh(e,t){let s=this.yeaftDebugPanel;!s?.open||s.turnId!==t||s.agentId!==e.agentId||s.sessionId&&s.sessionId!==e.sessionId||(this._yeaftDebugDetailDirty=!0,!this._yeaftDebugDetailRefreshTimer&&(this._yeaftDebugDetailRefreshTimer=setTimeout(()=>{this._yeaftDebugDetailRefreshTimer=null,!(!this.yeaftDebugPanel?.open||this.yeaftDebugPanel.requestId!==s.requestId)&&(this.yeaftDebugHistoryLoading||(this._yeaftDebugDetailDirty=!1,this.loadYeaftDebugHistory({groupId:s.sessionId,detailTurnId:s.turnId})))},500)))},refreshYeaftDebugHistoryTimeout(e){let t=this._yeaftDebugHistoryPending;!t||t.payload.requestId!==e||(this._fetchYeaftDebugHistoryTimer&&clearTimeout(this._fetchYeaftDebugHistoryTimer),this._fetchYeaftDebugHistoryTimer=setTimeout(()=>{if(this._yeaftDebugHistoryPending===t){if(this.yeaftDebugHistoryLoading&&t.attempt<1){t.attempt+=1,t.startedAt=Date.now(),t.payload={...t.payload,requestId:`dbg_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`},t.payload.requestKind==="detail"?this._yeaftDebugHistoryLatestDetailRequestId=t.payload.requestId:this._yeaftDebugHistoryLatestListRequestId=t.payload.requestId,kr(this),this.refreshYeaftDebugHistoryTimeout(t.payload.requestId),this.sendWsMessage(t.payload);return}this.yeaftDebugHistoryLoading&&(this.yeaftDebugHistoryLoading=!1,this.yeaftDebugHistoryError="debug_history_timeout",this.yeaftDebugPanel?.status==="loading"&&(this.yeaftDebugPanel={...this.yeaftDebugPanel,status:"error",error:this.yeaftDebugHistoryError})),this._yeaftDebugHistoryInFlightKey=null,this._fetchYeaftDebugHistoryTimer=null,this._yeaftDebugHistoryPending=null,this._yeaftDebugHistoryLatestDetailRequestId=null,this._yeaftDebugHistoryLatestListRequestId=null,kr(this)}},Math.max(0,Math.min(3e4,3e5-(Date.now()-t.startedAt)))))},openYeaftTurnDebug({sessionId:e=null,turnId:t=null}={}){let s=Oe(this,e);if(!s)return;this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.rememberWorkbenchPanelState();let n=`dbgpanel_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`,r=t?"loading":"idle";this.yeaftDebugPanel={open:!0,status:r,requestId:n,agentId:s,sessionId:e||null,turnId:t||null,error:null},t&&this.loadYeaftDebugHistory({groupId:e||void 0,limit:1,detailTurnId:t})},closeYeaftDebugPanel(){this._yeaftDebugDetailRefreshTimer&&clearTimeout(this._yeaftDebugDetailRefreshTimer),this._yeaftDebugDetailRefreshTimer=null,this._yeaftDebugDetailDirty=!1,this._fetchYeaftDebugHistoryTimer&&clearTimeout(this._fetchYeaftDebugHistoryTimer),this._fetchYeaftDebugHistoryTimer=null,this._yeaftDebugHistoryPending=null,this._yeaftDebugHistoryInFlightKey=null,this._yeaftDebugHistoryLatestDetailRequestId=null,this._yeaftDebugHistoryLatestListRequestId=null,this.yeaftDebugHistoryLoading=!1,kr(this);let t=(this.yeaftDebugPanel||{}).turnId||null;if(this.yeaftDebugPanel={open:!1,status:"idle",requestId:null,agentId:null,sessionId:null,turnId:null,error:null},t&&this.yeaftDebugTurnsById&&this.yeaftDebugTurnsById[t]){let s={...this.yeaftDebugTurnsById};delete s[t],this.yeaftDebugTurnsById=s,this.yeaftDebugTurnOrder=(this.yeaftDebugTurnOrder||[]).filter(n=>n!==t),this.yeaftDebugLoops=(this.yeaftDebugLoops||[]).filter(n=>!n||n.turnId!==t)}},agentIdForSession(e){return Oe(this,e)},sendYeaftSessionMessage({groupId:e,text:t,mentions:s,attachments:n,quote:r,quickSend:i}){let o=Oe(this,e);if(!e||!o||i&&(o!==this.currentAgent||this.connectionState!=="connected"||!this.agents?.some(h=>h.id===o&&h.online)))return!1;let a=Array.isArray(n)?n.filter(h=>h&&h.fileId):[],c=Pt(r),l=a.length>0;if(!t?.trim()&&!l)return;let d=t?.trim()?t:"(attached files)",u=Date.now(),p=`u_${u.toString(36)}_${Math.random().toString(36).slice(2,10)}`,g=Vn();this.yeaftPerfTraceByMessageId={...this.yeaftPerfTraceByMessageId||{},[p]:g},Ct(this,{traceId:g,phase:"send.prepare",agentId:o,sessionId:e,turnId:p,messageType:"yeaft_session_send",detail:{mentionCount:Array.isArray(s)?s.length:0,attachmentCount:a.length,quoted:!!c}});let f=At(this,e);if(f){let h={id:p,messageId:p,clientMessageId:p,stableKey:on(o,e,p),uiKey:on(o,e,p),type:"user",content:d,timestamp:u,sessionId:e,turnId:p,...c?{quote:c}:{}};if(a.length>0&&(h.attachments=a.map(b=>({fileId:b.fileId,name:b.name,preview:b.preview,isImage:!!b.isImage,mimeType:b.mimeType||""}))),ys(this).upsertOverlay({conversationId:f,agentId:o,sessionId:e,row:h}),this.processingConversations[f]=!0,e){let b=Vs(o,e);this.yeaftProcessingSessions={...this.yeaftProcessingSessions,...b?{[b]:!0}:{}}}this._turnCompletedConvs?.delete(f),this._closedAt?.[f]&&delete this._closedAt[f],this.getOrCreateExecutionStatus(f),mr(this,f)}let v={type:"yeaft_session_send",agentId:o,id:p,sessionId:e,text:d,mentions:Array.isArray(s)?s:[],perfTraceId:g,...i?{quickSend:{model:i.model,effort:i.effort??null,maxOutputTokens:i.maxOutputTokens??null}}:{},...c?{quote:c}:{}};a.length>0&&(v.attachments=a.map(h=>({fileId:h.fileId,isImage:!!h.isImage}))),Ct(this,{traceId:g,phase:"send.websocket_send",agentId:o,sessionId:e,turnId:p,messageType:v.type,bytes:JSON.stringify(v).length}),this.sendWsMessage(v)},cancelYeaftTask({agentId:e=null,sessionId:t,taskId:s}){let n=typeof t=="string"?t.trim():"",r=typeof s=="string"?s.trim():"",i=Oe(this,n,e);return!i||!n||!r?!1:(this.yeaftStoppingTasksById={...this.yeaftStoppingTasksById,[Ec(i,n,r)]:!0},this.sendWsMessage({type:"yeaft_task_cancel",agentId:i,sessionId:n,taskId:r,clientRequestId:`task_cancel_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}),!0)},continueYeaftHistoryDelta(e,t=null,s=null){let n=e||null,r=Oe(this,n,t);if(!r||!n||!Number.isFinite(s))return!1;let i=Ve(r,n),o=this.yeaftSessionHistoryState?.[i]||null;if(o?.loading)return!1;let a=this.beginYeaftHistoryLoad({agentId:r,sessionId:n,mode:"delta",preserveLoaded:!0,latestSeq:s});if(!a)return!1;this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState,[i]:{...this.yeaftSessionHistoryState[i],syncingAfterSeq:s}};let c={type:"yeaft_load_history",agentId:r,sessionId:n,requestId:a.requestId,afterSeq:s,maxRows:sS,maxBytes:nS,...typeof o?.streamId=="string"?{streamId:o.streamId}:{},...Number.isFinite(o?.revision)?{revision:o.revision}:{}};return this.sendWsMessage(c)?!0:(di(this,{agentId:r,sessionId:n,requestId:a.requestId,error:"history_load_send_failed"}),!1)},clearYeaftHistoryMemory({agentId:e=null,sessionId:t=null,preserveLiveRows:s=!1,preserveSessionOwner:n=!1}={}){let r=e||null,i=t||null,o=r&&i?Ve(r,i):null,a={};for(let[v,h]of Object.entries(this._yeaftHistoryWindowPendingByKey||{})){if(!(!o||h?.agentId===r&&h?.sessionId===i)){a[v]=h;continue}clearTimeout(h?.timeout),h?.resolve?.(!1)}this._yeaftHistoryWindowPendingByKey=a;let c={};for(let[v,h]of Object.entries(this._yeaftHistoryPrefetchBySession||{})){if(o&&v!==o){c[v]=h;continue}h.cancelled=!0,h.idle&&typeof globalThis.cancelIdleCallback=="function"?globalThis.cancelIdleCallback(h.handle):clearTimeout(h.handle)}this._yeaftHistoryPrefetchBySession=c;let l={};for(let[v,h]of Object.entries(this._yeaftHistoryResultRefreshByRequestId||{})){if(!(!o||h?.agentId===r&&h?.sessionId===i)){l[v]=h;continue}clearTimeout(h?.timeout),h?.resolve?.(null)}this._yeaftHistoryResultRefreshByRequestId=l;let d=r&&this.yeaftConversationIdsByAgent?.[r]||null,u=o?new Set([d].filter(Boolean)):new Set(Object.values(this.yeaftConversationIdsByAgent||{}).filter(Boolean));!o&&this.yeaftConversationId&&u.add(this.yeaftConversationId);let p={...this.messagesMap||{}};for(let v of u)Array.isArray(p[v])&&(p[v]=o?p[v].filter(h=>(h?.sessionId??h?.groupId??null)!==i?!0:s&&!bt(h)):[]);this.messagesMap=p;let g=v=>{if(!o)return{};let{[o]:h,...b}=v||{};return b};if(this.yeaftSessionHistoryState=g(this.yeaftSessionHistoryState),this.yeaftHistoryCacheState=g(this.yeaftHistoryCacheState),this.yeaftMessageWindowState=g(this.yeaftMessageWindowState),this.yeaftHistoryFocusWindowBySession=g(this.yeaftHistoryFocusWindowBySession),this.yeaftHistoryOutlineBySession=g(this.yeaftHistoryOutlineBySession),o){let v=this._yeaftHistoryOutlineTimeouts?.[o];v&&clearTimeout(v),this._yeaftHistoryOutlineTimeouts=g(this._yeaftHistoryOutlineTimeouts)}else{for(let v of Object.values(this._yeaftHistoryOutlineTimeouts||{}))v&&clearTimeout(v);this._yeaftHistoryOutlineTimeouts={}}if((!o||this.yeaftHistorySearchState?.agentId===r&&this.yeaftHistorySearchState?.sessionId===i)&&(this._yeaftHistorySearchTimeout&&clearTimeout(this._yeaftHistorySearchTimeout),this._yeaftHistorySearchTimeout=null,this.yeaftHistorySearchState={requestId:null,agentId:null,sessionId:null,query:"",senderKey:"",loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,nextCursor:null,error:null}),this._yeaftHistoryRevealLeases=o?Object.fromEntries(Object.entries(this._yeaftHistoryRevealLeases||{}).filter(([,v])=>v?.sessionKey!==o)):{},o||(this.yeaftHasMoreHistory=!1,this.yeaftLoadingMoreHistory=!1,this.yeaftOldestLoadedSeq=null),!n&&i&&this.yeaftSessionAgentById?.[i]===r){let{[i]:v,...h}=this.yeaftSessionAgentById;this.yeaftSessionAgentById=h}this.syncActiveYeaftHistoryLoad()},getYeaftMessageWindowKey(e=null,t=null){let s=e||this.yeaftActiveSessionFilter||null,n=Oe(this,s,t);return Ve(n,s)},showLatestYeaftMessageWindow(e=null,t=null){let s=this.getYeaftMessageWindowKey(e,t);if(!s||!this.yeaftHistoryFocusWindowBySession?.[s])return!1;let{[s]:n,...r}=this.yeaftHistoryFocusWindowBySession;return this.yeaftHistoryFocusWindowBySession=r,!0},pruneYeaftMessageWindow(e=null,t=null){if(this.currentView!=="yeaft")return;let s=this.getYeaftMessageWindowKey(e,t);Object.values(this._yeaftHistoryRevealLeases||{}).some(r=>r?.sessionKey===s)||(this.yeaftMessageWindowState={...this.yeaftMessageWindowState,[s]:{visibleTurns:un()}})},expandYeaftMessageWindow(e=null,t=Mi(),s=null){if(this.currentView!=="yeaft")return;let n=this.getYeaftMessageWindowKey(e,s),i=(this.yeaftMessageWindowState[n]?.visibleTurns||un())+Math.max(1,Number.isFinite(t)?Math.floor(t):Mi());this.yeaftMessageWindowState={...this.yeaftMessageWindowState,[n]:{visibleTurns:i}}},isYeaftMessageCached(e,t,s=null,n=null){let r=e||this.yeaftActiveSessionFilter||null,i=s||At(this,r,n);return!i||!t?!1:(this.messagesMap[i]||[]).some(o=>(!r||(o?.sessionId??o?.groupId??null)===r)&&((o?.id||o?.messageId)===t||o?.persistedMessageId===t))},revealYeaftMessage(e,t,s=null,n=null){let r=e||this.yeaftActiveSessionFilter||null,i=Oe(this,r,n),o=s||At(this,r,i);if(!o||!t)return!1;let a=(this.messagesMap[o]||[]).filter(h=>h?._historyWindowPrefetched===!0?!1:r?(h?.sessionId??h?.groupId??null)===r:!0),l=a.findIndex(h=>(h?.id||h?.messageId)===t||h?.persistedMessageId===t);if(l<0){let h=(this.messagesMap[o]||[]).find(b=>b?._historyWindowPrefetched===!0&&(b?.sessionId??b?.groupId??null)===r&&((b?.id||b?.messageId)===t||b?.persistedMessageId===t));if(!h)return!1;h._historyWindowPrefetched=!1,a.push(h),a.sort((b,m)=>{let k=Number.isFinite(b?.seq)?b.seq:null,w=Number.isFinite(m?.seq)?m.seq:null;return k!==null&&w!==null&&k!==w?k-w:k!==null&&w===null?-1:k===null&&w!==null?1:(b?.timestamp||0)-(m?.timestamp||0)}),l=a.indexOf(h)}let u=a[l]?._historyWindowKey||null,p=this.getYeaftMessageWindowKey(r,i);if(u){let h=(this.messagesMap[o]||[]).filter(m=>(m?.sessionId??m?.groupId??null)===r&&m?._historyWindowKey===u);return Mc(h).length===0?!1:(this.yeaftHistoryFocusWindowBySession={...this.yeaftHistoryFocusWindowBySession||{},[p]:{windowKey:u,messageId:t,conversationId:o}},this.yeaftMessageWindowState={...this.yeaftMessageWindowState,[p]:{visibleTurns:un()}},!0)}let g=Mc(a),f=g.findIndex(h=>l>=h.start&&l<h.end);if(f<0)return!1;let v=Math.max(un(),g.length-f);return this.yeaftMessageWindowState={...this.yeaftMessageWindowState,[p]:{visibleTurns:v}},!0},getYeaftHistoryOutlineState(e=null,t=null){let s=e||this.yeaftActiveSessionFilter||null,n=Oe(this,s,t),r=Ve(n,s),i=this.yeaftHistoryOutlineBySession[r]||{requestId:null,agentId:n,sessionId:s,loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,nextCursor:null,totalCount:null,loaded:!1,retryAttempt:0,error:null},o=At(this,s,n),a=o?this.messagesMap[o]||[]:[],c=new Map((i.results||[]).map(p=>[Pi(p),p])),l=0;for(let p of a){if((p?.sessionId??p?.groupId??null)!==s)continue;let g=p.messageId||p.id;if(!g)continue;let f=p.type==="user"&&!!p.clientMessageId&&g===p.clientMessageId,v=p.type==="assistant"&&p.isStreaming===!0;if(!f&&!v)continue;let h=p.type,b=p.turnId||p.threadId||g,m=p.speakerVpId||p.vpId||null,k=Pi({role:h,messageId:g,clientMessageId:p.clientMessageId,turnId:b,speakerVpId:m}),w=c.get(k),S=(typeof p.content=="string"?p.content:"").replace(/\s+/g," ").trim();c.set(k,{...w,agentId:n,sessionId:s,messageId:Number.isFinite(w?.seq)?w.messageId:g,...p.clientMessageId?{clientMessageId:p.clientMessageId}:{},turnId:b,role:h,speakerVpId:m||w?.speakerVpId||null,timestamp:p.timestamp||p.ts||w?.timestamp||null,snippet:S.length>180?`${S.slice(0,180).trimEnd()}\u2026`:S||w?.snippet||""}),w||(l+=1)}let d=p=>{let g=typeof p=="number"?p:Date.parse(p||"");return Number.isFinite(g)?g:0},u=Array.from(c.values()).sort((p,g)=>Number.isFinite(p.seq)&&Number.isFinite(g.seq)?p.seq-g.seq:d(p.timestamp)-d(g.timestamp));return{...i,results:u,totalCount:Number.isFinite(i.totalCount)?i.totalCount+l:i.totalCount}},promoteYeaftHistoryOutlineRow(e,t=null){let s=e?.sessionId??e?.groupId??null,n=Ve(t,s),r=this.yeaftHistoryOutlineBySession[n];if(!s||!t||!r?.loaded||r.loading)return!1;let i=e?.type;if(i!=="user"&&i!=="assistant")return!1;let o=e.dbMessageId||e.messageId||e.id||null,a=bS(o);if(!o||!Number.isFinite(a))return!1;let c=e.turnId||e.threadId||o,l=e.speakerVpId||e.vpId||null,u=(typeof e.content=="string"?e.content:"").replace(/\s+/g," ").trim(),p=Pi({role:i,messageId:o,clientMessageId:e.clientMessageId,turnId:c,speakerVpId:l}),g=new Map((r.results||[]).map(k=>[Pi(k),k])),f=g.get(p);g.set(p,{...f,agentId:t,sessionId:s,messageId:o,...e.clientMessageId?{clientMessageId:e.clientMessageId}:{},turnId:c,seq:a,role:i,speakerVpId:l,timestamp:e.timestamp||e.ts||f?.timestamp||null,snippet:u.length>180?`${u.slice(0,180).trimEnd()}\u2026`:u||f?.snippet||""});let v=50,h=Array.from(g.values()).sort((k,w)=>(k.seq||0)-(w.seq||0)),b=h.length>v,m=h.slice(-v);return this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[n]:{...r,results:m,hasMore:r.hasMore||b,nextBeforeSeq:b&&Number.isFinite(m[0]?.seq)?m[0].seq:r.nextBeforeSeq,totalCount:Number.isFinite(r.totalCount)&&!f?r.totalCount+1:r.totalCount}},!0},promoteCompletedYeaftHistoryOutline(e,t=null,s=null){let n=this.messagesMap[e]||[],r=null,i=[];for(let o=n.length-1;o>=0;o--){let a=n[o];if(a?.type==="user")break;if(t&&a?.turnId&&a.turnId!==t||a?.type!=="assistant")continue;let c=typeof a.content=="string"?a.content.replace(/\s+/g," ").trim():"";r?!String(r.content||"").trim()&&c&&(r=a):r=a,c&&i.unshift(c)}return r?this.promoteYeaftHistoryOutlineRow({...r,content:i.join(" ")},s):!1},invalidateYeaftHistoryOutline(e,t=null){let s=Ve(t,e),n=this.yeaftHistoryOutlineBySession[s];if(!e||!t||!n)return!1;if(n.loading)return this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[s]:{...n,refreshPending:!0}},!0;this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[s]:{...n,loaded:!1,refreshPending:!1}};let r=Oe(this,e);return this.currentView==="yeaft"&&this.yeaftActiveSessionFilter===e&&r===t?this.loadYeaftHistoryOutline({force:!0,targetSessionId:e,targetAgentId:t}):!0},loadYeaftHistoryOutline({append:e=!1,force:t=!1,targetSessionId:s=null,targetAgentId:n=null,retryAttempt:r=0}={}){if(this.currentView!=="yeaft"&&!s)return!1;let i=s||this.yeaftActiveSessionFilter||null,o=n||Oe(this,i);if(!i||!o)return!1;let a=Ve(o,i),c=this.getYeaftHistoryOutlineState(i,o);if(!e&&c.loaded&&!t)return!0;if(e&&(!c.hasMore||!Number.isFinite(c.nextBeforeSeq))||c.loading)return!1;if(!It(this,o,"session_history_outline"))return this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[a]:{...c,error:"unsupported",loading:!1}},!1;let l=`history_outline_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,d={...c,requestId:l,agentId:o,sessionId:i,loading:!0,requestAppend:e,refreshPending:!1,retryAttempt:r,error:null};this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[a]:d};let u=this._yeaftHistoryOutlineTimeouts[a];u&&clearTimeout(u);let p=setTimeout(()=>{let v=this.yeaftHistoryOutlineBySession[a];if(v?.requestId!==l)return;let h={...this._yeaftHistoryOutlineTimeouts};delete h[a],this._yeaftHistoryOutlineTimeouts=h;let b=v.refreshPending===!0;this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[a]:{...v,requestId:null,loading:!1,requestAppend:!1,loaded:b?!1:v.loaded,refreshPending:!1,error:b?null:"timeout"}},b&&this.loadYeaftHistoryOutline({force:!0,targetSessionId:i,targetAgentId:o})},1e4);this._yeaftHistoryOutlineTimeouts={...this._yeaftHistoryOutlineTimeouts,[a]:p};let g=Vn(),f={type:"yeaft_load_history_outline",agentId:o,sessionId:i,requestId:l,perfTraceId:g,limit:50,...e&&c.nextCursor?{cursor:c.nextCursor}:{},...e&&!c.nextCursor&&Number.isFinite(c.nextBeforeSeq)?{beforeSeq:c.nextBeforeSeq}:{}};return Ct(this,{traceId:g,phase:"history_outline.request_send",agentId:o,sessionId:i,messageType:f.type,bytes:JSON.stringify(f).length,detail:{append:e,limit:f.limit}}),this.sendWsMessage(f),!0},handleYeaftHistoryOutline(e){if(!e?.agentId||!e?.sessionId)return!1;let t=Ve(e.agentId,e.sessionId),s=this.yeaftHistoryOutlineBySession[t];if(!s||e.requestId!==s.requestId)return!1;let n=this._yeaftHistoryOutlineTimeouts[t];n&&clearTimeout(n);let r={...this._yeaftHistoryOutlineTimeouts};delete r[t],this._yeaftHistoryOutlineTimeouts=r;let i=Number.isInteger(s.retryAttempt)?s.retryAttempt:0;if(aS.has(e.error)&&i<Cf.length){let p=Cf[i],g=setTimeout(()=>{let f=this.yeaftHistoryOutlineBySession[t];if(f?.requestId!==e.requestId||f.loading!==!0)return;let v={...this._yeaftHistoryOutlineTimeouts};delete v[t],this._yeaftHistoryOutlineTimeouts=v;let h=f.refreshPending===!0;this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[t]:{...f,requestId:null,loading:!1,refreshPending:!1}},this.loadYeaftHistoryOutline({append:h?!1:s.requestAppend===!0,force:!0,targetSessionId:e.sessionId,targetAgentId:e.agentId,retryAttempt:i+1})},p);return this._yeaftHistoryOutlineTimeouts={...this._yeaftHistoryOutlineTimeouts,[t]:g},!0}let o=Array.isArray(e.results)?e.results.map(p=>({...p,agentId:e.agentId,sessionId:e.sessionId})):[],a=s.requestAppend?[...s.results||[],...o]:o,c=new Map(a.filter(p=>p?.messageId).map(p=>[Pi(p),p])),l=Array.from(c.values()).sort((p,g)=>(p.seq||0)-(g.seq||0)),d=s.refreshPending===!0;this.yeaftHistoryOutlineBySession={...this.yeaftHistoryOutlineBySession,[t]:{...s,requestId:null,loading:!1,requestAppend:!1,refreshPending:!1,loaded:d?!1:!e.error,results:l,hasMore:!!e.hasMore,nextBeforeSeq:Number.isFinite(e.nextBeforeSeq)?e.nextBeforeSeq:null,nextCursor:e.nextCursor&&typeof e.nextCursor=="object"?e.nextCursor:null,totalCount:Number.isFinite(e.totalCount)?e.totalCount:s.totalCount,error:d?null:e.error||null}};let u=this._yeaftHistoryResultRefreshByRequestId?.[e.requestId];if(u?.source==="outline"){clearTimeout(u.timeout);let{[e.requestId]:p,...g}=this._yeaftHistoryResultRefreshByRequestId;this._yeaftHistoryResultRefreshByRequestId=g;let f=l.find(v=>u.messageId&&v?.messageId===u.messageId||u.entryId&&v?.entryId===u.entryId);u.resolve(f||null)}return d&&this.loadYeaftHistoryOutline({force:!0,targetSessionId:e.sessionId,targetAgentId:e.agentId}),!0},searchYeaftHistory(e,{append:t=!1,senderKey:s=""}={}){if(this.currentView!=="yeaft")return!1;let n=typeof e=="string"?e.trim():"",r=typeof s=="string"&&(s==="user"||s.startsWith("vp:"))?s.slice(0,103):"",i=this.yeaftActiveSessionFilter||null,o=Oe(this,i);if(this._yeaftHistorySearchTimeout&&(clearTimeout(this._yeaftHistorySearchTimeout),this._yeaftHistorySearchTimeout=null),!i||!o||Array.from(n).length<1&&!r)return this.yeaftHistorySearchState={requestId:null,agentId:o,sessionId:i,query:n,senderKey:r,loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,nextCursor:null,error:null},!1;let a=this.yeaftHistorySearchState||{};if(!It(this,o,"session_history_search"))return this.yeaftHistorySearchState={requestId:null,agentId:o,sessionId:i,query:n,senderKey:r,loading:!1,results:[],hasMore:!1,nextBeforeSeq:null,nextCursor:null,error:"unsupported"},!1;let c=`history_search_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;this.yeaftHistorySearchState={requestId:c,agentId:o,sessionId:i,query:n,senderKey:r,loading:!0,results:t&&a.query===n&&a.senderKey===r?a.results:[],hasMore:!1,nextBeforeSeq:t&&a.query===n&&a.senderKey===r?a.nextBeforeSeq:null,nextCursor:t&&a.query===n&&a.senderKey===r&&a.nextCursor||null,error:null},this._yeaftHistorySearchTimeout=setTimeout(()=>{this.yeaftHistorySearchState?.requestId===c&&(this._yeaftHistorySearchTimeout=null,this.yeaftHistorySearchState={...this.yeaftHistorySearchState,loading:!1,error:"timeout"})},1e4);let l=Vn(),d={type:"yeaft_search_history",agentId:o,sessionId:i,requestId:c,perfTraceId:l,query:n,senderKey:r,limit:20,...t&&a.query===n&&a.senderKey===r&&a.nextCursor?{cursor:a.nextCursor}:{},...t&&a.query===n&&a.senderKey===r&&!a.nextCursor&&Number.isFinite(a.nextBeforeSeq)?{beforeSeq:a.nextBeforeSeq}:{}};return Ct(this,{traceId:l,phase:"history_search.request_send",agentId:o,sessionId:i,messageType:d.type,bytes:JSON.stringify(d).length,detail:{append:t,limit:d.limit,queryLength:Array.from(n).length,senderFilter:!!r}}),this.sendWsMessage(d),!0},handleYeaftHistorySearchResult(e){let t=this.yeaftHistorySearchState||{};if(!e||e.requestId!==t.requestId||e.agentId!==t.agentId||e.sessionId!==t.sessionId||e.query!==t.query||(e.senderKey||"")!==t.senderKey)return!1;this._yeaftHistorySearchTimeout&&(clearTimeout(this._yeaftHistorySearchTimeout),this._yeaftHistorySearchTimeout=null);let s=Array.isArray(e.results)?e.results.map(o=>({...o,agentId:e.agentId,sessionId:e.sessionId})):[],n=new Map((t.results||[]).map(o=>[li(o),o]));for(let o of s)(o?.entryId||o?.messageId)&&n.set(li(o),o);let r=Array.from(n.values());this.yeaftHistorySearchState={...t,loading:!1,results:r,hasMore:!!e.hasMore,nextBeforeSeq:Number.isFinite(e.nextBeforeSeq)?e.nextBeforeSeq:null,nextCursor:e.nextCursor&&typeof e.nextCursor=="object"?e.nextCursor:null,error:e.error||null};let i=this._yeaftHistoryResultRefreshByRequestId?.[e.requestId];if(i){clearTimeout(i.timeout);let{[e.requestId]:o,...a}=this._yeaftHistoryResultRefreshByRequestId;this._yeaftHistoryResultRefreshByRequestId=a;let c=r.find(l=>i.messageId&&l?.messageId===i.messageId||i.entryId&&l?.entryId===i.entryId);i.resolve(c||null)}return!0},reloadYeaftHistoryResult(e){let t=e?.sessionId||null,s=e?.agentId||null,n=this.yeaftHistorySearchState||{},i=n.agentId===s&&n.sessionId===t&&(Array.from(String(n.query||"").trim()).length>0||!!n.senderKey);if(!t||!s)return Promise.resolve(null);let o=i&&n.query||"",a=i&&n.senderKey||"",c=null,l=!1;if(i)l=this.searchYeaftHistory(o,{senderKey:a}),c=this.yeaftHistorySearchState?.requestId||null;else{let d=Ve(s,t),u=this.yeaftHistoryOutlineBySession?.[d]||null;u?.loading===!0&&u.requestAppend!==!0&&u.requestId?(l=!0,c=u.requestId):(l=this.loadYeaftHistoryOutline({force:!0,targetSessionId:t,targetAgentId:s}),c=this.yeaftHistoryOutlineBySession?.[d]?.requestId||null)}return!l||!c?Promise.resolve(null):new Promise(d=>{let u=setTimeout(()=>{if(this._yeaftHistoryResultRefreshByRequestId?.[c]?.resolve!==d)return;let{[c]:g,...f}=this._yeaftHistoryResultRefreshByRequestId;this._yeaftHistoryResultRefreshByRequestId=f,d(null)},1e4);this._yeaftHistoryResultRefreshByRequestId={...this._yeaftHistoryResultRefreshByRequestId||{},[c]:{agentId:s,sessionId:t,query:o,senderKey:a,source:i?"search":"outline",messageId:e?.messageId||null,entryId:e?.entryId||null,resolve:d,timeout:u}}})},loadYeaftHistoryWindow(e,{validateCached:t=!1}={}){let s=e?.sessionId||this.yeaftActiveSessionFilter||null,n=e?.agentId||Oe(this,s),r=li(e);if(!s||!n||!e?.entryId||!Number.isFinite(e.indexGeneration)||!Number.isFinite(e.entryStartSeq)||!e?.messageId||!Number.isFinite(e.seq))return Promise.resolve(!1);let i=At(this,s,n);if((this.messagesMap[i]||[]).some(v=>(v?.sessionId??v?.groupId??null)===s&&v?.historyEntryId===e.entryId&&v?.historyIndexGeneration===e.indexGeneration)&&!t)return Promise.resolve(!0);let a=Ve(n,`${s}:${r}:generation:${e.indexGeneration}`),c=this._yeaftHistoryWindowPendingByKey||{};if(c[a]?.promise)return c[a].promise;let l=`history_window_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,d=null,u=null,p=new Promise(v=>{d=v});Object.defineProperty(p,"error",{get:()=>u});let g=v=>{u=v||null},f=setTimeout(()=>{if(this._yeaftHistoryWindowPendingByKey?.[a]?.requestId!==l)return;let{[a]:h,...b}=this._yeaftHistoryWindowPendingByKey;this._yeaftHistoryWindowPendingByKey=b,d(!1)},1e4);return this._yeaftHistoryWindowPendingByKey={...c,[a]:{requestId:l,agentId:n,sessionId:s,entryId:e.entryId||null,indexGeneration:Number.isFinite(e.indexGeneration)?e.indexGeneration:null,entryStartSeq:Number.isFinite(e.entryStartSeq)?e.entryStartSeq:null,resultId:r,messageId:e.messageId,prefetch:!t,validateCached:!!t,setError:g,resolve:d,timeout:f,promise:p}},this.sendWsMessage({type:"yeaft_load_history_window",agentId:n,sessionId:s,requestId:l,prefetch:!t,...e.entryId?{entryId:e.entryId}:{},...Number.isFinite(e.indexGeneration)?{indexGeneration:e.indexGeneration}:{},...Number.isFinite(e.entryStartSeq)?{entryStartSeq:e.entryStartSeq}:{},anchorMessageId:e.messageId,anchorSeq:e.seq,beforeTurns:5,afterTurns:5,maxRows:200,maxBytes:512*1024}),p},beginYeaftHistoryReveal(e){let t=e?.sessionId||null,s=e?.agentId||null,n=At(this,t,s);if(!t||!s||!n)return null;let r=Ve(s,t),i=`${r}${n}`,o=++this._yeaftHistoryRevealSequence,a={key:i,token:o,sessionKey:r,agentId:s,sessionId:t,conversationId:n};return this._yeaftHistoryRevealLeases={...this._yeaftHistoryRevealLeases||{},[i]:a},a},finishYeaftHistoryReveal(e){if(!e?.key||!Number.isFinite(e.token)||this._yeaftHistoryRevealLeases?.[e.key]?.token!==e.token)return!1;let{[e.key]:s,...n}=this._yeaftHistoryRevealLeases;return this._yeaftHistoryRevealLeases=n,!0},async revealYeaftHistoryResult(e,t=null){let s=!t,n=t||this.beginYeaftHistoryReveal(e),r=e?.sessionId||null,i=e?.agentId||null,o=At(this,r,i);if(!n||!r||!i||!o||!e?.messageId)return this.finishYeaftHistoryReveal(n),!1;let a=e,c=this.loadYeaftHistoryWindow(a,{validateCached:!0}),l=await c;if(!l&&c.error==="stale_result"){let u=await this.reloadYeaftHistoryResult(a);u&&(a=u,c=this.loadYeaftHistoryWindow(a,{validateCached:!0}),l=await c)}if(!l)return this.finishYeaftHistoryReveal(n),!1;if(this.currentView!=="yeaft"||this.yeaftActiveSessionFilter!==r||Oe(this,r)!==i||At(this,r,i)!==o)return this.finishYeaftHistoryReveal(n),!1;let d=this.revealYeaftMessage(r,a.messageId,o,i);return(!d||s)&&this.finishYeaftHistoryReveal(n),d},pendingYeaftHistoryWindow(e){let s=Object.entries(this._yeaftHistoryWindowPendingByKey||{}).find(([,i])=>i?.requestId===e?.requestId);if(!s)return null;let[n,r]=s;return e.agentId!==r.agentId||e.sessionId!==r.sessionId||e.entryId&&r.entryId&&e.entryId!==r.entryId||Number.isFinite(e.indexGeneration)&&Number.isFinite(r.indexGeneration)&&e.indexGeneration!==r.indexGeneration?null:{pendingKey:n,pending:r}},handleYeaftHistoryWindow(e,t=null){let s=this.pendingYeaftHistoryWindow(e);if(!s)return!1;let{pendingKey:n,pending:r}=s;r.prefetch===!0&&e.prefetch!==!0&&r.validateCached!==!0&&(e.prefetch=!0),clearTimeout(r.timeout);let{[n]:i,...o}=this._yeaftHistoryWindowPendingByKey;this._yeaftHistoryWindowPendingByKey=o;let a=!e.error&&!!t&&this.isYeaftMessageCached(r.sessionId,r.messageId,t,r.agentId);return r.setError?.(e.error||null),r.resolve(!!a),!!a},createYeaftSession({displayName:e,vpIds:t,defaultVpId:s,workDir:n,agentId:r}={}){let i=Array.isArray(t)?t.slice():[],o=s&&i.includes(s)?s:i[0]||null,a=(e||"").trim(),c=(n||"").trim(),l={roster:i,defaultVpId:o};return a&&(l.name=a),c&&(l.workDir=c),this.sessionCrudRequest("create",l,{agentId:r})},handleYeaftOutput(e){if(!e||["turn_open","loop","turn_close"].includes(e.event?.type)&&typeof e.event.turnId=="string"&&e.event.turnId.startsWith("dream-"))return;let t=e.agentId||this.yeaftAgentId||this.currentAgent||null,s=e.conversationId||e.event?.conversationId||null,n=vr(this,t,s);if(e.data&&n){if(e.data.type!=="result")return;let a=Lp(this,t,s);if(!a)return;let c=e.turnId?Kn(this,t,e.turnId):"",l=!!(c&&this.activeVpTurns?.[c])||(this.messagesMap?.[a]||[]).some(d=>d?.turnId===e.turnId&&(d.isStreaming||d.status==="pending"));if(!e.turnId||!l)return;e={...e,conversationId:a}}if(e.perfTraceId&&(Ct(this,{traceId:e.perfTraceId,phase:"receive.yeaft_output",agentId:e.agentId||null,sessionId:e.sessionId||null,vpId:e.vpId||null,turnId:e.turnId||null,threadId:e.threadId||null,messageType:e.data?.type||e.event?.type||e.type}),e.turnId&&(this.yeaftPerfTraceByTurnId={...this.yeaftPerfTraceByTurnId||{},[e.turnId]:e.perfTraceId})),e.data){let a=e.agentId||null,c=Ns(this,a,e.conversationId);if(c){let d=$c(e,e.turnId||"session");for(let u of["retry","retrying","thinking"])hr(this,c,`${u}:${d}`);e.data?.tool_use_result&&hr(this,c,`tool:${d}`)}let l=e.turnId?Kn(this,e.agentId||null,e.turnId):"";if(l&&this.activeVpTurns?.[l]?.retryAttempt){let{retryAttempt:d,retryMax:u,retryDelayMs:p,retryReason:g,retryRecoveryMode:f,...v}=this.activeVpTurns[l];this.activeVpTurns={...this.activeVpTurns,[l]:v}}if(c){let d=e.sessionId??e.groupId??null,u=Ef(this,d,a),p=a&&this.yeaftConversationIdsByAgent?this.yeaftConversationIdsByAgent[a]:null,g=bs(this,a);g&&g.targetConversationId!==c?yi(this,a,c):!g&&p&&p!==c&&!String(p).startsWith("yeaft-local-")&&(ws(this,p,c,{removeSource:p!==this.yeaftConversationId}),mi(this,a,p,c)),jl(this,a,c);let f=bs(this,a,c),v=f?.sourceConversationId||p,h=!u&&v===this.yeaftConversationId;if(this.currentView==="yeaft"&&a&&v&&v!==c){let S=!h&&(!!f||String(v).startsWith("yeaft-local-"));ws(this,v,c,{removeSource:S}),h?Lo(this,a,v,c):S&&vi(this,a,c)}a&&(this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[a]:c}),(u||!this.yeaftConversationId)&&(this.yeaftConversationId=c),u&&(this.activeConversations=[c]),this.messagesMap[c]||(this.messagesMap[c]=[]);let b=this._currentYeaftAgentId,m=this._currentYeaftSessionId,k=this._currentYeaftVpId,w=this._currentYeaftTurnId,y=this._currentYeaftThreadId;a&&(this._currentYeaftAgentId=a),d!=null&&(this._currentYeaftSessionId=d),e.vpId&&(this._currentYeaftVpId=e.vpId),e.turnId&&(this._currentYeaftTurnId=e.turnId),e.threadId&&(this._currentYeaftThreadId=e.threadId);try{let S=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();if(this.handleAssistantOutputFrame(c,e.data,a),e.perfTraceId){let O=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();Ct(this,{traceId:e.perfTraceId,phase:"store.apply_output",agentId:e.agentId||null,sessionId:d||null,vpId:e.vpId||null,turnId:e.turnId||null,threadId:e.threadId||null,messageType:e.data?.type||null,durationMs:O-S}),Fo(this,{traceId:e.perfTraceId,agentId:e.agentId||null,sessionId:d||null,vpId:e.vpId||null,turnId:e.turnId||null,threadId:e.threadId||null,messageType:e.data?.type||null})}let C=e.data,R=C?.message?.id||C?.id||null,W=yS(R),B=Array.isArray(C?.message?.content)?C.message.content:[],z=B.some(O=>O?.type==="tool_use"),L=!!C?.tool_use_result||B.some(O=>O?.type==="tool_result");if(d){let O=!L&&!vS(this,c,d)&&(C?.type==="user"||C?.type==="assistant"&&!z)?W:null,D=Ve(e.agentId||null,d),I=this.yeaftSessionHistoryState[D]||{},T=Number.isFinite(I.latestSeq)?I.latestSeq:-1;O!==null&&O>T&&(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState,[D]:{...I,latestSeq:O}})}}finally{this._currentYeaftAgentId=b,this._currentYeaftSessionId=m,this._currentYeaftVpId=k,this._currentYeaftTurnId=w,this._currentYeaftThreadId=y}}return}let r=e.event;if(!r)return;let i={...r,vpId:r.vpId||e.vpId||null,threadId:r.threadId||e.threadId||null,turnId:r.turnId||e.turnId||null},o=Ns(this,e.agentId||null,e.conversationId);if(o){let a=$c(i);r.type==="tool_start"?hi(this,o,`tool:${a}`):r.type==="tool_end"?hr(this,o,`tool:${a}`):r.type==="llm_retry"?hi(this,o,`retry:${a}`):r.type==="vp_async_task_wait_start"?hi(this,o,`async-wait:${a}`):r.type==="vp_async_task_wait_end"&&hr(this,o,`async-wait:${a}`)}switch(r.type){case"project_mutation_result":r.projectsAuthoritative===!0?this.finishProjectMutation(r):this.finishLegacyProjectMutation(r,e.agentId||null);break;case"ask_user_question":{let a=Ns(this,e.agentId||null,e.conversationId);if(!a||!r.requestId)break;let c=xf(e,r,a),l=()=>{let d=this.messagesMap[a]||[],u=Mf(d,c,a);if(u){if(u.askAnswered||u.askExpired)return!0;u.toolName="AskUserQuestion",r.toolCallId&&!u.toolId&&(u.toolId=r.toolCallId),u.agentId=c.agentId||u.agentId||null;for(let v of["sessionId","vpId","turnId","threadId"])c[v]&&(u[v]=c[v]);u.hasResult=!1,u.askRequestId=r.requestId,u.askQuestions=r.questions||[],u.askCreatedAt=r.createdAt||null,u.askExpiresAt=r.expiresAt||null,u.isHistory=!1;let f=Pf(this,c);return f&&_c(u,f),this.messagesMap={...this.messagesMap,[a]:d.slice()},!0}if(!r.replay)return!1;let p={id:`ask-card-${r.requestId}`,type:"tool-use",toolName:"AskUserQuestion",toolId:r.toolCallId||null,toolInput:{questions:r.questions||[]},askRequestId:r.requestId,askQuestions:r.questions||[],askCreatedAt:r.createdAt||null,askExpiresAt:r.expiresAt||null,agentId:c.agentId,sessionId:c.sessionId,vpId:c.vpId,speakerVpId:c.vpId,turnId:c.turnId,threadId:c.threadId||"main",hasResult:!1,isHistory:!1,timestamp:r.createdAt||Date.now()},g=Pf(this,c);return g&&_c(p,g),d.push(p),this.messagesMap={...this.messagesMap,[a]:d.slice()},!0};if(!l()){let d=0,u=setInterval(()=>{d+=1,(l()||d>=10)&&clearInterval(u)},200)}break}case"ask_user_answered":case"ask_user_answer_rejected":case"ask_user_expired":{let a=Ns(this,e.agentId||null,e.conversationId);if(!a||!r.requestId)break;let c=this.messagesMap[a]||[],l=xf(e,r,a),d=Mf(c,l,a);if(!d){mS(this,l,r);break}_c(d,r),this.messagesMap={...this.messagesMap,[a]:c.slice()};break}case"session_ready":{let a=r.conversationId,c=e.agentId||this.currentAgent;if(vr(this,c,a))break;let l=c&&this.yeaftConversationIdsByAgent?this.yeaftConversationIdsByAgent[c]:null,d=this.yeaftConversationId?String(this.yeaftConversationId):"",u=d.startsWith("yeaft-local-")&&(!c||d.startsWith(`yeaft-local-${c}-`)||/^yeaft-local-\d/.test(d))?this.yeaftConversationId:null,p=l||u,g=r.sessionId||e.sessionId||null,f=Ef(this,g,c),v=bs(this,c);v&&v.targetConversationId!==a?yi(this,c,a):!v&&l&&l!==a&&!String(l).startsWith("yeaft-local-")&&mi(this,c,l,a),jl(this,c,a);let b=bs(this,c,a)?.sourceConversationId||p,m=!f&&b===this.yeaftConversationId;if(b&&b!==a){let C=!m;ws(this,b,a,{removeSource:C}),m?Lo(this,c,b,a):C&&vi(this,c,a)}else this.messagesMap[a]||(this.messagesMap[a]=[]);c&&(this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[c]:a},this.cacheYeaftAgentStatus(c,r,{allowBootstrapCatalog:f})),f&&(this.yeaftModel=r.model,this.yeaftModelEffort=r.modelEffort||null,this.yeaftSessionReady=!0,this.yeaftBootstrapMetaLoadingKey=null,c?this.applyCachedYeaftStatus(c):this.yeaftAvailableModels=r.availableModels||[]);let k=Array.isArray(r.tasks)?r.tasks:[],w={};for(let[C,R]of Object.entries(this.yeaftActiveTasksBySession||{})){let W=Object.fromEntries(Object.entries(R||{}).filter(([,z])=>z?.id&&z.status==="running"&&z.agentId&&z.agentId!==c)),B=Dc(W);Object.keys(B).length>0&&(w[C]=B)}for(let C of k){if(!C?.id||!C.sessionId||C.status!=="running")continue;let R=Ve(c,C.sessionId);w[R]={...w[R]||{},[C.id]:{...C,agentId:c}}}this.yeaftActiveTasksBySession=w,f&&(r.yeaftDir&&(this.yeaftYeaftDir=r.yeaftDir),this.yeaftStatus={skills:r.skills,mcpServers:r.mcpServers,tools:r.tools,multiVp:!!r.multiVp}),(f||!this.yeaftConversationId)&&(this.yeaftConversationId=a),f&&(this.activeConversations=[a]);let y=e.agentId||this.currentAgent||null,S=y||"__current__";this._yeaftVpSubscribedAgentKey!==S&&(this._yeaftVpSubscribedAgentKey=S,this.sendWsMessage(y?{type:"yeaft_vp_subscribe",agentId:y}:{type:"yeaft_vp_subscribe"}));break}case"yeaft_status":{let a=e.agentId||this.currentAgent;a&&this.cacheYeaftAgentStatus(a,r);break}case"context_usage":break;case"turn_open":{if(!r.turnId)break;let a={turnId:r.turnId,userPrompt:r.userPrompt||"",vpId:r.vpId||e.vpId||null,sessionId:r.sessionId||e.sessionId||null,openedAt:r.at||Date.now(),closedAt:null,totalMs:0,inputTokens:0,outputTokens:0,totalTokens:0,loopCount:0,memoryLoaded:null,memoryLoadedMeta:null,memoryAdjust:null,tools:[],detailsLoaded:!0};this.yeaftDebugTurnsById={...this.yeaftDebugTurnsById,[r.turnId]:a};let c=Kn(this,e.agentId||null,r.turnId),l=this.activeVpTurns?.[c];l&&Number.isFinite(r.at)&&(this.activeVpTurns={...this.activeVpTurns,[c]:{...l,startedAt:r.at}}),this.yeaftDebugTurnOrder.includes(r.turnId)||(this.yeaftDebugTurnOrder=[...this.yeaftDebugTurnOrder,r.turnId]);break}case"turn_close":{if(!r.turnId)break;let a=this.yeaftDebugTurnsById[r.turnId];if(!a)break;this.yeaftDebugTurnsById={...this.yeaftDebugTurnsById,[r.turnId]:{...a,closedAt:Date.now(),...Number.isFinite(r.totalMs)?{totalMs:r.totalMs}:{},...Number.isFinite(r.inputTokens)?{inputTokens:r.inputTokens}:{},...Number.isFinite(r.outputTokens)?{outputTokens:r.outputTokens}:{},...Number.isFinite(r.totalTokens)?{totalTokens:r.totalTokens}:{},loopCount:r.loopCount||a.loopCount||0,...typeof r.model=="string"&&r.model?{model:r.model}:{},...typeof r.effort=="string"&&r.effort?{effort:r.effort}:{}}};break}case"memory_used":{if(!r.turnId)break;let a=this.yeaftDebugTurnsById[r.turnId];if(!a)break;this.yeaftDebugTurnsById={...this.yeaftDebugTurnsById,[r.turnId]:{...a,memoryLoaded:Array.isArray(r.loaded)?r.loaded:[],memoryLoadedMeta:r.meta||null}};break}case"dream_memory_loaded":break;case"memory_adjust":{if(!r.turnId)break;let a=this.yeaftDebugTurnsById[r.turnId];if(!a)break;this.yeaftDebugTurnsById={...this.yeaftDebugTurnsById,[r.turnId]:{...a,memoryAdjust:{sessionKey:r.sessionKey||null,added:r.added||0,evicted:r.evicted||0,skipped:r.skipped||0,reason:r.reason||""}}};break}case"tool_exec":{if(this.scheduleYeaftDebugDetailRefresh(e,r.turnId),!r.turnId)break;let a=this.yeaftDebugTurnsById[r.turnId];if(!a)break;let c=[...a.tools||[],{loopNumber:r.loopNumber||0,callId:r.callId||null,name:r.name||"?",durationMs:r.durationMs||0,isError:!!r.isError}];this.yeaftDebugTurnsById={...this.yeaftDebugTurnsById,[r.turnId]:{...a,tools:c}};break}case"loop":{if(this.scheduleYeaftDebugDetailRefresh(e,r.turnId),this.yeaftDebugLoops.push({turnId:r.turnId||null,loopNumber:r.loopNumber||0,model:r.model,usage:r.usage||{inputTokens:0,outputTokens:0,totalTokens:0},latencyMs:r.latencyMs,ttfbMs:r.ttfbMs,stopReason:r.stopReason,at:typeof r.at=="number"?r.at:null,sessionId:e.sessionId||null,vpId:e.vpId||r.vpId||null}),this.yeaftDebugLoops.length>Df){let a=ef({loops:this.yeaftDebugLoops,turnsById:this.yeaftDebugTurnsById,turnOrder:this.yeaftDebugTurnOrder,maxLoops:Math.max(Df,this.yeaftDebugHistoryLimit||0)});this.yeaftDebugLoops=a.loops,this.yeaftDebugTurnsById=a.turnsById,this.yeaftDebugTurnOrder=a.turnOrder}break}case"llm_retry":{if(!e.turnId)break;let a=Kn(this,e.agentId||null,e.turnId),c=this.activeVpTurns?.[a];if(!c)break;let l=r.reason==="stream_idle_timeout"?"stream_idle_timeout":"transient_error";this.activeVpTurns={...this.activeVpTurns,[a]:{...c,retryAttempt:r.attempt||0,retryMax:r.maxRetries||0,retryDelayMs:r.delayMs||0,retryReason:l,retryRecoveryMode:r.recoveryMode||"restart"}};break}case"recall":case"fallback":case"thinking_delta":break;case"reflection":{let a=Ns(this,e.agentId||null,e.conversationId)||"unknown",c=Array.isArray(r.loopRange)?r.loopRange:[0,0],l=`${a}:${r.trigger}:${c[0]}-${c[1]}`,d=this.yeaftReflectionCards[l],u=this.messagesMap[a]||[],p=d?d.anchorMsgId:u.length>0&&u[u.length-1].id||null,g=d?d.anchorOrder:u.length;this.yeaftReflectionCards={...this.yeaftReflectionCards,[l]:{key:l,conversationId:a,turnId:r.turnId||d&&d.turnId||null,loopNumber:r.loopNumber||d&&d.loopNumber||null,trigger:r.trigger,status:r.status,loopRange:c,toolCount:r.toolCount||0,content:r.content||"",durationMs:r.durationMs||0,error:r.error||null,sessionId:e.sessionId||null,anchorMsgId:p,anchorOrder:g,updatedAt:Date.now()}};break}case"model_switched":this.yeaftModel=r.model,this.yeaftModelEffort=r.modelEffort||null;break;case"yeaft_task_event":{let a=r.task;if(!a?.id||!a.sessionId)break;let c=e.agentId||Oe(this,a.sessionId),l=Ve(c,a.sessionId),d={...a,agentId:c},u={...this.yeaftActiveTasksBySession},p={...u[l]||{}};a.status==="running"?p[a.id]=d:delete p[a.id];let g=Dc(p);if(Object.keys(g).length>0?u[l]=g:delete u[l],this.yeaftActiveTasksBySession=u,a.status!=="running"){let{[Ec(c,a.sessionId,a.id)]:f,...v}=this.yeaftStoppingTasksById||{};this.yeaftStoppingTasksById=v}break}case"yeaft_task_cancel_result":{let a=r.taskId||r.task?.id||null,c=r.task?.sessionId||r.sessionId||e.sessionId||null,l=e.agentId||Oe(this,c);if(a&&c&&r.success===!1){let{[Ec(l,c,a)]:u,...p}=this.yeaftStoppingTasksById||{};this.yeaftStoppingTasksById=p}let d=r.task;if(d?.id&&d.sessionId){let u=Ve(l,d.sessionId),p={...this.yeaftActiveTasksBySession},g={...p[u]||{}};d.status==="running"?g[d.id]={...d,agentId:l}:delete g[d.id];let f=Dc(g);Object.keys(f).length>0?p[u]=f:delete p[u],this.yeaftActiveTasksBySession=p}break}case"sub_agent_event":{let a=Ns(this,e.agentId||null,e.conversationId)||"unknown",c=r.agentId;if(!c)break;let l=r.payload||{},d=`${a}:${c}`,u=this.yeaftSubAgentCards[d],p=this.messagesMap[a]||[],g=u?u.anchorMsgId:p.length>0&&p[p.length-1].id||null,f=u?u.anchorOrder:p.length,v=u?{...u}:{key:d,conversationId:a,agentId:c,agentName:l.agentName||"sub-agent",status:"running",text:"",toolCallCount:0,turns:0,error:null,expanded:!1,anchorMsgId:g,anchorOrder:f,updatedAt:Date.now(),sessionId:e.sessionId||null};switch(l.agentName&&!v.agentName&&(v.agentName=l.agentName),l.type){case"sub_agent_status":v.status=l.status||v.status,l.error&&(v.error=l.error);break;case"text_delta":break;case"tool_use":case"tool_call":v.toolCallCount=Number(v.toolCallCount||0)+1;break;case"tool_start":break;case"tool_result":case"tool_end":break;case"sub_agent_turn_end":{v.turns+=1;let h=typeof l.content=="string"?l.content.trim():"";h&&(v.text=v.text?`${v.text}
|
|
9
9
|
|
|
10
|
-
${h}`:h),v.status!=="failed"&&v.status!=="closed"&&(v.status=l.status||"idle");break}case"error":l.error&&(v.error=l.error.message||String(l.error));break;default:break}v.updatedAt=Date.now(),this.yeaftSubAgentCards={...this.yeaftSubAgentCards,[d]:v};break}case"history_loaded":{let a={...r,agentId:e.agentId||null,requestId:r.requestId||e.requestId||null};if(a.requestId&&!this.isCurrentYeaftHistoryResponse(a))break;let c=e.agentId||null,l=r.sessionId??null,d=Ve(c,l),u=e.perfTraceId||this.yeaftHistoryPerfTraceBySession?.[d];u&&Ct(this,{traceId:u,phase:"history.loaded_event",agentId:e.agentId||null,sessionId:r.sessionId||null,messageType:r.type,detail:{mode:r.mode||"recent",count:r.count||0,hasMore:!!r.hasMore}});let p=r.mode==="delta"?"delta":"recent",g=this.yeaftSessionHistoryState[d]||{},f=Number.isFinite(r.latestSeq)?r.latestSeq:Number.isFinite(g.latestSeq)?g.latestSeq:null,v=Number.isFinite(r.nextBeforeSeq)?r.nextBeforeSeq:Number.isFinite(r.oldestSeq)?r.oldestSeq:Number.isFinite(g.serverOldestFetchedSeq)?g.serverOldestFetchedSeq:Number.isFinite(g.oldestSeq)?g.oldestSeq:null,h=p==="delta"?{...g,loaded:!0,loading:!1,latestSeq:f,syncingAfterSeq:null,count:(g.count||0)+(r.count||0)}:{...g,loaded:!0,loading:!1,hasMore:!!r.hasMore,serverHasMore:!!r.hasMore,oldestSeq:v,serverOldestFetchedSeq:v,count:typeof r.count=="number"?r.count:0,latestSeq:f,syncingAfterSeq:null},b=a.requestId?this.finishYeaftHistoryLoad(a,h,"completion"):null;b||(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState,[d]:h});let m=Ve(c?this.currentAgent:null,this.yeaftActiveSessionFilter??null);if(d===m)p==="recent"&&(this.yeaftHasMoreHistory=h.hasMore,this.yeaftOldestLoadedSeq=h.serverOldestFetchedSeq),this.yeaftLoadingMoreHistory=!!b?.loading;else if(this.yeaftLoadingMoreHistory){let k=this.yeaftSessionHistoryState[m]||null;this.yeaftLoadingMoreHistory=!!k?.loading}}break;case"vp_snapshot":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&a.applySnapshot(r,e.agentId||null,e.requestId||null);break}case"vp_snapshot_error":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&a.failSnapshot(e.agentId||null,e.requestId||null,r.error||r.message||"VP library request failed");break}case"vp_updated":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&r.vp&&a.upsert(r.vp,r.reason,e.agentId||null);break}case"vp_removed":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&r.vpId&&a.remove(r.vpId,r.reason,e.agentId||null);break}case"vp_crud_result":{let a=this._vpCrudPending&&this._vpCrudPending.get(r.requestId);a&&(this._vpCrudPending.delete(r.requestId),a.resolve({ok:!!r.ok,op:r.op,vpId:r.vpId,vp:r.vp,error:r.error||null}));break}case"group_list_updated":case"session_list_updated":case"yeaft_session_hydrate":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),c=r.sessions||[];if(r.projectsAuthoritative===!0&&Array.isArray(r.projects)?this.applySessionCatalogSnapshot(this.sessionCatalog,r.projects):Array.isArray(r.projects)&&e.agentId&&this.applyLegacyProjectSnapshot(r.projects,e.agentId),r.type!=="yeaft_session_hydrate"&&this.yeaftSessionHydrateRequestId&&this.yeaftSessionInventoryCompleteSupported===!0){let g=Array.isArray(this.yeaftSessionHydrateSlices)?this.yeaftSessionHydrateSlices.filter(f=>f.agentId!==(e.agentId||null)):[];this.yeaftSessionHydrateSlices=[...g,{agentId:e.agentId||null,sessions:c}];break}let l=a&&a.activeSessionId||null,d=a?.activeSessionKey&&a.sessions?.[a.activeSessionKey]?.agentId||null;a&&(a.applySnapshot(c,e.agentId||null),this._hasHandledYeaftSessionHydrate=!0,this.yeaftSessionHydrateError=null);let u=a&&a.activeSessionId||null,p=a?.activeSessionKey&&a.sessions?.[a.activeSessionKey]?.agentId||null;if(this.currentView==="yeaft"&&u){let g=p||Oe(this,u,e.agentId||null),f=Ve(g,u),v=this.yeaftSessionHistoryState[f]||null;this.setActiveSessionFilter(u,{agentId:g,force:d!==g||xp(u,l,v)})}break}case"group_roster_changed":case"session_roster_changed":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();a&&a.applyRosterChange(r,e.agentId||null);break}case"group_crud_result":case"session_crud_result":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),c=this._sessionCrudPending&&this._sessionCrudPending.get(r.requestId);if(r.op==="copy"&&c?.agentId&&c.agentId!==e.agentId)break;r.op==="copy"&&r.projectsAuthoritative===!0&&Array.isArray(r.projects)&&this.applySessionCatalogSnapshot(this.sessionCatalog,r.projects),a&&a.applyCrudResult(r,e.agentId||null,{activate:r.op!=="copy"}),r.ok&&r.op==="delete"&&r.sessionId&&e.agentId&&this.clearYeaftHistoryMemory({agentId:e.agentId,sessionId:r.sessionId}),c&&(()=>{if(this._sessionCrudPending?.get(r.requestId)!==c)return;this._sessionCrudPending.delete(r.requestId);let d=r.session||r.group||null,u=d&&e.agentId&&!d.agentId?{...d,agentId:e.agentId}:d,p=r.sessionId||null,g=r.sessions||null;c.resolve({ok:!!r.ok,op:r.op,session:u,sessionId:p,sessions:g,config:r.config||null,error:r.error||null})})();break}case"vp_turn_start":{if(!r.turnId||!r.vpId)break;let a=lc(e.agentId||null,r.turnId)||r.turnId;if(this.activeVpTurns={...this.activeVpTurns,[a]:{agentId:e.agentId||null,turnId:r.turnId,vpId:r.vpId,sessionId:r.sessionId||null,threadId:r.threadId||null,isStreaming:!0,startedAt:r.ts||Date.now()}},r.sessionId){let c=Vs(e.agentId||null,r.sessionId);this.yeaftProcessingSessions={...this.yeaftProcessingSessions,...c?{[c]:!0}:{[r.sessionId]:!0}}}break}case"vp_turn_end":{if(!r.turnId)break;let a=Kn(this,e.agentId||null,r.turnId),c=r.sessionId||this.activeVpTurns?.[a]?.sessionId||null;r.reason==="end_turn"&&c&&this.markYeaftSessionUnread(c,e.agentId||null);let{[a]:l,...d}=this.activeVpTurns;this.activeVpTurns=d;let{[a]:u,...p}=this.stoppingVpTurnIds;this.stoppingVpTurnIds=p;let g=r.sessionId||l?.sessionId||null,f=e.agentId||l?.agentId||null,v=r.vpId||l?.vpId||null;if(!(g&&v?Object.values(this.activeVpTurns||{}).some(y=>y?.vpId===v&&qt(y,g,f)):!1)&&g&&v){let y={...this.vpStatuses||{}},S=!1;for(let[C,R]of Object.entries(y))R?.vpId===v&&qt(R,g,f)&&Ri.has(R.state)&&(y[C]={...R,state:"idle",turnId:null,since:r.ts||Date.now()},S=!0);S&&(this.vpStatuses=y)}this.clearYeaftSessionProcessingIfIdle(g,{agentId:f});let m={end_turn:"completed",route_forward:"completed",aborted:"aborted",errored:"errored",error:"errored",cancelled:"cancelled",canceled:"cancelled"}[r.reason]||"completed",k=Date.now(),w=Ns(this,e.agentId||null,e.conversationId);if(w&&Array.isArray(this.messagesMap[w])){let y=this.messagesMap[w],S=mf(y,r);for(let C=0;C<y.length;C++){let R=y[C];if(!R||R.type!=="assistant")continue;let W=R.sessionId??R.groupId;r.sessionId&&W&&W!==r.sessionId||r.vpId&&R.speakerVpId&&R.speakerVpId!==r.vpId||r.turnId&&R.turnId&&R.turnId!==r.turnId||R.status&&R.status!=="pending"||(R.status=m,R.turnEndAt=k,R.turnEndReason=r.reason||null,r.detail&&(R.turnEndDetail=r.detail),Number.isFinite(r.durationMs)&&(R.turnDurationMs=r.durationMs),S=!0)}S&&(this.messagesMap={...this.messagesMap,[w]:y.slice()}),this.pruneConversationMessageRetention(w,g,f)}break}case"yeaft_turn_aborted":{let a=Array.isArray(r.turnIds)?r.turnIds.filter(Boolean):[];r.turnId&&a.push(r.turnId);let c=r.sessionId||null,l=r.vpId||null,d=new Set;for(let f of a){let v=Kn(this,e.agentId||null,f),h=this.activeVpTurns?.[v]||null;(!h||qt(h,h.sessionId,e.agentId||null))&&d.add(v)}if(l)for(let[f,v]of Object.entries(this.activeVpTurns||{}))!v||v.vpId!==l||qt(v,c,e.agentId||null)&&d.add(f);if(d.size===0)break;let u=c,p={...this.activeVpTurns||{}},g={...this.stoppingVpTurnIds||{}};for(let f of d){let v=p[f];!u&&v?.sessionId&&(u=v.sessionId),delete p[f],delete g[f]}this.activeVpTurns=p,this.stoppingVpTurnIds=g,this.clearYeaftSessionProcessingIfIdle(u||null,{agentId:e.agentId||null});break}case"yeaft_aborted":{let a=r.sessionId||e.sessionId||null;a?(this.activeVpTurns=Object.fromEntries(Object.entries(this.activeVpTurns||{}).filter(([,c])=>!qt(c,a,e.agentId||null))),this.stoppingVpTurnIds=Object.fromEntries(Object.entries(this.stoppingVpTurnIds||{}).filter(([c])=>this.activeVpTurns?.[c])),this.vpStatuses=Object.fromEntries(Object.entries(this.vpStatuses||{}).filter(([,c])=>!qt(c,a,e.agentId||null))),this.clearYeaftSessionProcessingIfIdle(a,{agentId:e.agentId||null,ignoreStatuses:!0})):r.all&&Sf(this,e.agentId||null);break}case"vp_typing_start":{if(!r.vpId)break;let a=Ns(this,e.agentId||null,e.conversationId);if(!a)break;this.yeaftVpTyping=Qg(this.yeaftVpTyping,a,r.vpId);break}case"vp_typing_end":{if(!r.vpId)break;let a=Ns(this,e.agentId||null,e.conversationId);if(!a)break;this.yeaftVpTyping=Xg(this.yeaftVpTyping,a,r.vpId);break}case"vp_status_changed":{if(!r.vpId||!r.state)break;if(o){let u=$c(i);if(r.state==="thinking"||r.state==="retrying"||r.state==="tool")hi(this,o,`${r.state}:${u}`);else if(r.state==="streaming"||r.state==="idle"||r.state==="error")for(let p of["thinking","retrying","tool"])hr(this,o,`${p}:${u}`)}let a=r.sessionId||null,c=e.agentId||null,l=Xo(c,a,r.vpId),d={agentId:c,state:r.state,since:r.since||Date.now(),turnId:r.turnId||null,title:r.title||"",sessionId:a,vpId:r.vpId};if(this.vpStatuses={...this.vpStatuses,[l]:d},a&&Ri.has(r.state)){let u=Vs(c,a);this.yeaftProcessingSessions={...this.yeaftProcessingSessions,...u?{[u]:!0}:{[a]:!0}}}else a&&this.clearYeaftSessionProcessingIfIdle(a,{agentId:c});this.restoreActiveYeaftSessionFromStatuses([d],c);break}case"vp_status_snapshot":{let a=Array.isArray(r.statuses)?r.statuses:[],c=r.sessionId;if(c==null){let l={...this.vpStatuses||{}};if(e.agentId)for(let[d,u]of Object.entries(l))(!u?.agentId||u.agentId===e.agentId)&&delete l[d];else for(let d of Object.keys(l))delete l[d];for(let d of a){if(!d||!d.vpId)continue;let u=d.sessionId||d.groupId||null,p=Xo(e.agentId||null,u,d.vpId);l[p]={agentId:e.agentId||null,state:d.state,since:d.since||Date.now(),turnId:d.turnId||null,title:d.title||"",sessionId:u,vpId:d.vpId}}this.vpStatuses=l}else{let l={...this.vpStatuses};for(let[d,u]of Object.entries(l))u&&u.sessionId===c&&(!e.agentId||!u.agentId||u.agentId===e.agentId)&&delete l[d];for(let d of a){if(!d||!d.vpId)continue;let u=d.sessionId||d.groupId||null,p=Xo(e.agentId||null,u,d.vpId);l[p]={agentId:e.agentId||null,state:d.state,since:d.since||Date.now(),turnId:d.turnId||null,title:d.title||"",sessionId:u,vpId:d.vpId}}this.vpStatuses=l}this.yeaftProcessingSessions=tS(this,e.agentId||null,a,c??null),this.restoreActiveYeaftSessionFromStatuses(a,e.agentId||null);break}case"yeaft_dream_snapshot":case"yeaft_dream_status":case"yeaft_dream_result":case"dream_progress":break}},fetchExpertRoleDefinitions(){if(this.expertRoleDefinitions)return;let e=this.currentAgent;e&&this.sendWsMessage({type:"get_expert_roles",agentId:e})},setYeaftSidebarEnabled(e){try{typeof localStorage<"u"&&localStorage.removeItem("yeaft-sidebar-enabled")}catch{}},vpCrudRequest(e,t){(!this._vpCrudPending||typeof this._vpCrudPending.get!="function")&&(this._vpCrudPending=new Map);let s="vpc_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,8),r={create:"yeaft_vp_create",update:"yeaft_vp_update",delete:"yeaft_vp_delete",read:"yeaft_vp_read"}[e];if(!r)return Promise.resolve({ok:!1,op:e,error:{code:"bad_op",message:"unknown op: "+e}});let i={type:r,requestId:s};return e==="create"||e==="update"?i.payload=t||{}:i.vpId=t,new Promise(o=>{let a=setTimeout(()=>{this._vpCrudPending&&this._vpCrudPending.has(s)&&(this._vpCrudPending.delete(s),o({ok:!1,op:e,error:{code:"timeout",message:"vp_crud timeout"}}))},1e4);this._vpCrudPending.set(s,{resolve:c=>{clearTimeout(a),o(c)}}),this.sendWsMessage(i)})},sessionCrudRequest(e,t,s={}){(!this._sessionCrudPending||typeof this._sessionCrudPending.get!="function")&&(this._sessionCrudPending=new Map);let n="grc_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,8),i={list:"yeaft_list_sessions",create:"yeaft_create_session",copy:"yeaft_copy_session",rename:"yeaft_rename_session",update:"yeaft_update_session",update_config:"yeaft_update_session_config",archive:"yeaft_archive_session",delete:"yeaft_delete_session",add_member:"yeaft_session_add_member",remove_member:"yeaft_session_remove_member",set_default_vp:"yeaft_session_set_default_vp",reorder:"reorder_yeaft_sessions",scan_workdir:"yeaft_scan_workdir_sessions",restore:"yeaft_restore_session"}[e];if(!i)return Promise.resolve({ok:!1,op:e,error:{code:"bad_op",message:"unknown op: "+e}});let o={type:i,requestId:n};e==="create"?o.payload=t||{}:t&&typeof t=="object"&&Object.assign(o,t);let a=s&&s.agentId?s.agentId:null;a&&(o.agentId=a);let c=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();return c&&c.markPending(n,e),new Promise(l=>{let d=Number.isFinite(s.timeoutMs)?Math.max(1,Number(s.timeoutMs)):e==="copy"?null:iS,u=d==null?null:setTimeout(()=>{this._sessionCrudPending&&this._sessionCrudPending.has(n)&&(this._sessionCrudPending.delete(n),c?.pending&&delete c.pending[n],l({ok:!1,op:e,error:{code:"timeout",message:"session_crud timeout"}}))},d);this._sessionCrudPending.set(n,{op:e,agentId:a||this.currentAgent,connectionGeneration:Number(this.chatHistoryConnectionGeneration||0),resolve:g=>{u&&clearTimeout(u),c?.pending&&delete c.pending[n],l(g)}});let p=this.sendWsMessage(o);e==="copy"&&!p&&(u&&clearTimeout(u),this._sessionCrudPending.delete(n),c?.pending&&delete c.pending[n],l({ok:!1,op:e,error:{code:"agent_offline"}}))})},markYeaftSessionUnread(e,t=null){if(!e)return!1;let s=Oe(this,e,t);if(!s)return!1;let n=cr(s,e);return this.currentView==="yeaft"&&this.yeaftActiveSessionFilter===e&&Oe(this,e)===s||this.yeaftUnreadSessionKeys?.[n]?!1:(this.yeaftUnreadSessionKeys={...this.yeaftUnreadSessionKeys,[n]:!0},!0)},markYeaftSessionRead(e,t=null){if(!e)return!1;let s=Oe(this,e,t);if(!s)return!1;let n=cr(s,e);if(!this.yeaftUnreadSessionKeys?.[n])return!1;let{[n]:r,...i}=this.yeaftUnreadSessionKeys;return this.yeaftUnreadSessionKeys=i,!0},restoreActiveYeaftSessionFromStatuses(e=[],t=null){if(this.yeaftActiveSessionFilter)return null;let n=(Array.isArray(e)?e:[]).filter(o=>o&&(o.sessionId||o.groupId)&&!["idle","offline","completed","failed","aborted"].includes(o.state)).sort((o,a)=>(a.updatedAt||a.since||0)-(o.updatedAt||o.since||0)),r=n[0]?.sessionId||n[0]?.groupId||null;if(!r)return null;let i=t||n[0]?.agentId||Lf(this,r);if(!i)return null;this.setActiveSessionFilter(r,{agentId:i,force:!0});try{let o=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();o&&typeof o.setActive=="function"&&o.setActive(r,i)}catch{}return r},setActiveSessionFilter(e,t={}){let s=this.yeaftActiveSessionFilter||null,n=e||null,r=n?Oe(this,n,t.agentId||null):this.currentAgent,i=!!n&&n===s&&!!r&&!!this.currentAgent&&r!==this.currentAgent,o=!!t.force||i;if(this.yeaftActiveSessionFilter=n,r&&n&&this.currentAgent!==r){this.selectAgent(r);let c=this.agents.find(l=>l.id===r);this.activateYeaftAgent(r,c||null)}else r&&n&&this.activateYeaftAgent(r);r&&n&&(this.markYeaftSessionRead(n,r),wp(this,r,n));let a=!o&&n===s;if(r&&n){this.yeaftSessionAgentById={...this.yeaftSessionAgentById||{},[n]:r};let c=this.yeaftConversationIdsByAgent?.[r]||null;c||(c=`yeaft-local-${r}-${Date.now()}`,this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[r]:c}),this.yeaftConversationId=c,this.messagesMap[c]||(this.messagesMap[c]=[]),this.currentView==="yeaft"&&(this.activeConversations=[c])}try{let c=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();c&&typeof c.setActive=="function"&&c.setActive(n,r||null);let l=c?.activeSessionKey||null;l?localStorage.setItem("lastViewedYeaftSession",l):localStorage.removeItem("lastViewedYeaftSession")}catch{}this.syncActiveYeaftHistoryLoad(),n&&r&&!a&&this.requestYeaftSessionBootstrap({forceSessionReady:!0,forceHistoryReplay:!0})},async switchYeaftModel(e,t=null,s=void 0){if(!e||!this.currentAgent)return;let n=t||null;if(n){let r={model:e};return s!==void 0&&(r.modelEffort=s||null),await this.sessionCrudRequest("update_config",{sessionId:n,config:r},{agentId:Oe(this,n)})}return this.sendWsMessage({type:"yeaft_model_switch",model:e,modelEffort:s||null,agentId:this.currentAgent}),null},setYeaftDebugSearch(e){this.yeaftDebugSearch=typeof e=="string"?e:"",this._yeaftDebugSearchTimer&&clearTimeout(this._yeaftDebugSearchTimer),this._yeaftDebugSearchTimer=setTimeout(()=>{this._yeaftDebugSearchTimer=null,this.yeaftDebugLoops=[],this.yeaftDebugTurnsById={},this.yeaftDebugTurnOrder=[],this.loadYeaftDebugHistory({limit:this.yeaftDebugSearch.trim()?$f:Lc,indexOnly:!0,search:this.yeaftDebugSearch})},250)},setYeaftDebugSessionFilter(e){e==null?this.yeaftDebugSessionFilter=null:this.yeaftDebugSessionFilter=String(e)},toggleSubAgentCardExpand(e){let t=this.yeaftSubAgentCards?.[e];t&&(this.yeaftSubAgentCards={...this.yeaftSubAgentCards,[e]:{...t,expanded:!t.expanded}})},requestTelemetrySettings(e,t,s=null){if(!t)return Promise.reject(new Error("no agent"));let n=`telemetry-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.telemetryRequestByAgent={...this.telemetryRequestByAgent,[t]:n},new Promise((r,i)=>{this._telemetryPending||(this._telemetryPending={});let o=setTimeout(()=>{if(delete this._telemetryPending[n],this.telemetryRequestByAgent?.[t]===n){let a={...this.telemetryRequestByAgent};delete a[t],this.telemetryRequestByAgent=a}i(new Error("Telemetry request timed out"))},15e3);this._telemetryPending[n]={resolve:r,reject:i,timer:o,agentId:t,operation:e,requestId:n},this.sendWsMessage({type:e==="load"?"get_telemetry_settings":"update_telemetry_settings",agentId:t,requestId:n,...e==="update"?{settings:s||{}}:{}})})},loadTelemetrySettings(e=this.currentAgent){return e?this.requestTelemetrySettings("load",e):Promise.resolve({enabled:!0,retentionDays:3,flushIntervalMs:1e3,maxQueueSize:5e3,rawExchangeMaxBytes:524288,traceTextMaxBytes:262144,loaded:!0})},updateTelemetrySettings(e,t=this.currentAgent){return this.requestTelemetrySettings("update",t,e)},requestWorkCenterFeatureSettings(e,t,s=null){if(!t)return Promise.reject(new Error("no agent"));let n=`work-center-feature-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.workCenterFeatureRequestByAgent={...this.workCenterFeatureRequestByAgent,[t]:n},new Promise((r,i)=>{this._workCenterFeaturePending||(this._workCenterFeaturePending={});let o=setTimeout(()=>{delete this._workCenterFeaturePending[n],i(new Error("Work Center settings request timed out"))},15e3);this._workCenterFeaturePending[n]={resolve:r,reject:i,timer:o,agentId:t,operation:e},this.sendWsMessage({type:e==="load"?"get_work_center_feature_settings":"update_work_center_feature_settings",agentId:t,requestId:n,...e==="update"?{settings:s}:{}})})},loadWorkCenterFeatureSettings(e=this.currentAgent){return this.requestWorkCenterFeatureSettings("load",e)},updateWorkCenterFeatureSettings(e,t=this.currentAgent){return this.requestWorkCenterFeatureSettings("update",t,e)},restartAgent(e){if(!e||this.agentOperations?.[e]?.restart?.pending)return!1;let t=`restart-${Date.now()}-${Math.random().toString(36).slice(2)}`,s=setTimeout(()=>this.finishAgentOperation(e,"restart","timeout"),12e4);return this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},restart:{pending:!0,acknowledged:!1,startedAt:Date.now(),requestId:t,timer:s,error:null}}},this.sendWsMessage({type:"restart_agent",agentId:e,requestId:t}),!0},upgradeAgent(e,t=null){if(!e||this.agentOperations?.[e]?.upgrade?.pending)return!1;let s=this.agents.find(i=>i.id===e),n=`upgrade-${Date.now()}-${Math.random().toString(36).slice(2)}`,r=setTimeout(()=>this.finishAgentOperation(e,"upgrade","timeout"),12e4);return this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},upgrade:{pending:!0,acknowledged:!1,startedAt:Date.now(),requestId:n,oldVersion:s?.version||null,batchId:t,timer:r,error:null}}},this.sendWsMessage({type:"upgrade_agent",agentId:e,requestId:n}),!0},getUpgradableAgents(){return(this.agents||[]).filter(e=>e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("remote_upgrade_safe")&&!e.capabilities.includes("container_agent")&&!this.agentOperations?.[e.id]?.restart?.pending&&!this.agentOperations?.[e.id]?.upgrade?.pending)},upgradeAllAgents(){if(this.agentUpgradeBatch?.pending)return null;let e=this.getUpgradableAgents();if(e.length===0)return null;let t={id:`upgrade-batch-${Date.now()}-${Math.random().toString(36).slice(2)}`,pending:!0,startedAt:Date.now(),agentIds:e.map(s=>s.id),skippedCount:Math.max(0,(this.agents||[]).length-e.length),results:{}};this.agentUpgradeBatch=t;for(let s of e)this.upgradeAgent(s.id,t.id)||this.recordAgentUpgradeBatchResult(s.id,{status:"failed",error:"not_started"},t.id);return t.agentIds.length},recordAgentUpgradeBatchResult(e,t={},s=null){let n=this.agentUpgradeBatch;if(!n?.pending||s&&n.id!==s||!n.agentIds.includes(e)||n.results[e])return null;let r={...n,results:{...n.results,[e]:{status:t.status||"failed",error:t.error||null,version:t.version||null,reason:t.reason||null}}},i=r.agentIds.every(o=>r.results[o]);return this.agentUpgradeBatch=i?{...r,pending:!1,completedAt:Date.now()}:r,i&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("agent-upgrade-batch-complete",{detail:this.agentUpgradeBatch})),i?this.agentUpgradeBatch:null},finishAgentOperation(e,t,s=null){let n=this.agentOperations?.[e]?.[t];n&&(clearTimeout(n.timer),this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},[t]:{...n,pending:!1,timer:null,error:s}}},t==="upgrade"&&n.batchId&&this.recordAgentUpgradeBatchResult(e,s?{status:"failed",error:s}:{status:"upgraded"},n.batchId))},loadSearchSettings(){return this.currentAgent?new Promise(e=>{this._searchPending||(this._searchPending={}),this._searchPending.load=e,this.sendWsMessage({type:"get_search_settings",agentId:this.currentAgent})}):(this.searchSettings={backend:"tavily",tavilyKeyConfigured:!1,tavilyKeyMasked:null,disableHtmlFallback:!1,loaded:!0},Promise.resolve(this.searchSettings))},updateSearchSettings(e){return this.currentAgent?new Promise(t=>{this._searchPending||(this._searchPending={}),this._searchPending.update=t,this.sendWsMessage({type:"update_search_settings",agentId:this.currentAgent,settings:e||{}})}):Promise.resolve({error:"no agent"})},loadTavilyUsage(){return this.currentAgent?(this.tavilyUsageLoading=!0,new Promise(e=>{this._searchPending||(this._searchPending={}),this._searchPending.usage=e,this.sendWsMessage({type:"get_tavily_usage",agentId:this.currentAgent})})):Promise.resolve(null)},loadYeaftMcpServers(){if(!this.currentAgent)return this.yeaftMcpServers=[],this.yeaftMcpRuntime={connected:!1,toolCount:0,perServer:[]},Promise.resolve({servers:[],runtime:this.yeaftMcpRuntime});this.yeaftMcpLoading=!0;let e=`mcp-list-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(t=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[e]=t,this.sendWsMessage({type:"yeaft_mcp_list",agentId:this.currentAgent,requestId:e})})},addYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-add-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_add",agentId:this.currentAgent,requestId:t,server:e||{}})})},removeYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-rem-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_remove",agentId:this.currentAgent,requestId:t,name:e})})},reloadYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-rel-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_reload",agentId:this.currentAgent,requestId:t,name:e||null})})},clearYeaftMessages(){let e=this.yeaftConversationId;e&&(We(this,e),delete this.messagesMap[e],delete this.processingConversations[e],delete this.executionStatusMap[e],delete this.refreshingSessionMap[e],this._closedAt&&delete this._closedAt[e],this._turnCompletedConvs?.delete(e)),this.yeaftConversationId=this.currentAgent?`yeaft-local-${this.currentAgent}-${Date.now()}`:`yeaft-local-${Date.now()}`,this.currentAgent&&(this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[this.currentAgent]:this.yeaftConversationId}),this.messagesMap[this.yeaftConversationId]=[],this.activeConversations=[this.yeaftConversationId],this.yeaftSessionReady=!1,this.yeaftModel=null,this.yeaftAvailableModels=[],this.yeaftStatus=null,this._yeaftAskTerminalEvents={},this.yeaftDebugLoops=[],this.yeaftDebugTurnsById={},this.yeaftDebugTurnOrder=[],this.yeaftDebugHistoryLoading=!1,this.yeaftDebugHistoryError=null,this.yeaftDebugHistoryFetchedAt=0,this.yeaftDebugHistoryProjection=null,this.yeaftDebugSearch="",this.yeaftDebugSessionFilter=null,this.yeaftDebugPanel={open:!1,status:"idle",requestId:null,agentId:null,sessionId:null,turnId:null,error:null},this._yeaftDebugSearchTimer&&(clearTimeout(this._yeaftDebugSearchTimer),this._yeaftDebugSearchTimer=null),this._fetchYeaftDebugHistoryTimer&&(clearTimeout(this._fetchYeaftDebugHistoryTimer),this._fetchYeaftDebugHistoryTimer=null),this._yeaftDebugHistoryInFlightKey=null,this._yeaftDebugHistoryLatestListRequestId=null,this._yeaftDebugHistoryLatestDetailRequestId=null,this.yeaftReflectionCards={},this.yeaftSubAgentCards={},this.vpStatuses={},this.currentAgent&&this.sendWsMessage({type:"yeaft_reset",agentId:this.currentAgent})},togglePaneRightPanel(e,t=null){if(t&&this.isSplitMode){let s=this.panels.find(n=>n.id===t);if(s){s.activeRightPanel=s.activeRightPanel===e?null:e;return}}this.activeRightPanel=this.activeRightPanel===e?null:e,this.activeRightPanel&&(this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.rememberWorkbenchPanelState())},getPaneRightPanel(e){if(e&&this.isSplitMode){let t=this.panels.find(s=>s.id===e);if(t)return t.activeRightPanel}return this.activeRightPanel},setPaneRightPanel(e,t){if(e&&this.isSplitMode){let s=this.panels.find(n=>n.id===e);if(s){s.activeRightPanel=t;return}}this.activeRightPanel=t},applySessionCatalogSnapshot(e,t=null,s=null){let n=r=>{let i=new Set;return(Array.isArray(r)?r:[]).filter(o=>!o?.catalogKey||i.has(o.catalogKey)?!1:(i.add(o.catalogKey),!0)).map(o=>({...o}))};if(this.sessionCatalog=n(e),Array.isArray(s)&&(this.hiddenSessionCatalog=n(s)),Array.isArray(t)){this.sessionProjects=t.filter(i=>i?.id).map(i=>({...i,members:Array.isArray(i.members)?i.members.filter(o=>o?.agentId&&o?.sessionId):i.agentId?(i.sessionIds||[]).map(o=>({agentId:i.agentId,sessionId:o})):[]}));let r=new Map;for(let i of this.sessionProjects)for(let o of i.members)r.set(`${o.agentId}${o.sessionId}`,i.id);this.sessionCatalog=this.sessionCatalog.map(i=>i.runtimeProvider==="yeaft"?{...i,projectId:r.get(`${i.routeRef?.agentId}${i.routeRef?.sessionId}`)||null}:i)}this.sessionCatalogLoaded=!0},mutateProject(e,t={},s=null){let n=s||t.agentId||this.currentAgent||null;if(e==="move_session"&&!n)return Promise.resolve({ok:!1,error:{code:"missing_agent"}});let r=`project_${crypto.randomUUID()}`;return new Promise(i=>{let o=setTimeout(()=>{delete this.projectMutationRequests[r],i({ok:!1,error:{code:"timeout"}})},1e4);this.projectMutationRequests[r]={connectionGeneration:Number(this.chatHistoryConnectionGeneration||0),catalogOrder:Array.isArray(t.catalogOrder)?t.catalogOrder:null,resolve:c=>{clearTimeout(o),i(c)}},this.sendWsMessage({type:"yeaft_project_mutation",...n?{agentId:n,targetAgentId:n}:{},requestId:r,op:e,...t})||(clearTimeout(o),delete this.projectMutationRequests[r],i({ok:!1,error:{code:"send_failed"}}))})},applyLegacyProjectSnapshot(e,t){if(!t||!Array.isArray(e))return;let s=this.sessionProjects.filter(r=>r.legacyAgentId!==t),n=e.filter(r=>r?.id).map(r=>({...r,id:`${t}${r.id}`,legacyProjectId:r.id,legacyAgentId:t,members:(r.sessionIds||[]).map(i=>({agentId:t,sessionId:i}))}));this.applySessionCatalogSnapshot(this.sessionCatalog,[...s,...n])},finishLegacyProjectMutation(e,t){if(!e?.requestId)return!1;let s=this.projectMutationRequests[e.requestId]||null;return!s||s.connectionGeneration!==Number(this.chatHistoryConnectionGeneration||0)?!1:(delete this.projectMutationRequests[e.requestId],e.ok&&Array.isArray(e.projects)&&t&&this.applyLegacyProjectSnapshot(e.projects,t),s.resolve(e),!0)},finishProjectMutation(e){if(!e?.requestId)return!1;let t=this.projectMutationRequests[e.requestId]||null;if(!t||t.connectionGeneration!==Number(this.chatHistoryConnectionGeneration||0))return!1;if(delete this.projectMutationRequests[e.requestId],e.ok){if(Array.isArray(t.catalogOrder)){let s=new Map(this.sessionCatalog.map(r=>[r.catalogKey,r])),n=t.catalogOrder.map((r,i)=>{let o=s.get(r?.catalogKey);return o?{...o,sortRank:i}:null}).filter(Boolean);n.length===this.sessionCatalog.length&&(this.sessionCatalog=n,Rf(n))}Array.isArray(e.projects)&&this.applySessionCatalogSnapshot(this.sessionCatalog,e.projects)}return t.resolve(e),!0},toggleCatalogSessionPin(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_ui_${crypto.randomUUID()}`,s=ri(this,t),n=!e.pinned;return e.pinned=n,this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,pinned:n,sortRank:Number.isFinite(e.sortRank)?e.sortRank:null})?!0:(this.sessionCatalog=s,delete this.sessionCatalogMutationRequests[t],!1)},hideCatalogSession(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_hide_${crypto.randomUUID()}`,s=ri(this,t);return this.sessionCatalog=this.sessionCatalog.filter(r=>r.catalogKey!==e.catalogKey),this.hiddenSessionCatalog=[...(this.hiddenSessionCatalog||[]).filter(r=>r.catalogKey!==e.catalogKey),{...e,hidden:!0}],this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,hidden:!0,...Number.isFinite(e.sortRank)?{sortRank:e.sortRank}:{}})?!0:(this.sessionCatalog=s,this.hiddenSessionCatalog=Array.isArray(this.sessionCatalogMutationRequests[t]?.previousHiddenCatalog)?this.sessionCatalogMutationRequests[t].previousHiddenCatalog:[],delete this.sessionCatalogMutationRequests[t],!1)},restoreCatalogSession(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_restore_${crypto.randomUUID()}`,s=ri(this,t);return this.hiddenSessionCatalog=(this.hiddenSessionCatalog||[]).filter(r=>r.catalogKey!==e.catalogKey),this.sessionCatalog=this.sessionCatalog.some(r=>r.catalogKey===e.catalogKey)?this.sessionCatalog:[...this.sessionCatalog,{...e,hidden:!1}],this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,hidden:!1,...Number.isFinite(e.sortRank)?{sortRank:e.sortRank}:{}})?!0:(this.sessionCatalog=s,this.hiddenSessionCatalog=Array.isArray(this.sessionCatalogMutationRequests[t]?.previousHiddenCatalog)?this.sessionCatalogMutationRequests[t].previousHiddenCatalog:[],delete this.sessionCatalogMutationRequests[t],!1)},renameCatalogSession({row:e,title:t}={}){if(!e?.routeRef||!t)return!1;let{runtimeProvider:s,agentId:n,sessionId:r}=e.routeRef;if(s==="yeaft")this.sessionCrudRequest("rename",{sessionId:r,name:t},{agentId:n});else if(s==="claude-code"||s==="copilot")this.renameChatSession(r,t,n);else return!1;return!0},sessionForkUnavailableReason(e){let t=e?.routeRef;return t?.runtimeProvider!=="yeaft"||!t.agentId||!t.sessionId?"bad_route":this.sessionForkPendingKey?"fork_pending":this.connectionState!=="connected"||!this.agents.some(s=>s.id===t.agentId&&s.online)?"agent_offline":this.isYeaftSessionProcessing(t.sessionId,t.agentId)?"session_running":null},async copyCatalogSession(e,t={}){let s=this.sessionForkUnavailableReason(e);if(s)return{ok:!1,op:"copy",error:{code:s}};let n={...e.routeRef},r=Object.prototype.hasOwnProperty.call(t,"throughTurnId");if(r){if(typeof t.throughTurnId!="string"||!t.throughTurnId.trim())return{ok:!1,op:"copy",error:{code:"invalid_fork_boundary"}};if(!this.agents.find(i=>i.id===n.agentId)?.capabilities?.includes("session_fork_from_turn"))return{ok:!1,op:"copy",error:{code:"session_fork_from_turn_unsupported"}}}this.sessionForkPendingKey=cr(n.agentId,n.sessionId),this.sessionForkState="copying";try{let i=await this.sessionCrudRequest("copy",{sessionId:n.sessionId,...r?{throughTurnId:t.throughTurnId}:{}},{agentId:n.agentId});if(!i?.ok||!i.session?.id)return i;this.sessionForkState="success",await new Promise(a=>setTimeout(a,oS));let o={runtimeProvider:"yeaft",agentId:n.agentId,sessionId:i.session.id};return this.openCatalogSession({catalogKey:cr(o.agentId,o.sessionId),routeRef:o}),i}catch(i){return{ok:!1,op:"copy",error:{code:"fork_failed",message:i?.message||String(i)}}}finally{this.sessionForkState="idle",this.sessionForkPendingKey=null}},reorderCatalogSessions(e){if(!Array.isArray(e)||e.length===0||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_order_${crypto.randomUUID()}`,s=ri(this,t);return this.sessionCatalog=e.map((r,i)=>({...r,sortRank:i})),this.sendWsMessage({type:"reorder_session_catalog",requestId:t,sessions:this.sessionCatalog.map((r,i)=>({catalogKey:r.catalogKey,routeRef:r.routeRef,pinned:!!r.pinned,sortRank:i}))})?!0:(this.sessionCatalog=s,delete this.sessionCatalogMutationRequests[t],!1)},finishSessionCatalogMutation(e){if(!qu(this,e))return!1;if(e?.ok===!0&&e?.type==="session_ui_metadata_updated"){let s=n=>{n&&(n.pinned=e.pinned===!0,Object.prototype.hasOwnProperty.call(e,"sortRank")&&(n.sortRank=Number.isFinite(e.sortRank)?e.sortRank:null))};s(this.sessionCatalog.find(n=>n.catalogKey===e.catalogKey)),s(this.hiddenSessionCatalog.find(n=>n.catalogKey===e.catalogKey))}return e?.ok===!0&&e?.type==="session_catalog_reorder_result"&&Rf(this.sessionCatalog),!0},openCatalogSession(e){if(!e?.catalogKey||!e.routeRef)return!1;let{runtimeProvider:t,agentId:s,sessionId:n}=e.routeRef;if(this.activeCatalogKey=e.catalogKey,t==="yeaft"){let r=this.isSessionHistorySyncing(e.routeRef);return this.enterYeaft(s,{deferBootstrap:!0}),this.setActiveSessionFilter(n,{agentId:s,force:!1}),r||this.reloadYeaftMessages(),!0}return t!=="claude-code"&&t!=="copilot"?!1:(this.currentView==="yeaft"&&this.leaveYeaft(),this.selectConversation(n,s,{refresh:!0}),!0)},syncChatConversationHistory(e){if(!e)return null;let t=rn(e);if(this.chatHistoryRequests[t]?.loading)return this.chatHistoryRequests[t].requestId;let s=On(this.messagesMap[e]);return this.requestChatHistory(e,s===null?{mode:"recent",turns:5}:{mode:"delta",afterMessageId:s})},requestChatHistory(e,{mode:t="recent",turns:s=null,beforeId:n=null,afterMessageId:r=null}={}){if(!e)return null;let i=rn(e);if(this.chatHistoryRequestIdSupported!==!0&&this.chatHistoryRequests[i]?.loading)return null;let o=n??r??null,a=this.beginChatHistoryRequest(e,t,o);return this.sendWsMessage({type:"sync_messages",conversationId:e,...s!=null?{turns:s}:{},...n!=null?{beforeId:n}:{},...r!=null?{afterMessageId:r}:{},requestId:a})?(setTimeout(()=>{Ml(this,i,a,"history_load_timeout")},1e4),a):(Ml(this,i,a,"send_failed"),null)},beginChatHistoryRequest(e,t="recent",s=null){return Bu(this,e,t,s)},isCurrentChatHistoryResponse(e){if(!e?.conversationId||!e?.requestId||!e?.catalogKey)return!1;let t=rn(e.conversationId);if(e.catalogKey!==t)return!1;let s=this.chatHistoryRequests[t];return!!s&&s.loading===!0&&s.requestId===e.requestId&&Number(s.connectionGeneration||0)===Number(this.chatHistoryConnectionGeneration||0)},finishChatHistoryRequest(e){if(!this.isCurrentChatHistoryResponse(e))return!1;let t=this.chatHistoryRequests[e.catalogKey];return this.chatHistoryRequests[e.catalogKey]={...t,loading:!1},!0},isRefreshingSession(e){return e?!!this.refreshingSessionMap[e]:this.refreshingSession},setRefreshingSession(e,t){e&&(this.refreshingSessionMap[e]=t),this.refreshingSession=t},enterBtwMode(){this.btwMode=!0,this.btwMessages=[],this.btwLoading=!1,this.btwSessionId=null},sendBtwQuestion(e){this.currentConversation&&(this.btwMessages.push({role:"user",content:e}),this.btwMessages.push({role:"assistant",content:""}),this.btwLoading=!0,this.sendWsMessage({type:"btw_question",conversationId:this.currentConversation,question:e,btwSessionId:this.btwSessionId}))},closeBtw(){this.btwMode=!1,this.btwMessages=[],this.btwLoading=!1,this.btwSessionId=null},appendBtwDelta(e){let t=this.btwMessages[this.btwMessages.length-1];t&&t.role==="assistant"&&(t.content+=e)},addSubagent(e,t){this.subagents[e]||(this.subagents[e]={}),this.subagents[e][t.id]={id:t.id,slug:t.slug||t.id,type:t.type||"Task",description:t.description||"",parentToolUseId:t.parentToolUseId||null,status:"running",startTime:Date.now(),messages:[],toolCallCount:0},e===this.currentConversation&&this.activeRightPanel!=="subagents"&&(this.activeRightPanel="subagents")},appendSubagentMessage(e,t,s){let n=this.subagents[e];if(!n||!n[t])return;let r=n[t];if(s?.type==="tool"){r.toolCallCount=Number(r.toolCallCount||0)+1;return}s?.type==="text"&&r.messages.push(s)},completeSubagent(e,t){let s=this.subagents[e];!s||!s[t]||(s[t].status="completed")},sendWsMessage(e){return op(this,e)},parseWsMessage(e){return ap(this,e)},connect(){lp(this)},ensureConnected(){return ai(this)},scheduleReconnect(){cp(this)},manualReconnect(){dp(this)},startHeartbeat(){up(this)},stopHeartbeat(){pp(this)},setupVisibilityHandler(){gp(this)},handleMessage(e){bg(this,e)},getOrCreateExecutionStatus(e){return Zl(this,e)},handleAssistantOutputFrame(e,t,s=null){eg(this,e,t,s)},handleClaudeOutput(e,t){this.handleAssistantOutputFrame(e,t,null)},addMessageToConversation(e,t){return _o(this,e,t)},pruneConversationMessageRetention(e,t=null,s=null,n=void 0){return yp(this,{conversationId:e,sessionId:t,agentId:s,limits:n})},appendToAssistantMessageForConversation(e,t,s){Pp(this,e,t,s)},finishStreamingForConversation(e,t){Rp(this,e,t)},sweepStaleStreamingForConversation(e){_p(this,e)},appendToAssistantMessage(e){this.appendToAssistantMessageForConversation(this.currentConversation,e)},finishStreaming(){this.finishStreamingForConversation(this.currentConversation)},addMessage(e){this.addMessageToConversation(this.currentConversation,e)},loadHistoryMessages(e){Ep(this,e)},formatDbMessage(e){return Dp(e)},selectAgent(e){return Tg(this,e)},createConversation(e,t=null,s=null,n=void 0){Mg(this,e,t,s,n)},resumeConversation(e,t,s=null,n=null,r=null){Pg(this,e,t,s,n,r)},selectConversation(e,t,s={}){Rg(this,e,t,s)},updateConversationSettings(e,t){uc(this,e,t)},toggleConversationMcp(e,t){_g(this,e,t)},deleteConversation(e,t){Dg(this,e,t)},closeSession(e,t){Eg(this,e,t)},appendColumn(e){Fg(this,e)},removeColumn(e){Vg(this,e)},sendMessageToConversation(e,t,s=[],n={}){qg(this,e,t,s,n)},cancelExecutionForConversation(e){Bg(this,e)},addPanel(){if(this.panels.length>=3)return;let e=(t,s)=>({id:t,conversationId:s,activeRightPanel:null});if(this.panels.length===0){let t=localStorage.getItem("splitPanesSaved");if(t){try{let s=JSON.parse(t);if(Array.isArray(s)&&s.length>=2){let n=new Set(this.conversations.map(i=>i.id)),r=s.filter(i=>i&&typeof i.id=="string").map(i=>({...e(i.id,null),conversationId:i.conversationId&&n.has(i.conversationId)?i.conversationId:null}));if(r.length>=2){this.panels=r,this.activePanelId=r[0].id;for(let i of r)i.conversationId&&!this.activeConversations.includes(i.conversationId)&&this.activeConversations.push(i.conversationId),i.conversationId&&!this.messagesMap[i.conversationId]&&(this.messagesMap[i.conversationId]=[],this.requestChatHistory(i.conversationId,{mode:"recent",turns:5}));localStorage.removeItem("splitPanesSaved"),this.saveOpenSessions();return}}}catch{}localStorage.removeItem("splitPanesSaved")}this.panels=[e("panel-0",this.currentConversation),e("panel-1",null)],this.activePanelId="panel-0"}else{let t="panel-"+Date.now();this.panels.push(e(t,null))}this.saveOpenSessions()},removePanel(e){let t=this.panels.findIndex(s=>s.id===e);if(!(t<0)){if(this.panels.splice(t,1),this.panels.length<=1){let s=this.panels[0];s?.conversationId&&(this.activeConversations=[s.conversationId]),this.panels=[],this.activePanelId=null}else this.activePanelId===e&&(this.activePanelId=this.panels[0]?.id||null);this.saveOpenSessions()}},setPanelConversation(e,t,{refresh:s=!1}={}){let n=this.panels.find(i=>i.id===e);if(!n)return;let r=n.conversationId===t;n.conversationId=t,t&&!this.activeConversations.includes(t)&&this.activeConversations.push(t),t&&!this.messagesMap[t]?(this.messagesMap[t]=[],this.syncChatConversationHistory(t)):t&&(s||!r)&&this.syncChatConversationHistory(t),this.saveOpenSessions()},setActivePanel(e){this.activePanelId=e},splitToPanel(e){if(!e)return;let t=(s,n)=>({id:s,conversationId:n,activeRightPanel:null});if(this.panels.length===0)this.panels=[t("panel-0",this.currentConversation),t("panel-"+Date.now(),e)],this.activePanelId=this.panels[1].id;else if(this.panels.length>=3)this.panels[this.panels.length-1].conversationId=e,this.activePanelId=this.panels[this.panels.length-1].id;else{let s="panel-"+Date.now();this.panels.push(t(s,e)),this.activePanelId=s}this.activeConversations.includes(e)||this.activeConversations.push(e),this.messagesMap[e]||(this.messagesMap[e]=[],this.requestChatHistory(e,{mode:"recent",turns:5})),this.saveOpenSessions()},isInAnyPanel(e){return this.panels.some(t=>t.conversationId===e)},setSessionPinned(e,t,s={}){if(!e)return;let n=s&&s.agentId?s.agentId:null,r=n?!!Hs()?.sessionById?.(e,n)?.pinned:this.pinnedSessions.includes(e);if(t&&!r)this.pinnedSessions.unshift(e);else if(!t&&r){let i=this.pinnedSessions.indexOf(e);i>=0&&this.pinnedSessions.splice(i,1)}try{localStorage.setItem("pinned-sessions",JSON.stringify(this.pinnedSessions))}catch{}try{let i=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),o=Oe(this,e,n);i&&typeof i.applyPinState=="function"&&i.applyPinState(e,!!t,o)}catch{}},togglePin(e,t={}){let s=t&&t.agentId?t.agentId:null,n=s?Hs()?.sessionById?.(e,s):null,r=t&&Object.prototype.hasOwnProperty.call(t,"pinned"),o=!(n?!!n.pinned:r?!!t.pinned:this.pinnedSessions.includes(e));this.setSessionPinned(e,o,{agentId:s});let a={type:o?"pin_session":"unpin_session",conversationId:e};t&&t.sessionKind==="yeaft"&&(a.sessionKind="yeaft",t.agentId&&(a.agentId=t.agentId),t.sessionName&&(a.sessionName=t.sessionName),t.workDir&&(a.workDir=t.workDir)),this.sendWsMessage(a)},isSessionPinned(e){return this.pinnedSessions.includes(e)},applyServerPinSnapshot(e,t,s){if(!Array.isArray(this.pinnedSessions))return;let n=new Set(this.pinnedSessions),r=[];for(let i of t)n.has(i)||r.push(i);if(r.length>0&&(this.pinnedSessions=[...r,...this.pinnedSessions]),e){let i=this.pinnedSessions.filter(o=>s(o)?t.has(o):!0);i.length!==this.pinnedSessions.length&&(this.pinnedSessions=i)}try{localStorage.setItem("pinned-sessions",JSON.stringify(this.pinnedSessions))}catch{}},clearYeaftSessionProcessingIfIdle(e,{agentId:t=null,ignoreStatuses:s=!1}={}){if(!e)return;let n=t||Oe(this,e);if(Object.values(this.activeVpTurns||{}).some(a=>qt(a,e,n))||!s&&Object.values(this.vpStatuses||{}).some(c=>qt(c,e,n)&&Ri.has(c?.state)))return;let i=Vs(n,e),o={...this.yeaftProcessingSessions||{}};i&&delete o[i],Jo(this,e,n)&&delete o[e],this.yeaftProcessingSessions=o},sendMessage(e,t=[],s={}){$g(this,e,t,s)},cancelExecution(){Lg(this)},cancelYeaft(){if(!this.currentAgent)return;this.sendWsMessage({type:"yeaft_abort_all",agentId:this.currentAgent});let e=this.yeaftConversationIdsByAgent?.[this.currentAgent]||this.yeaftConversationId;e&&delete this.processingConversations[e],Sf(this,this.currentAgent)},cancelYeaftSession(e){let t=Oe(this,e);!t||!e||(this.sendWsMessage({type:"yeaft_abort_all",agentId:t,sessionId:e}),this.activeVpTurns=Object.fromEntries(Object.entries(this.activeVpTurns||{}).filter(([,s])=>!qt(s,e,t))),this.stoppingVpTurnIds=Object.fromEntries(Object.entries(this.stoppingVpTurnIds||{}).filter(([s])=>this.activeVpTurns?.[s])),this.vpStatuses=Object.fromEntries(Object.entries(this.vpStatuses||{}).filter(([,s])=>!qt(s,e,t))),this.clearYeaftSessionProcessingIfIdle(e,{agentId:t,ignoreStatuses:!0}))},cancelVpTurn(e,{sessionId:t=null,vpId:s=null}={}){let n=Oe(this,t);if(!n||!e)return;let r=Kn(this,n,e);this.stoppingVpTurnIds={...this.stoppingVpTurnIds,[r]:Date.now()};let i={type:"yeaft_abort_turn",agentId:n,turnId:e};t&&(i.sessionId=t),s&&(i.vpId=s),this.sendWsMessage(i)},cancelVpTurnForSession(e,t=null){if(!e)return!1;let s=t||this.yeaftActiveSessionFilter||null;if(!s)return!1;let n=Oe(this,s);if(!n)return!1;let r=this.activeVpTurns||{},i=null,o=-1/0;for(let[a,c]of Object.entries(r)){if(!c||c.vpId!==e||!qt(c,s,n))continue;let l=typeof c.startedAt=="number"?c.startedAt:0;l>=o&&(o=l,i=a)}if(!i){let a=this.vpStatuses?.[Xo(n,s,e)]||null;a?.turnId&&!["idle","offline"].includes(a.state)&&(i=a.turnId)}if(i){let a=r[i]?.turnId||i;return this.cancelVpTurn(a,{sessionId:s,vpId:e}),!0}return this.sendWsMessage({type:"yeaft_abort_turn",agentId:n,sessionId:s,vpId:e}),!0},answerUserQuestion(e,t,s){Og(this,e,t,s)},refreshAgents(){Ng(this)},refreshConversation(){Hg(this)},loadMoreMessages(){if(this.currentView==="yeaft"||this.loadingMoreMessages||!this.hasMoreMessages||!this.currentConversation)return;this.loadingMoreMessages=!0;let e=this._loadMoreGeneration=(this._loadMoreGeneration||0)+1,s=(this.messagesMap[this.currentConversation]||[]).find(i=>i.dbMessageId),n=this.currentConversation,r=s?.dbMessageId??null;this.requestChatHistory(n,{mode:"older",turns:5,beforeId:r}),setTimeout(()=>{this._loadMoreGeneration===e&&this.loadingMoreMessages&&this.currentConversation===n&&(this.loadingMoreMessages=!1)},1e4)},reloadYeaftMessages(){if(this.currentView!=="yeaft")return!1;let e=pn(this),t=Oe(this,e);if(!t)return!1;let s=Ve(t,e),n=this.yeaftConversationId,r=this.yeaftSessionHistoryState?.[s];if(r?.loading)return r.requestId?(this._yeaftManualHistoryRefresh={agentId:t,sessionId:e,requestId:r.requestId},r.requestId):!1;let i=this.beginYeaftHistoryLoad({agentId:t,sessionId:e,mode:"recent",preserveLoaded:!1});if(!i)return!1;this._yeaftManualHistoryRefresh={agentId:t,sessionId:e,requestId:i.requestId};let o=Vn();this.yeaftHistoryPerfTraceBySession={...this.yeaftHistoryPerfTraceBySession||{},[s]:o};let a={type:"yeaft_load_history",agentId:t,limit:Rc,sessionId:e,requestId:i.requestId,perfTraceId:o};return Ct(this,{traceId:o,phase:"history.request_send",agentId:t,sessionId:e,messageType:a.type,bytes:JSON.stringify(a).length,detail:{mode:"manual-reload",limit:Rc}}),this.sendWsMessage(a)?!0:(di(this,{agentId:t,sessionId:e,requestId:i.requestId,error:"history_load_send_failed"}),!1)},loadMoreYeaftHistory(e=Mi(),{sessionId:t=null,agentId:s=null,background:n=!1}={}){if(this.currentView!=="yeaft")return!1;let r=t||pn(this),i=Oe(this,r,s);if(!i||!r)return!1;let o=Ve(i,r),a=this.yeaftSessionHistoryState?.[o]||{};if(a.loading||!a.hasMore)return!1;let c=Math.min(50,Math.max(1,Number.isFinite(e)?Math.floor(e):Mi())),l=this.yeaftHistoryCacheState?.[o]?.ranges||[],d=Number(this.yeaftHistoryCacheState?.[o]?.rangeEpoch)||0,u=Fp(a,l,d);if(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState||{},[o]:u.state},!u.request)return this.syncActiveYeaftHistoryLoad(),!1;let p=this.beginYeaftHistoryLoad({agentId:i,sessionId:r,mode:n?"prefetch":"older",preserveLoaded:!0,latestSeq:this.yeaftSessionHistoryState[o]?.latestSeq??null});if(!p)return!1;let g=Vn();this.yeaftHistoryPerfTraceBySession={...this.yeaftHistoryPerfTraceBySession||{},[o]:g};let f={type:"yeaft_load_more_history",agentId:i,sessionId:r,requestId:p.requestId,beforeSeq:u.request.beforeSeq,pageKind:u.request.kind,gapStopAtSeq:u.request.stopAtSeq,cacheEpoch:u.request.cacheEpoch,turns:c,perfTraceId:g};return Ct(this,{traceId:g,phase:"history_more.request_send",agentId:i,sessionId:r,messageType:f.type,bytes:JSON.stringify(f).length,detail:{beforeSeq:f.beforeSeq,turns:f.turns,pageKind:u.request.kind,gapStopAtSeq:u.request.stopAtSeq,background:n}}),this.sendWsMessage(f)?!0:(di(this,{agentId:i,sessionId:r,requestId:p.requestId,error:"history_load_send_failed"}),!1)},checkPendingRecovery(){Nu(this)},performRecovery(){Hu(this)},dismissRecovery(){Wu(this)},autoRestoreConversation(e){Uu(this,e)},saveOpenSessions(){Dn(this)},getLastSession(){return Ku(this)},clearLastSession(){zu(this)},listHistorySessions(e){Gu(this,e)},listFolders(){return Yu(this)},listFoldersForAgent(e,t){return Qu(this,e,t)},listModelsForAgent(e,t){return Xu(this,e,t)},listHistorySessionsForAgent(e,t,s){Zu(this,e,t,s)},async loadGlobalSessions(e=20){return Ju(this,e)},async deleteGlobalSession(e){return ep(this,e)},findAgentForSession(e){return Pl(this,e)},isSessionResumable(e){return tp(this,e)},_isRecentlyClosed(e){return Fn(this,e)},_startProcessingWatchdog(e){fr(this,e)},_resetProcessingWatchdog(e){Eo(this,e)},_stopProcessingWatchdog(e){We(this,e)},startRefreshTimeout(e){let t=e||this.currentConversation;t&&(this._refreshTimeouts||(this._refreshTimeouts={}),this._refreshTimeouts[t]&&clearTimeout(this._refreshTimeouts[t]),this._refreshTimeouts[t]=setTimeout(()=>{this.setRefreshingSession(t,!1),delete this._refreshTimeouts[t]},1e4))},toggleTheme(){this.theme=this.theme==="dark"?"light":"dark",this.themeFollowSystem=!1,localStorage.setItem("theme",this.theme),document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light")},initTheme(){if(document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light"),this.themeFollowSystem&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),t=s=>{this.themeFollowSystem&&(this.theme=s.matches?"dark":"light",document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light"))};e.addEventListener?e.addEventListener("change",t):e.addListener&&e.addListener(t)}},loadModelsDevRegistry({forceRefresh:e=!1}={}){let t=this.modelsDevRegistry.loaded&&!this.modelsDevRegistry.error&&Date.now()-this.modelsDevRegistry.fetchedAt<36e5;if(!e&&t)return Promise.resolve(this.modelsDevRegistry);let s=this.currentAgent;if(!s)return Promise.resolve(this.modelsDevRegistry);if(this._modelsDevPending&&(!e||this._modelsDevPending.force))return new Promise(n=>this._modelsDevPending.resolvers.push(n));if(this._modelsDevPending){let n=this._modelsDevPending;this._modelsDevPending=null,n.timer&&clearTimeout(n.timer);for(let r of n.resolvers)r(this.modelsDevRegistry)}return new Promise(n=>{let r={resolvers:[n],force:e,timer:null};this._modelsDevPending=r;try{this.sendWsMessage({type:"get_models_dev_registry",agentId:s,forceRefresh:e})}catch{this._modelsDevPending===r&&(this._modelsDevPending=null),n(this.modelsDevRegistry);return}r.timer=setTimeout(()=>{if(this._modelsDevPending===r){this._modelsDevPending=null;for(let i of r.resolvers)i(this.modelsDevRegistry)}},2e4)})},changeLocale(e){if(this.locale=e,ni(e),this.currentAgent)try{this.sendWsMessage({type:"update_llm_config",agentId:this.currentAgent,config:{language:e}})}catch{}},async fetchCustomExpertRoles(){let e=Ye();try{let t={};e.token&&(t.Authorization=`Bearer ${e.token}`);let s=await fetch("/api/expert-roles/custom",{headers:t});if(s.ok){let n=await s.json();this.customExpertRoles=n.roles||[]}}catch{}},async createCustomExpertRole(e){let t=Ye();try{let s={"Content-Type":"application/json"};t.token&&(s.Authorization=`Bearer ${t.token}`);let n=await fetch("/api/expert-roles/custom",{method:"POST",headers:s,body:JSON.stringify(e)});if(n.ok){let r=await n.json();return this.customExpertRoles.push(r.role),r.role}else{let r=await n.json().catch(()=>({}));throw new Error(r.error||"Failed to create custom expert role")}}catch(s){throw s}},async updateCustomExpertRole(e,t){let s=Ye();try{let n={"Content-Type":"application/json"};s.token&&(n.Authorization=`Bearer ${s.token}`);let r=await fetch(`/api/expert-roles/custom/${e}`,{method:"PUT",headers:n,body:JSON.stringify(t)});if(r.ok){let i=await r.json(),o=this.customExpertRoles.findIndex(a=>a.id===e);return o!==-1&&(this.customExpertRoles[o]=i.role),i.role}else{let i=await r.json().catch(()=>({}));throw new Error(i.error||"Failed to update custom expert role")}}catch(n){throw n}},async deleteCustomExpertRole(e){let t=Ye();try{let s={};t.token&&(s.Authorization=`Bearer ${t.token}`);let n=await fetch(`/api/expert-roles/custom/${e}`,{method:"DELETE",headers:s});if(n.ok)return this.customExpertRoles=this.customExpertRoles.filter(r=>r.id!==e),!0;{let r=await n.json().catch(()=>({}));throw new Error(r.error||"Failed to delete custom expert role")}}catch(s){throw s}},rememberWorkbenchPanelState(e=this.activeSessionRoute,t){let s=typeof e=="string"?e:lt(e);if(!s)return!1;let n=this.workbenchPanelStateByRoute[s]||{},r=Number.isFinite(t)&&t>0?Math.round(t):n.width;return this.workbenchPanelStateByRoute={...this.workbenchPanelStateByRoute,[s]:{expanded:!!this.workbenchExpanded,maximized:!!this.workbenchExpanded&&!!this.workbenchMaximized,...Number.isFinite(r)&&r>0?{width:r}:{}}},!0},workbenchPanelWidthForRoute(e=this.activeSessionRoute){let t=typeof e=="string"?e:lt(e),s=t?this.workbenchPanelStateByRoute[t]?.width:null;return Number.isFinite(s)&&s>0?s:null},restoreWorkbenchPanelState(e=this.activeSessionRoute){let t=lt(e),s=t?this.workbenchPanelStateByRoute[t]:null;return this.workbenchExpanded=!!s?.expanded,this.workbenchMaximized=!!s?.expanded&&!!s?.maximized,!!s},openWorkbench(){this.workbenchExpanded=!0,this.activeRightPanel=null,this.closeYeaftDebugPanel(),this.rememberWorkbenchPanelState()},toggleWorkbench(){if(this.workbenchExpanded){this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.rememberWorkbenchPanelState();return}this.openWorkbench()},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},toggleSessionSidebar(){this.sessionSidebarOpen=!this.sessionSidebarOpen},closeSessionSidebar(){this.sessionSidebarOpen=!1},toggleWorkbenchMaximized(){this.workbenchMaximized=!this.workbenchMaximized,this.rememberWorkbenchPanelState()},renameChatSession(e,t,s=null){let n=t&&t.trim()?t.trim():"";n?this.customConversationTitles[e]=n:delete this.customConversationTitles[e],this.sendWsMessage({type:"update_conversation_settings",conversationId:e,...s?{agentId:s}:{},title:n})},resolveMessageFileReferences(e){let t=this.activeSessionRoute,s=t?.agentId||this.currentAgent||null,n=t?.runtimeProvider==="yeaft"?At(this,t.sessionId,s):this.currentConversation,i=lt(t)&&s&&n&&this.workbenchRouteProtocolSupported===!0&&It(this,s,"file_reference_resolution")&&It(this,s,"file_editor")&&It(this,s,"workbench_session_routes"),o=[...new Set((Array.isArray(e)?e:[]).filter(u=>typeof u=="string"&&u.trim()).map(u=>u.trim()))].slice(0,32);if(!i||o.length===0)return null;let a=this.effectiveWorkDir||"",c=t?{runtimeProvider:t.runtimeProvider,agentId:t.agentId,sessionId:t.sessionId}:null,l=`file_refs_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`;return this.sendWsMessage({type:"resolve_file_references",requestId:l,references:o,agentId:s,conversationId:n,workDir:a,workbenchRoute:c})?l:null},requestMessageImagePreview(e){let t=this.activeSessionRoute,s=t?.agentId||this.currentAgent||null,n=t?.runtimeProvider==="yeaft"?At(this,t.sessionId,s):this.currentConversation,i=lt(t)&&s&&n&&this.workbenchRouteProtocolSupported===!0&&(s===this.currentAgent?this.hasCapability("file_editor")&&this.hasCapability("workbench_session_routes")&&this.hasCapability("response_image_preview"):It(this,s,"file_editor")&&It(this,s,"workbench_session_routes")&&It(this,s,"response_image_preview")),o=typeof e=="string"?e.trim():"";if(!i||!o)return null;let a=`message_image_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`;return this.sendWsMessage({type:"read_file",requestId:a,filePath:o,responseImagePreview:!0,agentId:s,conversationId:n,workDir:this.effectiveWorkDir||"",workbenchRoute:{runtimeProvider:t.runtimeProvider,agentId:t.agentId,sessionId:t.sessionId}})?a:null},openFileInExplorer(e,{hideTree:t=!1,line:s=null}={}){let n=this.activeSessionRoute,r=n?{runtimeProvider:n.runtimeProvider,agentId:n.agentId,sessionId:n.sessionId}:null,i=lt(r),o=this.effectiveWorkDir||"",a=qs(i,o),c=r?.agentId||this.currentAgent||null,l=r?.runtimeProvider==="yeaft"?At(this,r.sessionId,c):this.currentConversation,d=this.workbenchRouteProtocolSupported===!0&&It(this,c,"file_editor")&&It(this,c,"workbench_session_routes");if(!c||!l||!d)return!1;let u=typeof e=="string"?e.trim():"";if(!u)return!1;let p=this.workbenchExpanded;this.openWorkbench(),this.workbenchMaximized=!1,this.rememberWorkbenchPanelState();let g=()=>{let f=lt(this.activeSessionRoute),v=this.effectiveWorkDir||"";f!==i||v!==o||qs(f,v)!==a||window.dispatchEvent(new CustomEvent("open-file-in-explorer",{detail:{filePath:u,agentId:c,conversationId:l,workDir:o,workbenchRoute:r,workbenchRouteKey:i,workspaceGeneration:a,hideTree:!!t,line:Number.isFinite(s)&&s>0?s:null}}))};return p?g():Vue.nextTick(g),!0},logout(){Ye().logout(),this.authenticated=!1,this.sessionKey=null,this.agents=[],this.currentAgent=null,this.currentAgentInfo=null,this.yeaftStatusByAgent={},this._yeaftRetiredCatalogEpochsByAgent={},this.conversations=[],this.activeConversations=[],this.messagesMap={},this.conversationTitles={},this.customConversationTitles={},this.processingConversations={},this.executionStatusMap={},this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.workbenchPanelStateByRoute={},this.subagents={},this.activeSubagentId=null,this.activeRightPanel=null,this.pinnedSessions=[],this.clearWorkCenterBrowserState(),this.ws&&this.ws.close()}}})});function CS(e){let t=String(e||""),s=2166136261;for(let n=0;n<t.length;n++)s^=t.charCodeAt(n),s=Math.imul(s,16777619)>>>0;return s>>>0}function Vc(e){if(!e)return gn[0];let t=String(e).toLowerCase();return SS[t]||gn[CS(t)%gn.length]}function IS(e){return Vc(e).background}function AS(e){return Vc(e).foreground}function Fc(){let e=typeof window<"u"&&window.Pinia&&window.Pinia.useChatStore?window.Pinia.useChatStore():null;return e&&typeof e.locale=="string"?e.locale:typeof localStorage<"u"&&localStorage.getItem("locale")||""}function xS(e,t=""){return e?String(t||"").startsWith("zh")?e.descriptionZh||e.roleZh||e.description||e.role||"":e.description||e.role||e.descriptionZh||e.roleZh||"":""}var kS,gn,SS,q0,xs,Tr=N(()=>{({defineStore:kS}=Pinia),gn=[{key:"rat",label:"Rat",glyph:"R",background:"var(--vp-avatar-rat-bg)",foreground:"var(--vp-avatar-rat-fg)"},{key:"ox",label:"Ox",glyph:"O",background:"var(--vp-avatar-ox-bg)",foreground:"var(--vp-avatar-ox-fg)"},{key:"tiger",label:"Tiger",glyph:"T",background:"var(--vp-avatar-tiger-bg)",foreground:"var(--vp-avatar-tiger-fg)"},{key:"rabbit",label:"Rabbit",glyph:"B",background:"var(--vp-avatar-rabbit-bg)",foreground:"var(--vp-avatar-rabbit-fg)"},{key:"dragon",label:"Dragon",glyph:"D",background:"var(--vp-avatar-dragon-bg)",foreground:"var(--vp-avatar-dragon-fg)"},{key:"snake",label:"Snake",glyph:"S",background:"var(--vp-avatar-snake-bg)",foreground:"var(--vp-avatar-snake-fg)"},{key:"horse",label:"Horse",glyph:"H",background:"var(--vp-avatar-horse-bg)",foreground:"var(--vp-avatar-horse-fg)"},{key:"goat",label:"Goat",glyph:"G",background:"var(--vp-avatar-goat-bg)",foreground:"var(--vp-avatar-goat-fg)"},{key:"monkey",label:"Monkey",glyph:"M",background:"var(--vp-avatar-monkey-bg)",foreground:"var(--vp-avatar-monkey-fg)"},{key:"rooster",label:"Rooster",glyph:"K",background:"var(--vp-avatar-rooster-bg)",foreground:"var(--vp-avatar-rooster-fg)"},{key:"dog",label:"Dog",glyph:"D",background:"var(--vp-avatar-dog-bg)",foreground:"var(--vp-avatar-dog-fg)"},{key:"pig",label:"Pig",glyph:"P",background:"var(--vp-avatar-pig-bg)",foreground:"var(--vp-avatar-pig-fg)"}],SS=Object.freeze({steve:gn[8],ada:gn[3],linus:gn[0],martin:gn[4]}),q0=gn.map(e=>e.background);xs=kS("vp",{state:()=>({vps:{},vpOrder:[],emptyLibrary:!1,lastSnapshotAt:0,snapshotStatus:"idle",snapshotAgentId:null,snapshotRequestId:null,snapshotError:"",lastVpSnapshotAgentId:null,lastChange:null}),getters:{vpList(e){return e.vpOrder.map(t=>e.vps[t]).filter(Boolean)},vpCount(e){return e.vpOrder.length},vpById:e=>t=>e.vps[t]||null,vpLabel:e=>t=>{let s=e.vps[t];return s?Fc().startsWith("zh")&&s.displayNameZh?s.displayNameZh:s.displayName||s.vpId||t:t},vpDescription:e=>t=>xS(e.vps[t],Fc()),vpInitial:e=>t=>{let s=e.vps[t],n=Fc().startsWith("zh"),r=s&&(s.avatar||n&&s.displayNameZh||s.displayName||s.vpId)||t||"?";return String(r).charAt(0).toUpperCase()||"?"},vpColor:e=>t=>{let s=e.vps[t];return s&&s.color?s.color:IS(t)},vpTextColor:()=>e=>AS(e),vpAvatarMotif:()=>e=>Vc(e)},actions:{applySnapshot(e,t=null,s=null){let n=this.snapshotAgentId||null;if(n&&t&&t!==n||s&&this.snapshotRequestId&&s!==this.snapshotRequestId)return!1;let r=e&&Array.isArray(e.vps)?e.vps:[];return this._setActiveSnapshot({vps:r,emptyLibrary:!!(e&&e.emptyLibrary),agentId:t||n||null,requestId:s||this.snapshotRequestId||null,receivedAt:Date.now()}),!0},beginSnapshot(e,t){this.vps={},this.vpOrder=[],this.emptyLibrary=!1,this.lastVpSnapshotAgentId=null,this.snapshotStatus="loading",this.snapshotAgentId=e||null,this.snapshotRequestId=t||null,this.snapshotError=""},failSnapshot(e,t,s=""){return!this.snapshotRequestId||!t||t!==this.snapshotRequestId||e&&this.snapshotAgentId&&e!==this.snapshotAgentId?!1:(this.snapshotStatus="error",this.snapshotAgentId=e||this.snapshotAgentId||null,this.snapshotRequestId=t||this.snapshotRequestId||null,this.snapshotError=String(s||"VP library request failed"),!0)},_setActiveSnapshot({vps:e,emptyLibrary:t,agentId:s,requestId:n,receivedAt:r}){this.vps={},this.vpOrder=[];for(let i of e||[])this._upsertInternal(i);this.emptyLibrary=!!t,this.lastSnapshotAt=r||Date.now(),this.lastVpSnapshotAgentId=s||null,this.snapshotStatus="ready",this.snapshotAgentId=s||null,this.snapshotRequestId=n||null,this.snapshotError=""},upsert(e,t=null,s=null){return s&&this.snapshotAgentId&&s!==this.snapshotAgentId?!1:(this._upsertInternal(e),e&&e.vpId&&(this.lastChange={vpId:e.vpId,kind:"updated",reason:t||null,at:Date.now()}),!0)},remove(e,t=null,s=null){return s&&this.snapshotAgentId&&s!==this.snapshotAgentId||!e?!1:(delete this.vps[e],this.vpOrder=this.vpOrder.filter(n=>n!==e),this.lastChange={vpId:e,kind:"removed",reason:t||"file.removed",at:Date.now()},!0)},_upsertInternal(e){if(!e||!e.vpId)return;let t=!!this.vps[e.vpId];this.vps[e.vpId]={...this.vps[e.vpId]||{},...e},t||this.vpOrder.push(e.vpId),this.emptyLibrary&&(this.emptyLibrary=!1)}}})});function qc(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 ta(e){return!e||typeof e!="object"?0:qc(e.lastMessageAt)||qc(e.updatedAt)||qc(e.createdAt)||0}function Bc(e,t){let s=ta(t)-ta(e);return s!==0?s:String(e?.id||"").localeCompare(String(t?.id||""))}function Vf(e){return[...Array.isArray(e)?e:[]].sort(Bc)}var sa=N(()=>{});function qf(){try{if(typeof localStorage>"u")return{};let e=JSON.parse(localStorage.getItem(Wf)||"{}");return e&&typeof e=="object"?e:{}}catch{return{}}}function TS(e){try{typeof localStorage<"u"&&localStorage.setItem(Wf,JSON.stringify(e&&typeof e=="object"?e:{}))}catch{}}function Bf(){try{return typeof localStorage>"u"?[]:_i(JSON.parse(localStorage.getItem(Uf)||"[]"))}catch{return[]}}function MS(e){try{typeof localStorage<"u"&&localStorage.setItem(Uf,JSON.stringify(_i(e)))}catch{}}function jf(e,t){return`${e||""}${t||""}`}function Ws(e){return e&&e.agentId&&e.id?jf(e.agentId,e.id):""}function Ts(e,t){return t?e?jf(e,t):String(t):""}function PS(e){return typeof e=="string"?e:String(e||"")}function Kt(e,t,s=null){let n=PS(t);if(!n)return"";let r=Ts(s,n),i=r?e.sessions[r]:null;if(i&&(s||i.agentId||e.inventoryIdentityMode==="legacy-bare"))return r;if(s){let l=e.sessions[n];return e.inventoryIdentityMode==="legacy-bare"&&l&&!l.agentId?n:""}let o=e.sessions[n];if(o){if(o.agentId||e.inventoryIdentityMode==="legacy-bare")return n;let l=e.activeSessionKey?e.sessions[e.activeSessionKey]:null;return l?.agentId&&l.id===n?e.activeSessionKey:""}if(e.activeSessionKey&&e.sessions[e.activeSessionKey]?.id===n)return e.activeSessionKey;let a=e.sessionOrder.filter(l=>e.sessions[l]?.id===n),c=Ei();if(c?.currentAgent){let l=a.find(d=>e.sessions[d]?.agentId===c.currentAgent);if(l)return l}return a[0]||""}function Nc(e,t,s=null){return Kt(e,t,s)||""}function Hc(e){if(e.inventoryIdentityMode==="legacy-bare"){let t=e.activeSessionKey?e.sessions[e.activeSessionKey]:null,s=t&&!t.agentId?t:e.activeSessionId?e.sessions[e.activeSessionId]:null;e._retiredBareActiveSessionId=s&&!s.agentId&&s.id||null,e.sessionOrder=e.sessionOrder.filter(n=>e.sessions[n]?.agentId),e._retiredBareActiveSessionId&&(e.activeSessionId=null,e.activeSessionKey=null)}e.inventoryIdentityMode="agent-scoped"}function RS(e){let t=e._preferredExactSessionIdentity||null;if(!t)return!1;e._preferredExactSessionIdentity=null;let s=e.sessions[t.key]||null,n=Ei(),r=s?.id===t.sessionId&&s.agentId===t.agentId,i=n?.currentView!=="yeaft"||typeof n.setActiveSessionFilter=="function";if(r&&i){if(e.activeSessionId=t.sessionId,e.activeSessionKey=t.key,n?.currentView==="yeaft")n.setActiveSessionFilter(t.sessionId,{agentId:t.agentId,force:!0});else if(n){n.yeaftActiveSessionFilter=t.sessionId,n.yeaftSessionAgentById={...n.yeaftSessionAgentById||{},[t.sessionId]:t.agentId};try{localStorage.setItem("lastViewedYeaftSession",t.key)}catch{}}return!0}if(e.activeSessionId=null,e.activeSessionKey=null,n?.yeaftActiveSessionFilter===t.sessionId&&(n.yeaftActiveSessionFilter=null),n?.yeaftSessionAgentById?.[t.sessionId]===t.agentId){let o={...n.yeaftSessionAgentById};delete o[t.sessionId],n.yeaftSessionAgentById=o}try{let o=wr(localStorage.getItem("lastViewedYeaftSession")||"");o.agentId===t.agentId&&o.sessionId===t.sessionId&&localStorage.removeItem("lastViewedYeaftSession")}catch{}return!0}function na(e){let t=e._retiredBareActiveSessionId||null;if(!t)return!1;let s=Ei();if(e.inventoryIdentityMode==="legacy-bare"){let r=e.sessions[t];return e._retiredBareActiveSessionId=null,!r||r.agentId?!1:(e.activeSessionId=t,e.activeSessionKey=t,s?.currentView==="yeaft"&&typeof s.setActiveSessionFilter=="function"?s.setActiveSessionFilter(t,{force:!0}):s&&(s.yeaftActiveSessionFilter=t),!0)}let n=e.sessionOrder.filter(r=>{let i=e.sessions[r];return i?.agentId&&i.id===t});if(n.length===1){let r=n[0],i=e.activeSessionId===t&&e.activeSessionKey===r,o=e.sessions[r]?.agentId||null;return e.activeSessionId=t,e.activeSessionKey=r,i||(s?.currentView==="yeaft"&&typeof s.setActiveSessionFilter=="function"?(s.setActiveSessionFilter(t,{agentId:o,force:!0}),e._retiredBareActiveSessionId=t):s&&(s.yeaftActiveSessionFilter=t)),!0}e.activeSessionId=null,e.activeSessionKey=null,s?.yeaftActiveSessionFilter===t&&(s.yeaftActiveSessionFilter=null);try{let r=localStorage.getItem("lastViewedYeaftSession")||"";wr(r).sessionId===t&&localStorage.removeItem("lastViewedYeaftSession")}catch{}return!0}function _i(e){let t=[],s=new Set;for(let n of Array.isArray(e)?e:[]){let r=typeof n=="string"?n:String(n||"");!r||s.has(r)||(s.add(r),t.push(r))}return t}function Wc(e,t){let s=_i(e),n=new Set(s),r=_i(t).filter(o=>n.has(o)),i=new Set(r);return[...r,...s.filter(o=>!i.has(o))]}function ra(e,t=!1){return!e||typeof e!="object"?!!t:Object.prototype.hasOwnProperty.call(e,"pinned")?e.pinned===!0:Object.prototype.hasOwnProperty.call(e,"isPinned")?e.isPinned===!0:!!t}function Nf(e){return!e||typeof e!="object"?!1:e.running===!0||e.active===!0||e.isActive===!0||e.isRunning===!0}function Hf(e){if(!e||typeof e!="object")return 0;let t=e.latestActivityAt||e.lastActivityAt||e.lastMessageAt||e.updatedAt||0;if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"&&t){let s=Date.parse(t);return Number.isFinite(s)?s:0}return 0}function Ei(){try{if(typeof window<"u"&&window.Pinia&&typeof window.Pinia.useChatStore=="function")return window.Pinia.useChatStore()}catch{}return null}var Wf,Uf,_S,Kf,zf=N(()=>{sa();Ho();Wf="yeaft-session-order-by-agent",Uf="yeaft-session-order-global";({defineStore:_S}=Pinia);Kf=_S("sessions",{state:()=>({sessions:{},sessionOrder:[],activeSessionId:null,activeSessionKey:null,inventoryIdentityMode:"empty",_retiredBareActiveSessionId:null,_preferredExactSessionIdentity:null,lastSnapshotAt:0,lastCrudResult:null,pending:{}}),getters:{sessionList(e){let t=e.sessionOrder.map(d=>e.sessions[d]).filter(Boolean),s=Ei(),n=s&&Array.isArray(s.pinnedSessions)?new Set(s.pinnedSessions):new Set;for(let d of t)d&&d.id&&d.pinned&&n.add(d.id);let r=[],i=[];for(let d of t)d.pinned||!d.agentId&&n.has(d.id)?r.push(d):i.push(d);let o=d=>[...d].sort((u,p)=>{let g=Number.isFinite(u?.sortOrder)?u.sortOrder:Number.MAX_SAFE_INTEGER,f=Number.isFinite(p?.sortOrder)?p.sortOrder:Number.MAX_SAFE_INTEGER;return g!==f?g-f:Bc(u,p)}),a=[...o(r),...o(i)],c=Bf();if(c.length===0)return a;let l=new Map(c.map((d,u)=>[d,u]));return a.sort((d,u)=>{let p=l.has(Ws(d))?l.get(Ws(d)):Number.MAX_SAFE_INTEGER,g=l.has(Ws(u))?l.get(Ws(u)):Number.MAX_SAFE_INTEGER;return p!==g?p-g:0})},sessionCount(e){return e.sessionOrder.length},sessionById:e=>(t,s=null)=>{let n=Kt(e,t,s);return n&&e.sessions[n]||null},activeSession(e){return e.activeSessionKey&&e.sessions[e.activeSessionKey]||null},hasLoadedSnapshot(e){return e.lastSnapshotAt>0},isEmpty(e){return e.sessionOrder.length===0},activeNeedsInvite(e){let t=e.activeSessionKey?e.sessions[e.activeSessionKey]:null;return t?!t.defaultVpId&&(!Array.isArray(t.roster)||t.roster.length===0):!1}},actions:{applySnapshot(e,t=null,{deferActivation:s=!1}={}){let n=Array.isArray(e)?e:[],r=!1;if(t){Hc(this);let o={...this.sessions},a=new Set;for(let g of n){if(!g||!g.id)continue;let f=Ts(t,g.id);a.add(f),o[f]=this._normalize(g,t,ra(this.sessions[f]))}for(let g of this.sessionOrder){let f=this.sessions[g];f&&f.agentId===t&&!a.has(g)&&delete o[g]}let c=this.sessionOrder.filter(g=>o[g]),l=new Set(c),d=[];for(let g of n){if(!g||!g.id)continue;let f=Ts(t,g.id);o[f]&&!l.has(f)&&d.push(f)}this.sessions=o;let u=[...c,...d],p=Bf();if(p.length>0){let g=new Map(u.map(b=>[Ws(o[b]),b]).filter(([b])=>b)),f=p.map(b=>g.get(b)).filter(Boolean),v=new Set(f);u=[...f,...u.filter(b=>!v.has(b))];let h=new Map(p.map((b,m)=>[b,m]));for(let b of u){let m=Ws(o[b]);m&&h.has(m)&&(o[b]={...o[b],sortOrder:h.get(m)})}}if(t&&p.length===0){let g=qf(),f=_i(g[t]);if(f.length>0){let v=f.map(y=>Ts(t,y)),h=new Set(v),b=Wc(u.filter(y=>o[y]?.agentId===t),v),m=this.sessionOrder.some(y=>o[y]?.agentId===t),k=0;m?u=this.sessionOrder.filter(y=>o[y]).map(y=>o[y]?.agentId===t?b[k++]:y).concat(b.slice(k)):u=u.map(y=>o[y]?.agentId===t?b[k++]:y);let w=new Map(v.map((y,S)=>[y,S]));for(let y of b)o[y]&&h.has(y)&&(o[y]={...o[y],sortOrder:w.get(y)})}}this.sessionOrder=u}else{if(this.inventoryIdentityMode==="agent-scoped")return;if(Object.values(this.sessions).some(l=>l&&l.agentId)){this.inventoryIdentityMode="agent-scoped";return}let a={},c=[];for(let l of n){if(!l||!l.id)continue;let d=Ts(null,l.id);a[d]=this._normalize(l,null,ra(this.sessions[d])),c.push(d)}this.sessions=a,this.sessionOrder=c,this.inventoryIdentityMode="legacy-bare"}s||(r=RS(this)||na(this)),this.lastSnapshotAt=Date.now();let i=Ei();if(i&&t){let o={...i.yeaftSessionAgentById||{}};for(let a of n)a&&a.id&&!o[a.id]&&(o[a.id]=t);i.yeaftSessionAgentById=o}if(!s&&!r){let o=null;try{o=localStorage.getItem("lastViewedYeaftSession")||null}catch{}let c=(o?this.sessions[o]:null)?o:o?Kt(this,o,t):"",l=c?this.sessions[c]:null,d=l&&(!t||l.agentId===t),u=this.sessionOrder.filter(k=>this.sessions[k]&&(!t||this.sessions[k].agentId===t)&&this.sessions[k].running).sort((k,w)=>Hf(this.sessions[w])-Hf(this.sessions[k]))[0]||null,p=u?this.sessions[u]?.id:null,g=this.sessionList[0]||null,f=g?.id||null,v=f?Kt(this,f,g?.raw?.agentId||null):"",h=p||(d?l.id:null)||f,b=u||(d?c:"")||v||Nc(this,h,t),m=this.activeSessionKey?this.sessions[this.activeSessionKey]?.agentId:null;if(this.activeSessionId&&!Kt(this,this.activeSessionId,m)?(this.activeSessionId=h,this.activeSessionKey=b||null):!this.activeSessionId&&this.sessionOrder.length>0&&!this._retiredBareActiveSessionId?(this.activeSessionId=h,this.activeSessionKey=b||null):this.activeSessionId&&(this.activeSessionKey=Nc(this,this.activeSessionId,m)||this.activeSessionKey),i&&!this._retiredBareActiveSessionId){let k=this.activeSessionId||h,w=null;if((i.yeaftActiveSessionFilter&&!Kt(this,i.yeaftActiveSessionFilter)||!i.yeaftActiveSessionFilter&&k)&&(w=k),w){let y=Nc(this,w),S=y&&this.sessions[y]?.agentId||null;i.currentView==="yeaft"&&typeof i.setActiveSessionFilter=="function"?i.setActiveSessionFilter(w,{agentId:S,force:!0}):i.yeaftActiveSessionFilter=w,this.activeSessionKey=y||this.activeSessionKey}}}if(i&&typeof i.applyServerPinSnapshot=="function"){let o=new Set;for(let c of n){if(!c||!c.id)continue;let l=Ts(t,c.id),d=this.sessions[l];d&&d.pinned&&o.add(c.id)}let a=c=>{let l=Kt(this,c,t),d=l?this.sessions[l]:null;return d?d.agentId===t:!1};i.applyServerPinSnapshot(t,o,a)}},applyRosterChange(e,t=null){if(!e)return;let s=e.sessionId||e.groupId;if(!s)return;let n=t||e.agentId||null;if(n)Hc(this);else if(this.inventoryIdentityMode!=="legacy-bare")return;let r=Kt(this,s,n)||Ts(n,s),i=this.sessions[r];if(!i){let o=this._normalize({id:s,name:e.name||s,roster:Array.isArray(e.roster)?e.roster:[],defaultVpId:e.defaultVpId||null},n);this.sessions[r]=o,this.sessionOrder.push(r),na(this);return}this.sessions[r]={...i,name:e.name||i.name,roster:Array.isArray(e.roster)?e.roster.slice():i.roster,defaultVpId:e.defaultVpId!=null?e.defaultVpId:i.defaultVpId,announcement:typeof e.announcement=="string"?e.announcement:i.announcement},na(this)},applyCrudResult(e,t=null,{activate:s=!0}={}){if(!e)return;this.lastCrudResult={...e,at:Date.now()},e.requestId&&this.pending[e.requestId]&&delete this.pending[e.requestId];let n=e.session||e.group||null,r=t||e.agentId||n?.agentId||null;e.ok&&e.op==="list"&&Array.isArray(e.sessions)&&this.applySnapshot(e.sessions,r),e.ok&&(e.op==="create"||e.op==="copy"||e.op==="restore")&&n&&n.id&&this.applySnapshotUpsert(n,r)&&s&&this.setActive(n.id,r),e.ok&&(e.op==="rename"||e.op==="update")&&n&&n.id&&this.applySnapshotUpsert(n,r);let i=e.sessionId||e.groupId,o=this.inventoryIdentityMode==="legacy-bare",a=i&&(r||o)?Kt(this,i,r):"";if(e.ok&&(e.op==="archive"||e.op==="delete")&&i&&a&&(delete this.sessions[a],this.sessionOrder=this.sessionOrder.filter(c=>c!==a),(this.activeSessionKey===a||o&&this.activeSessionId===i)&&(this.activeSessionKey=this.sessionOrder[0]||null,this.activeSessionId=this.activeSessionKey&&this.sessions[this.activeSessionKey]?.id||null)),e.ok&&e.op==="update_config"&&i){let c=a?this.sessions[a]:null;c&&(this.sessions[a]={...c,config:e.config&&typeof e.config=="object"?{...e.config}:{}})}},applySnapshotUpsert(e,t=null){if(!e||!e.id)return"";let s=t||e.agentId||null;if(s)Hc(this);else if(this.inventoryIdentityMode!=="legacy-bare")return"";let n=Kt(this,e.id,s)||Ts(s,e.id),r=!!this.sessions[n],i=this.sessions[n]||{};return this.sessions[n]={...i,...this._normalize(e,s,ra(i))},r||this.sessionOrder.push(n),na(this),n},setActive(e,t=null){let s=Kt(this,e,t);e&&s&&this.sessions[s]?(this.activeSessionId=e,this.activeSessionKey=s,this._retiredBareActiveSessionId=null):(this.activeSessionId=null,this.activeSessionKey=null)},reorderSessionsForAgent(e,t){if(!e)return[];let s=this.sessionOrder.filter(c=>this.sessions[c]?.agentId===e),n=Wc(s,t.map(c=>Ts(e,c)));if(n.length===0)return[];let r=new Map(n.map((c,l)=>[c,l])),i=0;this.sessionOrder=this.sessionOrder.map(c=>this.sessions[c]?.agentId===e?n[i++]:c);for(let c of n)this.sessions[c]={...this.sessions[c],sortOrder:r.get(c)};let o=qf(),a=n.map(c=>this.sessions[c]?.id).filter(Boolean);return o[e]=a,TS(o),a},reorderSessionsGlobally(e){let t=this.sessionOrder.map(a=>Ws(this.sessions[a])).filter(Boolean),s=Wc(t,e);if(s.length===0)return[];let n=new Map(this.sessionOrder.map(a=>[Ws(this.sessions[a]),a]).filter(([a])=>a)),r=s.map(a=>n.get(a)).filter(Boolean),i=new Set(r);this.sessionOrder=[...r,...this.sessionOrder.filter(a=>!i.has(a))];let o=new Map(s.map((a,c)=>[a,c]));for(let a of this.sessionOrder){let c=Ws(this.sessions[a]);c&&o.has(c)&&(this.sessions[a]={...this.sessions[a],sortOrder:o.get(c)})}return MS(s),s.map(a=>{let c=n.get(a),l=c?this.sessions[c]:null;return l?{agentId:l.agentId,sessionId:l.id}:null}).filter(Boolean)},applyPinState(e,t,s=null){if(!s&&this.inventoryIdentityMode!=="legacy-bare")return;let n=Kt(this,e,s);!e||!n||!this.sessions[n]||(this.sessions[n]={...this.sessions[n],pinned:!!t})},markPending(e,t){e&&(this.pending[e]=t)},clearLastResult(){this.lastCrudResult=null},resetInventory(){this.sessions={},this.sessionOrder=[],this.activeSessionId=null,this.activeSessionKey=null,this.inventoryIdentityMode="empty",this._retiredBareActiveSessionId=null,this._preferredExactSessionIdentity=null,this.lastSnapshotAt=0},beginInventoryCommit(e=null,t=null){if(this.resetInventory(),e&&t){let s=Ts(t,e);this.activeSessionId=e,this.activeSessionKey=s,this._preferredExactSessionIdentity={sessionId:e,agentId:t,key:s}}else e&&(this._retiredBareActiveSessionId=e)},_normalize(e,t=null,s=!1){return{id:e.id,name:e.name||e.id,roster:Array.isArray(e.roster)?e.roster.slice():[],defaultVpId:e.defaultVpId||null,announcement:typeof e.announcement=="string"?e.announcement:"",config:e.config&&typeof e.config=="object"?{...e.config}:{},workDir:typeof e.workDir=="string"?e.workDir:"",createdAt:e.createdAt||null,updatedAt:e.updatedAt||null,lastMessageAt:e.lastMessageAt||null,running:Nf(e),active:Nf(e),runningVpCount:Number.isFinite(Number(e.runningVpCount))?Number(e.runningVpCount):0,latestActivityAt:e.latestActivityAt||e.lastActivityAt||e.lastMessageAt||null,agentId:t||e.agentId||null,pinned:ra(e,s),sortOrder:Number.isFinite(e.sortOrder)?e.sortOrder:null}}}})});function ia(){return globalThis.crypto?.randomUUID?.()||`browser-${Date.now()}-${Math.random().toString(16).slice(2)}`}function zt(e,t){return`${String(e||"")}\0${String(t||"")}`}function Gf(e,t,s,n){return`${zt(e,t)}\0${String(s||"")}\0${String(n||"")}`}function Uc(e,t="Browser Runtime request failed"){return e?.safeError||e?.code||t}function jc(e){return globalThis.Vue?.markRaw?.(e)||e}var ES,DS,$S,LS,OS,FS,VS,oa,Kc=N(()=>{({defineStore:ES}=Pinia),DS=3e4,$S=60*6e4,LS=2e4,OS=5e3,FS=60*6e4,VS=256;oa=ES("browser",{state:()=>({sessions:{},pending:{},peers:{},cancelledPeers:{},errors:{},errorCodes:{},peerDiagnostics:{},runtimeStatus:{},installProgress:{},protocolSupported:null,connectionEpoch:0,lastError:null,_cancelledPeerCleanupTimer:null,_messageListenerInstalled:!1}),actions:{chatStore(){return window.Pinia?.useChatStore?.()||null},installMessageListener(){if(this._messageListenerInstalled||typeof window>"u")return;this._messageListenerInstalled=!0;let e=this.chatStore();this.protocolSupported=e?.browserRuntimeProtocolSupported??null,window.addEventListener("browser-runtime-message",t=>this.handleMessage(t.detail)),window.addEventListener("browser-runtime-transport-reset",()=>this.handleTransportReset())},send(e){if(!this.chatStore()?.sendWsMessage?.(e))throw new Error("Browser Runtime transport unavailable")},beginRequest(e,t,s=DS){let n=ia();return new Promise((r,i)=>{let o=setTimeout(()=>{delete this.pending[n],i(new Error(`${e} timed out`))},s);this.pending[n]={type:e,resolve:r,reject:i,timer:o,payload:t};try{this.send({type:e,requestId:n,...t})}catch(a){clearTimeout(o),delete this.pending[n],i(a)}})},completeRequest(e,t,s=null){let n=e?this.pending[e]:null;return n?(clearTimeout(n.timer),delete this.pending[e],s?n.reject(s):n.resolve(t),!0):!1},clearCancelledPeers(){clearTimeout(this._cancelledPeerCleanupTimer),this._cancelledPeerCleanupTimer=null,this.cancelledPeers={}},pruneCancelledPeers(e=Date.now()){clearTimeout(this._cancelledPeerCleanupTimer),this._cancelledPeerCleanupTimer=null;for(let[s,n]of Object.entries(this.cancelledPeers))Number(n.expiresAt)<=e&&delete this.cancelledPeers[s];let t=Math.min(...Object.values(this.cancelledPeers).map(s=>Number(s.expiresAt)).filter(Number.isFinite));Number.isFinite(t)&&(this._cancelledPeerCleanupTimer=setTimeout(()=>this.pruneCancelledPeers(),Math.max(1,t-Date.now())))},rememberCancelledPeer(e){let t=Date.now();for(this.pruneCancelledPeers(t);Object.keys(this.cancelledPeers).length>=VS;)delete this.cancelledPeers[Object.keys(this.cancelledPeers)[0]];this.cancelledPeers[Gf(e.agentId,e.browserSessionId,e.requestId,e.connectionGeneration)]={agentId:e.agentId,browserSessionId:e.browserSessionId,requestId:e.requestId,connectionGeneration:e.connectionGeneration,expiresAt:t+FS},this.pruneCancelledPeers(t)},takeCancelledPeer(e){let t=Gf(e.agentId,e.browserSessionId,e.requestId,e.connectionGeneration),s=this.cancelledPeers[t];return!s||(delete this.cancelledPeers[t],this.pruneCancelledPeers(),Number(s.expiresAt)<=Date.now())?null:s},async getRuntimeStatus(e){let t=await this.beginRequest("browser_runtime_status",{agentId:e});return this.runtimeStatus[e]=t,t},async installRuntime(e,t){let s=await this.beginRequest("browser_runtime_install",{agentId:e,confirmedBuildId:t?.buildId,confirmedDownloadBytes:Number(t?.downloadBytes)||0},$S);return this.runtimeStatus[e]=s,delete this.installProgress[e],s},async enableRuntime(e){let t=await this.beginRequest("browser_runtime_enable",{agentId:e},6e4);return this.runtimeStatus[e]=t,t},async setupRuntime(e,t){return t?.installed?this.enableRuntime(e):this.installRuntime(e,t)},async createSession({agentId:e,sourceRef:t=null,initialUrl:s="about:blank",viewport:n=null,locale:r="en-US"}){let i=await this.beginRequest("browser_session_create",{agentId:e,sourceRef:t,options:{initialUrl:s,viewport:n||{width:1280,height:720,deviceScaleFactor:1},locale:r,capturePreference:"auto"}},45e3);return this.sessions[zt(e,i.browserSessionId)]=i,i},async listSessions(e){let t=await this.beginRequest("browser_session_list",{agentId:e}),s=new Set((t.sessions||[]).map(n=>zt(e,n.browserSessionId)));for(let n of Object.keys(this.sessions))n.startsWith(`${e}\0`)&&!s.has(n)&&delete this.sessions[n];for(let n of t.sessions||[])this.sessions[zt(e,n.browserSessionId)]={...n,agentId:e};return t.sessions||[]},async closeSession(e,t,s){await this.beginRequest("browser_session_close",{agentId:e,browserSessionId:t,expectedRevision:s})},async attach({agentId:e,browserSessionId:t,videoElement:s}){if(!s)throw new Error("Browser video element required");let n=zt(e,t);delete this.errors[n],delete this.errorCodes[n];let r=Number(this.connectionEpoch||0)+1;this.connectionEpoch=r;let i=ia(),o={localKey:n,agentId:e,browserSessionId:t,requestId:i,peerId:null,connectionGeneration:r,connection:null,videoElement:jc(s),state:"preparing",remoteState:null,pendingOffer:null,pendingCandidates:[],answerPromise:null,channels:{},controlSeq:0,pointerSeq:0,iceServerCount:null,diagnostics:{connectionState:"new",iceConnectionState:"new",iceGatheringState:"new",candidateErrors:0,lastCandidateError:null},attachTimer:null,disconnectedTimer:null};return this.peers[n]=o,this.peerDiagnostics[n]=o.diagnostics,o.attachTimer=setTimeout(()=>{if(o.attachTimer=null,this.peers[n]!==o||o.connection?.connectionState==="connected")return;let a=o.iceServerCount===0?"browser_ice_servers_missing":o.diagnostics.iceConnectionState==="failed"?"browser_ice_connection_failed":"browser_peer_attach_timeout";this.failPeer(o,new Error(a),a)},LS),this.send({type:"browser_peer_attach",agentId:e,browserSessionId:t,requestId:i,connectionGeneration:r,role:"interactive",clientCapabilities:{codecs:["video/VP8"],maxWidth:1920,maxHeight:1080,maxFps:30}}),o},async preparePeer(e,t){if(this.peers[e.localKey]!==e||e.connectionGeneration!==t.connectionGeneration)return;if(e.connection){if(e.peerId===t.peerId)return;throw new Error("Browser peer identity changed during preparation")}e.peerId=t.peerId;let s=Array.isArray(t.iceServers)?t.iceServers:[];e.iceServerCount=s.length;let n=jc(new RTCPeerConnection({iceServers:s,iceTransportPolicy:t.iceTransportPolicy==="relay"?"relay":"all"}));e.connection=n,e.diagnostics.iceConnectionState=n.iceConnectionState||"new",e.diagnostics.iceGatheringState=n.iceGatheringState||"new",e.state="prepared",n.ondatachannel=i=>{if(this.peers[e.localKey]!==e)return;let o=i.channel;if(!["browser.control.v1","browser.pointer.v1","browser.state.v1"].includes(o?.label)){o?.close?.();return}e.channels[o.label]=jc(o),o.onclose=()=>{e.channels[o.label]===o&&delete e.channels[o.label]}},n.ontrack=i=>{this.peers[e.localKey]===e&&(e.videoElement.srcObject=i.streams[0]||new MediaStream([i.track]),e.videoElement.play().catch(()=>{}))},n.onicecandidate=i=>{if(this.peers[e.localKey]===e)try{this.send({type:"browser_peer_ice_candidate",agentId:e.agentId,browserSessionId:e.browserSessionId,peerId:e.peerId,connectionGeneration:e.connectionGeneration,candidate:i.candidate?i.candidate.toJSON():null})}catch{}},n.onicecandidateerror=i=>{this.peers[e.localKey]===e&&(e.diagnostics.candidateErrors+=1,e.diagnostics.lastCandidateError={address:typeof i.address=="string"?i.address:null,port:Number(i.port)||null,url:typeof i.url=="string"?i.url:null,errorCode:Number(i.errorCode)||null,errorText:typeof i.errorText=="string"?i.errorText.slice(0,256):null})},n.oniceconnectionstatechange=()=>{this.peers[e.localKey]===e&&(e.diagnostics.iceConnectionState=n.iceConnectionState||"new")},n.onicegatheringstatechange=()=>{this.peers[e.localKey]===e&&(e.diagnostics.iceGatheringState=n.iceGatheringState||"new")},n.onconnectionstatechange=()=>{if(this.peers[e.localKey]===e){if(e.state=n.connectionState,e.diagnostics.connectionState=n.connectionState||"new",e.diagnostics.iceConnectionState=n.iceConnectionState||"new",e.diagnostics.iceGatheringState=n.iceGatheringState||"new",n.connectionState==="connected"){clearTimeout(e.attachTimer),e.attachTimer=null,clearTimeout(e.disconnectedTimer),e.disconnectedTimer=null;return}if(n.connectionState==="disconnected"){e.disconnectedTimer||(e.disconnectedTimer=setTimeout(()=>{if(e.disconnectedTimer=null,this.peers[e.localKey]!==e||n.connectionState==="connected")return;let i=e.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(e,new Error(i),i)},OS));return}if(["failed","closed"].includes(n.connectionState)){let i=e.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(e,new Error(i),i)}}};let r=e.pendingOffer;e.pendingOffer=null,r&&await this.acceptOffer(e,r)},async acceptOffer(e,t){if(!(this.peers[e.localKey]!==e||e.connectionGeneration!==Number(t.connectionGeneration))){if(!e.connection){(!e.peerId||e.peerId===t.peerId)&&(e.pendingOffer||(e.pendingOffer=t));return}if(e.peerId===t.peerId){if(e.answerPromise)return e.answerPromise;e.answerPromise=(async()=>{if(await e.connection.setRemoteDescription(t.description),await e.connection.setLocalDescription(await e.connection.createAnswer()),this.peers[e.localKey]===e){this.send({type:"browser_peer_answer",agentId:e.agentId,browserSessionId:e.browserSessionId,peerId:e.peerId,connectionGeneration:e.connectionGeneration,description:e.connection.localDescription});for(let s of e.pendingCandidates.splice(0))await e.connection.addIceCandidate(s)}})();try{await e.answerPromise}finally{e.answerPromise=null}}}},async acceptCandidate(e,t){if(!(this.peers[e.localKey]!==e||e.connectionGeneration!==Number(t.connectionGeneration)||!t.candidate)){if(!e.connection){(!e.peerId||e.peerId===t.peerId)&&e.pendingCandidates.push(t.candidate);return}e.peerId===t.peerId&&(e.connection.remoteDescription?await e.connection.addIceCandidate(t.candidate):e.pendingCandidates.push(t.candidate))}},interactiveReady(e,t){let s=this.peers[zt(e,t)];return s?.state==="connected"&&s.channels["browser.control.v1"]?.readyState==="open"&&s.channels["browser.pointer.v1"]?.readyState==="open"},sendControl(e,t,s){let n=this.peers[zt(e,t)],r=n?.channels["browser.control.v1"];return!n||n.state!=="connected"||r?.readyState!=="open"?!1:(r.send(JSON.stringify({version:1,connectionGeneration:n.connectionGeneration,controlSeq:++n.controlSeq,action:s})),!0)},sendPointer(e,t,s){let n=this.peers[zt(e,t)],r=n?.channels["browser.pointer.v1"];return!n||n.state!=="connected"||r?.readyState!=="open"?!1:(r.send(JSON.stringify({version:1,connectionGeneration:n.connectionGeneration,pointerSeq:++n.pointerSeq,action:s})),!0)},detach(e,t,{notify:s=!0}={}){let n=zt(e,t),r=this.peers[n];if(r){if(delete this.peers[n],clearTimeout(r.attachTimer),r.attachTimer=null,clearTimeout(r.disconnectedTimer),r.disconnectedTimer=null,s&&!r.peerId&&this.rememberCancelledPeer(r),s&&r.peerId)try{this.send({type:"browser_peer_detach",requestId:ia(),agentId:e,browserSessionId:t,peerId:r.peerId,connectionGeneration:r.connectionGeneration})}catch{}this.errorCodes[n]||delete this.peerDiagnostics[n];for(let i of Object.values(r.channels||{}))try{i?.close?.()}catch{}r.channels={};try{r.connection?.close()}catch{}r.videoElement&&(r.videoElement.srcObject=null)}},failPeer(e,t,s=null){this.peers[e.localKey]===e&&(this.lastError=t?.message||String(t),this.errors[e.localKey]=this.lastError,s?this.errorCodes[e.localKey]=s:delete this.errorCodes[e.localKey],this.detach(e.agentId,e.browserSessionId,{notify:!0}))},handleTransportReset(){this.protocolSupported=null,this.connectionEpoch+=1;for(let e of Object.values(this.pending))clearTimeout(e.timer),e.reject(new Error("Browser Runtime connection changed"));this.pending={};for(let e of Object.values(this.peers))this.detach(e.agentId,e.browserSessionId,{notify:!1});this.peers={},this.runtimeStatus={},this.installProgress={},this.errors={},this.errorCodes={},this.peerDiagnostics={},this.clearCancelledPeers()},handleMessage(e){if(!e?.type)return;if(e.type==="client_hello_ack"){this.protocolSupported=e.browserRuntimeProtocol===1;return}if(e.type==="auth_result"){this.protocolSupported=!1;return}if(e.type==="browser_runtime_error"){let n=new Error(Uc(e));n.code=e.code,this.completeRequest(e.requestId,null,n)||(this.lastError=n.message);return}if(e.type==="browser_runtime_install_progress"){this.installProgress[e.agentId]={downloadedBytes:Number(e.downloadedBytes)||0,totalBytes:Number(e.totalBytes)||0};return}if(e.type==="browser_runtime_status_result"){this.runtimeStatus[e.agentId]=e,this.completeRequest(e.requestId,e),e.state!=="installing"&&delete this.installProgress[e.agentId];return}if(e.type==="browser_session_error"){let n=new Error(Uc(e));n.code=e.code,this.completeRequest(e.requestId,null,n)||(this.lastError=n.message);return}if(e.type==="browser_session_created"){this.sessions[zt(e.agentId,e.browserSessionId)]=e,this.completeRequest(e.requestId,e);return}if(e.type==="browser_session_list_result"){this.completeRequest(e.requestId,e);return}if(e.type==="browser_session_snapshot"){let n=zt(e.agentId,e.browserSessionId);this.sessions[n]=e,this.completeRequest(e.requestId,e),["closed","failed"].includes(e.state)&&this.detach(e.agentId,e.browserSessionId,{notify:!1});return}let t=zt(e.agentId,e.browserSessionId),s=this.peers[t];if(!s||s.connectionGeneration!==Number(e.connectionGeneration)){if(e.type==="browser_peer_prepared"||e.type==="browser_peer_error"||e.type==="browser_peer_state"&&["failed","disconnected","closed"].includes(e.state)){let n=this.takeCancelledPeer(e);if(n&&e.type==="browser_peer_prepared")try{this.send({type:"browser_peer_detach",requestId:ia(),agentId:n.agentId,browserSessionId:n.browserSessionId,peerId:e.peerId,connectionGeneration:n.connectionGeneration})}catch{}}return}if(e.type==="browser_peer_error")this.failPeer(s,new Error(Uc(e,"Browser peer failed")),e.code||null);else if(e.type==="browser_peer_prepared")this.preparePeer(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_offer")this.acceptOffer(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_ice_candidate")this.acceptCandidate(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_state"&&e.state&&(s.remoteState=e.state,["failed","disconnected","closed"].includes(e.state))){let n=s.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(s,new Error(n),n)}}}})});function aa(){try{if(window.Pinia&&typeof window.Pinia.useAuthStore=="function")return window.Pinia.useAuthStore()}catch{}return null}function zc(){try{return localStorage.getItem("authToken")||null}catch{return null}}function Xf(){let e=aa();if(e)try{return e.getActiveToken?.()||e.token||zc()}catch{return e.token||zc()}return zc()}function BS(e,t){if(!e)return!1;let s=Xf();if(s&&s!==t)return!1;try{localStorage.setItem("authToken",e)}catch{}let n=aa();return n&&(n.token=e),!0}function NS(e){try{let t=typeof e=="string"?e:e?.url;return!t||typeof window>"u"||!window.location?null:new URL(t,window.location.href)}catch{return null}}function Qf(e){return!e||typeof window>"u"||!window.location?!1:e.origin===window.location.origin&&e.pathname.startsWith("/api/")}function HS(e){if(!e)return!1;let t=e.pathname;return!!(qS.has(t)||t.startsWith("/api/auth/sso/poll/")||/^\/api\/auth\/sso\/[^/]+\/start(?:-qr)?$/.test(t))}function WS(e,t){return t?.headers?new Headers(t.headers):e&&typeof e=="object"&&e.headers?new Headers(e.headers):new Headers}function US(e){let t=e.get("Authorization");return!t||!t.startsWith("Bearer ")?null:t.slice(7)}function jS(e,t){return{...e||{},headers:t}}function KS(e,t,s,n){let r=aa();r&&typeof r.handleAuthResponse=="function"?r.handleAuthResponse(e,t,s,n):r&&typeof r.handleAuthFailure=="function"&&n&&r.handleAuthFailure(void 0,t,s)}function Zf(){if(Yf||typeof window>"u"||!window.fetch)return;Yf=!0;let e=window.fetch.bind(window);window.fetch=async function(s,n){let r=NS(s),i=Qf(r)&&!HS(r),o=Qf(r)?{...n||{},credentials:"same-origin"}:n,a=null,c=i?aa():null,l=c?.authGeneration,d=!!c?.isAuthenticated;if(i){let p=WS(s,n);a=US(p),a||(a=Xf(),a&&(p.set("Authorization",`Bearer ${a}`),o=jS(o,p)))}let u=await e(s,o);try{let p=u.headers&&u.headers.get&&u.headers.get("X-New-Token");p&&BS(p,a),i&&u.status===401&&KS(u,a,l,d)}catch{}return u}}var Yf,qS,Jf=N(()=>{Yf=!1,qS=new Set(["/api/auth/mode","/api/auth/login","/api/auth/aad","/api/auth/verify","/api/auth/verify-totp","/api/auth/setup-totp","/api/auth/register","/api/auth/password-reset/request","/api/auth/password-reset/verify"])});var eh,th,Gc=N(()=>{eh={"quickSend.title":"Quick send","quickSend.description":"Add up to 5 send buttons for this Agent. Each sends your current message with its model and optional turn overrides.","quickSend.empty":"No quick sends configured. No extra send buttons are shown.","quickSend.offline":"This Agent is offline. Reconnect to load or save quick sends.","quickSend.entry":"Quick send {index}","quickSend.name":"Button name","quickSend.model":"Model","quickSend.chooseModel":"Choose a model","quickSend.noModels":"Configure models in the LLM category first.","quickSend.effort":"Reasoning effort","quickSend.maxOutputTokens":"Maximum output tokens","quickSend.default":"Default","quickSend.outputLimit":"Leave blank to use the model default: {max} tokens (also the maximum).","quickSend.add":"Add quick send","quickSend.remove":"Remove","quickSend.limit":"Maximum 5 quick sends.","quickSend.nameRequired":"Enter a button name (1\u201380 characters).","quickSend.modelRequired":"Choose an available model for each quick send.","quickSend.effortInvalid":"The selected effort is not available for this model.","quickSend.outputInvalid":"Output tokens must be a positive integer no greater than {max}.","quickSend.loadFailed":"Could not load quick sends. Refresh to retry.","quickSend.saveFailed":"Save was not confirmed. Refresh to check the saved configuration before retrying.","quickSend.saved":"Quick sends saved.","quickSend.savedRefreshWarning":"Quick sends saved, but runtime refresh failed: {error}"},th={"quickSend.title":"\u5FEB\u6377\u53D1\u9001","quickSend.description":"\u4E3A\u6B64 Agent \u6DFB\u52A0\u6700\u591A 5 \u4E2A\u53D1\u9001\u6309\u94AE\u3002\u4F7F\u7528\u6307\u5B9A\u6A21\u578B\u548C\u53EF\u9009\u7684\u5355\u8F6E\u53C2\u6570\u53D1\u9001\u5F53\u524D\u6D88\u606F\u3002","quickSend.empty":"\u5C1A\u672A\u914D\u7F6E\u5FEB\u6377\u53D1\u9001\uFF0C\u4E0D\u4F1A\u663E\u793A\u989D\u5916\u7684\u53D1\u9001\u6309\u94AE\u3002","quickSend.offline":"\u6B64 Agent \u5DF2\u79BB\u7EBF\u3002\u91CD\u65B0\u8FDE\u63A5\u540E\u53EF\u52A0\u8F7D\u6216\u4FDD\u5B58\u5FEB\u6377\u53D1\u9001\u3002","quickSend.entry":"\u5FEB\u6377\u53D1\u9001 {index}","quickSend.name":"\u6309\u94AE\u540D\u79F0","quickSend.model":"\u6A21\u578B","quickSend.chooseModel":"\u9009\u62E9\u6A21\u578B","quickSend.noModels":"\u8BF7\u5148\u5728\u6A21\u578B\u914D\u7F6E\u5206\u7C7B\u4E2D\u6DFB\u52A0\u6A21\u578B\u3002","quickSend.effort":"\u63A8\u7406\u5F3A\u5EA6","quickSend.maxOutputTokens":"\u6700\u5927\u8F93\u51FA Token \u6570","quickSend.default":"\u9ED8\u8BA4","quickSend.outputLimit":"\u7559\u7A7A\u4F7F\u7528\u6A21\u578B\u9ED8\u8BA4\u503C\uFF1A{max} Token\uFF08\u4E5F\u662F\u53EF\u8BBE\u7F6E\u7684\u4E0A\u9650\uFF09\u3002","quickSend.add":"\u6DFB\u52A0\u5FEB\u6377\u53D1\u9001","quickSend.remove":"\u5220\u9664","quickSend.limit":"\u6700\u591A\u6DFB\u52A0 5 \u4E2A\u5FEB\u6377\u53D1\u9001\u3002","quickSend.nameRequired":"\u8BF7\u8F93\u5165\u6309\u94AE\u540D\u79F0\uFF081\u201380 \u4E2A\u5B57\u7B26\uFF09\u3002","quickSend.modelRequired":"\u8BF7\u4E3A\u6BCF\u4E2A\u5FEB\u6377\u53D1\u9001\u9009\u62E9\u53EF\u7528\u6A21\u578B\u3002","quickSend.effortInvalid":"\u6B64\u6A21\u578B\u4E0D\u652F\u6301\u6240\u9009\u63A8\u7406\u5F3A\u5EA6\u3002","quickSend.outputInvalid":"\u8F93\u51FA Token \u6570\u5FC5\u987B\u4E3A\u4E0D\u8D85\u8FC7 {max} \u7684\u6B63\u6574\u6570\u3002","quickSend.loadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5FEB\u6377\u53D1\u9001\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5\u3002","quickSend.saveFailed":"\u5C1A\u672A\u786E\u8BA4\u4FDD\u5B58\u3002\u8BF7\u5148\u5237\u65B0\u68C0\u67E5\u5DF2\u4FDD\u5B58\u7684\u914D\u7F6E\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002","quickSend.saved":"\u5FEB\u6377\u53D1\u9001\u5DF2\u4FDD\u5B58\u3002","quickSend.savedRefreshWarning":"\u5FEB\u6377\u53D1\u9001\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u8FD0\u884C\u65F6\u5237\u65B0\u5931\u8D25\uFF1A{error}"}});var sh,nh,Yc=N(()=>{sh={"userShortcuts.title":"Keyboard shortcuts","userShortcuts.scope":"These are your user preferences, stored only in this browser for this account. They do not sync across devices.","userShortcuts.quickSendHelp":"Quick-send shortcuts are active automatically when presets are configured in Agent settings. They only work while the message composer is focused; clear an individual binding to disable it.","userShortcuts.help":"Shortcuts use simple Alt + key defaults. Click a binding to replace it, or clear it to disable the action. Escape cancels; Tab moves on. Global actions stay available while the message composer is focused, and never run in dialogs, other text fields, editors or terminals.","userShortcuts.suggestion":"Suggestion: {binding}","userShortcuts.recording":"Press a shortcut\u2026","userShortcuts.unbound":"Not bound","userShortcuts.clear":"Clear","userShortcuts.clearAction":"Clear shortcut for {action}","userShortcuts.reset":"Reset shortcuts","userShortcuts.action.terminal":"Open terminal","userShortcuts.action.files":"Open files","userShortcuts.action.git":"Open Git","userShortcuts.action.newSession":"New session","userShortcuts.action.closeWorkbench":"Close workbench","userShortcuts.action.quickSend1":"Quick send 1","userShortcuts.action.quickSend2":"Quick send 2","userShortcuts.action.quickSend3":"Quick send 3","userShortcuts.action.quickSend4":"Quick send 4","userShortcuts.action.quickSend5":"Quick send 5","userShortcuts.error.invalid":"Use Ctrl, Meta or Alt with a letter or number; Shift is optional.","userShortcuts.error.reserved":"This combination conflicts with a browser or existing app shortcut.","userShortcuts.error.conflict":"This shortcut is already assigned to {action}. Clear it there first.","userShortcuts.error.storage":"Could not save preferences in this browser. Check browser storage permissions.","userShortcuts.error.unauthenticated":"Sign in before saving your shortcuts."},nh={"userShortcuts.title":"\u952E\u76D8\u5FEB\u6377\u952E","userShortcuts.scope":"\u8FD9\u662F\u4F60\u7684\u7528\u6237\u504F\u597D\uFF0C\u6309\u5F53\u524D\u8D26\u53F7\u4EC5\u4FDD\u5B58\u5728\u6B64\u6D4F\u89C8\u5668\u4E2D\uFF0C\u4E0D\u8DE8\u8BBE\u5907\u540C\u6B65\u3002","userShortcuts.quickSendHelp":"\u5728 Agent \u8BBE\u7F6E\u4E2D\u914D\u7F6E\u5FEB\u6377\u53D1\u9001\u540E\uFF0C\u5FEB\u6377\u952E\u4F1A\u81EA\u52A8\u751F\u6548\uFF1B\u4EC5\u5728\u6D88\u606F\u8F93\u5165\u6846\u83B7\u5F97\u7126\u70B9\u65F6\u89E6\u53D1\u3002\u6E05\u9664\u5355\u9879\u7ED1\u5B9A\u5373\u53EF\u505C\u7528\u5BF9\u5E94\u5FEB\u6377\u952E\u3002","userShortcuts.help":"\u9ED8\u8BA4\u4F7F\u7528\u7B80\u5355\u7684 Alt + \u5355\u952E\u3002\u70B9\u51FB\u7ED1\u5B9A\u6309\u94AE\u53EF\u66FF\u6362\uFF0C\u6E05\u9664\u540E\u53EF\u505C\u7528\u8BE5\u64CD\u4F5C\u3002Escape \u53D6\u6D88\uFF0CTab \u79FB\u81F3\u4E0B\u4E00\u9879\u3002\u6D88\u606F\u8F93\u5165\u6846\u83B7\u5F97\u7126\u70B9\u65F6\u4ECD\u53EF\u4F7F\u7528\u5168\u5C40\u52A8\u4F5C\uFF1B\u5F39\u7A97\u3001\u5176\u4ED6\u8F93\u5165\u6846\u3001\u7F16\u8F91\u5668\u4E0E\u7EC8\u7AEF\u4E2D\u7684\u6309\u952E\u4E0D\u4F1A\u88AB\u62A2\u5360\u3002","userShortcuts.suggestion":"\u63A8\u8350\uFF1A{binding}","userShortcuts.recording":"\u8BF7\u6309\u4E0B\u7EC4\u5408\u952E\u2026","userShortcuts.unbound":"\u672A\u7ED1\u5B9A","userShortcuts.clear":"\u6E05\u9664","userShortcuts.clearAction":"\u6E05\u9664\u201C{action}\u201D\u5FEB\u6377\u952E","userShortcuts.reset":"\u91CD\u7F6E\u5FEB\u6377\u952E","userShortcuts.action.terminal":"\u6253\u5F00\u7EC8\u7AEF","userShortcuts.action.files":"\u6253\u5F00\u6587\u4EF6","userShortcuts.action.git":"\u6253\u5F00 Git","userShortcuts.action.newSession":"\u65B0\u5EFA\u4F1A\u8BDD","userShortcuts.action.closeWorkbench":"\u5173\u95ED\u5DE5\u4F5C\u53F0","userShortcuts.action.quickSend1":"\u5FEB\u6377\u53D1\u9001 1","userShortcuts.action.quickSend2":"\u5FEB\u6377\u53D1\u9001 2","userShortcuts.action.quickSend3":"\u5FEB\u6377\u53D1\u9001 3","userShortcuts.action.quickSend4":"\u5FEB\u6377\u53D1\u9001 4","userShortcuts.action.quickSend5":"\u5FEB\u6377\u53D1\u9001 5","userShortcuts.error.invalid":"\u8BF7\u4F7F\u7528 Ctrl\u3001Meta \u6216 Alt \u642D\u914D\u5B57\u6BCD\u6216\u6570\u5B57\uFF0C\u53EF\u52A0 Shift\u3002","userShortcuts.error.reserved":"\u8BE5\u7EC4\u5408\u4E0E\u6D4F\u89C8\u5668\u6216\u5E94\u7528\u5DF2\u6709\u5FEB\u6377\u952E\u51B2\u7A81\u3002","userShortcuts.error.conflict":"\u8BE5\u7EC4\u5408\u5DF2\u7ED1\u5B9A\u201C{action}\u201D\uFF0C\u8BF7\u5148\u6E05\u9664\u539F\u7ED1\u5B9A\u3002","userShortcuts.error.storage":"\u65E0\u6CD5\u5728\u6B64\u6D4F\u89C8\u5668\u4FDD\u5B58\u504F\u597D\uFF0C\u8BF7\u68C0\u67E5\u6D4F\u89C8\u5668\u5B58\u50A8\u6743\u9650\u3002","userShortcuts.error.unauthenticated":"\u8BF7\u5148\u767B\u5F55\u518D\u4FDD\u5B58\u5FEB\u6377\u952E\u3002"}});var rh,ih=N(()=>{Gc();Yc();rh={"person.settings":"\u914D\u7F6E","person.modelCandidates":"\u6A21\u578B\u5019\u9009","person.modelCandidatesHint":"\u6700\u591A\u9009\u62E9 8 \u4E2A\u5DF2\u914D\u7F6E\u7684\u6A21\u578B\u4F9B\u6570\u5B57\u4EBA\u4F7F\u7528\u3002\u4FEE\u6539\u5019\u9009\u4E0D\u4F1A\u542F\u52A8\u601D\u8003\u3002","person.modelsDefault":"\u6CBF\u7528 Agent \u9ED8\u8BA4\u6A21\u578B\u8303\u56F4","person.modelUnavailable":"\u4E0D\u53EF\u7528\uFF0C\u53EF\u53D6\u6D88\u9009\u62E9\u540E\u4FDD\u5B58\u5176\u4ED6\u5019\u9009","person.modelsEmpty":"\u8BF7\u5148\u5728 Agent \u4E0A\u914D\u7F6E\u539F\u751F API \u6A21\u578B\u3002","person.modelsInvalid":"\u8BF7\u9009\u62E9 1\u20138 \u4E2A\u5F53\u524D\u5DF2\u914D\u7F6E\u7684\u6A21\u578B\uFF0C\u6216\u6CBF\u7528 Agent \u9ED8\u8BA4\u8303\u56F4\u3002","person.modelsScope":"\u53EA\u4FDD\u5B58\u5728\u5F53\u524D Agent \u4E0A\u5C5E\u4E8E\u4F60\u7684\u6570\u5B57\u4EBA\uFF0C\u4E0D\u4FEE\u6539\u51ED\u636E\u6216 Agent \u9ED8\u8BA4\u914D\u7F6E\u3002","person.settingsSaving":"\u6B63\u5728\u4FDD\u5B58\u2026","person.uploadFiles":"\u6587\u4EF6","person.attachedFiles":"\u9644\u52A0\u6587\u4EF6","person.filesUploading":"\u6B63\u5728\u4E0A\u4F20\u2026","person.filesRetry":"\u91CD\u8BD5\u4E0A\u4F20","person.filesRemove":"\u79FB\u9664\u6587\u4EF6","person.filesLimit":"\u6700\u591A 4 \u4E2A\u6587\u4EF6\uFF0C\u6BCF\u4E2A\u4E0D\u8D85\u8FC7 5 MiB\uFF0C\u603B\u8BA1\u4E0D\u8D85\u8FC7 10 MiB\u3002\u6587\u672C\u6587\u4EF6\u4E0E\u6D88\u606F\u5408\u8BA1\u4E0D\u8D85\u8FC7 24 KiB\u3002","person.filesUnsupported":"\u652F\u6301 UTF-8 \u6587\u672C\u3001\u4EE3\u7801\u3001JSON\u3001CSV \u548C PNG/JPEG/WebP/GIF \u56FE\u7247\uFF0C\u6682\u4E0D\u652F\u6301 PDF \u7B49\u5176\u4ED6\u4E8C\u8FDB\u5236\u6587\u4EF6\u3002","person.filesFailed":"\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u79FB\u9664\u6587\u4EF6\u540E\u518D\u53D1\u9001\u3002","person.name":"\u540D\u5B57","person.renameUpgrade":"\u5F53\u524D Agent \u5C1A\u4E0D\u652F\u6301\u4FEE\u6539\u540D\u5B57\uFF0C\u8BF7\u5347\u7EA7 Agent \u540E\u518D\u4FEE\u6539\u3002","person.nameInvalid":"\u8BF7\u8F93\u5165\u540D\u5B57\uFF08\u6700\u591A 160 UTF-8 \u5B57\u8282\uFF09\u3002","person.inside":"\u6570\u5B57\u4EBA\u5185\u6838","person.overview":"\u6982\u89C8","person.memory":"\u8BB0\u5FC6","person.skills":"\u6280\u80FD\u4E0E\u80FD\u529B","person.searchMessages":"\u641C\u7D22\u6D88\u606F","person.search":"\u641C\u7D22","person.noSearchResults":"\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u6D88\u606F\u3002","person.you":"\u4F60","person.currentUnderstanding":"\u5F53\u524D\u8BA4\u8BC6","person.createdAt":"\u521B\u5EFA\u65F6\u95F4","person.revision":"\u7248\u672C","person.knowledgeEmpty":"\u8FD8\u6CA1\u6709\u8BB0\u5F55\u3002","person.memoryScope":"\u6309\u7C7B\u578B\u67E5\u770B\u5DF2\u4FDD\u5B58\u7684\u8BA4\u8BC6\u3002","person.skillsScope":"\u8FD9\u4E2A\u6570\u5B57\u4EBA\u7684\u5185\u7F6E\u4E0E\u81EA\u5EFA\u80FD\u529B\u3002","person.epistemicState":"\u8BA4\u8BC6\u72B6\u6001","person.sources":"\u6765\u6E90","person.associations":"\u5173\u8054","person.useWhen":"\u9002\u7528\u573A\u666F","person.avoidWhen":"\u4E0D\u9002\u7528\u573A\u666F","person.contract":"\u5408\u540C\u4E0E\u5B9A\u4E49","person.loadMore":"\u52A0\u8F7D\u66F4\u591A","person.group.claim":"\u89C2\u70B9","person.group.question":"\u95EE\u9898","person.group.method":"\u65B9\u6CD5","person.group.self-model":"\u81EA\u6211\u8BA4\u8BC6","person.group.scenario":"\u8BBE\u60F3","person.group.interest":"\u5174\u8DA3","person.group.cognition":"\u601D\u8003","person.group.memory":"\u53EC\u56DE","person.group.creation":"\u521B\u9020","person.group.script":"\u81EA\u5EFA\u811A\u672C","person.epistemic.reported":"\u6765\u81EA\u9648\u8FF0 \xB7 \u672A\u72EC\u7ACB\u9A8C\u8BC1","person.epistemic.hypothesis":"\u5047\u8BBE","person.epistemic.imagined":"\u60F3\u8C61","person.epistemic.uncertain":"\u4E0D\u786E\u5B9A","person.title":"\u6570\u5B57\u4EBA","person.navigation":"\u5168\u5C40\u5BFC\u822A","person.plugins":"\u63D2\u4EF6","person.agent":"Agent","person.noAgent":"\u8BF7\u5148\u8FDE\u63A5\u4E00\u4E2A Agent \u4EE5\u4F7F\u7528\u6570\u5B57\u4EBA\u3002","person.offlineShort":"\u79BB\u7EBF","person.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00\u3002\u91CD\u8FDE\u540E\u5C06\u5237\u65B0\u6570\u5B57\u4EBA\uFF1B\u547D\u4EE4\u4E0D\u4F1A\u81EA\u52A8\u91CD\u53D1\u3002","person.offline":"\u6B64 Agent \u5DF2\u79BB\u7EBF\uFF0C\u91CD\u65B0\u8FDE\u63A5\u540E\u5C06\u5237\u65B0\u5176\u6570\u5B57\u4EBA\u3002","person.disabled":"\u8BF7\u5728 Agent \u8BBE\u7F6E\u4E2D\u542F\u7528\u6B64 Agent \u7684\u6570\u5B57\u4EBA\u3002","person.unsupported":"\u6B64 Agent \u5C1A\u672A\u63D0\u4F9B digital_person \u80FD\u529B\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5347\u7EA7\uFF1BSession \u5BF9\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002","person.loading":"\u52A0\u8F7D\u4E2D\u2026","person.busy":"\u5904\u7406\u4E2D\u2026","person.activity.confirming":"\u6B63\u5728\u786E\u8BA4\u4F60\u7684\u8BF7\u6C42\u2026","person.activity.preparing":"\u6B63\u5728\u51C6\u5907\u56DE\u5E94\u2026","person.activity.thinking":"\u6B63\u5728\u601D\u8003\u2026","person.activity.dreaming":"\u6B63\u5728\u9050\u60F3\u8BB0\u5FC6\u4E0E\u53EF\u80FD\u6027\u2026","person.activity.recalling":"\u6B63\u5728\u67E5\u627E\u76F8\u5173\u8BB0\u5FC6\u2026","person.activity.searchingSkills":"\u6B63\u5728\u5BFB\u627E\u5408\u9002\u7684\u6280\u80FD\u2026","person.activity.readingSkill":"\u6B63\u5728\u9605\u8BFB\u6280\u80FD\u2026","person.activity.readingMethod":"\u6B63\u5728\u67E5\u770B\u601D\u8003\u65B9\u6CD5\u2026","person.activity.validatingCapability":"\u6B63\u5728\u9A8C\u8BC1\u65B0\u80FD\u529B\u2026","person.activity.runningScript":"\u6B63\u5728\u8FD0\u884C\u811A\u672C\u2026","person.activity.usingCapability":"\u6B63\u5728\u4F7F\u7528\u80FD\u529B\u2026","person.activity.processingResponse":"\u6B63\u5728\u5904\u7406\u56DE\u5E94\u2026","person.activity.stopping":"\u6B63\u5728\u505C\u6B62\u8FD9\u4E00\u8F6E\u2026","person.activity.completed":"\u672C\u6B21\u6D3B\u52A8\u5DF2\u5B8C\u6210","person.activity.failed":"\u672C\u6B21\u6D3B\u52A8\u672A\u80FD\u5B8C\u6210","person.activity.cancelled":"\u8FD9\u4E00\u8F6E\u5DF2\u53D6\u6D88","person.activity.interrupted":"\u8FD9\u4E00\u8F6E\u5DF2\u4E2D\u65AD","person.activity.budgetExhausted":"\u8FD9\u4E00\u8F6E\u5DF2\u8FBE\u5230\u6267\u884C\u4E0A\u9650","person.activity.stale":"\u6B63\u5728\u7B49\u5F85\u66F4\u65B0\uFF0C\u8FDB\u5C55\u6682\u4E0D\u660E\u786E","person.activity.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00\uFF0C\u6682\u65F6\u65E0\u6CD5\u786E\u8BA4\u8FDB\u5C55","person.activity.uncertain":"\u8BF7\u6C42\u5C1A\u672A\u786E\u8BA4\uFF0C\u8FDB\u5C55\u6682\u4E0D\u660E\u786E","person.activity.model":"\u601D\u8003","person.activity.recall":"\u67E5\u627E\u8BB0\u5FC6","person.activity.skillSearch":"\u5BFB\u627E\u6280\u80FD","person.activity.skillRead":"\u9605\u8BFB\u6280\u80FD","person.activity.methodRead":"\u67E5\u770B\u601D\u8003\u65B9\u6CD5","person.activity.capabilityCreate":"\u9A8C\u8BC1\u80FD\u529B","person.activity.script":"\u8FD0\u884C\u811A\u672C","person.activity.capability":"\u4F7F\u7528\u80FD\u529B","person.activity.details":"\u6D3B\u52A8\u8BE6\u60C5","person.activity.limited":"\u4EC5\u663E\u793A\u6700\u8FD1\u7684\u6D3B\u52A8\uFF0C\u8F83\u65E9\u6B65\u9AA4\u53EF\u80FD\u672A\u5305\u542B\u3002","person.activity.elapsed":"\u8017\u65F6 {duration}","person.activity.durationSeconds":"{seconds} \u79D2","person.activity.durationMinutes":"{minutes} \u5206 {seconds} \u79D2","person.activity.status.running":"\u8FDB\u884C\u4E2D","person.activity.status.completed":"\u5DF2\u5B8C\u6210","person.activity.status.failed":"\u5931\u8D25","person.activity.status.cancelled":"\u5DF2\u53D6\u6D88","person.activity.status.interrupted":"\u5DF2\u4E2D\u65AD","person.activity.status.unknown":"\u672A\u77E5","person.ready":"\u7B49\u5F85\u4F60\u53D1\u8D77","person.manualMode":"\u624B\u52A8\u6A21\u5F0F","person.manualHint":"\u53D1\u9001\u6D88\u606F\u6216\u70B9\u51FB\u201C\u601D\u8003 / \u9050\u60F3\u201D\u624D\u4F1A\u5F00\u59CB\u4E00\u8F6E\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u601D\u8003\uFF0C\u8FD0\u884C\u4E2D\u53EF\u53D6\u6D88\u3002","person.version":"\u72B6\u6001 v{version}","person.cancelling":"\u6B63\u5728\u53D6\u6D88\u2026","person.configureTitle":"\u5728\u6B64 Agent \u4E0A\u914D\u7F6E\u6570\u5B57\u4EBA","person.configureAgent":"\u8BB0\u5FC6\u9ED8\u8BA4\u4F7F\u7528\u672C\u5730 SQLite\uFF0C\u65E0\u9700\u6570\u636E\u5E93\u670D\u52A1\u3002\u8BF7\u4E3A\u6B64 Agent \u5B9E\u4F8B\u914D\u7F6E\u539F\u751F\u6A21\u578B\uFF1B\u4E0D\u53EF\u7528\u65F6\u68C0\u67E5\u5B9E\u4F8B\u5B58\u50A8\u6743\u9650\u4E0E\u6A21\u578B\u914D\u7F6E\u3002\u5DF2\u6709 MongoDB \u90E8\u7F72\u7EE7\u7EED\u4F7F\u7528\u539F\u6570\u636E\u5E93\u3002","person.configureSecrets":"Provider \u5BC6\u94A5\u4E0E\u53EF\u9009\u6570\u636E\u5E93\u51ED\u636E\u4EC5\u4FDD\u7559\u5728 Agent \u673A\u5668\u4E0A\u3002\u4E0D\u8981\u5C06\u51ED\u636E\u7C98\u8D34\u5230\u5BF9\u8BDD\u6216\u601D\u8003\u8BB0\u5F55\u3002","person.configureRefresh":"\u7BA1\u7406\u5458\u5E94\u7528\u914D\u7F6E\u540E\uFF08\u5982\u9700\u8981\uFF0C\u7531\u7BA1\u7406\u5458\u91CD\u542F Agent\uFF09\uFF0C\u70B9\u51FB\u5237\u65B0\u3002\u6B64\u9875\u9762\u4E0D\u4F1A\u91CD\u542F\u670D\u52A1\u6216\u521B\u5EFA\u66FF\u4EE3 Session\u3002","person.requestFailed":"\u8BF7\u6C42\u5931\u8D25\u3002","person.timeout":"\u54CD\u5E94\u8D85\u65F6\uFF1B\u64CD\u4F5C\u53EF\u80FD\u4ECD\u5728\u8FDB\u884C\u3002\u8BF7\u5148\u5237\u65B0\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002","person.uncertain":"\u6709\u4E00\u6761\u547D\u4EE4\u5C1A\u672A\u5F97\u5230\u786E\u8BA4\u3002\u8BF7\u5148\u68C0\u67E5\u5237\u65B0\u540E\u7684\u5BF9\u8BDD\u548C\u601D\u8003\u8BB0\u5F55\uFF0C\u518D\u91CD\u8BD5\u6216\u5F00\u59CB\u65B0\u547D\u4EE4\u3002","person.retrySame":"\u4EE5\u76F8\u540C\u547D\u4EE4 ID \u91CD\u8BD5","person.discardRetry":"\u653E\u5F03\u91CD\u8BD5\uFF08\u4E0D\u4F1A\u53D6\u6D88\u6267\u884C\uFF09","person.conversation":"\u6570\u5B57\u4EBA\u5BF9\u8BDD","person.messages":"\u5BF9\u8BDD\u6D88\u606F","person.olderMessages":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","person.empty":"\u8BF4\u8BF4\u4F60\u6B63\u5728\u5173\u6CE8\u7684\u4E8B\uFF0C\u6216\u8BA9\u4E00\u4E2A\u5FF5\u5934\u6162\u6162\u5C55\u5F00\u3002","person.system":"\u7CFB\u7EDF","person.input":"\u6D88\u606F\u6216\u601D\u8003\u4E3B\u9898","person.placeholder":"\u8F93\u5165\u6D88\u606F\u2026","person.thinkHint":"\u601D\u8003\uFF1A\u56F4\u7ED5\u4E0A\u65B9\u53EF\u9009\u4E3B\u9898\u8FDB\u884C\u56DE\u5FC6\u3001\u53CD\u601D\u548C\u8054\u60F3\u3002\u9050\u60F3\u65E0\u9700\u4E3B\u9898\uFF0C\u63A2\u7D22\u8BB0\u5FC6\u4E0E\u53EF\u80FD\u6027\u3002","person.dream":"\u9050\u60F3","person.think":"\u601D\u8003","person.send":"\u53D1\u9001","person.more":"\u66F4\u591A","person.views":"\u6570\u5B57\u4EBA\u89C6\u56FE","person.chat":"\u5BF9\u8BDD","person.thoughts":"\u601D\u8003\u8BB0\u5F55","person.debug":"\u8C03\u8BD5\u65E5\u5FD7","person.back":"\u8FD4\u56DE","person.welcome":"\u804A\u804A\u8FD1\u51B5\uFF0C\u60F3\u60F3\u65B0\u95EE\u9898","person.thoughtsHint":"\u67E5\u770B\u6BCF\u6B21\u6D3B\u52A8\u7684\u8F93\u5165\u3001\u56DE\u5FC6\u3001\u60F3\u6CD5\u3001\u81EA\u5224\u4E0E\u8F93\u51FA\u3002","person.recordsStale":"\u53EF\u80FD\u6709\u65B0\u8BB0\u5F55\uFF0C\u5237\u65B0\u53EF\u8FD4\u56DE\u6700\u65B0\u4E00\u9875\u3002","person.olderThoughts":"\u52A0\u8F7D\u66F4\u65E9\u7684\u601D\u8003","person.noThoughts":"\u672C\u9875\u6682\u65E0\u53EF\u8BFB\u7684\u601D\u8003\u8BB0\u5F55\u3002\u53EF\u52A0\u8F7D\u66F4\u65E9\u8BB0\u5F55\uFF0C\u6216\u5F00\u59CB\u5BF9\u8BDD\u3001\u601D\u8003\u4E0E\u9050\u60F3\u3002","person.debugHint":"\u6280\u672F\u6392\u67E5\uFF1A\u539F\u59CB\u4E8B\u4EF6\u3001\u6A21\u578B\u8BF7\u6C42\u548C\u72B6\u6001\u7248\u672C\u3002\u60F3\u6CD5\u6B63\u6587\u8BF7\u5728\u201C\u601D\u8003\u8BB0\u5F55\u201D\u4E2D\u67E5\u770B\u3002","person.noDebug":"\u6682\u65E0\u8C03\u8BD5\u4E8B\u4EF6\u3002","person.moreDebug":"\u52A0\u8F7D\u66F4\u591A\u65E5\u5FD7","person.state":"\u5F53\u524D\u72B6\u6001","person.episodeFailed":"\u6700\u8FD1\u4E00\u6B21\u6D3B\u52A8\u672A\u5B8C\u6210\u3002\u53EF\u67E5\u770B\u601D\u8003\u8BB0\u5F55\uFF1B\u6280\u672F\u8BE6\u60C5\u4F4D\u4E8E\u8C03\u8BD5\u65E5\u5FD7\u3002","person.thought.input":"\u8F93\u5165","person.thought.think":"\u601D\u8003","person.thought.dream":"\u9050\u60F3","person.thought.context":"\u6B64\u523B\u60F3\u8D77\u7684\u5185\u5BB9","person.thought.thought":"\u60F3\u6CD5\u4E0E\u8F93\u51FA","person.thought.activity":"\u601D\u8003\u7247\u6BB5","person.thought.memory":"\u56DE\u5FC6\u7684\u5185\u5BB9","person.thought.capability_created":"\u81EA\u5EFA\u80FD\u529B","person.thought.script_executed":"\u811A\u672C\u8C03\u7528","person.thought.capability_failed":"\u80FD\u529B\u5C1D\u8BD5\u5931\u8D25","person.thought.capability_published":"\u80FD\u529B\u5DF2\u4FDD\u5B58\uFF0C\u4E0D\u4F9D\u8D56\u601D\u8003\u7ED3\u8BBA\u662F\u5426\u88AB\u91C7\u7EB3","person.thought.capability_name":"\u80FD\u529B\u540D\u79F0","person.thought.capability_description":"\u80FD\u529B\u7528\u9014","person.thought.capability_version":"\u7248\u672C","person.thought.capability_tests_passed":"\u901A\u8FC7\u6D4B\u8BD5\u6570","person.thought.capability_tests_limit":"\u901A\u8FC7\u8FD9\u4E9B\u6D4B\u8BD5\u4E0D\u4EE3\u8868\u5728\u5176\u4ED6\u8F93\u5165\u4E0B\u4E5F\u4E00\u5B9A\u6B63\u786E","person.thought.capability_recorded":"\u5DF2\u8BB0\u5F55\u7684\u80FD\u529B\u7ED3\u679C\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u91C7\u7EB3\u7ED3\u8BBA","person.thought.script_succeeded":"\u7EAF\u8BA1\u7B97\u5DF2\u5B8C\u6210","person.thought.script_test_failed":"\u811A\u672C\u6D4B\u8BD5\u672A\u901A\u8FC7","person.thought.script_execution_failed":"\u811A\u672C\u672A\u80FD\u5B8C\u6210\u8BA1\u7B97","person.thought.script_timeout":"\u5DF2\u8FBE\u811A\u672C\u65F6\u95F4\u9650\u5236","person.thought.script_output_invalid":"\u811A\u672C\u8F93\u51FA\u4E0D\u7B26\u5408\u8981\u6C42","person.thought.script_version_unavailable":"\u8BF7\u6C42\u7684\u811A\u672C\u7248\u672C\u4E0D\u53EF\u7528","person.thought.script_busy":"\u811A\u672C\u6267\u884C\u7E41\u5FD9","person.thought.capability_failure_unknown":"\u80FD\u529B\u672A\u80FD\u5B8C\u6210\uFF0C\u6280\u672F\u8BE6\u60C5\u4F4D\u4E8E\u8C03\u8BD5\u65E5\u5FD7","person.thought.committed":"\u5DF2\u91C7\u7EB3","person.thought.rejected":"\u672A\u91C7\u7EB3","person.thought.cancelled":"\u6D3B\u52A8\u5DF2\u53D6\u6D88","person.thought.failed":"\u6D3B\u52A8\u5931\u8D25","person.thought.interrupted":"\u6D3B\u52A8\u5DF2\u4E2D\u65AD","person.thought.budget_exhausted":"\u5DF2\u8FBE\u6D3B\u52A8\u9650\u989D","person.thought.candidate":"\u5C1A\u672A\u91C7\u7EB3","person.thought.incomplete":"\u4E0D\u5B8C\u6574\u8BB0\u5F55","person.thought.recorded":"\u5DF2\u8BB0\u5F55","person.thought.state_summary":"\u5F53\u524D\u7406\u89E3","person.thought.appraisal":"\u5F53\u524D\u8BC4\u4EF7","person.thought.user_message":"\u4F60\u8BF4\u8FC7\u7684\u8BDD","person.thought.person_message":"\u6B64\u524D\u7684\u56DE\u5E94","person.thought.concept_reported":"\u8F6C\u8FF0\u7684\u4FE1\u606F","person.thought.concept_hypothesis":"\u5047\u8BBE","person.thought.concept_imagined":"\u60F3\u8C61\u7684\u53EF\u80FD","person.thought.concept_uncertain":"\u5F85\u786E\u8BA4\u7684\u60F3\u6CD5","person.thought.activity_summary":"\u601D\u8003\u7247\u6BB5","person.thought.decision_summary":"\u5224\u65AD","person.thought.self_check":"\u81EA\u6211\u68C0\u67E5","person.thought.uncertainties":"\u5C1A\u672A\u786E\u5B9A","person.thought.reply":"\u56DE\u5E94","person.thought.next_reason":"\u7EE7\u7EED\u60F3\u7684\u539F\u56E0","person.thought.unstructured":"\u975E\u7ED3\u6784\u5316\u8F93\u51FA\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u91C7\u7EB3\u7ED3\u8BBA","person.thought.unavailable":"\u672A\u8BB0\u5F55\u5230\u53EF\u8BFB\u8F93\u51FA","person.thought.previous_candidate":"\u5148\u524D\u5019\u9009\uFF0C\u5C1A\u672A\u91C7\u7EB3","person.thought.recalled":"\u672C\u6B21\u53EC\u56DE","person.thought.structured_unavailable":"\u7ED3\u6784\u5316\u8F93\u51FA\u4E0D\u5B8C\u6574\u6216\u683C\u5F0F\u65E0\u6548\uFF0C\u539F\u59CB\u5185\u5BB9\u53EF\u5728\u8C03\u8BD5\u65E5\u5FD7\u67E5\u770B","scheduleDatePicker.chooseDate":"\u9009\u62E9\u65E5\u671F","scheduleDatePicker.previousMonth":"\u4E0A\u4E2A\u6708","scheduleDatePicker.nextMonth":"\u4E0B\u4E2A\u6708","scheduleDatePicker.today":"\u4ECA\u5929","scheduleDatePicker.keyboardHelp":"\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",...th,...nh,"quickSend.composer.label":"\u5FEB\u6377\u53D1\u9001","quickSend.composer.send":"\u5FEB\u6377\u53D1\u9001 {number}\uFF1A{name}","common.loading":"\u52A0\u8F7D\u4E2D...","common.confirm":"\u786E\u5B9A","common.apply":"\u5E94\u7528","common.cancel":"\u53D6\u6D88","common.delete":"\u5220\u9664","common.copy":"\u590D\u5236","common.copied":"\u5DF2\u590D\u5236","common.close":"\u5173\u95ED","common.refresh":"\u5237\u65B0","common.open":"\u6253\u5F00","common.save":"\u4FDD\u5B58","common.saving":"\u4FDD\u5B58\u4E2D...","common.search":"\u641C\u7D22","common.back":"\u8FD4\u56DE","common.noSubdirectories":"\u65E0\u5B50\u76EE\u5F55","common.drives":"\u9A71\u52A8\u5668","common.rootDir":"\u6839\u76EE\u5F55","common.comma":"\uFF0C","common.select":"\u9009\u62E9","common.retry":"\u91CD\u8BD5","mermaid.export":"\u5BFC\u51FA","mermaid.exportMd":"\u5BFC\u51FA MD","mermaid.exportPng":"\u5BFC\u51FA PNG","mermaid.exportJpg":"\u5BFC\u51FA JPG","login.subtitle":"Yeaft Web Code Agent","login.username":"\u7528\u6237\u540D","login.password":"\u5BC6\u7801","login.login":"\u767B\u5F55","login.loggingIn":"\u767B\u5F55\u4E2D...","login.enterUsername":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","login.enterPassword":"\u8BF7\u8F93\u5165\u5BC6\u7801","login.noAccount":"\u6CA1\u6709\u8D26\u53F7\uFF1F","login.registerWithCode":"\u6CE8\u518C\u65B0\u8D26\u53F7","login.or":"\u6216","login.usePassword":"\u4F7F\u7528\u8D26\u53F7\u5BC6\u7801\u767B\u5F55","login.useSso":"\u8FD4\u56DE\u5355\u70B9\u767B\u5F55","login.noProviders":"\u7BA1\u7406\u5458\u5C1A\u672A\u542F\u7528\u4EFB\u4F55\u7B2C\u4E09\u65B9\u767B\u5F55\u3002","login.microsoft":"\u4F7F\u7528 Microsoft \u8D26\u53F7\u767B\u5F55","login.github":"\u4F7F\u7528 GitHub \u8D26\u53F7\u767B\u5F55","login.google":"\u4F7F\u7528 Google \u8D26\u53F7\u767B\u5F55","login.wechat":"\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u767B\u5F55","login.alipay":"\u4F7F\u7528\u652F\u4ED8\u5B9D\u8D26\u53F7\u767B\u5F55","login.wechat.mobileUnsupported":"\u5FAE\u4FE1\u767B\u5F55\u6682\u4EC5\u652F\u6301\u7535\u8111\u7AEF\uFF0C\u8BF7\u5728\u7535\u8111\u6D4F\u89C8\u5668\u4E2D\u626B\u7801\u767B\u5F55\u3002","login.alipay.mobileWaiting":"\u6B63\u5728\u7B49\u5F85\u4F60\u5728\u652F\u4ED8\u5B9D\u4E2D\u786E\u8BA4\u2026 \u5B8C\u6210\u540E\u8FD4\u56DE\u672C\u9875\u9762\u5C06\u81EA\u52A8\u767B\u5F55\u3002","login.alipay.relaunch":"\u91CD\u65B0\u6253\u5F00\u652F\u4ED8\u5B9D","login.qr.title":"\u626B\u7801\u767B\u5F55","login.qr.titleAlipay":"\u652F\u4ED8\u5B9D\u626B\u7801\u767B\u5F55","login.qr.titleWechat":"\u5FAE\u4FE1\u626B\u7801\u767B\u5F55","login.qr.hint":"\u8BF7\u4F7F\u7528\u624B\u673A\u626B\u63CF\u4E8C\u7EF4\u7801\u5B8C\u6210\u6388\u6743","login.error.enterUsername":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","login.error.enterPassword":"\u8BF7\u8F93\u5165\u5BC6\u7801","login.error.enter6Digit":"\u8BF7\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.error.enterInviteCode":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","login.error.usernameMinLen":"\u7528\u6237\u540D\u81F3\u5C112\u4E2A\u5B57\u7B26","login.error.passwordMinLen":"\u5BC6\u7801\u81F3\u5C116\u4F4D","login.error.passwordMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","login.error.enterVerifyCode":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","login.error.loginFailed":"\u767B\u5F55\u5931\u8D25","login.forgot.link":"\u5FD8\u8BB0\u5BC6\u7801\uFF1F","login.forgot.title":"\u91CD\u7F6E\u5BC6\u7801","login.forgot.emailHint":"\u8F93\u5165\u8D26\u6237\u7ED1\u5B9A\u7684\u90AE\u7BB1\uFF0C\u6211\u4EEC\u5C06\u53D1\u9001 6 \u4F4D\u91CD\u7F6E\u9A8C\u8BC1\u7801\u3002","login.forgot.sendCode":"\u53D1\u9001\u91CD\u7F6E\u9A8C\u8BC1\u7801","login.forgot.sending":"\u53D1\u9001\u4E2D...","login.forgot.codeSent":"\u5982\u679C\u90AE\u7BB1\u5DF2\u6CE8\u518C\uFF0C\u91CD\u7F6E\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001\u3002\u8BF7\u5728\u4E0B\u65B9\u8F93\u5165\u9A8C\u8BC1\u7801\u4E0E\u65B0\u5BC6\u7801\u3002","login.forgot.resetBtn":"\u91CD\u7F6E\u5BC6\u7801","login.forgot.resetting":"\u91CD\u7F6E\u4E2D...","login.forgot.success":"\u5BC6\u7801\u5DF2\u91CD\u7F6E\uFF0C\u53EF\u4EE5\u4F7F\u7528\u65B0\u5BC6\u7801\u767B\u5F55\u3002","login.forgot.emailInvalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u90AE\u7BB1","login.register.title":"\u65B0\u7528\u6237\u6CE8\u518C","login.register.inviteCode":"\u9080\u8BF7\u7801","login.register.username":"\u7528\u6237\u540D","login.register.password":"\u5BC6\u7801\uFF08\u81F3\u5C116\u4F4D\uFF09","login.register.confirmPassword":"\u786E\u8BA4\u5BC6\u7801","login.register.email":"\u90AE\u7BB1\uFF08\u53EF\u9009\uFF09","login.register.submit":"\u6CE8\u518C","login.register.submitting":"\u6CE8\u518C\u4E2D...","login.register.back":"\u8FD4\u56DE\u767B\u5F55","login.register.success":"\u6CE8\u518C\u6210\u529F\uFF0C\u8BF7\u767B\u5F55","login.register.enterCode":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","login.register.usernameMin":"\u7528\u6237\u540D\u81F3\u5C112\u4E2A\u5B57\u7B26","login.register.passwordMin":"\u5BC6\u7801\u81F3\u5C116\u4F4D","login.register.passwordMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","login.totp.setupTitle":"\u8BBE\u7F6E\u53CC\u56E0\u7D20\u8BA4\u8BC1","login.totp.setupHint":"\u4F7F\u7528 Microsoft Authenticator \u6216 Google Authenticator \u626B\u63CF\u4E0B\u65B9\u4E8C\u7EF4\u7801","login.totp.manualKey":"\u6216\u624B\u52A8\u8F93\u5165\u5BC6\u94A5\uFF1A","login.totp.enterCode":"\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.totp.complete":"\u5B8C\u6210\u8BBE\u7F6E","login.totp.verifying":"\u9A8C\u8BC1\u4E2D...","login.totp.verify":"\u9A8C\u8BC1","login.totp.prompt":"\u8BF7\u8F93\u5165 Authenticator \u5E94\u7528\u4E2D\u7684\u9A8C\u8BC1\u7801","login.totp.invalidCode":"\u8BF7\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.email.codeSent":"\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001\u81F3 {email}","login.email.enterCode":"\u8F93\u5165\u9A8C\u8BC1\u7801","login.email.verify":"\u9A8C\u8BC1","login.email.verifying":"\u9A8C\u8BC1\u4E2D...","login.email.enterCodeError":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","chat.agent.select":"\u9009\u62E9 Agent","chat.agent.manage":"\u7BA1\u7406 Agent","chat.agent.count":"{count} agents","chat.agent.updatesAvailable":"{count} \u4E2A Agent \u53EF\u5347\u7EA7","chat.agent.updateAvailable":"\u53EF\u5347\u7EA7\u81F3 v{version}","chat.agent.none":"\u6682\u65E0 Agent","chat.agent.restarting":"\u91CD\u542F\u4E2D","agentSettings.open":"Agent \u8BBE\u7F6E","agentSettings.manage":"\u7BA1\u7406","agentSettings.eyebrow":"\u672C\u5730\u8FD0\u884C\u65F6","agentSettings.title":"Agent \u8BBE\u7F6E","agentSettings.description":"\u6309 Agent \u67E5\u770B\u548C\u914D\u7F6E\u672C\u5730\u8FD0\u884C\u65F6\uFF0C\u4E0D\u518D\u628A\u8FD0\u884C\u63A7\u5236\u6DF7\u5165\u8D26\u6237\u8BBE\u7F6E\u3002","agentSettings.agentList":"Agent","agentSettings.categories":"Agent \u8BBE\u7F6E\u5206\u7C7B","agentSettings.categories.operations":"\u64CD\u4F5C","agentSettings.categories.trace":"Trace","agentSettings.categories.llm":"LLM \u914D\u7F6E","agentSettings.selectedAgent":"\u5F53\u524D Agent","agentSettings.online":"\u5728\u7EBF","agentSettings.offline":"\u79BB\u7EBF","agentSettings.empty":"\u6682\u65E0\u53EF\u7528 Agent\u3002","agentSettings.runtime.title":"\u8FD0\u884C\u65F6","agentSettings.runtime.description":"\u8EAB\u4EFD\u3001\u5DE5\u4F5C\u76EE\u5F55\u548C\u672C\u5730\u540E\u53F0\u5904\u7406\u3002","agentSettings.runtime.version":"\u7248\u672C","agentSettings.runtime.updateAvailable":"\u53EF\u66F4\u65B0\u81F3 v{version}","agentSettings.runtime.updateUnknown":"\u65E0\u6CD5\u83B7\u53D6\u66F4\u65B0\u72B6\u6001","agentSettings.runtime.workDir":"\u5DE5\u4F5C\u76EE\u5F55","agentSettings.digitalPerson.title":"\u6570\u5B57\u4EBA","agentSettings.digitalPerson.description":"\u5728\u6B64\u6D4F\u89C8\u5668\u4E2D\u663E\u793A\u8BE5 Agent \u7684\u6570\u5B57\u4EBA\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF1B\u9690\u85CF\u5165\u53E3\u4E0D\u4F1A\u505C\u6B62\u6D3B\u52A8\u6216\u5220\u9664\u6570\u636E\u3002","agentSettings.workCenter.title":"\u5DE5\u4F5C\u4E2D\u5FC3","agentSettings.workCenter.enabled":"\u5DF2\u542F\u7528","agentSettings.workCenter.disabled":"\u5DF2\u505C\u7528","agentSettings.workCenter.runtimeUnavailable":"\u542F\u52A8\u5931\u8D25","agentSettings.workCenter.runtimeUnavailableMessage":"\u5DE5\u4F5C\u4E2D\u5FC3\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u8FD0\u884C\u65F6\u672A\u80FD\u542F\u52A8\uFF1B\u8BF7\u67E5\u770B Agent \u65E5\u5FD7\u540E\u91CD\u8BD5\u3002","agentSettings.workCenter.runtimeUnavailableHint":"\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u5DE5\u4F5C\u4E2D\u5FC3\u8FD0\u884C\u65F6\u5F53\u524D\u4E0D\u53EF\u7528\u3002","agentSettings.workCenter.enabledHint":"\u6B64 Agent \u5DF2\u53EF\u8FD0\u884C\u6301\u4E45\u5DE5\u4F5C\uFF1B\u65B0 Session \u4E5F\u53EF\u521B\u5EFA\u5DE5\u4F5C\u9879\u3002","agentSettings.workCenter.disabledHint":"\u5728\u6B64 Agent \u4E0A\u542F\u7528\u6301\u4E45\u5DE5\u4F5C\u9879\u548C\u540E\u53F0\u6267\u884C\u3002","agentSettings.workCenter.environmentManaged":"\u7531 YEAFT_WORK_CENTER_ENABLED \u7BA1\u7406\uFF0C\u65E0\u6CD5\u5728\u8FD9\u91CC\u4FEE\u6539\u3002","agentSettings.workCenter.upgradeRequired":"\u5347\u7EA7\u6B64 Agent \u540E\u624D\u80FD\u7BA1\u7406\u5DE5\u4F5C\u4E2D\u5FC3\u7684\u542F\u505C\u72B6\u6001\u3002","agentSettings.workCenter.unsupported":"\u9700\u8981\u5347\u7EA7","agentSettings.workCenter.loadFailed":"\u5DE5\u4F5C\u4E2D\u5FC3\u72B6\u6001\u52A0\u8F7D\u5931\u8D25\u3002","agentSettings.workCenter.loadFailedStatus":"\u52A0\u8F7D\u5931\u8D25","agentSettings.workCenter.saveFailed":"\u5DE5\u4F5C\u4E2D\u5FC3\u66F4\u65B0\u5931\u8D25\u3002","agentSettings.telemetry.title":"\u8BCA\u65AD","agentSettings.telemetry.saved":"\u8BCA\u65AD\u8BBE\u7F6E\u5DF2\u4FDD\u5B58\u3002","agentSettings.telemetry.loadFailed":"\u8BCA\u65AD\u8BBE\u7F6E\u52A0\u8F7D\u5931\u8D25\u3002","agentSettings.telemetry.saveFailed":"\u8BCA\u65AD\u8BBE\u7F6E\u4FDD\u5B58\u5931\u8D25\u3002","agentSettings.maintenance.title":"\u7EF4\u62A4","agentSettings.maintenance.description":"\u8FD9\u4E9B\u64CD\u4F5C\u4F1A\u4E2D\u65AD\u5F53\u524D Agent \u4E0A\u6B63\u5728\u8FD0\u884C\u7684\u5DE5\u4F5C\u3002","agentSettings.maintenance.upgradeFailed":"Agent \u5347\u7EA7\u5931\u8D25\u3002","chat.agent.restart":"\u91CD\u542F","chat.agent.restartConfirm":`\u786E\u5B9A\u8981\u91CD\u542F Agent "{name}" \u5417\uFF1F
|
|
10
|
+
${h}`:h),v.status!=="failed"&&v.status!=="closed"&&(v.status=l.status||"idle");break}case"error":l.error&&(v.error=l.error.message||String(l.error));break;default:break}v.updatedAt=Date.now(),this.yeaftSubAgentCards={...this.yeaftSubAgentCards,[d]:v};break}case"history_loaded":{let a={...r,agentId:e.agentId||null,requestId:r.requestId||e.requestId||null};if(a.requestId&&!this.isCurrentYeaftHistoryResponse(a))break;let c=e.agentId||null,l=r.sessionId??null,d=Ve(c,l),u=e.perfTraceId||this.yeaftHistoryPerfTraceBySession?.[d];u&&Ct(this,{traceId:u,phase:"history.loaded_event",agentId:e.agentId||null,sessionId:r.sessionId||null,messageType:r.type,detail:{mode:r.mode||"recent",count:r.count||0,hasMore:!!r.hasMore}});let p=r.mode==="delta"?"delta":"recent",g=this.yeaftSessionHistoryState[d]||{},f=Number.isFinite(r.latestSeq)?r.latestSeq:Number.isFinite(g.latestSeq)?g.latestSeq:null,v=Number.isFinite(r.nextBeforeSeq)?r.nextBeforeSeq:Number.isFinite(r.oldestSeq)?r.oldestSeq:Number.isFinite(g.serverOldestFetchedSeq)?g.serverOldestFetchedSeq:Number.isFinite(g.oldestSeq)?g.oldestSeq:null,h=p==="delta"?{...g,loaded:!0,loading:!1,latestSeq:f,syncingAfterSeq:null,count:(g.count||0)+(r.count||0)}:{...g,loaded:!0,loading:!1,hasMore:!!r.hasMore,serverHasMore:!!r.hasMore,oldestSeq:v,serverOldestFetchedSeq:v,count:typeof r.count=="number"?r.count:0,latestSeq:f,syncingAfterSeq:null},b=a.requestId?this.finishYeaftHistoryLoad(a,h,"completion"):null;b||(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState,[d]:h});let m=Ve(c?this.currentAgent:null,this.yeaftActiveSessionFilter??null);if(d===m)p==="recent"&&(this.yeaftHasMoreHistory=h.hasMore,this.yeaftOldestLoadedSeq=h.serverOldestFetchedSeq),this.yeaftLoadingMoreHistory=!!b?.loading;else if(this.yeaftLoadingMoreHistory){let k=this.yeaftSessionHistoryState[m]||null;this.yeaftLoadingMoreHistory=!!k?.loading}}break;case"vp_snapshot":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&a.applySnapshot(r,e.agentId||null,e.requestId||null);break}case"vp_snapshot_error":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&a.failSnapshot(e.agentId||null,e.requestId||null,r.error||r.message||"VP library request failed");break}case"vp_updated":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&r.vp&&a.upsert(r.vp,r.reason,e.agentId||null);break}case"vp_removed":{let a=window.Pinia?.useVpStore?.()||window.__useVpStore&&window.__useVpStore();a&&r.vpId&&a.remove(r.vpId,r.reason,e.agentId||null);break}case"vp_crud_result":{let a=this._vpCrudPending&&this._vpCrudPending.get(r.requestId);a&&(this._vpCrudPending.delete(r.requestId),a.resolve({ok:!!r.ok,op:r.op,vpId:r.vpId,vp:r.vp,error:r.error||null}));break}case"group_list_updated":case"session_list_updated":case"yeaft_session_hydrate":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),c=r.sessions||[];if(r.projectsAuthoritative===!0&&Array.isArray(r.projects)?this.applySessionCatalogSnapshot(this.sessionCatalog,r.projects):Array.isArray(r.projects)&&e.agentId&&this.applyLegacyProjectSnapshot(r.projects,e.agentId),r.type!=="yeaft_session_hydrate"&&this.yeaftSessionHydrateRequestId&&this.yeaftSessionInventoryCompleteSupported===!0){let g=Array.isArray(this.yeaftSessionHydrateSlices)?this.yeaftSessionHydrateSlices.filter(f=>f.agentId!==(e.agentId||null)):[];this.yeaftSessionHydrateSlices=[...g,{agentId:e.agentId||null,sessions:c}];break}let l=a&&a.activeSessionId||null,d=a?.activeSessionKey&&a.sessions?.[a.activeSessionKey]?.agentId||null;a&&(a.applySnapshot(c,e.agentId||null),this._hasHandledYeaftSessionHydrate=!0,this.yeaftSessionHydrateError=null);let u=a&&a.activeSessionId||null,p=a?.activeSessionKey&&a.sessions?.[a.activeSessionKey]?.agentId||null;if(this.currentView==="yeaft"&&u){let g=p||Oe(this,u,e.agentId||null),f=Ve(g,u),v=this.yeaftSessionHistoryState[f]||null;this.setActiveSessionFilter(u,{agentId:g,force:d!==g||xp(u,l,v)})}break}case"group_roster_changed":case"session_roster_changed":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();a&&a.applyRosterChange(r,e.agentId||null);break}case"group_crud_result":case"session_crud_result":{let a=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),c=this._sessionCrudPending&&this._sessionCrudPending.get(r.requestId);if(r.op==="copy"&&c?.agentId&&c.agentId!==e.agentId)break;r.op==="copy"&&r.projectsAuthoritative===!0&&Array.isArray(r.projects)&&this.applySessionCatalogSnapshot(this.sessionCatalog,r.projects),a&&a.applyCrudResult(r,e.agentId||null,{activate:r.op!=="copy"}),r.ok&&r.op==="delete"&&r.sessionId&&e.agentId&&this.clearYeaftHistoryMemory({agentId:e.agentId,sessionId:r.sessionId}),c&&(()=>{if(this._sessionCrudPending?.get(r.requestId)!==c)return;this._sessionCrudPending.delete(r.requestId);let d=r.session||r.group||null,u=d&&e.agentId&&!d.agentId?{...d,agentId:e.agentId}:d,p=r.sessionId||null,g=r.sessions||null;c.resolve({ok:!!r.ok,op:r.op,session:u,sessionId:p,sessions:g,config:r.config||null,error:r.error||null})})();break}case"vp_turn_start":{if(!r.turnId||!r.vpId)break;let a=lc(e.agentId||null,r.turnId)||r.turnId;if(this.activeVpTurns={...this.activeVpTurns,[a]:{agentId:e.agentId||null,turnId:r.turnId,vpId:r.vpId,sessionId:r.sessionId||null,threadId:r.threadId||null,isStreaming:!0,startedAt:r.ts||Date.now()}},r.sessionId){let c=Vs(e.agentId||null,r.sessionId);this.yeaftProcessingSessions={...this.yeaftProcessingSessions,...c?{[c]:!0}:{[r.sessionId]:!0}}}break}case"vp_turn_end":{if(!r.turnId)break;let a=Kn(this,e.agentId||null,r.turnId),c=r.sessionId||this.activeVpTurns?.[a]?.sessionId||null;r.reason==="end_turn"&&c&&this.markYeaftSessionUnread(c,e.agentId||null);let{[a]:l,...d}=this.activeVpTurns;this.activeVpTurns=d;let{[a]:u,...p}=this.stoppingVpTurnIds;this.stoppingVpTurnIds=p;let g=r.sessionId||l?.sessionId||null,f=e.agentId||l?.agentId||null,v=r.vpId||l?.vpId||null;if(!(g&&v?Object.values(this.activeVpTurns||{}).some(y=>y?.vpId===v&&qt(y,g,f)):!1)&&g&&v){let y={...this.vpStatuses||{}},S=!1;for(let[C,R]of Object.entries(y))R?.vpId===v&&qt(R,g,f)&&Ri.has(R.state)&&(y[C]={...R,state:"idle",turnId:null,since:r.ts||Date.now()},S=!0);S&&(this.vpStatuses=y)}this.clearYeaftSessionProcessingIfIdle(g,{agentId:f});let m={end_turn:"completed",route_forward:"completed",aborted:"aborted",errored:"errored",error:"errored",cancelled:"cancelled",canceled:"cancelled"}[r.reason]||"completed",k=Date.now(),w=Ns(this,e.agentId||null,e.conversationId);if(w&&Array.isArray(this.messagesMap[w])){let y=this.messagesMap[w],S=mf(y,r);for(let C=0;C<y.length;C++){let R=y[C];if(!R||R.type!=="assistant")continue;let W=R.sessionId??R.groupId;r.sessionId&&W&&W!==r.sessionId||r.vpId&&R.speakerVpId&&R.speakerVpId!==r.vpId||r.turnId&&R.turnId&&R.turnId!==r.turnId||R.status&&R.status!=="pending"||(R.status=m,R.turnEndAt=k,R.turnEndReason=r.reason||null,r.detail&&(R.turnEndDetail=r.detail),Number.isFinite(r.durationMs)&&(R.turnDurationMs=r.durationMs),S=!0)}S&&(this.messagesMap={...this.messagesMap,[w]:y.slice()}),this.pruneConversationMessageRetention(w,g,f)}break}case"yeaft_turn_aborted":{let a=Array.isArray(r.turnIds)?r.turnIds.filter(Boolean):[];r.turnId&&a.push(r.turnId);let c=r.sessionId||null,l=r.vpId||null,d=new Set;for(let f of a){let v=Kn(this,e.agentId||null,f),h=this.activeVpTurns?.[v]||null;(!h||qt(h,h.sessionId,e.agentId||null))&&d.add(v)}if(l)for(let[f,v]of Object.entries(this.activeVpTurns||{}))!v||v.vpId!==l||qt(v,c,e.agentId||null)&&d.add(f);if(d.size===0)break;let u=c,p={...this.activeVpTurns||{}},g={...this.stoppingVpTurnIds||{}};for(let f of d){let v=p[f];!u&&v?.sessionId&&(u=v.sessionId),delete p[f],delete g[f]}this.activeVpTurns=p,this.stoppingVpTurnIds=g,this.clearYeaftSessionProcessingIfIdle(u||null,{agentId:e.agentId||null});break}case"yeaft_aborted":{let a=r.sessionId||e.sessionId||null;a?(this.activeVpTurns=Object.fromEntries(Object.entries(this.activeVpTurns||{}).filter(([,c])=>!qt(c,a,e.agentId||null))),this.stoppingVpTurnIds=Object.fromEntries(Object.entries(this.stoppingVpTurnIds||{}).filter(([c])=>this.activeVpTurns?.[c])),this.vpStatuses=Object.fromEntries(Object.entries(this.vpStatuses||{}).filter(([,c])=>!qt(c,a,e.agentId||null))),this.clearYeaftSessionProcessingIfIdle(a,{agentId:e.agentId||null,ignoreStatuses:!0})):r.all&&Sf(this,e.agentId||null);break}case"vp_typing_start":{if(!r.vpId)break;let a=Ns(this,e.agentId||null,e.conversationId);if(!a)break;this.yeaftVpTyping=Qg(this.yeaftVpTyping,a,r.vpId);break}case"vp_typing_end":{if(!r.vpId)break;let a=Ns(this,e.agentId||null,e.conversationId);if(!a)break;this.yeaftVpTyping=Xg(this.yeaftVpTyping,a,r.vpId);break}case"vp_status_changed":{if(!r.vpId||!r.state)break;if(o){let u=$c(i);if(r.state==="thinking"||r.state==="retrying"||r.state==="tool")hi(this,o,`${r.state}:${u}`);else if(r.state==="streaming"||r.state==="idle"||r.state==="error")for(let p of["thinking","retrying","tool"])hr(this,o,`${p}:${u}`)}let a=r.sessionId||null,c=e.agentId||null,l=Xo(c,a,r.vpId),d={agentId:c,state:r.state,since:r.since||Date.now(),turnId:r.turnId||null,title:r.title||"",sessionId:a,vpId:r.vpId};if(this.vpStatuses={...this.vpStatuses,[l]:d},a&&Ri.has(r.state)){let u=Vs(c,a);this.yeaftProcessingSessions={...this.yeaftProcessingSessions,...u?{[u]:!0}:{[a]:!0}}}else a&&this.clearYeaftSessionProcessingIfIdle(a,{agentId:c});this.restoreActiveYeaftSessionFromStatuses([d],c);break}case"vp_status_snapshot":{let a=Array.isArray(r.statuses)?r.statuses:[],c=r.sessionId;if(c==null){let l={...this.vpStatuses||{}};if(e.agentId)for(let[d,u]of Object.entries(l))(!u?.agentId||u.agentId===e.agentId)&&delete l[d];else for(let d of Object.keys(l))delete l[d];for(let d of a){if(!d||!d.vpId)continue;let u=d.sessionId||d.groupId||null,p=Xo(e.agentId||null,u,d.vpId);l[p]={agentId:e.agentId||null,state:d.state,since:d.since||Date.now(),turnId:d.turnId||null,title:d.title||"",sessionId:u,vpId:d.vpId}}this.vpStatuses=l}else{let l={...this.vpStatuses};for(let[d,u]of Object.entries(l))u&&u.sessionId===c&&(!e.agentId||!u.agentId||u.agentId===e.agentId)&&delete l[d];for(let d of a){if(!d||!d.vpId)continue;let u=d.sessionId||d.groupId||null,p=Xo(e.agentId||null,u,d.vpId);l[p]={agentId:e.agentId||null,state:d.state,since:d.since||Date.now(),turnId:d.turnId||null,title:d.title||"",sessionId:u,vpId:d.vpId}}this.vpStatuses=l}this.yeaftProcessingSessions=tS(this,e.agentId||null,a,c??null),this.restoreActiveYeaftSessionFromStatuses(a,e.agentId||null);break}case"yeaft_dream_snapshot":case"yeaft_dream_status":case"yeaft_dream_result":case"dream_progress":break}},fetchExpertRoleDefinitions(){if(this.expertRoleDefinitions)return;let e=this.currentAgent;e&&this.sendWsMessage({type:"get_expert_roles",agentId:e})},setYeaftSidebarEnabled(e){try{typeof localStorage<"u"&&localStorage.removeItem("yeaft-sidebar-enabled")}catch{}},vpCrudRequest(e,t){(!this._vpCrudPending||typeof this._vpCrudPending.get!="function")&&(this._vpCrudPending=new Map);let s="vpc_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,8),r={create:"yeaft_vp_create",update:"yeaft_vp_update",delete:"yeaft_vp_delete",read:"yeaft_vp_read"}[e];if(!r)return Promise.resolve({ok:!1,op:e,error:{code:"bad_op",message:"unknown op: "+e}});let i={type:r,requestId:s};return e==="create"||e==="update"?i.payload=t||{}:i.vpId=t,new Promise(o=>{let a=setTimeout(()=>{this._vpCrudPending&&this._vpCrudPending.has(s)&&(this._vpCrudPending.delete(s),o({ok:!1,op:e,error:{code:"timeout",message:"vp_crud timeout"}}))},1e4);this._vpCrudPending.set(s,{resolve:c=>{clearTimeout(a),o(c)}}),this.sendWsMessage(i)})},sessionCrudRequest(e,t,s={}){(!this._sessionCrudPending||typeof this._sessionCrudPending.get!="function")&&(this._sessionCrudPending=new Map);let n="grc_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,8),i={list:"yeaft_list_sessions",create:"yeaft_create_session",copy:"yeaft_copy_session",rename:"yeaft_rename_session",update:"yeaft_update_session",update_config:"yeaft_update_session_config",archive:"yeaft_archive_session",delete:"yeaft_delete_session",add_member:"yeaft_session_add_member",remove_member:"yeaft_session_remove_member",set_default_vp:"yeaft_session_set_default_vp",reorder:"reorder_yeaft_sessions",scan_workdir:"yeaft_scan_workdir_sessions",restore:"yeaft_restore_session"}[e];if(!i)return Promise.resolve({ok:!1,op:e,error:{code:"bad_op",message:"unknown op: "+e}});let o={type:i,requestId:n};e==="create"?o.payload=t||{}:t&&typeof t=="object"&&Object.assign(o,t);let a=s&&s.agentId?s.agentId:null;a&&(o.agentId=a);let c=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();return c&&c.markPending(n,e),new Promise(l=>{let d=Number.isFinite(s.timeoutMs)?Math.max(1,Number(s.timeoutMs)):e==="copy"?null:iS,u=d==null?null:setTimeout(()=>{this._sessionCrudPending&&this._sessionCrudPending.has(n)&&(this._sessionCrudPending.delete(n),c?.pending&&delete c.pending[n],l({ok:!1,op:e,error:{code:"timeout",message:"session_crud timeout"}}))},d);this._sessionCrudPending.set(n,{op:e,agentId:a||this.currentAgent,connectionGeneration:Number(this.chatHistoryConnectionGeneration||0),resolve:g=>{u&&clearTimeout(u),c?.pending&&delete c.pending[n],l(g)}});let p=this.sendWsMessage(o);e==="copy"&&!p&&(u&&clearTimeout(u),this._sessionCrudPending.delete(n),c?.pending&&delete c.pending[n],l({ok:!1,op:e,error:{code:"agent_offline"}}))})},markYeaftSessionUnread(e,t=null){if(!e)return!1;let s=Oe(this,e,t);if(!s)return!1;let n=cr(s,e);return this.currentView==="yeaft"&&this.yeaftActiveSessionFilter===e&&Oe(this,e)===s||this.yeaftUnreadSessionKeys?.[n]?!1:(this.yeaftUnreadSessionKeys={...this.yeaftUnreadSessionKeys,[n]:!0},!0)},markYeaftSessionRead(e,t=null){if(!e)return!1;let s=Oe(this,e,t);if(!s)return!1;let n=cr(s,e);if(!this.yeaftUnreadSessionKeys?.[n])return!1;let{[n]:r,...i}=this.yeaftUnreadSessionKeys;return this.yeaftUnreadSessionKeys=i,!0},restoreActiveYeaftSessionFromStatuses(e=[],t=null){if(this.yeaftActiveSessionFilter)return null;let n=(Array.isArray(e)?e:[]).filter(o=>o&&(o.sessionId||o.groupId)&&!["idle","offline","completed","failed","aborted"].includes(o.state)).sort((o,a)=>(a.updatedAt||a.since||0)-(o.updatedAt||o.since||0)),r=n[0]?.sessionId||n[0]?.groupId||null;if(!r)return null;let i=t||n[0]?.agentId||Lf(this,r);if(!i)return null;this.setActiveSessionFilter(r,{agentId:i,force:!0});try{let o=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();o&&typeof o.setActive=="function"&&o.setActive(r,i)}catch{}return r},setActiveSessionFilter(e,t={}){let s=this.yeaftActiveSessionFilter||null,n=e||null,r=n?Oe(this,n,t.agentId||null):this.currentAgent,i=!!n&&n===s&&!!r&&!!this.currentAgent&&r!==this.currentAgent,o=!!t.force||i;if(this.yeaftActiveSessionFilter=n,r&&n&&this.currentAgent!==r){this.selectAgent(r);let c=this.agents.find(l=>l.id===r);this.activateYeaftAgent(r,c||null)}else r&&n&&this.activateYeaftAgent(r);r&&n&&(this.markYeaftSessionRead(n,r),wp(this,r,n));let a=!o&&n===s;if(r&&n){this.yeaftSessionAgentById={...this.yeaftSessionAgentById||{},[n]:r};let c=this.yeaftConversationIdsByAgent?.[r]||null;c||(c=`yeaft-local-${r}-${Date.now()}`,this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[r]:c}),this.yeaftConversationId=c,this.messagesMap[c]||(this.messagesMap[c]=[]),this.currentView==="yeaft"&&(this.activeConversations=[c])}try{let c=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore();c&&typeof c.setActive=="function"&&c.setActive(n,r||null);let l=c?.activeSessionKey||null;l?localStorage.setItem("lastViewedYeaftSession",l):localStorage.removeItem("lastViewedYeaftSession")}catch{}this.syncActiveYeaftHistoryLoad(),n&&r&&!a&&this.requestYeaftSessionBootstrap({forceSessionReady:!0,forceHistoryReplay:!0})},async switchYeaftModel(e,t=null,s=void 0){if(!e||!this.currentAgent)return;let n=t||null;if(n){let r={model:e};return s!==void 0&&(r.modelEffort=s||null),await this.sessionCrudRequest("update_config",{sessionId:n,config:r},{agentId:Oe(this,n)})}return this.sendWsMessage({type:"yeaft_model_switch",model:e,modelEffort:s||null,agentId:this.currentAgent}),null},setYeaftDebugSearch(e){this.yeaftDebugSearch=typeof e=="string"?e:"",this._yeaftDebugSearchTimer&&clearTimeout(this._yeaftDebugSearchTimer),this._yeaftDebugSearchTimer=setTimeout(()=>{this._yeaftDebugSearchTimer=null,this.yeaftDebugLoops=[],this.yeaftDebugTurnsById={},this.yeaftDebugTurnOrder=[],this.loadYeaftDebugHistory({limit:this.yeaftDebugSearch.trim()?$f:Lc,indexOnly:!0,search:this.yeaftDebugSearch})},250)},setYeaftDebugSessionFilter(e){e==null?this.yeaftDebugSessionFilter=null:this.yeaftDebugSessionFilter=String(e)},toggleSubAgentCardExpand(e){let t=this.yeaftSubAgentCards?.[e];t&&(this.yeaftSubAgentCards={...this.yeaftSubAgentCards,[e]:{...t,expanded:!t.expanded}})},requestTelemetrySettings(e,t,s=null){if(!t)return Promise.reject(new Error("no agent"));let n=`telemetry-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.telemetryRequestByAgent={...this.telemetryRequestByAgent,[t]:n},new Promise((r,i)=>{this._telemetryPending||(this._telemetryPending={});let o=setTimeout(()=>{if(delete this._telemetryPending[n],this.telemetryRequestByAgent?.[t]===n){let a={...this.telemetryRequestByAgent};delete a[t],this.telemetryRequestByAgent=a}i(new Error("Telemetry request timed out"))},15e3);this._telemetryPending[n]={resolve:r,reject:i,timer:o,agentId:t,operation:e,requestId:n},this.sendWsMessage({type:e==="load"?"get_telemetry_settings":"update_telemetry_settings",agentId:t,requestId:n,...e==="update"?{settings:s||{}}:{}})})},loadTelemetrySettings(e=this.currentAgent){return e?this.requestTelemetrySettings("load",e):Promise.resolve({enabled:!0,retentionDays:3,flushIntervalMs:1e3,maxQueueSize:5e3,rawExchangeMaxBytes:524288,traceTextMaxBytes:262144,loaded:!0})},updateTelemetrySettings(e,t=this.currentAgent){return this.requestTelemetrySettings("update",t,e)},requestWorkCenterFeatureSettings(e,t,s=null){if(!t)return Promise.reject(new Error("no agent"));let n=`work-center-feature-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.workCenterFeatureRequestByAgent={...this.workCenterFeatureRequestByAgent,[t]:n},new Promise((r,i)=>{this._workCenterFeaturePending||(this._workCenterFeaturePending={});let o=setTimeout(()=>{delete this._workCenterFeaturePending[n],i(new Error("Work Center settings request timed out"))},15e3);this._workCenterFeaturePending[n]={resolve:r,reject:i,timer:o,agentId:t,operation:e},this.sendWsMessage({type:e==="load"?"get_work_center_feature_settings":"update_work_center_feature_settings",agentId:t,requestId:n,...e==="update"?{settings:s}:{}})})},loadWorkCenterFeatureSettings(e=this.currentAgent){return this.requestWorkCenterFeatureSettings("load",e)},updateWorkCenterFeatureSettings(e,t=this.currentAgent){return this.requestWorkCenterFeatureSettings("update",t,e)},restartAgent(e){if(!e||this.agentOperations?.[e]?.restart?.pending)return!1;let t=`restart-${Date.now()}-${Math.random().toString(36).slice(2)}`,s=setTimeout(()=>this.finishAgentOperation(e,"restart","timeout"),12e4);return this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},restart:{pending:!0,acknowledged:!1,startedAt:Date.now(),requestId:t,timer:s,error:null}}},this.sendWsMessage({type:"restart_agent",agentId:e,requestId:t}),!0},upgradeAgent(e,t=null){if(!e||this.agentOperations?.[e]?.upgrade?.pending)return!1;let s=this.agents.find(i=>i.id===e),n=`upgrade-${Date.now()}-${Math.random().toString(36).slice(2)}`,r=setTimeout(()=>this.finishAgentOperation(e,"upgrade","timeout"),12e4);return this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},upgrade:{pending:!0,acknowledged:!1,startedAt:Date.now(),requestId:n,oldVersion:s?.version||null,batchId:t,timer:r,error:null}}},this.sendWsMessage({type:"upgrade_agent",agentId:e,requestId:n}),!0},getUpgradableAgents(){return(this.agents||[]).filter(e=>e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("remote_upgrade_safe")&&!e.capabilities.includes("container_agent")&&!this.agentOperations?.[e.id]?.restart?.pending&&!this.agentOperations?.[e.id]?.upgrade?.pending)},upgradeAllAgents(){if(this.agentUpgradeBatch?.pending)return null;let e=this.getUpgradableAgents();if(e.length===0)return null;let t={id:`upgrade-batch-${Date.now()}-${Math.random().toString(36).slice(2)}`,pending:!0,startedAt:Date.now(),agentIds:e.map(s=>s.id),skippedCount:Math.max(0,(this.agents||[]).length-e.length),results:{}};this.agentUpgradeBatch=t;for(let s of e)this.upgradeAgent(s.id,t.id)||this.recordAgentUpgradeBatchResult(s.id,{status:"failed",error:"not_started"},t.id);return t.agentIds.length},recordAgentUpgradeBatchResult(e,t={},s=null){let n=this.agentUpgradeBatch;if(!n?.pending||s&&n.id!==s||!n.agentIds.includes(e)||n.results[e])return null;let r={...n,results:{...n.results,[e]:{status:t.status||"failed",error:t.error||null,version:t.version||null,reason:t.reason||null}}},i=r.agentIds.every(o=>r.results[o]);return this.agentUpgradeBatch=i?{...r,pending:!1,completedAt:Date.now()}:r,i&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("agent-upgrade-batch-complete",{detail:this.agentUpgradeBatch})),i?this.agentUpgradeBatch:null},finishAgentOperation(e,t,s=null){let n=this.agentOperations?.[e]?.[t];n&&(clearTimeout(n.timer),this.agentOperations={...this.agentOperations,[e]:{...this.agentOperations[e]||{},[t]:{...n,pending:!1,timer:null,error:s}}},t==="upgrade"&&n.batchId&&this.recordAgentUpgradeBatchResult(e,s?{status:"failed",error:s}:{status:"upgraded"},n.batchId))},loadSearchSettings(){return this.currentAgent?new Promise(e=>{this._searchPending||(this._searchPending={}),this._searchPending.load=e,this.sendWsMessage({type:"get_search_settings",agentId:this.currentAgent})}):(this.searchSettings={backend:"tavily",tavilyKeyConfigured:!1,tavilyKeyMasked:null,disableHtmlFallback:!1,loaded:!0},Promise.resolve(this.searchSettings))},updateSearchSettings(e){return this.currentAgent?new Promise(t=>{this._searchPending||(this._searchPending={}),this._searchPending.update=t,this.sendWsMessage({type:"update_search_settings",agentId:this.currentAgent,settings:e||{}})}):Promise.resolve({error:"no agent"})},loadTavilyUsage(){return this.currentAgent?(this.tavilyUsageLoading=!0,new Promise(e=>{this._searchPending||(this._searchPending={}),this._searchPending.usage=e,this.sendWsMessage({type:"get_tavily_usage",agentId:this.currentAgent})})):Promise.resolve(null)},loadYeaftMcpServers(){if(!this.currentAgent)return this.yeaftMcpServers=[],this.yeaftMcpRuntime={connected:!1,toolCount:0,perServer:[]},Promise.resolve({servers:[],runtime:this.yeaftMcpRuntime});this.yeaftMcpLoading=!0;let e=`mcp-list-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(t=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[e]=t,this.sendWsMessage({type:"yeaft_mcp_list",agentId:this.currentAgent,requestId:e})})},addYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-add-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_add",agentId:this.currentAgent,requestId:t,server:e||{}})})},removeYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-rem-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_remove",agentId:this.currentAgent,requestId:t,name:e})})},reloadYeaftMcpServer(e){if(!this.currentAgent)return Promise.resolve({error:"no agent"});this.yeaftMcpLoading=!0;let t=`mcp-rel-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise(s=>{this._mcpPending||(this._mcpPending={}),this._mcpPending[t]=s,this.sendWsMessage({type:"yeaft_mcp_reload",agentId:this.currentAgent,requestId:t,name:e||null})})},clearYeaftMessages(){let e=this.yeaftConversationId;e&&(We(this,e),delete this.messagesMap[e],delete this.processingConversations[e],delete this.executionStatusMap[e],delete this.refreshingSessionMap[e],this._closedAt&&delete this._closedAt[e],this._turnCompletedConvs?.delete(e)),this.yeaftConversationId=this.currentAgent?`yeaft-local-${this.currentAgent}-${Date.now()}`:`yeaft-local-${Date.now()}`,this.currentAgent&&(this.yeaftConversationIdsByAgent={...this.yeaftConversationIdsByAgent||{},[this.currentAgent]:this.yeaftConversationId}),this.messagesMap[this.yeaftConversationId]=[],this.activeConversations=[this.yeaftConversationId],this.yeaftSessionReady=!1,this.yeaftModel=null,this.yeaftAvailableModels=[],this.yeaftStatus=null,this._yeaftAskTerminalEvents={},this.yeaftDebugLoops=[],this.yeaftDebugTurnsById={},this.yeaftDebugTurnOrder=[],this.yeaftDebugHistoryLoading=!1,this.yeaftDebugHistoryError=null,this.yeaftDebugHistoryFetchedAt=0,this.yeaftDebugHistoryProjection=null,this.yeaftDebugSearch="",this.yeaftDebugSessionFilter=null,this.yeaftDebugPanel={open:!1,status:"idle",requestId:null,agentId:null,sessionId:null,turnId:null,error:null},this._yeaftDebugSearchTimer&&(clearTimeout(this._yeaftDebugSearchTimer),this._yeaftDebugSearchTimer=null),this._fetchYeaftDebugHistoryTimer&&(clearTimeout(this._fetchYeaftDebugHistoryTimer),this._fetchYeaftDebugHistoryTimer=null),this._yeaftDebugHistoryInFlightKey=null,this._yeaftDebugHistoryLatestListRequestId=null,this._yeaftDebugHistoryLatestDetailRequestId=null,this.yeaftReflectionCards={},this.yeaftSubAgentCards={},this.vpStatuses={},this.currentAgent&&this.sendWsMessage({type:"yeaft_reset",agentId:this.currentAgent})},togglePaneRightPanel(e,t=null){if(t&&this.isSplitMode){let s=this.panels.find(n=>n.id===t);if(s){s.activeRightPanel=s.activeRightPanel===e?null:e;return}}this.activeRightPanel=this.activeRightPanel===e?null:e,this.activeRightPanel&&(this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.rememberWorkbenchPanelState())},getPaneRightPanel(e){if(e&&this.isSplitMode){let t=this.panels.find(s=>s.id===e);if(t)return t.activeRightPanel}return this.activeRightPanel},setPaneRightPanel(e,t){if(e&&this.isSplitMode){let s=this.panels.find(n=>n.id===e);if(s){s.activeRightPanel=t;return}}this.activeRightPanel=t},applySessionCatalogSnapshot(e,t=null,s=null){let n=r=>{let i=new Set;return(Array.isArray(r)?r:[]).filter(o=>!o?.catalogKey||i.has(o.catalogKey)?!1:(i.add(o.catalogKey),!0)).map(o=>({...o}))};if(this.sessionCatalog=n(e),Array.isArray(s)&&(this.hiddenSessionCatalog=n(s)),Array.isArray(t)){this.sessionProjects=t.filter(i=>i?.id).map(i=>({...i,members:Array.isArray(i.members)?i.members.filter(o=>o?.agentId&&o?.sessionId):i.agentId?(i.sessionIds||[]).map(o=>({agentId:i.agentId,sessionId:o})):[]}));let r=new Map;for(let i of this.sessionProjects)for(let o of i.members)r.set(`${o.agentId}${o.sessionId}`,i.id);this.sessionCatalog=this.sessionCatalog.map(i=>i.runtimeProvider==="yeaft"?{...i,projectId:r.get(`${i.routeRef?.agentId}${i.routeRef?.sessionId}`)||null}:i)}this.sessionCatalogLoaded=!0},mutateProject(e,t={},s=null){let n=s||t.agentId||this.currentAgent||null;if(e==="move_session"&&!n)return Promise.resolve({ok:!1,error:{code:"missing_agent"}});let r=`project_${crypto.randomUUID()}`;return new Promise(i=>{let o=setTimeout(()=>{delete this.projectMutationRequests[r],i({ok:!1,error:{code:"timeout"}})},1e4);this.projectMutationRequests[r]={connectionGeneration:Number(this.chatHistoryConnectionGeneration||0),catalogOrder:Array.isArray(t.catalogOrder)?t.catalogOrder:null,resolve:c=>{clearTimeout(o),i(c)}},this.sendWsMessage({type:"yeaft_project_mutation",...n?{agentId:n,targetAgentId:n}:{},requestId:r,op:e,...t})||(clearTimeout(o),delete this.projectMutationRequests[r],i({ok:!1,error:{code:"send_failed"}}))})},applyLegacyProjectSnapshot(e,t){if(!t||!Array.isArray(e))return;let s=this.sessionProjects.filter(r=>r.legacyAgentId!==t),n=e.filter(r=>r?.id).map(r=>({...r,id:`${t}${r.id}`,legacyProjectId:r.id,legacyAgentId:t,members:(r.sessionIds||[]).map(i=>({agentId:t,sessionId:i}))}));this.applySessionCatalogSnapshot(this.sessionCatalog,[...s,...n])},finishLegacyProjectMutation(e,t){if(!e?.requestId)return!1;let s=this.projectMutationRequests[e.requestId]||null;return!s||s.connectionGeneration!==Number(this.chatHistoryConnectionGeneration||0)?!1:(delete this.projectMutationRequests[e.requestId],e.ok&&Array.isArray(e.projects)&&t&&this.applyLegacyProjectSnapshot(e.projects,t),s.resolve(e),!0)},finishProjectMutation(e){if(!e?.requestId)return!1;let t=this.projectMutationRequests[e.requestId]||null;if(!t||t.connectionGeneration!==Number(this.chatHistoryConnectionGeneration||0))return!1;if(delete this.projectMutationRequests[e.requestId],e.ok){if(Array.isArray(t.catalogOrder)){let s=new Map(this.sessionCatalog.map(r=>[r.catalogKey,r])),n=t.catalogOrder.map((r,i)=>{let o=s.get(r?.catalogKey);return o?{...o,sortRank:i}:null}).filter(Boolean);n.length===this.sessionCatalog.length&&(this.sessionCatalog=n,Rf(n))}Array.isArray(e.projects)&&this.applySessionCatalogSnapshot(this.sessionCatalog,e.projects)}return t.resolve(e),!0},toggleCatalogSessionPin(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_ui_${crypto.randomUUID()}`,s=ri(this,t),n=!e.pinned;return e.pinned=n,this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,pinned:n,sortRank:Number.isFinite(e.sortRank)?e.sortRank:null})?!0:(this.sessionCatalog=s,delete this.sessionCatalogMutationRequests[t],!1)},hideCatalogSession(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_hide_${crypto.randomUUID()}`,s=ri(this,t);return this.sessionCatalog=this.sessionCatalog.filter(r=>r.catalogKey!==e.catalogKey),this.hiddenSessionCatalog=[...(this.hiddenSessionCatalog||[]).filter(r=>r.catalogKey!==e.catalogKey),{...e,hidden:!0}],this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,hidden:!0,...Number.isFinite(e.sortRank)?{sortRank:e.sortRank}:{}})?!0:(this.sessionCatalog=s,this.hiddenSessionCatalog=Array.isArray(this.sessionCatalogMutationRequests[t]?.previousHiddenCatalog)?this.sessionCatalogMutationRequests[t].previousHiddenCatalog:[],delete this.sessionCatalogMutationRequests[t],!1)},restoreCatalogSession(e){if(!e?.catalogKey||!e?.routeRef||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_restore_${crypto.randomUUID()}`,s=ri(this,t);return this.hiddenSessionCatalog=(this.hiddenSessionCatalog||[]).filter(r=>r.catalogKey!==e.catalogKey),this.sessionCatalog=this.sessionCatalog.some(r=>r.catalogKey===e.catalogKey)?this.sessionCatalog:[...this.sessionCatalog,{...e,hidden:!1}],this.sendWsMessage({type:"set_session_ui_metadata",requestId:t,catalogKey:e.catalogKey,routeRef:e.routeRef,hidden:!1,...Number.isFinite(e.sortRank)?{sortRank:e.sortRank}:{}})?!0:(this.sessionCatalog=s,this.hiddenSessionCatalog=Array.isArray(this.sessionCatalogMutationRequests[t]?.previousHiddenCatalog)?this.sessionCatalogMutationRequests[t].previousHiddenCatalog:[],delete this.sessionCatalogMutationRequests[t],!1)},renameCatalogSession({row:e,title:t}={}){if(!e?.routeRef||!t)return!1;let{runtimeProvider:s,agentId:n,sessionId:r}=e.routeRef;if(s==="yeaft")this.sessionCrudRequest("rename",{sessionId:r,name:t},{agentId:n});else if(s==="claude-code"||s==="copilot")this.renameChatSession(r,t,n);else return!1;return!0},sessionForkUnavailableReason(e){let t=e?.routeRef;return t?.runtimeProvider!=="yeaft"||!t.agentId||!t.sessionId?"bad_route":this.sessionForkPendingKey?"fork_pending":this.connectionState!=="connected"||!this.agents.some(s=>s.id===t.agentId&&s.online)?"agent_offline":this.isYeaftSessionProcessing(t.sessionId,t.agentId)?"session_running":null},async copyCatalogSession(e,t={}){let s=this.sessionForkUnavailableReason(e);if(s)return{ok:!1,op:"copy",error:{code:s}};let n={...e.routeRef},r=Object.prototype.hasOwnProperty.call(t,"throughTurnId");if(r){if(typeof t.throughTurnId!="string"||!t.throughTurnId.trim())return{ok:!1,op:"copy",error:{code:"invalid_fork_boundary"}};if(!this.agents.find(i=>i.id===n.agentId)?.capabilities?.includes("session_fork_from_turn"))return{ok:!1,op:"copy",error:{code:"session_fork_from_turn_unsupported"}}}this.sessionForkPendingKey=cr(n.agentId,n.sessionId),this.sessionForkState="copying";try{let i=await this.sessionCrudRequest("copy",{sessionId:n.sessionId,...r?{throughTurnId:t.throughTurnId}:{}},{agentId:n.agentId});if(!i?.ok||!i.session?.id)return i;this.sessionForkState="success",await new Promise(a=>setTimeout(a,oS));let o={runtimeProvider:"yeaft",agentId:n.agentId,sessionId:i.session.id};return this.openCatalogSession({catalogKey:cr(o.agentId,o.sessionId),routeRef:o}),i}catch(i){return{ok:!1,op:"copy",error:{code:"fork_failed",message:i?.message||String(i)}}}finally{this.sessionForkState="idle",this.sessionForkPendingKey=null}},reorderCatalogSessions(e){if(!Array.isArray(e)||e.length===0||Object.keys(this.sessionCatalogMutationRequests).length>0)return!1;let t=`session_order_${crypto.randomUUID()}`,s=ri(this,t);return this.sessionCatalog=e.map((r,i)=>({...r,sortRank:i})),this.sendWsMessage({type:"reorder_session_catalog",requestId:t,sessions:this.sessionCatalog.map((r,i)=>({catalogKey:r.catalogKey,routeRef:r.routeRef,pinned:!!r.pinned,sortRank:i}))})?!0:(this.sessionCatalog=s,delete this.sessionCatalogMutationRequests[t],!1)},finishSessionCatalogMutation(e){if(!qu(this,e))return!1;if(e?.ok===!0&&e?.type==="session_ui_metadata_updated"){let s=n=>{n&&(n.pinned=e.pinned===!0,Object.prototype.hasOwnProperty.call(e,"sortRank")&&(n.sortRank=Number.isFinite(e.sortRank)?e.sortRank:null))};s(this.sessionCatalog.find(n=>n.catalogKey===e.catalogKey)),s(this.hiddenSessionCatalog.find(n=>n.catalogKey===e.catalogKey))}return e?.ok===!0&&e?.type==="session_catalog_reorder_result"&&Rf(this.sessionCatalog),!0},openCatalogSession(e){if(!e?.catalogKey||!e.routeRef)return!1;let{runtimeProvider:t,agentId:s,sessionId:n}=e.routeRef;if(this.activeCatalogKey=e.catalogKey,t==="yeaft"){let r=this.isSessionHistorySyncing(e.routeRef);return this.enterYeaft(s,{deferBootstrap:!0}),this.setActiveSessionFilter(n,{agentId:s,force:!1}),r||this.reloadYeaftMessages(),!0}return t!=="claude-code"&&t!=="copilot"?!1:(this.currentView==="yeaft"&&this.leaveYeaft(),this.selectConversation(n,s,{refresh:!0}),!0)},syncChatConversationHistory(e){if(!e)return null;let t=rn(e);if(this.chatHistoryRequests[t]?.loading)return this.chatHistoryRequests[t].requestId;let s=On(this.messagesMap[e]);return this.requestChatHistory(e,s===null?{mode:"recent",turns:5}:{mode:"delta",afterMessageId:s})},requestChatHistory(e,{mode:t="recent",turns:s=null,beforeId:n=null,afterMessageId:r=null}={}){if(!e)return null;let i=rn(e);if(this.chatHistoryRequestIdSupported!==!0&&this.chatHistoryRequests[i]?.loading)return null;let o=n??r??null,a=this.beginChatHistoryRequest(e,t,o);return this.sendWsMessage({type:"sync_messages",conversationId:e,...s!=null?{turns:s}:{},...n!=null?{beforeId:n}:{},...r!=null?{afterMessageId:r}:{},requestId:a})?(setTimeout(()=>{Ml(this,i,a,"history_load_timeout")},1e4),a):(Ml(this,i,a,"send_failed"),null)},beginChatHistoryRequest(e,t="recent",s=null){return Bu(this,e,t,s)},isCurrentChatHistoryResponse(e){if(!e?.conversationId||!e?.requestId||!e?.catalogKey)return!1;let t=rn(e.conversationId);if(e.catalogKey!==t)return!1;let s=this.chatHistoryRequests[t];return!!s&&s.loading===!0&&s.requestId===e.requestId&&Number(s.connectionGeneration||0)===Number(this.chatHistoryConnectionGeneration||0)},finishChatHistoryRequest(e){if(!this.isCurrentChatHistoryResponse(e))return!1;let t=this.chatHistoryRequests[e.catalogKey];return this.chatHistoryRequests[e.catalogKey]={...t,loading:!1},!0},isRefreshingSession(e){return e?!!this.refreshingSessionMap[e]:this.refreshingSession},setRefreshingSession(e,t){e&&(this.refreshingSessionMap[e]=t),this.refreshingSession=t},enterBtwMode(){this.btwMode=!0,this.btwMessages=[],this.btwLoading=!1,this.btwSessionId=null},sendBtwQuestion(e){this.currentConversation&&(this.btwMessages.push({role:"user",content:e}),this.btwMessages.push({role:"assistant",content:""}),this.btwLoading=!0,this.sendWsMessage({type:"btw_question",conversationId:this.currentConversation,question:e,btwSessionId:this.btwSessionId}))},closeBtw(){this.btwMode=!1,this.btwMessages=[],this.btwLoading=!1,this.btwSessionId=null},appendBtwDelta(e){let t=this.btwMessages[this.btwMessages.length-1];t&&t.role==="assistant"&&(t.content+=e)},addSubagent(e,t){this.subagents[e]||(this.subagents[e]={}),this.subagents[e][t.id]={id:t.id,slug:t.slug||t.id,type:t.type||"Task",description:t.description||"",parentToolUseId:t.parentToolUseId||null,status:"running",startTime:Date.now(),messages:[],toolCallCount:0},e===this.currentConversation&&this.activeRightPanel!=="subagents"&&(this.activeRightPanel="subagents")},appendSubagentMessage(e,t,s){let n=this.subagents[e];if(!n||!n[t])return;let r=n[t];if(s?.type==="tool"){r.toolCallCount=Number(r.toolCallCount||0)+1;return}s?.type==="text"&&r.messages.push(s)},completeSubagent(e,t){let s=this.subagents[e];!s||!s[t]||(s[t].status="completed")},sendWsMessage(e){return op(this,e)},parseWsMessage(e){return ap(this,e)},connect(){lp(this)},ensureConnected(){return ai(this)},scheduleReconnect(){cp(this)},manualReconnect(){dp(this)},startHeartbeat(){up(this)},stopHeartbeat(){pp(this)},setupVisibilityHandler(){gp(this)},handleMessage(e){bg(this,e)},getOrCreateExecutionStatus(e){return Zl(this,e)},handleAssistantOutputFrame(e,t,s=null){eg(this,e,t,s)},handleClaudeOutput(e,t){this.handleAssistantOutputFrame(e,t,null)},addMessageToConversation(e,t){return _o(this,e,t)},pruneConversationMessageRetention(e,t=null,s=null,n=void 0){return yp(this,{conversationId:e,sessionId:t,agentId:s,limits:n})},appendToAssistantMessageForConversation(e,t,s){Pp(this,e,t,s)},finishStreamingForConversation(e,t){Rp(this,e,t)},sweepStaleStreamingForConversation(e){_p(this,e)},appendToAssistantMessage(e){this.appendToAssistantMessageForConversation(this.currentConversation,e)},finishStreaming(){this.finishStreamingForConversation(this.currentConversation)},addMessage(e){this.addMessageToConversation(this.currentConversation,e)},loadHistoryMessages(e){Ep(this,e)},formatDbMessage(e){return Dp(e)},selectAgent(e){return Tg(this,e)},createConversation(e,t=null,s=null,n=void 0){Mg(this,e,t,s,n)},resumeConversation(e,t,s=null,n=null,r=null){Pg(this,e,t,s,n,r)},selectConversation(e,t,s={}){Rg(this,e,t,s)},updateConversationSettings(e,t){uc(this,e,t)},toggleConversationMcp(e,t){_g(this,e,t)},deleteConversation(e,t){Dg(this,e,t)},closeSession(e,t){Eg(this,e,t)},appendColumn(e){Fg(this,e)},removeColumn(e){Vg(this,e)},sendMessageToConversation(e,t,s=[],n={}){qg(this,e,t,s,n)},cancelExecutionForConversation(e){Bg(this,e)},addPanel(){if(this.panels.length>=3)return;let e=(t,s)=>({id:t,conversationId:s,activeRightPanel:null});if(this.panels.length===0){let t=localStorage.getItem("splitPanesSaved");if(t){try{let s=JSON.parse(t);if(Array.isArray(s)&&s.length>=2){let n=new Set(this.conversations.map(i=>i.id)),r=s.filter(i=>i&&typeof i.id=="string").map(i=>({...e(i.id,null),conversationId:i.conversationId&&n.has(i.conversationId)?i.conversationId:null}));if(r.length>=2){this.panels=r,this.activePanelId=r[0].id;for(let i of r)i.conversationId&&!this.activeConversations.includes(i.conversationId)&&this.activeConversations.push(i.conversationId),i.conversationId&&!this.messagesMap[i.conversationId]&&(this.messagesMap[i.conversationId]=[],this.requestChatHistory(i.conversationId,{mode:"recent",turns:5}));localStorage.removeItem("splitPanesSaved"),this.saveOpenSessions();return}}}catch{}localStorage.removeItem("splitPanesSaved")}this.panels=[e("panel-0",this.currentConversation),e("panel-1",null)],this.activePanelId="panel-0"}else{let t="panel-"+Date.now();this.panels.push(e(t,null))}this.saveOpenSessions()},removePanel(e){let t=this.panels.findIndex(s=>s.id===e);if(!(t<0)){if(this.panels.splice(t,1),this.panels.length<=1){let s=this.panels[0];s?.conversationId&&(this.activeConversations=[s.conversationId]),this.panels=[],this.activePanelId=null}else this.activePanelId===e&&(this.activePanelId=this.panels[0]?.id||null);this.saveOpenSessions()}},setPanelConversation(e,t,{refresh:s=!1}={}){let n=this.panels.find(i=>i.id===e);if(!n)return;let r=n.conversationId===t;n.conversationId=t,t&&!this.activeConversations.includes(t)&&this.activeConversations.push(t),t&&!this.messagesMap[t]?(this.messagesMap[t]=[],this.syncChatConversationHistory(t)):t&&(s||!r)&&this.syncChatConversationHistory(t),this.saveOpenSessions()},setActivePanel(e){this.activePanelId=e},splitToPanel(e){if(!e)return;let t=(s,n)=>({id:s,conversationId:n,activeRightPanel:null});if(this.panels.length===0)this.panels=[t("panel-0",this.currentConversation),t("panel-"+Date.now(),e)],this.activePanelId=this.panels[1].id;else if(this.panels.length>=3)this.panels[this.panels.length-1].conversationId=e,this.activePanelId=this.panels[this.panels.length-1].id;else{let s="panel-"+Date.now();this.panels.push(t(s,e)),this.activePanelId=s}this.activeConversations.includes(e)||this.activeConversations.push(e),this.messagesMap[e]||(this.messagesMap[e]=[],this.requestChatHistory(e,{mode:"recent",turns:5})),this.saveOpenSessions()},isInAnyPanel(e){return this.panels.some(t=>t.conversationId===e)},setSessionPinned(e,t,s={}){if(!e)return;let n=s&&s.agentId?s.agentId:null,r=n?!!Hs()?.sessionById?.(e,n)?.pinned:this.pinnedSessions.includes(e);if(t&&!r)this.pinnedSessions.unshift(e);else if(!t&&r){let i=this.pinnedSessions.indexOf(e);i>=0&&this.pinnedSessions.splice(i,1)}try{localStorage.setItem("pinned-sessions",JSON.stringify(this.pinnedSessions))}catch{}try{let i=window.Pinia?.useSessionsStore?.()||window.__useSessionsStore&&window.__useSessionsStore(),o=Oe(this,e,n);i&&typeof i.applyPinState=="function"&&i.applyPinState(e,!!t,o)}catch{}},togglePin(e,t={}){let s=t&&t.agentId?t.agentId:null,n=s?Hs()?.sessionById?.(e,s):null,r=t&&Object.prototype.hasOwnProperty.call(t,"pinned"),o=!(n?!!n.pinned:r?!!t.pinned:this.pinnedSessions.includes(e));this.setSessionPinned(e,o,{agentId:s});let a={type:o?"pin_session":"unpin_session",conversationId:e};t&&t.sessionKind==="yeaft"&&(a.sessionKind="yeaft",t.agentId&&(a.agentId=t.agentId),t.sessionName&&(a.sessionName=t.sessionName),t.workDir&&(a.workDir=t.workDir)),this.sendWsMessage(a)},isSessionPinned(e){return this.pinnedSessions.includes(e)},applyServerPinSnapshot(e,t,s){if(!Array.isArray(this.pinnedSessions))return;let n=new Set(this.pinnedSessions),r=[];for(let i of t)n.has(i)||r.push(i);if(r.length>0&&(this.pinnedSessions=[...r,...this.pinnedSessions]),e){let i=this.pinnedSessions.filter(o=>s(o)?t.has(o):!0);i.length!==this.pinnedSessions.length&&(this.pinnedSessions=i)}try{localStorage.setItem("pinned-sessions",JSON.stringify(this.pinnedSessions))}catch{}},clearYeaftSessionProcessingIfIdle(e,{agentId:t=null,ignoreStatuses:s=!1}={}){if(!e)return;let n=t||Oe(this,e);if(Object.values(this.activeVpTurns||{}).some(a=>qt(a,e,n))||!s&&Object.values(this.vpStatuses||{}).some(c=>qt(c,e,n)&&Ri.has(c?.state)))return;let i=Vs(n,e),o={...this.yeaftProcessingSessions||{}};i&&delete o[i],Jo(this,e,n)&&delete o[e],this.yeaftProcessingSessions=o},sendMessage(e,t=[],s={}){$g(this,e,t,s)},cancelExecution(){Lg(this)},cancelYeaft(){if(!this.currentAgent)return;this.sendWsMessage({type:"yeaft_abort_all",agentId:this.currentAgent});let e=this.yeaftConversationIdsByAgent?.[this.currentAgent]||this.yeaftConversationId;e&&delete this.processingConversations[e],Sf(this,this.currentAgent)},cancelYeaftSession(e){let t=Oe(this,e);!t||!e||(this.sendWsMessage({type:"yeaft_abort_all",agentId:t,sessionId:e}),this.activeVpTurns=Object.fromEntries(Object.entries(this.activeVpTurns||{}).filter(([,s])=>!qt(s,e,t))),this.stoppingVpTurnIds=Object.fromEntries(Object.entries(this.stoppingVpTurnIds||{}).filter(([s])=>this.activeVpTurns?.[s])),this.vpStatuses=Object.fromEntries(Object.entries(this.vpStatuses||{}).filter(([,s])=>!qt(s,e,t))),this.clearYeaftSessionProcessingIfIdle(e,{agentId:t,ignoreStatuses:!0}))},cancelVpTurn(e,{sessionId:t=null,vpId:s=null}={}){let n=Oe(this,t);if(!n||!e)return;let r=Kn(this,n,e);this.stoppingVpTurnIds={...this.stoppingVpTurnIds,[r]:Date.now()};let i={type:"yeaft_abort_turn",agentId:n,turnId:e};t&&(i.sessionId=t),s&&(i.vpId=s),this.sendWsMessage(i)},cancelVpTurnForSession(e,t=null){if(!e)return!1;let s=t||this.yeaftActiveSessionFilter||null;if(!s)return!1;let n=Oe(this,s);if(!n)return!1;let r=this.activeVpTurns||{},i=null,o=-1/0;for(let[a,c]of Object.entries(r)){if(!c||c.vpId!==e||!qt(c,s,n))continue;let l=typeof c.startedAt=="number"?c.startedAt:0;l>=o&&(o=l,i=a)}if(!i){let a=this.vpStatuses?.[Xo(n,s,e)]||null;a?.turnId&&!["idle","offline"].includes(a.state)&&(i=a.turnId)}if(i){let a=r[i]?.turnId||i;return this.cancelVpTurn(a,{sessionId:s,vpId:e}),!0}return this.sendWsMessage({type:"yeaft_abort_turn",agentId:n,sessionId:s,vpId:e}),!0},answerUserQuestion(e,t,s){Og(this,e,t,s)},refreshAgents(){Ng(this)},refreshConversation(){Hg(this)},loadMoreMessages(){if(this.currentView==="yeaft"||this.loadingMoreMessages||!this.hasMoreMessages||!this.currentConversation)return;this.loadingMoreMessages=!0;let e=this._loadMoreGeneration=(this._loadMoreGeneration||0)+1,s=(this.messagesMap[this.currentConversation]||[]).find(i=>i.dbMessageId),n=this.currentConversation,r=s?.dbMessageId??null;this.requestChatHistory(n,{mode:"older",turns:5,beforeId:r}),setTimeout(()=>{this._loadMoreGeneration===e&&this.loadingMoreMessages&&this.currentConversation===n&&(this.loadingMoreMessages=!1)},1e4)},reloadYeaftMessages(){if(this.currentView!=="yeaft")return!1;let e=pn(this),t=Oe(this,e);if(!t)return!1;let s=Ve(t,e),n=this.yeaftConversationId,r=this.yeaftSessionHistoryState?.[s];if(r?.loading)return r.requestId?(this._yeaftManualHistoryRefresh={agentId:t,sessionId:e,requestId:r.requestId},r.requestId):!1;let i=this.beginYeaftHistoryLoad({agentId:t,sessionId:e,mode:"recent",preserveLoaded:!1});if(!i)return!1;this._yeaftManualHistoryRefresh={agentId:t,sessionId:e,requestId:i.requestId};let o=Vn();this.yeaftHistoryPerfTraceBySession={...this.yeaftHistoryPerfTraceBySession||{},[s]:o};let a={type:"yeaft_load_history",agentId:t,limit:Rc,sessionId:e,requestId:i.requestId,perfTraceId:o};return Ct(this,{traceId:o,phase:"history.request_send",agentId:t,sessionId:e,messageType:a.type,bytes:JSON.stringify(a).length,detail:{mode:"manual-reload",limit:Rc}}),this.sendWsMessage(a)?!0:(di(this,{agentId:t,sessionId:e,requestId:i.requestId,error:"history_load_send_failed"}),!1)},loadMoreYeaftHistory(e=Mi(),{sessionId:t=null,agentId:s=null,background:n=!1}={}){if(this.currentView!=="yeaft")return!1;let r=t||pn(this),i=Oe(this,r,s);if(!i||!r)return!1;let o=Ve(i,r),a=this.yeaftSessionHistoryState?.[o]||{};if(a.loading||!a.hasMore)return!1;let c=Math.min(50,Math.max(1,Number.isFinite(e)?Math.floor(e):Mi())),l=this.yeaftHistoryCacheState?.[o]?.ranges||[],d=Number(this.yeaftHistoryCacheState?.[o]?.rangeEpoch)||0,u=Fp(a,l,d);if(this.yeaftSessionHistoryState={...this.yeaftSessionHistoryState||{},[o]:u.state},!u.request)return this.syncActiveYeaftHistoryLoad(),!1;let p=this.beginYeaftHistoryLoad({agentId:i,sessionId:r,mode:n?"prefetch":"older",preserveLoaded:!0,latestSeq:this.yeaftSessionHistoryState[o]?.latestSeq??null});if(!p)return!1;let g=Vn();this.yeaftHistoryPerfTraceBySession={...this.yeaftHistoryPerfTraceBySession||{},[o]:g};let f={type:"yeaft_load_more_history",agentId:i,sessionId:r,requestId:p.requestId,beforeSeq:u.request.beforeSeq,pageKind:u.request.kind,gapStopAtSeq:u.request.stopAtSeq,cacheEpoch:u.request.cacheEpoch,turns:c,perfTraceId:g};return Ct(this,{traceId:g,phase:"history_more.request_send",agentId:i,sessionId:r,messageType:f.type,bytes:JSON.stringify(f).length,detail:{beforeSeq:f.beforeSeq,turns:f.turns,pageKind:u.request.kind,gapStopAtSeq:u.request.stopAtSeq,background:n}}),this.sendWsMessage(f)?!0:(di(this,{agentId:i,sessionId:r,requestId:p.requestId,error:"history_load_send_failed"}),!1)},checkPendingRecovery(){Nu(this)},performRecovery(){Hu(this)},dismissRecovery(){Wu(this)},autoRestoreConversation(e){Uu(this,e)},saveOpenSessions(){Dn(this)},getLastSession(){return Ku(this)},clearLastSession(){zu(this)},listHistorySessions(e){Gu(this,e)},listFolders(){return Yu(this)},listFoldersForAgent(e,t){return Qu(this,e,t)},listModelsForAgent(e,t){return Xu(this,e,t)},listHistorySessionsForAgent(e,t,s){Zu(this,e,t,s)},async loadGlobalSessions(e=20){return Ju(this,e)},async deleteGlobalSession(e){return ep(this,e)},findAgentForSession(e){return Pl(this,e)},isSessionResumable(e){return tp(this,e)},_isRecentlyClosed(e){return Fn(this,e)},_startProcessingWatchdog(e){fr(this,e)},_resetProcessingWatchdog(e){Eo(this,e)},_stopProcessingWatchdog(e){We(this,e)},startRefreshTimeout(e){let t=e||this.currentConversation;t&&(this._refreshTimeouts||(this._refreshTimeouts={}),this._refreshTimeouts[t]&&clearTimeout(this._refreshTimeouts[t]),this._refreshTimeouts[t]=setTimeout(()=>{this.setRefreshingSession(t,!1),delete this._refreshTimeouts[t]},1e4))},toggleTheme(){this.theme=this.theme==="dark"?"light":"dark",this.themeFollowSystem=!1,localStorage.setItem("theme",this.theme),document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light")},initTheme(){if(document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light"),this.themeFollowSystem&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),t=s=>{this.themeFollowSystem&&(this.theme=s.matches?"dark":"light",document.documentElement.setAttribute("data-theme",this.theme),document.documentElement.classList.toggle("light",this.theme==="light"))};e.addEventListener?e.addEventListener("change",t):e.addListener&&e.addListener(t)}},loadModelsDevRegistry({forceRefresh:e=!1}={}){let t=this.modelsDevRegistry.loaded&&!this.modelsDevRegistry.error&&Date.now()-this.modelsDevRegistry.fetchedAt<36e5;if(!e&&t)return Promise.resolve(this.modelsDevRegistry);let s=this.currentAgent;if(!s)return Promise.resolve(this.modelsDevRegistry);if(this._modelsDevPending&&(!e||this._modelsDevPending.force))return new Promise(n=>this._modelsDevPending.resolvers.push(n));if(this._modelsDevPending){let n=this._modelsDevPending;this._modelsDevPending=null,n.timer&&clearTimeout(n.timer);for(let r of n.resolvers)r(this.modelsDevRegistry)}return new Promise(n=>{let r={resolvers:[n],force:e,timer:null};this._modelsDevPending=r;try{this.sendWsMessage({type:"get_models_dev_registry",agentId:s,forceRefresh:e})}catch{this._modelsDevPending===r&&(this._modelsDevPending=null),n(this.modelsDevRegistry);return}r.timer=setTimeout(()=>{if(this._modelsDevPending===r){this._modelsDevPending=null;for(let i of r.resolvers)i(this.modelsDevRegistry)}},2e4)})},changeLocale(e){if(this.locale=e,ni(e),this.currentAgent)try{this.sendWsMessage({type:"update_llm_config",agentId:this.currentAgent,config:{language:e}})}catch{}},async fetchCustomExpertRoles(){let e=Ye();try{let t={};e.token&&(t.Authorization=`Bearer ${e.token}`);let s=await fetch("/api/expert-roles/custom",{headers:t});if(s.ok){let n=await s.json();this.customExpertRoles=n.roles||[]}}catch{}},async createCustomExpertRole(e){let t=Ye();try{let s={"Content-Type":"application/json"};t.token&&(s.Authorization=`Bearer ${t.token}`);let n=await fetch("/api/expert-roles/custom",{method:"POST",headers:s,body:JSON.stringify(e)});if(n.ok){let r=await n.json();return this.customExpertRoles.push(r.role),r.role}else{let r=await n.json().catch(()=>({}));throw new Error(r.error||"Failed to create custom expert role")}}catch(s){throw s}},async updateCustomExpertRole(e,t){let s=Ye();try{let n={"Content-Type":"application/json"};s.token&&(n.Authorization=`Bearer ${s.token}`);let r=await fetch(`/api/expert-roles/custom/${e}`,{method:"PUT",headers:n,body:JSON.stringify(t)});if(r.ok){let i=await r.json(),o=this.customExpertRoles.findIndex(a=>a.id===e);return o!==-1&&(this.customExpertRoles[o]=i.role),i.role}else{let i=await r.json().catch(()=>({}));throw new Error(i.error||"Failed to update custom expert role")}}catch(n){throw n}},async deleteCustomExpertRole(e){let t=Ye();try{let s={};t.token&&(s.Authorization=`Bearer ${t.token}`);let n=await fetch(`/api/expert-roles/custom/${e}`,{method:"DELETE",headers:s});if(n.ok)return this.customExpertRoles=this.customExpertRoles.filter(r=>r.id!==e),!0;{let r=await n.json().catch(()=>({}));throw new Error(r.error||"Failed to delete custom expert role")}}catch(s){throw s}},rememberWorkbenchPanelState(e=this.activeSessionRoute,t){let s=typeof e=="string"?e:lt(e);if(!s)return!1;let n=this.workbenchPanelStateByRoute[s]||{},r=Number.isFinite(t)&&t>0?Math.round(t):n.width;return this.workbenchPanelStateByRoute={...this.workbenchPanelStateByRoute,[s]:{expanded:!!this.workbenchExpanded,maximized:!!this.workbenchExpanded&&!!this.workbenchMaximized,...Number.isFinite(r)&&r>0?{width:r}:{}}},!0},workbenchPanelWidthForRoute(e=this.activeSessionRoute){let t=typeof e=="string"?e:lt(e),s=t?this.workbenchPanelStateByRoute[t]?.width:null;return Number.isFinite(s)&&s>0?s:null},restoreWorkbenchPanelState(e=this.activeSessionRoute){let t=lt(e),s=t?this.workbenchPanelStateByRoute[t]:null;return this.workbenchExpanded=!!s?.expanded,this.workbenchMaximized=!!s?.expanded&&!!s?.maximized,!!s},openWorkbench(){this.workbenchExpanded=!0,this.activeRightPanel=null,this.closeYeaftDebugPanel(),this.rememberWorkbenchPanelState()},toggleWorkbench(){if(this.workbenchExpanded){this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.rememberWorkbenchPanelState();return}this.openWorkbench()},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},toggleSessionSidebar(){this.sessionSidebarOpen=!this.sessionSidebarOpen},closeSessionSidebar(){this.sessionSidebarOpen=!1},toggleWorkbenchMaximized(){this.workbenchMaximized=!this.workbenchMaximized,this.rememberWorkbenchPanelState()},renameChatSession(e,t,s=null){let n=t&&t.trim()?t.trim():"";n?this.customConversationTitles[e]=n:delete this.customConversationTitles[e],this.sendWsMessage({type:"update_conversation_settings",conversationId:e,...s?{agentId:s}:{},title:n})},resolveMessageFileReferences(e){let t=this.activeSessionRoute,s=t?.agentId||this.currentAgent||null,n=t?.runtimeProvider==="yeaft"?At(this,t.sessionId,s):this.currentConversation,i=lt(t)&&s&&n&&this.workbenchRouteProtocolSupported===!0&&It(this,s,"file_reference_resolution")&&It(this,s,"file_editor")&&It(this,s,"workbench_session_routes"),o=[...new Set((Array.isArray(e)?e:[]).filter(u=>typeof u=="string"&&u.trim()).map(u=>u.trim()))].slice(0,32);if(!i||o.length===0)return null;let a=this.effectiveWorkDir||"",c=t?{runtimeProvider:t.runtimeProvider,agentId:t.agentId,sessionId:t.sessionId}:null,l=`file_refs_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`;return this.sendWsMessage({type:"resolve_file_references",requestId:l,references:o,agentId:s,conversationId:n,workDir:a,workbenchRoute:c})?l:null},requestMessageImagePreview(e){let t=this.activeSessionRoute,s=t?.agentId||this.currentAgent||null,n=t?.runtimeProvider==="yeaft"?At(this,t.sessionId,s):this.currentConversation,i=lt(t)&&s&&n&&this.workbenchRouteProtocolSupported===!0&&(s===this.currentAgent?this.hasCapability("file_editor")&&this.hasCapability("workbench_session_routes")&&this.hasCapability("response_image_preview"):It(this,s,"file_editor")&&It(this,s,"workbench_session_routes")&&It(this,s,"response_image_preview")),o=typeof e=="string"?e.trim():"";if(!i||!o)return null;let a=`message_image_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`;return this.sendWsMessage({type:"read_file",requestId:a,filePath:o,responseImagePreview:!0,agentId:s,conversationId:n,workDir:this.effectiveWorkDir||"",workbenchRoute:{runtimeProvider:t.runtimeProvider,agentId:t.agentId,sessionId:t.sessionId}})?a:null},openFileInExplorer(e,{hideTree:t=!1,line:s=null}={}){let n=this.activeSessionRoute,r=n?{runtimeProvider:n.runtimeProvider,agentId:n.agentId,sessionId:n.sessionId}:null,i=lt(r),o=this.effectiveWorkDir||"",a=qs(i,o),c=r?.agentId||this.currentAgent||null,l=r?.runtimeProvider==="yeaft"?At(this,r.sessionId,c):this.currentConversation,d=this.workbenchRouteProtocolSupported===!0&&It(this,c,"file_editor")&&It(this,c,"workbench_session_routes");if(!c||!l||!d)return!1;let u=typeof e=="string"?e.trim():"";if(!u)return!1;let p=this.workbenchExpanded;this.openWorkbench(),this.workbenchMaximized=!1,this.rememberWorkbenchPanelState();let g=()=>{let f=lt(this.activeSessionRoute),v=this.effectiveWorkDir||"";f!==i||v!==o||qs(f,v)!==a||window.dispatchEvent(new CustomEvent("open-file-in-explorer",{detail:{filePath:u,agentId:c,conversationId:l,workDir:o,workbenchRoute:r,workbenchRouteKey:i,workspaceGeneration:a,hideTree:!!t,line:Number.isFinite(s)&&s>0?s:null}}))};return p?g():Vue.nextTick(g),!0},logout(){Ye().logout(),this.authenticated=!1,this.sessionKey=null,this.agents=[],this.currentAgent=null,this.currentAgentInfo=null,this.yeaftStatusByAgent={},this._yeaftRetiredCatalogEpochsByAgent={},this.conversations=[],this.activeConversations=[],this.messagesMap={},this.conversationTitles={},this.customConversationTitles={},this.processingConversations={},this.executionStatusMap={},this.workbenchExpanded=!1,this.workbenchMaximized=!1,this.workbenchPanelStateByRoute={},this.subagents={},this.activeSubagentId=null,this.activeRightPanel=null,this.pinnedSessions=[],this.clearWorkCenterBrowserState(),this.ws&&this.ws.close()}}})});function CS(e){let t=String(e||""),s=2166136261;for(let n=0;n<t.length;n++)s^=t.charCodeAt(n),s=Math.imul(s,16777619)>>>0;return s>>>0}function Vc(e){if(!e)return gn[0];let t=String(e).toLowerCase();return SS[t]||gn[CS(t)%gn.length]}function IS(e){return Vc(e).background}function AS(e){return Vc(e).foreground}function Fc(){let e=typeof window<"u"&&window.Pinia&&window.Pinia.useChatStore?window.Pinia.useChatStore():null;return e&&typeof e.locale=="string"?e.locale:typeof localStorage<"u"&&localStorage.getItem("locale")||""}function xS(e,t=""){return e?String(t||"").startsWith("zh")?e.descriptionZh||e.roleZh||e.description||e.role||"":e.description||e.role||e.descriptionZh||e.roleZh||"":""}var kS,gn,SS,q0,xs,Tr=N(()=>{({defineStore:kS}=Pinia),gn=[{key:"rat",label:"Rat",glyph:"R",background:"var(--vp-avatar-rat-bg)",foreground:"var(--vp-avatar-rat-fg)"},{key:"ox",label:"Ox",glyph:"O",background:"var(--vp-avatar-ox-bg)",foreground:"var(--vp-avatar-ox-fg)"},{key:"tiger",label:"Tiger",glyph:"T",background:"var(--vp-avatar-tiger-bg)",foreground:"var(--vp-avatar-tiger-fg)"},{key:"rabbit",label:"Rabbit",glyph:"B",background:"var(--vp-avatar-rabbit-bg)",foreground:"var(--vp-avatar-rabbit-fg)"},{key:"dragon",label:"Dragon",glyph:"D",background:"var(--vp-avatar-dragon-bg)",foreground:"var(--vp-avatar-dragon-fg)"},{key:"snake",label:"Snake",glyph:"S",background:"var(--vp-avatar-snake-bg)",foreground:"var(--vp-avatar-snake-fg)"},{key:"horse",label:"Horse",glyph:"H",background:"var(--vp-avatar-horse-bg)",foreground:"var(--vp-avatar-horse-fg)"},{key:"goat",label:"Goat",glyph:"G",background:"var(--vp-avatar-goat-bg)",foreground:"var(--vp-avatar-goat-fg)"},{key:"monkey",label:"Monkey",glyph:"M",background:"var(--vp-avatar-monkey-bg)",foreground:"var(--vp-avatar-monkey-fg)"},{key:"rooster",label:"Rooster",glyph:"K",background:"var(--vp-avatar-rooster-bg)",foreground:"var(--vp-avatar-rooster-fg)"},{key:"dog",label:"Dog",glyph:"D",background:"var(--vp-avatar-dog-bg)",foreground:"var(--vp-avatar-dog-fg)"},{key:"pig",label:"Pig",glyph:"P",background:"var(--vp-avatar-pig-bg)",foreground:"var(--vp-avatar-pig-fg)"}],SS=Object.freeze({steve:gn[8],ada:gn[3],linus:gn[0],martin:gn[4]}),q0=gn.map(e=>e.background);xs=kS("vp",{state:()=>({vps:{},vpOrder:[],emptyLibrary:!1,lastSnapshotAt:0,snapshotStatus:"idle",snapshotAgentId:null,snapshotRequestId:null,snapshotError:"",lastVpSnapshotAgentId:null,lastChange:null}),getters:{vpList(e){return e.vpOrder.map(t=>e.vps[t]).filter(Boolean)},vpCount(e){return e.vpOrder.length},vpById:e=>t=>e.vps[t]||null,vpLabel:e=>t=>{let s=e.vps[t];return s?Fc().startsWith("zh")&&s.displayNameZh?s.displayNameZh:s.displayName||s.vpId||t:t},vpDescription:e=>t=>xS(e.vps[t],Fc()),vpInitial:e=>t=>{let s=e.vps[t],n=Fc().startsWith("zh"),r=s&&(s.avatar||n&&s.displayNameZh||s.displayName||s.vpId)||t||"?";return String(r).charAt(0).toUpperCase()||"?"},vpColor:e=>t=>{let s=e.vps[t];return s&&s.color?s.color:IS(t)},vpTextColor:()=>e=>AS(e),vpAvatarMotif:()=>e=>Vc(e)},actions:{applySnapshot(e,t=null,s=null){let n=this.snapshotAgentId||null;if(n&&t&&t!==n||s&&this.snapshotRequestId&&s!==this.snapshotRequestId)return!1;let r=e&&Array.isArray(e.vps)?e.vps:[];return this._setActiveSnapshot({vps:r,emptyLibrary:!!(e&&e.emptyLibrary),agentId:t||n||null,requestId:s||this.snapshotRequestId||null,receivedAt:Date.now()}),!0},beginSnapshot(e,t){this.vps={},this.vpOrder=[],this.emptyLibrary=!1,this.lastVpSnapshotAgentId=null,this.snapshotStatus="loading",this.snapshotAgentId=e||null,this.snapshotRequestId=t||null,this.snapshotError=""},failSnapshot(e,t,s=""){return!this.snapshotRequestId||!t||t!==this.snapshotRequestId||e&&this.snapshotAgentId&&e!==this.snapshotAgentId?!1:(this.snapshotStatus="error",this.snapshotAgentId=e||this.snapshotAgentId||null,this.snapshotRequestId=t||this.snapshotRequestId||null,this.snapshotError=String(s||"VP library request failed"),!0)},_setActiveSnapshot({vps:e,emptyLibrary:t,agentId:s,requestId:n,receivedAt:r}){this.vps={},this.vpOrder=[];for(let i of e||[])this._upsertInternal(i);this.emptyLibrary=!!t,this.lastSnapshotAt=r||Date.now(),this.lastVpSnapshotAgentId=s||null,this.snapshotStatus="ready",this.snapshotAgentId=s||null,this.snapshotRequestId=n||null,this.snapshotError=""},upsert(e,t=null,s=null){return s&&this.snapshotAgentId&&s!==this.snapshotAgentId?!1:(this._upsertInternal(e),e&&e.vpId&&(this.lastChange={vpId:e.vpId,kind:"updated",reason:t||null,at:Date.now()}),!0)},remove(e,t=null,s=null){return s&&this.snapshotAgentId&&s!==this.snapshotAgentId||!e?!1:(delete this.vps[e],this.vpOrder=this.vpOrder.filter(n=>n!==e),this.lastChange={vpId:e,kind:"removed",reason:t||"file.removed",at:Date.now()},!0)},_upsertInternal(e){if(!e||!e.vpId)return;let t=!!this.vps[e.vpId];this.vps[e.vpId]={...this.vps[e.vpId]||{},...e},t||this.vpOrder.push(e.vpId),this.emptyLibrary&&(this.emptyLibrary=!1)}}})});function qc(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 ta(e){return!e||typeof e!="object"?0:qc(e.lastMessageAt)||qc(e.updatedAt)||qc(e.createdAt)||0}function Bc(e,t){let s=ta(t)-ta(e);return s!==0?s:String(e?.id||"").localeCompare(String(t?.id||""))}function Vf(e){return[...Array.isArray(e)?e:[]].sort(Bc)}var sa=N(()=>{});function qf(){try{if(typeof localStorage>"u")return{};let e=JSON.parse(localStorage.getItem(Wf)||"{}");return e&&typeof e=="object"?e:{}}catch{return{}}}function TS(e){try{typeof localStorage<"u"&&localStorage.setItem(Wf,JSON.stringify(e&&typeof e=="object"?e:{}))}catch{}}function Bf(){try{return typeof localStorage>"u"?[]:_i(JSON.parse(localStorage.getItem(Uf)||"[]"))}catch{return[]}}function MS(e){try{typeof localStorage<"u"&&localStorage.setItem(Uf,JSON.stringify(_i(e)))}catch{}}function jf(e,t){return`${e||""}${t||""}`}function Ws(e){return e&&e.agentId&&e.id?jf(e.agentId,e.id):""}function Ts(e,t){return t?e?jf(e,t):String(t):""}function PS(e){return typeof e=="string"?e:String(e||"")}function Kt(e,t,s=null){let n=PS(t);if(!n)return"";let r=Ts(s,n),i=r?e.sessions[r]:null;if(i&&(s||i.agentId||e.inventoryIdentityMode==="legacy-bare"))return r;if(s){let l=e.sessions[n];return e.inventoryIdentityMode==="legacy-bare"&&l&&!l.agentId?n:""}let o=e.sessions[n];if(o){if(o.agentId||e.inventoryIdentityMode==="legacy-bare")return n;let l=e.activeSessionKey?e.sessions[e.activeSessionKey]:null;return l?.agentId&&l.id===n?e.activeSessionKey:""}if(e.activeSessionKey&&e.sessions[e.activeSessionKey]?.id===n)return e.activeSessionKey;let a=e.sessionOrder.filter(l=>e.sessions[l]?.id===n),c=Ei();if(c?.currentAgent){let l=a.find(d=>e.sessions[d]?.agentId===c.currentAgent);if(l)return l}return a[0]||""}function Nc(e,t,s=null){return Kt(e,t,s)||""}function Hc(e){if(e.inventoryIdentityMode==="legacy-bare"){let t=e.activeSessionKey?e.sessions[e.activeSessionKey]:null,s=t&&!t.agentId?t:e.activeSessionId?e.sessions[e.activeSessionId]:null;e._retiredBareActiveSessionId=s&&!s.agentId&&s.id||null,e.sessionOrder=e.sessionOrder.filter(n=>e.sessions[n]?.agentId),e._retiredBareActiveSessionId&&(e.activeSessionId=null,e.activeSessionKey=null)}e.inventoryIdentityMode="agent-scoped"}function RS(e){let t=e._preferredExactSessionIdentity||null;if(!t)return!1;e._preferredExactSessionIdentity=null;let s=e.sessions[t.key]||null,n=Ei(),r=s?.id===t.sessionId&&s.agentId===t.agentId,i=n?.currentView!=="yeaft"||typeof n.setActiveSessionFilter=="function";if(r&&i){if(e.activeSessionId=t.sessionId,e.activeSessionKey=t.key,n?.currentView==="yeaft")n.setActiveSessionFilter(t.sessionId,{agentId:t.agentId,force:!0});else if(n){n.yeaftActiveSessionFilter=t.sessionId,n.yeaftSessionAgentById={...n.yeaftSessionAgentById||{},[t.sessionId]:t.agentId};try{localStorage.setItem("lastViewedYeaftSession",t.key)}catch{}}return!0}if(e.activeSessionId=null,e.activeSessionKey=null,n?.yeaftActiveSessionFilter===t.sessionId&&(n.yeaftActiveSessionFilter=null),n?.yeaftSessionAgentById?.[t.sessionId]===t.agentId){let o={...n.yeaftSessionAgentById};delete o[t.sessionId],n.yeaftSessionAgentById=o}try{let o=wr(localStorage.getItem("lastViewedYeaftSession")||"");o.agentId===t.agentId&&o.sessionId===t.sessionId&&localStorage.removeItem("lastViewedYeaftSession")}catch{}return!0}function na(e){let t=e._retiredBareActiveSessionId||null;if(!t)return!1;let s=Ei();if(e.inventoryIdentityMode==="legacy-bare"){let r=e.sessions[t];return e._retiredBareActiveSessionId=null,!r||r.agentId?!1:(e.activeSessionId=t,e.activeSessionKey=t,s?.currentView==="yeaft"&&typeof s.setActiveSessionFilter=="function"?s.setActiveSessionFilter(t,{force:!0}):s&&(s.yeaftActiveSessionFilter=t),!0)}let n=e.sessionOrder.filter(r=>{let i=e.sessions[r];return i?.agentId&&i.id===t});if(n.length===1){let r=n[0],i=e.activeSessionId===t&&e.activeSessionKey===r,o=e.sessions[r]?.agentId||null;return e.activeSessionId=t,e.activeSessionKey=r,i||(s?.currentView==="yeaft"&&typeof s.setActiveSessionFilter=="function"?(s.setActiveSessionFilter(t,{agentId:o,force:!0}),e._retiredBareActiveSessionId=t):s&&(s.yeaftActiveSessionFilter=t)),!0}e.activeSessionId=null,e.activeSessionKey=null,s?.yeaftActiveSessionFilter===t&&(s.yeaftActiveSessionFilter=null);try{let r=localStorage.getItem("lastViewedYeaftSession")||"";wr(r).sessionId===t&&localStorage.removeItem("lastViewedYeaftSession")}catch{}return!0}function _i(e){let t=[],s=new Set;for(let n of Array.isArray(e)?e:[]){let r=typeof n=="string"?n:String(n||"");!r||s.has(r)||(s.add(r),t.push(r))}return t}function Wc(e,t){let s=_i(e),n=new Set(s),r=_i(t).filter(o=>n.has(o)),i=new Set(r);return[...r,...s.filter(o=>!i.has(o))]}function ra(e,t=!1){return!e||typeof e!="object"?!!t:Object.prototype.hasOwnProperty.call(e,"pinned")?e.pinned===!0:Object.prototype.hasOwnProperty.call(e,"isPinned")?e.isPinned===!0:!!t}function Nf(e){return!e||typeof e!="object"?!1:e.running===!0||e.active===!0||e.isActive===!0||e.isRunning===!0}function Hf(e){if(!e||typeof e!="object")return 0;let t=e.latestActivityAt||e.lastActivityAt||e.lastMessageAt||e.updatedAt||0;if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"&&t){let s=Date.parse(t);return Number.isFinite(s)?s:0}return 0}function Ei(){try{if(typeof window<"u"&&window.Pinia&&typeof window.Pinia.useChatStore=="function")return window.Pinia.useChatStore()}catch{}return null}var Wf,Uf,_S,Kf,zf=N(()=>{sa();Ho();Wf="yeaft-session-order-by-agent",Uf="yeaft-session-order-global";({defineStore:_S}=Pinia);Kf=_S("sessions",{state:()=>({sessions:{},sessionOrder:[],activeSessionId:null,activeSessionKey:null,inventoryIdentityMode:"empty",_retiredBareActiveSessionId:null,_preferredExactSessionIdentity:null,lastSnapshotAt:0,lastCrudResult:null,pending:{}}),getters:{sessionList(e){let t=e.sessionOrder.map(d=>e.sessions[d]).filter(Boolean),s=Ei(),n=s&&Array.isArray(s.pinnedSessions)?new Set(s.pinnedSessions):new Set;for(let d of t)d&&d.id&&d.pinned&&n.add(d.id);let r=[],i=[];for(let d of t)d.pinned||!d.agentId&&n.has(d.id)?r.push(d):i.push(d);let o=d=>[...d].sort((u,p)=>{let g=Number.isFinite(u?.sortOrder)?u.sortOrder:Number.MAX_SAFE_INTEGER,f=Number.isFinite(p?.sortOrder)?p.sortOrder:Number.MAX_SAFE_INTEGER;return g!==f?g-f:Bc(u,p)}),a=[...o(r),...o(i)],c=Bf();if(c.length===0)return a;let l=new Map(c.map((d,u)=>[d,u]));return a.sort((d,u)=>{let p=l.has(Ws(d))?l.get(Ws(d)):Number.MAX_SAFE_INTEGER,g=l.has(Ws(u))?l.get(Ws(u)):Number.MAX_SAFE_INTEGER;return p!==g?p-g:0})},sessionCount(e){return e.sessionOrder.length},sessionById:e=>(t,s=null)=>{let n=Kt(e,t,s);return n&&e.sessions[n]||null},activeSession(e){return e.activeSessionKey&&e.sessions[e.activeSessionKey]||null},hasLoadedSnapshot(e){return e.lastSnapshotAt>0},isEmpty(e){return e.sessionOrder.length===0},activeNeedsInvite(e){let t=e.activeSessionKey?e.sessions[e.activeSessionKey]:null;return t?!t.defaultVpId&&(!Array.isArray(t.roster)||t.roster.length===0):!1}},actions:{applySnapshot(e,t=null,{deferActivation:s=!1}={}){let n=Array.isArray(e)?e:[],r=!1;if(t){Hc(this);let o={...this.sessions},a=new Set;for(let g of n){if(!g||!g.id)continue;let f=Ts(t,g.id);a.add(f),o[f]=this._normalize(g,t,ra(this.sessions[f]))}for(let g of this.sessionOrder){let f=this.sessions[g];f&&f.agentId===t&&!a.has(g)&&delete o[g]}let c=this.sessionOrder.filter(g=>o[g]),l=new Set(c),d=[];for(let g of n){if(!g||!g.id)continue;let f=Ts(t,g.id);o[f]&&!l.has(f)&&d.push(f)}this.sessions=o;let u=[...c,...d],p=Bf();if(p.length>0){let g=new Map(u.map(b=>[Ws(o[b]),b]).filter(([b])=>b)),f=p.map(b=>g.get(b)).filter(Boolean),v=new Set(f);u=[...f,...u.filter(b=>!v.has(b))];let h=new Map(p.map((b,m)=>[b,m]));for(let b of u){let m=Ws(o[b]);m&&h.has(m)&&(o[b]={...o[b],sortOrder:h.get(m)})}}if(t&&p.length===0){let g=qf(),f=_i(g[t]);if(f.length>0){let v=f.map(y=>Ts(t,y)),h=new Set(v),b=Wc(u.filter(y=>o[y]?.agentId===t),v),m=this.sessionOrder.some(y=>o[y]?.agentId===t),k=0;m?u=this.sessionOrder.filter(y=>o[y]).map(y=>o[y]?.agentId===t?b[k++]:y).concat(b.slice(k)):u=u.map(y=>o[y]?.agentId===t?b[k++]:y);let w=new Map(v.map((y,S)=>[y,S]));for(let y of b)o[y]&&h.has(y)&&(o[y]={...o[y],sortOrder:w.get(y)})}}this.sessionOrder=u}else{if(this.inventoryIdentityMode==="agent-scoped")return;if(Object.values(this.sessions).some(l=>l&&l.agentId)){this.inventoryIdentityMode="agent-scoped";return}let a={},c=[];for(let l of n){if(!l||!l.id)continue;let d=Ts(null,l.id);a[d]=this._normalize(l,null,ra(this.sessions[d])),c.push(d)}this.sessions=a,this.sessionOrder=c,this.inventoryIdentityMode="legacy-bare"}s||(r=RS(this)||na(this)),this.lastSnapshotAt=Date.now();let i=Ei();if(i&&t){let o={...i.yeaftSessionAgentById||{}};for(let a of n)a&&a.id&&!o[a.id]&&(o[a.id]=t);i.yeaftSessionAgentById=o}if(!s&&!r){let o=null;try{o=localStorage.getItem("lastViewedYeaftSession")||null}catch{}let c=(o?this.sessions[o]:null)?o:o?Kt(this,o,t):"",l=c?this.sessions[c]:null,d=l&&(!t||l.agentId===t),u=this.sessionOrder.filter(k=>this.sessions[k]&&(!t||this.sessions[k].agentId===t)&&this.sessions[k].running).sort((k,w)=>Hf(this.sessions[w])-Hf(this.sessions[k]))[0]||null,p=u?this.sessions[u]?.id:null,g=this.sessionList[0]||null,f=g?.id||null,v=f?Kt(this,f,g?.raw?.agentId||null):"",h=p||(d?l.id:null)||f,b=u||(d?c:"")||v||Nc(this,h,t),m=this.activeSessionKey?this.sessions[this.activeSessionKey]?.agentId:null;if(this.activeSessionId&&!Kt(this,this.activeSessionId,m)?(this.activeSessionId=h,this.activeSessionKey=b||null):!this.activeSessionId&&this.sessionOrder.length>0&&!this._retiredBareActiveSessionId?(this.activeSessionId=h,this.activeSessionKey=b||null):this.activeSessionId&&(this.activeSessionKey=Nc(this,this.activeSessionId,m)||this.activeSessionKey),i&&!this._retiredBareActiveSessionId){let k=this.activeSessionId||h,w=null;if((i.yeaftActiveSessionFilter&&!Kt(this,i.yeaftActiveSessionFilter)||!i.yeaftActiveSessionFilter&&k)&&(w=k),w){let y=Nc(this,w),S=y&&this.sessions[y]?.agentId||null;i.currentView==="yeaft"&&typeof i.setActiveSessionFilter=="function"?i.setActiveSessionFilter(w,{agentId:S,force:!0}):i.yeaftActiveSessionFilter=w,this.activeSessionKey=y||this.activeSessionKey}}}if(i&&typeof i.applyServerPinSnapshot=="function"){let o=new Set;for(let c of n){if(!c||!c.id)continue;let l=Ts(t,c.id),d=this.sessions[l];d&&d.pinned&&o.add(c.id)}let a=c=>{let l=Kt(this,c,t),d=l?this.sessions[l]:null;return d?d.agentId===t:!1};i.applyServerPinSnapshot(t,o,a)}},applyRosterChange(e,t=null){if(!e)return;let s=e.sessionId||e.groupId;if(!s)return;let n=t||e.agentId||null;if(n)Hc(this);else if(this.inventoryIdentityMode!=="legacy-bare")return;let r=Kt(this,s,n)||Ts(n,s),i=this.sessions[r];if(!i){let o=this._normalize({id:s,name:e.name||s,roster:Array.isArray(e.roster)?e.roster:[],defaultVpId:e.defaultVpId||null},n);this.sessions[r]=o,this.sessionOrder.push(r),na(this);return}this.sessions[r]={...i,name:e.name||i.name,roster:Array.isArray(e.roster)?e.roster.slice():i.roster,defaultVpId:e.defaultVpId!=null?e.defaultVpId:i.defaultVpId,announcement:typeof e.announcement=="string"?e.announcement:i.announcement},na(this)},applyCrudResult(e,t=null,{activate:s=!0}={}){if(!e)return;this.lastCrudResult={...e,at:Date.now()},e.requestId&&this.pending[e.requestId]&&delete this.pending[e.requestId];let n=e.session||e.group||null,r=t||e.agentId||n?.agentId||null;e.ok&&e.op==="list"&&Array.isArray(e.sessions)&&this.applySnapshot(e.sessions,r),e.ok&&(e.op==="create"||e.op==="copy"||e.op==="restore")&&n&&n.id&&this.applySnapshotUpsert(n,r)&&s&&this.setActive(n.id,r),e.ok&&(e.op==="rename"||e.op==="update")&&n&&n.id&&this.applySnapshotUpsert(n,r);let i=e.sessionId||e.groupId,o=this.inventoryIdentityMode==="legacy-bare",a=i&&(r||o)?Kt(this,i,r):"";if(e.ok&&(e.op==="archive"||e.op==="delete")&&i&&a&&(delete this.sessions[a],this.sessionOrder=this.sessionOrder.filter(c=>c!==a),(this.activeSessionKey===a||o&&this.activeSessionId===i)&&(this.activeSessionKey=this.sessionOrder[0]||null,this.activeSessionId=this.activeSessionKey&&this.sessions[this.activeSessionKey]?.id||null)),e.ok&&e.op==="update_config"&&i){let c=a?this.sessions[a]:null;c&&(this.sessions[a]={...c,config:e.config&&typeof e.config=="object"?{...e.config}:{}})}},applySnapshotUpsert(e,t=null){if(!e||!e.id)return"";let s=t||e.agentId||null;if(s)Hc(this);else if(this.inventoryIdentityMode!=="legacy-bare")return"";let n=Kt(this,e.id,s)||Ts(s,e.id),r=!!this.sessions[n],i=this.sessions[n]||{};return this.sessions[n]={...i,...this._normalize(e,s,ra(i))},r||this.sessionOrder.push(n),na(this),n},setActive(e,t=null){let s=Kt(this,e,t);e&&s&&this.sessions[s]?(this.activeSessionId=e,this.activeSessionKey=s,this._retiredBareActiveSessionId=null):(this.activeSessionId=null,this.activeSessionKey=null)},reorderSessionsForAgent(e,t){if(!e)return[];let s=this.sessionOrder.filter(c=>this.sessions[c]?.agentId===e),n=Wc(s,t.map(c=>Ts(e,c)));if(n.length===0)return[];let r=new Map(n.map((c,l)=>[c,l])),i=0;this.sessionOrder=this.sessionOrder.map(c=>this.sessions[c]?.agentId===e?n[i++]:c);for(let c of n)this.sessions[c]={...this.sessions[c],sortOrder:r.get(c)};let o=qf(),a=n.map(c=>this.sessions[c]?.id).filter(Boolean);return o[e]=a,TS(o),a},reorderSessionsGlobally(e){let t=this.sessionOrder.map(a=>Ws(this.sessions[a])).filter(Boolean),s=Wc(t,e);if(s.length===0)return[];let n=new Map(this.sessionOrder.map(a=>[Ws(this.sessions[a]),a]).filter(([a])=>a)),r=s.map(a=>n.get(a)).filter(Boolean),i=new Set(r);this.sessionOrder=[...r,...this.sessionOrder.filter(a=>!i.has(a))];let o=new Map(s.map((a,c)=>[a,c]));for(let a of this.sessionOrder){let c=Ws(this.sessions[a]);c&&o.has(c)&&(this.sessions[a]={...this.sessions[a],sortOrder:o.get(c)})}return MS(s),s.map(a=>{let c=n.get(a),l=c?this.sessions[c]:null;return l?{agentId:l.agentId,sessionId:l.id}:null}).filter(Boolean)},applyPinState(e,t,s=null){if(!s&&this.inventoryIdentityMode!=="legacy-bare")return;let n=Kt(this,e,s);!e||!n||!this.sessions[n]||(this.sessions[n]={...this.sessions[n],pinned:!!t})},markPending(e,t){e&&(this.pending[e]=t)},clearLastResult(){this.lastCrudResult=null},resetInventory(){this.sessions={},this.sessionOrder=[],this.activeSessionId=null,this.activeSessionKey=null,this.inventoryIdentityMode="empty",this._retiredBareActiveSessionId=null,this._preferredExactSessionIdentity=null,this.lastSnapshotAt=0},beginInventoryCommit(e=null,t=null){if(this.resetInventory(),e&&t){let s=Ts(t,e);this.activeSessionId=e,this.activeSessionKey=s,this._preferredExactSessionIdentity={sessionId:e,agentId:t,key:s}}else e&&(this._retiredBareActiveSessionId=e)},_normalize(e,t=null,s=!1){return{id:e.id,name:e.name||e.id,roster:Array.isArray(e.roster)?e.roster.slice():[],defaultVpId:e.defaultVpId||null,announcement:typeof e.announcement=="string"?e.announcement:"",config:e.config&&typeof e.config=="object"?{...e.config}:{},workDir:typeof e.workDir=="string"?e.workDir:"",createdAt:e.createdAt||null,updatedAt:e.updatedAt||null,lastMessageAt:e.lastMessageAt||null,running:Nf(e),active:Nf(e),runningVpCount:Number.isFinite(Number(e.runningVpCount))?Number(e.runningVpCount):0,latestActivityAt:e.latestActivityAt||e.lastActivityAt||e.lastMessageAt||null,agentId:t||e.agentId||null,pinned:ra(e,s),sortOrder:Number.isFinite(e.sortOrder)?e.sortOrder:null}}}})});function ia(){return globalThis.crypto?.randomUUID?.()||`browser-${Date.now()}-${Math.random().toString(16).slice(2)}`}function zt(e,t){return`${String(e||"")}\0${String(t||"")}`}function Gf(e,t,s,n){return`${zt(e,t)}\0${String(s||"")}\0${String(n||"")}`}function Uc(e,t="Browser Runtime request failed"){return e?.safeError||e?.code||t}function jc(e){return globalThis.Vue?.markRaw?.(e)||e}var ES,DS,$S,LS,OS,FS,VS,oa,Kc=N(()=>{({defineStore:ES}=Pinia),DS=3e4,$S=60*6e4,LS=2e4,OS=5e3,FS=60*6e4,VS=256;oa=ES("browser",{state:()=>({sessions:{},pending:{},peers:{},cancelledPeers:{},errors:{},errorCodes:{},peerDiagnostics:{},runtimeStatus:{},installProgress:{},protocolSupported:null,connectionEpoch:0,lastError:null,_cancelledPeerCleanupTimer:null,_messageListenerInstalled:!1}),actions:{chatStore(){return window.Pinia?.useChatStore?.()||null},installMessageListener(){if(this._messageListenerInstalled||typeof window>"u")return;this._messageListenerInstalled=!0;let e=this.chatStore();this.protocolSupported=e?.browserRuntimeProtocolSupported??null,window.addEventListener("browser-runtime-message",t=>this.handleMessage(t.detail)),window.addEventListener("browser-runtime-transport-reset",()=>this.handleTransportReset())},send(e){if(!this.chatStore()?.sendWsMessage?.(e))throw new Error("Browser Runtime transport unavailable")},beginRequest(e,t,s=DS){let n=ia();return new Promise((r,i)=>{let o=setTimeout(()=>{delete this.pending[n],i(new Error(`${e} timed out`))},s);this.pending[n]={type:e,resolve:r,reject:i,timer:o,payload:t};try{this.send({type:e,requestId:n,...t})}catch(a){clearTimeout(o),delete this.pending[n],i(a)}})},completeRequest(e,t,s=null){let n=e?this.pending[e]:null;return n?(clearTimeout(n.timer),delete this.pending[e],s?n.reject(s):n.resolve(t),!0):!1},clearCancelledPeers(){clearTimeout(this._cancelledPeerCleanupTimer),this._cancelledPeerCleanupTimer=null,this.cancelledPeers={}},pruneCancelledPeers(e=Date.now()){clearTimeout(this._cancelledPeerCleanupTimer),this._cancelledPeerCleanupTimer=null;for(let[s,n]of Object.entries(this.cancelledPeers))Number(n.expiresAt)<=e&&delete this.cancelledPeers[s];let t=Math.min(...Object.values(this.cancelledPeers).map(s=>Number(s.expiresAt)).filter(Number.isFinite));Number.isFinite(t)&&(this._cancelledPeerCleanupTimer=setTimeout(()=>this.pruneCancelledPeers(),Math.max(1,t-Date.now())))},rememberCancelledPeer(e){let t=Date.now();for(this.pruneCancelledPeers(t);Object.keys(this.cancelledPeers).length>=VS;)delete this.cancelledPeers[Object.keys(this.cancelledPeers)[0]];this.cancelledPeers[Gf(e.agentId,e.browserSessionId,e.requestId,e.connectionGeneration)]={agentId:e.agentId,browserSessionId:e.browserSessionId,requestId:e.requestId,connectionGeneration:e.connectionGeneration,expiresAt:t+FS},this.pruneCancelledPeers(t)},takeCancelledPeer(e){let t=Gf(e.agentId,e.browserSessionId,e.requestId,e.connectionGeneration),s=this.cancelledPeers[t];return!s||(delete this.cancelledPeers[t],this.pruneCancelledPeers(),Number(s.expiresAt)<=Date.now())?null:s},async getRuntimeStatus(e){let t=await this.beginRequest("browser_runtime_status",{agentId:e});return this.runtimeStatus[e]=t,t},async installRuntime(e,t){let s=await this.beginRequest("browser_runtime_install",{agentId:e,confirmedBuildId:t?.buildId,confirmedDownloadBytes:Number(t?.downloadBytes)||0},$S);return this.runtimeStatus[e]=s,delete this.installProgress[e],s},async enableRuntime(e){let t=await this.beginRequest("browser_runtime_enable",{agentId:e},6e4);return this.runtimeStatus[e]=t,t},async setupRuntime(e,t){return t?.installed?this.enableRuntime(e):this.installRuntime(e,t)},async createSession({agentId:e,sourceRef:t=null,initialUrl:s="about:blank",viewport:n=null,locale:r="en-US"}){let i=await this.beginRequest("browser_session_create",{agentId:e,sourceRef:t,options:{initialUrl:s,viewport:n||{width:1280,height:720,deviceScaleFactor:1},locale:r,capturePreference:"auto"}},45e3);return this.sessions[zt(e,i.browserSessionId)]=i,i},async listSessions(e){let t=await this.beginRequest("browser_session_list",{agentId:e}),s=new Set((t.sessions||[]).map(n=>zt(e,n.browserSessionId)));for(let n of Object.keys(this.sessions))n.startsWith(`${e}\0`)&&!s.has(n)&&delete this.sessions[n];for(let n of t.sessions||[])this.sessions[zt(e,n.browserSessionId)]={...n,agentId:e};return t.sessions||[]},async closeSession(e,t,s){await this.beginRequest("browser_session_close",{agentId:e,browserSessionId:t,expectedRevision:s})},async attach({agentId:e,browserSessionId:t,videoElement:s}){if(!s)throw new Error("Browser video element required");let n=zt(e,t);delete this.errors[n],delete this.errorCodes[n];let r=Number(this.connectionEpoch||0)+1;this.connectionEpoch=r;let i=ia(),o={localKey:n,agentId:e,browserSessionId:t,requestId:i,peerId:null,connectionGeneration:r,connection:null,videoElement:jc(s),state:"preparing",remoteState:null,pendingOffer:null,pendingCandidates:[],answerPromise:null,channels:{},controlSeq:0,pointerSeq:0,iceServerCount:null,diagnostics:{connectionState:"new",iceConnectionState:"new",iceGatheringState:"new",candidateErrors:0,lastCandidateError:null},attachTimer:null,disconnectedTimer:null};return this.peers[n]=o,this.peerDiagnostics[n]=o.diagnostics,o.attachTimer=setTimeout(()=>{if(o.attachTimer=null,this.peers[n]!==o||o.connection?.connectionState==="connected")return;let a=o.iceServerCount===0?"browser_ice_servers_missing":o.diagnostics.iceConnectionState==="failed"?"browser_ice_connection_failed":"browser_peer_attach_timeout";this.failPeer(o,new Error(a),a)},LS),this.send({type:"browser_peer_attach",agentId:e,browserSessionId:t,requestId:i,connectionGeneration:r,role:"interactive",clientCapabilities:{codecs:["video/VP8"],maxWidth:1920,maxHeight:1080,maxFps:30}}),o},async preparePeer(e,t){if(this.peers[e.localKey]!==e||e.connectionGeneration!==t.connectionGeneration)return;if(e.connection){if(e.peerId===t.peerId)return;throw new Error("Browser peer identity changed during preparation")}e.peerId=t.peerId;let s=Array.isArray(t.iceServers)?t.iceServers:[];e.iceServerCount=s.length;let n=jc(new RTCPeerConnection({iceServers:s,iceTransportPolicy:t.iceTransportPolicy==="relay"?"relay":"all"}));e.connection=n,e.diagnostics.iceConnectionState=n.iceConnectionState||"new",e.diagnostics.iceGatheringState=n.iceGatheringState||"new",e.state="prepared",n.ondatachannel=i=>{if(this.peers[e.localKey]!==e)return;let o=i.channel;if(!["browser.control.v1","browser.pointer.v1","browser.state.v1"].includes(o?.label)){o?.close?.();return}e.channels[o.label]=jc(o),o.onclose=()=>{e.channels[o.label]===o&&delete e.channels[o.label]}},n.ontrack=i=>{this.peers[e.localKey]===e&&(e.videoElement.srcObject=i.streams[0]||new MediaStream([i.track]),e.videoElement.play().catch(()=>{}))},n.onicecandidate=i=>{if(this.peers[e.localKey]===e)try{this.send({type:"browser_peer_ice_candidate",agentId:e.agentId,browserSessionId:e.browserSessionId,peerId:e.peerId,connectionGeneration:e.connectionGeneration,candidate:i.candidate?i.candidate.toJSON():null})}catch{}},n.onicecandidateerror=i=>{this.peers[e.localKey]===e&&(e.diagnostics.candidateErrors+=1,e.diagnostics.lastCandidateError={address:typeof i.address=="string"?i.address:null,port:Number(i.port)||null,url:typeof i.url=="string"?i.url:null,errorCode:Number(i.errorCode)||null,errorText:typeof i.errorText=="string"?i.errorText.slice(0,256):null})},n.oniceconnectionstatechange=()=>{this.peers[e.localKey]===e&&(e.diagnostics.iceConnectionState=n.iceConnectionState||"new")},n.onicegatheringstatechange=()=>{this.peers[e.localKey]===e&&(e.diagnostics.iceGatheringState=n.iceGatheringState||"new")},n.onconnectionstatechange=()=>{if(this.peers[e.localKey]===e){if(e.state=n.connectionState,e.diagnostics.connectionState=n.connectionState||"new",e.diagnostics.iceConnectionState=n.iceConnectionState||"new",e.diagnostics.iceGatheringState=n.iceGatheringState||"new",n.connectionState==="connected"){clearTimeout(e.attachTimer),e.attachTimer=null,clearTimeout(e.disconnectedTimer),e.disconnectedTimer=null;return}if(n.connectionState==="disconnected"){e.disconnectedTimer||(e.disconnectedTimer=setTimeout(()=>{if(e.disconnectedTimer=null,this.peers[e.localKey]!==e||n.connectionState==="connected")return;let i=e.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(e,new Error(i),i)},OS));return}if(["failed","closed"].includes(n.connectionState)){let i=e.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(e,new Error(i),i)}}};let r=e.pendingOffer;e.pendingOffer=null,r&&await this.acceptOffer(e,r)},async acceptOffer(e,t){if(!(this.peers[e.localKey]!==e||e.connectionGeneration!==Number(t.connectionGeneration))){if(!e.connection){(!e.peerId||e.peerId===t.peerId)&&(e.pendingOffer||(e.pendingOffer=t));return}if(e.peerId===t.peerId){if(e.answerPromise)return e.answerPromise;e.answerPromise=(async()=>{if(await e.connection.setRemoteDescription(t.description),await e.connection.setLocalDescription(await e.connection.createAnswer()),this.peers[e.localKey]===e){this.send({type:"browser_peer_answer",agentId:e.agentId,browserSessionId:e.browserSessionId,peerId:e.peerId,connectionGeneration:e.connectionGeneration,description:e.connection.localDescription});for(let s of e.pendingCandidates.splice(0))await e.connection.addIceCandidate(s)}})();try{await e.answerPromise}finally{e.answerPromise=null}}}},async acceptCandidate(e,t){if(!(this.peers[e.localKey]!==e||e.connectionGeneration!==Number(t.connectionGeneration)||!t.candidate)){if(!e.connection){(!e.peerId||e.peerId===t.peerId)&&e.pendingCandidates.push(t.candidate);return}e.peerId===t.peerId&&(e.connection.remoteDescription?await e.connection.addIceCandidate(t.candidate):e.pendingCandidates.push(t.candidate))}},interactiveReady(e,t){let s=this.peers[zt(e,t)];return s?.state==="connected"&&s.channels["browser.control.v1"]?.readyState==="open"&&s.channels["browser.pointer.v1"]?.readyState==="open"},sendControl(e,t,s){let n=this.peers[zt(e,t)],r=n?.channels["browser.control.v1"];return!n||n.state!=="connected"||r?.readyState!=="open"?!1:(r.send(JSON.stringify({version:1,connectionGeneration:n.connectionGeneration,controlSeq:++n.controlSeq,action:s})),!0)},sendPointer(e,t,s){let n=this.peers[zt(e,t)],r=n?.channels["browser.pointer.v1"];return!n||n.state!=="connected"||r?.readyState!=="open"?!1:(r.send(JSON.stringify({version:1,connectionGeneration:n.connectionGeneration,pointerSeq:++n.pointerSeq,action:s})),!0)},detach(e,t,{notify:s=!0}={}){let n=zt(e,t),r=this.peers[n];if(r){if(delete this.peers[n],clearTimeout(r.attachTimer),r.attachTimer=null,clearTimeout(r.disconnectedTimer),r.disconnectedTimer=null,s&&!r.peerId&&this.rememberCancelledPeer(r),s&&r.peerId)try{this.send({type:"browser_peer_detach",requestId:ia(),agentId:e,browserSessionId:t,peerId:r.peerId,connectionGeneration:r.connectionGeneration})}catch{}this.errorCodes[n]||delete this.peerDiagnostics[n];for(let i of Object.values(r.channels||{}))try{i?.close?.()}catch{}r.channels={};try{r.connection?.close()}catch{}r.videoElement&&(r.videoElement.srcObject=null)}},failPeer(e,t,s=null){this.peers[e.localKey]===e&&(this.lastError=t?.message||String(t),this.errors[e.localKey]=this.lastError,s?this.errorCodes[e.localKey]=s:delete this.errorCodes[e.localKey],this.detach(e.agentId,e.browserSessionId,{notify:!0}))},handleTransportReset(){this.protocolSupported=null,this.connectionEpoch+=1;for(let e of Object.values(this.pending))clearTimeout(e.timer),e.reject(new Error("Browser Runtime connection changed"));this.pending={};for(let e of Object.values(this.peers))this.detach(e.agentId,e.browserSessionId,{notify:!1});this.peers={},this.runtimeStatus={},this.installProgress={},this.errors={},this.errorCodes={},this.peerDiagnostics={},this.clearCancelledPeers()},handleMessage(e){if(!e?.type)return;if(e.type==="client_hello_ack"){this.protocolSupported=e.browserRuntimeProtocol===1;return}if(e.type==="auth_result"){this.protocolSupported=!1;return}if(e.type==="browser_runtime_error"){let n=new Error(Uc(e));n.code=e.code,this.completeRequest(e.requestId,null,n)||(this.lastError=n.message);return}if(e.type==="browser_runtime_install_progress"){this.installProgress[e.agentId]={downloadedBytes:Number(e.downloadedBytes)||0,totalBytes:Number(e.totalBytes)||0};return}if(e.type==="browser_runtime_status_result"){this.runtimeStatus[e.agentId]=e,this.completeRequest(e.requestId,e),e.state!=="installing"&&delete this.installProgress[e.agentId];return}if(e.type==="browser_session_error"){let n=new Error(Uc(e));n.code=e.code,this.completeRequest(e.requestId,null,n)||(this.lastError=n.message);return}if(e.type==="browser_session_created"){this.sessions[zt(e.agentId,e.browserSessionId)]=e,this.completeRequest(e.requestId,e);return}if(e.type==="browser_session_list_result"){this.completeRequest(e.requestId,e);return}if(e.type==="browser_session_snapshot"){let n=zt(e.agentId,e.browserSessionId);this.sessions[n]=e,this.completeRequest(e.requestId,e),["closed","failed"].includes(e.state)&&this.detach(e.agentId,e.browserSessionId,{notify:!1});return}let t=zt(e.agentId,e.browserSessionId),s=this.peers[t];if(!s||s.connectionGeneration!==Number(e.connectionGeneration)){if(e.type==="browser_peer_prepared"||e.type==="browser_peer_error"||e.type==="browser_peer_state"&&["failed","disconnected","closed"].includes(e.state)){let n=this.takeCancelledPeer(e);if(n&&e.type==="browser_peer_prepared")try{this.send({type:"browser_peer_detach",requestId:ia(),agentId:n.agentId,browserSessionId:n.browserSessionId,peerId:e.peerId,connectionGeneration:n.connectionGeneration})}catch{}}return}if(e.type==="browser_peer_error")this.failPeer(s,new Error(Uc(e,"Browser peer failed")),e.code||null);else if(e.type==="browser_peer_prepared")this.preparePeer(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_offer")this.acceptOffer(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_ice_candidate")this.acceptCandidate(s,e).catch(n=>this.failPeer(s,n));else if(e.type==="browser_peer_state"&&e.state&&(s.remoteState=e.state,["failed","disconnected","closed"].includes(e.state))){let n=s.iceServerCount===0?"browser_ice_servers_missing":"browser_ice_connection_failed";this.failPeer(s,new Error(n),n)}}}})});function aa(){try{if(window.Pinia&&typeof window.Pinia.useAuthStore=="function")return window.Pinia.useAuthStore()}catch{}return null}function zc(){try{return localStorage.getItem("authToken")||null}catch{return null}}function Xf(){let e=aa();if(e)try{return e.getActiveToken?.()||e.token||zc()}catch{return e.token||zc()}return zc()}function BS(e,t){if(!e)return!1;let s=Xf();if(s&&s!==t)return!1;try{localStorage.setItem("authToken",e)}catch{}let n=aa();return n&&(n.token=e),!0}function NS(e){try{let t=typeof e=="string"?e:e?.url;return!t||typeof window>"u"||!window.location?null:new URL(t,window.location.href)}catch{return null}}function Qf(e){return!e||typeof window>"u"||!window.location?!1:e.origin===window.location.origin&&e.pathname.startsWith("/api/")}function HS(e){if(!e)return!1;let t=e.pathname;return!!(qS.has(t)||t.startsWith("/api/auth/sso/poll/")||/^\/api\/auth\/sso\/[^/]+\/start(?:-qr)?$/.test(t))}function WS(e,t){return t?.headers?new Headers(t.headers):e&&typeof e=="object"&&e.headers?new Headers(e.headers):new Headers}function US(e){let t=e.get("Authorization");return!t||!t.startsWith("Bearer ")?null:t.slice(7)}function jS(e,t){return{...e||{},headers:t}}function KS(e,t,s,n){let r=aa();r&&typeof r.handleAuthResponse=="function"?r.handleAuthResponse(e,t,s,n):r&&typeof r.handleAuthFailure=="function"&&n&&r.handleAuthFailure(void 0,t,s)}function Zf(){if(Yf||typeof window>"u"||!window.fetch)return;Yf=!0;let e=window.fetch.bind(window);window.fetch=async function(s,n){let r=NS(s),i=Qf(r)&&!HS(r),o=Qf(r)?{...n||{},credentials:"same-origin"}:n,a=null,c=i?aa():null,l=c?.authGeneration,d=!!c?.isAuthenticated;if(i){let p=WS(s,n);a=US(p),a||(a=Xf(),a&&(p.set("Authorization",`Bearer ${a}`),o=jS(o,p)))}let u=await e(s,o);try{let p=u.headers&&u.headers.get&&u.headers.get("X-New-Token");p&&BS(p,a),i&&u.status===401&&KS(u,a,l,d)}catch{}return u}}var Yf,qS,Jf=N(()=>{Yf=!1,qS=new Set(["/api/auth/mode","/api/auth/login","/api/auth/aad","/api/auth/verify","/api/auth/verify-totp","/api/auth/setup-totp","/api/auth/register","/api/auth/password-reset/request","/api/auth/password-reset/verify"])});var eh,th,Gc=N(()=>{eh={"quickSend.title":"Quick send","quickSend.description":"Add up to 5 send buttons for this Agent. Each sends your current message with its model and optional turn overrides.","quickSend.empty":"No quick sends configured. No extra send buttons are shown.","quickSend.offline":"This Agent is offline. Reconnect to load or save quick sends.","quickSend.entry":"Quick send {index}","quickSend.name":"Button name","quickSend.model":"Model","quickSend.chooseModel":"Choose a model","quickSend.noModels":"Configure models in the LLM category first.","quickSend.effort":"Reasoning effort","quickSend.maxOutputTokens":"Maximum output tokens","quickSend.default":"Default","quickSend.outputLimit":"Leave blank to use the model default: {max} tokens (also the maximum).","quickSend.add":"Add quick send","quickSend.remove":"Remove","quickSend.limit":"Maximum 5 quick sends.","quickSend.nameRequired":"Enter a button name (1\u201380 characters).","quickSend.modelRequired":"Choose an available model for each quick send.","quickSend.effortInvalid":"The selected effort is not available for this model.","quickSend.outputInvalid":"Output tokens must be a positive integer no greater than {max}.","quickSend.loadFailed":"Could not load quick sends. Refresh to retry.","quickSend.saveFailed":"Save was not confirmed. Refresh to check the saved configuration before retrying.","quickSend.saved":"Quick sends saved.","quickSend.savedRefreshWarning":"Quick sends saved, but runtime refresh failed: {error}"},th={"quickSend.title":"\u5FEB\u6377\u53D1\u9001","quickSend.description":"\u4E3A\u6B64 Agent \u6DFB\u52A0\u6700\u591A 5 \u4E2A\u53D1\u9001\u6309\u94AE\u3002\u4F7F\u7528\u6307\u5B9A\u6A21\u578B\u548C\u53EF\u9009\u7684\u5355\u8F6E\u53C2\u6570\u53D1\u9001\u5F53\u524D\u6D88\u606F\u3002","quickSend.empty":"\u5C1A\u672A\u914D\u7F6E\u5FEB\u6377\u53D1\u9001\uFF0C\u4E0D\u4F1A\u663E\u793A\u989D\u5916\u7684\u53D1\u9001\u6309\u94AE\u3002","quickSend.offline":"\u6B64 Agent \u5DF2\u79BB\u7EBF\u3002\u91CD\u65B0\u8FDE\u63A5\u540E\u53EF\u52A0\u8F7D\u6216\u4FDD\u5B58\u5FEB\u6377\u53D1\u9001\u3002","quickSend.entry":"\u5FEB\u6377\u53D1\u9001 {index}","quickSend.name":"\u6309\u94AE\u540D\u79F0","quickSend.model":"\u6A21\u578B","quickSend.chooseModel":"\u9009\u62E9\u6A21\u578B","quickSend.noModels":"\u8BF7\u5148\u5728\u6A21\u578B\u914D\u7F6E\u5206\u7C7B\u4E2D\u6DFB\u52A0\u6A21\u578B\u3002","quickSend.effort":"\u63A8\u7406\u5F3A\u5EA6","quickSend.maxOutputTokens":"\u6700\u5927\u8F93\u51FA Token \u6570","quickSend.default":"\u9ED8\u8BA4","quickSend.outputLimit":"\u7559\u7A7A\u4F7F\u7528\u6A21\u578B\u9ED8\u8BA4\u503C\uFF1A{max} Token\uFF08\u4E5F\u662F\u53EF\u8BBE\u7F6E\u7684\u4E0A\u9650\uFF09\u3002","quickSend.add":"\u6DFB\u52A0\u5FEB\u6377\u53D1\u9001","quickSend.remove":"\u5220\u9664","quickSend.limit":"\u6700\u591A\u6DFB\u52A0 5 \u4E2A\u5FEB\u6377\u53D1\u9001\u3002","quickSend.nameRequired":"\u8BF7\u8F93\u5165\u6309\u94AE\u540D\u79F0\uFF081\u201380 \u4E2A\u5B57\u7B26\uFF09\u3002","quickSend.modelRequired":"\u8BF7\u4E3A\u6BCF\u4E2A\u5FEB\u6377\u53D1\u9001\u9009\u62E9\u53EF\u7528\u6A21\u578B\u3002","quickSend.effortInvalid":"\u6B64\u6A21\u578B\u4E0D\u652F\u6301\u6240\u9009\u63A8\u7406\u5F3A\u5EA6\u3002","quickSend.outputInvalid":"\u8F93\u51FA Token \u6570\u5FC5\u987B\u4E3A\u4E0D\u8D85\u8FC7 {max} \u7684\u6B63\u6574\u6570\u3002","quickSend.loadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5FEB\u6377\u53D1\u9001\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5\u3002","quickSend.saveFailed":"\u5C1A\u672A\u786E\u8BA4\u4FDD\u5B58\u3002\u8BF7\u5148\u5237\u65B0\u68C0\u67E5\u5DF2\u4FDD\u5B58\u7684\u914D\u7F6E\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002","quickSend.saved":"\u5FEB\u6377\u53D1\u9001\u5DF2\u4FDD\u5B58\u3002","quickSend.savedRefreshWarning":"\u5FEB\u6377\u53D1\u9001\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u8FD0\u884C\u65F6\u5237\u65B0\u5931\u8D25\uFF1A{error}"}});var sh,nh,Yc=N(()=>{sh={"userShortcuts.title":"Keyboard shortcuts","userShortcuts.scope":"These are your user preferences, stored only in this browser for this account. They do not sync across devices.","userShortcuts.quickSendHelp":"Quick-send shortcuts are active automatically when presets are configured in Agent settings. They only work while the message composer is focused; clear an individual binding to disable it.","userShortcuts.help":"Shortcuts use simple Alt + key defaults. Click a binding to replace it, or clear it to disable the action. Escape cancels; Tab moves on. Global actions stay available while the message composer is focused, and never run in dialogs, other text fields, editors or terminals.","userShortcuts.suggestion":"Suggestion: {binding}","userShortcuts.recording":"Press a shortcut\u2026","userShortcuts.unbound":"Not bound","userShortcuts.clear":"Clear","userShortcuts.clearAction":"Clear shortcut for {action}","userShortcuts.reset":"Reset shortcuts","userShortcuts.action.terminal":"Open terminal","userShortcuts.action.files":"Open files","userShortcuts.action.git":"Open Git","userShortcuts.action.newSession":"New session","userShortcuts.action.closeWorkbench":"Close workbench","userShortcuts.action.quickSend1":"Quick send 1","userShortcuts.action.quickSend2":"Quick send 2","userShortcuts.action.quickSend3":"Quick send 3","userShortcuts.action.quickSend4":"Quick send 4","userShortcuts.action.quickSend5":"Quick send 5","userShortcuts.error.invalid":"Use Ctrl, Meta or Alt with a letter or number; Shift is optional.","userShortcuts.error.reserved":"This combination conflicts with a browser or existing app shortcut.","userShortcuts.error.conflict":"This shortcut is already assigned to {action}. Clear it there first.","userShortcuts.error.storage":"Could not save preferences in this browser. Check browser storage permissions.","userShortcuts.error.unauthenticated":"Sign in before saving your shortcuts."},nh={"userShortcuts.title":"\u952E\u76D8\u5FEB\u6377\u952E","userShortcuts.scope":"\u8FD9\u662F\u4F60\u7684\u7528\u6237\u504F\u597D\uFF0C\u6309\u5F53\u524D\u8D26\u53F7\u4EC5\u4FDD\u5B58\u5728\u6B64\u6D4F\u89C8\u5668\u4E2D\uFF0C\u4E0D\u8DE8\u8BBE\u5907\u540C\u6B65\u3002","userShortcuts.quickSendHelp":"\u5728 Agent \u8BBE\u7F6E\u4E2D\u914D\u7F6E\u5FEB\u6377\u53D1\u9001\u540E\uFF0C\u5FEB\u6377\u952E\u4F1A\u81EA\u52A8\u751F\u6548\uFF1B\u4EC5\u5728\u6D88\u606F\u8F93\u5165\u6846\u83B7\u5F97\u7126\u70B9\u65F6\u89E6\u53D1\u3002\u6E05\u9664\u5355\u9879\u7ED1\u5B9A\u5373\u53EF\u505C\u7528\u5BF9\u5E94\u5FEB\u6377\u952E\u3002","userShortcuts.help":"\u9ED8\u8BA4\u4F7F\u7528\u7B80\u5355\u7684 Alt + \u5355\u952E\u3002\u70B9\u51FB\u7ED1\u5B9A\u6309\u94AE\u53EF\u66FF\u6362\uFF0C\u6E05\u9664\u540E\u53EF\u505C\u7528\u8BE5\u64CD\u4F5C\u3002Escape \u53D6\u6D88\uFF0CTab \u79FB\u81F3\u4E0B\u4E00\u9879\u3002\u6D88\u606F\u8F93\u5165\u6846\u83B7\u5F97\u7126\u70B9\u65F6\u4ECD\u53EF\u4F7F\u7528\u5168\u5C40\u52A8\u4F5C\uFF1B\u5F39\u7A97\u3001\u5176\u4ED6\u8F93\u5165\u6846\u3001\u7F16\u8F91\u5668\u4E0E\u7EC8\u7AEF\u4E2D\u7684\u6309\u952E\u4E0D\u4F1A\u88AB\u62A2\u5360\u3002","userShortcuts.suggestion":"\u63A8\u8350\uFF1A{binding}","userShortcuts.recording":"\u8BF7\u6309\u4E0B\u7EC4\u5408\u952E\u2026","userShortcuts.unbound":"\u672A\u7ED1\u5B9A","userShortcuts.clear":"\u6E05\u9664","userShortcuts.clearAction":"\u6E05\u9664\u201C{action}\u201D\u5FEB\u6377\u952E","userShortcuts.reset":"\u91CD\u7F6E\u5FEB\u6377\u952E","userShortcuts.action.terminal":"\u6253\u5F00\u7EC8\u7AEF","userShortcuts.action.files":"\u6253\u5F00\u6587\u4EF6","userShortcuts.action.git":"\u6253\u5F00 Git","userShortcuts.action.newSession":"\u65B0\u5EFA\u4F1A\u8BDD","userShortcuts.action.closeWorkbench":"\u5173\u95ED\u5DE5\u4F5C\u53F0","userShortcuts.action.quickSend1":"\u5FEB\u6377\u53D1\u9001 1","userShortcuts.action.quickSend2":"\u5FEB\u6377\u53D1\u9001 2","userShortcuts.action.quickSend3":"\u5FEB\u6377\u53D1\u9001 3","userShortcuts.action.quickSend4":"\u5FEB\u6377\u53D1\u9001 4","userShortcuts.action.quickSend5":"\u5FEB\u6377\u53D1\u9001 5","userShortcuts.error.invalid":"\u8BF7\u4F7F\u7528 Ctrl\u3001Meta \u6216 Alt \u642D\u914D\u5B57\u6BCD\u6216\u6570\u5B57\uFF0C\u53EF\u52A0 Shift\u3002","userShortcuts.error.reserved":"\u8BE5\u7EC4\u5408\u4E0E\u6D4F\u89C8\u5668\u6216\u5E94\u7528\u5DF2\u6709\u5FEB\u6377\u952E\u51B2\u7A81\u3002","userShortcuts.error.conflict":"\u8BE5\u7EC4\u5408\u5DF2\u7ED1\u5B9A\u201C{action}\u201D\uFF0C\u8BF7\u5148\u6E05\u9664\u539F\u7ED1\u5B9A\u3002","userShortcuts.error.storage":"\u65E0\u6CD5\u5728\u6B64\u6D4F\u89C8\u5668\u4FDD\u5B58\u504F\u597D\uFF0C\u8BF7\u68C0\u67E5\u6D4F\u89C8\u5668\u5B58\u50A8\u6743\u9650\u3002","userShortcuts.error.unauthenticated":"\u8BF7\u5148\u767B\u5F55\u518D\u4FDD\u5B58\u5FEB\u6377\u952E\u3002"}});var rh,ih=N(()=>{Gc();Yc();rh={"person.settings":"\u914D\u7F6E","person.modelCandidates":"\u6A21\u578B\u5019\u9009","person.modelCandidatesHint":"\u6700\u591A\u9009\u62E9 8 \u4E2A\u5DF2\u914D\u7F6E\u7684\u6A21\u578B\u4F9B\u6570\u5B57\u4EBA\u4F7F\u7528\u3002\u4FEE\u6539\u5019\u9009\u4E0D\u4F1A\u542F\u52A8\u601D\u8003\u3002","person.modelsDefault":"\u6CBF\u7528 Agent \u9ED8\u8BA4\u6A21\u578B\u8303\u56F4","person.modelUnavailable":"\u4E0D\u53EF\u7528\uFF0C\u53EF\u53D6\u6D88\u9009\u62E9\u540E\u4FDD\u5B58\u5176\u4ED6\u5019\u9009","person.modelsEmpty":"\u8BF7\u5148\u5728 Agent \u4E0A\u914D\u7F6E\u539F\u751F API \u6A21\u578B\u3002","person.modelsInvalid":"\u8BF7\u9009\u62E9 1\u20138 \u4E2A\u5F53\u524D\u5DF2\u914D\u7F6E\u7684\u6A21\u578B\uFF0C\u6216\u6CBF\u7528 Agent \u9ED8\u8BA4\u8303\u56F4\u3002","person.modelsScope":"\u53EA\u4FDD\u5B58\u5728\u5F53\u524D Agent \u4E0A\u5C5E\u4E8E\u4F60\u7684\u6570\u5B57\u4EBA\uFF0C\u4E0D\u4FEE\u6539\u51ED\u636E\u6216 Agent \u9ED8\u8BA4\u914D\u7F6E\u3002","person.settingsSaving":"\u6B63\u5728\u4FDD\u5B58\u2026","person.uploadFiles":"\u6587\u4EF6","person.attachedFiles":"\u9644\u52A0\u6587\u4EF6","person.filesUploading":"\u6B63\u5728\u4E0A\u4F20\u2026","person.filesRetry":"\u91CD\u8BD5\u4E0A\u4F20","person.filesRemove":"\u79FB\u9664\u6587\u4EF6","person.filesLimit":"\u6700\u591A 4 \u4E2A\u6587\u4EF6\uFF0C\u6BCF\u4E2A\u4E0D\u8D85\u8FC7 5 MiB\uFF0C\u603B\u8BA1\u4E0D\u8D85\u8FC7 10 MiB\u3002\u6587\u672C\u6587\u4EF6\u4E0E\u6D88\u606F\u5408\u8BA1\u4E0D\u8D85\u8FC7 24 KiB\u3002","person.filesUnsupported":"\u652F\u6301 UTF-8 \u6587\u672C\u3001\u4EE3\u7801\u3001JSON\u3001CSV \u548C PNG/JPEG/WebP/GIF \u56FE\u7247\uFF0C\u6682\u4E0D\u652F\u6301 PDF \u7B49\u5176\u4ED6\u4E8C\u8FDB\u5236\u6587\u4EF6\u3002","person.filesFailed":"\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u79FB\u9664\u6587\u4EF6\u540E\u518D\u53D1\u9001\u3002","person.name":"\u540D\u5B57","person.renameUpgrade":"\u5F53\u524D Agent \u5C1A\u4E0D\u652F\u6301\u4FEE\u6539\u540D\u5B57\uFF0C\u8BF7\u5347\u7EA7 Agent \u540E\u518D\u4FEE\u6539\u3002","person.nameInvalid":"\u8BF7\u8F93\u5165\u540D\u5B57\uFF08\u6700\u591A 160 UTF-8 \u5B57\u8282\uFF09\u3002","person.inside":"\u6570\u5B57\u4EBA\u5185\u6838","person.overview":"\u6982\u89C8","person.memory":"\u8BB0\u5FC6","person.skills":"\u6280\u80FD\u4E0E\u80FD\u529B","person.searchMessages":"\u641C\u7D22\u6D88\u606F","person.search":"\u641C\u7D22","person.noSearchResults":"\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u6D88\u606F\u3002","person.you":"\u4F60","person.currentUnderstanding":"\u5F53\u524D\u8BA4\u8BC6","person.createdAt":"\u521B\u5EFA\u65F6\u95F4","person.revision":"\u7248\u672C","person.knowledgeEmpty":"\u8FD8\u6CA1\u6709\u8BB0\u5F55\u3002","person.memoryScope":"\u6309\u7C7B\u578B\u67E5\u770B\u5DF2\u4FDD\u5B58\u7684\u8BA4\u8BC6\u3002","person.skillsScope":"\u8FD9\u4E2A\u6570\u5B57\u4EBA\u7684\u5185\u7F6E\u4E0E\u81EA\u5EFA\u80FD\u529B\u3002","person.epistemicState":"\u8BA4\u8BC6\u72B6\u6001","person.sources":"\u6765\u6E90","person.associations":"\u5173\u8054","person.useWhen":"\u9002\u7528\u573A\u666F","person.avoidWhen":"\u4E0D\u9002\u7528\u573A\u666F","person.contract":"\u5408\u540C\u4E0E\u5B9A\u4E49","person.loadMore":"\u52A0\u8F7D\u66F4\u591A","person.group.claim":"\u89C2\u70B9","person.group.question":"\u95EE\u9898","person.group.method":"\u65B9\u6CD5","person.group.self-model":"\u81EA\u6211\u8BA4\u8BC6","person.group.scenario":"\u8BBE\u60F3","person.group.interest":"\u5174\u8DA3","person.group.cognition":"\u601D\u8003","person.group.memory":"\u53EC\u56DE","person.group.creation":"\u521B\u9020","person.group.script":"\u81EA\u5EFA\u811A\u672C","person.group.filesystem":"\u6587\u4EF6\u4E0E\u76EE\u5F55","person.group.git":"Git","person.group.shell":"\u547D\u4EE4\u6267\u884C","person.group.network":"\u7F51\u9875","person.group.native-skill":"\u6280\u80FD\u5E93","person.epistemic.reported":"\u6765\u81EA\u9648\u8FF0 \xB7 \u672A\u72EC\u7ACB\u9A8C\u8BC1","person.epistemic.hypothesis":"\u5047\u8BBE","person.epistemic.imagined":"\u60F3\u8C61","person.epistemic.uncertain":"\u4E0D\u786E\u5B9A","person.title":"\u6570\u5B57\u4EBA","person.navigation":"\u5168\u5C40\u5BFC\u822A","person.plugins":"\u63D2\u4EF6","person.agent":"Agent","person.noAgent":"\u8BF7\u5148\u8FDE\u63A5\u4E00\u4E2A Agent \u4EE5\u4F7F\u7528\u6570\u5B57\u4EBA\u3002","person.offlineShort":"\u79BB\u7EBF","person.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00\u3002\u91CD\u8FDE\u540E\u5C06\u5237\u65B0\u6570\u5B57\u4EBA\uFF1B\u547D\u4EE4\u4E0D\u4F1A\u81EA\u52A8\u91CD\u53D1\u3002","person.offline":"\u6B64 Agent \u5DF2\u79BB\u7EBF\uFF0C\u91CD\u65B0\u8FDE\u63A5\u540E\u5C06\u5237\u65B0\u5176\u6570\u5B57\u4EBA\u3002","person.disabled":"\u8BF7\u5728 Agent \u8BBE\u7F6E\u4E2D\u542F\u7528\u6B64 Agent \u7684\u6570\u5B57\u4EBA\u3002","person.unsupported":"\u6B64 Agent \u5C1A\u672A\u63D0\u4F9B digital_person \u80FD\u529B\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5347\u7EA7\uFF1BSession \u5BF9\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002","person.loading":"\u52A0\u8F7D\u4E2D\u2026","person.busy":"\u5904\u7406\u4E2D\u2026","person.activity.confirming":"\u6B63\u5728\u786E\u8BA4\u4F60\u7684\u8BF7\u6C42\u2026","person.activity.preparing":"\u6B63\u5728\u51C6\u5907\u56DE\u5E94\u2026","person.activity.thinking":"\u6B63\u5728\u601D\u8003\u2026","person.activity.dreaming":"\u6B63\u5728\u9050\u60F3\u8BB0\u5FC6\u4E0E\u53EF\u80FD\u6027\u2026","person.activity.recalling":"\u6B63\u5728\u67E5\u627E\u76F8\u5173\u8BB0\u5FC6\u2026","person.activity.searchingSkills":"\u6B63\u5728\u5BFB\u627E\u5408\u9002\u7684\u6280\u80FD\u2026","person.activity.readingSkill":"\u6B63\u5728\u9605\u8BFB\u6280\u80FD\u2026","person.activity.readingMethod":"\u6B63\u5728\u67E5\u770B\u601D\u8003\u65B9\u6CD5\u2026","person.activity.validatingCapability":"\u6B63\u5728\u9A8C\u8BC1\u65B0\u80FD\u529B\u2026","person.activity.runningScript":"\u6B63\u5728\u8FD0\u884C\u811A\u672C\u2026","person.activity.usingCapability":"\u6B63\u5728\u4F7F\u7528\u80FD\u529B\u2026","person.activity.processingResponse":"\u6B63\u5728\u5904\u7406\u56DE\u5E94\u2026","person.activity.stopping":"\u6B63\u5728\u505C\u6B62\u8FD9\u4E00\u8F6E\u2026","person.activity.completed":"\u672C\u6B21\u6D3B\u52A8\u5DF2\u5B8C\u6210","person.activity.failed":"\u672C\u6B21\u6D3B\u52A8\u672A\u80FD\u5B8C\u6210","person.activity.cancelled":"\u8FD9\u4E00\u8F6E\u5DF2\u53D6\u6D88","person.activity.interrupted":"\u8FD9\u4E00\u8F6E\u5DF2\u4E2D\u65AD","person.activity.budgetExhausted":"\u8FD9\u4E00\u8F6E\u5DF2\u8FBE\u5230\u6267\u884C\u4E0A\u9650","person.activity.stale":"\u6B63\u5728\u7B49\u5F85\u66F4\u65B0\uFF0C\u8FDB\u5C55\u6682\u4E0D\u660E\u786E","person.activity.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00\uFF0C\u6682\u65F6\u65E0\u6CD5\u786E\u8BA4\u8FDB\u5C55","person.activity.uncertain":"\u8BF7\u6C42\u5C1A\u672A\u786E\u8BA4\uFF0C\u8FDB\u5C55\u6682\u4E0D\u660E\u786E","person.activity.model":"\u601D\u8003","person.activity.recall":"\u67E5\u627E\u8BB0\u5FC6","person.activity.skillSearch":"\u5BFB\u627E\u6280\u80FD","person.activity.skillRead":"\u9605\u8BFB\u6280\u80FD","person.activity.methodRead":"\u67E5\u770B\u601D\u8003\u65B9\u6CD5","person.activity.capabilityCreate":"\u9A8C\u8BC1\u80FD\u529B","person.activity.script":"\u8FD0\u884C\u811A\u672C","person.activity.capability":"\u4F7F\u7528\u80FD\u529B","person.activity.details":"\u6D3B\u52A8\u8BE6\u60C5","person.activity.limited":"\u4EC5\u663E\u793A\u6700\u8FD1\u7684\u6D3B\u52A8\uFF0C\u8F83\u65E9\u6B65\u9AA4\u53EF\u80FD\u672A\u5305\u542B\u3002","person.activity.elapsed":"\u8017\u65F6 {duration}","person.activity.durationSeconds":"{seconds} \u79D2","person.activity.durationMinutes":"{minutes} \u5206 {seconds} \u79D2","person.activity.status.running":"\u8FDB\u884C\u4E2D","person.activity.status.completed":"\u5DF2\u5B8C\u6210","person.activity.status.failed":"\u5931\u8D25","person.activity.status.cancelled":"\u5DF2\u53D6\u6D88","person.activity.status.interrupted":"\u5DF2\u4E2D\u65AD","person.activity.status.unknown":"\u672A\u77E5","person.ready":"\u7B49\u5F85\u4F60\u53D1\u8D77","person.manualMode":"\u624B\u52A8\u6A21\u5F0F","person.manualHint":"\u53D1\u9001\u6D88\u606F\u6216\u70B9\u51FB\u201C\u601D\u8003 / \u9050\u60F3\u201D\u624D\u4F1A\u5F00\u59CB\u4E00\u8F6E\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u601D\u8003\uFF0C\u8FD0\u884C\u4E2D\u53EF\u53D6\u6D88\u3002","person.version":"\u72B6\u6001 v{version}","person.cancelling":"\u6B63\u5728\u53D6\u6D88\u2026","person.configureTitle":"\u5728\u6B64 Agent \u4E0A\u914D\u7F6E\u6570\u5B57\u4EBA","person.configureAgent":"\u8BB0\u5FC6\u9ED8\u8BA4\u4F7F\u7528\u672C\u5730 SQLite\uFF0C\u65E0\u9700\u6570\u636E\u5E93\u670D\u52A1\u3002\u8BF7\u4E3A\u6B64 Agent \u5B9E\u4F8B\u914D\u7F6E\u539F\u751F\u6A21\u578B\uFF1B\u4E0D\u53EF\u7528\u65F6\u68C0\u67E5\u5B9E\u4F8B\u5B58\u50A8\u6743\u9650\u4E0E\u6A21\u578B\u914D\u7F6E\u3002\u5DF2\u6709 MongoDB \u90E8\u7F72\u7EE7\u7EED\u4F7F\u7528\u539F\u6570\u636E\u5E93\u3002","person.configureSecrets":"Provider \u5BC6\u94A5\u4E0E\u53EF\u9009\u6570\u636E\u5E93\u51ED\u636E\u4EC5\u4FDD\u7559\u5728 Agent \u673A\u5668\u4E0A\u3002\u4E0D\u8981\u5C06\u51ED\u636E\u7C98\u8D34\u5230\u5BF9\u8BDD\u6216\u601D\u8003\u8BB0\u5F55\u3002","person.configureRefresh":"\u7BA1\u7406\u5458\u5E94\u7528\u914D\u7F6E\u540E\uFF08\u5982\u9700\u8981\uFF0C\u7531\u7BA1\u7406\u5458\u91CD\u542F Agent\uFF09\uFF0C\u70B9\u51FB\u5237\u65B0\u3002\u6B64\u9875\u9762\u4E0D\u4F1A\u91CD\u542F\u670D\u52A1\u6216\u521B\u5EFA\u66FF\u4EE3 Session\u3002","person.requestFailed":"\u8BF7\u6C42\u5931\u8D25\u3002","person.timeout":"\u54CD\u5E94\u8D85\u65F6\uFF1B\u64CD\u4F5C\u53EF\u80FD\u4ECD\u5728\u8FDB\u884C\u3002\u8BF7\u5148\u5237\u65B0\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002","person.uncertain":"\u6709\u4E00\u6761\u547D\u4EE4\u5C1A\u672A\u5F97\u5230\u786E\u8BA4\u3002\u8BF7\u5148\u68C0\u67E5\u5237\u65B0\u540E\u7684\u5BF9\u8BDD\u548C\u601D\u8003\u8BB0\u5F55\uFF0C\u518D\u91CD\u8BD5\u6216\u5F00\u59CB\u65B0\u547D\u4EE4\u3002","person.retrySame":"\u4EE5\u76F8\u540C\u547D\u4EE4 ID \u91CD\u8BD5","person.discardRetry":"\u653E\u5F03\u91CD\u8BD5\uFF08\u4E0D\u4F1A\u53D6\u6D88\u6267\u884C\uFF09","person.conversation":"\u6570\u5B57\u4EBA\u5BF9\u8BDD","person.messages":"\u5BF9\u8BDD\u6D88\u606F","person.olderMessages":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","person.empty":"\u8BF4\u8BF4\u4F60\u6B63\u5728\u5173\u6CE8\u7684\u4E8B\uFF0C\u6216\u8BA9\u4E00\u4E2A\u5FF5\u5934\u6162\u6162\u5C55\u5F00\u3002","person.system":"\u7CFB\u7EDF","person.input":"\u6D88\u606F\u6216\u601D\u8003\u4E3B\u9898","person.placeholder":"\u8F93\u5165\u6D88\u606F\u2026","person.thinkHint":"\u601D\u8003\uFF1A\u56F4\u7ED5\u4E0A\u65B9\u53EF\u9009\u4E3B\u9898\u8FDB\u884C\u56DE\u5FC6\u3001\u53CD\u601D\u548C\u8054\u60F3\u3002\u9050\u60F3\u65E0\u9700\u4E3B\u9898\uFF0C\u63A2\u7D22\u8BB0\u5FC6\u4E0E\u53EF\u80FD\u6027\u3002","person.dream":"\u9050\u60F3","person.think":"\u601D\u8003","person.send":"\u53D1\u9001","person.more":"\u66F4\u591A","person.views":"\u6570\u5B57\u4EBA\u89C6\u56FE","person.chat":"\u5BF9\u8BDD","person.thoughts":"\u601D\u8003\u8BB0\u5F55","person.debug":"\u8C03\u8BD5\u65E5\u5FD7","person.back":"\u8FD4\u56DE","person.welcome":"\u804A\u804A\u8FD1\u51B5\uFF0C\u60F3\u60F3\u65B0\u95EE\u9898","person.thoughtsHint":"\u67E5\u770B\u6BCF\u6B21\u6D3B\u52A8\u7684\u8F93\u5165\u3001\u56DE\u5FC6\u3001\u60F3\u6CD5\u3001\u81EA\u5224\u4E0E\u8F93\u51FA\u3002","person.recordsStale":"\u53EF\u80FD\u6709\u65B0\u8BB0\u5F55\uFF0C\u5237\u65B0\u53EF\u8FD4\u56DE\u6700\u65B0\u4E00\u9875\u3002","person.olderThoughts":"\u52A0\u8F7D\u66F4\u65E9\u7684\u601D\u8003","person.noThoughts":"\u672C\u9875\u6682\u65E0\u53EF\u8BFB\u7684\u601D\u8003\u8BB0\u5F55\u3002\u53EF\u52A0\u8F7D\u66F4\u65E9\u8BB0\u5F55\uFF0C\u6216\u5F00\u59CB\u5BF9\u8BDD\u3001\u601D\u8003\u4E0E\u9050\u60F3\u3002","person.debugHint":"\u6280\u672F\u6392\u67E5\uFF1A\u539F\u59CB\u4E8B\u4EF6\u3001\u6A21\u578B\u8BF7\u6C42\u548C\u72B6\u6001\u7248\u672C\u3002\u60F3\u6CD5\u6B63\u6587\u8BF7\u5728\u201C\u601D\u8003\u8BB0\u5F55\u201D\u4E2D\u67E5\u770B\u3002","person.noDebug":"\u6682\u65E0\u8C03\u8BD5\u4E8B\u4EF6\u3002","person.moreDebug":"\u52A0\u8F7D\u66F4\u591A\u65E5\u5FD7","person.state":"\u5F53\u524D\u72B6\u6001","person.episodeFailed":"\u6700\u8FD1\u4E00\u6B21\u6D3B\u52A8\u672A\u5B8C\u6210\u3002\u53EF\u67E5\u770B\u601D\u8003\u8BB0\u5F55\uFF1B\u6280\u672F\u8BE6\u60C5\u4F4D\u4E8E\u8C03\u8BD5\u65E5\u5FD7\u3002","person.thought.input":"\u8F93\u5165","person.thought.think":"\u601D\u8003","person.thought.dream":"\u9050\u60F3","person.thought.context":"\u6B64\u523B\u60F3\u8D77\u7684\u5185\u5BB9","person.thought.thought":"\u60F3\u6CD5\u4E0E\u8F93\u51FA","person.thought.activity":"\u601D\u8003\u7247\u6BB5","person.thought.memory":"\u56DE\u5FC6\u7684\u5185\u5BB9","person.thought.capability_created":"\u81EA\u5EFA\u80FD\u529B","person.thought.script_executed":"\u811A\u672C\u8C03\u7528","person.thought.capability_failed":"\u80FD\u529B\u5C1D\u8BD5\u5931\u8D25","person.thought.capability_published":"\u80FD\u529B\u5DF2\u4FDD\u5B58\uFF0C\u4E0D\u4F9D\u8D56\u601D\u8003\u7ED3\u8BBA\u662F\u5426\u88AB\u91C7\u7EB3","person.thought.capability_name":"\u80FD\u529B\u540D\u79F0","person.thought.capability_description":"\u80FD\u529B\u7528\u9014","person.thought.capability_version":"\u7248\u672C","person.thought.capability_tests_passed":"\u901A\u8FC7\u6D4B\u8BD5\u6570","person.thought.capability_tests_limit":"\u901A\u8FC7\u8FD9\u4E9B\u6D4B\u8BD5\u4E0D\u4EE3\u8868\u5728\u5176\u4ED6\u8F93\u5165\u4E0B\u4E5F\u4E00\u5B9A\u6B63\u786E","person.thought.capability_recorded":"\u5DF2\u8BB0\u5F55\u7684\u80FD\u529B\u7ED3\u679C\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u91C7\u7EB3\u7ED3\u8BBA","person.thought.script_succeeded":"\u7EAF\u8BA1\u7B97\u5DF2\u5B8C\u6210","person.thought.script_test_failed":"\u811A\u672C\u6D4B\u8BD5\u672A\u901A\u8FC7","person.thought.script_execution_failed":"\u811A\u672C\u672A\u80FD\u5B8C\u6210\u8BA1\u7B97","person.thought.script_timeout":"\u5DF2\u8FBE\u811A\u672C\u65F6\u95F4\u9650\u5236","person.thought.script_output_invalid":"\u811A\u672C\u8F93\u51FA\u4E0D\u7B26\u5408\u8981\u6C42","person.thought.script_version_unavailable":"\u8BF7\u6C42\u7684\u811A\u672C\u7248\u672C\u4E0D\u53EF\u7528","person.thought.script_busy":"\u811A\u672C\u6267\u884C\u7E41\u5FD9","person.thought.capability_failure_unknown":"\u80FD\u529B\u672A\u80FD\u5B8C\u6210\uFF0C\u6280\u672F\u8BE6\u60C5\u4F4D\u4E8E\u8C03\u8BD5\u65E5\u5FD7","person.thought.committed":"\u5DF2\u91C7\u7EB3","person.thought.rejected":"\u672A\u91C7\u7EB3","person.thought.cancelled":"\u6D3B\u52A8\u5DF2\u53D6\u6D88","person.thought.failed":"\u6D3B\u52A8\u5931\u8D25","person.thought.interrupted":"\u6D3B\u52A8\u5DF2\u4E2D\u65AD","person.thought.budget_exhausted":"\u5DF2\u8FBE\u6D3B\u52A8\u9650\u989D","person.thought.candidate":"\u5C1A\u672A\u91C7\u7EB3","person.thought.incomplete":"\u4E0D\u5B8C\u6574\u8BB0\u5F55","person.thought.recorded":"\u5DF2\u8BB0\u5F55","person.thought.state_summary":"\u5F53\u524D\u7406\u89E3","person.thought.appraisal":"\u5F53\u524D\u8BC4\u4EF7","person.thought.user_message":"\u4F60\u8BF4\u8FC7\u7684\u8BDD","person.thought.person_message":"\u6B64\u524D\u7684\u56DE\u5E94","person.thought.concept_reported":"\u8F6C\u8FF0\u7684\u4FE1\u606F","person.thought.concept_hypothesis":"\u5047\u8BBE","person.thought.concept_imagined":"\u60F3\u8C61\u7684\u53EF\u80FD","person.thought.concept_uncertain":"\u5F85\u786E\u8BA4\u7684\u60F3\u6CD5","person.thought.activity_summary":"\u601D\u8003\u7247\u6BB5","person.thought.decision_summary":"\u5224\u65AD","person.thought.self_check":"\u81EA\u6211\u68C0\u67E5","person.thought.uncertainties":"\u5C1A\u672A\u786E\u5B9A","person.thought.reply":"\u56DE\u5E94","person.thought.next_reason":"\u7EE7\u7EED\u60F3\u7684\u539F\u56E0","person.thought.unstructured":"\u975E\u7ED3\u6784\u5316\u8F93\u51FA\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u91C7\u7EB3\u7ED3\u8BBA","person.thought.unavailable":"\u672A\u8BB0\u5F55\u5230\u53EF\u8BFB\u8F93\u51FA","person.thought.previous_candidate":"\u5148\u524D\u5019\u9009\uFF0C\u5C1A\u672A\u91C7\u7EB3","person.thought.recalled":"\u672C\u6B21\u53EC\u56DE","person.thought.structured_unavailable":"\u7ED3\u6784\u5316\u8F93\u51FA\u4E0D\u5B8C\u6574\u6216\u683C\u5F0F\u65E0\u6548\uFF0C\u539F\u59CB\u5185\u5BB9\u53EF\u5728\u8C03\u8BD5\u65E5\u5FD7\u67E5\u770B","scheduleDatePicker.chooseDate":"\u9009\u62E9\u65E5\u671F","scheduleDatePicker.previousMonth":"\u4E0A\u4E2A\u6708","scheduleDatePicker.nextMonth":"\u4E0B\u4E2A\u6708","scheduleDatePicker.today":"\u4ECA\u5929","scheduleDatePicker.keyboardHelp":"\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",...th,...nh,"quickSend.composer.label":"\u5FEB\u6377\u53D1\u9001","quickSend.composer.send":"\u5FEB\u6377\u53D1\u9001 {number}\uFF1A{name}","common.loading":"\u52A0\u8F7D\u4E2D...","common.confirm":"\u786E\u5B9A","common.apply":"\u5E94\u7528","common.cancel":"\u53D6\u6D88","common.delete":"\u5220\u9664","common.copy":"\u590D\u5236","common.copied":"\u5DF2\u590D\u5236","common.close":"\u5173\u95ED","common.refresh":"\u5237\u65B0","common.open":"\u6253\u5F00","common.save":"\u4FDD\u5B58","common.saving":"\u4FDD\u5B58\u4E2D...","common.search":"\u641C\u7D22","common.back":"\u8FD4\u56DE","common.noSubdirectories":"\u65E0\u5B50\u76EE\u5F55","common.drives":"\u9A71\u52A8\u5668","common.rootDir":"\u6839\u76EE\u5F55","common.comma":"\uFF0C","common.select":"\u9009\u62E9","common.retry":"\u91CD\u8BD5","mermaid.export":"\u5BFC\u51FA","mermaid.exportMd":"\u5BFC\u51FA MD","mermaid.exportPng":"\u5BFC\u51FA PNG","mermaid.exportJpg":"\u5BFC\u51FA JPG","login.subtitle":"Yeaft Web Code Agent","login.username":"\u7528\u6237\u540D","login.password":"\u5BC6\u7801","login.login":"\u767B\u5F55","login.loggingIn":"\u767B\u5F55\u4E2D...","login.enterUsername":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","login.enterPassword":"\u8BF7\u8F93\u5165\u5BC6\u7801","login.noAccount":"\u6CA1\u6709\u8D26\u53F7\uFF1F","login.registerWithCode":"\u6CE8\u518C\u65B0\u8D26\u53F7","login.or":"\u6216","login.usePassword":"\u4F7F\u7528\u8D26\u53F7\u5BC6\u7801\u767B\u5F55","login.useSso":"\u8FD4\u56DE\u5355\u70B9\u767B\u5F55","login.noProviders":"\u7BA1\u7406\u5458\u5C1A\u672A\u542F\u7528\u4EFB\u4F55\u7B2C\u4E09\u65B9\u767B\u5F55\u3002","login.microsoft":"\u4F7F\u7528 Microsoft \u8D26\u53F7\u767B\u5F55","login.github":"\u4F7F\u7528 GitHub \u8D26\u53F7\u767B\u5F55","login.google":"\u4F7F\u7528 Google \u8D26\u53F7\u767B\u5F55","login.wechat":"\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u767B\u5F55","login.alipay":"\u4F7F\u7528\u652F\u4ED8\u5B9D\u8D26\u53F7\u767B\u5F55","login.wechat.mobileUnsupported":"\u5FAE\u4FE1\u767B\u5F55\u6682\u4EC5\u652F\u6301\u7535\u8111\u7AEF\uFF0C\u8BF7\u5728\u7535\u8111\u6D4F\u89C8\u5668\u4E2D\u626B\u7801\u767B\u5F55\u3002","login.alipay.mobileWaiting":"\u6B63\u5728\u7B49\u5F85\u4F60\u5728\u652F\u4ED8\u5B9D\u4E2D\u786E\u8BA4\u2026 \u5B8C\u6210\u540E\u8FD4\u56DE\u672C\u9875\u9762\u5C06\u81EA\u52A8\u767B\u5F55\u3002","login.alipay.relaunch":"\u91CD\u65B0\u6253\u5F00\u652F\u4ED8\u5B9D","login.qr.title":"\u626B\u7801\u767B\u5F55","login.qr.titleAlipay":"\u652F\u4ED8\u5B9D\u626B\u7801\u767B\u5F55","login.qr.titleWechat":"\u5FAE\u4FE1\u626B\u7801\u767B\u5F55","login.qr.hint":"\u8BF7\u4F7F\u7528\u624B\u673A\u626B\u63CF\u4E8C\u7EF4\u7801\u5B8C\u6210\u6388\u6743","login.error.enterUsername":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","login.error.enterPassword":"\u8BF7\u8F93\u5165\u5BC6\u7801","login.error.enter6Digit":"\u8BF7\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.error.enterInviteCode":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","login.error.usernameMinLen":"\u7528\u6237\u540D\u81F3\u5C112\u4E2A\u5B57\u7B26","login.error.passwordMinLen":"\u5BC6\u7801\u81F3\u5C116\u4F4D","login.error.passwordMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","login.error.enterVerifyCode":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","login.error.loginFailed":"\u767B\u5F55\u5931\u8D25","login.forgot.link":"\u5FD8\u8BB0\u5BC6\u7801\uFF1F","login.forgot.title":"\u91CD\u7F6E\u5BC6\u7801","login.forgot.emailHint":"\u8F93\u5165\u8D26\u6237\u7ED1\u5B9A\u7684\u90AE\u7BB1\uFF0C\u6211\u4EEC\u5C06\u53D1\u9001 6 \u4F4D\u91CD\u7F6E\u9A8C\u8BC1\u7801\u3002","login.forgot.sendCode":"\u53D1\u9001\u91CD\u7F6E\u9A8C\u8BC1\u7801","login.forgot.sending":"\u53D1\u9001\u4E2D...","login.forgot.codeSent":"\u5982\u679C\u90AE\u7BB1\u5DF2\u6CE8\u518C\uFF0C\u91CD\u7F6E\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001\u3002\u8BF7\u5728\u4E0B\u65B9\u8F93\u5165\u9A8C\u8BC1\u7801\u4E0E\u65B0\u5BC6\u7801\u3002","login.forgot.resetBtn":"\u91CD\u7F6E\u5BC6\u7801","login.forgot.resetting":"\u91CD\u7F6E\u4E2D...","login.forgot.success":"\u5BC6\u7801\u5DF2\u91CD\u7F6E\uFF0C\u53EF\u4EE5\u4F7F\u7528\u65B0\u5BC6\u7801\u767B\u5F55\u3002","login.forgot.emailInvalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u90AE\u7BB1","login.register.title":"\u65B0\u7528\u6237\u6CE8\u518C","login.register.inviteCode":"\u9080\u8BF7\u7801","login.register.username":"\u7528\u6237\u540D","login.register.password":"\u5BC6\u7801\uFF08\u81F3\u5C116\u4F4D\uFF09","login.register.confirmPassword":"\u786E\u8BA4\u5BC6\u7801","login.register.email":"\u90AE\u7BB1\uFF08\u53EF\u9009\uFF09","login.register.submit":"\u6CE8\u518C","login.register.submitting":"\u6CE8\u518C\u4E2D...","login.register.back":"\u8FD4\u56DE\u767B\u5F55","login.register.success":"\u6CE8\u518C\u6210\u529F\uFF0C\u8BF7\u767B\u5F55","login.register.enterCode":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","login.register.usernameMin":"\u7528\u6237\u540D\u81F3\u5C112\u4E2A\u5B57\u7B26","login.register.passwordMin":"\u5BC6\u7801\u81F3\u5C116\u4F4D","login.register.passwordMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","login.totp.setupTitle":"\u8BBE\u7F6E\u53CC\u56E0\u7D20\u8BA4\u8BC1","login.totp.setupHint":"\u4F7F\u7528 Microsoft Authenticator \u6216 Google Authenticator \u626B\u63CF\u4E0B\u65B9\u4E8C\u7EF4\u7801","login.totp.manualKey":"\u6216\u624B\u52A8\u8F93\u5165\u5BC6\u94A5\uFF1A","login.totp.enterCode":"\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.totp.complete":"\u5B8C\u6210\u8BBE\u7F6E","login.totp.verifying":"\u9A8C\u8BC1\u4E2D...","login.totp.verify":"\u9A8C\u8BC1","login.totp.prompt":"\u8BF7\u8F93\u5165 Authenticator \u5E94\u7528\u4E2D\u7684\u9A8C\u8BC1\u7801","login.totp.invalidCode":"\u8BF7\u8F93\u51656\u4F4D\u9A8C\u8BC1\u7801","login.email.codeSent":"\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001\u81F3 {email}","login.email.enterCode":"\u8F93\u5165\u9A8C\u8BC1\u7801","login.email.verify":"\u9A8C\u8BC1","login.email.verifying":"\u9A8C\u8BC1\u4E2D...","login.email.enterCodeError":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","chat.agent.select":"\u9009\u62E9 Agent","chat.agent.manage":"\u7BA1\u7406 Agent","chat.agent.count":"{count} agents","chat.agent.updatesAvailable":"{count} \u4E2A Agent \u53EF\u5347\u7EA7","chat.agent.updateAvailable":"\u53EF\u5347\u7EA7\u81F3 v{version}","chat.agent.none":"\u6682\u65E0 Agent","chat.agent.restarting":"\u91CD\u542F\u4E2D","agentSettings.open":"Agent \u8BBE\u7F6E","agentSettings.manage":"\u7BA1\u7406","agentSettings.eyebrow":"\u672C\u5730\u8FD0\u884C\u65F6","agentSettings.title":"Agent \u8BBE\u7F6E","agentSettings.description":"\u6309 Agent \u67E5\u770B\u548C\u914D\u7F6E\u672C\u5730\u8FD0\u884C\u65F6\uFF0C\u4E0D\u518D\u628A\u8FD0\u884C\u63A7\u5236\u6DF7\u5165\u8D26\u6237\u8BBE\u7F6E\u3002","agentSettings.agentList":"Agent","agentSettings.categories":"Agent \u8BBE\u7F6E\u5206\u7C7B","agentSettings.categories.operations":"\u64CD\u4F5C","agentSettings.categories.trace":"Trace","agentSettings.categories.llm":"LLM \u914D\u7F6E","agentSettings.selectedAgent":"\u5F53\u524D Agent","agentSettings.online":"\u5728\u7EBF","agentSettings.offline":"\u79BB\u7EBF","agentSettings.empty":"\u6682\u65E0\u53EF\u7528 Agent\u3002","agentSettings.runtime.title":"\u8FD0\u884C\u65F6","agentSettings.runtime.description":"\u8EAB\u4EFD\u3001\u5DE5\u4F5C\u76EE\u5F55\u548C\u672C\u5730\u540E\u53F0\u5904\u7406\u3002","agentSettings.runtime.version":"\u7248\u672C","agentSettings.runtime.updateAvailable":"\u53EF\u66F4\u65B0\u81F3 v{version}","agentSettings.runtime.updateUnknown":"\u65E0\u6CD5\u83B7\u53D6\u66F4\u65B0\u72B6\u6001","agentSettings.runtime.workDir":"\u5DE5\u4F5C\u76EE\u5F55","agentSettings.digitalPerson.title":"\u6570\u5B57\u4EBA","agentSettings.digitalPerson.description":"\u5728\u6B64\u6D4F\u89C8\u5668\u4E2D\u663E\u793A\u8BE5 Agent \u7684\u6570\u5B57\u4EBA\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF1B\u9690\u85CF\u5165\u53E3\u4E0D\u4F1A\u505C\u6B62\u6D3B\u52A8\u6216\u5220\u9664\u6570\u636E\u3002","agentSettings.workCenter.title":"\u5DE5\u4F5C\u4E2D\u5FC3","agentSettings.workCenter.enabled":"\u5DF2\u542F\u7528","agentSettings.workCenter.disabled":"\u5DF2\u505C\u7528","agentSettings.workCenter.runtimeUnavailable":"\u542F\u52A8\u5931\u8D25","agentSettings.workCenter.runtimeUnavailableMessage":"\u5DE5\u4F5C\u4E2D\u5FC3\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u8FD0\u884C\u65F6\u672A\u80FD\u542F\u52A8\uFF1B\u8BF7\u67E5\u770B Agent \u65E5\u5FD7\u540E\u91CD\u8BD5\u3002","agentSettings.workCenter.runtimeUnavailableHint":"\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u5DE5\u4F5C\u4E2D\u5FC3\u8FD0\u884C\u65F6\u5F53\u524D\u4E0D\u53EF\u7528\u3002","agentSettings.workCenter.enabledHint":"\u6B64 Agent \u5DF2\u53EF\u8FD0\u884C\u6301\u4E45\u5DE5\u4F5C\uFF1B\u65B0 Session \u4E5F\u53EF\u521B\u5EFA\u5DE5\u4F5C\u9879\u3002","agentSettings.workCenter.disabledHint":"\u5728\u6B64 Agent \u4E0A\u542F\u7528\u6301\u4E45\u5DE5\u4F5C\u9879\u548C\u540E\u53F0\u6267\u884C\u3002","agentSettings.workCenter.environmentManaged":"\u7531 YEAFT_WORK_CENTER_ENABLED \u7BA1\u7406\uFF0C\u65E0\u6CD5\u5728\u8FD9\u91CC\u4FEE\u6539\u3002","agentSettings.workCenter.upgradeRequired":"\u5347\u7EA7\u6B64 Agent \u540E\u624D\u80FD\u7BA1\u7406\u5DE5\u4F5C\u4E2D\u5FC3\u7684\u542F\u505C\u72B6\u6001\u3002","agentSettings.workCenter.unsupported":"\u9700\u8981\u5347\u7EA7","agentSettings.workCenter.loadFailed":"\u5DE5\u4F5C\u4E2D\u5FC3\u72B6\u6001\u52A0\u8F7D\u5931\u8D25\u3002","agentSettings.workCenter.loadFailedStatus":"\u52A0\u8F7D\u5931\u8D25","agentSettings.workCenter.saveFailed":"\u5DE5\u4F5C\u4E2D\u5FC3\u66F4\u65B0\u5931\u8D25\u3002","agentSettings.telemetry.title":"\u8BCA\u65AD","agentSettings.telemetry.saved":"\u8BCA\u65AD\u8BBE\u7F6E\u5DF2\u4FDD\u5B58\u3002","agentSettings.telemetry.loadFailed":"\u8BCA\u65AD\u8BBE\u7F6E\u52A0\u8F7D\u5931\u8D25\u3002","agentSettings.telemetry.saveFailed":"\u8BCA\u65AD\u8BBE\u7F6E\u4FDD\u5B58\u5931\u8D25\u3002","agentSettings.maintenance.title":"\u7EF4\u62A4","agentSettings.maintenance.description":"\u8FD9\u4E9B\u64CD\u4F5C\u4F1A\u4E2D\u65AD\u5F53\u524D Agent \u4E0A\u6B63\u5728\u8FD0\u884C\u7684\u5DE5\u4F5C\u3002","agentSettings.maintenance.upgradeFailed":"Agent \u5347\u7EA7\u5931\u8D25\u3002","chat.agent.restart":"\u91CD\u542F","chat.agent.restartConfirm":`\u786E\u5B9A\u8981\u91CD\u542F Agent "{name}" \u5417\uFF1F
|
|
11
11
|
\u6240\u6709\u6D3B\u8DC3\u7684\u4F1A\u8BDD\u5C06\u88AB\u4E2D\u65AD\u3002`,"chat.agent.upgrade":"\u5347\u7EA7","chat.agent.upgrading":"\u5347\u7EA7\u4E2D","chat.agent.upgradeConfirm":`\u5347\u7EA7 Agent "{name}" \u5230\u6700\u65B0\u7248\u672C\uFF1F
|
|
12
12
|
\u5347\u7EA7\u5B8C\u6210\u540E Agent \u4F1A\u81EA\u52A8\u91CD\u542F\u3002`,"chat.agent.upgradeAll":"\u5168\u90E8\u5347\u7EA7","chat.agent.upgradingAll":"\u5168\u90E8\u5347\u7EA7\u4E2D\u2026","chat.agent.upgradeAllConfirm":`\u786E\u5B9A\u5C06 {count} \u4E2A\u7B26\u5408\u6761\u4EF6\u7684 Agent \u5347\u7EA7\u5230\u6700\u65B0\u7248\u672C\u5417\uFF1F
|
|
13
|
-
\u5347\u7EA7\u5B8C\u6210\u540E\u5B83\u4EEC\u4F1A\u81EA\u52A8\u91CD\u542F\u3002\u53E6\u6709 {skipped} \u4E2A Agent \u56E0\u5F53\u524D\u4E0D\u53EF\u7528\u6216\u4E0D\u652F\u6301\u5B89\u5168\u8FDC\u7A0B\u5347\u7EA7\u800C\u8DF3\u8FC7\u3002`,"chat.agent.upgradeAllSummary":"Agent \u6279\u91CF\u5347\u7EA7\u5B8C\u6210\uFF1A\u5347\u7EA7\u6210\u529F {upgraded} \u4E2A\uFF0C\u5DF2\u662F\u6700\u65B0 {latest} \u4E2A\uFF0C\u5931\u8D25 {failed} \u4E2A\uFF0C\u8DF3\u8FC7 {skipped} \u4E2A\u3002","chat.agent.alreadyLatest":"Agent \u5DF2\u662F\u6700\u65B0\u7248\u672C (v{version})\uFF0C\u65E0\u9700\u5347\u7EA7\u3002","chat.agent.nodeIncompatible":"Agent \u5347\u7EA7\u4E2D\u6B62\uFF1A\u76EE\u6807\u7248\u672C v{version} \u9700\u8981 Node {required}\uFF0C\u4F46\u5F53\u524D\u673A\u5668\u8FD0\u884C\u7684\u662F Node {current}\u3002\u8BF7\u5148\u5347\u7EA7 Node.js \u518D\u91CD\u8BD5\u3002","chat.agent.manualUpgradeRequired":'Agent v{version} \u6CA1\u6709\u58F0\u660E\u5B89\u5168\u8FDC\u7A0B\u5347\u7EA7\u80FD\u529B\uFF1B\u65E7\u5BA2\u6237\u7AEF\u53C8\u672A\u4E0A\u62A5\u8DB3\u591F\u7684\u5E73\u53F0\u4FE1\u606F\uFF0CServer \u65E0\u6CD5\u6392\u9664 Windows \u5305\u76EE\u5F55\u9501\u5B9A\u6545\u969C\u3002\u4E3A\u907F\u514D\u91CD\u590D\u6267\u884C\u5DF2\u77E5\u4F1A\u5931\u8D25\u7684\u5347\u7EA7\uFF0C\u672C\u6B21\u64CD\u4F5C\u5DF2\u88AB\u963B\u6B62\u3002\u8BF7\u5148\u505C\u6B62\u8BE5\u673A\u5668\u4E0A\u6240\u9009\u7684 Agent/\u670D\u52A1\uFF1A\u82E5\u7531 PM2 \u6216\u5176\u4ED6\u670D\u52A1\u7BA1\u7406\u5668\u8FD0\u884C\uFF0C\u8BF7\u5728\u90A3\u91CC\u505C\u6B62\u8FD9\u4E2A\u7CBE\u786E\u5B9E\u4F8B\uFF1B\u82E5\u5728\u524D\u53F0\u7EC8\u7AEF\u8FD0\u884C\uFF0C\u8BF7\u7EC8\u6B62\u8BE5\u8FDB\u7A0B\u3002\u786E\u8BA4\u8BE5\u8FDB\u7A0B\u5DF2\u7ECF\u9000\u51FA\u540E\uFF0C\u518D\u6267\u884C "npm install -g @yeaft/webchat-agent@latest --registry=https://pkg.yeaft.com/"\uFF1B\u6700\u540E\u4F7F\u7528\u539F\u914D\u7F6E\u542F\u52A8\u540C\u4E00 Agent \u5B9E\u4F8B\u3002\u5B8C\u6210\u8FD9\u6B21\u5F15\u5BFC\u540E\uFF0C\u540E\u7EED\u53EF\u7EE7\u7EED\u5728\u6D4F\u89C8\u5668\u4E2D\u5347\u7EA7\u3002',"chat.agent.containerImageUpgradeRequired":'\u5BB9\u5668 Agent v{version} \u7531 Docker \u955C\u50CF\u7BA1\u7406\uFF0C\u4E0D\u80FD\u5728\u5BB9\u5668\u5185\u4F7F\u7528 npm \u81EA\u5347\u7EA7\u3002\u8BF7\u5728 Docker Host \u4E0A\u6267\u884C "docker pull <configured-agent-image>"\uFF0C\u7136\u540E\u901A\u8FC7\u73B0\u6709 Server/Sandbox \u751F\u547D\u5468\u671F\u6216\u539F\u6765\u7684 "yeaft-agent container install" \u547D\u4EE4\u91CD\u5EFA\u540C\u4E00\u4E2A\u5BB9\u5668\u3002\u4FDD\u7559\u73B0\u6709\u7684 /home/yeaft/.yeaft \u548C /workspace \u6301\u4E45\u5377\uFF0C\u5E76\u590D\u7528 Host \u7AEF\u539F\u6709\u7684 0600 agent-secret \u6587\u4EF6\uFF1B\u4E0D\u8981\u5728\u91CD\u5EFA\u65F6\u5220\u9664\u8FD9\u4E9B\u5377\u3002',"chat.agent.online":"{count} \u4E2A Agent \u5728\u7EBF","chat.agent.selectFirst":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","chat.agent.yeaft":"Yeaft \u5BF9\u8BDD","sidebar.toggle.chat":"\u5207\u6362\u5230 Chat","sidebar.toggle.yeaft":"\u5207\u6362\u5230 Yeaft","sidebar.surface.label":"\u4FA7\u680F\u89C6\u56FE","sidebar.surface.sessions":"\u4F1A\u8BDD","sidebar.provider.label":"\u4F1A\u8BDD Provider","sidebar.provider.claude":"Claude","sidebar.sessions.new":"\u65B0\u5EFA\u4F1A\u8BDD","sidebar.sessions.newChat":"\u65B0\u5EFA\u804A\u5929","sidebar.sessions.emptyProvider":"\u6B64 Provider \u6682\u65E0\u4F1A\u8BDD","sidebar.sessions.menu":"\u4F1A\u8BDD\u83DC\u5355","sidebar.sessions.unread":"\u672A\u8BFB","sidebar.sessions.pinned":"\u5DF2\u7F6E\u9876","sidebar.sessions.processing":"\u6B63\u5728\u56DE\u590D","sidebar.sessions.hidden":"\u5DF2\u9690\u85CF\u7684\u4F1A\u8BDD","sidebar.sessions.remove":"\u4ECE\u4FA7\u680F\u79FB\u9664","sidebar.sessions.agent":"Agent","sidebar.sessions.provider":"Provider","sidebar.projects.title":"\u9879\u76EE","sidebar.projects.menu":"\u9879\u76EE\u83DC\u5355","sidebar.projects.new":"\u65B0\u5EFA\u9879\u76EE","sidebar.projects.newSession":"\u5728{name}\u4E2D\u521B\u5EFA Session","sidebar.projects.assignFailed":"Session \u5DF2\u521B\u5EFA\uFF0C\u4F46\u65E0\u6CD5\u52A0\u5165{name}\u3002\u9519\u8BEF\uFF1A{message}","sidebar.projects.empty":"\u6682\u65E0\u9879\u76EE","sidebar.projects.noSessions":"\u5C06 Yeaft \u804A\u5929\u62D6\u5230\u8FD9\u91CC","sidebar.projects.namePrompt":"\u9879\u76EE\u540D\u79F0","sidebar.projects.renamePrompt":"\u91CD\u547D\u540D\u9879\u76EE","sidebar.projects.rename":"\u91CD\u547D\u540D\u9879\u76EE","sidebar.projects.delete":"\u5220\u9664\u9879\u76EE","sidebar.projects.deleteConfirm":"\u5220\u9664\u9879\u76EE\u201C{name}\u201D\uFF1F\u5176\u4E2D\u804A\u5929\u4F1A\u79FB\u56DE\u6700\u8FD1\u3002","sidebar.projects.remove":"\u79FB\u51FA\u9879\u76EE","sidebar.projects.moveMenu":"\u79FB\u52A8\u5230 Projects","sidebar.projects.moveBack":"\u8FD4\u56DE","sidebar.projects.moveEmpty":"\u6CA1\u6709\u5176\u4ED6 Project","sidebar.projects.moveTo":"\u79FB\u5230 {name}","sidebar.projects.instructions":"Project \u6307\u4EE4","sidebar.projects.instructionsTitle":"{name} \u6307\u4EE4","sidebar.projects.instructionsHint":"\u8FD9\u4E9B\u6307\u4EE4\u4F1A\u52A0\u5165\u6B64 Project \u5185\u6BCF\u4E2A Session \u7684 system prompt\u3002","sidebar.projects.instructionsPlaceholder":"\u8F93\u5165\u5171\u4EAB\u7684\u7F16\u7801\u89C4\u8303\u3001\u7EA6\u675F\u6216\u5DE5\u4F5C\u6D41\u8BF4\u660E\u2026","sidebar.recents.title":"\u6700\u8FD1","sidebar.recents.empty":"\u6682\u65E0\u804A\u5929","yeaft.back":"\u8FD4\u56DE","yeaft.session.people":"\u6210\u5458","yeaft.session.peopleEmpty":"\u6682\u65E0\u6210\u5458","yeaft.session.runningTasks":"\u8FD0\u884C\u4E2D\u7684\u4EFB\u52A1","yeaft.session.tasksEmpty":"\u6682\u65E0\u8FD0\u884C\u4EFB\u52A1","yeaft.session.owner":"\u8D1F\u8D23\u4EBA","yeaft.session.started":"\u5F00\u59CB\u65F6\u95F4","yeaft.breadcrumb.label":"Thread \u8FC7\u6EE4","yeaft.breadcrumb.mainStream":"\u4E3B\u6D41","yeaft.breadcrumb.backHint":"\u8FD4\u56DE\u5168\u6D41 (Esc)","yeaft.featureDetail.ariaLabel":"Task \u8BE6\u60C5","yeaft.featureDetail.replyTo":"\u56DE\u590D\u5230:","yeaft.featureDetail.forkHint":"\u8BE5 task \u6682\u65E0\u6D3B\u8DC3 thread \u2014 \u8BF7 fork \u65B0 thread \u540E\u56DE\u590D\u3002","yeaft.featureDetail.empty":"\u8BE5 task \u6682\u65E0\u6D88\u606F\u3002","yeaft.featureDetail.threadPillHint":"\u6253\u5F00 thread","yeaft.featureDetail.summary.aria":"\u4EFB\u52A1\u6458\u8981\u65F6\u95F4\u7EBF","yeaft.featureDetail.summary.title":"\u6458\u8981\u65F6\u95F4\u7EBF","yeaft.featureDetail.summary.loading":"\u6B63\u5728\u52A0\u8F7D\u6458\u8981\u5386\u53F2\u2026","yeaft.featureDetail.summary.empty":"\u6682\u65E0\u6458\u8981\u3002","yeaft.featureDetail.summary.error":"\u6458\u8981\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","yeaft.featureDetail.summary.showArchived":"\u663E\u793A\u5DF2\u5F52\u6863","yeaft.featureDetail.related.aria":"\u5173\u8054\u4EFB\u52A1","yeaft.featureDetail.related.title":"\u5173\u8054\u4EFB\u52A1","yeaft.featureDetail.related.unlink":"\u53D6\u6D88\u5173\u8054","yeaft.featureDetail.members.aria":"\u4EFB\u52A1\u6210\u5458","yeaft.featureDetail.members.title":"\u6210\u5458","yeaft.featureDetail.members.abort":"\u4E2D\u6B62","yeaft.featureDetail.members.kick":"\u8E22\u51FA","yeaft.model":"\u6A21\u578B","yeaft.placeholder":"\u95EE\u6211\u4EFB\u4F55\u95EE\u9898...","yeaft.inbox":"\u6536\u4EF6\u7BB1","yeaft.inbox.tooltip":"\u4F60\u7684\u9ED8\u8BA4\u5BF9\u8BDD\u7EBF\u7A0B \u2014\u2014 \u4E0E Yeaft \u7684\u4E00\u5BF9\u4E00\u804A\u5929\u3002\u53EF\u4EE5\u4E3A\u5177\u4F53\u8BDD\u9898\u6216\u4EFB\u52A1\u521B\u5EFA\u65B0\u7EBF\u7A0B\u3002","yeaft.sidebar.activeThreads":"\u6D3B\u8DC3","yeaft.sidebar.idleThreads":"\u9759\u9ED8","yeaft.sidebar.archivedThreads":"\u5DF2\u5F52\u6863","yeaft.sidebar.tasks":"\u4EFB\u52A1","yeaft.sidebar.emptyActive":"\u6682\u65E0\u6D3B\u8DC3 thread","yeaft.sidebar.emptyIdle":"\u6682\u65E0\u9759\u9ED8 thread","yeaft.sidebar.emptyArchived":"\u6682\u65E0\u5F52\u6863 thread","yeaft.sidebar.emptyTasks":"\u65E0\u5339\u914D\u4EFB\u52A1","yeaft.sidebar.results":"\u641C\u7D22\u7ED3\u679C","yeaft.sidebar.resultsThreads":"Threads","yeaft.sidebar.kindThread":"thread","yeaft.sidebar.cancel":"\u53D6\u6D88","yeaft.sidebar.mergeInto":"\u5408\u5E76\u5230\u2026","yeaft.sidebar.mergeNoCandidates":"\u6CA1\u6709\u53EF\u5408\u5E76\u7684\u5176\u4ED6\u7EBF\u7A0B","yeaft.sidebar.mergeConfirmTitle":"\u5408\u5E76\u8FD9\u4E2A\u7EBF\u7A0B\uFF1F","yeaft.sidebar.mergeIrreversible":"\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\uFF0C\u6E90\u7EBF\u7A0B\u5C06\u88AB\u5F52\u6863\uFF0C\u5176\u6D88\u606F\u4F1A\u88AB\u79FB\u52A8\u5230\u76EE\u6807\u7EBF\u7A0B\u3002","yeaft.sidebar.mergeConfirm":"\u5408\u5E76","yeaft.settings.sidebarV2":"\u5B9E\u9A8C\u529F\u80FD\uFF1A\u4FA7\u8FB9\u680F V2","yeaft.settings.sidebarV2Hint":"Thread \u5217\u8868 + \u4EFB\u52A1\u6811\uFF08\u9884\u89C8\uFF09\u3002","yeaft.clearConfirm":"\u6E05\u7A7A\u6240\u6709\u6D88\u606F\uFF1F","yeaft.mode":"\u6A21\u5F0F","yeaft.agent":"\u667A\u80FD\u4F53","yeaft.connecting":"\u8FDE\u63A5\u4E2D...","yeaft.ready":"\u5C31\u7EEA","yeaft.tools":"\u4E2A\u5DE5\u5177","yeaft.skills":"\u4E2A\u6280\u80FD","yeaft.mcp":"\u4E2A MCP","yeaft.showSidebar":"\u663E\u793A\u4FA7\u680F","yeaft.hideSidebar":"\u9690\u85CF\u4FA7\u680F","yeaft.debug":"\u8C03\u8BD5","yeaft.debugClose":"\u5173\u95ED\u8C03\u8BD5\u9762\u677F","yeaft.debugTurns":"\u8F6E","yeaft.debugTabToolStats":"\u5DE5\u5177\u7EDF\u8BA1","yeaft.debugTabRequestLog":"\u8BF7\u6C42\u65E5\u5FD7","yeaft.debugHistoryLoad":"\u52A0\u8F7D\u8BF7\u6C42\u5386\u53F2","yeaft.debugHistoryLoading":"\u52A0\u8F7D\u4E2D...","yeaft.debugHistoryLoaded":"\u5DF2\u52A0\u8F7D {count} \u6761","yeaft.debugHistoryUnavailable":"\u8C03\u8BD5\u8F68\u8FF9\u8BF7\u6C42\u8D85\u65F6\u3002Agent \u53EF\u80FD\u79BB\u7EBF\uFF0C\u6216\u54CD\u5E94\u5DF2\u88AB\u4E22\u5F03\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.debugHistoryTruncated":"\u8BE5\u8F68\u8FF9\u8FC7\u5927\uFF0C\u65E0\u6CD5\u5728\u4E00\u6B21\u54CD\u5E94\u4E2D\u5B8C\u6574\u4F20\u8F93\u3002\u6B64\u5904\u663E\u793A\u5927\u5B57\u6BB5\u9884\u89C8\uFF0C\u5B8C\u6574\u8F68\u8FF9\u4ECD\u4FDD\u7559\u5728 Agent\u3002","yeaft.debugSearchPlaceholder":"\u6B63\u5219\u641C\u7D22\u8BF7\u6C42\u65E5\u5FD7","yeaft.debugSearchHint":"\u9ED8\u8BA4\u663E\u793A\u5168\u5C40\u6700\u8FD1 10 \u6761\uFF1B\u641C\u7D22\u4F1A\u8DE8 Session \u5339\u914D\u8BF7\u6C42\u6458\u8981\u3002","yeaft.debugTurnAction":"\u67E5\u770B\u8BE5\u8F6E\u5BF9\u8BDD\u7684\u8C03\u8BD5\u8F68\u8FF9","yeaft.debugTurnContext":"\u8C03\u8BD5\u8F68\u8FF9","yeaft.debugPanelEmpty":"\u60AC\u505C\u5728 AI \u56DE\u590D\u4E0A\uFF0C\u70B9\u51FB\u8C03\u8BD5\u56FE\u6807\u5373\u53EF\u67E5\u770B\u8BE5\u8F6E\u5BF9\u8BDD\u7684\u8C03\u8BD5\u8F68\u8FF9\u3002","yeaft.debugGroupFollowMain":"\u8DDF\u968F\u4E3B\u9762\u677F","yeaft.debugGroupAll":"\u5168\u90E8\u4F1A\u8BDD","yeaft.debugAssistantResponse":"Assistant \u56DE\u590D","yeaft.debugViewAssistantResponse":"\u67E5\u770B\u56DE\u590D","yeaft.debugLatestRequestBody":"\u6700\u8FD1\u53EF\u7528\u8BF7\u6C42\u4F53","yeaft.debugLatestSystemPrompt":"\u6700\u8FD1\u53EF\u7528\u7CFB\u7EDF\u63D0\u793A","yeaft.debugRequestBodyUnavailable":"\u6B64 Turn \u6682\u65E0\u53EF\u7528\u8BF7\u6C42\u4F53\u3002","yeaft.debugSystemPromptUnavailable":"\u6B64 Turn \u6682\u65E0\u53EF\u7528\u7CFB\u7EDF\u63D0\u793A\u3002","yeaft.debugInputSystemShort":"\u7CFB\u7EDF","yeaft.debugInputHistoryShort":"\u5386\u53F2","yeaft.debugInputToolsShort":"\u5DE5\u5177\u5B9A\u4E49","yeaft.debugInputCurrentShort":"\u5F53\u524D","yeaft.debugInputTokenBreakdown":"Provider \u8F93\u5165 {total}\uFF1A\u7CFB\u7EDF\u63D0\u793A {system}\u3001\u5386\u53F2\u6D88\u606F {history}\u3001\u5DE5\u5177\u5B9A\u4E49 {tools}\u3001\u5F53\u524D Turn {current}\uFF08\u4F30\u7B97\u62C6\u5206\uFF09","yeaft.debugToolInput":"\u8F93\u5165","yeaft.debugToolResult":"\u7ED3\u679C","yeaft.debugToolRunning":"\u6267\u884C\u4E2D","yeaft.debugToolRunningNoResult":"\u6267\u884C\u4E2D\uFF0C\u6682\u65E0\u7ED3\u679C","yeaft.debugShowDetails":"\u5C55\u5F00","yeaft.debugHideDetails":"\u6536\u8D77","yeaft.debugTurnStartedAt":"\u56DE\u5408\u5F00\u59CB\u65F6\u95F4","yeaft.debugRequestAt":"\u8BF7\u6C42\u65F6\u95F4","yeaft.debugRequestAtDerived":"\u7531\u56DE\u5408\u5F00\u59CB\u65F6\u95F4\u63A8\u7B97\uFF08\u65E7 loop\uFF09","yeaft.turn":"\u7B2C {n} \u8F6E","yeaft.systemPrompt":"\u7CFB\u7EDF\u63D0\u793A","yeaft.messagesLabel":"\u6D88\u606F","yeaft.response":"\u56DE\u590D","yeaft.toolCalls":"\u5DE5\u5177\u8C03\u7528","yeaft.functionCalls":"\u51FD\u6570\u8C03\u7528","yeaft.request":"\u8BF7\u6C42","yeaft.pending":"(\u7B49\u5F85\u4E2D)","yeaft.inputTokens":"\u8F93\u5165","yeaft.outputTokens":"\u8F93\u51FA","yeaft.duration":"\u8017\u65F6","yeaft.noDebugData":"\u6682\u65E0\u8C03\u8BD5\u6570\u636E","yeaft.showDebug":"\u663E\u793A\u8C03\u8BD5\u9762\u677F","yeaft.hideDebug":"\u9690\u85CF\u8C03\u8BD5\u9762\u677F","yeaft.reloadPage":"\u5237\u65B0\u9875\u9762","yeaft.reloadMessages":"\u91CD\u65B0\u52A0\u8F7D\u6D88\u606F","sidebar.sessions.syncing":"\u6B63\u5728\u540C\u6B65\u6700\u65B0\u6D88\u606F","yeaft.historySearch.label":"\u641C\u7D22 Session \u5386\u53F2\u6D88\u606F","yeaft.historySearch.button":"\u641C\u7D22\u6D88\u606F","yeaft.historySearch.placeholder":"\u641C\u7D22\u5F53\u524D Session \u7684\u6D88\u606F","yeaft.historySearch.searching":"\u6B63\u5728\u641C\u7D22\u2026","yeaft.historySearch.minChars":"\u81F3\u5C11\u8F93\u5165 2 \u4E2A\u5B57\u7B26","yeaft.historySearch.empty":"\u6CA1\u6709\u5339\u914D\u7684\u6D88\u606F","yeaft.historySearch.error":"\u641C\u7D22\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","yeaft.historySearch.unsupported":"\u8BF7\u5347\u7EA7\u5F53\u524D Agent \u540E\u518D\u641C\u7D22 Session \u5386\u53F2\u6D88\u606F","yeaft.historySearch.more":"\u52A0\u8F7D\u66F4\u591A\u7ED3\u679C","yeaft.historySearch.you":"\u4F60","yeaft.historySearch.assistant":"\u52A9\u624B","yeaft.outline.label":"\u5386\u53F2\u6D88\u606F","yeaft.outline.sender":"\u53D1\u9001\u8005","yeaft.outline.allSenders":"\u5168\u90E8\u53D1\u9001\u8005","yeaft.outline.title":"\u5386\u53F2\u6D88\u606F","yeaft.outline.placeholder":"\u641C\u7D22\u5F53\u524D\u5BF9\u8BDD","yeaft.outline.searching":"\u6B63\u5728\u641C\u7D22\u2026","yeaft.outline.loading":"\u6B63\u5728\u52A0\u8F7D\u2026","yeaft.outline.older":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","yeaft.outline.moreMatches":"\u52A0\u8F7D\u66F4\u591A\u5339\u914D\u9879","yeaft.outline.minChars":"\u81F3\u5C11\u8F93\u5165 2 \u4E2A\u5B57\u7B26","yeaft.outline.empty":"\u6682\u65E0\u6D88\u606F","yeaft.outline.noMatches":"\u6CA1\u6709\u5339\u914D\u7684\u6D88\u606F","yeaft.outline.error":"\u5927\u7EB2\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","yeaft.outline.unsupported":"\u8BF7\u5347\u7EA7\u5F53\u524D Agent \u540E\u518D\u4F7F\u7528\u5BF9\u8BDD\u5927\u7EB2","yeaft.outline.you":"\u4F60","yeaft.outline.assistant":"\u52A9\u624B","yeaft.outline.nonText":"\u975E\u6587\u672C\u56DE\u590D","yeaft.switchModel":"\u5207\u6362\u6A21\u578B","yeaft.modelMenu.title":"\u6A21\u578B\u548C LLM \u8BBE\u7F6E","yeaft.modelMenu.label":"\u6A21\u578B","yeaft.modelMenu.effort":"\u63A8\u7406\u5F3A\u5EA6","yeaft.modelMenu.effort.openaiReasoning":"\u63A8\u7406\u5F3A\u5EA6","yeaft.modelMenu.effort.anthropicBudget":"\u601D\u8003\u9884\u7B97","yeaft.modelMenu.effort.anthropicAdaptive":"\u81EA\u9002\u5E94\u601D\u8003\u5F3A\u5EA6","yeaft.modelMenu.effort.minimal":"\u6700\u5C0F","yeaft.modelMenu.effort.low":"\u4F4E","yeaft.modelMenu.effort.medium":"\u4E2D","yeaft.modelMenu.effort.high":"\u9AD8","yeaft.modelMenu.effort.xhigh":"\u8D85\u9AD8","yeaft.modelMenu.effort.max":"\u6700\u9AD8","yeaft.modelMenu.effort.ultra":"\u6781\u81F4","yeaft.modelMenu.noEffort":"\u5F53\u524D\u6A21\u578B\u6CA1\u6709\u53EF\u517C\u5BB9\u6620\u5C04\u7684\u63A8\u7406\u5F3A\u5EA6\u63A7\u5236\u3002","yeaft.modelMenu.configureHint":"Provider\u3001\u5BC6\u94A5\u3001\u6A21\u578B\u5217\u8868","yeaft.settings.title":"\u8BBE\u7F6E","yeaft.settings.tabs.vp":"VP \u5E93","yeaft.settings.tabs.search":"\u641C\u7D22","search.settings.backendTitle":"\u641C\u7D22\u540E\u7AEF","search.settings.backendDesc":"\u9009\u62E9 WebSearch \u5DE5\u5177\u9ED8\u8BA4\u4F7F\u7528\u7684\u540E\u7AEF\u3002\u4E3B\u540E\u7AEF\u5931\u8D25\u65F6,\u5F15\u64CE\u4F1A\u81EA\u52A8\u964D\u7EA7\u5230 HTML \u6293\u53D6\u3002","search.settings.backend.tavily":"Tavily","search.settings.backend.tavilyHint":"\u6258\u7BA1\u641C\u7D22 API\u3002\u514D\u8D39\u989D\u5EA6 1000 \u6B21/\u6708\u3002\u63A8\u8350\u3002","search.settings.backend.playwright":"Playwright \u670D\u52A1","search.settings.backend.playwrightHint":"\u81EA\u5EFA\u7684\u6D4F\u89C8\u5668\u5F0F\u641C\u7D22/\u6293\u53D6\u670D\u52A1,\u9002\u5408 IP \u4FE1\u8A89\u5DEE\u88AB bot \u68C0\u6D4B\u7684\u73AF\u5883\u3002\u5C1A\u672A\u4E0A\u7EBF\u3002","search.settings.comingSoon":"\u5373\u5C06\u63A8\u51FA","search.settings.tavilyKeyTitle":"Tavily API key","search.settings.tavilyKeyDesc":"\u4FDD\u5B58\u5728 agent \u7684 ~/.yeaft/config.json \u4E2D\u3002\u514D\u8D39\u7533\u8BF7:","search.settings.tavilyKeyUnchanged":"\u4FDD\u6301\u4E0D\u53D8","search.settings.clearKey":"\u6E05\u9664","search.settings.usageTitle":"\u672C\u6708\u7528\u91CF","search.settings.usageRefresh":"\u5237\u65B0","search.settings.usageLoading":"\u52A0\u8F7D\u4E2D\u2026","search.settings.usagePlan":"\u8BA1\u5212","search.settings.usageUsed":"\u5DF2\u7528","search.settings.usagePaygo":"\u6309\u91CF\u4ED8\u8D39","search.settings.usageError":"\u52A0\u8F7D\u7528\u91CF\u5931\u8D25","search.settings.save":"\u4FDD\u5B58","search.settings.saving":"\u4FDD\u5B58\u4E2D\u2026","search.settings.saveSuccess":"\u5DF2\u4FDD\u5B58","search.settings.cancel":"\u91CD\u7F6E","yeaft.settings.yeaftTitle":"\u7EBF\u7A0B\u5E76\u53D1\u4E0E\u5F52\u6863","yeaft.settings.yeaftDesc":"\u8C03\u6574\u53EF\u540C\u65F6\u8FD0\u884C\u7684\u7EBF\u7A0B\u6570\u91CF\uFF0C\u4EE5\u53CA\u95F2\u7F6E\u7EBF\u7A0B\u7684\u81EA\u52A8\u5F52\u6863\u65F6\u957F\u3002","yeaft.settings.maxConcurrentLabel":"\u6700\u5927\u5E76\u53D1\u7EBF\u7A0B\u6570","yeaft.settings.maxConcurrentHint":"\u540C\u65F6\u5728\u7EBF\u7684\u7EBF\u7A0B\u603B\u6570\u4E0A\u9650\uFF08\u542B\u59CB\u7EC8\u5B58\u5728\u7684 main \u4E3B\u7EBF\u7A0B\uFF09\u3002\u8D85\u8FC7\u6B64\u4E0A\u9650\u7684\u65B0\u7EBF\u7A0B\u5C06\u88AB\u62D2\u7EDD\uFF0C\u76F4\u81F3\u5DF2\u6709\u7EBF\u7A0B\u88AB\u5F52\u6863\u6216\u7EC8\u6B62\u3002\u8303\u56F4\uFF1A1-50\u3002","yeaft.settings.archiveIdleDaysLabel":"\u95F2\u7F6E\u591A\u4E45\u540E\u81EA\u52A8\u5F52\u6863\u7EBF\u7A0B\uFF08\u5929\uFF09","yeaft.settings.archiveIdleDaysHint":"\u65E0\u6D3B\u52A8\u8D85\u8FC7\u6B64\u5929\u6570\u7684\u7EBF\u7A0B\u5C06\u88AB\u5F52\u6863\u3002\u8303\u56F4\uFF1A1-3650\u3002","yeaft.settings.yeaftSaveBtn":"\u4FDD\u5B58","yeaft.settings.yeaftSaving":"\u4FDD\u5B58\u4E2D...","yeaft.settings.yeaftSaved":"\u5DF2\u4FDD\u5B58","yeaft.settings.yeaftLoading":"\u52A0\u8F7D\u4E2D...","yeaft.settings.yeaftLoadError":"\u52A0\u8F7D Yeaft \u8BBE\u7F6E\u5931\u8D25","yeaft.settings.yeaftSaveError":"\u4FDD\u5B58 Yeaft \u8BBE\u7F6E\u5931\u8D25","yeaft.settings.rangeErrorConcurrent":"\u5FC5\u987B\u5728 1 \u5230 50 \u4E4B\u95F4","yeaft.settings.rangeErrorArchive":"\u5FC5\u987B\u5728 1 \u5230 3650 \u4E4B\u95F4","chat.session.creating":"\u6B63\u5728\u521B\u5EFA\u4F1A\u8BDD...","chat.session.loadingHistory":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u5386\u53F2...","yeaft.historyLoad.error":"\u4F1A\u8BDD\u5386\u53F2\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\uFF0C\u6D88\u606F\u4ECD\u5B89\u5168\u4FDD\u5B58\u5728 Agent \u4E2D\u3002","yeaft.historyLoad.retry":"\u91CD\u65B0\u52A0\u8F7D","yeaft.sessionInventory.error":"\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D Session\uFF0C\u4F1A\u8BDD\u4ECD\u5B89\u5168\u4FDD\u5B58\u5728 Agent \u4E2D\u3002","yeaft.sessionInventory.retry":"\u91CD\u65B0\u52A0\u8F7D Session","chat.session.closed":"\u4F1A\u8BDD\u5DF2\u5173\u95ED","chat.session.agentOffline":"Agent \u5DF2\u79BB\u7EBF\uFF0C\u8BE5\u4F1A\u8BDD\u5C06\u5728 Agent \u91CD\u65B0\u4E0A\u7EBF\u540E\u6062\u590D\u3002","chat.execution.cancelled":"\u6267\u884C\u5DF2\u53D6\u6D88","chat.sidebar.expand":"\u5C55\u5F00\u83DC\u5355","chat.sidebar.collapse":"\u6536\u8D77\u4FA7\u8FB9\u680F","chat.sidebar.workbench":"\u5DE5\u5177\u9762\u677F","chat.sidebar.newConv":"\u4F1A\u8BDD","chat.sidebar.recentChats":"\u6700\u8FD1\u4F1A\u8BDD","chat.sidebar.resumeConv":"\u6062\u590D\u4F1A\u8BDD","chat.sidebar.lightMode":"\u6D45\u8272\u6A21\u5F0F","chat.sidebar.darkMode":"\u6DF1\u8272\u6A21\u5F0F","chat.sidebar.settings":"\u8BBE\u7F6E","chat.sidebar.emptyHint":"\u70B9\u51FB\u4E0A\u65B9\u6309\u94AE\u521B\u5EFA\u65B0\u4F1A\u8BDD","chat.sidebar.closeConv":"\u5173\u95ED\u4F1A\u8BDD","chat.sidebar.renameConv":"\u91CD\u547D\u540D","chat.sidebar.pin":"\u7F6E\u9876","chat.sidebar.unpin":"\u53D6\u6D88\u7F6E\u9876","chat.connection.connecting":"\u8FDE\u63A5\u4E2D...","chat.connection.reconnecting":"\u91CD\u8FDE\u4E2D ({current}/{max})...","chat.connection.updating":"\u670D\u52A1\u6B63\u5728\u66F4\u65B0\uFF0C\u8BF7\u7A0D\u5019...","chat.connection.disconnected":"\u8FDE\u63A5\u65AD\u5F00","chat.connection.reconnect":"\u91CD\u8FDE","chat.connection.reconnectFailed":"\u8FDE\u63A5\u65AD\u5F00\uFF0C\u8BF7\u70B9\u51FB\u91CD\u8FDE\u6309\u94AE\u91CD\u8BD5\u3002","chat.time.justNow":"\u521A\u521A","chat.time.minutesAgo":"{count}\u5206\u949F\u524D","chat.time.daysAgo":"{count}\u5929\u524D","chat.time.today":"\u4ECA\u5929","chat.time.yesterday":"\u6628\u5929","chat.delete.confirm":"\u786E\u5B9A\u8981\u5173\u95ED\u8FD9\u4E2A\u4F1A\u8BDD\u5417\uFF1F\u8FD9\u5C06\u7EC8\u6B62\u5BF9\u5E94\u7684 Claude \u8FDB\u7A0B\u3002","chat.delete.enterWorkDir":"\u8BF7\u8F93\u5165\u5DE5\u4F5C\u76EE\u5F55\u8DEF\u5F84","modal.newConv.workDir":"\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.inputOrSelect":"\u8F93\u5165\u6216\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.browse":"\u6D4F\u89C8\u76EE\u5F55","modal.newConv.noWorkDirs":"\u6682\u65E0\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5728\u7EBF\u7684 Agent","modal.newConv.create":"\u521B\u5EFA\u4F1A\u8BDD","modal.newConv.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","modal.newConv.provider":"\u63D0\u4F9B\u65B9","modal.newConv.model":"\u6A21\u578B","provider.claudeCode":"Claude Code","provider.copilot":"Copilot","modal.resume.workDir":"\u5DE5\u4F5C\u76EE\u5F55","modal.resume.inputOrSelect":"\u8F93\u5165\u6216\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.resume.browse":"\u6D4F\u89C8\u76EE\u5F55","modal.resume.tabFolders":"\u5DE5\u4F5C\u76EE\u5F55","modal.resume.tabSessions":"\u5386\u53F2\u4F1A\u8BDD","modal.resume.noWorkDirs":"\u6682\u65E0\u5DE5\u4F5C\u76EE\u5F55","modal.resume.selectWorkDir":"\u8BF7\u5148\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.resume.noSessions":"\u8BE5\u76EE\u5F55\u4E0B\u6CA1\u6709\u5386\u53F2\u4F1A\u8BDD","modal.resume.untitled":"\u672A\u547D\u540D\u4F1A\u8BDD","modal.resume.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","modal.resume.sessionLabel":"\u{1F4AC} \u5386\u53F2\u4F1A\u8BDD","modal.resume.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5728\u7EBF\u7684 Agent","modal.folderPicker.title":"\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.folderPicker.root":"\u6839\u76EE\u5F55 / \u9A71\u52A8\u5668","modal.folderPicker.path":"\u76EE\u5F55\u8DEF\u5F84","modal.folderPicker.go":"\u524D\u5F80","modal.folderPicker.ancestors":"\u4E0A\u7EA7\u76EE\u5F55\u5BFC\u822A","modal.folderPicker.directories":"\u5B50\u76EE\u5F55","modal.folderPicker.navigationHint":"\u70B9\u51FB\u6587\u4EF6\u5939\u8FDB\u5165\uFF0C\u518D\u9009\u62E9\u5F53\u524D\u76EE\u5F55\u3002","modal.folderPicker.selectCurrent":"\u9009\u62E9\u5F53\u524D\u76EE\u5F55","modal.folderPicker.loadFailed":"\u65E0\u6CD5\u6253\u5F00\u6B64\u76EE\u5F55\u3002\u8BF7\u68C0\u67E5\u8DEF\u5F84\u548C\u6743\u9650\uFF0C\u6216\u91CD\u8BD5\u3002","modal.folderPicker.unavailable":"Agent \u4E0D\u53EF\u7528\uFF0C\u8BF7\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","modal.folderPicker.timeout":"\u76EE\u5F55\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u3002","modal.folderPicker.parentDir":"\u4E0A\u7EA7\u76EE\u5F55","welcome.subtitle":"\u9762\u5411 Session\u3001\u5DE5\u5177\u548C VP \u534F\u4F5C\u7684 Web Code Agent","welcome.agentOnline":"{count} \u4E2A Agent \u5728\u7EBF","welcome.noAgents":"\u6682\u65E0\u5728\u7EBF Agent","welcome.noAgentsHint":"\u8BF7\u5148\u542F\u52A8 Agent \u7A0B\u5E8F\u8FDE\u63A5\u5230\u670D\u52A1\u5668","welcome.noAgent":"\u6682\u65E0\u5728\u7EBF Agent","welcome.noAgentHint":"\u8BF7\u5148\u542F\u52A8 Agent \u7A0B\u5E8F\u8FDE\u63A5\u5230\u670D\u52A1\u5668","welcome.setupAgent":"\u8BBE\u7F6E Agent","welcome.setupTitle":"\u8FDE\u63A5\u4F60\u7684 Agent","welcome.setupDesc":"\u5728\u4F60\u7684\u7535\u8111\u4E0A\u8FD0\u884C\u5B89\u88C5\u547D\u4EE4\uFF0C\u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002\u4EE3\u7801\u548C\u5DE5\u5177\u59CB\u7EC8\u7559\u5728\u672C\u673A\u3002","welcome.setupSecretLoading":"\u6B63\u5728\u51C6\u5907 Agent secret...","welcome.setupSecretError":"\u65E0\u6CD5\u51C6\u5907 Agent secret\uFF0C\u8BF7\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E\u91CD\u8BD5\u3002","installer.platformLabel":"\u76EE\u6807\u64CD\u4F5C\u7CFB\u7EDF","installer.posix":"Linux / macOS","installer.powershell":"Windows PowerShell","installer.copyCommand":"\u590D\u5236\u5B89\u88C5\u547D\u4EE4","installer.instruction":"\u5C06\u547D\u4EE4\u7C98\u8D34\u5230\u8FD0\u884C Agent \u7684\u7535\u8111\u7EC8\u7AEF\u4E2D\u6267\u884C\u3002","installer.viewCommand":"\u67E5\u770B\u547D\u4EE4","installer.copying":"\u590D\u5236\u4E2D\u2026","installer.copyFailed":"\u590D\u5236\u5931\u8D25","installer.secretLoading":"\u6B63\u5728\u51C6\u5907 Agent secret\u2026","installer.secretError":"\u65E0\u6CD5\u51C6\u5907 Agent secret\u3002","installer.secretRequired":"\u8BF7\u5148\u751F\u6210 Agent secret\uFF0C\u518D\u590D\u5236\u6B64\u547D\u4EE4\u3002","installer.commandUnavailable":"\u751F\u6210 Agent secret \u540E\u624D\u4F1A\u63D0\u4F9B\u547D\u4EE4\u3002","installer.copyError":"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u62E9\u5E76\u590D\u5236\u547D\u4EE4\u3002","installer.copySuccess":"\u547D\u4EE4\u5DF2\u590D\u5236\u3002","installer.openSecurity":"\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E","installer.note":"\u81EA\u52A8\u5B89\u88C5 Node.js \u548C\u79C1\u6709 Agent \u5B9E\u4F8B\u3002\u4EC5\u8FD0\u884C\u53EF\u4FE1\u670D\u52A1\u5668\u7684\u547D\u4EE4\uFF1B\u547D\u4EE4\u542B\u63A5\u5165\u5BC6\u94A5\uFF0C\u8BF7\u52FF\u5206\u4EAB\u3002","welcome.openSecuritySettings":"\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E","welcome.newConv":"\u4F1A\u8BDD","welcome.resumeHistory":"\u6062\u590D\u5386\u53F2","messages.loadingMore":"\u52A0\u8F7D\u66F4\u591A\u6D88\u606F...","messages.loadMore":"\u2191 \u70B9\u51FB\u6216\u5411\u4E0A\u6EDA\u52A8\u52A0\u8F7D\u66F4\u591A","message.loadingMore":"\u52A0\u8F7D\u66F4\u591A\u6D88\u606F...","message.loadMore":"\u2191 \u70B9\u51FB\u6216\u5411\u4E0A\u6EDA\u52A8\u52A0\u8F7D\u66F4\u591A","message.navigation":"\u5BF9\u8BDD\u5BFC\u822A","message.currentTurn":"\u2191 \u672C\u8F6E","message.scrollToLatest":"\u2193 \u6700\u65B0","message.backToCurrentTurn":"\u56DE\u5230\u672C\u8F6E\u95EE\u9898","message.showResponses":"\u5C55\u5F00 {count} \u6761\u56DE\u590D","message.hideResponses":"\u6298\u53E0\u56DE\u590D","message.assistant":"\u52A9\u624B","chat.waiting.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00","chat.connecting":"\u6B63\u5728\u8FDE\u63A5 provider \u4F1A\u8BDD...","chat.waiting.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","chat.waiting.agentOffline":"Agent \u5DF2\u79BB\u7EBF","chat.waiting.sessionLost":"Session \u5DF2\u4E22\u5931\uFF0C\u5DF2\u5237\u65B0\uFF0C\u7B49\u5F85\u6700\u65B0\u4FE1\u606F...","chat.waiting.cliExited":"Claude \u8FDB\u7A0B\u5DF2\u9000\u51FA\uFF0C\u5DF2\u5237\u65B0\uFF0C\u7B49\u5F85\u6700\u65B0\u4FE1\u606F...","chat.waiting.refresh":"\u5237\u65B0","chat.waiting.thinking":"AI \u6B63\u5728\u601D\u8003\u4E2D\uFF0C\u8BF7\u7A0D\u5019...","btw.hint":"esc \u9000\u51FA","btw.placeholder":"\u95EE\u4E2A\u987A\u4FBF\u7684\u95EE\u9898...","btw.close":"\u9000\u51FA BTW \u6A21\u5F0F","message.copyContent":"\u590D\u5236\u5185\u5BB9","message.copy":"\u590D\u5236\u5185\u5BB9","message.copied":"\u5DF2\u590D\u5236","message.copyCode":"\u590D\u5236\u4EE3\u7801","message.copyAll":"\u590D\u5236\u5168\u90E8","message.screenshot":"\u622A\u56FE","message.screenshotting":"\u6B63\u5728\u622A\u56FE...","message.exportMd":"\u5BFC\u51FA MD","message.askInput":"\u9700\u8981\u4F60\u7684\u8F93\u5165","message.askAnswered":"\u2713 \u5DF2\u56DE\u7B54","message.askCustom":"\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u56DE\u7B54...","message.askCustomPlaceholder":"\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u56DE\u7B54...","message.askSubmit":"\u63D0\u4EA4\u56DE\u7B54","message.askWaiting":"\u7B49\u5F85\u95EE\u9898\u52A0\u8F7D...","message.askSubmitting":"\u56DE\u7B54\u5DF2\u53D1\u9001\uFF0C\u7B49\u5F85 Agent \u786E\u8BA4\u2026","message.askUnconfirmed":"\u5C1A\u672A\u6536\u5230\u786E\u8BA4\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u53D1\u540C\u4E00\u56DE\u7B54\u3002","message.askRetry":"\u91CD\u53D1\u56DE\u7B54","message.askSendFailed":"\u56DE\u7B54\u672A\u53D1\u9001\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","message.askAgentUnavailable":"Agent \u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u6062\u590D\u8FDE\u63A5\u540E\u91CD\u53D1\u56DE\u7B54\u3002","message.askIdentityMismatch":"\u6B64\u95EE\u9898\u4E0E\u5F53\u524D\u8BF7\u6C42\u4E0D\u4E00\u81F4\uFF0C\u8BF7\u8BA9\u89D2\u8272\u91CD\u65B0\u63D0\u95EE\u3002","message.askExpired":"\u6B64\u95EE\u9898\u5DF2\u5931\u6548\uFF0C\u8BF7\u8BA9\u89D2\u8272\u91CD\u65B0\u63D0\u95EE","message.openInEditor":"\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00","message.resultDone":"\u5B8C\u6210","message.done":"\u5B8C\u6210","message.resultRead":"\u8BFB\u53D6 {file}","message.readFile":"\u8BFB\u53D6 {name}","message.file":"\u6587\u4EF6","message.attachImages":"{count} \u5F20\u56FE\u7247","message.imageCount":"{count} \u5F20\u56FE\u7247","message.imagePreview":"\u56FE\u7247\u9884\u89C8","message.zoomOut":"\u7F29\u5C0F\u56FE\u7247","message.zoomIn":"\u653E\u5927\u56FE\u7247","message.resetZoom":"\u91CD\u7F6E\u56FE\u7247\u7F29\u653E","message.previousImage":"\u4E0A\u4E00\u5F20\u56FE\u7247","message.nextImage":"\u4E0B\u4E00\u5F20\u56FE\u7247","message.imagePosition":"\u7B2C {current} \u5F20\uFF0C\u5171 {total} \u5F20","message.imageUnavailable":"\u56FE\u7247\u65E0\u6CD5\u52A0\u8F7D","message.attachFiles":"{count} \u4E2A\u6587\u4EF6","message.fileCount":"{count} \u4E2A\u6587\u4EF6","message.quote":"\u5F15\u7528","message.removeQuote":"\u5220\u9664\u5F15\u7528","message.replyingTo":"\u6B63\u5728\u56DE\u590D {author}","message.quotedFrom":"\u5F15\u7528\u81EA {author}","message.editAsNew":"\u7F16\u8F91","message.you":"\u4F60","input.upload":"\u4E0A\u4F20\u6587\u4EF6","input.placeholder":"\u8F93\u5165\u6D88\u606F...","input.send":"\u53D1\u9001","input.stopExecution":"\u505C\u6B62\u6267\u884C","chatInput.upload":"\u4E0A\u4F20\u6587\u4EF6","chatInput.uploading":"\u6B63\u5728\u4E0A\u4F20\u2026","chatInput.uploadFailed":"\u4E0A\u4F20\u5931\u8D25","chatInput.retryUpload":"\u91CD\u8BD5","chatInput.removeAttachment":"\u79FB\u9664\u9644\u4EF6","chatInput.placeholder":"\u8F93\u5165\u6D88\u606F...","chatInput.send":"\u53D1\u9001","chatInput.stop":"\u505C\u6B62\u6267\u884C","tools.thinking":"\u601D\u8003\u4E2D...","tools.read":"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6","tools.write":"\u6B63\u5728\u5199\u5165\u6587\u4EF6","tools.edit":"\u6B63\u5728\u7F16\u8F91\u6587\u4EF6","tools.bash":"\u6B63\u5728\u6267\u884C\u547D\u4EE4","tools.glob":"\u6B63\u5728\u641C\u7D22\u6587\u4EF6","tools.grep":"\u6B63\u5728\u641C\u7D22\u5185\u5BB9","tools.task":"\u6B63\u5728\u6267\u884C\u4EFB\u52A1","tools.webFetch":"\u6B63\u5728\u83B7\u53D6\u7F51\u9875","tools.webSearch":"\u6B63\u5728\u641C\u7D22\u7F51\u7EDC","tools.todoWrite":"\u6B63\u5728\u66F4\u65B0\u4EFB\u52A1","tools.executing":"\u6B63\u5728\u6267\u884C {name}","status.thinking":"\u601D\u8003\u4E2D...","status.reading":"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6","status.writing":"\u6B63\u5728\u5199\u5165\u6587\u4EF6","status.editing":"\u6B63\u5728\u7F16\u8F91\u6587\u4EF6","status.executing":"\u6B63\u5728\u6267\u884C\u547D\u4EE4","status.searchingFiles":"\u6B63\u5728\u641C\u7D22\u6587\u4EF6","status.searchingContent":"\u6B63\u5728\u641C\u7D22\u5185\u5BB9","status.executingTask":"\u6B63\u5728\u6267\u884C\u4EFB\u52A1","status.fetching":"\u6B63\u5728\u83B7\u53D6\u7F51\u9875","status.searching":"\u6B63\u5728\u641C\u7D22\u7F51\u7EDC","status.updatingTasks":"\u6B63\u5728\u66F4\u65B0\u4EFB\u52A1","status.executingTool":"\u6B63\u5728\u6267\u884C {name}","header.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","header.compacted":"\u4E0A\u4E0B\u6587\u538B\u7F29\u5B8C\u6210","chatHeader.newConv":"\u4F1A\u8BDD","chatHeader.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","chatHeader.compactDone":"\u4E0A\u4E0B\u6587\u538B\u7F29\u5B8C\u6210","chatHeader.compact":"\u538B\u7F29\u4E0A\u4E0B\u6587","chatHeader.resume":"\u6062\u590D\u4F1A\u8BDD","chatHeader.refresh":"\u5237\u65B0\u6D88\u606F","chatHeader.reloadPage":"\u5237\u65B0\u9875\u9762","chatHeader.clear":"\u6E05\u7A7A\u6D88\u606F","chatHeader.clearing":"\u6B63\u5728\u6E05\u7A7A\u4E0A\u4E0B\u6587...","chatHeader.clearDone":"\u4E0A\u4E0B\u6587\u5DF2\u6E05\u7A7A","chatHeader.confirmClear":"\u786E\u5B9A\u8981\u6E05\u7A7A\u5F53\u524D\u4F1A\u8BDD\u7684\u6240\u6709\u6D88\u606F\u5417\uFF1F","chatHeader.mcpConfig":"MCP \u670D\u52A1\u5668\u914D\u7F6E","chatHeader.mcpNeedRestart":"\u66F4\u6539\u5C06\u5728\u91CD\u542F\u4F1A\u8BDD\u540E\u751F\u6548\u3002","chatHeader.expertPanel":"\u5E2E\u5E2E\u56E2","chatHeader.subAgentPanel":"\u5B50\u4EE3\u7406","settings.close":"\u5173\u95ED\u8BBE\u7F6E","settings.tabs.account":"\u8D26\u53F7","settings.tabs.security":"\u5B89\u5168","settings.tabs.general":"\u901A\u7528","settings.tabs.sandbox":"Sandbox","settings.tabs.invitations":"\u9080\u8BF7","auth.sessionExpired":"\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\u3002","settings.sandbox.description":"\u5728\u672C Server \u7BA1\u7406\u7684 Docker \u5BB9\u5668\u4E2D\u8FD0\u884C\u4E00\u4E2A\u6301\u4E45\u5316 Yeaft Agent\u3002","settings.sandbox.containerAgent":"Docker \u5316 Yeaft Agent","settings.sandbox.serverManaged":"Server \u53EA\u7BA1\u7406\u6B64\u5BB9\u5668\u7684\u542F\u52A8\u3001\u505C\u6B62\u548C\u5220\u9664\uFF1B\u5BB9\u5668\u5185 Agent \u4ECD\u4F7F\u7528\u666E\u901A Yeaft \u8FDE\u63A5\u3002","settings.sandbox.agentName":"Agent \u540D\u79F0","settings.sandbox.sizeLabel":"\u89C4\u683C","settings.sandbox.enable":"\u542F\u7528 Sandbox","settings.sandbox.creating":"\u6B63\u5728\u8BBE\u7F6E\u2026","settings.sandbox.start":"\u542F\u52A8","settings.sandbox.stop":"\u505C\u6B62","settings.sandbox.retry":"\u91CD\u8BD5","settings.sandbox.remove":"\u79FB\u9664","settings.sandbox.removeConfirm":"\u6C38\u4E45\u79FB\u9664\u6B64 Sandbox\uFF0C\u5E76\u5220\u9664 home \u548C workspace \u6570\u636E\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002","settings.sandbox.size.small":"\u5C0F\u578B","settings.sandbox.size.normal":"\u6807\u51C6","settings.sandbox.state.reserving":"\u6B63\u5728\u8BBE\u7F6E","settings.sandbox.state.provisioning":"\u6B63\u5728\u51C6\u5907 Sandbox","settings.sandbox.state.starting":"\u6B63\u5728\u542F\u52A8","settings.sandbox.state.waiting_for_agent":"\u6B63\u5728\u7B49\u5F85 Agent","settings.sandbox.state.stopping":"\u6B63\u5728\u505C\u6B62","settings.sandbox.state.removing":"\u6B63\u5728\u79FB\u9664","settings.sandbox.state.removed":"\u5DF2\u79FB\u9664","settings.sandbox.state.running":"\u8FD0\u884C\u4E2D","settings.sandbox.state.stopped":"\u5DF2\u505C\u6B62","settings.sandbox.state.failed":"\u5931\u8D25","settings.sandbox.state.remove_failed":"\u79FB\u9664\u5931\u8D25","settings.sandbox.state.recovery_required":"\u9700\u8981\u6062\u590D\u5904\u7406","settings.sandbox.stage.reserving_capacity":"\u6B63\u5728\u9884\u7559\u5BB9\u91CF","settings.sandbox.stage.starting":"\u6B63\u5728\u542F\u52A8 Sandbox","settings.sandbox.stage.stopping":"\u6B63\u5728\u505C\u6B62 Sandbox","settings.sandbox.stage.retrying":"\u6B63\u5728\u91CD\u8BD5\u64CD\u4F5C","settings.sandbox.stage.removing":"\u6B63\u5728\u79FB\u9664 Sandbox","settings.sandbox.stage.complete":"\u5DF2\u5B8C\u6210","settings.sandbox.stage.dispatching":"\u6B63\u5728\u5B89\u5168\u5206\u53D1","settings.sandbox.stage.capacity_rejected":"\u6B63\u5728\u7B49\u5F85\u5BB9\u91CF","settings.sandbox.unavailable.disabled":"\u6B64 Server \u5C1A\u672A\u542F\u7528 Sandbox\u3002\u5347\u7EA7\u672C\u673A Agent \u4E0D\u4F1A\u81EA\u52A8\u542F\u7528\uFF1B\u9700\u8981 Server \u7BA1\u7406\u5458\u5F00\u542F Docker \u7BA1\u7406\u3002","settings.sandbox.unavailable.dockerUnavailable":"Server \u65E0\u6CD5\u4F7F\u7528 Docker\uFF0C\u8BF7\u68C0\u67E5 Sandbox \u7684 Server \u90E8\u7F72\u914D\u7F6E\u3002","settings.sandbox.unavailable.notEntitled":"\u6B64\u8D26\u53F7\u6682\u4E0D\u53EF\u4F7F\u7528 Sandbox\u3002","settings.sandbox.unavailable.capacityUnavailable":"Sandbox \u6682\u65F6\u4E0D\u53EF\u7528\u3002","settings.sandbox.error.SANDBOX_LOAD_FAILED":"\u65E0\u6CD5\u52A0\u8F7D Sandbox \u72B6\u6001\u3002","settings.sandbox.retryLoad":"\u91CD\u8BD5","settings.sandbox.error.SANDBOX_CREATE_FAILED":"\u65E0\u6CD5\u521B\u5EFA Sandbox\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","settings.sandbox.error.SANDBOX_ACTION_FAILED":"\u65E0\u6CD5\u5B89\u6392 Sandbox \u64CD\u4F5C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","settings.sandbox.error.SANDBOX_OPERATION_TIMEOUT":"\u64CD\u4F5C\u5DF2\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u6216\u79FB\u9664 Sandbox\u3002","settings.sandbox.error.SANDBOX_RUNTIME_FAILED":"Sandbox \u8FD0\u884C\u65F6\u62A5\u544A\u5931\u8D25\u3002","settings.sandbox.error.SANDBOX_CGROUP_SLICE_UNAVAILABLE":"\u65E0\u6CD5\u5728\u5BBF\u4E3B\u673A\u521D\u59CB\u5316\u5171\u4EAB\u8D44\u6E90 slice\uFF08\u9700\u8981 cgroup v2 \u4E0E root \u6743\u9650\uFF09\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\uFF0C\u6216\u79FB\u9664 SANDBOX_CGROUP_PARENT \u4EE5\u5173\u95ED\u8D44\u6E90\u4E0A\u9650\u3002","settings.account.username":"\u7528\u6237\u540D","settings.account.role":"\u89D2\u8272","settings.account.email":"\u90AE\u7BB1","settings.account.emailNotSet":"\u672A\u8BBE\u7F6E","settings.account.profileLoadFailed":"\u8D26\u53F7\u8D44\u6599\u52A0\u8F7D\u5931\u8D25","settings.account.logout":"\u9000\u51FA\u767B\u5F55","settings.account.roleAdmin":"\u7BA1\u7406\u5458","settings.account.rolePro":"Pro","settings.account.linkedAccounts":"\u5DF2\u5173\u8054\u8D26\u6237","settings.account.linkedDesc":"\u5173\u8054\u7B2C\u4E09\u65B9\u767B\u5F55\u540E\uFF0C\u4F7F\u7528\u4EFB\u610F\u4E00\u79CD\u65B9\u5F0F\u90FD\u80FD\u767B\u5F55\u6B64\u8D26\u53F7\u3002","settings.account.bind":"\u7ED1\u5B9A","settings.account.unbind":"\u89E3\u7ED1","settings.account.linked":"\u5DF2\u7ED1\u5B9A","settings.account.providerDisabled":"\u672A\u914D\u7F6E","settings.account.cantUnbindLast":"\u4E0D\u80FD\u89E3\u7ED1\u552F\u4E00\u7684\u767B\u5F55\u65B9\u5F0F","settings.account.unbindFailed":"\u89E3\u7ED1\u5931\u8D25\uFF1A{error}","settings.account.bindFailed":"\u7ED1\u5B9A\u5931\u8D25","settings.account.ssoBoundMsg":"\u5DF2\u6210\u529F\u7ED1\u5B9A {provider}\u3002","settings.account.ssoConflictMsg":"\u8BE5 {provider} \u8D26\u53F7\u5DF2\u88AB\u5176\u4ED6\u7528\u6237\u7ED1\u5B9A\u3002","settings.account.providerMicrosoft":"Microsoft","settings.account.providerGithub":"GitHub","settings.account.providerGoogle":"Google","settings.account.providerWechat":"\u5FAE\u4FE1","settings.account.providerAlipay":"\u652F\u4ED8\u5B9D","settings.security.agentKey":"Agent \u5BC6\u94A5","settings.security.agentKeyDesc":"\u7528\u4E8E Agent \u8FDE\u63A5\u8BA4\u8BC1\u7684\u5171\u4EAB\u5BC6\u94A5","settings.security.agentSetupCommands":"Agent \u63A5\u5165\u547D\u4EE4","settings.security.agentCmdInstall":"\u5B89\u88C5\u5E76\u8FDE\u63A5 Agent","settings.security.agentCmdService":"\u8FD0\u884C Agent server","settings.security.agentCmdContainer":"\u5728 Docker \u4E2D\u8FD0\u884C Agent","settings.security.agentCmdContainerDesc":"\u4E00\u6761\u547D\u4EE4\u5373\u53EF\u3002\u9996\u6B21\u8FD0\u884C\u4F1A\u81EA\u52A8\u521D\u59CB\u5316\u5171\u4EAB CPU/\u5185\u5B58\u9650\u5236\uFF08\u4F1A\u63D0\u793A\u8F93\u5165\u4E00\u6B21 sudo \u5BC6\u7801\uFF09\uFF1B\u4F20 --no-slice \u53EF\u4E0D\u542F\u7528\u8D44\u6E90\u4FDD\u62A4\u3002\u673A\u5668\u4E0A\u9700\u8981\u5DF2\u5B89\u88C5 Docker\u3002","settings.security.agentCmdNeedsSecret":"\u8BF7\u5148\u751F\u6210 Agent \u5BC6\u94A5\uFF0C\u4EE5\u521B\u5EFA\u5305\u542B server \u5730\u5740\u548C\u5BC6\u94A5\u7684\u547D\u4EE4\u3002","settings.security.agentCmdLlm":"Copilot \u624B\u52A8\u515C\u5E95","settings.security.agentCmdLlmDesc":"Agent \u8FDE\u63A5\u540E\uFF0C\u53EF\u5728 Agent \u8BBE\u7F6E\u4E2D\u914D\u7F6E\u53EF\u9009 LLM\u3002\u5B89\u88C5\u5668\u4E5F\u4F1A\u8F93\u51FA\u53EF\u5728\u7EC8\u7AEF\u4F7F\u7528\u7684\u7EDD\u5BF9\u8DEF\u5F84\u7BA1\u7406\u547D\u4EE4\u3002","settings.security.none":"\u65E0","settings.security.show":"\u663E\u793A","settings.security.hide":"\u9690\u85CF","settings.security.generateKey":"\u751F\u6210\u5BC6\u94A5","settings.security.resetKey":"\u91CD\u7F6E\u5BC6\u94A5","settings.security.resetting":"\u91CD\u7F6E\u4E2D...","settings.security.resetWarning":"\u91CD\u7F6E\u540E\u6240\u6709 Agent \u9700\u91CD\u65B0\u914D\u7F6E","settings.security.changePassword":"\u4FEE\u6539\u5BC6\u7801","settings.security.currentPassword":"\u5F53\u524D\u5BC6\u7801","settings.security.newPassword":"\u65B0\u5BC6\u7801\uFF08\u81F3\u5C116\u4F4D\uFF09","settings.security.confirmPassword":"\u786E\u8BA4\u65B0\u5BC6\u7801","settings.security.changeBtn":"\u4FEE\u6539\u5BC6\u7801","settings.security.changing":"\u4FEE\u6539\u4E2D...","settings.security.enterCurrentPwd":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","settings.security.newPwdMin":"\u65B0\u5BC6\u7801\u81F3\u5C116\u4F4D","settings.security.pwdMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","settings.security.pwdChanged":"\u5BC6\u7801\u4FEE\u6539\u6210\u529F","settings.security.setPassword":"\u8BBE\u7F6E\u5BC6\u7801","settings.security.setPasswordDesc":"\u4F60\u76EE\u524D\u901A\u8FC7 SSO \u767B\u5F55\uFF0C\u5C1A\u672A\u8BBE\u7F6E\u5BC6\u7801\u3002\u8BBE\u7F6E\u540E\u5373\u53EF\u4F7F\u7528\u7528\u6237\u540D + \u5BC6\u7801\u767B\u5F55\u3002","settings.security.setBtn":"\u8BBE\u7F6E\u5BC6\u7801","settings.security.pwdSet":"\u5BC6\u7801\u8BBE\u7F6E\u6210\u529F","settings.security.deleteAccount":"\u6CE8\u9500\u8D26\u6237","settings.security.deleteAccountDesc":"\u6C38\u4E45\u5220\u9664\u4F60\u7684\u8D26\u6237\u548C\u6240\u6709\u76F8\u5173\u6570\u636E\u3002\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002","settings.security.deleteBtn":"\u6CE8\u9500\u8D26\u6237","settings.security.deleteConfirmBtn":"\u786E\u8BA4\u5220\u9664","settings.security.deleteConfirmPlaceholder":"\u8F93\u5165 DELETE \u4EE5\u786E\u8BA4","settings.security.deleteConfirmRequired":"\u8BF7\u8F93\u5165 DELETE \u4EE5\u786E\u8BA4\u6CE8\u9500\u8D26\u6237","settings.security.deleteFailed":"\u6CE8\u9500\u8D26\u6237\u5931\u8D25","settings.security.deleting":"\u6CE8\u9500\u4E2D...","settings.general.theme":"\u4E3B\u9898","settings.general.lightTheme":"\u6D45\u8272","settings.general.darkTheme":"\u6DF1\u8272","settings.general.language":"\u8BED\u8A00","settings.general.currentValue":"\u5F53\u524D\uFF1A{value}","settings.general.workCenter":"\u5DE5\u4F5C\u4E2D\u5FC3\u5165\u53E3","settings.general.workCenterDesc":"\u5728\u4FA7\u680F\u9876\u680F\u663E\u793A\u5DE5\u4F5C\u4E2D\u5FC3\u5165\u53E3\uFF1B\u652F\u6301\u7684 Agent \u5728\u5DE5\u4F5C\u4E2D\u5FC3\u5185\u9009\u62E9\u3002","settings.general.workCenterOn":"\u5DF2\u5F00\u542F","settings.general.workCenterOff":"\u5DF2\u5173\u95ED","settings.general.telemetry":"\u6027\u80FD\u9065\u6D4B","settings.general.telemetryDesc":"\u5728\u672C\u5730\u6279\u91CF\u8BB0\u5F55\u8017\u65F6\u8BCA\u65AD\uFF1Btrace \u5185\u5BB9\u4E0D\u4F1A\u53D1\u9001\u5230\u670D\u52A1\u5668\u3002","settings.general.telemetryOn":"\u5DF2\u5F00\u542F","settings.general.telemetryOff":"\u5DF2\u5173\u95ED","settings.general.telemetryLoading":"\u52A0\u8F7D\u4E2D\u2026","settings.general.telemetrySaving":"\u4FDD\u5B58\u4E2D\u2026","settings.general.telemetryUnavailable":"\u72B6\u6001\u4E0D\u53EF\u7528","settings.general.telemetryLoadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5DF2\u4FDD\u5B58\u7684\u9065\u6D4B\u8BBE\u7F6E\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u8BBE\u7F6E\u540E\u91CD\u8BD5\u3002","settings.general.telemetrySaveFailed":"\u65E0\u6CD5\u786E\u8BA4\u9065\u6D4B\u8BBE\u7F6E\u53D8\u66F4\uFF0C\u5DF2\u6062\u590D\u663E\u793A\u4E4B\u524D\u7684\u8BBE\u7F6E\uFF1B\u8BF7\u91CD\u65B0\u6253\u5F00\u8BBE\u7F6E\u6838\u5BF9\u3002","settings.general.telemetryRawLimit":"Provider \u539F\u59CB\u8BF7\u6C42/\u54CD\u5E94\u4E0A\u9650\uFF08\u5B57\u8282\uFF09","settings.general.telemetryTraceTextLimit":"Debug Prompt \u4E0E\u6D88\u606F\u4E0A\u9650\uFF08\u5B57\u8282\uFF09","settings.invite.create":"\u521B\u5EFA\u9080\u8BF7\u7801","settings.invite.normalUser":"\u666E\u901A\u7528\u6237","settings.invite.proUser":"Pro \u7528\u6237","settings.invite.createBtn":"\u521B\u5EFA\u9080\u8BF7\u7801","settings.invite.creating":"\u521B\u5EFA\u4E2D...","settings.invite.list":"\u9080\u8BF7\u7801\u5217\u8868","settings.invite.used":"\u5DF2\u4F7F\u7528","settings.invite.expired":"\u5DF2\u8FC7\u671F","settings.invite.available":"\u53EF\u7528","settings.invite.usedBy":"\u4F7F\u7528\u8005: {user}","settings.invite.expiredAt":"\u8FC7\u671F\u4E8E: {time}","settings.invite.expiresAt":"\u6709\u6548\u81F3: {time}","settings.invite.noInvites":"\u6682\u65E0\u9080\u8BF7\u7801","settings.msg.copiedClipboard":"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F","settings.msg.copyFailed":"\u590D\u5236\u5931\u8D25","settings.msg.keyReset":"\u5BC6\u94A5\u5DF2\u91CD\u7F6E","settings.msg.resetFailed":"\u91CD\u7F6E\u5931\u8D25","settings.msg.changeFailed":"\u4FEE\u6539\u5931\u8D25","settings.msg.inviteCreated":"\u9080\u8BF7\u7801\u5DF2\u521B\u5EFA","settings.msg.createFailed":"\u521B\u5EFA\u5931\u8D25","settings.msg.inviteCopied":"\u9080\u8BF7\u7801\u5DF2\u590D\u5236","settings.msg.inviteDeleted":"\u9080\u8BF7\u7801\u5DF2\u5220\u9664","settings.msg.deleteFailed":"\u5220\u9664\u5931\u8D25","settings.tabs.llm":"LLM","settings.tabs.yeaft":"Yeaft","settings.yeaft.tabs.vp":"VP \u5E93","settings.yeaft.tabs.search":"\u641C\u7D22","settings.yeaft.tabs.mcp":"MCP","settings.mcp.title":"MCP \u670D\u52A1\u5668","settings.mcp.description":"\u901A\u8FC7 Model Context Protocol \u7ED9 Yeaft \u63A5\u5165\u66F4\u591A\u5DE5\u5177\u3002\u914D\u7F6E\u5199\u5165 agent \u4E0A\u7684 ~/.yeaft/config.json\uFF0C\u5DE5\u5177\u4F1A\u4EE5 mcp__<server>__<tool> \u7684\u5F62\u5F0F\u51FA\u73B0\u5728 LLM \u5DE5\u5177\u5217\u8868\u91CC\u3002","settings.mcp.reloadAll":"\u5168\u90E8\u91CD\u8FDE","settings.mcp.reloadOne":"\u91CD\u65B0\u8FDE\u63A5\u6B64\u670D\u52A1\u5668","settings.mcp.loading":"\u5904\u7406\u4E2D\u2026","settings.mcp.connected":"\u5DF2\u8FDE\u63A5","settings.mcp.disconnected":"\u672A\u8FDE\u63A5","settings.mcp.tools":"\u4E2A\u5DE5\u5177","settings.mcp.remove":"\u79FB\u9664","settings.mcp.empty":"\u8FD8\u6CA1\u6709\u914D\u7F6E MCP \u670D\u52A1\u5668\uFF0C\u53EF\u4EE5\u5728\u4E0B\u65B9\u6DFB\u52A0\u4E00\u4E2A\u3002","settings.mcp.addServer":"\u6DFB\u52A0\u670D\u52A1\u5668","settings.mcp.addServerDesc":"\u5927\u90E8\u5206 MCP \u670D\u52A1\u5668\u662F\u672C\u5730\u547D\u4EE4 \u2014 Yeaft \u4F1A\u901A\u8FC7 stdio \u542F\u52A8\u5B83\u5E76\u81EA\u52A8\u53D1\u73B0\u53EF\u7528\u5DE5\u5177\u3002","settings.mcp.serverName":"\u540D\u79F0","settings.mcp.command":"\u547D\u4EE4","settings.mcp.args":"\u53C2\u6570","settings.mcp.argsPlaceholder":"\u4F8B\u5982\uFF1A-y @modelcontextprotocol/server-filesystem /tmp","settings.mcp.env":"\u73AF\u5883\u53D8\u91CF","settings.mcp.envPlaceholder":"\u6BCF\u884C\u4E00\u4E2A KEY=value\uFF0C# \u5F00\u5934\u7684\u884C\u4F1A\u88AB\u5FFD\u7565\u3002","settings.mcp.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.mcp.add":"\u6DFB\u52A0","settings.mcp.cancel":"\u6E05\u7A7A","settings.mcp.connectFailed":"\u5DF2\u4FDD\u5B58\u4F46\u8FDE\u63A5\u5931\u8D25","settings.mcp.addSuccess":"\u670D\u52A1\u5668\u5DF2\u6DFB\u52A0","settings.mcp.removeSuccess":"\u670D\u52A1\u5668\u5DF2\u79FB\u9664","settings.mcp.reloadSuccess":"\u5DF2\u8BF7\u6C42\u91CD\u8FDE","settings.mcp.confirmRemove":'\u79FB\u9664 MCP \u670D\u52A1\u5668 "{name}"\uFF1F\u4E0B\u4E00\u4E2A LLM turn \u8D77\u5B83\u7684\u5DE5\u5177\u5C06\u4E0D\u518D\u53EF\u89C1\u3002',"settings.mcp.errors.nameRequired":"\u8BF7\u586B\u5199\u540D\u79F0","settings.mcp.errors.nameFormat":"\u540D\u79F0\u53EA\u80FD\u5305\u542B\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u77ED\u6A2A\u7EBF\u548C\u4E0B\u5212\u7EBF","settings.mcp.errors.commandRequired":"\u8BF7\u586B\u5199\u547D\u4EE4","settings.mcp.errors.argsParse":"\u53C2\u6570\u89E3\u6790\u5931\u8D25","settings.mcp.errors.envParse":"\u73AF\u5883\u53D8\u91CF\u89E3\u6790\u5931\u8D25","yeaft.session.title":"\u4F1A\u8BDD","yeaft.session.new":"+ \u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.create.title":"\u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.create.subtitle":"\u9009\u62E9\u8FD0\u884C\u4F4D\u7F6E\u548C\u5904\u7406\u4F1A\u8BDD\u7684 Provider\u3002","yeaft.session.create.close":"\u5173\u95ED","yeaft.session.create.nameLabel":"\u540D\u79F0","yeaft.session.create.namePlaceholder":"\u4F1A\u8BDD\u540D\u79F0\uFF08\u53EF\u9009\uFF09","yeaft.session.create.workDirLabel":"\u5DE5\u4F5C\u76EE\u5F55","yeaft.session.create.agentLabel":"Agent","yeaft.session.create.vpPicker":"\u9009\u62E9 VP","yeaft.session.create.vpNone":"\u672A\u9009\u62E9 VP","yeaft.session.create.vpCount":"\u5DF2\u9009 {n} \u4E2A VP","yeaft.session.create.untitled":"\u672A\u547D\u540D\u4F1A\u8BDD","yeaft.session.create.rosterEmpty":"\u6682\u65E0\u53EF\u7528 VP \u2014 \u8BF7\u5148\u5230\u89D2\u8272\u5E93\u521B\u5EFA\u3002","yeaft.session.create.rosterLoading":"VP \u52A0\u8F7D\u4E2D\u2026","yeaft.session.create.rosterError":"\u65E0\u6CD5\u4ECE\u5F53\u524D Agent \u52A0\u8F7D VP\u3002","yeaft.session.create.rosterRetry":"\u91CD\u8BD5","yeaft.vp.domain.general":"\u901A\u7528\u4E0E\u534F\u4F5C","yeaft.vp.domain.productDesign":"\u4EA7\u54C1\u4E0E\u4F53\u9A8C\u8BBE\u8BA1","yeaft.vp.domain.softwareSystems":"\u8F6F\u4EF6\u4E0E\u7CFB\u7EDF","yeaft.vp.domain.securityReliability":"\u5B89\u5168\u4E0E\u53EF\u9760\u6027","yeaft.vp.domain.scienceAnalysis":"\u79D1\u5B66\u4E0E\u5206\u6790","yeaft.vp.domain.philosophyPsychology":"\u54F2\u5B66\u4E0E\u5FC3\u7406","yeaft.vp.domain.strategyHistory":"\u6218\u7565\u4E0E\u5386\u53F2","yeaft.vp.domain.businessManagement":"\u5546\u4E1A\u4E0E\u7BA1\u7406","yeaft.vp.domain.artsCulture":"\u827A\u672F\u4E0E\u6587\u5316","yeaft.vp.domain.other":"\u5176\u4ED6\u9886\u57DF","yeaft.vp.domain.custom":"\u81EA\u5B9A\u4E49 VP","yeaft.session.create.defaultVpHint":"\u5F53\u6CA1\u6709 @ \u63D0\u53CA\u65F6\u9ED8\u8BA4\u56DE\u7B54\u7684 VP\u3002","yeaft.session.create.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","yeaft.session.create.sessionLabel":"\u{1F4AC} \u6B64\u76EE\u5F55\u4E0B\u7684 session","yeaft.session.create.noWorkDirs":"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u4F1A\u8BDD \u2014 \u5728\u4E0A\u65B9\u9009\u62E9\u6216\u8F93\u5165\u5DE5\u4F5C\u76EE\u5F55\u5F00\u59CB\u3002","yeaft.session.create.back":"\u8FD4\u56DE","yeaft.session.create.creating":"\u521B\u5EFA\u4E2D\u2026","yeaft.session.create.submit":"\u521B\u5EFA","yeaft.plugins.title":"\u63D2\u4EF6","yeaft.plugins.subtitle":"\u9009\u62E9\u6B64 Agent \u5411\u4F1A\u8BDD\u63D0\u4F9B\u54EA\u4E9B\u5DE5\u5177\u3001\u6280\u80FD\u548C MCP \u670D\u52A1\u5668\u3002","yeaft.plugins.agentLabel":"Agent","yeaft.plugins.overviewLabel":"\u63D2\u4EF6\u53EF\u7528\u6027\u6982\u89C8","yeaft.plugins.noAgent":"\u672A\u9009\u62E9 Agent","yeaft.plugins.allAvailable":"\u5DF2\u542F\u7528\u5168\u90E8\u53EF\u7528\u80FD\u529B\u3002","yeaft.plugins.selectedSummary":"\u5DF2\u542F\u7528 {count} \u9879\u80FD\u529B\u3002","yeaft.plugins.enabledLabel":"\u5DF2\u542F\u7528","yeaft.plugins.useAll":"\u4F7F\u7528\u5168\u90E8\u53EF\u7528\u9879","yeaft.plugins.loading":"\u6B63\u5728\u52A0\u8F7D\u63D2\u4EF6\u2026","yeaft.plugins.empty":"\u6B64 Agent \u6CA1\u6709\u53EF\u914D\u7F6E\u7684\u63D2\u4EF6\u3002","yeaft.plugins.loadError":"\u52A0\u8F7D\u63D2\u4EF6\u5931\u8D25\uFF1A{error}","yeaft.plugins.upgradeRequired":"\u6B64 Agent \u4E0D\u652F\u6301\u63D2\u4EF6\u3002\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u8BE5 Agent\u3002","yeaft.plugins.retry":"\u91CD\u8BD5","yeaft.plugins.searchPlaceholder":"\u641C\u7D22\u5DE5\u5177\u3001\u6280\u80FD\u548C MCP \u670D\u52A1\u5668","yeaft.plugins.resultCount":"{count} \u4E2A\u7ED3\u679C","yeaft.plugins.categoryLabel":"\u63D2\u4EF6\u5206\u7C7B","yeaft.plugins.all":"\u5168\u90E8","yeaft.plugins.noMatchesTitle":"\u6CA1\u6709\u5339\u914D\u7684\u63D2\u4EF6","yeaft.plugins.noMatchesBody":"\u8BF7\u5C1D\u8BD5\u5176\u4ED6\u641C\u7D22\u8BCD\u6216\u5206\u7C7B\u3002","yeaft.plugins.toolDescription":"Agent \u5185\u7F6E\u80FD\u529B","yeaft.plugins.skillDescription":"\u53EF\u590D\u7528\u7684 Agent \u5DE5\u4F5C\u6D41","yeaft.plugins.mcpDescription":"\u53EF\u63D0\u4F9B {count} \u4E2A\u5DE5\u5177","yeaft.plugins.unsavedChanges":"\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539","yeaft.plugins.tools":"\u5DE5\u5177","yeaft.plugins.skills":"\u6280\u80FD","yeaft.plugins.mcpServers":"MCP \u670D\u52A1\u5668","yeaft.plugins.toolsCount":"\u4E2A\u5DE5\u5177","yeaft.plugins.manageSkills":"\u7BA1\u7406\u6280\u80FD","yeaft.plugins.manageSkillsDescription":"\u4E3A\u6B64 Agent \u6216\u5F53\u524D\u9879\u76EE\u521B\u5EFA\u53EF\u590D\u7528\u6280\u80FD\u3002\u9879\u76EE\u7EA7\u6280\u80FD\u4F1A\u8986\u76D6\u540C\u540D\u7528\u6237\u7EA7\u6280\u80FD\u3002","yeaft.plugins.createSkill":"\u521B\u5EFA\u6280\u80FD","yeaft.plugins.removeSkill":"\u79FB\u9664","yeaft.plugins.confirmRemoveSkill":"\u79FB\u9664\u6280\u80FD\u201C{name}\u201D\uFF1F\u8FD9\u53EA\u4F1A\u5220\u9664\u8BE5\u5C42\u7EA7\u4E2D\u7684\u539F\u751F\u6280\u80FD\u3002","yeaft.plugins.skillManagementUpgradeRequired":"\u6B64 Agent \u5FC5\u987B\u5347\u7EA7\u540E\u624D\u80FD\u521B\u5EFA\u6216\u79FB\u9664\u6280\u80FD\u3002","yeaft.plugins.skillManagementVersionUnknown":"\u6B64 Agent \u5C1A\u672A\u4E0A\u62A5\u6280\u80FD\u7BA1\u7406\u652F\u6301\u3002\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u540E\u518D\u521B\u5EFA\u6216\u79FB\u9664\u6280\u80FD\u3002","yeaft.plugins.skillScope":"\u5C42\u7EA7","yeaft.plugins.userScope":"\u7528\u6237\u7EA7","yeaft.plugins.projectScope":"\u9879\u76EE\u7EA7","yeaft.plugins.userScopeDescription":"\u5BF9\u8BE5 Agent \u8FD0\u884C\u7684\u6240\u6709\u9879\u76EE\u53EF\u7528\u3002","yeaft.plugins.projectScopeDescription":"\u53EA\u5BF9\u5F53\u524D\u9879\u76EE\u53EF\u7528\uFF0C\u5E76\u8986\u76D6\u540C\u540D\u7528\u6237\u7EA7\u6280\u80FD\u3002","yeaft.plugins.projectScopeUnavailable":"\u8BF7\u9009\u62E9\u5E26\u9879\u76EE\u76EE\u5F55\u7684 Session\uFF0C\u624D\u80FD\u7BA1\u7406\u9879\u76EE\u7EA7\u6280\u80FD\u3002","yeaft.plugins.skillName":"\u540D\u79F0","yeaft.plugins.skillDescriptionLabel":"\u8BF4\u660E","yeaft.plugins.skillTrigger":"\u89E6\u53D1\u8BCD\uFF08\u53EF\u9009\uFF09","yeaft.plugins.skillInstructions":"\u6307\u4EE4","yeaft.plugins.resetSkillForm":"\u91CD\u7F6E","yeaft.plugins.skillTier.bundled":"\u5185\u7F6E \xB7 \u53EA\u8BFB","yeaft.plugins.skillTier.user":"\u7528\u6237\u7EA7","yeaft.plugins.skillTier.project":"\u9879\u76EE\u7EA7","yeaft.plugins.skillTier.project-claude":"Claude \u9879\u76EE \xB7 \u53EA\u8BFB","yeaft.plugins.skillTier.project-codex":"Codex \u9879\u76EE \xB7 \u53EA\u8BFB","yeaft.onboarding.ariaLabel":"Yeaft \u4E0A\u624B\u8BF4\u660E","yeaft.onboarding.topbarTitle":"\u5F00\u59CB\u4F7F\u7528 Yeaft","yeaft.onboarding.eyebrow":"Yeaft \u4E0A\u624B\u6307\u5357","yeaft.onboarding.title":"\u5148\u8FDE\u63A5 Agent\uFF0C\u518D\u5F00\u59CB\u4F1A\u8BDD","yeaft.onboarding.subtitle":"\u5728\u8D1F\u8D23\u6267\u884C\u5DE5\u5177\u7684\u673A\u5668\u4E0A\u76F4\u63A5\u8FD0\u884C\u4E0B\u9762\u7684\u547D\u4EE4\u3002agent secret \u5982\u679C\u4E0D\u5B58\u5728\uFF0C\u4F1A\u81EA\u52A8\u4E3A\u5F53\u524D\u8D26\u53F7\u751F\u6210\u3002","yeaft.onboarding.createSession":"\u521B\u5EFA\u6216\u6062\u590D Session","yeaft.onboarding.secretLoading":"\u6B63\u5728\u751F\u6210 agent secret\u2026","yeaft.onboarding.secretError":"\u52A0\u8F7D agent secret \u5931\u8D25\u3002","yeaft.onboarding.secretPending":"<\u6B63\u5728\u52A0\u8F7D-agent-secret>","yeaft.onboarding.installTitle":"\u5B89\u88C5\u5E76\u8FDE\u63A5 Agent","yeaft.onboarding.installDesc":"\u5728\u76EE\u6807\u673A\u5668\u8FD0\u884C\u4E00\u6761\u547D\u4EE4\uFF0C\u5B89\u88C5\u6240\u9700\u73AF\u5883\u3001\u521B\u5EFA\u79C1\u6709\u5B9E\u4F8B\u5E76\u8FDE\u63A5\u5F53\u524D server\u3002","yeaft.onboarding.connectTitle":"\u8FDE\u63A5\u8FD9\u4E2A Agent","yeaft.onboarding.connectDesc":"\u5B89\u88C5\u5668\u4F1A\u4F7F\u7528\u5F53\u524D server URL \u548C\u81EA\u52A8\u751F\u6210\u7684 secret\u3002","yeaft.restore.modal.empty":"\u6B64\u76EE\u5F55\u4E0B\u6CA1\u6709 yeaft session","yeaft.restore.modal.scanError":"\u626B\u63CF\u5931\u8D25: {message}","yeaft.restore.modal.restoreError":"\u6062\u590D\u5931\u8D25: {message}","settings.llm.noAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent \u4EE5\u7BA1\u7406 LLM \u914D\u7F6E\u3002","settings.llm.agentOffline":"Agent \u5F53\u524D\u79BB\u7EBF\uFF0C\u65E0\u6CD5\u52A0\u8F7D LLM \u914D\u7F6E\u3002\u8BF7\u7B49\u5F85 Agent \u4E0A\u7EBF\u540E\u91CD\u8BD5\u3002","settings.llm.loading":"\u6B63\u5728\u52A0\u8F7D\u914D\u7F6E...","settings.llm.loadError":"\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25","settings.llm.configureAgent":"\u914D\u7F6E\u5F53\u524D Agent \u7684 LLM","settings.llm.configureMenu":"\u8BBE\u7F6E LLM","settings.llm.simpleCopilotTitle":"\u63A8\u8350\uFF1AGitHub Copilot","settings.llm.useGitHubCopilot":"\u4F7F\u7528 GitHub Copilot","settings.llm.refreshingModels":"\u6B63\u5728\u5237\u65B0\u6A21\u578B...","settings.llm.managedCopilotTitle":"\u6258\u7BA1\u7684 GitHub Copilot","settings.llm.managedCopilotDesc":"Base URL\u3001\u8BA4\u8BC1\u3001\u6A21\u578B\u76EE\u5F55\u548C\u6BCF\u4E2A\u6A21\u578B\u7684 API \u534F\u8BAE\u90FD\u81EA\u52A8\u7BA1\u7406\u3002Claude \u6A21\u578B\u8D70 Anthropic Messages\uFF1BGPT/o \u6A21\u578B\u8D70 OpenAI Responses\u3002","settings.llm.providersTitle":"\u670D\u52A1\u5546","settings.llm.testFailed":"\u8FDE\u63A5\u6D4B\u8BD5\u5931\u8D25","settings.llm.saveSuccess":"LLM \u8BBE\u7F6E\u5DF2\u4FDD\u5B58","settings.llm.saveFailed":"\u4FDD\u5B58 LLM \u8BBE\u7F6E\u5931\u8D25","settings.llm.presets.title":"\u5FEB\u901F\u914D\u7F6E","settings.llm.providersDesc":"\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\uFF0C\u4FDD\u5B58\u540E\u5373\u53EF\u5728 Session \u4E2D\u4F7F\u7528\u3002","settings.llm.agentProviders":"\u5F53\u524D agent providers","settings.llm.agentBadge":"\u5F53\u524D agent","settings.llm.addProvider":"\u6DFB\u52A0\u670D\u52A1\u5546","settings.llm.addFromPreset":"\u4ECE\u76EE\u5F55\u6DFB\u52A0","settings.llm.preset.title":"\u670D\u52A1\u5546\u76EE\u5F55\uFF08models.dev\uFF09","settings.llm.preset.refresh":"\u5237\u65B0\u76EE\u5F55","settings.llm.preset.loading":"\u52A0\u8F7D\u76EE\u5F55\u2026","settings.llm.preset.empty":"\u76EE\u5F55\u4E3A\u7A7A\u3002","settings.llm.preset.pickProvider":"\u5728\u5DE6\u4FA7\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\u4EE5\u67E5\u770B\u6A21\u578B\u3002","settings.llm.preset.filterProviders":"\u8FC7\u6EE4\u670D\u52A1\u5546\u2026","settings.llm.preset.filterModels":"\u8FC7\u6EE4\u6A21\u578B\u2026","settings.llm.preset.selectAll":"\u5168\u9009","settings.llm.preset.selectNone":"\u6E05\u7A7A","settings.llm.preset.cancel":"\u53D6\u6D88","settings.llm.preset.add":"\u6DFB\u52A0\u5230\u670D\u52A1\u5546\u5217\u8868","settings.llm.preset.fetchedAt":"\u76EE\u5F55\u5DF2\u66F4\u65B0 {minutes} \u5206\u949F","settings.llm.addModel":"\u6DFB\u52A0\u6A21\u578B","settings.llm.removeModel":"\u79FB\u9664\u6A21\u578B","settings.llm.providerName":"\u540D\u79F0","settings.llm.providerNamePlaceholder":"\u4F8B\u5982 my-proxy","settings.llm.baseUrl":"Base URL","settings.llm.baseUrlPlaceholder":"\u4F8B\u5982 http://localhost:6628/v1","settings.llm.apiKey":"API Key","settings.llm.apiKeyPlaceholder":"\u8F93\u5165 API Key","settings.llm.protocol":"\u534F\u8BAE","settings.llm.protocolOpenAI":"OpenAI \u517C\u5BB9","settings.llm.protocolOpenAIResponses":"OpenAI Responses (GPT-5)","settings.llm.protocolAnthropic":"Anthropic \u539F\u751F","settings.llm.protocolHint.anthropic":"Claude \u539F\u751F Messages API\u3002","settings.llm.protocolHint.openai":"Chat Completions /v1/chat/completions \u2014 GPT-4 \u53CA\u5927\u591A\u6570\u517C\u5BB9\u4EE3\u7406\u3002","settings.llm.protocolHint.openaiResponses":"Responses API /v1/responses \u2014 GPT-5 \u7CFB\u5217\u5FC5\u987B\u3002","settings.llm.modelCtxPlaceholder":"\u4E0A\u4E0B\u6587","settings.llm.modelMaxPlaceholder":"\u8F93\u51FA","settings.llm.models":"\u5019\u9009\u6A21\u578B ID","settings.llm.modelsPlaceholder":"\u6A21\u578B ID\uFF0C\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\uFF0C\u4F8B\u5982 claude-sonnet-4-20250514, gpt-5","settings.llm.modelsHint":"\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\u3002","settings.llm.removeProvider":"\u79FB\u9664","settings.llm.modelSelectionTitle":"\u6A21\u578B\u9009\u62E9","settings.llm.modelSelectionDesc":"\u9009\u62E9\u9ED8\u8BA4\u6A21\u578B\u3002","settings.llm.primaryModel":"\u4E3B\u6A21\u578B","settings.llm.primaryModelDesc":"\u7528\u4E8E\u7528\u6237\u5BF9\u8BDD","settings.llm.fastModel":"\u5FEB\u901F\u6A21\u578B","settings.llm.fastModelDesc":"\u7528\u4E8E\u5185\u90E8\u4EFB\u52A1\uFF08\u8BB0\u5FC6\u3001\u603B\u7ED3\uFF09","settings.llm.noModels":"\u6682\u65E0\u53EF\u7528\u6A21\u578B\u3002\u8BF7\u5148\u6DFB\u52A0\u670D\u52A1\u5546\u3002","settings.llm.selectModel":"\u9009\u62E9\u6A21\u578B...","settings.llm.debugTitle":"\u8C03\u8BD5\u8F68\u8FF9","settings.llm.debugDesc":"\u6309 Agent \u5F00\u542F\u9010\u8F6E\u8C03\u8BD5\u8F68\u8FF9\u6536\u96C6\uFF08\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3001LLM \u8C03\u7528\u3001\u5DE5\u5177\u8F7D\u8377\uFF09\u3002","settings.llm.enableDebug":"\u542F\u7528\u8C03\u8BD5\u8F68\u8FF9","settings.llm.save":"\u4FDD\u5B58\u66F4\u6539","settings.llm.saving":"\u4FDD\u5B58\u4E2D...","settings.llm.saved":"\u914D\u7F6E\u5DF2\u4FDD\u5B58","settings.llm.savedRefreshWarning":"\u914D\u7F6E\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u5B9E\u65F6\u6A21\u578B\u76EE\u5F55\u5237\u65B0\u5931\u8D25\uFF1A{error}","settings.llm.unsavedChanges":"\u6709\u672A\u4FDD\u5B58\u7684\u66F4\u6539","settings.llm.confirmRemoveProvider":"\u786E\u5B9A\u79FB\u9664\u6B64\u670D\u52A1\u5546\uFF1F","settings.llm.setupTitle":"\u8FDE\u63A5\u6A21\u578B","settings.llm.setupDesc":"\u63A8\u8350\u4F7F\u7528 GitHub Copilot\uFF1B\u4E5F\u53EF\u4EE5\u6DFB\u52A0\u81EA\u5DF1\u7684 API \u670D\u52A1\u5546\u3002","settings.llm.providerSectionHint":"\u53EA\u4FDD\u7559\u8FDE\u63A5\u6A21\u578B\u5FC5\u9700\u7684\u4FE1\u606F\u3002","settings.tabs.dashboard":"\u4EEA\u8868\u677F","settings.dashboard.totalUsers":"\u603B\u7528\u6237\u6570","settings.dashboard.onlineUsers":"\u5728\u7EBF\u7528\u6237","settings.dashboard.activeUsers":"\u6D3B\u8DC3\u7528\u6237","settings.dashboard.onlineAgents":"\u5728\u7EBFAgent","settings.dashboard.totalSessions":"\u603B\u4F1A\u8BDD\u6570","settings.dashboard.todayActive":"\u4ECA\u65E5\u6D3B\u8DC3","settings.dashboard.todayMessages":"\u4ECA\u65E5\u6D88\u606F","settings.dashboard.todayUserTurns":"\u4ECA\u65E5\u7528\u6237 Turn","settings.dashboard.totalTokens":"\u603B Token","settings.dashboard.tokenAccuracy":"\u6765\u81EA\u6A21\u578B\u670D\u52A1\u5546\u8FD4\u56DE\u7684\u5B9E\u9645\u7528\u91CF\uFF1B\u4ECE\u542F\u7528\u6309\u7528\u6237 Token \u7EDF\u8BA1\u7684\u7248\u672C\u5F00\u59CB\u7D2F\u8BA1\uFF0C\u4E14\u4E0D\u5305\u542B\u5FC3\u8DF3\u3002","settings.dashboard.agentTurns":"Agent Turn","settings.dashboard.agentSessions":"Agent Session","settings.dashboard.turns":"Turn","settings.dashboard.tokens":"Token","settings.dashboard.inputTokens":"\u8F93\u5165","settings.dashboard.outputTokens":"\u8F93\u51FA","settings.dashboard.cacheTokens":"\u7F13\u5B58","settings.dashboard.today":"\u4ECA\u5929","settings.dashboard.thisWeek":"\u672C\u5468","settings.dashboard.thisMonth":"\u672C\u6708","settings.dashboard.all":"\u5168\u90E8","settings.dashboard.general":"\u5E38\u89C4","settings.dashboard.detailed":"\u8BE6\u7EC6\u4FE1\u606F","settings.dashboard.users":"\u7528\u6237","settings.dashboard.agents":"Agent","settings.dashboard.time":"\u65F6\u95F4","settings.dashboard.active":"\u6D3B\u8DC3","settings.dashboard.inactive":"\u672A\u6D3B\u8DC3","settings.dashboard.activeOnly":"\u4EC5\u6D3B\u8DC3","settings.dashboard.inactiveOnly":"\u4EC5\u672A\u6D3B\u8DC3","settings.dashboard.userUsage":"\u7528\u6237\u7528\u91CF","settings.dashboard.refresh":"\u5237\u65B0","settings.dashboard.name":"\u540D\u79F0","settings.dashboard.messages":"\u6D88\u606F\u6570","settings.dashboard.userTurns":"\u7528\u6237 Turn \u6570","settings.dashboard.sessions":"\u4F1A\u8BDD\u6570","settings.dashboard.requests":"\u8BF7\u6C42\u6570","settings.dashboard.traffic":"\u6D41\u91CF","settings.dashboard.lastTurnCompleted":"\u6700\u540E Turn \u7ED3\u675F\u65F6\u95F4","settings.dashboard.status":"\u72B6\u6001","settings.dashboard.latency":"\u5EF6\u8FDF","settings.dashboard.version":"\u7248\u672C","settings.dashboard.owner":"\u6240\u6709\u8005","settings.dashboard.role":"\u89D2\u8272","settings.dashboard.agent":"Agent","settings.dashboard.online":"\u5728\u7EBF","settings.dashboard.offline":"\u79BB\u7EBF","settings.dashboard.noAgents":"\u6682\u65E0\u6CE8\u518C Agent","settings.dashboard.noUserData":"\u6682\u65E0\u7528\u6237\u6570\u636E","settings.dashboard.noOnlineUsers":"\u6682\u65E0\u5728\u7EBF\u7528\u6237","settings.dashboard.loading":"\u52A0\u8F7D\u4E2D...","settings.dashboard.error":"\u6570\u636E\u52A0\u8F7D\u5931\u8D25","settings.dashboard.ago":"{time}\u524D","settings.dashboard.loadMore":"\u52A0\u8F7D\u66F4\u591A\uFF08\u5269\u4F59 {remaining} \u6761\uFF09","workbench.title":"Workbench","workbench.openItems":"\u5DF2\u6253\u5F00\u7684 Workbench \u9879\u76EE","workbench.addItem":"\u6DFB\u52A0 Workbench \u9879\u76EE","workbench.addItemHint":"\u4F7F\u7528 + \u6253\u5F00\u6587\u4EF6\u3001\u7EC8\u7AEF\u3001Git \u6216\u6D4F\u89C8\u5668\u3002","workbench.closeItem":"\u5173\u95ED {name}","workbench.chooseCapability":"\u9009\u62E9\u80FD\u529B","workbench.chooseCapabilityHint":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u5177\u5F00\u59CB\u4F7F\u7528\uFF1B\u5DF2\u6253\u5F00\u7684\u5DE5\u5177\u4F1A\u4FDD\u7559\u5728\u6807\u7B7E\u9875\u4E2D\u3002","workbench.terminal":"\u7EC8\u7AEF","workbench.terminalDescription":"\u5728\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u8FD0\u884C\u547D\u4EE4\u5E76\u7BA1\u7406\u7EC8\u7AEF\u5206\u5C4F\u3002","workbench.git":"Git","workbench.gitDescription":"\u67E5\u770B\u4ED3\u5E93\u72B6\u6001\u3001\u4EE3\u7801\u5DEE\u5F02\u548C\u53D8\u66F4\u6587\u4EF6\u3002","workbench.files":"\u6587\u4EF6","workbench.filesDescription":"\u6D4F\u89C8\u3001\u9884\u89C8\u548C\u7F16\u8F91\u6240\u9009 Agent \u4E0A\u7684\u6587\u4EF6\u3002","workbench.browser":"\u6D4F\u89C8\u5668","workbench.browserDescription":"\u901A\u8FC7\u5B9E\u65F6 WebRTC \u753B\u9762\u67E5\u770B Agent \u672C\u5730\u6D4F\u89C8\u5668\u3002","workbench.available":"\u53EF\u7528","workbench.enableRequired":"\u9700\u8981\u542F\u7528","workbench.unavailable":"\u5F53\u524D Agent \u4E0D\u53EF\u7528","workbench.capabilityUnavailable":"\u6240\u9009 Agent \u672A\u63D0\u4F9B\u6B64\u80FD\u529B\u3002","workbench.browserUnavailable":"\u6D4F\u89C8\u5668\u5DF2\u88AB\u7BA1\u7406\u5458\u5173\u95ED\uFF0C\u6216\u5F53\u524D Agent \u4E0D\u652F\u6301\u3002\u8BF7\u5347\u7EA7 Agent\uFF0C\u6216\u8BA9\u7BA1\u7406\u5458\u5F00\u542F\u6D4F\u89C8\u5668\u8DEF\u7531\u3002","workbench.browserReadyHint":"\u8F93\u5165\u5730\u5740\u4EE5\u542F\u52A8\u9694\u79BB\u7684 Agent \u672C\u5730\u6D4F\u89C8\u5668\u3002\u70B9\u51FB\u5B9E\u65F6\u753B\u9762\u540E\u53EF\u4F7F\u7528\u9F20\u6807\u548C\u952E\u76D8\u4EA4\u4E92\u3002","workbench.browserStart":"\u542F\u52A8\u6D4F\u89C8\u5668","workbench.browserAddressLabel":"\u6D4F\u89C8\u5668\u5730\u5740","workbench.browserAddressPlaceholder":"example.com","workbench.browserAddressInvalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684 HTTP \u6216 HTTPS \u5730\u5740\u3002","workbench.browserInteractionUnavailable":"\u6D4F\u89C8\u5668\u8F93\u5165\u94FE\u8DEF\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u7B49\u5F85 WebRTC \u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","workbench.browserGo":"\u524D\u5F80","workbench.browserStarting":"\u6B63\u5728\u542F\u52A8 Agent \u672C\u5730\u6D4F\u89C8\u5668\u2026","workbench.browserConnecting":"\u6B63\u5728\u8FDE\u63A5\u5B9E\u65F6 WebRTC \u753B\u9762\u2026","workbench.browserIceServersMissing":"\u6D4F\u89C8\u5668\u753B\u9762\u65E0\u6CD5\u8FDE\u63A5\u5F53\u524D Agent\uFF0C\u4E14 Server \u672A\u914D\u7F6E STUN \u6216 TURN \u670D\u52A1\u3002\u8BF7\u8BA9\u7BA1\u7406\u5458\u914D\u7F6E Browser ICE/TURN \u540E\u91CD\u8BD5\u3002","workbench.browserIceConnectionFailed":"\u6D4F\u89C8\u5668 WebRTC \u8FDE\u63A5\u5931\u8D25\u3002\u8BF7\u68C0\u67E5\u5DF2\u914D\u7F6E\u7684 TURN \u670D\u52A1\u662F\u5426\u80FD\u88AB Web \u6D4F\u89C8\u5668\u548C Agent \u540C\u65F6\u8BBF\u95EE\uFF0C\u7136\u540E\u91CD\u8BD5\u3002","workbench.browserPeerAttachTimeout":"\u8FDE\u63A5\u6D4F\u89C8\u5668 WebRTC \u753B\u9762\u8D85\u65F6\u3002\u8BF7\u68C0\u67E5 Browser ICE/TURN \u8FDE\u901A\u6027\uFF0C\u7136\u540E\u91CD\u8BD5\u3002","workbench.browserEnd":"\u7ED3\u675F\u6D4F\u89C8\u5668","workbench.browserVideoLabel":"Agent \u6D4F\u89C8\u5668\u5B9E\u65F6\u753B\u9762","workbench.browserInputLabel":"\u6D4F\u89C8\u5668\u952E\u76D8\u8F93\u5165","workbench.browserStatusConnecting":"\u8FDE\u63A5\u4E2D","workbench.browserProtocolUnavailable":"\u5F53\u524D Server \u8FDE\u63A5\u4E0D\u652F\u6301 Browser Runtime \u534F\u8BAE\u3002","workbench.browserChecking":"\u6B63\u5728\u68C0\u67E5\u6240\u9009 Agent \u7684 Browser Runtime\u2026","workbench.browserPlatformUnsupported":"\u6240\u9009 Agent \u65E0\u6CD5\u8FD0\u884C\u5F53\u524D Browser Runtime \u6570\u636E\u94FE\u8DEF\u3002","workbench.browserSetupTitle":"\u542F\u7528\u6D4F\u89C8\u5668","workbench.browserOptionalInstall":"\u6D4F\u89C8\u5668\u9700\u8981\u5728\u5F53\u524D Agent \u5B89\u88C5\u56FA\u5B9A\u7248\u672C Chrome for Testing\u3002\u542F\u7528\u540E\u5C06\u4E0B\u8F7D\u7EA6 {size}\uFF0C\u6821\u9A8C\u5E76\u5B89\u88C5\u7248\u672C {build}\uFF0C\u7136\u540E\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u3002","workbench.browserInstallDiskNote":"\u70B9\u51FB\u201C\u542F\u7528\u6D4F\u89C8\u5668\u201D\u524D\u4E0D\u4F1A\u4E0B\u8F7D\u4EFB\u4F55\u5185\u5BB9\uFF1B\u6D4F\u89C8\u5668\u6587\u4EF6\u53EA\u5B58\u653E\u5728\u5F53\u524D Agent instance \u7684\u6570\u636E\u76EE\u5F55\u3002","workbench.browserInstallAction":"\u542F\u7528\u6D4F\u89C8\u5668\uFF08{size}\uFF09","workbench.browserInstalling":"\u6B63\u5728\u542F\u7528\u6D4F\u89C8\u5668\uFF1A\u4E0B\u8F7D\u5E76\u6821\u9A8C Chrome for Testing {build}\u2026","workbench.browserInstallKeepOpen":"\u53EF\u4EE5\u79BB\u5F00\u6B64\u9762\u677F\u3002\u518D\u6B21\u6253\u5F00\u6D4F\u89C8\u5668\u4F1A\u6062\u590D\u663E\u793A\u5F53\u524D\u5B89\u88C5\u72B6\u6001\uFF0C\u4E0D\u4F1A\u91CD\u590D\u4E0B\u8F7D\u3002","workbench.browserInstallProgressLabel":"\u6D4F\u89C8\u5668\u4E0B\u8F7D\u8FDB\u5EA6","workbench.browserInstallProgress":"\u5DF2\u4E0B\u8F7D {downloaded} / {total}","workbench.browserInstalledEnable":"\u6D4F\u89C8\u5668\u6587\u4EF6\u5DF2\u7ECF\u5B89\u88C5\u3002\u542F\u7528\u6D4F\u89C8\u5668\u5E76\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u5373\u53EF\u4F7F\u7528\u3002","workbench.browserEnableAction":"\u542F\u7528\u6D4F\u89C8\u5668","workbench.browserEnabling":"\u6B63\u5728\u5B8C\u6210\u8BBE\u7F6E\u5E76\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u2026","workbench.browserStatusInstalling":"\u5B89\u88C5\u4E2D","workbench.browserStatusProbing":"\u63A2\u6D4B\u4E2D","workbench.backToCapabilities":"\u8FD4\u56DE\u80FD\u529B\u5217\u8868","workbench.closeCapability":"\u5173\u95ED\u5F53\u524D\u80FD\u529B","workbench.maximize":"\u6700\u5927\u5316\u9762\u677F","workbench.restore":"\u8FD8\u539F\u9762\u677F","workbench.collapse":"\u6536\u8D77\u9762\u677F","theme.switchToLight":"\u5207\u6362\u5230\u6D45\u8272\u4E3B\u9898","theme.switchToDark":"\u5207\u6362\u5230\u6DF1\u8272\u4E3B\u9898","theme.toLight":"\u5207\u6362\u5230\u6D45\u8272\u4E3B\u9898","theme.toDark":"\u5207\u6362\u5230\u6DF1\u8272\u4E3B\u9898","terminal.splitH":"\u6C34\u5E73\u5206\u5C4F\uFF08\u5DE6\u53F3\uFF09","terminal.splitV":"\u5782\u76F4\u5206\u5C4F\uFF08\u4E0A\u4E0B\uFF09","terminal.close":"\u5173\u95ED\u5F53\u524D\u7EC8\u7AEF","terminal.autoCreate":"\u6253\u5F00\u7EC8\u7AEF\u80FD\u529B\u65F6\u5C06\u81EA\u52A8\u521B\u5EFA\u7EC8\u7AEF","terminal.xtermError":"xterm.js \u672A\u52A0\u8F7D\uFF0C\u8BF7\u5237\u65B0\u9875\u9762","terminal.xtermNotLoaded":"xterm.js \u672A\u52A0\u8F7D\uFF0C\u8BF7\u5237\u65B0\u9875\u9762","terminal.mountError":"\u7EC8\u7AEF\u5BB9\u5668\u6302\u8F7D\u5931\u8D25","terminal.mountFailed":"\u7EC8\u7AEF\u5BB9\u5668\u6302\u8F7D\u5931\u8D25","terminal.createError":"\u7EC8\u7AEF\u521B\u5EFA\u5931\u8D25","terminal.createFailed":"\u7EC8\u7AEF\u521B\u5EFA\u5931\u8D25","terminal.error":"\u7EC8\u7AEF\u9519\u8BEF","git.selectFolder":"\u9009\u62E9\u6587\u4EF6\u5939","git.repoPath":"\u8F93\u5165 Git \u4ED3\u5E93\u8DEF\u5F84...","git.repoPathPlaceholder":"\u8F93\u5165 Git \u4ED3\u5E93\u8DEF\u5F84...","git.workDir":"Git \u5DE5\u4F5C\u76EE\u5F55","git.loadStatus":"\u52A0\u8F7D Git \u72B6\u6001","git.loading":"\u52A0\u8F7D Git \u72B6\u6001...","git.loadingStatus":"\u52A0\u8F7D Git \u72B6\u6001...","git.clean":"\u5DE5\u4F5C\u533A\u5E72\u51C0\uFF0C\u65E0\u53D8\u66F4","git.cleanWorkDir":"\u5DE5\u4F5C\u533A\u5E72\u51C0\uFF0C\u65E0\u53D8\u66F4","git.selectAgent":"\u9009\u62E9 Agent \u540E\u52A0\u8F7D Git \u72B6\u6001","git.selectAgentFirst":"\u9009\u62E9 Agent \u540E\u52A0\u8F7D Git \u72B6\u6001","git.workItemRootRequired":"\u6B64\u5DE5\u4F5C\u9879\u4F7F\u7528\u4ED3\u5E93\u5B50\u76EE\u5F55\uFF0C\u65E0\u6CD5\u5728\u6B64\u64CD\u4F5C Git\u3002\u6587\u4EF6\u548C\u7EC8\u7AEF\u4ECD\u53EF\u4F7F\u7528\uFF1BGit \u64CD\u4F5C\u9700\u8981\u5DE5\u4F5C\u9879\u4EE5\u4ED3\u5E93\u6839\u76EE\u5F55\u4E3A\u5DE5\u4F5C\u76EE\u5F55\u3002","git.diffOnly":"\u53EA\u770B\u5DEE\u5F02","git.fullFile":"\u770B\u5168\u6587","git.zoomIn":"\u653E\u5927\u5B57\u4F53","git.zoomOut":"\u7F29\u5C0F\u5B57\u4F53","git.loadingDiff":"\u52A0\u8F7D Diff...","git.clickToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5DEE\u5F02","git.clickFileToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5DEE\u5F02","git.selectRepo":"\u9009\u62E9 Git \u4ED3\u5E93","git.noDiff":"(\u65E0\u5DEE\u5F02)","git.binaryFile":"(\u4E8C\u8FDB\u5236\u6587\u4EF6)","files.notLoaded":"\u672A\u52A0\u8F7D","files.newFile":"\u65B0\u5EFA\u6587\u4EF6","files.newFolder":"\u65B0\u5EFA\u6587\u4EF6\u5939","files.openFolder":"\u6253\u5F00\u6587\u4EF6\u5939","files.showTree":"\u663E\u793A\u6587\u4EF6\u5939","files.hideTree":"\u9690\u85CF\u6587\u4EF6\u5939","files.deleteSelected":"\u5220\u9664\u9009\u4E2D","files.moveSelected":"\u79FB\u52A8\u9009\u4E2D","files.enterPath":"\u8F93\u5165\u8DEF\u5F84...","files.searchFiles":"\u641C\u7D22\u6587\u4EF6... (Ctrl+P)","files.noMatch":"\u65E0\u5339\u914D\u7ED3\u679C","files.searching":"\u641C\u7D22\u4E2D...","files.loadingTree":"\u52A0\u8F7D\u4E2D...","files.emptyDir":"\u7A7A\u76EE\u5F55","files.loadingFile":"\u52A0\u8F7D\u6587\u4EF6...","files.readSendFailed":"\u6587\u4EF6\u8BF7\u6C42\u672A\u53D1\u9001\u3002\u8BF7\u68C0\u67E5\u8FDE\u63A5\uFF0C\u7136\u540E\u518D\u6B21\u70B9\u51FB\u6587\u4EF6\u91CD\u8BD5\u3002","files.readInterrupted":"\u6587\u4EF6\u8BFB\u53D6\u5DF2\u4E2D\u65AD\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\uFF0C\u7136\u540E\u518D\u6B21\u70B9\u51FB\u6587\u4EF6\u91CD\u8BD5\u3002","files.searchPlaceholder":"\u641C\u7D22...","files.replacePlaceholder":"\u66FF\u6362...","files.replace":"\u66FF\u6362","files.replaceAll":"\u5168\u90E8","files.replaceCurrent":"\u66FF\u6362\u5F53\u524D","files.replaceAllTitle":"\u5168\u90E8\u66FF\u6362","files.clickToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5185\u5BB9","files.selectFolder":"\u9009\u62E9\u6587\u4EF6\u5939","files.enterFolderName":"\u8F93\u5165\u6587\u4EF6\u5939\u540D...","files.enterFileName":"\u8F93\u5165\u6587\u4EF6\u540D...","files.moveTarget":"\u8F93\u5165\u76EE\u6807\u76EE\u5F55\u8DEF\u5F84...","files.moveItems":"\u5C06 {count} \u4E2A\u9879\u76EE\u79FB\u52A8\u5230\u6307\u5B9A\u76EE\u5F55","files.workDir":"\u5DE5\u4F5C\u76EE\u5F55: {dir}","files.enterDirPath":"\u8F93\u5165\u76EE\u5F55\u8DEF\u5F84...","files.unsavedConfirm":'"{name}" \u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\uFF0C\u786E\u5B9A\u5173\u95ED\uFF1F',"files.unsavedBatchConfirm":"{count} \u4E2A\u6587\u4EF6\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\uFF0C\u786E\u5B9A\u5173\u95ED\uFF1F","files.showOpenTabs":"\u663E\u793A\u5DF2\u6253\u5F00\u7684\u6587\u4EF6","files.closeTab":"\u5173\u95ED {name}","files.closeTabAction":"\u5173\u95ED","files.closeOtherTabs":"\u5173\u95ED\u5176\u4ED6","files.closeTabsToLeft":"\u5173\u95ED\u5DE6\u4FA7","files.closeTabsToRight":"\u5173\u95ED\u53F3\u4FA7","files.closeAllTabs":"\u5168\u90E8\u5173\u95ED","files.deleteConfirm":'\u786E\u5B9A\u8981\u5220\u9664 "{name}" \u5417\uFF1F',"files.deleteDirHint":"\uFF08\u5C06\u5220\u9664\u6587\u4EF6\u5939\u53CA\u5176\u6240\u6709\u5185\u5BB9\uFF09","files.deleteSelectedConfirm":"\u786E\u5B9A\u8981\u5220\u9664\u9009\u4E2D\u7684 {count} \u4E2A\u9879\u76EE\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","files.findPrev":"\u4E0A\u4E00\u4E2A (Shift+Enter)","files.findNext":"\u4E0B\u4E00\u4E2A (Enter)","files.caseSensitive":"\u533A\u5206\u5927\u5C0F\u5199","files.regex":"\u6B63\u5219\u8868\u8FBE\u5F0F","files.unsaved":"\u672A\u4FDD\u5B58","files.clearSelection":"\u6E05\u9664\u9009\u62E9","files.rename":"\u91CD\u547D\u540D","files.copyHere":"\u590D\u5236","files.moveTo":"\u79FB\u52A8\u5230...","files.download":"\u4E0B\u8F7D","files.enterNewName":"\u8F93\u5165\u65B0\u540D\u79F0...","files.loadingPreview":"\u52A0\u8F7D\u9884\u89C8\u4E2D...","files.previewTooLarge":"\u8BE5\u6587\u4EF6\u5927\u5C0F\u4E3A {size} MB\uFF0C\u8D85\u8FC7 {limit} MB \u7684\u9884\u89C8\u4E0E\u4E0B\u8F7D\u4E0A\u9650\u3002","files.previewLoadFailed":"\u56FE\u7247\u9884\u89C8\u52A0\u8F7D\u5931\u8D25\u3002","files.videoPreviewLoadFailed":"\u89C6\u9891\u65E0\u6CD5\u64AD\u653E\uFF0C\u5F53\u524D\u6D4F\u89C8\u5668\u53EF\u80FD\u4E0D\u652F\u6301\u8BE5\u89C6\u9891\u7F16\u7801\u3002","files.videoStreamUnavailable":"\u5F53\u524D Agent \u6216 Session \u4E0D\u652F\u6301\u89C6\u9891\u6D41\u5F0F\u64AD\u653E\u3002","files.preview":"\u9884\u89C8","files.edit":"\u7F16\u8F91","files.pptxNotSupported":"PPTX \u672C\u5730\u9884\u89C8\u6682\u4E0D\u652F\u6301\uFF0C\u8BF7\u5728\u8BBE\u7F6E\u4E2D\u5207\u6362\u4E3A Office Online \u6A21\u5F0F\u3002","files.officePreviewMode":"Office \u9884\u89C8\u6A21\u5F0F","files.officeOnline":"Office Online","files.localRender":"\u672C\u5730\u6E32\u67D3","proxy.port":"\u7AEF\u53E3","proxy.label":"\u6807\u7B7E","proxy.add":"\u6DFB\u52A0\u7AEF\u53E3\u6620\u5C04","proxy.addPort":"\u6DFB\u52A0\u7AEF\u53E3\u6620\u5C04","proxy.enable":"\u70B9\u51FB\u542F\u7528","proxy.clickEnable":"\u70B9\u51FB\u542F\u7528","proxy.disable":"\u70B9\u51FB\u7981\u7528","proxy.clickDisable":"\u70B9\u51FB\u7981\u7528","proxy.openNewTab":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00","proxy.openInBrowser":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00","proxy.noMappings":"\u6682\u65E0\u7AEF\u53E3\u6620\u5C04","proxy.noPorts":"\u6682\u65E0\u7AEF\u53E3\u6620\u5C04","proxy.hint":"\u6DFB\u52A0\u7AEF\u53E3\u540E\uFF0C\u53EF\u901A\u8FC7\u4EE3\u7406 URL \u8BBF\u95EE agent \u673A\u5668\u4E0A\u7684\u672C\u5730\u670D\u52A1","proxy.noPortsHint":"\u6DFB\u52A0\u7AEF\u53E3\u540E\uFF0C\u53EF\u901A\u8FC7\u4EE3\u7406 URL \u8BBF\u95EE agent \u673A\u5668\u4E0A\u7684\u672C\u5730\u670D\u52A1","proxy.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","store.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","store.creatingConv":"\u6B63\u5728\u521B\u5EFA\u4F1A\u8BDD...","store.loadingHistory":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u5386\u53F2...","store.executionCancelled":"\u6267\u884C\u5DF2\u53D6\u6D88","store.loginFailed":"\u767B\u5F55\u5931\u8D25","store.convClosed":"\u4F1A\u8BDD\u5DF2\u5173\u95ED","store.convCreated":"\u65B0\u4F1A\u8BDD\u5DF2\u521B\u5EFA [{agent}]\uFF0C\u5DE5\u4F5C\u76EE\u5F55: {workDir}","store.convResumed":"\u5DF2\u6062\u590D\u4F1A\u8BDD [{agent}]: {sessionId}","roleplay.creating":"\u6B63\u5728\u521B\u5EFA \u89D2\u8272\u626E\u6F14 \u4F1A\u8BDD...","roleplay.working":"\u5DE5\u4F5C\u4E2D","roleplay.selectTeam":"\u9009\u62E9\u56E2\u961F\u6A21\u677F","roleplay.teamDev":"\u8F6F\u4EF6\u5F00\u53D1","roleplay.teamCustom":"\u81EA\u5B9A\u4E49","roleplay.editRoles":"\u7F16\u8F91\u89D2\u8272","roleplay.roleName":"\u89D2\u8272\u6807\u8BC6","roleplay.roleDisplayName":"\u663E\u793A\u540D\u79F0","roleplay.roleIcon":"\u56FE\u6807","roleplay.roleDesc":"\u89D2\u8272\u63CF\u8FF0","roleplay.rolePrompt":"\u89D2\u8272 Prompt","roleplay.removeRole":"\u79FB\u9664\u89D2\u8272","roleplay.addRole":"\u6DFB\u52A0\u89D2\u8272","roleplay.start":"\u542F\u52A8 \u89D2\u8272\u626E\u6F14","roleplay.sidebarTitle":"\u89D2\u8272\u626E\u6F14","roleplay.configTitle":"\u89D2\u8272\u626E\u6F14","roleplay.newSession":"\u65B0\u5EFA \u89D2\u8272\u626E\u6F14","roleplay.emptyHint":"\u53D1\u9001\u6D88\u606F\u5F00\u59CB\u591A\u89D2\u8272\u534F\u4F5C","roleplay.askingYou":"\u6B63\u5728\u63D0\u95EE","roleplay.language":"\u8BED\u8A00","roleplay.rolePreview":"\u89D2\u8272\u914D\u7F6E","roleplay.noAgents":"\u6CA1\u6709\u5728\u7EBF\u7684 Agent","roleplay.inputPlaceholder":"\u8F93\u5165\u6D88\u606F\u2026 \u4F7F\u7528 @ \u63D0\u53CA\u89D2\u8272","roleplay.existingSessions":"\u5DF2\u6709\u56E2\u961F","roleplay.restore":"\u6062\u590D","roleplay.restoring":"\u6B63\u5728\u6062\u590D \u89D2\u8272\u626E\u6F14 \u4F1A\u8BDD...","roleplay.createNew":"\u521B\u5EFA\u65B0\u56E2\u961F","expertPanel.title":"\u5E2E\u5E2E\u56E2","expertPanel.search":"\u641C\u7D22\u89D2\u8272\u6216 Action...","expertPanel.noResults":"\u6CA1\u6709\u5339\u914D\u7ED3\u679C","expertPanel.clearAll":"\u6E05\u7A7A","expertPanel.persona":"\u89D2\u8272\u4EBA\u8BBE","expertPanel.template":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00","expertPanel.templateHint":"\u7528\u6237\u5199\u4E86\u6587\u5B57\u65F6\uFF1A\u6B64\u524D\u7F00 + \u7528\u6237\u6587\u5B57 = \u6700\u7EC8\u53D1\u9001\u5185\u5BB9","expertPanel.defaultMsg":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt","expertPanel.defaultMsgHint":"\u7528\u6237\u4E0D\u5199\u6587\u5B57\u76F4\u63A5\u53D1\u9001\u65F6\uFF0C\u4F7F\u7528\u6B64\u5B8C\u6574 prompt","expertPanel.loading":"\u6B63\u5728\u52A0\u8F7D\u89D2\u8272\u5B9A\u4E49...","expertPanel.viewPrompt":"\u67E5\u770B\u63D0\u793A\u8BCD","expertPanel.customRoles":"\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.addRole":"\u6DFB\u52A0\u89D2\u8272","expertPanel.editRole":"\u7F16\u8F91\u89D2\u8272","expertPanel.deleteRole":"\u5220\u9664\u89D2\u8272","expertPanel.noCustomRoles":"\u6682\u65E0\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.createFirst":"\u521B\u5EFA\u7B2C\u4E00\u4E2A\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.noActions":"\u6682\u65E0 Action","expertPanel.deleteConfirm":'\u786E\u5B9A\u8981\u5220\u9664\u89D2\u8272 "{name}" \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002',"expertPanel.deleteConfirmBtn":"\u5220\u9664","expertEditor.createTitle":"\u521B\u5EFA\u81EA\u5B9A\u4E49\u89D2\u8272","expertEditor.editTitle":"\u7F16\u8F91\u81EA\u5B9A\u4E49\u89D2\u8272","expertEditor.basicInfo":"\u57FA\u672C\u4FE1\u606F","expertEditor.roleName":"\u89D2\u8272\u540D\u79F0","expertEditor.roleNamePlaceholder":"\u5982\uFF1A\u6570\u636E\u5206\u6790\u5E08","expertEditor.roleTitle":"\u804C\u79F0","expertEditor.roleTitlePlaceholder":"\u5982\uFF1A\u9AD8\u7EA7\u6570\u636E\u5206\u6790\u5E08","expertEditor.fullName":"\u5168\u540D","expertEditor.fullNamePlaceholder":"\u53EF\u9009","expertEditor.titleEn":"\u82F1\u6587\u804C\u79F0","expertEditor.titleEnPlaceholder":"\u53EF\u9009","expertEditor.rolePrompt":"\u89D2\u8272 Prompt","expertEditor.messagePrefix":"\u6D88\u606F\u524D\u7F00\uFF08\u4E2D\u6587\uFF09","expertEditor.messagePrefixPlaceholder":"\u5982\uFF1A\u4F5C\u4E3A\u4E00\u540D\u8D44\u6DF1\u6570\u636E\u5206\u6790\u5E08\uFF0C","expertEditor.messagePrefixEn":"\u6D88\u606F\u524D\u7F00\uFF08\u82F1\u6587\uFF09","expertEditor.messagePrefixEnPlaceholder":"As a senior data analyst, ","expertEditor.actions":"Actions","expertEditor.addAction":"\u6DFB\u52A0 Action","expertEditor.removeAction":"\u79FB\u9664","expertEditor.actionName":"Action \u540D\u79F0","expertEditor.actionNamePlaceholder":"\u5982\uFF1A\u6570\u636E\u5206\u6790","expertEditor.actionNameEn":"\u82F1\u6587\u540D\u79F0","expertEditor.actionNameEnPlaceholder":"\u53EF\u9009","expertEditor.messageTemplate":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00\uFF08\u4E2D\u6587\uFF09","expertEditor.messageTemplatePlaceholder":"\u7528\u6237\u5199\u4E86\u6587\u5B57\u65F6\uFF0C\u62FC\u5728\u7528\u6237\u6587\u5B57\u524D\u9762\u53D1\u9001","expertEditor.messageTemplateEn":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00\uFF08\u82F1\u6587\uFF09","expertEditor.messageTemplateEnPlaceholder":"Prepended to user text when user types something","expertEditor.defaultMessage":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt\uFF08\u4E2D\u6587\uFF09","expertEditor.defaultMessagePlaceholder":"\u7528\u6237\u4E0D\u5199\u6587\u5B57\u76F4\u63A5\u53D1\u9001\u65F6\uFF0C\u4F7F\u7528\u6B64\u5B8C\u6574\u5185\u5BB9","expertEditor.defaultMessageEn":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt\uFF08\u82F1\u6587\uFF09","expertEditor.defaultMessageEnPlaceholder":"Used as-is when user sends without typing","expertEditor.cancel":"\u53D6\u6D88","expertEditor.save":"\u4FDD\u5B58","expertEditor.saving":"\u4FDD\u5B58\u4E2D...","subAgentPanel.title":"\u5B50\u4EE3\u7406","subAgentPanel.back":"\u8FD4\u56DE\u5217\u8868","subAgentPanel.running":"\u8FD0\u884C\u4E2D","subAgentPanel.completed":"\u5DF2\u5B8C\u6210","subAgentPanel.waitingMessages":"\u7B49\u5F85\u6D88\u606F...","subAgentPanel.toolCount":"{count} \u4E2A\u5DE5\u5177","subAgentPanel.toolSummary":"\u5DF2\u5B8C\u6210 {count} \u6B21\u5DE5\u5177\u8C03\u7528","subAgentPanel.empty":"\u6682\u65E0\u5B50\u4EE3\u7406","subAgentPanel.emptyHint":"\u5F53 Claude \u59D4\u6D3E\u4EFB\u52A1\u65F6\uFF0C\u5B50\u4EE3\u7406\u4F1A\u5728\u8FD9\u91CC\u663E\u793A","splitScreen.split":"\u5206\u5C4F","splitScreen.closePane":"\u5173\u95ED\u6B64\u9762\u677F","splitScreen.newChat":"\u65B0\u5EFA Chat","splitScreen.noSessions":"\u6682\u65E0\u4F1A\u8BDD","splitScreen.splitToPanel":"\u5728\u65B0\u9762\u677F\u4E2D\u6253\u5F00","splitScreen.selectFromSidebar":"\u4ECE\u5DE6\u4FA7\u9009\u62E9\u5BF9\u8BDD","yeaft.vp.library":"\u89D2\u8272\u5E93","yeaft.vp.createFirst":"+ \u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u89D2\u8272","yeaft.vp.empty.aria":"\u5C1A\u65E0\u89D2\u8272","yeaft.vp.avatar.aria":"{name} \u5934\u50CF","yeaft.vp.speaker.stateCauseAria":"\u72B6\u6001\u53D8\u66F4\uFF1A{cause}","yeaft.vp.status.thinking":"\u6B63\u5728\u601D\u8003\u2026","yeaft.vp.status.tool":"\u6B63\u5728\u4F7F\u7528 {name}","yeaft.vp.status.done":"\u5B8C\u6210 \xB7 {count} \u4E2A\u5DE5\u5177","yeaft.vp.status.aborted":"\u5DF2\u4E2D\u6B62","yeaft.vp.crud.title":"\u89D2\u8272\u5E93","yeaft.vp.crud.close":"\u5173\u95ED","yeaft.vp.crud.addNew":"+ \u65B0\u5EFA\u89D2\u8272","yeaft.vp.crud.empty":"\u8FD8\u6CA1\u6709\u89D2\u8272\u3002\u521B\u5EFA\u7B2C\u4E00\u4E2A\u89D2\u8272\u5F00\u59CB\u534F\u4F5C\u5427\u3002","yeaft.vp.crud.edit":"\u7F16\u8F91","yeaft.vp.crud.delete":"\u5220\u9664","yeaft.vp.crud.deleteConfirm":'\u5220\u9664 "{name}"\uFF1F\u4F1A\u4E00\u5E76\u5220\u9664\u78C1\u76D8\u4E0A\u7684 role.md \u6587\u4EF6\u3002',"yeaft.vp.crud.form.create":"\u521B\u5EFA\u89D2\u8272","yeaft.vp.crud.form.update":"\u7F16\u8F91\u89D2\u8272","yeaft.vp.crud.form.vpId":"\u89D2\u8272 ID","yeaft.vp.crud.form.vpId.tooltip":"\u53EA\u80FD\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001- \u548C _\uFF0C\u4E0D\u80FD\u4EE5 _ \u5F00\u5934\uFF0C\u4E0D\u80FD\u662F\u7EAF\u6570\u5B57\uFF0C\u4E0D\u80FD\u7528\u4FDD\u7559\u540D\uFF1Aall / user / system / everyone\u3002","yeaft.vp.crud.form.displayName":"\u663E\u793A\u540D\uFF08\u82F1\u6587\uFF09","yeaft.vp.crud.form.displayNameZh":"\u663E\u793A\u540D\uFF08\u4E2D\u6587\uFF09","yeaft.vp.crud.form.description":"\u80FD\u529B\u63CF\u8FF0\uFF08\u82F1\u6587\uFF09","yeaft.vp.crud.form.descriptionZh":"\u80FD\u529B\u63CF\u8FF0\uFF08\u4E2D\u6587\uFF09","yeaft.vp.crud.form.descriptionPlaceholder":"\u4F8B\u5982\uFF1AAPI design, migration planning, and compatibility reviews","yeaft.vp.crud.form.descriptionZhPlaceholder":"\u4F8B\u5982\uFF1AAPI \u8BBE\u8BA1\u3001\u8FC1\u79FB\u89C4\u5212\u4E0E\u517C\u5BB9\u6027\u8BC4\u5BA1","yeaft.vp.crud.form.role":"\u804C\u4F4D","yeaft.vp.crud.form.rolePlaceholder":"\u4F8B\u5982\uFF1A\u4EA7\u54C1\u7ECF\u7406","yeaft.vp.crud.form.traits":"\u7279\u8D28\u6807\u7B7E","yeaft.vp.crud.form.traitsHint":"\u7528\u82F1\u6587\u9017\u53F7\u5206\u9694\u7684\u77ED\u6807\u7B7E\uFF08\u4F8B\u5982\uFF1A\u597D\u5947, \u52A1\u5B9E\uFF09\u3002","yeaft.vp.crud.form.modelHint":"\u6A21\u578B\u504F\u597D","yeaft.vp.crud.form.modelHint.none":"\u2014 \u9ED8\u8BA4 \u2014","yeaft.vp.crud.form.modelHint.primary":"\u4E3B\u6A21\u578B","yeaft.vp.crud.form.modelHint.fast":"\u5FEB\u6A21\u578B","yeaft.vp.crud.form.persona":"\u4EBA\u8BBE\uFF08Markdown\uFF09","yeaft.vp.crud.form.personaPlaceholder":"\u63CF\u8FF0\u8FD9\u4E2A\u89D2\u8272\u5982\u4F55\u601D\u8003\u3001\u8868\u8FBE\u3001\u505A\u51B3\u7B56\u2026\u2026","yeaft.vp.crud.form.submit":"\u4FDD\u5B58","yeaft.vp.crud.form.cancel":"\u53D6\u6D88","yeaft.vp.crud.form.ok":"\u683C\u5F0F\u6B63\u786E","yeaft.vp.crud.form.idLocked":"\u521B\u5EFA\u540E\u89D2\u8272 ID \u4E0D\u53EF\u4FEE\u6539\u3002","yeaft.vp.crud.saving":"\u4FDD\u5B58\u4E2D\u2026\u2026","yeaft.vp.crud.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","yeaft.vp.crud.deleteFailed":"\u5220\u9664\u5931\u8D25\uFF1A{error}","yeaft.vp.crud.viewPrompt":"\u67E5\u770B prompt","yeaft.vp.crud.view.title":"VP \u63D0\u793A\u8BCD","yeaft.vp.crud.view.personaEmpty":"\uFF08\u672A\u5B9A\u4E49 persona \u6B63\u6587\uFF0C\u53EA\u6709\u57FA\u7840\u5143\u6570\u636E\uFF09","yeaft.vp.crud.view.back":"\u8FD4\u56DE","yeaft.vp.crud.view.editFromHere":"\u7F16\u8F91\u8BE5 VP","yeaft.vp.crud.view.removed":"\u8BE5 VP \u5DF2\u5728\u522B\u5904\u88AB\u5220\u9664\uFF0C\u8FD4\u56DE\u5217\u8868\u3002","yeaft.vp.crud.stockBadge":"\u9884\u88C5","yeaft.vp.crud.stockReadOnly":"\u9884\u88C5 VP \u968F agent \u51FA\u5382\uFF0C\u4E0D\u80FD\u7F16\u8F91\u6216\u5220\u9664\u3002","yeaft.vp.idError.empty_or_non_string":"\u89D2\u8272 ID \u4E0D\u80FD\u4E3A\u7A7A\u3002","yeaft.vp.idError.too_long":"\u89D2\u8272 ID \u592A\u957F\uFF08\u6700\u591A 40 \u5B57\u7B26\uFF09\u3002","yeaft.vp.idError.illegal_character":'\u53EA\u80FD\u4F7F\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001"-" \u548C "_"\u3002',"yeaft.vp.idError.underscore_prefix_reserved":'\u89D2\u8272 ID \u4E0D\u80FD\u4EE5 "_" \u5F00\u5934\uFF08\u9884\u7559\u7ED9\u7CFB\u7EDF\u89D2\u8272\uFF09\u3002',"yeaft.vp.idError.pure_digits":"\u89D2\u8272 ID \u4E0D\u80FD\u662F\u7EAF\u6570\u5B57\u3002","yeaft.vp.idError.reserved":"\u89D2\u8272 ID \u4E0D\u80FD\u7528\u4FDD\u7559\u540D\uFF08all / user / system / everyone\uFF09\u3002","yeaft.vp.idError.duplicate":"\u5DF2\u7ECF\u5B58\u5728\u540C ID \u7684\u89D2\u8272\u3002","yeaft.vp.idError.not_found":"\u8BE5 VP \u4E0D\u5B58\u5728\uFF0C\u53EF\u80FD\u5DF2\u88AB\u5220\u9664\u3002","yeaft.vp.idError.stock_readonly":"\u9884\u88C5 VP \u4E0D\u80FD\u7F16\u8F91\u6216\u5220\u9664\u3002","yeaft.vp.idError.unknown":"\u53D1\u751F\u672A\u77E5\u9519\u8BEF\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.vp.reason.personaEdit":"\u4EBA\u8BBE\u5DF2\u66F4\u65B0","yeaft.vp.reason.traitsEdit":"\u7279\u5F81\u5DF2\u66F4\u65B0","yeaft.vp.reason.manualReload":"\u5DF2\u91CD\u65B0\u8F7D\u5165","yeaft.vp.reason.fileRemoved":"\u5DF2\u79FB\u9664","yeaft.vp.reason.toast.updated":"{name}\uFF1A{reason}","yeaft.vp.reason.toast.removed":"{name} \u5DF2\u88AB\u79FB\u9664","yeaft.message.timeAria":"\u53D1\u9001\u4E8E {time}","yeaft.message.llmCall":"{count} \u6B21 LLM \u8C03\u7528","yeaft.message.llmCalls":"{count} \u6B21 LLM \u8C03\u7528","yeaft.message.tokenUsage":"\u603B\u8BA1 {total} \xB7 \u8F93\u5165 {input} \xB7 \u8F93\u51FA {output}","yeaft.user.youLabel":"\u6211","yeaft.session.sidebarTitle":"\u4F1A\u8BDD","yeaft.session.sidebarAria":"\u4F1A\u8BDD\u5217\u8868","yeaft.session.newButton":"+ \u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.newButtonAria":"\u521B\u5EFA\u65B0\u4F1A\u8BDD","yeaft.session.empty":"\u6682\u65E0\u4F1A\u8BDD\u3002","yeaft.session.membersCount":"{count} \u4F4D\u6210\u5458","yeaft.session.oneMember":"1 \u4F4D\u6210\u5458","yeaft.session.noMembers":"\u7A7A\u4F1A\u8BDD \u2014 \u8BF7\u9080\u8BF7 VP","yeaft.session.defaultBadge":"\u9ED8\u8BA4","yeaft.session.defaultName":"\u9ED8\u8BA4\u4F1A\u8BDD","yeaft.session.moreActions":"\u66F4\u591A\u64CD\u4F5C","yeaft.session.archive":"\u5F52\u6863","yeaft.session.archiveConfirm":"\u5F52\u6863\u300C{name}\u300D\uFF1F\u7A0D\u540E\u53EF\u4ECE\u78C1\u76D8\u6062\u590D\u3002","yeaft.session.archivingEllipsis":"\u5F52\u6863\u4E2D\u2026","yeaft.session.delete":"\u5220\u9664","yeaft.session.deleteConfirm":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5C06\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\u53CA\u5176\u6240\u6709\u6570\u636E\uFF0C\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","yeaft.session.deletingEllipsis":"\u5220\u9664\u4E2D\u2026","yeaft.session.rename":"\u91CD\u547D\u540D","yeaft.session.copy":"\u590D\u5236\u4F1A\u8BDD","yeaft.session.forkFromTurn":"\u4ECE\u6B64\u8F6E\u5206\u53C9","yeaft.session.forkFromTurnHint":"\u590D\u5236\u622A\u81F3\u6B64\u6761\u56DE\u590D\u7684\u5386\u53F2\u5230\u65B0\u4F1A\u8BDD\uFF0C\u4E0D\u5305\u542B\u540E\u7EED\u6D88\u606F\u3002","yeaft.session.copying":"\u6B63\u5728\u590D\u5236\u4F1A\u8BDD\u2026","yeaft.session.copyComplete":"\u4F1A\u8BDD\u590D\u5236\u5B8C\u6210","yeaft.session.copyFailed":"\u65E0\u6CD5\u590D\u5236\u4F1A\u8BDD\uFF1A{message}","yeaft.session.openSettings":"\u8BBE\u7F6E","yeaft.session.removeFromList":"\u79FB\u9664","yeaft.session.manageMembers":"\u7BA1\u7406\u6210\u5458","yeaft.session.memberCount.one":"1 \u4F4D\u6210\u5458","yeaft.session.memberCount.other":"{count} \u4F4D\u6210\u5458","yeaft.session.renamePrompt":"\u4E3A\u300C{name}\u300D\u8F93\u5165\u65B0\u540D\u79F0\uFF1A","yeaft.session.renamingEllipsis":"\u91CD\u547D\u540D\u4E2D\u2026","yeaft.session.editModal.renameTitle":"\u91CD\u547D\u540D\u4F1A\u8BDD","yeaft.session.editModal.renameBody":"\u4E3A\u300C{name}\u300D\u9009\u62E9\u4E00\u4E2A\u65B0\u540D\u79F0\u3002","yeaft.session.editModal.renameSubmit":"\u4FDD\u5B58","yeaft.session.editModal.archiveTitle":"\u5F52\u6863\u4F1A\u8BDD","yeaft.session.editModal.archiveBody":"\u5F52\u6863\u300C{name}\u300D\uFF1F\u7A0D\u540E\u53EF\u4ECE\u78C1\u76D8\u6062\u590D\u3002","yeaft.session.editModal.archiveSubmit":"\u5F52\u6863","yeaft.session.editModal.deleteTitle":"\u5220\u9664\u4F1A\u8BDD","yeaft.session.editModal.deleteBody":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5C06\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\u53CA\u5176\u6240\u6709\u6570\u636E\uFF0C\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","yeaft.session.editModal.deleteSubmit":"\u5220\u9664","yeaft.session.editModal.newNameLabel":"\u65B0\u540D\u79F0","yeaft.session.editModal.cancel":"\u53D6\u6D88","yeaft.session.editModal.close":"\u5173\u95ED","yeaft.session.error.invalid_name":"\u4F1A\u8BDD\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","yeaft.session.error.duplicate":"\u8BE5\u4F1A\u8BDD id \u5DF2\u5B58\u5728\u3002","yeaft.session.error.not_found":"\u672A\u627E\u5230\u8BE5\u4F1A\u8BDD\u3002","yeaft.session.error.agent_offline":"\u8BF7\u8FDE\u63A5 Agent \u540E\u518D\u590D\u5236\u4F1A\u8BDD\u3002","yeaft.session.error.invalid_fork_boundary":"\u65E0\u6CD5\u5728\u5DF2\u4FDD\u5B58\u5386\u53F2\u4E2D\u51C6\u786E\u5B9A\u4F4D\u8FD9\u6761\u56DE\u590D\uFF0C\u8BF7\u5237\u65B0\u5386\u53F2\u540E\u91CD\u8BD5\u3002","yeaft.session.error.session_fork_from_turn_unsupported":"\u8BF7\u5347\u7EA7\u6B64 Agent \u540E\u518D\u4ECE\u6307\u5B9A\u8F6E\u6B21\u5206\u53C9\u3002","yeaft.session.error.fork_boundary_not_found":"\u5DF2\u4FDD\u5B58\u5386\u53F2\u4E2D\u6CA1\u6709\u8FD9\u6761\u56DE\u590D\uFF0C\u8BF7\u5237\u65B0\u5386\u53F2\u540E\u91CD\u8BD5\u3002","yeaft.session.error.ambiguous_fork_boundary":"\u6B64\u65E7\u8F6E\u6B21\u5305\u542B\u591A\u4E2A\u53D1\u8A00\u8005\uFF0C\u65E0\u6CD5\u5B89\u5168\u5730\u4ECE\u8FD9\u6761\u56DE\u590D\u5206\u53C9\u3002","yeaft.session.error.incomplete_fork_boundary":"\u6B64\u5904\u622A\u65AD\u4F1A\u62C6\u5F00\u5DE5\u5177\u8C03\u7528\u53CA\u5176\u7ED3\u679C\uFF0C\u8BF7\u9009\u62E9\u66F4\u665A\u7684\u5DF2\u5B8C\u6210\u56DE\u590D\u3002","yeaft.session.error.fork_pending":"\u6B63\u5728\u590D\u5236\u4F1A\u8BDD\uFF0C\u8BF7\u7A0D\u5019\u3002","yeaft.session.error.project_inheritance_failed":"\u526F\u672C\u5DF2\u521B\u5EFA\uFF0C\u4F46\u4FDD\u5B58 Project \u5F52\u5C5E\u5931\u8D25\u3002\u8BF7\u5728\u4FA7\u680F\u5C06\u65B0\u4F1A\u8BDD\u79FB\u5165\u539F Project\uFF0C\u4E0D\u8981\u91CD\u590D\u590D\u5236\u3002","yeaft.session.error.session_running":"\u8BF7\u7B49\u5F85\u8BE5\u4F1A\u8BDD\u7684\u5F53\u524D\u56DE\u590D\u5B8C\u6210\u540E\u518D\u590D\u5236\u3002","yeaft.session.error.default_not_in_roster":"\u9ED8\u8BA4 VP \u5FC5\u987B\u5728\u6210\u5458\u5217\u8868\u4E2D\u3002","yeaft.session.error.no_default_vp":"\u8BE5\u4F1A\u8BDD\u6CA1\u6709\u6210\u5458\uFF0C\u8BF7\u4ECE\u89D2\u8272\u5E93\u6DFB\u52A0 VP \u4EE5\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.error.reserved":"\u6240\u9009 id \u4E2D\u5305\u542B\u4FDD\u7559\u540D\uFF08all / user / system / everyone\uFF09\u3002","yeaft.session.error.unknown":"\u4F1A\u8BDD\u64CD\u4F5C\u5931\u8D25\uFF1A{message}","yeaft.session.error.timeout":"\u4F1A\u8BDD\u64CD\u4F5C\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.session.invite.title":"\u9080\u8BF7 VP","yeaft.session.invite.body":"\u300C{name}\u300D\u5F53\u524D\u4E3A\u7A7A\uFF0C\u8BF7\u4ECE\u89D2\u8272\u5E93\u6DFB\u52A0\u4E00\u4F4D VP \u4EE5\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.invite.openLibrary":"\u6253\u5F00\u89D2\u8272\u5E93","yeaft.session.invite.dismiss":"\u6682\u4E0D","yeaft.session.empty.title":"\u7A7A\u4F1A\u8BDD","yeaft.session.empty.hint":"\u300C{name}\u300D\u8FD8\u6CA1\u6709\u6210\u5458\u3002\u6DFB\u52A0\u4E00\u4F4D VP \u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.empty.cta":"\u7BA1\u7406\u6210\u5458","yeaft.session.members.title":"\u7BA1\u7406\u300C{name}\u300D\u7684\u6210\u5458","yeaft.session.members.aria":"\u6210\u5458\u7BA1\u7406","yeaft.session.members.close":"\u5173\u95ED","yeaft.session.members.done":"\u5B8C\u6210","yeaft.session.members.empty":"\u6682\u65E0\u53EF\u7528 VP \u2014 \u8BF7\u5148\u5230\u89D2\u8272\u5E93\u521B\u5EFA\u3002","yeaft.session.members.loading":"VP \u52A0\u8F7D\u4E2D\u2026","yeaft.session.members.defaultHint":"\u9ED8\u8BA4 VP\uFF08@\u63D0\u53CA\u7F3A\u7701\u65F6\u7531\u8BE5 VP \u5E94\u7B54\uFF09","yeaft.session.members.memberCount":"\u5DF2\u9009 {count} \u4F4D","yeaft.session.members.actionFailed":"\u64CD\u4F5C\u5931\u8D25\uFF1A{error}","yeaft.session.members.openLibrary":"\u6253\u5F00 VP \u5E93","yeaft.session.members.openLibraryHint":"\u5728 VP \u5E93\u53EF\u521B\u5EFA\u65B0 VP \u6216\u67E5\u770B VP \u7684 prompt\u3002","yeaft.session.announcement.label":"\u4F1A\u8BDD\u516C\u544A","yeaft.session.announcement.hintEmpty":"\u6682\u65E0\u516C\u544A \u2014 \u70B9\u51FB \u270F\uFE0F \u6DFB\u52A0\u3002","yeaft.session.announcement.emptyBody":"\u672A\u8BBE\u7F6E\u4F1A\u8BDD\u516C\u544A\u3002\u53EF\u4EE5\u5728\u8FD9\u91CC\u5199\u4E00\u6BB5\u7B80\u4ECB\uFF0C\u4F1A\u8BDD\u5185\u6240\u6709 VP \u5728\u6536\u5230\u6D88\u606F\u65F6\u90FD\u4F1A\u5728 system prompt \u9876\u90E8\u770B\u5230 \u2014 \u9002\u5408\u5199\u5171\u540C\u80CC\u666F\u3001\u89C4\u5219\u3001\u6216 CLAUDE.md \u5F0F\u7684\u6307\u5F15\u3002","yeaft.session.announcement.placeholder":"\u4E3A\u8FD9\u4E2A\u4F1A\u8BDD\u91CC\u7684\u6240\u6709 VP \u5199\u4E00\u6BB5\u5171\u4EAB\u7684\u7B80\u4ECB\u2026","yeaft.session.announcement.edit":"\u7F16\u8F91\u516C\u544A","yeaft.session.announcement.editTitle":"\u7F16\u8F91\u4F1A\u8BDD\u516C\u544A","yeaft.session.announcement.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.announcement.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","yeaft.session.announcement.openSettings":"\u6253\u5F00\u4F1A\u8BDD\u8BBE\u7F6E","yeaft.session.settings.title":"{name} \u2014 \u4F1A\u8BDD\u8BBE\u7F6E","yeaft.session.settings.short":"\u4F1A\u8BDD","yeaft.session.settings.close":"\u5173\u95ED","yeaft.session.settings.nav.session":"\u4F1A\u8BDD","yeaft.session.settings.nav.members":"\u6210\u5458","yeaft.session.settings.announcement.heading":"\u4F1A\u8BDD\u516C\u544A","yeaft.session.settings.announcement.help":"\u6CE8\u5165\u5230\u4F1A\u8BDD\u5185\u6BCF\u4E2A VP \u7684 system prompt \u9876\u90E8 \u2014 \u7C7B\u4F3C\u56E2\u961F\u5171\u4EAB\u7684 CLAUDE.md\u3002","yeaft.session.settings.members.heading":"\u6210\u5458","yeaft.session.settings.rename.heading":"\u91CD\u547D\u540D\u4F1A\u8BDD","yeaft.session.settings.rename.label":"\u65B0\u540D\u79F0","yeaft.session.settings.rename.save":"\u4FDD\u5B58\u540D\u79F0","yeaft.session.settings.rename.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.settings.workDir.heading":"\u5DE5\u4F5C\u76EE\u5F55","yeaft.session.settings.workDir.help":"\u4E0B\u4E2A\u56DE\u5408\u5C06\u4ECE\u6B64\u76EE\u5F55\u52A0\u8F7D\u9879\u76EE\u6587\u4EF6\u548C\u9879\u76EE\u6307\u4EE4\u3002\u4F1A\u8BDD\u5386\u53F2\u4ECD\u4FDD\u5B58\u5728 Agent \u6570\u636E\u76EE\u5F55\u4E2D\u3002","yeaft.session.settings.workDir.label":"\u8DEF\u5F84","yeaft.session.settings.workDir.placeholder":"/path/to/project","yeaft.session.settings.workDir.save":"\u4FDD\u5B58\u76EE\u5F55","yeaft.session.settings.workDir.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.settings.workDir.saveFailed":"\u65E0\u6CD5\u4FDD\u5B58\u5DE5\u4F5C\u76EE\u5F55\uFF1A{error}","yeaft.session.settings.danger.heading":"\u5220\u9664\u4F1A\u8BDD","yeaft.session.settings.danger.deleteHelp":"\u8FD9\u4F1A\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\uFF0C\u79FB\u9664\u78C1\u76D8\u4E0A\u7684 session.json \u548C\u5168\u90E8\u6D88\u606F\u5386\u53F2\uFF0C\u4E0D\u53EF\u6062\u590D\u3002","yeaft.session.settings.danger.deleteBtn":"\u5220\u9664\u4F1A\u8BDD","yeaft.vp.mention.placeholder":"\u6309 id \u6216\u540D\u79F0\u641C\u7D22\u89D2\u8272\u2026","yeaft.vp.mention.noMatch":"\u6CA1\u6709\u5339\u914D\u7684\u89D2\u8272","yeaft.vp.mention.count":"\u5DF2 @{count} \u4EBA","yeaft.feature.reject.missing_group_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u672A\u6307\u5B9A\u4F1A\u8BDD\u3002","yeaft.feature.reject.missing_feature_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u4EFB\u52A1\u4E0A\u4E0B\u6587\u4E22\u5931\u3002","yeaft.feature.reject.missing_vp_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u672A\u8BBE\u7F6E\u53D1\u8A00\u8005\u3002","yeaft.feature.reject.invalid_vp_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u53D1\u8A00\u8005 id \u975E\u6CD5\u3002","yeaft.feature.reject.empty_text":"\u53D1\u9001\u5931\u8D25\uFF1A\u5185\u5BB9\u4E3A\u7A7A\u3002","yeaft.feature.reject.text_too_long":"\u53D1\u9001\u5931\u8D25\uFF1A\u5185\u5BB9\u8FC7\u957F\uFF08\u4E0A\u9650 16 KiB\uFF09\u3002","yeaft.feature.reject.unknown":"\u53D1\u9001\u5931\u8D25\u3002","yeaft.feature.pill.label":"\u4EFB\u52A1","yeaft.feature.messageTime.aria":"\u53D1\u9001\u4E8E {time}","yeaft.vp.turnBlock.elapsedTitle":"\u672C\u8F6E turn \u5F00\u59CB\u81F3\u4ECA\u7684\u65F6\u95F4","yeaft.vp.turnBlock.retryingRequest":"\u54CD\u5E94\u505C\u6EDE\uFF0C\u6B63\u5728\u53D1\u8D77\u5168\u65B0\u8BF7\u6C42\uFF08{attempt}/{max}\uFF09","yeaft.vp.turnBlock.retryingContinue":"\u54CD\u5E94\u505C\u6EDE\uFF0C\u6B63\u5728\u7528\u5168\u65B0\u8BF7\u6C42\u7EED\u5199\uFF08{attempt}/{max}\uFF09","yeaft.sessionStatus.aria":"Session \u72B6\u6001","yeaft.sessionStatus.title":"Session \u72B6\u6001","yeaft.sessionStatus.announcement":"\u516C\u544A","yeaft.sessionStatus.announcementEmpty":"\u6682\u65E0\u516C\u544A","yeaft.sessionStatus.announcementAdd":"\u6DFB\u52A0\u516C\u544A","yeaft.sessionStatus.announcementEdit":"\u7F16\u8F91\u516C\u544A","yeaft.sessionStatus.vps":"VP","yeaft.sessionStatus.backgroundTasks":"\u540E\u53F0\u4EFB\u52A1","yeaft.sessionStatus.noLogPreview":"\u6682\u65E0\u65E5\u5FD7\u8F93\u51FA\u3002","yeaft.sessionStatus.task.subAgentStarted":"{name} \u5DF2\u542F\u52A8","yeaft.sessionStatus.task.subAgentStartedWithMission":"{name} \u5DF2\u542F\u52A8\uFF1A{mission}","yeaft.sessionStatus.task.subAgentStatus":"{name} \u72B6\u6001\uFF1A{status}","yeaft.sessionStatus.task.subAgentStatusUpdated":"{name} \u72B6\u6001\u5DF2\u66F4\u65B0","yeaft.sessionStatus.task.subAgentResult":"{name} \u7ED3\u679C\uFF1A{text}","yeaft.sessionStatus.task.subAgentProducedResult":"{name} \u5DF2\u4EA7\u751F\u7ED3\u679C","yeaft.sessionStatus.task.subAgentUsedTool":"{name} \u8C03\u7528\u4E86 {tool}","yeaft.sessionStatus.task.subAgentFinishedTool":"{name} \u5B8C\u6210\u4E86 {tool}","yeaft.sessionStatus.task.subAgentUsage":"{name} \u4F7F\u7528\u4E86 {tokens} tokens","yeaft.sessionStatus.task.subAgentEvent":"{name}\uFF1A{text}","yeaft.sessionStatus.task.subAgentUserPrompt":"\u4F60\uFF1A{text}","yeaft.sessionStatus.task.subAgentToolSummary":"\u5DF2\u5B8C\u6210 {count} \u6B21\u5DE5\u5177\u8C03\u7528","yeaft.sessionStatus.task.subAgentError":"{name} \u9519\u8BEF\uFF1A{error}","yeaft.sessionStatus.task.subAgentHitError":"{name} \u9047\u5230\u9519\u8BEF","yeaft.sessionStatus.task.subAgentNoReadableEvents":"\u6682\u65E0\u53EF\u8BFB\u7684 sub-agent \u6D3B\u52A8\u3002","yeaft.sessionStatus.task.promptPlaceholder":"\u7ED9\u8FD9\u4E2A sub-agent \u8FFD\u52A0\u60F3\u6CD5\u2026","yeaft.sessionStatus.task.promptSend":"\u53D1\u9001","yeaft.sessionStatus.task.promptSending":"\u53D1\u9001\u4E2D\u2026","yeaft.sessionStatus.task.promptFailed":"\u53D1\u9001\u5931\u8D25\u3002","yeaft.sessionStatus.task.title":"\u4EFB\u52A1","yeaft.sessionStatus.task.command":"\u547D\u4EE4","yeaft.sessionStatus.task.stop":"\u505C\u6B62\u4EFB\u52A1","yeaft.sessionStatus.task.stopping":"\u505C\u6B62\u4E2D\u2026","yeaft.sessionStatus.task.kind.subAgent":"sub-agent","yeaft.sessionStatus.task.kind.shell":"shell","yeaft.sessionStatus.show":"\u663E\u793A Session \u72B6\u6001","yeaft.sessionStatus.hide":"\u9690\u85CF Session \u72B6\u6001","yeaft.sessionStatus.close":"\u5173\u95ED Session \u72B6\u6001","yeaft.vpTimeline.empty":"\u672C Session \u8FD8\u6CA1\u6709 VP\u3002","yeaft.vpTimeline.resizeTitle":"\u62D6\u52A8\u8C03\u6574\u5BBD\u5EA6","yeaft.vpTimeline.status.idle":"\u7A7A\u95F2","yeaft.vpTimeline.status.typing":"\u8F93\u5165\u4E2D\u2026","yeaft.vpTimeline.status.thinking":"\u601D\u8003\u4E2D\u2026","yeaft.vpTimeline.status.retrying":"\u6B63\u5728\u91CD\u8BD5\u8BF7\u6C42\u2026","yeaft.vpTimeline.status.streaming":"\u751F\u6210\u4E2D","yeaft.vpTimeline.status.tool":"\u8C03\u7528\u5DE5\u5177\u4E2D\u2026","yeaft.vpTimeline.status.error":"\u51FA\u9519","yeaft.vpTimeline.status.offline":"\u79BB\u7EBF","yeaft.vpTimeline.abort":"\u4E2D\u6B62","yeaft.vpTimeline.edit":"\u7F16\u8F91 VP","yeaft.vpTimeline.mention":"\u70B9\u51FB @ \u8BE5 VP","yeaft.vpTimeline.expand":"\u5C55\u5F00\u4EFB\u52A1\u8BE6\u60C5","yeaft.toolStats.title":"\u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1","yeaft.toolStats.refresh":"\u5237\u65B0","yeaft.toolStats.close":"\u5173\u95ED","yeaft.toolStats.tabAll":"\u5168\u90E8\u5DE5\u5177","yeaft.toolStats.tabUnused":"\u672A\u4F7F\u7528","yeaft.toolStats.loading":"\u52A0\u8F7D\u4E2D\u2026","yeaft.toolStats.notLoaded":"\u6682\u65E0\u6570\u636E \u2014 \u70B9\u51FB\u5237\u65B0\u3002","yeaft.toolStats.empty":"\uFF08\u6682\u65E0\u5DE5\u5177\u8C03\u7528\u8BB0\u5F55\uFF09","yeaft.toolStats.noneUnused":"\uFF08\u6BCF\u4E2A\u5DF2\u6CE8\u518C\u5DE5\u5177\u90FD\u81F3\u5C11\u88AB\u8C03\u7528\u8FC7\u4E00\u6B21\uFF09","yeaft.toolStats.fetchedAt":"\u83B7\u53D6\u65F6\u95F4","yeaft.toolStats.col.name":"\u5DE5\u5177","yeaft.toolStats.col.calls":"\u8C03\u7528","yeaft.toolStats.col.errors":"\u9519\u8BEF","yeaft.toolStats.col.errRate":"\u9519\u8BEF\u7387","yeaft.toolStats.col.p50":"p50","yeaft.toolStats.col.p95":"p95","yeaft.toolStats.col.avg":"\u5E73\u5747","yeaft.toolStats.col.last":"\u6700\u8FD1","yeaft.toolStats.buttonLabel":"\u5DE5\u5177\u7EDF\u8BA1","workCenter.itemInfo":"\u4EFB\u52A1\u4FE1\u606F","workCenter.infoTab.requirement":"\u9700\u6C42","workCenter.infoTab.progress":"\u8FDB\u5EA6","workCenter.infoTab.outputs":"\u4EA7\u51FA","workCenter.infoTab.goals":"\u76EE\u6807","workCenter.infoTab.usage":"\u7528\u91CF","workCenter.infoProgressEmpty":"\u6682\u65E0 Action\u3002","workCenter.infoOutputsEmpty":"\u6682\u65E0\u4EA7\u51FA\u3002","workCenter.infoConversationEmpty":"\u6682\u65E0\u5BF9\u8BDD\u6D88\u606F\u3002","workCenter.workbenchUnavailable":"\u8BF7\u5728\u65B0\u7248 Agent \u548C Server \u4E0A\u6253\u5F00\u6709\u5DE5\u4F5C\u76EE\u5F55\u7684\u5DE5\u4F5C\u9879\u4EE5\u4F7F\u7528\u5DE5\u4F5C\u53F0\u3002","workCenter.openOutputFile":"\u6253\u5F00\u6587\u4EF6\uFF1A{name}","workCenter.returnToSession":"\u8FD4\u56DE Session","workCenter.showNavigation":"\u5C55\u5F00\u5DE5\u4F5C\u4E2D\u5FC3\u5BFC\u822A","workCenter.hideNavigation":"\u6536\u8D77\u5DE5\u4F5C\u4E2D\u5FC3\u5BFC\u822A","workCenter.agents":"Agents","workCenter.expandItemActivity":"\u5C55\u5F00 {title} \u7684\u6267\u884C\u72B6\u6001","workCenter.collapseItemActivity":"\u6536\u8D77 {title} \u7684\u6267\u884C\u72B6\u6001","workCenter.activity":"\u6B63\u5728\u63A8\u8FDB","workCenter.noActivity":"\u6682\u65E0\u6B63\u5728\u63A8\u8FDB\u7684\u5DE5\u4F5C\u9879","workCenter.activityOffline":"\u8FDE\u63A5\u5DF2\u65AD\u5F00 \xB7 \u72B6\u6001\u53EF\u80FD\u4E0D\u662F\u6700\u65B0","workCenter.online":"\u5728\u7EBF","workCenter.offline":"\u79BB\u7EBF","workCenter.close":"\u5173\u95ED\u5DE5\u4F5C\u4E2D\u5FC3","workCenter.searchAndFilters":"\u641C\u7D22\u4E0E\u7B5B\u9009","workCenter.moreActions":"\u66F4\u591A\u64CD\u4F5C","workCenter.navigation":"\u5DE5\u4F5C\u9879\u5BFC\u822A","workCenter.title":"\u5DE5\u4F5C\u4E2D\u5FC3","workCenter.subtitle":"\u7531\u5F53\u524D Agent \u6301\u7EED\u63A8\u8FDB\u7684\u6301\u4E45\u5DE5\u4F5C","workCenter.agent":"Agent","workCenter.selectAgent":"\u9009\u62E9 Agent","workCenter.noOnlineAgents":"\u6CA1\u6709\u5728\u7EBF Agent","workCenter.noAvailableAgents":"\u6CA1\u6709\u517C\u5BB9\u5DE5\u4F5C\u4E2D\u5FC3\u7684\u5728\u7EBF Agent","workCenter.checkingAgents":"\u6B63\u5728\u68C0\u67E5\u5DE5\u4F5C\u4E2D\u5FC3\u53EF\u7528\u72B6\u6001\u2026","workCenter.agentStatusLoadFailed":"\u65E0\u6CD5\u68C0\u67E5\u5DE5\u4F5C\u4E2D\u5FC3\u72B6\u6001\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.retryAgentStatus":"\u91CD\u8BD5\u72B6\u6001\u68C0\u67E5","workCenter.unavailableAgents":"\u5DE5\u4F5C\u4E2D\u5FC3\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u8FD0\u884C\u65F6\u5F53\u524D\u4E0D\u53EF\u7528\uFF1B\u8BF7\u68C0\u67E5\u6B64 Agent \u7684\u8BBE\u7F6E\u548C\u65E5\u5FD7\u3002","workCenter.disabledAgents":"\u5728\u7EBF Agent \u5C1A\u672A\u542F\u7528\u5DE5\u4F5C\u4E2D\u5FC3\u3002","workCenter.disabledAgentsMany":"{count} \u4E2A\u5728\u7EBF Agent \u5C1A\u672A\u542F\u7528\u5DE5\u4F5C\u4E2D\u5FC3\u3002","workCenter.openAgentSettings":"\u6253\u5F00 Agent \u8BBE\u7F6E","workCenter.openAgentSettingsUpgrade":"\u6253\u5F00 Agent \u8BBE\u7F6E\u5E76\u5347\u7EA7","workCenter.upgradeAgents":"\u5728\u7EBF Agent \u6682\u4E0D\u652F\u6301\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E\u3002","workCenter.new":"\u65B0\u5EFA","workCenter.newWorkItem":"\u65B0\u5EFA\u5DE5\u4F5C\u9879","workCenter.workItem":"\u5DE5\u4F5C\u9879","workCenter.createFirst":"\u521B\u5EFA\u7B2C\u4E00\u4E2A\u5DE5\u4F5C\u9879","workCenter.backToChat":"\u8FD4\u56DE\u5BF9\u8BDD","workCenter.refresh":"\u5237\u65B0","workCenter.search":"\u641C\u7D22\u5DE5\u4F5C\u9879","workCenter.filter":"\u7B5B\u9009","workCenter.filterAttention":"\u9700\u8981\u5904\u7406","workCenter.filterActive":"\u6267\u884C\u4E2D","workCenter.filterAll":"\u5168\u90E8","workCenter.filterDone":"\u5DF2\u5B8C\u6210","workCenter.attentionItems":"\u9700\u8981\u5904\u7406","workCenter.board.active":"\u8FDB\u884C\u4E2D","workCenter.board.needsAttention":"\u9700\u8981\u5904\u7406","workCenter.board.closed":"\u5DF2\u5173\u95ED","workCenter.board.emptyLane":"\u6682\u65E0\u5DE5\u4F5C\u9879","workCenter.board.lanes":"\u5DE5\u4F5C\u9879\u5206\u680F","workCenter.filterVp":"\u6309 VP \u7B5B\u9009","workCenter.filterType":"\u6309\u7C7B\u578B\u7B5B\u9009","workCenter.filterUpdated":"\u6309\u66F4\u65B0\u65F6\u95F4\u7B5B\u9009","workCenter.allVps":"\u5168\u90E8 VP","workCenter.allTypes":"\u5168\u90E8\u7C7B\u578B","workCenter.anyTime":"\u4E0D\u9650\u65F6\u95F4","workCenter.lastDay":"\u6700\u8FD1 24 \u5C0F\u65F6","workCenter.lastWeek":"\u6700\u8FD1 7 \u5929","workCenter.deleteWorkItem":"\u5220\u9664 Work Item","workCenter.deleteConfirm":"\u6C38\u4E45\u5220\u9664\u8FD9\u4E2A Work Item\u3001\u6267\u884C\u5386\u53F2\u548C\u9644\u4EF6\uFF1F","workCenter.deleteRequiresStop":"\u8BF7\u5148\u505C\u6B62\u8FD9\u4E2A Work Item \u518D\u5220\u9664","workCenter.lastMonth":"\u6700\u8FD1 30 \u5929","workCenter.assignment.planned":"\u8BA1\u5212\u5206\u914D","workCenter.created":"\u521B\u5EFA\u4E8E","workCenter.executionDuration":"\u6267\u884C\u7528\u65F6","workCenter.files":"\u4E2A\u6587\u4EF6","workCenter.loadMore":"\u52A0\u8F7D\u66F4\u591A","workCenter.activeItems":"\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C","workCenter.allItems":"\u5168\u90E8\u5DE5\u4F5C\u9879","workCenter.completedItems":"\u5DF2\u5B8C\u6210","workCenter.watcherActive":"Watcher \u8FD0\u884C\u4E2D","workCenter.loading":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u4F5C\u9879\u2026","workCenter.noTimestamp":"\u65E0\u65F6\u95F4\u6233","workCenter.updated":"\u66F4\u65B0\u65F6\u95F4","workCenter.emptyTitle":"\u8FD8\u6CA1\u6709\u5DE5\u4F5C\u9879","workCenter.emptyBody":"\u5F53\u5DE5\u4F5C\u9700\u8981\u8DE8\u8D8A\u4E00\u6B21\u5BF9\u8BDD\u3001\u7B49\u5F85\u6216\u89D2\u8272\u63A5\u529B\u65F6\uFF0C\u628A\u5B83\u521B\u5EFA\u4E3A\u6301\u4E45\u5DE5\u4F5C\u9879\u3002","workCenter.noAttentionTitle":"\u5F53\u524D\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u5DE5\u4F5C\u9879","workCenter.noAttentionBody":"\u7B49\u5F85\u4F60\u56DE\u7B54\u6216\u9700\u8981\u6062\u590D\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noActiveTitle":"\u5F53\u524D\u6CA1\u6709\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C\u9879","workCenter.noActiveBody":"\u8349\u7A3F\u3001\u5C31\u7EEA\u548C\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noCompletedTitle":"\u8FD8\u6CA1\u6709\u5DF2\u5B8C\u6210\u7684\u5DE5\u4F5C\u9879","workCenter.noCompletedBody":"\u5B8C\u6210\u540E\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noMatchesTitle":"\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u4F5C\u9879","workCenter.noMatchesBody":"\u5C1D\u8BD5\u8C03\u6574\u641C\u7D22\u5185\u5BB9\u6216\u7B5B\u9009\u6761\u4EF6\u3002","workCenter.selectTitle":"\u5DE5\u4F5C\u9879\u8BE6\u60C5","workCenter.detailLoading":"\u6B63\u5728\u52A0\u8F7D\u5B8C\u6574\u8BE6\u60C5\u2026","workCenter.detailLoadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5B8C\u6574\u8BE6\u60C5","workCenter.start":"\u5F00\u59CB","workCenter.retry":"\u91CD\u8BD5","workCenter.cancel":"\u53D6\u6D88","workCenter.closeWorkItem":"\u5173\u95ED\u8BE6\u60C5","workCenter.cancelWorkItem":"\u505C\u6B62\u5DE5\u4F5C\u9879","workCenter.cancelWorkItemHint":"\u505C\u6B62\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53CA\u6240\u6709\u5C1A\u672A\u5B8C\u6210\u7684 Actions\u3002","workCenter.cancelConfirm":"\u505C\u6B62\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53CA\u5176\u5C1A\u672A\u5B8C\u6210\u7684 Actions\uFF1F","workCenter.stopWorkItem":"\u505C\u6B62\u5DE5\u4F5C\u9879","workCenter.resumeWorkItem":"\u6062\u590D\u5DE5\u4F5C\u9879","workCenter.resource.title":"\u8D44\u6E90\u9884\u7B97","workCenter.resource.requests":"\u8BF7\u6C42","workCenter.resource.chargedTokens":"Token \u9884\u7B97\u5360\u7528","workCenter.resource.details":"\u6D88\u8017\u660E\u7EC6\u4E0E\u9650\u989D","workCenter.resource.total":"\u603B\u8BA1 \xB7 \u5168\u751F\u547D\u5468\u671F","workCenter.resource.coordinator":"\u534F\u8C03\u5668","workCenter.resource.actions":"Actions","workCenter.resource.usage":"{requests} \u6B21\u8BF7\u6C42 \xB7 \u5360\u7528 {charged} token","workCenter.resource.tokens":"\u5DF2\u62A5\u544A {reported} \xB7 \u9884\u7559 / \u672A\u77E5\u5360\u7528 {reserved} token","workCenter.resource.unknown":"\u7528\u91CF\u672A\u77E5\uFF1A{unknown} \u6B21\u8BF7\u6C42 \xB7 \u5728\u9014\uFF1A{inflight}","workCenter.resource.accounting":"\u9884\u7B97\u5360\u7528\u5DF2\u542B\u9884\u7559\uFF0C\u8BF7\u52FF\u91CD\u590D\u76F8\u52A0\u3002\u5DF2\u62A5\u544A token \u662F\u5DF2\u77E5\u7528\u91CF\uFF0C\u4E0D\u4EE3\u8868\u5B8C\u6574\u8D26\u5355\u3002\u51C6\u5165\u57FA\u4E8E\u4F30\u7B97\uFF0C\u4E0D\u662F\u786C\u6027\u8D39\u7528\u4E0A\u9650\u3002","workCenter.resource.maxRequests":"\u7D2F\u8BA1\u8BF7\u6C42\u4E0A\u9650","workCenter.resource.maxTokens":"\u7D2F\u8BA1 token \u4E0A\u9650","workCenter.resource.maxRunRequests":"\u6BCF\u4E2A Run \u8BF7\u6C42\u4E0A\u9650","workCenter.resource.maxActionAttempts":"\u6BCF\u4E2A Action \u5C1D\u8BD5\u4E0A\u9650","workCenter.resource.maxCoordinatorFailures":"\u534F\u8C03\u5668\u5931\u8D25\u4E0A\u9650","workCenter.resource.attemptLimit":"Action \u5C1D\u8BD5\u8DE8\u4EE3\u7D2F\u8BA1\uFF0C\u540C\u65F6\u53D7\u5404 Action \u539F\u59CB\u4E0A\u9650\u4E0E\u663E\u5F0F\u8FFD\u52A0\u989D\u5EA6\u7EA6\u675F\u3002\u5DF2\u7528 / \u6709\u6548\u4E0A\u9650\uFF1A","workCenter.resource.attemptExtension":"\u8FFD\u52A0 Action \u5C1D\u8BD5\u989D\u5EA6\u4F1A\u6388\u6743\u6B64\u5DE5\u4F5C\u9879\u7684\u6240\u6709\u5F53\u524D\u53CA\u672A\u6765 Action \u589E\u52A0\u5C1D\u8BD5\u6B21\u6570\u3002","workCenter.resource.stopped":"\u6267\u884C\u5DF2\u88AB\u8D44\u6E90\u63A7\u5236\u505C\u6B62\u3002","workCenter.resource.stop.work_item_requests_exhausted":"\u5DF2\u505C\u6B62\uFF1A\u7D2F\u8BA1\u8BF7\u6C42\u9884\u7B97\u8017\u5C3D\u3002","workCenter.resource.stop.work_item_tokens_exhausted":"\u5DF2\u505C\u6B62\uFF1Atoken \u9884\u7B97\u4E0D\u8DB3\u4EE5\u51C6\u5165\u4E0B\u4E00\u6B21\u8BF7\u6C42\u3002","workCenter.resource.stop.run_requests_exhausted":"\u5DF2\u505C\u6B62\uFF1ARun \u8BF7\u6C42\u6570\u8FBE\u5230\u4E0A\u9650\u3002\u6062\u590D\u5C06\u542F\u52A8\u65B0\u7684 Run\u3002","workCenter.resource.stop.action_attempts_exhausted":"\u5DF2\u505C\u6B62\uFF1AAction \u5C1D\u8BD5\u6B21\u6570\u8FBE\u5230\u4E0A\u9650\u3002","workCenter.resource.stop.coordinator_failures_exhausted":"\u5DF2\u505C\u6B62\uFF1A\u534F\u8C03\u5668\u5931\u8D25\u6B21\u6570\u8FBE\u5230\u4E0A\u9650\u3002","workCenter.resource.offline":"Agent \u5DF2\u65AD\u5F00\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\u5E76\u5237\u65B0\u540E\u518D\u4FEE\u6539\u8D44\u6E90\u9884\u7B97\u3002","workCenter.resource.stale":"\u8D44\u6E90\u72B6\u6001\u5DF2\u53D8\u5316\u6216\u5C1A\u672A\u786E\u8BA4\u3002\u8BF7\u5237\u65B0\u540E\u91CD\u65B0\u786E\u8BA4\uFF1B\u4E0D\u4F1A\u81EA\u52A8\u91CD\u8BD5\u4EFB\u4F55\u4FEE\u6539\u3002","workCenter.resource.refresh":"\u5237\u65B0\u8D44\u6E90\u72B6\u6001","workCenter.resource.reconfirm":"\u5DF2\u52A0\u8F7D\u6700\u65B0\u72B6\u6001\u3002\u8BF7\u68C0\u67E5\u9650\u989D\uFF0C\u9700\u8981\u65F6\u91CD\u65B0\u786E\u8BA4\u64CD\u4F5C\u3002","workCenter.resource.extend":"\u8FFD\u52A0\u9884\u7B97","workCenter.resource.confirmExtend":"\u786E\u8BA4\u8FFD\u52A0\u9884\u7B97","workCenter.resource.extendHelp":"\u8F93\u5165\u8981\u8FFD\u52A0\u7684\u6B63\u6574\u6570\u989D\u5EA6\uFF0C\u800C\u975E\u65B0\u7684\u603B\u4E0A\u9650\uFF1B\u4E0D\u4FEE\u6539\u7684\u5B57\u6BB5\u7559\u7A7A\u3002\u8FFD\u52A0\u4E0D\u4F1A\u6062\u590D\u6267\u884C\u6216\u6E05\u96F6\u7528\u91CF\u3002","workCenter.resource.current":"\u5F53\u524D\uFF1A{count}","workCenter.resource.invalid":"\u53EA\u80FD\u586B\u5199\u6B63\u5B89\u5168\u6574\u6570\uFF0C\u8FFD\u52A0\u540E\u7684\u4E0A\u9650\u4E5F\u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570\u3002","workCenter.resource.extended":"\u9884\u7B97\u5DF2\u8FFD\u52A0\u3002\u672A\u6062\u590D\u6267\u884C\uFF1B\u51C6\u5907\u597D\u540E\u8BF7\u660E\u786E\u70B9\u51FB\u6062\u590D\u3002","workCenter.resource.resumed":"\u6062\u590D\u8BF7\u6C42\u5DF2\u63A5\u53D7\u3002","workCenter.resource.pending":"\u6B63\u5728\u66F4\u65B0\u8D44\u6E90\u72B6\u6001\u2026","workCenter.resource.close":"\u5173\u95ED\u9884\u7B97\u8868\u5355","workCenter.breadcrumbs":"Work Center \u5BFC\u822A","workCenter.actionNumber":"Action {number}","workCenter.actionBreadcrumb":"Action {number}\uFF1A{description}","workCenter.sourceUnavailable":"\u6765\u6E90 Action \u4E0D\u53EF\u7528","workCenter.untitledAction":"\u672A\u547D\u540D Action","workCenter.workItems":"\u5DE5\u4F5C\u9879","workCenter.description":"\u9700\u6C42\u63CF\u8FF0","workCenter.goal":"\u76EE\u6807","workCenter.acceptanceCriteria":"\u9A8C\u6536\u6761\u4EF6","workCenter.goalProgress":"\u76EE\u6807\u8FDB\u5EA6","workCenter.criteriaProgress":"{completed} / {total} \u9879\u9A8C\u6536\u6761\u4EF6\u5DF2\u9A8C\u8BC1","workCenter.criteriaRemaining":"\u5269\u4F59 {count} \u9879","workCenter.criteriaOmitted":"\u6B64\u6709\u754C\u89C6\u56FE\u7701\u7565\u4E86 {count} \u9879\u6761\u4EF6\uFF0C\u603B\u6570\u4ECD\u5305\u542B\u8FD9\u4E9B\u6761\u4EF6\u3002","workCenter.criteriaVerified":"\u6240\u6709\u9A8C\u6536\u6761\u4EF6\u5DF2\u9A8C\u8BC1","workCenter.criteriaPending":"\u5C1A\u672A\u5B9A\u4E49\u9A8C\u6536\u6761\u4EF6","workCenter.goalStatus.passed":"\u5DF2\u9A8C\u8BC1","workCenter.goalStatus.failed":"\u672A\u901A\u8FC7","workCenter.goalStatus.unmet":"\u5F85\u9A8C\u8BC1","workCenter.goalBlockers":"\u963B\u585E\u539F\u56E0","workCenter.evidenceRuns":"\u8BC1\u636E Run","workCenter.deliveredResponse":"\u4EA4\u4ED8\u56DE\u590D","workCenter.responseEvidence":"\u56DE\u590D\u6765\u6E90\u4E0E\u8BC1\u636E","workCenter.noCriteria":"\u672A\u63D0\u4F9B\u9A8C\u6536\u6761\u4EF6","workCenter.failureReason":"\u5931\u8D25\u539F\u56E0","workCenter.workflow":"\u4EFB\u52A1\u6D41","workCenter.triageSummary":"Triage \u6458\u8981","workCenter.actionFlow":"Action \u6D41\u7A0B","workCenter.viewActions":"\u67E5\u770B Actions","workCenter.actionsPanel":"Actions","workCenter.resizeActions":"\u8C03\u6574 Actions \u680F\u5BBD\u5EA6\uFF08\u65B9\u5411\u952E\u8C03\u6574\uFF0CHome \u91CD\u7F6E\uFF09","workCenter.closeActions":"\u5173\u95ED Actions","workCenter.actionCount":"{count} \u4E2A Action","workCenter.noActionSummary":"\u6682\u65E0\u6458\u8981","workCenter.actionProgress":"{completed} / {total} \u4E2A Action","workCenter.currentAction":"\u5F53\u524D Action","workCenter.expandActions":"\u5C55\u5F00 Action","workCenter.collapseActions":"\u6536\u8D77","workCenter.actionObjective":"\u8FD9\u6B21\u8981\u505A\u4EC0\u4E48","workCenter.actionApproach":"\u51C6\u5907\u600E\u4E48\u505A","workCenter.actionExpectedOutcome":"\u671F\u5F85\u7684\u7ED3\u679C","workCenter.dependencies":"\u6765\u6E90 Action","workCenter.actionResult":"\u6700\u65B0\u7ED3\u679C","workCenter.currentProgress":"\u5F53\u524D\u8FDB\u5EA6","workCenter.requirementAndAcceptance":"\u9700\u6C42\u4E0E\u9A8C\u6536","workCenter.taskInformation":"\u4EFB\u52A1\u4FE1\u606F\u4E0E\u7528\u91CF","workCenter.actionMessages":"\u6D88\u606F","workCenter.loops":"\u4E2A Loop","workCenter.tools":"\u6B21\u5DE5\u5177\u8C03\u7528","workCenter.noActionMessages":"\u8FD8\u6CA1\u6709\u6D88\u606F\u3002","workCenter.actionDetails":"Action \u8BE6\u60C5","workCenter.selectAction":"\u9009\u62E9\u4E00\u4E2A Action","workCenter.backToWorkItems":"\u5DE5\u4F5C\u9879","workCenter.backToActions":"\u8FD4\u56DE Actions","workCenter.you":"\u4F60","workCenter.noRequestDetails":"\u8FD9\u4E2A Action \u6682\u65F6\u6CA1\u6709\u53EF\u7528\u7684\u6267\u884C\u8BB0\u5F55\u3002","workCenter.loadingRequests":"\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u8BB0\u5F55\u2026","workCenter.loadingRequestDetail":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u5177\u8BC1\u636E\u2026","workCenter.requestDetailUnavailable":"\u5DE5\u5177\u8BC1\u636E\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.noRequestLoops":"\u8FD9\u6B21\u6267\u884C\u6CA1\u6709\u4FDD\u7559\u4E0B\u53EF\u5C55\u793A\u7684 Loop\u3002","workCenter.requestDetailTruncated":"\u6267\u884C\u5185\u5BB9\u8F83\u5927\uFF1A{summarized} \u4E2A Loop \u663E\u793A\u6458\u8981\uFF0C\u53E6\u6709 {omitted} \u4E2A\u8F83\u65E9 Loop \u672A\u663E\u793A\u3002","workCenter.loopDetailTruncated":"\u8FD9\u4E2A Loop \u5185\u5BB9\u8F83\u5927\uFF0C\u5F53\u524D\u663E\u793A\u4FDD\u7559\u4E0B\u6765\u7684\u5DE5\u5177\u8BC1\u636E\u3002","workCenter.loadEarlierMessages":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","workCenter.loadingEarlierMessages":"\u6B63\u5728\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u2026","workCenter.unknownModel":"\u672A\u77E5\u6A21\u578B","workCenter.loop":"Loop","workCenter.actionBrief":"\u4EFB\u52A1\u8BF4\u660E","workCenter.executionSummary":"\u6267\u884C\u6458\u8981","workCenter.toolParameters":"\u8C03\u7528\u53C2\u6570","workCenter.toolResult":"\u6267\u884C\u7ED3\u679C","workCenter.noToolCalls":"\u8FD9\u4E2A Loop \u6CA1\u6709\u5DE5\u5177\u8C03\u7528\u3002","workCenter.actionInputPlaceholder":"\u8865\u5145\u4E0A\u4E0B\u6587\u3001\u56DE\u7B54\u95EE\u9898\u6216\u8C03\u6574\u8FD9\u4E2A Action","workCenter.actionInputResumeHint":"\u4F60\u7684\u8F93\u5165\u4F1A\u5E26\u7740\u65B0\u589E\u4E0A\u4E0B\u6587\u7EE7\u7EED\u8FD9\u4E2A Action\u3002","workCenter.waitingQuestionTitle":"\u9700\u8981\u4F60\u7684\u56DE\u7B54","workCenter.replyToAction":"\u56DE\u590D\u8FD9\u4E2A Action","workCenter.replyToCoordinator":"\u56DE\u590D\u534F\u8C03\u8005","workCenter.replyHelp":"\u5728\u4E0B\u65B9\u5BF9\u8BDD\u4E2D\u56DE\u590D\u4F60\u7684\u51B3\u5B9A\u6216\u5904\u7406\u8981\u6C42\uFF1B\u53D1\u9001\u524D\u4E0D\u4F1A\u6267\u884C\u4EFB\u4F55\u786E\u8BA4\u3002","workCenter.inputStale":"\u76EE\u6807\u72B6\u6001\u5DF2\u53D8\u5316\uFF0C\u56DE\u7B54\u5C1A\u672A\u5E94\u7528\u3002\u8F93\u5165\u5DF2\u4FDD\u7559\uFF0C\u8BF7\u6838\u5BF9\u5237\u65B0\u540E\u7684\u76EE\u6807\u518D\u53D1\u9001\u3002","workCenter.actionInputRetryHint":"\u8865\u5145\u4FEE\u6B63\u8BF4\u660E\u6216\u6587\u4EF6\u540E\uFF0C\u4F7F\u7528\u65B0\u4E0A\u4E0B\u6587\u91CD\u65B0\u6267\u884C\u8FD9\u4E2A Action\u3002","workCenter.actionInputContinueHint":"\u8FD9\u91CC\u53EA\u76F4\u63A5\u5E72\u9884\u5F53\u524D Action\u3002","workCenter.actionFailedTitle":"\u8FD9\u4E2A Action \u4E3A\u4EC0\u4E48\u5931\u8D25","workCenter.actionClosedTitle":"\u8FD9\u4E2A Action \u4E3A\u4EC0\u4E48\u88AB\u5173\u95ED","workCenter.failedAt":"\u5931\u8D25\u65F6\u95F4","workCenter.closedAt":"\u5173\u95ED\u65F6\u95F4","workCenter.actionFailureRecovery":"\u5728\u5DE5\u4F5C\u9879\u8F93\u5165\u6846\u4E2D\u9009\u62E9\u6B64 Action\uFF0C\u518D\u53D1\u9001\u4FEE\u6B63\u8BF4\u660E\u3002","workCenter.sendInput":"\u53D1\u9001\u7ED9 Action","workCenter.sendingInput":"\u6B63\u5728\u53D1\u9001\u2026","workCenter.retryAction":"\u91CD\u8BD5 Action","workCenter.sendAndRetryAction":"\u53D1\u9001\u5E76\u91CD\u8BD5 Action","workCenter.coordinatorDecision.guide_actions":"\u5DF2\u66F4\u65B0 Action \u6307\u4EE4","workCenter.coordinatorDecision.replan":"\u5DF2\u66F4\u65B0\u76EE\u6807\u6216\u8BA1\u5212","workCenter.coordinatorDecision.request_human":"\u9700\u8981\u4EBA\u5DE5\u8865\u5145\u4FE1\u606F","workCenter.conversation":"\u5BF9\u8BDD","workCenter.contentPane":"\u5185\u5BB9","workCenter.workItemPanes":"\u5DE5\u4F5C\u9879\u9762\u677F","workCenter.coordinator":"\u534F\u8C03\u8005","workCenter.coordinatorTargetHint":"\u5DE5\u4F5C\u9879\u89C4\u5212\u4E0E\u534F\u8C03","workCenter.composerTarget":"\u6D88\u606F\u76EE\u6807","workCenter.targetUnavailable":"\u6240\u9009 Action \u5DF2\u4E0D\u53EF\u7528","workCenter.targetUnavailableHelp":"\u53D1\u9001\u524D\u8BF7\u9009\u62E9\u5176\u4ED6\u76EE\u6807\uFF1B\u7CFB\u7EDF\u6CA1\u6709\u91CD\u5B9A\u5411\u8FD9\u4EFD\u8349\u7A3F\u3002","workCenter.sendToCoordinatorInstead":"\u6539\u53D1\u7ED9 Coordinator","workCenter.sendToTarget":"\u53D1\u9001\u7ED9 {target}","workCenter.answerWithTarget":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u9009\u62E9\u76F8\u5173\u76EE\u6807\uFF0C\u7136\u540E\u56DE\u590D\u3002","workCenter.conversationThinking":"\u5904\u7406\u4E2D\u2026","workCenter.conversationReadOnly":"\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u5DF2\u5173\u95ED\uFF0C\u5BF9\u8BDD\u8BB0\u5F55\u4ECD\u53EF\u67E5\u770B\u3002","workCenter.conversationPlaceholder":"\u7EE7\u7EED\u8BA8\u8BBA\u8FD9\u4E2A\u5DE5\u4F5C\u9879","workCenter.sendMessage":"\u53D1\u9001\u6D88\u606F","workCenter.messageSpeakerRole":"{name} \xB7 {role}","workCenter.originalRequest":"\u539F\u59CB\u9700\u6C42","workCenter.actionMessageScopeTitle":"\u7ED9\u8FD9\u4E2A Action \u53D1\u6D88\u606F","workCenter.actionMessageScope":"\u6D88\u606F\u53EA\u53D1\u9001\u7ED9\u5F53\u524D Action\u3002","workCenter.actionConversation":"\u5BF9\u8BDD","workCenter.actionConversationWith":"Action \u6267\u884C\u8005","workCenter.actionViews":"Action \u89C6\u56FE","workCenter.actionExecutor":"\u6267\u884C\u8005","workCenter.actionExecutorPending":"\u7B49\u5F85\u5206\u914D\u6267\u884C\u8005","workCenter.actionInformation":"Action \u4FE1\u606F","workCenter.messageExecutor":"\u7ED9 {name} \u53D1\u6D88\u606F","workCenter.actionChatPlaceholder":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u7ED9 {name} \u53D1\u6D88\u606F","workCenter.statusLabel":"\u72B6\u6001","workCenter.llmRequestsLabel":"LLM \u8BF7\u6C42","workCenter.loopsLabel":"Loops","workCenter.toolsLabel":"\u5DE5\u5177","workCenter.tokensLabel":"Tokens","workCenter.workItemMessagePlaceholder":"\u8865\u5145\u6574\u4E2A Work Item \u7684\u65B9\u5411\u6216\u7EA6\u675F","workCenter.sendWorkItemMessage":"\u53D1\u9001\u7ED9 Work Item","workCenter.fromSession":"\u4ECE\u5F53\u524D Session \u521B\u5EFA\u5DE5\u4F5C\u9879","workCenter.llmRequestCount":"{count} \u6B21 LLM \u8BF7\u6C42","workCenter.loopCount":"{count} \u6B21 Loop","workCenter.toolCount":"{count} \u4E2A\u5DE5\u5177","workCenter.tokenCount":"{count} tokens","workCenter.tokenBreakdown":"\u8F93\u5165 {input} / \u8F93\u51FA {output} / \u7F13\u5B58 {cache}","workCenter.guidance":"\u7ED9\u5F53\u524D Action \u8865\u5145\u63D0\u793A","workCenter.guidanceHint":"\u8865\u5145\u7EA6\u675F\uFF0C\u6216\u8C03\u6574\u5F53\u524D Action \u7684\u6267\u884C\u65B9\u5411","workCenter.guidanceRestartHint":"\u53D1\u9001\u540E\u4F1A\u4F7F\u7528\u65B0\u63D0\u793A\u91CD\u542F\u5F53\u524D Action\u3002","workCenter.sendGuidance":"\u53D1\u9001\u63D0\u793A","workCenter.reuseMemory":"\u4F7F\u7528\u76F8\u5173 Agent memory \u548C\u6B64\u9879\u76EE\u7684\u5DF2\u5B8C\u6210\u5DE5\u4F5C","workCenter.reuseMemoryHelp":"\u5305\u62EC\u53D7 scope \u7EA6\u675F\u7684 Agent memory\uFF0C\u4EE5\u53CA canonical \u9879\u76EE\u76EE\u5F55\u76F8\u540C\u7684\u5DF2\u5B8C\u6210 Work Item \u7ED3\u6784\u5316\u6458\u8981\u548C\u8BC1\u636E\uFF1B\u4E0D\u4F1A\u590D\u7528\u539F\u59CB\u5DE5\u5177\u8F93\u51FA\u3002","workCenter.resumeAnswer":"\u56DE\u7B54\u7B49\u5F85\u4E2D\u7684\u95EE\u9898","workCenter.resumeAnswerHint":"\u63D0\u4F9B\u7EE7\u7EED\u6267\u884C\u6240\u9700\u7684\u4FE1\u606F","workCenter.answerInActionDetail":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u5C06\u76EE\u6807\u8BBE\u4E3A\u5F53\u524D Action\uFF0C\u7136\u540E\u56DE\u590D\u3002","workCenter.selectPrompt":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u9879\uFF0C\u67E5\u770B\u5B83\u7684\u6D41\u7A0B\u3002","workCenter.createHint":"\u63CF\u8FF0\u4F60\u9700\u8981\u4EC0\u4E48\uFF0CCoordinator \u4F1A\u6301\u7EED\u521B\u5EFA\u5F53\u524D\u5FC5\u8981\u7684 Actions\uFF0C\u76F4\u5230\u9A8C\u6536\u6761\u4EF6\u5F97\u5230\u9A8C\u8BC1\u3002","workCenter.requirement":"\u9700\u6C42","workCenter.requirementHint":"\u7528\u81EA\u7136\u8BED\u8A00\u63CF\u8FF0\u95EE\u9898\u3001\u671F\u671B\u7ED3\u679C\u548C\u5FC5\u8981\u7EA6\u675F","workCenter.requirementHelp":"Coordinator \u4F1A\u5B8C\u5584\u76EE\u6807\u4E0E\u9A8C\u6536\u6761\u4EF6\uFF0C\u5E76\u968F\u7740\u8BC1\u636E\u4EA7\u751F\u52A8\u6001\u521B\u5EFA Actions\u3002","workCenter.titleField":"\u6807\u9898","workCenter.titleHint":"\u7B80\u77ED\u3001\u660E\u786E\u5730\u63CF\u8FF0\u9884\u671F\u7ED3\u679C","workCenter.goalHint":"\u8BF4\u660E Agent \u5FC5\u987B\u4EA4\u4ED8\u7684\u6700\u7EC8\u7ED3\u679C","workCenter.criteriaHint":"\u6BCF\u884C\u4E00\u6761\u9A8C\u6536\u6761\u4EF6","workCenter.attachments":"\u9644\u4EF6","workCenter.outputs":"\u4EA7\u51FA","workCenter.deliveryTarget":"\u4EA4\u4ED8\u76EE\u6807","workCenter.deliveryTargetCustom":"\u81EA\u5B9A\u4E49","workCenter.deliveryCustomHelp":"\u5408\u5E76\u3001\u53D1\u5E03\u4ECD\u9700\u6309\u89C4\u5219\u6388\u6743\u3002","workCenter.deliveryTargetAsk":"\u4EA4\u4ED8\u524D\u8BE2\u95EE\u6211","workCenter.deliveryTargetResponse":"\u56DE\u590D","workCenter.deliveryTargetFiles":"\u5DE5\u4F5C\u76EE\u5F55\u4E2D\u7684\u6587\u4EF6","workCenter.deliveryTargetPr":"\u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42","workCenter.deliveryTargetMerge":"\u5408\u5E76\u5DF2\u6279\u51C6\u7684\u62C9\u53D6\u8BF7\u6C42","workCenter.deliveryTargetHelp":"\u201C\u56DE\u590D\u201D\u4EA4\u4ED8\u6709\u8BC1\u636E\u652F\u6301\u7684\u7B54\u590D\uFF0C\u4E0D\u8981\u6C42\u4EE3\u7801\u4EA7\u7269\u3002\u4EE3\u7801\u7C7B\u4EA4\u4ED8\u4ECD\u987B\u9075\u5B88\u8BC4\u5BA1\u4E0E\u5408\u5E76\u7B56\u7565\u3002","workCenter.deliveryInstructions":"\u4EA4\u4ED8\u76EE\u6807\u8BF4\u660E","workCenter.deliveryInstructionsHint":"\u4F8B\u5982\uFF1A\u53D1\u5E03\u7248\u672C\u5E76\u603B\u7ED3\u6539\u52A8","workCenter.deliveryInstructionsHelp":"\u53EF\u9009\u62E9\u4EE5\u524D\u7528\u8FC7\u7684\u76EE\u6807\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u65B0\u76EE\u6807\uFF1B\u4E0D\u4F1A\u56E0\u6B64\u83B7\u5F97\u989D\u5916\u4EA4\u4ED8\u6743\u9650\u3002","workCenter.attachmentsHelp":"\u56FE\u7247\u3001PDF \u548C\u6587\u672C\u6587\u4EF6\u4F1A\u6301\u7EED\u7ED1\u5B9A\u5230\u6B64 Work Item\uFF0C\u5E76\u63D0\u4F9B\u7ED9\u6BCF\u4E2A Action\u3002","workCenter.attachmentsUnsupported":"\u6240\u9009 Agent \u4E0D\u652F\u6301 Work Item \u9644\u4EF6\u3002","workCenter.addAttachments":"\u6DFB\u52A0\u6587\u4EF6","workCenter.attachmentsUploading":"\u4E0A\u4F20\u4E2D\u2026","workCenter.attachmentsUploadFailed":"\u9644\u4EF6\u4E0A\u4F20\u5931\u8D25","workCenter.pendingEnvelopeLocked":"\u6709\u4E00\u6761\u672A\u786E\u8BA4\u8BF7\u6C42\u5DF2\u9501\u5B9A\u5230\u539F\u59CB\u8EAB\u4EFD\u3002","workCenter.replacePendingAttachments":"\u66FF\u6362\u9644\u4EF6","workCenter.discardPendingEnvelope":"\u653E\u5F03\u5F85\u786E\u8BA4\u8BF7\u6C42","workCenter.pendingEnvelopeChanged":"\u5F85\u786E\u8BA4\u8BF7\u6C42\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u8BE5\u5DE5\u4F5C\u9879\u540E\u518D\u8BD5\u3002","workCenter.removeAttachment":"\u4ECE\u8349\u7A3F\u4E2D\u79FB\u9664","workCenter.previewAttachment":"\u6253\u5F00\u9644\u4EF6","workCenter.openAttachmentNamed":"\u6253\u5F00\u9644\u4EF6 {name}","workCenter.openingAttachment":"\u6B63\u5728\u6253\u5F00\u9644\u4EF6\u2026","workCenter.attachmentPreviewFailed":"\u65E0\u6CD5\u6253\u5F00\u9644\u4EF6\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.attachmentOpenBlocked":"\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u9644\u4EF6\u7A97\u53E3\uFF0C\u8BF7\u5141\u8BB8\u5F39\u51FA\u7A97\u53E3\u540E\u91CD\u8BD5\u3002","workCenter.execution":"\u6267\u884C\u65B9\u5F0F","workCenter.executionHint":"\u9009\u62E9\u5DE5\u4F5C\u9879\u5728\u54EA\u91CC\u6267\u884C\uFF0C\u4EE5\u53CA\u521B\u5EFA\u540E\u662F\u5426\u7ACB\u5373\u5F00\u59CB\u3002","workCenter.workDir":"\u5DE5\u4F5C\u76EE\u5F55","workCenter.workDirHint":"\u9009\u62E9\u4E00\u4E2A\u5DF2\u5B58\u5728\u7684\u9879\u76EE\u76EE\u5F55","workCenter.chooseFolder":"\u9009\u62E9\u6587\u4EF6\u5939","workCenter.workDirPickerHelp":"\u4ECE\u5F53\u524D Agent \u7684\u771F\u5B9E\u76EE\u5F55\u4E2D\u9009\u62E9\u5DF2\u5B58\u5728\u7684\u6587\u4EF6\u5939\u3002","workCenter.folderPickerHint":"\u9009\u62E9\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53EF\u4EE5\u8BFB\u53D6\u548C\u4FEE\u6539\u7684\u9879\u76EE\u76EE\u5F55\u3002","workCenter.folderPickerSelectionHint":"\u53CC\u51FB\u8FDB\u5165\u76EE\u5F55\uFF0C\u6216\u9009\u4E2D\u76EE\u5F55\u540E\u786E\u8BA4\u3002","workCenter.schedule":"\u8BA1\u5212","workCenter.scheduleStatus":"\u8BA1\u5212\u72B6\u6001","workCenter.scheduleEnabled":"\u5DF2\u542F\u7528","workCenter.scheduleDisabled":"\u5DF2\u505C\u7528","workCenter.scheduleRunsAt":"\u8BA1\u5212\u6267\u884C\u4E8E","workCenter.scheduleTriggered":"\u8BA1\u5212\u5DF2\u89E6\u53D1","workCenter.schedulePaused":"\u8BA1\u5212\u5DF2\u6682\u505C","workCenter.scheduleWorkItem":"\u5B9A\u65F6\u6267\u884C\u6B64\u5DE5\u4F5C\u9879","workCenter.scheduleWorkItemHint":"\u5C06\u5176\u6301\u4E45\u4FDD\u5B58\u4E3A\u8349\u7A3F\uFF0C\u5E76\u5728\u6240\u9009\u672C\u5730\u65F6\u95F4\u6267\u884C\u4E00\u6B21\u3002","workCenter.scheduling.heading":"\u6267\u884C\u65F6\u95F4","workCenter.scheduling.planHint":"\u8FD9\u662F\u6267\u884C\u8BA1\u5212\uFF0C\u4E0D\u662F\u6B63\u5728\u8FD0\u884C\u7684\u5DE5\u4F5C\u9879\u3002\u8BF7\u6253\u5F00\u751F\u6210\u7684\u5DE5\u4F5C\u9879\u67E5\u770B\u8FDB\u5EA6\u6216\u53D1\u9001\u6307\u4EE4\u3002","workCenter.scheduling.mode.now":"\u7ACB\u5373\u6267\u884C","workCenter.scheduling.mode.draft":"\u4FDD\u5B58\u8349\u7A3F","workCenter.scheduling.mode.scheduled":"\u5B9A\u65F6\u6267\u884C","workCenter.scheduling.modeHint.now":"\u521B\u5EFA\u540E\u7ACB\u5373\u5F00\u59CB\u6267\u884C\u3002","workCenter.scheduling.modeHint.draft":"\u5148\u4FDD\u5B58\uFF0C\u4E0D\u6267\u884C\uFF1B\u786E\u8BA4\u540E\u518D\u624B\u52A8\u5F00\u59CB\u3002","workCenter.scheduling.repeat":"\u91CD\u590D\u65B9\u5F0F","workCenter.scheduling.once":"\u4EC5\u4E00\u6B21","workCenter.scheduling.daily":"\u6BCF\u5929","workCenter.scheduling.weekdays":"\u5DE5\u4F5C\u65E5\uFF08\u5468\u4E00\u81F3\u5468\u4E94\uFF09","workCenter.scheduling.weekly":"\u6BCF\u5468","workCenter.scheduling.monthly":"\u6BCF\u6708","workCenter.scheduling.date":"\u65E5\u671F","workCenter.scheduling.fromDate":"\u5F00\u59CB\u65E5\u671F","workCenter.scheduling.time":"\u65F6\u95F4 \xB7 24 \u5C0F\u65F6\u5236","workCenter.scheduling.timeHint":"HH:mm\uFF0C\u4F8B\u5982 09:00 \u6216 17:30","workCenter.scheduling.timeZone":"\u65F6\u533A","workCenter.scheduling.onDays":"\u6267\u884C\u65E5","workCenter.scheduling.monthDay":"\u6BCF\u6708\u51E0\u53F7","workCenter.scheduling.shortMonth":"\u5F53\u6708\u6CA1\u6709\u8BE5\u65E5\u671F\u65F6\uFF0C\u5728\u5F53\u6708\u6700\u540E\u4E00\u5929\u6267\u884C\u3002","workCenter.scheduling.ends":"\u7ED3\u675F\u6761\u4EF6","workCenter.scheduling.end.never":"\u4E0D\u8BBE\u7ED3\u675F","workCenter.scheduling.end.date":"\u5230\u6307\u5B9A\u65E5\u671F","workCenter.scheduling.end.count":"\u6267\u884C\u6307\u5B9A\u6B21\u6570","workCenter.scheduling.endDate":"\u7ED3\u675F\u65E5\u671F\uFF08\u542B\u5F53\u5929\uFF09","workCenter.scheduling.runCount":"\u603B\u6267\u884C\u6B21\u6570 \xB7 1\u20131,000","workCenter.scheduling.nextRun":"\u4E0B\u6B21\u6267\u884C","workCenter.scheduling.create":"\u521B\u5EFA\u8BA1\u5212","workCenter.scheduling.onceHint":"\u8BE5 Agent \u5728\u7EBF\u65F6\u6267\u884C\u4E00\u6B21\uFF1B\u82E5\u5230\u65F6\u79BB\u7EBF\uFF0C\u5219\u5728\u6062\u590D\u540E\u6267\u884C\u3002","workCenter.scheduling.recurringHint":"\u6BCF\u6B21\u751F\u6210\u72EC\u7ACB\u5DE5\u4F5C\u9879\u3002\u79BB\u7EBF\u9519\u8FC7\u7684\u65F6\u6BB5\u5408\u5E76\u5904\u7406\uFF1B\u4E0A\u4E00\u8F6E\u672A\u7ED3\u675F\u65F6\u8DF3\u8FC7\u672C\u8F6E\uFF0C\u4E0D\u91CD\u53E0\u6267\u884C\u3002\u6682\u505C\u53EA\u5F71\u54CD\u540E\u7EED\u8BA1\u5212\uFF0C\u4E0D\u4E2D\u65AD\u5DF2\u5F00\u59CB\u7684\u5DE5\u4F5C\u3002","workCenter.scheduling.upgrade":"\u6B64 Agent \u5C1A\u672A\u58F0\u660E\u652F\u6301\u5468\u671F\u8BA1\u5212\uFF0C\u66F4\u65B0\u540E\u53EF\u542F\u7528\u91CD\u590D\u6267\u884C\u3002","workCenter.scheduling.invalidDateTime":"\u8BF7\u8F93\u5165\u6709\u6548\u65E5\u671F\u548C\u65F6\u95F4\uFF08HH:mm\uFF09\u3002","workCenter.scheduling.invalidTimeZone":"\u8BF7\u9009\u62E9\u6709\u6548\u65F6\u533A\u3002","workCenter.scheduling.chooseWeekdays":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u6267\u884C\u65E5\u3002","workCenter.scheduling.invalidMonthDay":"\u8BF7\u9009\u62E9 1 \u81F3 31 \u53F7\u3002","workCenter.scheduling.nonexistentTime":"\u590F\u4EE4\u65F6\u5207\u6362\u5BFC\u81F4\u8FD9\u4E2A\u672C\u5730\u65F6\u95F4\u4E0D\u5B58\u5728\uFF0C\u8BF7\u6362\u4E00\u4E2A\u65F6\u95F4\u3002","workCenter.scheduling.futureTime":"\u9996\u6B21\u6267\u884C\u65F6\u95F4\u5FC5\u987B\u665A\u4E8E\u73B0\u5728\u3002","workCenter.scheduling.tooFar":"\u8BF7\u9009\u62E9\u672A\u6765\u4E94\u5E74\u5185\u7684\u9996\u6B21\u6267\u884C\u65F6\u95F4\u3002","workCenter.scheduling.invalidEndDate":"\u7ED3\u675F\u65E5\u671F\u4E0D\u80FD\u65E9\u4E8E\u9996\u6B21\u6267\u884C\u3002","workCenter.scheduling.supportedRange":"\u8BF7\u9009\u62E9\u652F\u6301\u8303\u56F4\u5185\u7684\u65E5\u671F\uFF08UTC 1970\u20132099 \u5E74\uFF09\u3002","workCenter.scheduling.invalidRunCount":"\u8BF7\u8F93\u5165 1 \u81F3 1,000 \u4E4B\u95F4\u7684\u6574\u6570\u3002","workCenter.scheduling.status.scheduled":"\u5DF2\u5B89\u6392","workCenter.scheduling.status.paused":"\u5DF2\u6682\u505C","workCenter.scheduling.status.triggered":"\u5DF2\u89E6\u53D1","workCenter.scheduling.status.completed":"\u8BA1\u5212\u5DF2\u7ED3\u675F","workCenter.scheduling.status.cancelled":"\u5DF2\u53D6\u6D88","workCenter.scheduling.retrying":"\u6B63\u5728\u91CD\u8BD5","workCenter.scheduling.dispatchFailed":"\u5B9A\u65F6\u6267\u884C\u672A\u80FD\u542F\u52A8\uFF0C\u5C06\u81EA\u52A8\u91CD\u8BD5\u3002\u8BF7\u68C0\u67E5\u8BA1\u5212\u914D\u7F6E\u548C\u9644\u4EF6\u3002","workCenter.scheduling.pause":"\u6682\u505C\u8BA1\u5212","workCenter.scheduling.resume":"\u6062\u590D\u8BA1\u5212","workCenter.scheduling.executions":"\u5DF2\u751F\u6210 {count} \u4E2A\u5DE5\u4F5C\u9879","workCenter.scheduling.lastExecution":"\u67E5\u770B\u6700\u8FD1\u4E00\u6B21\u6267\u884C","workCenter.scheduling.sourcePlan":"\u67E5\u770B\u6240\u5C5E\u5468\u671F\u8BA1\u5212","workCenter.scheduleAt":"\u5F00\u59CB\u65F6\u95F4","workCenter.enableSchedule":"\u542F\u7528\u8BA1\u5212","workCenter.disableSchedule":"\u505C\u7528\u8BA1\u5212","workCenter.startImmediately":"\u7ACB\u5373\u5F00\u59CB","workCenter.startImmediatelyHint":"\u5173\u95ED\u540E\u5C06\u521B\u5EFA\u4E3A\u8349\u7A3F\uFF0C\u786E\u8BA4\u65E0\u8BEF\u540E\u518D\u5F00\u59CB\u3002","workCenter.creating":"\u521B\u5EFA\u4E2D\u2026","workCenter.create":"\u521B\u5EFA","workCenter.status.draft":"\u8349\u7A3F","workCenter.status.ready":"\u5F85\u6267\u884C","workCenter.status.running":"\u6267\u884C\u4E2D","workCenter.status.waiting":"\u7B49\u5F85\u4E2D","workCenter.status.needs_attention":"\u9700\u8981\u5904\u7406","workCenter.status.done":"\u5DF2\u5B8C\u6210","workCenter.status.cancelled":"\u5DF2\u53D6\u6D88","workCenter.status.completed":"\u5DF2\u5B8C\u6210","workCenter.status.failed":"\u5931\u8D25","workCenter.status.closed":"\u5DF2\u5173\u95ED","workCenter.status.superseded":"\u5DF2\u66FF\u4EE3","workCenter.action.triage":"\u5206\u6790","workCenter.action.implement":"\u5B9E\u73B0","workCenter.action.review":"\u8BC4\u5BA1","workCenter.action.integrate":"\u96C6\u6210","workCenter.action.deliver":"\u4EA4\u4ED8","workCenter.action.test":"\u6D4B\u8BD5","workCenter.action.research":"\u7814\u7A76","workCenter.action.design":"\u8BBE\u8BA1","workCenter.action.diagnose":"\u8BCA\u65AD","workCenter.action.migrate":"\u8FC1\u79FB","workCenter.action.document":"\u6587\u6863","workCenter.action.operate":"\u8FD0\u7EF4","workCenter.action.write":"\u5199\u4F5C","workCenter.action.create_vp":"\u521B\u5EFA VP","workCenter.action.custom":"\u81EA\u5B9A\u4E49","workCenter.assignment.auto":"\u4F7F\u7528\u4EFB\u52A1\u6D41\u7B56\u7565","workCenter.model.inherit":"\u4F7F\u7528\u4EFB\u52A1\u6D41\u6A21\u578B","workCenter.model.defaultProvider":"\u9ED8\u8BA4 Provider","workCenter.planPreview":"\u6267\u884C\u8BA1\u5212","workCenter.planPreviewHelp":"\u6839\u636E\u5F53\u524D Agent \u7684 VP \u6C60\u548C\u6A21\u578B\u8BBE\u7F6E\u5B9E\u65F6\u89E3\u6790\u3002","workCenter.settings.title":"\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E","workCenter.settings.subtitle":"\u914D\u7F6E Coordinator\uFF0C\u4EE5\u53CA AI \u52A8\u6001\u89C4\u5212\u4F7F\u7528\u7684 Action \u63D0\u793A\u8BCD\u3001\u6A21\u578B\u548C effort\u3002","workCenter.settings.workflow":"\u4EFB\u52A1\u6D41","workCenter.settings.workflowHelp":"Coordinator \u4F1A\u9488\u5BF9\u4EFB\u52A1\u52A8\u6001\u9009\u62E9 Action \u548C\u6267\u884C\u8005\u3002","workCenter.settings.aiWorkflowHelp":"Coordinator \u53EA\u521B\u5EFA\u5F53\u524D\u5FC5\u8981\u7684\u4EFB\u52A1\u4E13\u5C5E Action\u3002\u5185\u7F6E Action \u7B56\u7565\u662F\u53EF\u590D\u7528\u6A21\u677F\uFF1B\u9700\u8981\u65F6 Coordinator \u53EF\u4EE5\u521B\u5EFA\u7CBE\u786E\u7684\u9886\u57DF\u7C7B\u578B\u3002","workCenter.settings.globalInstructions":"Agent \u5168\u5C40\u6307\u4EE4","workCenter.settings.globalInstructionsHint":"\u4F8B\u5982\uFF1A\u9075\u5FAA\u4ED3\u5E93\u53D1\u5E03\u6D41\u7A0B\u3001\u5FC5\u987B\u72EC\u7ACB\u8BC4\u5BA1\uFF0C\u672A\u7ECF\u660E\u786E\u6279\u51C6\u4E0D\u5F97\u521B\u5EFA\u90E8\u7F72 tag\u3002","workCenter.settings.globalInstructionsHelp":"\u4FDD\u5B58\u5728 Agent \u7EA7\uFF0C\u5E76\u51BB\u7ED3\u8FDB\u6BCF\u4E2A\u65B0 Work Item\uFF1B\u5BF9 triage \u548C\u6240\u6709\u751F\u6210\u7684 Action \u751F\u6548\uFF0C\u4F18\u5148\u7EA7\u4F4E\u4E8E Work Item \u5951\u7EA6\u53CA\u7CFB\u7EDF/\u5DE5\u5177\u5B89\u5168\u89C4\u5219\u3002\u5DF2\u6709 Work Item \u4FDD\u7559\u539F\u5FEB\u7167\u3002","workCenter.settings.actionPolicies":"\u5185\u7F6E Action \u7B56\u7565","workCenter.settings.actionPoliciesHelp":"\u8FD9\u4E9B\u662F\u53EF\u590D\u7528\u7684\u6267\u884C\u57FA\u7EBF\uFF0C\u4E0D\u662F\u56FA\u5B9A\u5DE5\u4F5C\u6D41\u3002\u672A\u77E5\u7684\u9886\u57DF Action \u7C7B\u578B\u4F1A\u4F7F\u7528\u201C\u81EA\u5B9A\u4E49\u201D\u7B56\u7565\uFF0C\u5E76\u4FDD\u7559 triage \u751F\u6210\u7684\u7C7B\u578B\u548C\u4EFB\u52A1\u76EE\u6807\u3002","workCenter.settings.dynamicInstructionHelp":"AI \u4F1A\u52A0\u5165 Work Item \u5951\u7EA6\u3001\u5168\u5C40\u6307\u4EE4\u3001\u524D\u5E8F Action \u4E0A\u4E0B\u6587\u3001memory \u548C\u4EFB\u52A1\u4E13\u5C5E\u76EE\u6807\uFF1B\u8FD9\u91CC\u5B9A\u4E49\u8BE5 Action \u7C7B\u578B\u7684\u53EF\u590D\u7528\u884C\u4E3A\u3002","workCenter.settings.models":"\u6A21\u578B","workCenter.settings.modelsHelp":"Provider \u548C\u51ED\u8BC1\u4ECD\u7531 Agent LLM \u8BBE\u7F6E\u7BA1\u7406\uFF1B\u5DE5\u4F5C\u4E2D\u5FC3\u53EA\u9009\u62E9\u53EF\u7528\u6A21\u578B\u3002","workCenter.settings.dynamicModelsHelp":"Coordinator \u4E0E\u5B9E\u9645\u6267\u884C Action \u7684\u6A21\u578B\u53EF\u4EE5\u5206\u522B\u914D\u7F6E\u3002","workCenter.settings.coordinatorModel":"Coordinator","workCenter.settings.coordinatorModelHelp":"\u7528\u4E8E Work Item \u5BF9\u8BDD\u3001\u4FEE\u6539\u76EE\u6807\u548C\u91CD\u65B0\u89C4\u5212\uFF1B\u4E0D\u4F1A\u6267\u884C\u9879\u76EE\u5DE5\u5177\u3002","workCenter.settings.allActions":"\u6240\u6709 Action \u7684\u515C\u5E95\u7B56\u7565","workCenter.settings.maxConcurrentActions":"\u6700\u5927\u5E76\u53D1 Action \u6570","workCenter.settings.maxConcurrentActionsHelp":"\u9ED8\u8BA4 3\u3002\u975E Git\u3001\u810F\u5DE5\u4F5C\u533A\u3001\u5171\u4EAB\u526F\u4F5C\u7528\u548C\u96C6\u6210 Action \u4ECD\u4F1A\u4E32\u884C\u6267\u884C\u3002","workCenter.workItemType":"\u7C7B\u578B","workCenter.typeAuto":"Auto \u2014 \u7531 LLM \u63A8\u65AD","workCenter.typeHelp":"\u53EF\u9009\u62E9\u4EFB\u52A1\u7C7B\u522B\uFF0C\u4E5F\u53EF\u8BA9 AI \u81EA\u52A8\u63A8\u65AD\uFF1B\u5177\u4F53 Actions \u59CB\u7EC8\u7531 AI \u89C4\u5212\u3002","workCenter.planning":"\u89C4\u5212\u4E2D","workCenter.aiPlan":"Coordinator \u9A71\u52A8\u6267\u884C","workCenter.aiPlanHelp":"Coordinator \u4F1A\u4F9D\u636E\u5F53\u524D\u8BC1\u636E\u9009\u62E9\u4E0B\u4E00\u6279 Action \u548C\u6267\u884C\u8005\uFF0C\u4E0D\u518D\u9884\u5148\u751F\u6210\u5DE5\u4F5C\u6D41\u56FE\uFF1B\u6A21\u578B\u4E0E effort \u7531 Work Center \u8BBE\u7F6E\u63A7\u5236\u3002","workCenter.settings.manageProviders":"\u7BA1\u7406 Agent \u6A21\u578B","workCenter.settings.assignment":"VP \u9009\u62E9","workCenter.settings.assignment.auto":"\u4ECE\u5168\u90E8 VP \u81EA\u52A8\u9009\u62E9","workCenter.settings.assignment.pool":"\u5019\u9009\u6C60","workCenter.settings.assignment.fixed":"\u56FA\u5B9A VP","workCenter.settings.capability":"\u6240\u9700\u80FD\u529B","workCenter.settings.vp":"Virtual Person","workCenter.settings.poolMembers":"\u5019\u9009 VP","workCenter.settings.modelPolicy":"\u6A21\u578B\u7B56\u7565","workCenter.settings.model.inherit":"\u7EE7\u627F VP \u504F\u597D","workCenter.settings.model.primary":"Agent \u4E3B\u6A21\u578B","workCenter.settings.model.fast":"Agent \u5FEB\u6A21\u578B","workCenter.settings.model.specific":"\u6307\u5B9A\u6A21\u578B","workCenter.settings.model.tag":"\u6A21\u578B\u6807\u7B7E","workCenter.settings.modelTag":"\u6807\u7B7E","workCenter.settings.modelTag.fast":"\u5FEB\u901F","workCenter.settings.modelTag.balanced":"\u6B63\u5E38","workCenter.settings.modelTag.ultimate":"\u6781\u81F4","workCenter.settings.model":"\u6A21\u578B","workCenter.settings.effort":"\u63A8\u7406\u5F3A\u5EA6","workCenter.settings.effortDefault":"\u6A21\u578B\u9ED8\u8BA4\u503C","workCenter.settings.effortHelp":"\u8986\u76D6\u6240\u9009\u6A21\u578B\u7684\u9ED8\u8BA4\u63A8\u7406\u5F3A\u5EA6\uFF0C\u5E76\u7528\u4E8E\u6240\u6709 Work Center Action\u3002","workCenter.settings.effortChooseModelHelp":"\u9009\u62E9 Agent \u4E3B\u6A21\u578B\u3001\u5FEB\u6A21\u578B\u6216\u6307\u5B9A\u6A21\u578B\u540E\u53EF\u914D\u7F6E\u63A8\u7406\u5F3A\u5EA6\uFF1B\u7EE7\u627F VP \u504F\u597D\u65F6\u4F7F\u7528\u5404 VP \u6A21\u578B\u7684\u9ED8\u8BA4\u503C\u3002","workCenter.settings.effortUnsupportedHelp":"\u6240\u9009\u6A21\u578B\u4E0D\u63D0\u4F9B\u53EF\u914D\u7F6E\u7684\u63A8\u7406\u5F3A\u5EA6\uFF0C\u56E0\u6B64\u4F7F\u7528\u6A21\u578B\u9ED8\u8BA4\u503C\u3002","workCenter.settings.saving":"\u4FDD\u5B58\u4E2D\u2026","workCenter.settings.reload":"\u91CD\u65B0\u52A0\u8F7D\u8BBE\u7F6E","workCenter.settings.conflict":"\u8BBE\u7F6E\u5DF2\u5728\u5176\u4ED6\u4F4D\u7F6E\u66F4\u65B0\uFF0C\u8BF7\u91CD\u65B0\u52A0\u8F7D\u540E\u518D\u4FDD\u5B58\u3002","workCenter.settings.upgradeRequired":"\u5F53\u524D Agent \u7248\u672C\u65E0\u6CD5\u4FDD\u5B58\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E\u3002\u8FD9\u91CC\u4EE5\u53EA\u8BFB\u65B9\u5F0F\u663E\u793A\u5F53\u524D\u503C\uFF1B\u5347\u7EA7 Agent \u540E\u5373\u53EF\u7F16\u8F91\u5E76\u4FDD\u5B58\u3002","workCenter.settings.saveNotConfirmed":"Agent \u672A\u786E\u8BA4\u672C\u6B21\u63D0\u4EA4\u7684\u63D0\u793A\u8BCD\u548C\u6A21\u578B\u7B56\u7565\u3002\u8BBE\u7F6E\u7A97\u53E3\u4E0D\u4F1A\u5173\u95ED\uFF1B\u8BF7\u91CD\u65B0\u52A0\u8F7D\u6216\u5347\u7EA7 Agent \u540E\u518D\u8BD5\u3002","workCenter.settings.addWorkflow":"\u590D\u5236\u4EFB\u52A1\u6D41","workCenter.settings.removeWorkflow":"\u5220\u9664","workCenter.settings.newWorkflow":"\u4EFB\u52A1\u6D41 {index}","workCenter.settings.workflowName":"\u4EFB\u52A1\u6D41\u540D\u79F0","workCenter.settings.newStage":"\u65B0\u9636\u6BB5","workCenter.settings.addStage":"\u6DFB\u52A0\u9636\u6BB5","workCenter.settings.removeStage":"\u5220\u9664\u9636\u6BB5","workCenter.settings.moveUp":"\u4E0A\u79FB\u9636\u6BB5","workCenter.settings.moveDown":"\u4E0B\u79FB\u9636\u6BB5","workCenter.settings.stageType":"\u9636\u6BB5\u7C7B\u578B","workCenter.settings.reviewReturnStage":"\u8981\u6C42\u4FEE\u6539\u65F6\u9000\u56DE\u9636\u6BB5","workCenter.settings.instruction":"\u9636\u6BB5 Prompt","workCenter.settings.instructionHint":"\u5B9A\u4E49\u8FD9\u4E2A\u9636\u6BB5\u5177\u4F53\u8981\u505A\u4EC0\u4E48\u3002","workCenter.settings.instructionHelp":"\u8FD0\u884C\u65F6\u4F1A\u81EA\u52A8\u52A0\u5165 Work Item \u7684\u76EE\u6807\u3001\u9A8C\u6536\u6807\u51C6\u548C\u53EF\u590D\u7528\u4E0A\u4E0B\u6587\u3002","workCenter.settings.instructionReset":"\u6062\u590D\u9ED8\u8BA4\u503C"}});var oh,ah=N(()=>{Gc();Yc();oh={"person.settings":"Settings","person.modelCandidates":"Candidate models","person.modelCandidatesHint":"Choose up to 8 configured models this person may use. Changing candidates does not start thinking.","person.modelsDefault":"Follow Agent model defaults","person.modelUnavailable":"Unavailable \u2014 remove to save other candidates","person.modelsEmpty":"Configure native API models on the Agent first.","person.modelsInvalid":"Select 1\u20138 currently configured models, or follow Agent defaults.","person.modelsScope":"Saved for your digital person on this Agent only. Credentials and Agent defaults are not changed.","person.settingsSaving":"Saving\u2026","person.uploadFiles":"Files","person.attachedFiles":"Attached files","person.filesUploading":"Uploading\u2026","person.filesRetry":"Retry upload","person.filesRemove":"Remove file","person.filesLimit":"Up to 4 files, 5 MiB per file and 10 MiB total. Text files and message together must fit within 24 KiB.","person.filesUnsupported":"Supported: UTF-8 text, code, JSON, CSV and PNG/JPEG/WebP/GIF images. PDF and other binary files are not supported yet.","person.filesFailed":"Upload failed. Retry or remove the file before sending.","person.name":"Name","person.renameUpgrade":"This Agent does not support renaming yet. Upgrade the Agent to edit the name.","person.nameInvalid":"Enter a name (up to 160 UTF-8 bytes).","person.inside":"Inside the digital person","person.overview":"Overview","person.memory":"Memory","person.skills":"Skills & capabilities","person.searchMessages":"Search messages","person.search":"Search","person.noSearchResults":"No matching messages.","person.you":"You","person.currentUnderstanding":"Current understanding","person.createdAt":"Created","person.revision":"Version","person.knowledgeEmpty":"Nothing recorded yet.","person.memoryScope":"Committed memories, grouped by type.","person.skillsScope":"This person\u2019s built-in and created capabilities.","person.epistemicState":"Knowledge status","person.sources":"Sources","person.associations":"Associations","person.useWhen":"Use when","person.avoidWhen":"Avoid when","person.contract":"Contract & definition","person.loadMore":"Load more","person.group.claim":"Claims","person.group.question":"Questions","person.group.method":"Methods","person.group.self-model":"Self model","person.group.scenario":"Scenarios","person.group.interest":"Interests","person.group.cognition":"Cognition","person.group.memory":"Recall","person.group.creation":"Creation","person.group.script":"Created scripts","person.epistemic.reported":"Reported \u2014 not independently verified","person.epistemic.hypothesis":"Hypothesis","person.epistemic.imagined":"Imagined","person.epistemic.uncertain":"Uncertain","person.title":"Digital Person","person.navigation":"Global navigation","person.plugins":"Plugins","person.agent":"Agent","person.noAgent":"Connect an Agent to use Digital Person.","person.offlineShort":"Offline","person.disconnected":"Connection lost. Reconnect to refresh this Person; commands are not resent automatically.","person.offline":"This Agent is offline. Its Person will refresh when it reconnects.","person.disabled":"Enable Digital Person for this Agent in Agent settings.","person.unsupported":"This Agent does not advertise digital_person. Ask its operator to upgrade it; Session chat is unchanged.","person.loading":"Loading\u2026","person.busy":"Working\u2026","person.activity.confirming":"Confirming your request\u2026","person.activity.preparing":"Preparing to respond\u2026","person.activity.thinking":"Thinking it through\u2026","person.activity.dreaming":"Exploring memories and possibilities\u2026","person.activity.recalling":"Looking up relevant memories\u2026","person.activity.searchingSkills":"Looking for a suitable skill\u2026","person.activity.readingSkill":"Reading a skill\u2026","person.activity.readingMethod":"Reading a thinking method\u2026","person.activity.validatingCapability":"Checking a new capability\u2026","person.activity.runningScript":"Running a script\u2026","person.activity.usingCapability":"Using a capability\u2026","person.activity.processingResponse":"Processing the response\u2026","person.activity.stopping":"Stopping this round\u2026","person.activity.completed":"This activity is complete","person.activity.failed":"This activity could not finish","person.activity.cancelled":"This round was cancelled","person.activity.interrupted":"This round was interrupted","person.activity.budgetExhausted":"This round reached its limit","person.activity.stale":"Waiting for an update; progress is unknown","person.activity.disconnected":"Connection lost; cannot confirm progress","person.activity.uncertain":"The request is not yet confirmed; progress is unknown","person.activity.model":"Thinking","person.activity.recall":"Memory lookup","person.activity.skillSearch":"Skill search","person.activity.skillRead":"Skill reading","person.activity.methodRead":"Thinking method","person.activity.capabilityCreate":"Capability validation","person.activity.script":"Script execution","person.activity.capability":"Capability use","person.activity.details":"Activity","person.activity.limited":"Only recent activity is shown; earlier steps may be missing.","person.activity.elapsed":"Took {duration}","person.activity.durationSeconds":"{seconds}s","person.activity.durationMinutes":"{minutes}m {seconds}s","person.activity.status.running":"In progress","person.activity.status.completed":"Completed","person.activity.status.failed":"Failed","person.activity.status.cancelled":"Cancelled","person.activity.status.interrupted":"Interrupted","person.activity.status.unknown":"Unknown","person.ready":"Waiting for you","person.manualMode":"Manual mode","person.manualHint":"Send a message or click Think / Dream to start one activity. No automatic thinking; you can cancel while it runs.","person.version":"State v{version}","person.cancelling":"Cancelling\u2026","person.configureTitle":"Configure Digital Person on this Agent","person.configureAgent":"Memory uses local SQLite by default; no database service is needed. Configure a native model provider for this Agent instance. If unavailable, check instance storage permissions and model configuration. Existing MongoDB deployments keep their configured backend.","person.configureSecrets":"Keep provider keys and optional database credentials on the Agent machine. Do not paste credentials into conversations or thought records.","person.configureRefresh":"After the operator applies the configuration (and restarts the Agent if required), select Refresh. This page does not restart services or create a fallback Session.","person.requestFailed":"Request failed.","person.timeout":"The response timed out; the operation may still be running. Refresh before deciding whether to retry.","person.uncertain":"A command has not been acknowledged. Check the refreshed conversation and Thought journal before retrying or starting another command.","person.retrySame":"Retry same command ID","person.discardRetry":"Dismiss retry (does not cancel)","person.conversation":"Digital Person conversation","person.messages":"Conversation messages","person.olderMessages":"Load older messages","person.empty":"Share what is on your mind, or let a thought unfold.","person.system":"System","person.input":"Message or thought topic","person.placeholder":"Write a message\u2026","person.thinkHint":"Think: recall, reconsider and associate using the optional topic above. Dream explores memories and possibilities without requiring a topic.","person.dream":"Dream","person.think":"Think","person.send":"Send","person.more":"More","person.views":"Digital Person views","person.chat":"Conversation","person.thoughts":"Thought journal","person.debug":"Debug logs","person.back":"Back","person.welcome":"A conversation, a new idea","person.thoughtsHint":"Inputs, recalled memories, ideas, self-checks and outputs \u2014 recorded as they happen.","person.recordsStale":"New records may be available. Refresh to return to the latest page.","person.olderThoughts":"Load earlier thoughts","person.noThoughts":"No readable thoughts on this page yet. Try earlier records or start a conversation, Think or Dream.","person.debugHint":"Technical diagnostics: raw events, model requests and state versions. Thought content is presented separately in the Thought journal.","person.noDebug":"No diagnostic events yet.","person.moreDebug":"Load more logs","person.state":"Current state","person.episodeFailed":"The latest activity did not complete. Check the Thought journal; technical details are in Debug logs.","person.thought.input":"Input","person.thought.think":"Think","person.thought.dream":"Dream","person.thought.context":"Memories in mind","person.thought.thought":"Ideas and output","person.thought.activity":"Reflection","person.thought.memory":"Recalled memories","person.thought.capability_created":"Self-created capability","person.thought.script_executed":"Script invocation","person.thought.capability_failed":"Capability attempt failed","person.thought.capability_published":"Capability saved independently of thought adoption","person.thought.capability_name":"Capability name","person.thought.capability_description":"What it does","person.thought.capability_version":"Version","person.thought.capability_tests_passed":"Tests passed","person.thought.capability_tests_limit":"Passing these tests does not prove correctness for other inputs","person.thought.capability_recorded":"Recorded capability outcome \u2014 not an adopted conclusion","person.thought.script_succeeded":"Pure computation completed","person.thought.script_test_failed":"Script tests did not pass","person.thought.script_execution_failed":"Script could not complete","person.thought.script_timeout":"Script time limit reached","person.thought.script_output_invalid":"Script output did not meet requirements","person.thought.script_version_unavailable":"Requested script version unavailable","person.thought.script_busy":"Script execution is busy","person.thought.capability_failure_unknown":"Capability could not complete; technical details are in Debug logs","person.thought.committed":"Adopted","person.thought.rejected":"Not adopted","person.thought.cancelled":"Activity cancelled","person.thought.failed":"Activity failed","person.thought.interrupted":"Activity interrupted","person.thought.budget_exhausted":"Activity limit reached","person.thought.candidate":"Not yet adopted","person.thought.incomplete":"Incomplete record","person.thought.recorded":"Recorded","person.thought.state_summary":"Current understanding","person.thought.appraisal":"Perspective","person.thought.user_message":"What you said","person.thought.person_message":"Earlier response","person.thought.concept_reported":"Reported information","person.thought.concept_hypothesis":"Hypothesis","person.thought.concept_imagined":"Imagined possibility","person.thought.concept_uncertain":"Uncertain idea","person.thought.activity_summary":"Reflection","person.thought.decision_summary":"Judgment","person.thought.self_check":"Self-check","person.thought.uncertainties":"Open questions","person.thought.reply":"Response","person.thought.next_reason":"Why continue","person.thought.unstructured":"Unstructured output \u2014 not an adopted conclusion","person.thought.unavailable":"No readable output was recorded","person.thought.previous_candidate":"Earlier candidate \u2014 not adopted","person.thought.recalled":"Recalled for this thought","person.thought.structured_unavailable":"Incomplete or invalid structured output; details are available in Debug logs","scheduleDatePicker.chooseDate":"Choose date","scheduleDatePicker.previousMonth":"Previous month","scheduleDatePicker.nextMonth":"Next month","scheduleDatePicker.today":"Today","scheduleDatePicker.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.",...eh,...sh,"quickSend.composer.label":"Quick send","quickSend.composer.send":"Quick send {number}: {name}","common.loading":"Loading...","common.confirm":"OK","common.apply":"Apply","common.cancel":"Cancel","common.delete":"Delete","common.copy":"Copy","common.copied":"Copied","common.close":"Close","common.refresh":"Refresh","common.open":"Open","common.save":"Save","common.saving":"Saving...","common.search":"Search","common.back":"Back","common.noSubdirectories":"No subdirectories","common.drives":"Drives","common.rootDir":"Root","common.comma":", ","common.select":"Select","common.retry":"Retry","mermaid.export":"Export","mermaid.exportMd":"Export MD","mermaid.exportPng":"Export PNG","mermaid.exportJpg":"Export JPG","login.subtitle":"Yeaft Web Code Agent","login.username":"Username","login.password":"Password","login.login":"Login","login.loggingIn":"Logging in...","login.enterUsername":"Please enter your username","login.enterPassword":"Please enter your password","login.noAccount":"Don't have an account?","login.registerWithCode":"Register","login.or":"or","login.usePassword":"Sign in with username & password","login.useSso":"Back to single sign-on","login.noProviders":"No third-party sign-in providers are enabled.","login.microsoft":"Sign in with Microsoft","login.github":"Sign in with GitHub","login.google":"Sign in with Google","login.wechat":"Sign in with WeChat","login.alipay":"Sign in with Alipay","login.wechat.mobileUnsupported":"Sign in with WeChat is only available on PC. Please scan the QR code from a desktop browser.","login.alipay.mobileWaiting":"Waiting for you to confirm in the Alipay app\u2026 Once you finish, return to this page and you will be signed in automatically.","login.alipay.relaunch":"Open Alipay again","login.qr.title":"Scan to sign in","login.qr.titleAlipay":"Sign in with Alipay","login.qr.titleWechat":"Sign in with WeChat","login.qr.hint":"Scan the QR code with your phone to authorize.","login.error.enterUsername":"Please enter your username","login.error.enterPassword":"Please enter your password","login.error.enter6Digit":"Please enter a 6-digit code","login.error.enterInviteCode":"Please enter the invite code","login.error.usernameMinLen":"Username must be at least 2 characters","login.error.passwordMinLen":"Password must be at least 6 characters","login.error.passwordMismatch":"Passwords do not match","login.error.enterVerifyCode":"Please enter the verification code","login.error.loginFailed":"Login failed","login.forgot.link":"Forgot password?","login.forgot.title":"Reset your password","login.forgot.emailHint":"Enter the email address on your account. We will send a 6-digit reset code.","login.forgot.sendCode":"Send Reset Code","login.forgot.sending":"Sending...","login.forgot.codeSent":"If the email is on file, a 6-digit reset code has been sent. Enter it below along with your new password.","login.forgot.resetBtn":"Reset Password","login.forgot.resetting":"Resetting...","login.forgot.success":"Password reset. You can now sign in with your new password.","login.forgot.emailInvalid":"Please enter a valid email","login.register.title":"New User Registration","login.register.inviteCode":"Invite Code","login.register.username":"Username","login.register.password":"Password (min 6 characters)","login.register.confirmPassword":"Confirm Password","login.register.email":"Email (optional)","login.register.submit":"Register","login.register.submitting":"Registering...","login.register.back":"Back to Login","login.register.success":"Registration successful, please login","login.register.enterCode":"Please enter the invite code","login.register.usernameMin":"Username must be at least 2 characters","login.register.passwordMin":"Password must be at least 6 characters","login.register.passwordMismatch":"Passwords do not match","login.totp.setupTitle":"Set Up Two-Factor Authentication","login.totp.setupHint":"Scan the QR code below with Microsoft Authenticator or Google Authenticator","login.totp.manualKey":"Or enter the key manually:","login.totp.enterCode":"Enter 6-digit code","login.totp.complete":"Complete Setup","login.totp.verifying":"Verifying...","login.totp.verify":"Verify","login.totp.prompt":"Enter the code from your Authenticator app","login.totp.invalidCode":"Please enter a 6-digit code","login.email.codeSent":"Verification code sent to {email}","login.email.enterCode":"Enter verification code","login.email.verify":"Verify","login.email.verifying":"Verifying...","login.email.enterCodeError":"Please enter the verification code","chat.agent.select":"Select Agent","chat.agent.manage":"Manage Agents","chat.agent.count":"{count} agents","chat.agent.updatesAvailable":"{count} Agent update(s) available","chat.agent.updateAvailable":"Update available: v{version}","chat.agent.none":"No Agents","chat.agent.restarting":"Restarting","agentSettings.open":"Agent settings","agentSettings.manage":"Manage","agentSettings.eyebrow":"Local runtime","agentSettings.title":"Agent settings","agentSettings.description":"Inspect and configure each connected Agent without mixing runtime controls into account settings.","agentSettings.agentList":"Agent","agentSettings.categories":"Agent setting categories","agentSettings.categories.operations":"Operations","agentSettings.categories.trace":"Trace","agentSettings.categories.llm":"LLM configuration","agentSettings.selectedAgent":"Selected Agent","agentSettings.online":"Online","agentSettings.offline":"Offline","agentSettings.empty":"No Agents are available.","agentSettings.runtime.title":"Runtime","agentSettings.runtime.description":"Identity, workspace, and local background processing.","agentSettings.runtime.version":"Version","agentSettings.runtime.updateAvailable":"Update available: v{version}","agentSettings.runtime.updateUnknown":"Update status unavailable","agentSettings.runtime.workDir":"Working directory","agentSettings.digitalPerson.title":"Digital Person","agentSettings.digitalPerson.description":"Show Digital Person for this Agent in this browser. Off by default; hiding it does not stop activities or delete data.","agentSettings.workCenter.title":"Work Center","agentSettings.workCenter.enabled":"Enabled","agentSettings.workCenter.disabled":"Disabled","agentSettings.workCenter.runtimeUnavailable":"Startup failed","agentSettings.workCenter.runtimeUnavailableMessage":"Work Center is configured on, but its runtime did not start. Review the Agent logs and try again.","agentSettings.workCenter.runtimeUnavailableHint":"Configured on, but the Work Center runtime is currently unavailable.","agentSettings.workCenter.enabledHint":"Persistent work is available on this Agent. New Sessions can also create Work Items.","agentSettings.workCenter.disabledHint":"Enable persistent Work Items and background execution on this Agent.","agentSettings.workCenter.environmentManaged":"Managed by YEAFT_WORK_CENTER_ENABLED and cannot be changed here.","agentSettings.workCenter.upgradeRequired":"Upgrade this Agent to manage Work Center availability.","agentSettings.workCenter.unsupported":"Upgrade required","agentSettings.workCenter.loadFailed":"Failed to load Work Center status.","agentSettings.workCenter.loadFailedStatus":"Load failed","agentSettings.workCenter.saveFailed":"Failed to update Work Center.","agentSettings.telemetry.title":"Diagnostics","agentSettings.telemetry.saved":"Diagnostics settings saved.","agentSettings.telemetry.loadFailed":"Failed to load diagnostics settings.","agentSettings.telemetry.saveFailed":"Failed to save diagnostics settings.","agentSettings.maintenance.title":"Maintenance","agentSettings.maintenance.description":"These operations interrupt work running on the selected Agent.","agentSettings.maintenance.upgradeFailed":"Agent upgrade failed.","chat.agent.restart":"Restart","chat.agent.restartConfirm":`Are you sure you want to restart Agent "{name}"?
|
|
13
|
+
\u5347\u7EA7\u5B8C\u6210\u540E\u5B83\u4EEC\u4F1A\u81EA\u52A8\u91CD\u542F\u3002\u53E6\u6709 {skipped} \u4E2A Agent \u56E0\u5F53\u524D\u4E0D\u53EF\u7528\u6216\u4E0D\u652F\u6301\u5B89\u5168\u8FDC\u7A0B\u5347\u7EA7\u800C\u8DF3\u8FC7\u3002`,"chat.agent.upgradeAllSummary":"Agent \u6279\u91CF\u5347\u7EA7\u5B8C\u6210\uFF1A\u5347\u7EA7\u6210\u529F {upgraded} \u4E2A\uFF0C\u5DF2\u662F\u6700\u65B0 {latest} \u4E2A\uFF0C\u5931\u8D25 {failed} \u4E2A\uFF0C\u8DF3\u8FC7 {skipped} \u4E2A\u3002","chat.agent.alreadyLatest":"Agent \u5DF2\u662F\u6700\u65B0\u7248\u672C (v{version})\uFF0C\u65E0\u9700\u5347\u7EA7\u3002","chat.agent.nodeIncompatible":"Agent \u5347\u7EA7\u4E2D\u6B62\uFF1A\u76EE\u6807\u7248\u672C v{version} \u9700\u8981 Node {required}\uFF0C\u4F46\u5F53\u524D\u673A\u5668\u8FD0\u884C\u7684\u662F Node {current}\u3002\u8BF7\u5148\u5347\u7EA7 Node.js \u518D\u91CD\u8BD5\u3002","chat.agent.manualUpgradeRequired":'Agent v{version} \u6CA1\u6709\u58F0\u660E\u5B89\u5168\u8FDC\u7A0B\u5347\u7EA7\u80FD\u529B\uFF1B\u65E7\u5BA2\u6237\u7AEF\u53C8\u672A\u4E0A\u62A5\u8DB3\u591F\u7684\u5E73\u53F0\u4FE1\u606F\uFF0CServer \u65E0\u6CD5\u6392\u9664 Windows \u5305\u76EE\u5F55\u9501\u5B9A\u6545\u969C\u3002\u4E3A\u907F\u514D\u91CD\u590D\u6267\u884C\u5DF2\u77E5\u4F1A\u5931\u8D25\u7684\u5347\u7EA7\uFF0C\u672C\u6B21\u64CD\u4F5C\u5DF2\u88AB\u963B\u6B62\u3002\u8BF7\u5148\u505C\u6B62\u8BE5\u673A\u5668\u4E0A\u6240\u9009\u7684 Agent/\u670D\u52A1\uFF1A\u82E5\u7531 PM2 \u6216\u5176\u4ED6\u670D\u52A1\u7BA1\u7406\u5668\u8FD0\u884C\uFF0C\u8BF7\u5728\u90A3\u91CC\u505C\u6B62\u8FD9\u4E2A\u7CBE\u786E\u5B9E\u4F8B\uFF1B\u82E5\u5728\u524D\u53F0\u7EC8\u7AEF\u8FD0\u884C\uFF0C\u8BF7\u7EC8\u6B62\u8BE5\u8FDB\u7A0B\u3002\u786E\u8BA4\u8BE5\u8FDB\u7A0B\u5DF2\u7ECF\u9000\u51FA\u540E\uFF0C\u518D\u6267\u884C "npm install -g @yeaft/webchat-agent@latest --registry=https://pkg.yeaft.com/"\uFF1B\u6700\u540E\u4F7F\u7528\u539F\u914D\u7F6E\u542F\u52A8\u540C\u4E00 Agent \u5B9E\u4F8B\u3002\u5B8C\u6210\u8FD9\u6B21\u5F15\u5BFC\u540E\uFF0C\u540E\u7EED\u53EF\u7EE7\u7EED\u5728\u6D4F\u89C8\u5668\u4E2D\u5347\u7EA7\u3002',"chat.agent.containerImageUpgradeRequired":'\u5BB9\u5668 Agent v{version} \u7531 Docker \u955C\u50CF\u7BA1\u7406\uFF0C\u4E0D\u80FD\u5728\u5BB9\u5668\u5185\u4F7F\u7528 npm \u81EA\u5347\u7EA7\u3002\u8BF7\u5728 Docker Host \u4E0A\u6267\u884C "docker pull <configured-agent-image>"\uFF0C\u7136\u540E\u901A\u8FC7\u73B0\u6709 Server/Sandbox \u751F\u547D\u5468\u671F\u6216\u539F\u6765\u7684 "yeaft-agent container install" \u547D\u4EE4\u91CD\u5EFA\u540C\u4E00\u4E2A\u5BB9\u5668\u3002\u4FDD\u7559\u73B0\u6709\u7684 /home/yeaft/.yeaft \u548C /workspace \u6301\u4E45\u5377\uFF0C\u5E76\u590D\u7528 Host \u7AEF\u539F\u6709\u7684 0600 agent-secret \u6587\u4EF6\uFF1B\u4E0D\u8981\u5728\u91CD\u5EFA\u65F6\u5220\u9664\u8FD9\u4E9B\u5377\u3002',"chat.agent.online":"{count} \u4E2A Agent \u5728\u7EBF","chat.agent.selectFirst":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","chat.agent.yeaft":"Yeaft \u5BF9\u8BDD","sidebar.toggle.chat":"\u5207\u6362\u5230 Chat","sidebar.toggle.yeaft":"\u5207\u6362\u5230 Yeaft","sidebar.surface.label":"\u4FA7\u680F\u89C6\u56FE","sidebar.surface.sessions":"\u4F1A\u8BDD","sidebar.provider.label":"\u4F1A\u8BDD Provider","sidebar.provider.claude":"Claude","sidebar.sessions.new":"\u65B0\u5EFA\u4F1A\u8BDD","sidebar.sessions.newChat":"\u65B0\u5EFA\u804A\u5929","sidebar.sessions.emptyProvider":"\u6B64 Provider \u6682\u65E0\u4F1A\u8BDD","sidebar.sessions.menu":"\u4F1A\u8BDD\u83DC\u5355","sidebar.sessions.unread":"\u672A\u8BFB","sidebar.sessions.pinned":"\u5DF2\u7F6E\u9876","sidebar.sessions.processing":"\u6B63\u5728\u56DE\u590D","sidebar.sessions.hidden":"\u5DF2\u9690\u85CF\u7684\u4F1A\u8BDD","sidebar.sessions.remove":"\u4ECE\u4FA7\u680F\u79FB\u9664","sidebar.sessions.agent":"Agent","sidebar.sessions.provider":"Provider","sidebar.projects.title":"\u9879\u76EE","sidebar.projects.menu":"\u9879\u76EE\u83DC\u5355","sidebar.projects.new":"\u65B0\u5EFA\u9879\u76EE","sidebar.projects.newSession":"\u5728{name}\u4E2D\u521B\u5EFA Session","sidebar.projects.assignFailed":"Session \u5DF2\u521B\u5EFA\uFF0C\u4F46\u65E0\u6CD5\u52A0\u5165{name}\u3002\u9519\u8BEF\uFF1A{message}","sidebar.projects.empty":"\u6682\u65E0\u9879\u76EE","sidebar.projects.noSessions":"\u5C06 Yeaft \u804A\u5929\u62D6\u5230\u8FD9\u91CC","sidebar.projects.namePrompt":"\u9879\u76EE\u540D\u79F0","sidebar.projects.renamePrompt":"\u91CD\u547D\u540D\u9879\u76EE","sidebar.projects.rename":"\u91CD\u547D\u540D\u9879\u76EE","sidebar.projects.delete":"\u5220\u9664\u9879\u76EE","sidebar.projects.deleteConfirm":"\u5220\u9664\u9879\u76EE\u201C{name}\u201D\uFF1F\u5176\u4E2D\u804A\u5929\u4F1A\u79FB\u56DE\u6700\u8FD1\u3002","sidebar.projects.remove":"\u79FB\u51FA\u9879\u76EE","sidebar.projects.moveMenu":"\u79FB\u52A8\u5230 Projects","sidebar.projects.moveBack":"\u8FD4\u56DE","sidebar.projects.moveEmpty":"\u6CA1\u6709\u5176\u4ED6 Project","sidebar.projects.moveTo":"\u79FB\u5230 {name}","sidebar.projects.instructions":"Project \u6307\u4EE4","sidebar.projects.instructionsTitle":"{name} \u6307\u4EE4","sidebar.projects.instructionsHint":"\u8FD9\u4E9B\u6307\u4EE4\u4F1A\u52A0\u5165\u6B64 Project \u5185\u6BCF\u4E2A Session \u7684 system prompt\u3002","sidebar.projects.instructionsPlaceholder":"\u8F93\u5165\u5171\u4EAB\u7684\u7F16\u7801\u89C4\u8303\u3001\u7EA6\u675F\u6216\u5DE5\u4F5C\u6D41\u8BF4\u660E\u2026","sidebar.recents.title":"\u6700\u8FD1","sidebar.recents.empty":"\u6682\u65E0\u804A\u5929","yeaft.back":"\u8FD4\u56DE","yeaft.session.people":"\u6210\u5458","yeaft.session.peopleEmpty":"\u6682\u65E0\u6210\u5458","yeaft.session.runningTasks":"\u8FD0\u884C\u4E2D\u7684\u4EFB\u52A1","yeaft.session.tasksEmpty":"\u6682\u65E0\u8FD0\u884C\u4EFB\u52A1","yeaft.session.owner":"\u8D1F\u8D23\u4EBA","yeaft.session.started":"\u5F00\u59CB\u65F6\u95F4","yeaft.breadcrumb.label":"Thread \u8FC7\u6EE4","yeaft.breadcrumb.mainStream":"\u4E3B\u6D41","yeaft.breadcrumb.backHint":"\u8FD4\u56DE\u5168\u6D41 (Esc)","yeaft.featureDetail.ariaLabel":"Task \u8BE6\u60C5","yeaft.featureDetail.replyTo":"\u56DE\u590D\u5230:","yeaft.featureDetail.forkHint":"\u8BE5 task \u6682\u65E0\u6D3B\u8DC3 thread \u2014 \u8BF7 fork \u65B0 thread \u540E\u56DE\u590D\u3002","yeaft.featureDetail.empty":"\u8BE5 task \u6682\u65E0\u6D88\u606F\u3002","yeaft.featureDetail.threadPillHint":"\u6253\u5F00 thread","yeaft.featureDetail.summary.aria":"\u4EFB\u52A1\u6458\u8981\u65F6\u95F4\u7EBF","yeaft.featureDetail.summary.title":"\u6458\u8981\u65F6\u95F4\u7EBF","yeaft.featureDetail.summary.loading":"\u6B63\u5728\u52A0\u8F7D\u6458\u8981\u5386\u53F2\u2026","yeaft.featureDetail.summary.empty":"\u6682\u65E0\u6458\u8981\u3002","yeaft.featureDetail.summary.error":"\u6458\u8981\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","yeaft.featureDetail.summary.showArchived":"\u663E\u793A\u5DF2\u5F52\u6863","yeaft.featureDetail.related.aria":"\u5173\u8054\u4EFB\u52A1","yeaft.featureDetail.related.title":"\u5173\u8054\u4EFB\u52A1","yeaft.featureDetail.related.unlink":"\u53D6\u6D88\u5173\u8054","yeaft.featureDetail.members.aria":"\u4EFB\u52A1\u6210\u5458","yeaft.featureDetail.members.title":"\u6210\u5458","yeaft.featureDetail.members.abort":"\u4E2D\u6B62","yeaft.featureDetail.members.kick":"\u8E22\u51FA","yeaft.model":"\u6A21\u578B","yeaft.placeholder":"\u95EE\u6211\u4EFB\u4F55\u95EE\u9898...","yeaft.inbox":"\u6536\u4EF6\u7BB1","yeaft.inbox.tooltip":"\u4F60\u7684\u9ED8\u8BA4\u5BF9\u8BDD\u7EBF\u7A0B \u2014\u2014 \u4E0E Yeaft \u7684\u4E00\u5BF9\u4E00\u804A\u5929\u3002\u53EF\u4EE5\u4E3A\u5177\u4F53\u8BDD\u9898\u6216\u4EFB\u52A1\u521B\u5EFA\u65B0\u7EBF\u7A0B\u3002","yeaft.sidebar.activeThreads":"\u6D3B\u8DC3","yeaft.sidebar.idleThreads":"\u9759\u9ED8","yeaft.sidebar.archivedThreads":"\u5DF2\u5F52\u6863","yeaft.sidebar.tasks":"\u4EFB\u52A1","yeaft.sidebar.emptyActive":"\u6682\u65E0\u6D3B\u8DC3 thread","yeaft.sidebar.emptyIdle":"\u6682\u65E0\u9759\u9ED8 thread","yeaft.sidebar.emptyArchived":"\u6682\u65E0\u5F52\u6863 thread","yeaft.sidebar.emptyTasks":"\u65E0\u5339\u914D\u4EFB\u52A1","yeaft.sidebar.results":"\u641C\u7D22\u7ED3\u679C","yeaft.sidebar.resultsThreads":"Threads","yeaft.sidebar.kindThread":"thread","yeaft.sidebar.cancel":"\u53D6\u6D88","yeaft.sidebar.mergeInto":"\u5408\u5E76\u5230\u2026","yeaft.sidebar.mergeNoCandidates":"\u6CA1\u6709\u53EF\u5408\u5E76\u7684\u5176\u4ED6\u7EBF\u7A0B","yeaft.sidebar.mergeConfirmTitle":"\u5408\u5E76\u8FD9\u4E2A\u7EBF\u7A0B\uFF1F","yeaft.sidebar.mergeIrreversible":"\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\uFF0C\u6E90\u7EBF\u7A0B\u5C06\u88AB\u5F52\u6863\uFF0C\u5176\u6D88\u606F\u4F1A\u88AB\u79FB\u52A8\u5230\u76EE\u6807\u7EBF\u7A0B\u3002","yeaft.sidebar.mergeConfirm":"\u5408\u5E76","yeaft.settings.sidebarV2":"\u5B9E\u9A8C\u529F\u80FD\uFF1A\u4FA7\u8FB9\u680F V2","yeaft.settings.sidebarV2Hint":"Thread \u5217\u8868 + \u4EFB\u52A1\u6811\uFF08\u9884\u89C8\uFF09\u3002","yeaft.clearConfirm":"\u6E05\u7A7A\u6240\u6709\u6D88\u606F\uFF1F","yeaft.mode":"\u6A21\u5F0F","yeaft.agent":"\u667A\u80FD\u4F53","yeaft.connecting":"\u8FDE\u63A5\u4E2D...","yeaft.ready":"\u5C31\u7EEA","yeaft.tools":"\u4E2A\u5DE5\u5177","yeaft.skills":"\u4E2A\u6280\u80FD","yeaft.mcp":"\u4E2A MCP","yeaft.showSidebar":"\u663E\u793A\u4FA7\u680F","yeaft.hideSidebar":"\u9690\u85CF\u4FA7\u680F","yeaft.debug":"\u8C03\u8BD5","yeaft.debugClose":"\u5173\u95ED\u8C03\u8BD5\u9762\u677F","yeaft.debugTurns":"\u8F6E","yeaft.debugTabToolStats":"\u5DE5\u5177\u7EDF\u8BA1","yeaft.debugTabRequestLog":"\u8BF7\u6C42\u65E5\u5FD7","yeaft.debugHistoryLoad":"\u52A0\u8F7D\u8BF7\u6C42\u5386\u53F2","yeaft.debugHistoryLoading":"\u52A0\u8F7D\u4E2D...","yeaft.debugHistoryLoaded":"\u5DF2\u52A0\u8F7D {count} \u6761","yeaft.debugHistoryUnavailable":"\u8C03\u8BD5\u8F68\u8FF9\u8BF7\u6C42\u8D85\u65F6\u3002Agent \u53EF\u80FD\u79BB\u7EBF\uFF0C\u6216\u54CD\u5E94\u5DF2\u88AB\u4E22\u5F03\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.debugHistoryTruncated":"\u8BE5\u8F68\u8FF9\u8FC7\u5927\uFF0C\u65E0\u6CD5\u5728\u4E00\u6B21\u54CD\u5E94\u4E2D\u5B8C\u6574\u4F20\u8F93\u3002\u6B64\u5904\u663E\u793A\u5927\u5B57\u6BB5\u9884\u89C8\uFF0C\u5B8C\u6574\u8F68\u8FF9\u4ECD\u4FDD\u7559\u5728 Agent\u3002","yeaft.debugSearchPlaceholder":"\u6B63\u5219\u641C\u7D22\u8BF7\u6C42\u65E5\u5FD7","yeaft.debugSearchHint":"\u9ED8\u8BA4\u663E\u793A\u5168\u5C40\u6700\u8FD1 10 \u6761\uFF1B\u641C\u7D22\u4F1A\u8DE8 Session \u5339\u914D\u8BF7\u6C42\u6458\u8981\u3002","yeaft.debugTurnAction":"\u67E5\u770B\u8BE5\u8F6E\u5BF9\u8BDD\u7684\u8C03\u8BD5\u8F68\u8FF9","yeaft.debugTurnContext":"\u8C03\u8BD5\u8F68\u8FF9","yeaft.debugPanelEmpty":"\u60AC\u505C\u5728 AI \u56DE\u590D\u4E0A\uFF0C\u70B9\u51FB\u8C03\u8BD5\u56FE\u6807\u5373\u53EF\u67E5\u770B\u8BE5\u8F6E\u5BF9\u8BDD\u7684\u8C03\u8BD5\u8F68\u8FF9\u3002","yeaft.debugGroupFollowMain":"\u8DDF\u968F\u4E3B\u9762\u677F","yeaft.debugGroupAll":"\u5168\u90E8\u4F1A\u8BDD","yeaft.debugAssistantResponse":"Assistant \u56DE\u590D","yeaft.debugViewAssistantResponse":"\u67E5\u770B\u56DE\u590D","yeaft.debugLatestRequestBody":"\u6700\u8FD1\u53EF\u7528\u8BF7\u6C42\u4F53","yeaft.debugLatestSystemPrompt":"\u6700\u8FD1\u53EF\u7528\u7CFB\u7EDF\u63D0\u793A","yeaft.debugRequestBodyUnavailable":"\u6B64 Turn \u6682\u65E0\u53EF\u7528\u8BF7\u6C42\u4F53\u3002","yeaft.debugSystemPromptUnavailable":"\u6B64 Turn \u6682\u65E0\u53EF\u7528\u7CFB\u7EDF\u63D0\u793A\u3002","yeaft.debugInputSystemShort":"\u7CFB\u7EDF","yeaft.debugInputHistoryShort":"\u5386\u53F2","yeaft.debugInputToolsShort":"\u5DE5\u5177\u5B9A\u4E49","yeaft.debugInputCurrentShort":"\u5F53\u524D","yeaft.debugInputTokenBreakdown":"Provider \u8F93\u5165 {total}\uFF1A\u7CFB\u7EDF\u63D0\u793A {system}\u3001\u5386\u53F2\u6D88\u606F {history}\u3001\u5DE5\u5177\u5B9A\u4E49 {tools}\u3001\u5F53\u524D Turn {current}\uFF08\u4F30\u7B97\u62C6\u5206\uFF09","yeaft.debugToolInput":"\u8F93\u5165","yeaft.debugToolResult":"\u7ED3\u679C","yeaft.debugToolRunning":"\u6267\u884C\u4E2D","yeaft.debugToolRunningNoResult":"\u6267\u884C\u4E2D\uFF0C\u6682\u65E0\u7ED3\u679C","yeaft.debugShowDetails":"\u5C55\u5F00","yeaft.debugHideDetails":"\u6536\u8D77","yeaft.debugTurnStartedAt":"\u56DE\u5408\u5F00\u59CB\u65F6\u95F4","yeaft.debugRequestAt":"\u8BF7\u6C42\u65F6\u95F4","yeaft.debugRequestAtDerived":"\u7531\u56DE\u5408\u5F00\u59CB\u65F6\u95F4\u63A8\u7B97\uFF08\u65E7 loop\uFF09","yeaft.turn":"\u7B2C {n} \u8F6E","yeaft.systemPrompt":"\u7CFB\u7EDF\u63D0\u793A","yeaft.messagesLabel":"\u6D88\u606F","yeaft.response":"\u56DE\u590D","yeaft.toolCalls":"\u5DE5\u5177\u8C03\u7528","yeaft.functionCalls":"\u51FD\u6570\u8C03\u7528","yeaft.request":"\u8BF7\u6C42","yeaft.pending":"(\u7B49\u5F85\u4E2D)","yeaft.inputTokens":"\u8F93\u5165","yeaft.outputTokens":"\u8F93\u51FA","yeaft.duration":"\u8017\u65F6","yeaft.noDebugData":"\u6682\u65E0\u8C03\u8BD5\u6570\u636E","yeaft.showDebug":"\u663E\u793A\u8C03\u8BD5\u9762\u677F","yeaft.hideDebug":"\u9690\u85CF\u8C03\u8BD5\u9762\u677F","yeaft.reloadPage":"\u5237\u65B0\u9875\u9762","yeaft.reloadMessages":"\u91CD\u65B0\u52A0\u8F7D\u6D88\u606F","sidebar.sessions.syncing":"\u6B63\u5728\u540C\u6B65\u6700\u65B0\u6D88\u606F","yeaft.historySearch.label":"\u641C\u7D22 Session \u5386\u53F2\u6D88\u606F","yeaft.historySearch.button":"\u641C\u7D22\u6D88\u606F","yeaft.historySearch.placeholder":"\u641C\u7D22\u5F53\u524D Session \u7684\u6D88\u606F","yeaft.historySearch.searching":"\u6B63\u5728\u641C\u7D22\u2026","yeaft.historySearch.minChars":"\u81F3\u5C11\u8F93\u5165 2 \u4E2A\u5B57\u7B26","yeaft.historySearch.empty":"\u6CA1\u6709\u5339\u914D\u7684\u6D88\u606F","yeaft.historySearch.error":"\u641C\u7D22\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","yeaft.historySearch.unsupported":"\u8BF7\u5347\u7EA7\u5F53\u524D Agent \u540E\u518D\u641C\u7D22 Session \u5386\u53F2\u6D88\u606F","yeaft.historySearch.more":"\u52A0\u8F7D\u66F4\u591A\u7ED3\u679C","yeaft.historySearch.you":"\u4F60","yeaft.historySearch.assistant":"\u52A9\u624B","yeaft.outline.label":"\u5386\u53F2\u6D88\u606F","yeaft.outline.sender":"\u53D1\u9001\u8005","yeaft.outline.allSenders":"\u5168\u90E8\u53D1\u9001\u8005","yeaft.outline.title":"\u5386\u53F2\u6D88\u606F","yeaft.outline.placeholder":"\u641C\u7D22\u5F53\u524D\u5BF9\u8BDD","yeaft.outline.searching":"\u6B63\u5728\u641C\u7D22\u2026","yeaft.outline.loading":"\u6B63\u5728\u52A0\u8F7D\u2026","yeaft.outline.older":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","yeaft.outline.moreMatches":"\u52A0\u8F7D\u66F4\u591A\u5339\u914D\u9879","yeaft.outline.minChars":"\u81F3\u5C11\u8F93\u5165 2 \u4E2A\u5B57\u7B26","yeaft.outline.empty":"\u6682\u65E0\u6D88\u606F","yeaft.outline.noMatches":"\u6CA1\u6709\u5339\u914D\u7684\u6D88\u606F","yeaft.outline.error":"\u5927\u7EB2\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","yeaft.outline.unsupported":"\u8BF7\u5347\u7EA7\u5F53\u524D Agent \u540E\u518D\u4F7F\u7528\u5BF9\u8BDD\u5927\u7EB2","yeaft.outline.you":"\u4F60","yeaft.outline.assistant":"\u52A9\u624B","yeaft.outline.nonText":"\u975E\u6587\u672C\u56DE\u590D","yeaft.switchModel":"\u5207\u6362\u6A21\u578B","yeaft.modelMenu.title":"\u6A21\u578B\u548C LLM \u8BBE\u7F6E","yeaft.modelMenu.label":"\u6A21\u578B","yeaft.modelMenu.effort":"\u63A8\u7406\u5F3A\u5EA6","yeaft.modelMenu.effort.openaiReasoning":"\u63A8\u7406\u5F3A\u5EA6","yeaft.modelMenu.effort.anthropicBudget":"\u601D\u8003\u9884\u7B97","yeaft.modelMenu.effort.anthropicAdaptive":"\u81EA\u9002\u5E94\u601D\u8003\u5F3A\u5EA6","yeaft.modelMenu.effort.minimal":"\u6700\u5C0F","yeaft.modelMenu.effort.low":"\u4F4E","yeaft.modelMenu.effort.medium":"\u4E2D","yeaft.modelMenu.effort.high":"\u9AD8","yeaft.modelMenu.effort.xhigh":"\u8D85\u9AD8","yeaft.modelMenu.effort.max":"\u6700\u9AD8","yeaft.modelMenu.effort.ultra":"\u6781\u81F4","yeaft.modelMenu.noEffort":"\u5F53\u524D\u6A21\u578B\u6CA1\u6709\u53EF\u517C\u5BB9\u6620\u5C04\u7684\u63A8\u7406\u5F3A\u5EA6\u63A7\u5236\u3002","yeaft.modelMenu.configureHint":"Provider\u3001\u5BC6\u94A5\u3001\u6A21\u578B\u5217\u8868","yeaft.settings.title":"\u8BBE\u7F6E","yeaft.settings.tabs.vp":"VP \u5E93","yeaft.settings.tabs.search":"\u641C\u7D22","search.settings.backendTitle":"\u641C\u7D22\u540E\u7AEF","search.settings.backendDesc":"\u9009\u62E9 WebSearch \u5DE5\u5177\u9ED8\u8BA4\u4F7F\u7528\u7684\u540E\u7AEF\u3002\u4E3B\u540E\u7AEF\u5931\u8D25\u65F6,\u5F15\u64CE\u4F1A\u81EA\u52A8\u964D\u7EA7\u5230 HTML \u6293\u53D6\u3002","search.settings.backend.tavily":"Tavily","search.settings.backend.tavilyHint":"\u6258\u7BA1\u641C\u7D22 API\u3002\u514D\u8D39\u989D\u5EA6 1000 \u6B21/\u6708\u3002\u63A8\u8350\u3002","search.settings.backend.playwright":"Playwright \u670D\u52A1","search.settings.backend.playwrightHint":"\u81EA\u5EFA\u7684\u6D4F\u89C8\u5668\u5F0F\u641C\u7D22/\u6293\u53D6\u670D\u52A1,\u9002\u5408 IP \u4FE1\u8A89\u5DEE\u88AB bot \u68C0\u6D4B\u7684\u73AF\u5883\u3002\u5C1A\u672A\u4E0A\u7EBF\u3002","search.settings.comingSoon":"\u5373\u5C06\u63A8\u51FA","search.settings.tavilyKeyTitle":"Tavily API key","search.settings.tavilyKeyDesc":"\u4FDD\u5B58\u5728 agent \u7684 ~/.yeaft/config.json \u4E2D\u3002\u514D\u8D39\u7533\u8BF7:","search.settings.tavilyKeyUnchanged":"\u4FDD\u6301\u4E0D\u53D8","search.settings.clearKey":"\u6E05\u9664","search.settings.usageTitle":"\u672C\u6708\u7528\u91CF","search.settings.usageRefresh":"\u5237\u65B0","search.settings.usageLoading":"\u52A0\u8F7D\u4E2D\u2026","search.settings.usagePlan":"\u8BA1\u5212","search.settings.usageUsed":"\u5DF2\u7528","search.settings.usagePaygo":"\u6309\u91CF\u4ED8\u8D39","search.settings.usageError":"\u52A0\u8F7D\u7528\u91CF\u5931\u8D25","search.settings.save":"\u4FDD\u5B58","search.settings.saving":"\u4FDD\u5B58\u4E2D\u2026","search.settings.saveSuccess":"\u5DF2\u4FDD\u5B58","search.settings.cancel":"\u91CD\u7F6E","yeaft.settings.yeaftTitle":"\u7EBF\u7A0B\u5E76\u53D1\u4E0E\u5F52\u6863","yeaft.settings.yeaftDesc":"\u8C03\u6574\u53EF\u540C\u65F6\u8FD0\u884C\u7684\u7EBF\u7A0B\u6570\u91CF\uFF0C\u4EE5\u53CA\u95F2\u7F6E\u7EBF\u7A0B\u7684\u81EA\u52A8\u5F52\u6863\u65F6\u957F\u3002","yeaft.settings.maxConcurrentLabel":"\u6700\u5927\u5E76\u53D1\u7EBF\u7A0B\u6570","yeaft.settings.maxConcurrentHint":"\u540C\u65F6\u5728\u7EBF\u7684\u7EBF\u7A0B\u603B\u6570\u4E0A\u9650\uFF08\u542B\u59CB\u7EC8\u5B58\u5728\u7684 main \u4E3B\u7EBF\u7A0B\uFF09\u3002\u8D85\u8FC7\u6B64\u4E0A\u9650\u7684\u65B0\u7EBF\u7A0B\u5C06\u88AB\u62D2\u7EDD\uFF0C\u76F4\u81F3\u5DF2\u6709\u7EBF\u7A0B\u88AB\u5F52\u6863\u6216\u7EC8\u6B62\u3002\u8303\u56F4\uFF1A1-50\u3002","yeaft.settings.archiveIdleDaysLabel":"\u95F2\u7F6E\u591A\u4E45\u540E\u81EA\u52A8\u5F52\u6863\u7EBF\u7A0B\uFF08\u5929\uFF09","yeaft.settings.archiveIdleDaysHint":"\u65E0\u6D3B\u52A8\u8D85\u8FC7\u6B64\u5929\u6570\u7684\u7EBF\u7A0B\u5C06\u88AB\u5F52\u6863\u3002\u8303\u56F4\uFF1A1-3650\u3002","yeaft.settings.yeaftSaveBtn":"\u4FDD\u5B58","yeaft.settings.yeaftSaving":"\u4FDD\u5B58\u4E2D...","yeaft.settings.yeaftSaved":"\u5DF2\u4FDD\u5B58","yeaft.settings.yeaftLoading":"\u52A0\u8F7D\u4E2D...","yeaft.settings.yeaftLoadError":"\u52A0\u8F7D Yeaft \u8BBE\u7F6E\u5931\u8D25","yeaft.settings.yeaftSaveError":"\u4FDD\u5B58 Yeaft \u8BBE\u7F6E\u5931\u8D25","yeaft.settings.rangeErrorConcurrent":"\u5FC5\u987B\u5728 1 \u5230 50 \u4E4B\u95F4","yeaft.settings.rangeErrorArchive":"\u5FC5\u987B\u5728 1 \u5230 3650 \u4E4B\u95F4","chat.session.creating":"\u6B63\u5728\u521B\u5EFA\u4F1A\u8BDD...","chat.session.loadingHistory":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u5386\u53F2...","yeaft.historyLoad.error":"\u4F1A\u8BDD\u5386\u53F2\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\uFF0C\u6D88\u606F\u4ECD\u5B89\u5168\u4FDD\u5B58\u5728 Agent \u4E2D\u3002","yeaft.historyLoad.retry":"\u91CD\u65B0\u52A0\u8F7D","yeaft.sessionInventory.error":"\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D Session\uFF0C\u4F1A\u8BDD\u4ECD\u5B89\u5168\u4FDD\u5B58\u5728 Agent \u4E2D\u3002","yeaft.sessionInventory.retry":"\u91CD\u65B0\u52A0\u8F7D Session","chat.session.closed":"\u4F1A\u8BDD\u5DF2\u5173\u95ED","chat.session.agentOffline":"Agent \u5DF2\u79BB\u7EBF\uFF0C\u8BE5\u4F1A\u8BDD\u5C06\u5728 Agent \u91CD\u65B0\u4E0A\u7EBF\u540E\u6062\u590D\u3002","chat.execution.cancelled":"\u6267\u884C\u5DF2\u53D6\u6D88","chat.sidebar.expand":"\u5C55\u5F00\u83DC\u5355","chat.sidebar.collapse":"\u6536\u8D77\u4FA7\u8FB9\u680F","chat.sidebar.workbench":"\u5DE5\u5177\u9762\u677F","chat.sidebar.newConv":"\u4F1A\u8BDD","chat.sidebar.recentChats":"\u6700\u8FD1\u4F1A\u8BDD","chat.sidebar.resumeConv":"\u6062\u590D\u4F1A\u8BDD","chat.sidebar.lightMode":"\u6D45\u8272\u6A21\u5F0F","chat.sidebar.darkMode":"\u6DF1\u8272\u6A21\u5F0F","chat.sidebar.settings":"\u8BBE\u7F6E","chat.sidebar.emptyHint":"\u70B9\u51FB\u4E0A\u65B9\u6309\u94AE\u521B\u5EFA\u65B0\u4F1A\u8BDD","chat.sidebar.closeConv":"\u5173\u95ED\u4F1A\u8BDD","chat.sidebar.renameConv":"\u91CD\u547D\u540D","chat.sidebar.pin":"\u7F6E\u9876","chat.sidebar.unpin":"\u53D6\u6D88\u7F6E\u9876","chat.connection.connecting":"\u8FDE\u63A5\u4E2D...","chat.connection.reconnecting":"\u91CD\u8FDE\u4E2D ({current}/{max})...","chat.connection.updating":"\u670D\u52A1\u6B63\u5728\u66F4\u65B0\uFF0C\u8BF7\u7A0D\u5019...","chat.connection.disconnected":"\u8FDE\u63A5\u65AD\u5F00","chat.connection.reconnect":"\u91CD\u8FDE","chat.connection.reconnectFailed":"\u8FDE\u63A5\u65AD\u5F00\uFF0C\u8BF7\u70B9\u51FB\u91CD\u8FDE\u6309\u94AE\u91CD\u8BD5\u3002","chat.time.justNow":"\u521A\u521A","chat.time.minutesAgo":"{count}\u5206\u949F\u524D","chat.time.daysAgo":"{count}\u5929\u524D","chat.time.today":"\u4ECA\u5929","chat.time.yesterday":"\u6628\u5929","chat.delete.confirm":"\u786E\u5B9A\u8981\u5173\u95ED\u8FD9\u4E2A\u4F1A\u8BDD\u5417\uFF1F\u8FD9\u5C06\u7EC8\u6B62\u5BF9\u5E94\u7684 Claude \u8FDB\u7A0B\u3002","chat.delete.enterWorkDir":"\u8BF7\u8F93\u5165\u5DE5\u4F5C\u76EE\u5F55\u8DEF\u5F84","modal.newConv.workDir":"\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.inputOrSelect":"\u8F93\u5165\u6216\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.browse":"\u6D4F\u89C8\u76EE\u5F55","modal.newConv.noWorkDirs":"\u6682\u65E0\u5DE5\u4F5C\u76EE\u5F55","modal.newConv.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5728\u7EBF\u7684 Agent","modal.newConv.create":"\u521B\u5EFA\u4F1A\u8BDD","modal.newConv.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","modal.newConv.provider":"\u63D0\u4F9B\u65B9","modal.newConv.model":"\u6A21\u578B","provider.claudeCode":"Claude Code","provider.copilot":"Copilot","modal.resume.workDir":"\u5DE5\u4F5C\u76EE\u5F55","modal.resume.inputOrSelect":"\u8F93\u5165\u6216\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.resume.browse":"\u6D4F\u89C8\u76EE\u5F55","modal.resume.tabFolders":"\u5DE5\u4F5C\u76EE\u5F55","modal.resume.tabSessions":"\u5386\u53F2\u4F1A\u8BDD","modal.resume.noWorkDirs":"\u6682\u65E0\u5DE5\u4F5C\u76EE\u5F55","modal.resume.selectWorkDir":"\u8BF7\u5148\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.resume.noSessions":"\u8BE5\u76EE\u5F55\u4E0B\u6CA1\u6709\u5386\u53F2\u4F1A\u8BDD","modal.resume.untitled":"\u672A\u547D\u540D\u4F1A\u8BDD","modal.resume.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","modal.resume.sessionLabel":"\u{1F4AC} \u5386\u53F2\u4F1A\u8BDD","modal.resume.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5728\u7EBF\u7684 Agent","modal.folderPicker.title":"\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55","modal.folderPicker.root":"\u6839\u76EE\u5F55 / \u9A71\u52A8\u5668","modal.folderPicker.path":"\u76EE\u5F55\u8DEF\u5F84","modal.folderPicker.go":"\u524D\u5F80","modal.folderPicker.ancestors":"\u4E0A\u7EA7\u76EE\u5F55\u5BFC\u822A","modal.folderPicker.directories":"\u5B50\u76EE\u5F55","modal.folderPicker.navigationHint":"\u70B9\u51FB\u6587\u4EF6\u5939\u8FDB\u5165\uFF0C\u518D\u9009\u62E9\u5F53\u524D\u76EE\u5F55\u3002","modal.folderPicker.selectCurrent":"\u9009\u62E9\u5F53\u524D\u76EE\u5F55","modal.folderPicker.loadFailed":"\u65E0\u6CD5\u6253\u5F00\u6B64\u76EE\u5F55\u3002\u8BF7\u68C0\u67E5\u8DEF\u5F84\u548C\u6743\u9650\uFF0C\u6216\u91CD\u8BD5\u3002","modal.folderPicker.unavailable":"Agent \u4E0D\u53EF\u7528\uFF0C\u8BF7\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","modal.folderPicker.timeout":"\u76EE\u5F55\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u3002","modal.folderPicker.parentDir":"\u4E0A\u7EA7\u76EE\u5F55","welcome.subtitle":"\u9762\u5411 Session\u3001\u5DE5\u5177\u548C VP \u534F\u4F5C\u7684 Web Code Agent","welcome.agentOnline":"{count} \u4E2A Agent \u5728\u7EBF","welcome.noAgents":"\u6682\u65E0\u5728\u7EBF Agent","welcome.noAgentsHint":"\u8BF7\u5148\u542F\u52A8 Agent \u7A0B\u5E8F\u8FDE\u63A5\u5230\u670D\u52A1\u5668","welcome.noAgent":"\u6682\u65E0\u5728\u7EBF Agent","welcome.noAgentHint":"\u8BF7\u5148\u542F\u52A8 Agent \u7A0B\u5E8F\u8FDE\u63A5\u5230\u670D\u52A1\u5668","welcome.setupAgent":"\u8BBE\u7F6E Agent","welcome.setupTitle":"\u8FDE\u63A5\u4F60\u7684 Agent","welcome.setupDesc":"\u5728\u4F60\u7684\u7535\u8111\u4E0A\u8FD0\u884C\u5B89\u88C5\u547D\u4EE4\uFF0C\u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002\u4EE3\u7801\u548C\u5DE5\u5177\u59CB\u7EC8\u7559\u5728\u672C\u673A\u3002","welcome.setupSecretLoading":"\u6B63\u5728\u51C6\u5907 Agent secret...","welcome.setupSecretError":"\u65E0\u6CD5\u51C6\u5907 Agent secret\uFF0C\u8BF7\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E\u91CD\u8BD5\u3002","installer.platformLabel":"\u76EE\u6807\u64CD\u4F5C\u7CFB\u7EDF","installer.posix":"Linux / macOS","installer.powershell":"Windows PowerShell","installer.copyCommand":"\u590D\u5236\u5B89\u88C5\u547D\u4EE4","installer.instruction":"\u5C06\u547D\u4EE4\u7C98\u8D34\u5230\u8FD0\u884C Agent \u7684\u7535\u8111\u7EC8\u7AEF\u4E2D\u6267\u884C\u3002","installer.viewCommand":"\u67E5\u770B\u547D\u4EE4","installer.copying":"\u590D\u5236\u4E2D\u2026","installer.copyFailed":"\u590D\u5236\u5931\u8D25","installer.secretLoading":"\u6B63\u5728\u51C6\u5907 Agent secret\u2026","installer.secretError":"\u65E0\u6CD5\u51C6\u5907 Agent secret\u3002","installer.secretRequired":"\u8BF7\u5148\u751F\u6210 Agent secret\uFF0C\u518D\u590D\u5236\u6B64\u547D\u4EE4\u3002","installer.commandUnavailable":"\u751F\u6210 Agent secret \u540E\u624D\u4F1A\u63D0\u4F9B\u547D\u4EE4\u3002","installer.copyError":"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u62E9\u5E76\u590D\u5236\u547D\u4EE4\u3002","installer.copySuccess":"\u547D\u4EE4\u5DF2\u590D\u5236\u3002","installer.openSecurity":"\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E","installer.note":"\u81EA\u52A8\u5B89\u88C5 Node.js \u548C\u79C1\u6709 Agent \u5B9E\u4F8B\u3002\u4EC5\u8FD0\u884C\u53EF\u4FE1\u670D\u52A1\u5668\u7684\u547D\u4EE4\uFF1B\u547D\u4EE4\u542B\u63A5\u5165\u5BC6\u94A5\uFF0C\u8BF7\u52FF\u5206\u4EAB\u3002","welcome.openSecuritySettings":"\u6253\u5F00\u5B89\u5168\u8BBE\u7F6E","welcome.newConv":"\u4F1A\u8BDD","welcome.resumeHistory":"\u6062\u590D\u5386\u53F2","messages.loadingMore":"\u52A0\u8F7D\u66F4\u591A\u6D88\u606F...","messages.loadMore":"\u2191 \u70B9\u51FB\u6216\u5411\u4E0A\u6EDA\u52A8\u52A0\u8F7D\u66F4\u591A","message.loadingMore":"\u52A0\u8F7D\u66F4\u591A\u6D88\u606F...","message.loadMore":"\u2191 \u70B9\u51FB\u6216\u5411\u4E0A\u6EDA\u52A8\u52A0\u8F7D\u66F4\u591A","message.navigation":"\u5BF9\u8BDD\u5BFC\u822A","message.currentTurn":"\u2191 \u672C\u8F6E","message.scrollToLatest":"\u2193 \u6700\u65B0","message.backToCurrentTurn":"\u56DE\u5230\u672C\u8F6E\u95EE\u9898","message.showResponses":"\u5C55\u5F00 {count} \u6761\u56DE\u590D","message.hideResponses":"\u6298\u53E0\u56DE\u590D","message.assistant":"\u52A9\u624B","chat.waiting.disconnected":"\u8FDE\u63A5\u5DF2\u65AD\u5F00","chat.connecting":"\u6B63\u5728\u8FDE\u63A5 provider \u4F1A\u8BDD...","chat.waiting.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","chat.waiting.agentOffline":"Agent \u5DF2\u79BB\u7EBF","chat.waiting.sessionLost":"Session \u5DF2\u4E22\u5931\uFF0C\u5DF2\u5237\u65B0\uFF0C\u7B49\u5F85\u6700\u65B0\u4FE1\u606F...","chat.waiting.cliExited":"Claude \u8FDB\u7A0B\u5DF2\u9000\u51FA\uFF0C\u5DF2\u5237\u65B0\uFF0C\u7B49\u5F85\u6700\u65B0\u4FE1\u606F...","chat.waiting.refresh":"\u5237\u65B0","chat.waiting.thinking":"AI \u6B63\u5728\u601D\u8003\u4E2D\uFF0C\u8BF7\u7A0D\u5019...","btw.hint":"esc \u9000\u51FA","btw.placeholder":"\u95EE\u4E2A\u987A\u4FBF\u7684\u95EE\u9898...","btw.close":"\u9000\u51FA BTW \u6A21\u5F0F","message.copyContent":"\u590D\u5236\u5185\u5BB9","message.copy":"\u590D\u5236\u5185\u5BB9","message.copied":"\u5DF2\u590D\u5236","message.copyCode":"\u590D\u5236\u4EE3\u7801","message.copyAll":"\u590D\u5236\u5168\u90E8","message.screenshot":"\u622A\u56FE","message.screenshotting":"\u6B63\u5728\u622A\u56FE...","message.exportMd":"\u5BFC\u51FA MD","message.askInput":"\u9700\u8981\u4F60\u7684\u8F93\u5165","message.askAnswered":"\u2713 \u5DF2\u56DE\u7B54","message.askCustom":"\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u56DE\u7B54...","message.askCustomPlaceholder":"\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u56DE\u7B54...","message.askSubmit":"\u63D0\u4EA4\u56DE\u7B54","message.askWaiting":"\u7B49\u5F85\u95EE\u9898\u52A0\u8F7D...","message.askSubmitting":"\u56DE\u7B54\u5DF2\u53D1\u9001\uFF0C\u7B49\u5F85 Agent \u786E\u8BA4\u2026","message.askUnconfirmed":"\u5C1A\u672A\u6536\u5230\u786E\u8BA4\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u53D1\u540C\u4E00\u56DE\u7B54\u3002","message.askRetry":"\u91CD\u53D1\u56DE\u7B54","message.askSendFailed":"\u56DE\u7B54\u672A\u53D1\u9001\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","message.askAgentUnavailable":"Agent \u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u6062\u590D\u8FDE\u63A5\u540E\u91CD\u53D1\u56DE\u7B54\u3002","message.askIdentityMismatch":"\u6B64\u95EE\u9898\u4E0E\u5F53\u524D\u8BF7\u6C42\u4E0D\u4E00\u81F4\uFF0C\u8BF7\u8BA9\u89D2\u8272\u91CD\u65B0\u63D0\u95EE\u3002","message.askExpired":"\u6B64\u95EE\u9898\u5DF2\u5931\u6548\uFF0C\u8BF7\u8BA9\u89D2\u8272\u91CD\u65B0\u63D0\u95EE","message.openInEditor":"\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00","message.resultDone":"\u5B8C\u6210","message.done":"\u5B8C\u6210","message.resultRead":"\u8BFB\u53D6 {file}","message.readFile":"\u8BFB\u53D6 {name}","message.file":"\u6587\u4EF6","message.attachImages":"{count} \u5F20\u56FE\u7247","message.imageCount":"{count} \u5F20\u56FE\u7247","message.imagePreview":"\u56FE\u7247\u9884\u89C8","message.zoomOut":"\u7F29\u5C0F\u56FE\u7247","message.zoomIn":"\u653E\u5927\u56FE\u7247","message.resetZoom":"\u91CD\u7F6E\u56FE\u7247\u7F29\u653E","message.previousImage":"\u4E0A\u4E00\u5F20\u56FE\u7247","message.nextImage":"\u4E0B\u4E00\u5F20\u56FE\u7247","message.imagePosition":"\u7B2C {current} \u5F20\uFF0C\u5171 {total} \u5F20","message.imageUnavailable":"\u56FE\u7247\u65E0\u6CD5\u52A0\u8F7D","message.attachFiles":"{count} \u4E2A\u6587\u4EF6","message.fileCount":"{count} \u4E2A\u6587\u4EF6","message.quote":"\u5F15\u7528","message.removeQuote":"\u5220\u9664\u5F15\u7528","message.replyingTo":"\u6B63\u5728\u56DE\u590D {author}","message.quotedFrom":"\u5F15\u7528\u81EA {author}","message.editAsNew":"\u7F16\u8F91","message.you":"\u4F60","input.upload":"\u4E0A\u4F20\u6587\u4EF6","input.placeholder":"\u8F93\u5165\u6D88\u606F...","input.send":"\u53D1\u9001","input.stopExecution":"\u505C\u6B62\u6267\u884C","chatInput.upload":"\u4E0A\u4F20\u6587\u4EF6","chatInput.uploading":"\u6B63\u5728\u4E0A\u4F20\u2026","chatInput.uploadFailed":"\u4E0A\u4F20\u5931\u8D25","chatInput.retryUpload":"\u91CD\u8BD5","chatInput.removeAttachment":"\u79FB\u9664\u9644\u4EF6","chatInput.placeholder":"\u8F93\u5165\u6D88\u606F...","chatInput.send":"\u53D1\u9001","chatInput.stop":"\u505C\u6B62\u6267\u884C","tools.thinking":"\u601D\u8003\u4E2D...","tools.read":"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6","tools.write":"\u6B63\u5728\u5199\u5165\u6587\u4EF6","tools.edit":"\u6B63\u5728\u7F16\u8F91\u6587\u4EF6","tools.bash":"\u6B63\u5728\u6267\u884C\u547D\u4EE4","tools.glob":"\u6B63\u5728\u641C\u7D22\u6587\u4EF6","tools.grep":"\u6B63\u5728\u641C\u7D22\u5185\u5BB9","tools.task":"\u6B63\u5728\u6267\u884C\u4EFB\u52A1","tools.webFetch":"\u6B63\u5728\u83B7\u53D6\u7F51\u9875","tools.webSearch":"\u6B63\u5728\u641C\u7D22\u7F51\u7EDC","tools.todoWrite":"\u6B63\u5728\u66F4\u65B0\u4EFB\u52A1","tools.executing":"\u6B63\u5728\u6267\u884C {name}","status.thinking":"\u601D\u8003\u4E2D...","status.reading":"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6","status.writing":"\u6B63\u5728\u5199\u5165\u6587\u4EF6","status.editing":"\u6B63\u5728\u7F16\u8F91\u6587\u4EF6","status.executing":"\u6B63\u5728\u6267\u884C\u547D\u4EE4","status.searchingFiles":"\u6B63\u5728\u641C\u7D22\u6587\u4EF6","status.searchingContent":"\u6B63\u5728\u641C\u7D22\u5185\u5BB9","status.executingTask":"\u6B63\u5728\u6267\u884C\u4EFB\u52A1","status.fetching":"\u6B63\u5728\u83B7\u53D6\u7F51\u9875","status.searching":"\u6B63\u5728\u641C\u7D22\u7F51\u7EDC","status.updatingTasks":"\u6B63\u5728\u66F4\u65B0\u4EFB\u52A1","status.executingTool":"\u6B63\u5728\u6267\u884C {name}","header.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","header.compacted":"\u4E0A\u4E0B\u6587\u538B\u7F29\u5B8C\u6210","chatHeader.newConv":"\u4F1A\u8BDD","chatHeader.compacting":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","chatHeader.compactDone":"\u4E0A\u4E0B\u6587\u538B\u7F29\u5B8C\u6210","chatHeader.compact":"\u538B\u7F29\u4E0A\u4E0B\u6587","chatHeader.resume":"\u6062\u590D\u4F1A\u8BDD","chatHeader.refresh":"\u5237\u65B0\u6D88\u606F","chatHeader.reloadPage":"\u5237\u65B0\u9875\u9762","chatHeader.clear":"\u6E05\u7A7A\u6D88\u606F","chatHeader.clearing":"\u6B63\u5728\u6E05\u7A7A\u4E0A\u4E0B\u6587...","chatHeader.clearDone":"\u4E0A\u4E0B\u6587\u5DF2\u6E05\u7A7A","chatHeader.confirmClear":"\u786E\u5B9A\u8981\u6E05\u7A7A\u5F53\u524D\u4F1A\u8BDD\u7684\u6240\u6709\u6D88\u606F\u5417\uFF1F","chatHeader.mcpConfig":"MCP \u670D\u52A1\u5668\u914D\u7F6E","chatHeader.mcpNeedRestart":"\u66F4\u6539\u5C06\u5728\u91CD\u542F\u4F1A\u8BDD\u540E\u751F\u6548\u3002","chatHeader.expertPanel":"\u5E2E\u5E2E\u56E2","chatHeader.subAgentPanel":"\u5B50\u4EE3\u7406","settings.close":"\u5173\u95ED\u8BBE\u7F6E","settings.tabs.account":"\u8D26\u53F7","settings.tabs.security":"\u5B89\u5168","settings.tabs.general":"\u901A\u7528","settings.tabs.sandbox":"Sandbox","settings.tabs.invitations":"\u9080\u8BF7","auth.sessionExpired":"\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\u3002","settings.sandbox.description":"\u5728\u672C Server \u7BA1\u7406\u7684 Docker \u5BB9\u5668\u4E2D\u8FD0\u884C\u4E00\u4E2A\u6301\u4E45\u5316 Yeaft Agent\u3002","settings.sandbox.containerAgent":"Docker \u5316 Yeaft Agent","settings.sandbox.serverManaged":"Server \u53EA\u7BA1\u7406\u6B64\u5BB9\u5668\u7684\u542F\u52A8\u3001\u505C\u6B62\u548C\u5220\u9664\uFF1B\u5BB9\u5668\u5185 Agent \u4ECD\u4F7F\u7528\u666E\u901A Yeaft \u8FDE\u63A5\u3002","settings.sandbox.agentName":"Agent \u540D\u79F0","settings.sandbox.sizeLabel":"\u89C4\u683C","settings.sandbox.enable":"\u542F\u7528 Sandbox","settings.sandbox.creating":"\u6B63\u5728\u8BBE\u7F6E\u2026","settings.sandbox.start":"\u542F\u52A8","settings.sandbox.stop":"\u505C\u6B62","settings.sandbox.retry":"\u91CD\u8BD5","settings.sandbox.remove":"\u79FB\u9664","settings.sandbox.removeConfirm":"\u6C38\u4E45\u79FB\u9664\u6B64 Sandbox\uFF0C\u5E76\u5220\u9664 home \u548C workspace \u6570\u636E\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002","settings.sandbox.size.small":"\u5C0F\u578B","settings.sandbox.size.normal":"\u6807\u51C6","settings.sandbox.state.reserving":"\u6B63\u5728\u8BBE\u7F6E","settings.sandbox.state.provisioning":"\u6B63\u5728\u51C6\u5907 Sandbox","settings.sandbox.state.starting":"\u6B63\u5728\u542F\u52A8","settings.sandbox.state.waiting_for_agent":"\u6B63\u5728\u7B49\u5F85 Agent","settings.sandbox.state.stopping":"\u6B63\u5728\u505C\u6B62","settings.sandbox.state.removing":"\u6B63\u5728\u79FB\u9664","settings.sandbox.state.removed":"\u5DF2\u79FB\u9664","settings.sandbox.state.running":"\u8FD0\u884C\u4E2D","settings.sandbox.state.stopped":"\u5DF2\u505C\u6B62","settings.sandbox.state.failed":"\u5931\u8D25","settings.sandbox.state.remove_failed":"\u79FB\u9664\u5931\u8D25","settings.sandbox.state.recovery_required":"\u9700\u8981\u6062\u590D\u5904\u7406","settings.sandbox.stage.reserving_capacity":"\u6B63\u5728\u9884\u7559\u5BB9\u91CF","settings.sandbox.stage.starting":"\u6B63\u5728\u542F\u52A8 Sandbox","settings.sandbox.stage.stopping":"\u6B63\u5728\u505C\u6B62 Sandbox","settings.sandbox.stage.retrying":"\u6B63\u5728\u91CD\u8BD5\u64CD\u4F5C","settings.sandbox.stage.removing":"\u6B63\u5728\u79FB\u9664 Sandbox","settings.sandbox.stage.complete":"\u5DF2\u5B8C\u6210","settings.sandbox.stage.dispatching":"\u6B63\u5728\u5B89\u5168\u5206\u53D1","settings.sandbox.stage.capacity_rejected":"\u6B63\u5728\u7B49\u5F85\u5BB9\u91CF","settings.sandbox.unavailable.disabled":"\u6B64 Server \u5C1A\u672A\u542F\u7528 Sandbox\u3002\u5347\u7EA7\u672C\u673A Agent \u4E0D\u4F1A\u81EA\u52A8\u542F\u7528\uFF1B\u9700\u8981 Server \u7BA1\u7406\u5458\u5F00\u542F Docker \u7BA1\u7406\u3002","settings.sandbox.unavailable.dockerUnavailable":"Server \u65E0\u6CD5\u4F7F\u7528 Docker\uFF0C\u8BF7\u68C0\u67E5 Sandbox \u7684 Server \u90E8\u7F72\u914D\u7F6E\u3002","settings.sandbox.unavailable.notEntitled":"\u6B64\u8D26\u53F7\u6682\u4E0D\u53EF\u4F7F\u7528 Sandbox\u3002","settings.sandbox.unavailable.capacityUnavailable":"Sandbox \u6682\u65F6\u4E0D\u53EF\u7528\u3002","settings.sandbox.error.SANDBOX_LOAD_FAILED":"\u65E0\u6CD5\u52A0\u8F7D Sandbox \u72B6\u6001\u3002","settings.sandbox.retryLoad":"\u91CD\u8BD5","settings.sandbox.error.SANDBOX_CREATE_FAILED":"\u65E0\u6CD5\u521B\u5EFA Sandbox\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","settings.sandbox.error.SANDBOX_ACTION_FAILED":"\u65E0\u6CD5\u5B89\u6392 Sandbox \u64CD\u4F5C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","settings.sandbox.error.SANDBOX_OPERATION_TIMEOUT":"\u64CD\u4F5C\u5DF2\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u6216\u79FB\u9664 Sandbox\u3002","settings.sandbox.error.SANDBOX_RUNTIME_FAILED":"Sandbox \u8FD0\u884C\u65F6\u62A5\u544A\u5931\u8D25\u3002","settings.sandbox.error.SANDBOX_CGROUP_SLICE_UNAVAILABLE":"\u65E0\u6CD5\u5728\u5BBF\u4E3B\u673A\u521D\u59CB\u5316\u5171\u4EAB\u8D44\u6E90 slice\uFF08\u9700\u8981 cgroup v2 \u4E0E root \u6743\u9650\uFF09\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\uFF0C\u6216\u79FB\u9664 SANDBOX_CGROUP_PARENT \u4EE5\u5173\u95ED\u8D44\u6E90\u4E0A\u9650\u3002","settings.account.username":"\u7528\u6237\u540D","settings.account.role":"\u89D2\u8272","settings.account.email":"\u90AE\u7BB1","settings.account.emailNotSet":"\u672A\u8BBE\u7F6E","settings.account.profileLoadFailed":"\u8D26\u53F7\u8D44\u6599\u52A0\u8F7D\u5931\u8D25","settings.account.logout":"\u9000\u51FA\u767B\u5F55","settings.account.roleAdmin":"\u7BA1\u7406\u5458","settings.account.rolePro":"Pro","settings.account.linkedAccounts":"\u5DF2\u5173\u8054\u8D26\u6237","settings.account.linkedDesc":"\u5173\u8054\u7B2C\u4E09\u65B9\u767B\u5F55\u540E\uFF0C\u4F7F\u7528\u4EFB\u610F\u4E00\u79CD\u65B9\u5F0F\u90FD\u80FD\u767B\u5F55\u6B64\u8D26\u53F7\u3002","settings.account.bind":"\u7ED1\u5B9A","settings.account.unbind":"\u89E3\u7ED1","settings.account.linked":"\u5DF2\u7ED1\u5B9A","settings.account.providerDisabled":"\u672A\u914D\u7F6E","settings.account.cantUnbindLast":"\u4E0D\u80FD\u89E3\u7ED1\u552F\u4E00\u7684\u767B\u5F55\u65B9\u5F0F","settings.account.unbindFailed":"\u89E3\u7ED1\u5931\u8D25\uFF1A{error}","settings.account.bindFailed":"\u7ED1\u5B9A\u5931\u8D25","settings.account.ssoBoundMsg":"\u5DF2\u6210\u529F\u7ED1\u5B9A {provider}\u3002","settings.account.ssoConflictMsg":"\u8BE5 {provider} \u8D26\u53F7\u5DF2\u88AB\u5176\u4ED6\u7528\u6237\u7ED1\u5B9A\u3002","settings.account.providerMicrosoft":"Microsoft","settings.account.providerGithub":"GitHub","settings.account.providerGoogle":"Google","settings.account.providerWechat":"\u5FAE\u4FE1","settings.account.providerAlipay":"\u652F\u4ED8\u5B9D","settings.security.agentKey":"Agent \u5BC6\u94A5","settings.security.agentKeyDesc":"\u7528\u4E8E Agent \u8FDE\u63A5\u8BA4\u8BC1\u7684\u5171\u4EAB\u5BC6\u94A5","settings.security.agentSetupCommands":"Agent \u63A5\u5165\u547D\u4EE4","settings.security.agentCmdInstall":"\u5B89\u88C5\u5E76\u8FDE\u63A5 Agent","settings.security.agentCmdService":"\u8FD0\u884C Agent server","settings.security.agentCmdContainer":"\u5728 Docker \u4E2D\u8FD0\u884C Agent","settings.security.agentCmdContainerDesc":"\u4E00\u6761\u547D\u4EE4\u5373\u53EF\u3002\u9996\u6B21\u8FD0\u884C\u4F1A\u81EA\u52A8\u521D\u59CB\u5316\u5171\u4EAB CPU/\u5185\u5B58\u9650\u5236\uFF08\u4F1A\u63D0\u793A\u8F93\u5165\u4E00\u6B21 sudo \u5BC6\u7801\uFF09\uFF1B\u4F20 --no-slice \u53EF\u4E0D\u542F\u7528\u8D44\u6E90\u4FDD\u62A4\u3002\u673A\u5668\u4E0A\u9700\u8981\u5DF2\u5B89\u88C5 Docker\u3002","settings.security.agentCmdNeedsSecret":"\u8BF7\u5148\u751F\u6210 Agent \u5BC6\u94A5\uFF0C\u4EE5\u521B\u5EFA\u5305\u542B server \u5730\u5740\u548C\u5BC6\u94A5\u7684\u547D\u4EE4\u3002","settings.security.agentCmdLlm":"Copilot \u624B\u52A8\u515C\u5E95","settings.security.agentCmdLlmDesc":"Agent \u8FDE\u63A5\u540E\uFF0C\u53EF\u5728 Agent \u8BBE\u7F6E\u4E2D\u914D\u7F6E\u53EF\u9009 LLM\u3002\u5B89\u88C5\u5668\u4E5F\u4F1A\u8F93\u51FA\u53EF\u5728\u7EC8\u7AEF\u4F7F\u7528\u7684\u7EDD\u5BF9\u8DEF\u5F84\u7BA1\u7406\u547D\u4EE4\u3002","settings.security.none":"\u65E0","settings.security.show":"\u663E\u793A","settings.security.hide":"\u9690\u85CF","settings.security.generateKey":"\u751F\u6210\u5BC6\u94A5","settings.security.resetKey":"\u91CD\u7F6E\u5BC6\u94A5","settings.security.resetting":"\u91CD\u7F6E\u4E2D...","settings.security.resetWarning":"\u91CD\u7F6E\u540E\u6240\u6709 Agent \u9700\u91CD\u65B0\u914D\u7F6E","settings.security.changePassword":"\u4FEE\u6539\u5BC6\u7801","settings.security.currentPassword":"\u5F53\u524D\u5BC6\u7801","settings.security.newPassword":"\u65B0\u5BC6\u7801\uFF08\u81F3\u5C116\u4F4D\uFF09","settings.security.confirmPassword":"\u786E\u8BA4\u65B0\u5BC6\u7801","settings.security.changeBtn":"\u4FEE\u6539\u5BC6\u7801","settings.security.changing":"\u4FEE\u6539\u4E2D...","settings.security.enterCurrentPwd":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","settings.security.newPwdMin":"\u65B0\u5BC6\u7801\u81F3\u5C116\u4F4D","settings.security.pwdMismatch":"\u4E24\u6B21\u5BC6\u7801\u4E0D\u4E00\u81F4","settings.security.pwdChanged":"\u5BC6\u7801\u4FEE\u6539\u6210\u529F","settings.security.setPassword":"\u8BBE\u7F6E\u5BC6\u7801","settings.security.setPasswordDesc":"\u4F60\u76EE\u524D\u901A\u8FC7 SSO \u767B\u5F55\uFF0C\u5C1A\u672A\u8BBE\u7F6E\u5BC6\u7801\u3002\u8BBE\u7F6E\u540E\u5373\u53EF\u4F7F\u7528\u7528\u6237\u540D + \u5BC6\u7801\u767B\u5F55\u3002","settings.security.setBtn":"\u8BBE\u7F6E\u5BC6\u7801","settings.security.pwdSet":"\u5BC6\u7801\u8BBE\u7F6E\u6210\u529F","settings.security.deleteAccount":"\u6CE8\u9500\u8D26\u6237","settings.security.deleteAccountDesc":"\u6C38\u4E45\u5220\u9664\u4F60\u7684\u8D26\u6237\u548C\u6240\u6709\u76F8\u5173\u6570\u636E\u3002\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002","settings.security.deleteBtn":"\u6CE8\u9500\u8D26\u6237","settings.security.deleteConfirmBtn":"\u786E\u8BA4\u5220\u9664","settings.security.deleteConfirmPlaceholder":"\u8F93\u5165 DELETE \u4EE5\u786E\u8BA4","settings.security.deleteConfirmRequired":"\u8BF7\u8F93\u5165 DELETE \u4EE5\u786E\u8BA4\u6CE8\u9500\u8D26\u6237","settings.security.deleteFailed":"\u6CE8\u9500\u8D26\u6237\u5931\u8D25","settings.security.deleting":"\u6CE8\u9500\u4E2D...","settings.general.theme":"\u4E3B\u9898","settings.general.lightTheme":"\u6D45\u8272","settings.general.darkTheme":"\u6DF1\u8272","settings.general.language":"\u8BED\u8A00","settings.general.currentValue":"\u5F53\u524D\uFF1A{value}","settings.general.workCenter":"\u5DE5\u4F5C\u4E2D\u5FC3\u5165\u53E3","settings.general.workCenterDesc":"\u5728\u4FA7\u680F\u9876\u680F\u663E\u793A\u5DE5\u4F5C\u4E2D\u5FC3\u5165\u53E3\uFF1B\u652F\u6301\u7684 Agent \u5728\u5DE5\u4F5C\u4E2D\u5FC3\u5185\u9009\u62E9\u3002","settings.general.workCenterOn":"\u5DF2\u5F00\u542F","settings.general.workCenterOff":"\u5DF2\u5173\u95ED","settings.general.telemetry":"\u6027\u80FD\u9065\u6D4B","settings.general.telemetryDesc":"\u5728\u672C\u5730\u6279\u91CF\u8BB0\u5F55\u8017\u65F6\u8BCA\u65AD\uFF1Btrace \u5185\u5BB9\u4E0D\u4F1A\u53D1\u9001\u5230\u670D\u52A1\u5668\u3002","settings.general.telemetryOn":"\u5DF2\u5F00\u542F","settings.general.telemetryOff":"\u5DF2\u5173\u95ED","settings.general.telemetryLoading":"\u52A0\u8F7D\u4E2D\u2026","settings.general.telemetrySaving":"\u4FDD\u5B58\u4E2D\u2026","settings.general.telemetryUnavailable":"\u72B6\u6001\u4E0D\u53EF\u7528","settings.general.telemetryLoadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5DF2\u4FDD\u5B58\u7684\u9065\u6D4B\u8BBE\u7F6E\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u8BBE\u7F6E\u540E\u91CD\u8BD5\u3002","settings.general.telemetrySaveFailed":"\u65E0\u6CD5\u786E\u8BA4\u9065\u6D4B\u8BBE\u7F6E\u53D8\u66F4\uFF0C\u5DF2\u6062\u590D\u663E\u793A\u4E4B\u524D\u7684\u8BBE\u7F6E\uFF1B\u8BF7\u91CD\u65B0\u6253\u5F00\u8BBE\u7F6E\u6838\u5BF9\u3002","settings.general.telemetryRawLimit":"Provider \u539F\u59CB\u8BF7\u6C42/\u54CD\u5E94\u4E0A\u9650\uFF08\u5B57\u8282\uFF09","settings.general.telemetryTraceTextLimit":"Debug Prompt \u4E0E\u6D88\u606F\u4E0A\u9650\uFF08\u5B57\u8282\uFF09","settings.invite.create":"\u521B\u5EFA\u9080\u8BF7\u7801","settings.invite.normalUser":"\u666E\u901A\u7528\u6237","settings.invite.proUser":"Pro \u7528\u6237","settings.invite.createBtn":"\u521B\u5EFA\u9080\u8BF7\u7801","settings.invite.creating":"\u521B\u5EFA\u4E2D...","settings.invite.list":"\u9080\u8BF7\u7801\u5217\u8868","settings.invite.used":"\u5DF2\u4F7F\u7528","settings.invite.expired":"\u5DF2\u8FC7\u671F","settings.invite.available":"\u53EF\u7528","settings.invite.usedBy":"\u4F7F\u7528\u8005: {user}","settings.invite.expiredAt":"\u8FC7\u671F\u4E8E: {time}","settings.invite.expiresAt":"\u6709\u6548\u81F3: {time}","settings.invite.noInvites":"\u6682\u65E0\u9080\u8BF7\u7801","settings.msg.copiedClipboard":"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F","settings.msg.copyFailed":"\u590D\u5236\u5931\u8D25","settings.msg.keyReset":"\u5BC6\u94A5\u5DF2\u91CD\u7F6E","settings.msg.resetFailed":"\u91CD\u7F6E\u5931\u8D25","settings.msg.changeFailed":"\u4FEE\u6539\u5931\u8D25","settings.msg.inviteCreated":"\u9080\u8BF7\u7801\u5DF2\u521B\u5EFA","settings.msg.createFailed":"\u521B\u5EFA\u5931\u8D25","settings.msg.inviteCopied":"\u9080\u8BF7\u7801\u5DF2\u590D\u5236","settings.msg.inviteDeleted":"\u9080\u8BF7\u7801\u5DF2\u5220\u9664","settings.msg.deleteFailed":"\u5220\u9664\u5931\u8D25","settings.tabs.llm":"LLM","settings.tabs.yeaft":"Yeaft","settings.yeaft.tabs.vp":"VP \u5E93","settings.yeaft.tabs.search":"\u641C\u7D22","settings.yeaft.tabs.mcp":"MCP","settings.mcp.title":"MCP \u670D\u52A1\u5668","settings.mcp.description":"\u901A\u8FC7 Model Context Protocol \u7ED9 Yeaft \u63A5\u5165\u66F4\u591A\u5DE5\u5177\u3002\u914D\u7F6E\u5199\u5165 agent \u4E0A\u7684 ~/.yeaft/config.json\uFF0C\u5DE5\u5177\u4F1A\u4EE5 mcp__<server>__<tool> \u7684\u5F62\u5F0F\u51FA\u73B0\u5728 LLM \u5DE5\u5177\u5217\u8868\u91CC\u3002","settings.mcp.reloadAll":"\u5168\u90E8\u91CD\u8FDE","settings.mcp.reloadOne":"\u91CD\u65B0\u8FDE\u63A5\u6B64\u670D\u52A1\u5668","settings.mcp.loading":"\u5904\u7406\u4E2D\u2026","settings.mcp.connected":"\u5DF2\u8FDE\u63A5","settings.mcp.disconnected":"\u672A\u8FDE\u63A5","settings.mcp.tools":"\u4E2A\u5DE5\u5177","settings.mcp.remove":"\u79FB\u9664","settings.mcp.empty":"\u8FD8\u6CA1\u6709\u914D\u7F6E MCP \u670D\u52A1\u5668\uFF0C\u53EF\u4EE5\u5728\u4E0B\u65B9\u6DFB\u52A0\u4E00\u4E2A\u3002","settings.mcp.addServer":"\u6DFB\u52A0\u670D\u52A1\u5668","settings.mcp.addServerDesc":"\u5927\u90E8\u5206 MCP \u670D\u52A1\u5668\u662F\u672C\u5730\u547D\u4EE4 \u2014 Yeaft \u4F1A\u901A\u8FC7 stdio \u542F\u52A8\u5B83\u5E76\u81EA\u52A8\u53D1\u73B0\u53EF\u7528\u5DE5\u5177\u3002","settings.mcp.serverName":"\u540D\u79F0","settings.mcp.command":"\u547D\u4EE4","settings.mcp.args":"\u53C2\u6570","settings.mcp.argsPlaceholder":"\u4F8B\u5982\uFF1A-y @modelcontextprotocol/server-filesystem /tmp","settings.mcp.env":"\u73AF\u5883\u53D8\u91CF","settings.mcp.envPlaceholder":"\u6BCF\u884C\u4E00\u4E2A KEY=value\uFF0C# \u5F00\u5934\u7684\u884C\u4F1A\u88AB\u5FFD\u7565\u3002","settings.mcp.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.mcp.add":"\u6DFB\u52A0","settings.mcp.cancel":"\u6E05\u7A7A","settings.mcp.connectFailed":"\u5DF2\u4FDD\u5B58\u4F46\u8FDE\u63A5\u5931\u8D25","settings.mcp.addSuccess":"\u670D\u52A1\u5668\u5DF2\u6DFB\u52A0","settings.mcp.removeSuccess":"\u670D\u52A1\u5668\u5DF2\u79FB\u9664","settings.mcp.reloadSuccess":"\u5DF2\u8BF7\u6C42\u91CD\u8FDE","settings.mcp.confirmRemove":'\u79FB\u9664 MCP \u670D\u52A1\u5668 "{name}"\uFF1F\u4E0B\u4E00\u4E2A LLM turn \u8D77\u5B83\u7684\u5DE5\u5177\u5C06\u4E0D\u518D\u53EF\u89C1\u3002',"settings.mcp.errors.nameRequired":"\u8BF7\u586B\u5199\u540D\u79F0","settings.mcp.errors.nameFormat":"\u540D\u79F0\u53EA\u80FD\u5305\u542B\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u77ED\u6A2A\u7EBF\u548C\u4E0B\u5212\u7EBF","settings.mcp.errors.commandRequired":"\u8BF7\u586B\u5199\u547D\u4EE4","settings.mcp.errors.argsParse":"\u53C2\u6570\u89E3\u6790\u5931\u8D25","settings.mcp.errors.envParse":"\u73AF\u5883\u53D8\u91CF\u89E3\u6790\u5931\u8D25","yeaft.session.title":"\u4F1A\u8BDD","yeaft.session.new":"+ \u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.create.title":"\u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.create.subtitle":"\u9009\u62E9\u8FD0\u884C\u4F4D\u7F6E\u548C\u5904\u7406\u4F1A\u8BDD\u7684 Provider\u3002","yeaft.session.create.close":"\u5173\u95ED","yeaft.session.create.nameLabel":"\u540D\u79F0","yeaft.session.create.namePlaceholder":"\u4F1A\u8BDD\u540D\u79F0\uFF08\u53EF\u9009\uFF09","yeaft.session.create.workDirLabel":"\u5DE5\u4F5C\u76EE\u5F55","yeaft.session.create.agentLabel":"Agent","yeaft.session.create.vpPicker":"\u9009\u62E9 VP","yeaft.session.create.vpNone":"\u672A\u9009\u62E9 VP","yeaft.session.create.vpCount":"\u5DF2\u9009 {n} \u4E2A VP","yeaft.session.create.untitled":"\u672A\u547D\u540D\u4F1A\u8BDD","yeaft.session.create.rosterEmpty":"\u6682\u65E0\u53EF\u7528 VP \u2014 \u8BF7\u5148\u5230\u89D2\u8272\u5E93\u521B\u5EFA\u3002","yeaft.session.create.rosterLoading":"VP \u52A0\u8F7D\u4E2D\u2026","yeaft.session.create.rosterError":"\u65E0\u6CD5\u4ECE\u5F53\u524D Agent \u52A0\u8F7D VP\u3002","yeaft.session.create.rosterRetry":"\u91CD\u8BD5","yeaft.vp.domain.general":"\u901A\u7528\u4E0E\u534F\u4F5C","yeaft.vp.domain.productDesign":"\u4EA7\u54C1\u4E0E\u4F53\u9A8C\u8BBE\u8BA1","yeaft.vp.domain.softwareSystems":"\u8F6F\u4EF6\u4E0E\u7CFB\u7EDF","yeaft.vp.domain.securityReliability":"\u5B89\u5168\u4E0E\u53EF\u9760\u6027","yeaft.vp.domain.scienceAnalysis":"\u79D1\u5B66\u4E0E\u5206\u6790","yeaft.vp.domain.philosophyPsychology":"\u54F2\u5B66\u4E0E\u5FC3\u7406","yeaft.vp.domain.strategyHistory":"\u6218\u7565\u4E0E\u5386\u53F2","yeaft.vp.domain.businessManagement":"\u5546\u4E1A\u4E0E\u7BA1\u7406","yeaft.vp.domain.artsCulture":"\u827A\u672F\u4E0E\u6587\u5316","yeaft.vp.domain.other":"\u5176\u4ED6\u9886\u57DF","yeaft.vp.domain.custom":"\u81EA\u5B9A\u4E49 VP","yeaft.session.create.defaultVpHint":"\u5F53\u6CA1\u6709 @ \u63D0\u53CA\u65F6\u9ED8\u8BA4\u56DE\u7B54\u7684 VP\u3002","yeaft.session.create.folderLabel":"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55","yeaft.session.create.sessionLabel":"\u{1F4AC} \u6B64\u76EE\u5F55\u4E0B\u7684 session","yeaft.session.create.noWorkDirs":"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u4F1A\u8BDD \u2014 \u5728\u4E0A\u65B9\u9009\u62E9\u6216\u8F93\u5165\u5DE5\u4F5C\u76EE\u5F55\u5F00\u59CB\u3002","yeaft.session.create.back":"\u8FD4\u56DE","yeaft.session.create.creating":"\u521B\u5EFA\u4E2D\u2026","yeaft.session.create.submit":"\u521B\u5EFA","yeaft.plugins.title":"\u63D2\u4EF6","yeaft.plugins.subtitle":"\u9009\u62E9\u6B64 Agent \u5411\u4F1A\u8BDD\u63D0\u4F9B\u54EA\u4E9B\u5DE5\u5177\u3001\u6280\u80FD\u548C MCP \u670D\u52A1\u5668\u3002","yeaft.plugins.agentLabel":"Agent","yeaft.plugins.overviewLabel":"\u63D2\u4EF6\u53EF\u7528\u6027\u6982\u89C8","yeaft.plugins.noAgent":"\u672A\u9009\u62E9 Agent","yeaft.plugins.allAvailable":"\u5DF2\u542F\u7528\u5168\u90E8\u53EF\u7528\u80FD\u529B\u3002","yeaft.plugins.selectedSummary":"\u5DF2\u542F\u7528 {count} \u9879\u80FD\u529B\u3002","yeaft.plugins.enabledLabel":"\u5DF2\u542F\u7528","yeaft.plugins.useAll":"\u4F7F\u7528\u5168\u90E8\u53EF\u7528\u9879","yeaft.plugins.loading":"\u6B63\u5728\u52A0\u8F7D\u63D2\u4EF6\u2026","yeaft.plugins.empty":"\u6B64 Agent \u6CA1\u6709\u53EF\u914D\u7F6E\u7684\u63D2\u4EF6\u3002","yeaft.plugins.loadError":"\u52A0\u8F7D\u63D2\u4EF6\u5931\u8D25\uFF1A{error}","yeaft.plugins.upgradeRequired":"\u6B64 Agent \u4E0D\u652F\u6301\u63D2\u4EF6\u3002\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u8BE5 Agent\u3002","yeaft.plugins.retry":"\u91CD\u8BD5","yeaft.plugins.searchPlaceholder":"\u641C\u7D22\u5DE5\u5177\u3001\u6280\u80FD\u548C MCP \u670D\u52A1\u5668","yeaft.plugins.resultCount":"{count} \u4E2A\u7ED3\u679C","yeaft.plugins.categoryLabel":"\u63D2\u4EF6\u5206\u7C7B","yeaft.plugins.all":"\u5168\u90E8","yeaft.plugins.noMatchesTitle":"\u6CA1\u6709\u5339\u914D\u7684\u63D2\u4EF6","yeaft.plugins.noMatchesBody":"\u8BF7\u5C1D\u8BD5\u5176\u4ED6\u641C\u7D22\u8BCD\u6216\u5206\u7C7B\u3002","yeaft.plugins.toolDescription":"Agent \u5185\u7F6E\u80FD\u529B","yeaft.plugins.skillDescription":"\u53EF\u590D\u7528\u7684 Agent \u5DE5\u4F5C\u6D41","yeaft.plugins.mcpDescription":"\u53EF\u63D0\u4F9B {count} \u4E2A\u5DE5\u5177","yeaft.plugins.unsavedChanges":"\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539","yeaft.plugins.tools":"\u5DE5\u5177","yeaft.plugins.skills":"\u6280\u80FD","yeaft.plugins.mcpServers":"MCP \u670D\u52A1\u5668","yeaft.plugins.toolsCount":"\u4E2A\u5DE5\u5177","yeaft.plugins.manageSkills":"\u7BA1\u7406\u6280\u80FD","yeaft.plugins.manageSkillsDescription":"\u4E3A\u6B64 Agent \u6216\u5F53\u524D\u9879\u76EE\u521B\u5EFA\u53EF\u590D\u7528\u6280\u80FD\u3002\u9879\u76EE\u7EA7\u6280\u80FD\u4F1A\u8986\u76D6\u540C\u540D\u7528\u6237\u7EA7\u6280\u80FD\u3002","yeaft.plugins.createSkill":"\u521B\u5EFA\u6280\u80FD","yeaft.plugins.removeSkill":"\u79FB\u9664","yeaft.plugins.confirmRemoveSkill":"\u79FB\u9664\u6280\u80FD\u201C{name}\u201D\uFF1F\u8FD9\u53EA\u4F1A\u5220\u9664\u8BE5\u5C42\u7EA7\u4E2D\u7684\u539F\u751F\u6280\u80FD\u3002","yeaft.plugins.skillManagementUpgradeRequired":"\u6B64 Agent \u5FC5\u987B\u5347\u7EA7\u540E\u624D\u80FD\u521B\u5EFA\u6216\u79FB\u9664\u6280\u80FD\u3002","yeaft.plugins.skillManagementVersionUnknown":"\u6B64 Agent \u5C1A\u672A\u4E0A\u62A5\u6280\u80FD\u7BA1\u7406\u652F\u6301\u3002\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u540E\u518D\u521B\u5EFA\u6216\u79FB\u9664\u6280\u80FD\u3002","yeaft.plugins.skillScope":"\u5C42\u7EA7","yeaft.plugins.userScope":"\u7528\u6237\u7EA7","yeaft.plugins.projectScope":"\u9879\u76EE\u7EA7","yeaft.plugins.userScopeDescription":"\u5BF9\u8BE5 Agent \u8FD0\u884C\u7684\u6240\u6709\u9879\u76EE\u53EF\u7528\u3002","yeaft.plugins.projectScopeDescription":"\u53EA\u5BF9\u5F53\u524D\u9879\u76EE\u53EF\u7528\uFF0C\u5E76\u8986\u76D6\u540C\u540D\u7528\u6237\u7EA7\u6280\u80FD\u3002","yeaft.plugins.projectScopeUnavailable":"\u8BF7\u9009\u62E9\u5E26\u9879\u76EE\u76EE\u5F55\u7684 Session\uFF0C\u624D\u80FD\u7BA1\u7406\u9879\u76EE\u7EA7\u6280\u80FD\u3002","yeaft.plugins.skillName":"\u540D\u79F0","yeaft.plugins.skillDescriptionLabel":"\u8BF4\u660E","yeaft.plugins.skillTrigger":"\u89E6\u53D1\u8BCD\uFF08\u53EF\u9009\uFF09","yeaft.plugins.skillInstructions":"\u6307\u4EE4","yeaft.plugins.resetSkillForm":"\u91CD\u7F6E","yeaft.plugins.skillTier.bundled":"\u5185\u7F6E \xB7 \u53EA\u8BFB","yeaft.plugins.skillTier.user":"\u7528\u6237\u7EA7","yeaft.plugins.skillTier.project":"\u9879\u76EE\u7EA7","yeaft.plugins.skillTier.project-claude":"Claude \u9879\u76EE \xB7 \u53EA\u8BFB","yeaft.plugins.skillTier.project-codex":"Codex \u9879\u76EE \xB7 \u53EA\u8BFB","yeaft.onboarding.ariaLabel":"Yeaft \u4E0A\u624B\u8BF4\u660E","yeaft.onboarding.topbarTitle":"\u5F00\u59CB\u4F7F\u7528 Yeaft","yeaft.onboarding.eyebrow":"Yeaft \u4E0A\u624B\u6307\u5357","yeaft.onboarding.title":"\u5148\u8FDE\u63A5 Agent\uFF0C\u518D\u5F00\u59CB\u4F1A\u8BDD","yeaft.onboarding.subtitle":"\u5728\u8D1F\u8D23\u6267\u884C\u5DE5\u5177\u7684\u673A\u5668\u4E0A\u76F4\u63A5\u8FD0\u884C\u4E0B\u9762\u7684\u547D\u4EE4\u3002agent secret \u5982\u679C\u4E0D\u5B58\u5728\uFF0C\u4F1A\u81EA\u52A8\u4E3A\u5F53\u524D\u8D26\u53F7\u751F\u6210\u3002","yeaft.onboarding.createSession":"\u521B\u5EFA\u6216\u6062\u590D Session","yeaft.onboarding.secretLoading":"\u6B63\u5728\u751F\u6210 agent secret\u2026","yeaft.onboarding.secretError":"\u52A0\u8F7D agent secret \u5931\u8D25\u3002","yeaft.onboarding.secretPending":"<\u6B63\u5728\u52A0\u8F7D-agent-secret>","yeaft.onboarding.installTitle":"\u5B89\u88C5\u5E76\u8FDE\u63A5 Agent","yeaft.onboarding.installDesc":"\u5728\u76EE\u6807\u673A\u5668\u8FD0\u884C\u4E00\u6761\u547D\u4EE4\uFF0C\u5B89\u88C5\u6240\u9700\u73AF\u5883\u3001\u521B\u5EFA\u79C1\u6709\u5B9E\u4F8B\u5E76\u8FDE\u63A5\u5F53\u524D server\u3002","yeaft.onboarding.connectTitle":"\u8FDE\u63A5\u8FD9\u4E2A Agent","yeaft.onboarding.connectDesc":"\u5B89\u88C5\u5668\u4F1A\u4F7F\u7528\u5F53\u524D server URL \u548C\u81EA\u52A8\u751F\u6210\u7684 secret\u3002","yeaft.restore.modal.empty":"\u6B64\u76EE\u5F55\u4E0B\u6CA1\u6709 yeaft session","yeaft.restore.modal.scanError":"\u626B\u63CF\u5931\u8D25: {message}","yeaft.restore.modal.restoreError":"\u6062\u590D\u5931\u8D25: {message}","settings.llm.noAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent \u4EE5\u7BA1\u7406 LLM \u914D\u7F6E\u3002","settings.llm.agentOffline":"Agent \u5F53\u524D\u79BB\u7EBF\uFF0C\u65E0\u6CD5\u52A0\u8F7D LLM \u914D\u7F6E\u3002\u8BF7\u7B49\u5F85 Agent \u4E0A\u7EBF\u540E\u91CD\u8BD5\u3002","settings.llm.loading":"\u6B63\u5728\u52A0\u8F7D\u914D\u7F6E...","settings.llm.loadError":"\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25","settings.llm.configureAgent":"\u914D\u7F6E\u5F53\u524D Agent \u7684 LLM","settings.llm.configureMenu":"\u8BBE\u7F6E LLM","settings.llm.simpleCopilotTitle":"\u63A8\u8350\uFF1AGitHub Copilot","settings.llm.useGitHubCopilot":"\u4F7F\u7528 GitHub Copilot","settings.llm.refreshingModels":"\u6B63\u5728\u5237\u65B0\u6A21\u578B...","settings.llm.managedCopilotTitle":"\u6258\u7BA1\u7684 GitHub Copilot","settings.llm.managedCopilotDesc":"Base URL\u3001\u8BA4\u8BC1\u3001\u6A21\u578B\u76EE\u5F55\u548C\u6BCF\u4E2A\u6A21\u578B\u7684 API \u534F\u8BAE\u90FD\u81EA\u52A8\u7BA1\u7406\u3002Claude \u6A21\u578B\u8D70 Anthropic Messages\uFF1BGPT/o \u6A21\u578B\u8D70 OpenAI Responses\u3002","settings.llm.providersTitle":"\u670D\u52A1\u5546","settings.llm.testFailed":"\u8FDE\u63A5\u6D4B\u8BD5\u5931\u8D25","settings.llm.saveSuccess":"LLM \u8BBE\u7F6E\u5DF2\u4FDD\u5B58","settings.llm.saveFailed":"\u4FDD\u5B58 LLM \u8BBE\u7F6E\u5931\u8D25","settings.llm.presets.title":"\u5FEB\u901F\u914D\u7F6E","settings.llm.providersDesc":"\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\uFF0C\u4FDD\u5B58\u540E\u5373\u53EF\u5728 Session \u4E2D\u4F7F\u7528\u3002","settings.llm.agentProviders":"\u5F53\u524D agent providers","settings.llm.agentBadge":"\u5F53\u524D agent","settings.llm.addProvider":"\u6DFB\u52A0\u670D\u52A1\u5546","settings.llm.addFromPreset":"\u4ECE\u76EE\u5F55\u6DFB\u52A0","settings.llm.preset.title":"\u670D\u52A1\u5546\u76EE\u5F55\uFF08models.dev\uFF09","settings.llm.preset.refresh":"\u5237\u65B0\u76EE\u5F55","settings.llm.preset.loading":"\u52A0\u8F7D\u76EE\u5F55\u2026","settings.llm.preset.empty":"\u76EE\u5F55\u4E3A\u7A7A\u3002","settings.llm.preset.pickProvider":"\u5728\u5DE6\u4FA7\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\u4EE5\u67E5\u770B\u6A21\u578B\u3002","settings.llm.preset.filterProviders":"\u8FC7\u6EE4\u670D\u52A1\u5546\u2026","settings.llm.preset.filterModels":"\u8FC7\u6EE4\u6A21\u578B\u2026","settings.llm.preset.selectAll":"\u5168\u9009","settings.llm.preset.selectNone":"\u6E05\u7A7A","settings.llm.preset.cancel":"\u53D6\u6D88","settings.llm.preset.add":"\u6DFB\u52A0\u5230\u670D\u52A1\u5546\u5217\u8868","settings.llm.preset.fetchedAt":"\u76EE\u5F55\u5DF2\u66F4\u65B0 {minutes} \u5206\u949F","settings.llm.addModel":"\u6DFB\u52A0\u6A21\u578B","settings.llm.removeModel":"\u79FB\u9664\u6A21\u578B","settings.llm.providerName":"\u540D\u79F0","settings.llm.providerNamePlaceholder":"\u4F8B\u5982 my-proxy","settings.llm.baseUrl":"Base URL","settings.llm.baseUrlPlaceholder":"\u4F8B\u5982 http://localhost:6628/v1","settings.llm.apiKey":"API Key","settings.llm.apiKeyPlaceholder":"\u8F93\u5165 API Key","settings.llm.protocol":"\u534F\u8BAE","settings.llm.protocolOpenAI":"OpenAI \u517C\u5BB9","settings.llm.protocolOpenAIResponses":"OpenAI Responses (GPT-5)","settings.llm.protocolAnthropic":"Anthropic \u539F\u751F","settings.llm.protocolHint.anthropic":"Claude \u539F\u751F Messages API\u3002","settings.llm.protocolHint.openai":"Chat Completions /v1/chat/completions \u2014 GPT-4 \u53CA\u5927\u591A\u6570\u517C\u5BB9\u4EE3\u7406\u3002","settings.llm.protocolHint.openaiResponses":"Responses API /v1/responses \u2014 GPT-5 \u7CFB\u5217\u5FC5\u987B\u3002","settings.llm.modelCtxPlaceholder":"\u4E0A\u4E0B\u6587","settings.llm.modelMaxPlaceholder":"\u8F93\u51FA","settings.llm.models":"\u5019\u9009\u6A21\u578B ID","settings.llm.modelsPlaceholder":"\u6A21\u578B ID\uFF0C\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\uFF0C\u4F8B\u5982 claude-sonnet-4-20250514, gpt-5","settings.llm.modelsHint":"\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\u3002","settings.llm.removeProvider":"\u79FB\u9664","settings.llm.modelSelectionTitle":"\u6A21\u578B\u9009\u62E9","settings.llm.modelSelectionDesc":"\u9009\u62E9\u9ED8\u8BA4\u6A21\u578B\u3002","settings.llm.primaryModel":"\u4E3B\u6A21\u578B","settings.llm.primaryModelDesc":"\u7528\u4E8E\u7528\u6237\u5BF9\u8BDD","settings.llm.fastModel":"\u5FEB\u901F\u6A21\u578B","settings.llm.fastModelDesc":"\u7528\u4E8E\u5185\u90E8\u4EFB\u52A1\uFF08\u8BB0\u5FC6\u3001\u603B\u7ED3\uFF09","settings.llm.noModels":"\u6682\u65E0\u53EF\u7528\u6A21\u578B\u3002\u8BF7\u5148\u6DFB\u52A0\u670D\u52A1\u5546\u3002","settings.llm.selectModel":"\u9009\u62E9\u6A21\u578B...","settings.llm.debugTitle":"\u8C03\u8BD5\u8F68\u8FF9","settings.llm.debugDesc":"\u6309 Agent \u5F00\u542F\u9010\u8F6E\u8C03\u8BD5\u8F68\u8FF9\u6536\u96C6\uFF08\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3001LLM \u8C03\u7528\u3001\u5DE5\u5177\u8F7D\u8377\uFF09\u3002","settings.llm.enableDebug":"\u542F\u7528\u8C03\u8BD5\u8F68\u8FF9","settings.llm.save":"\u4FDD\u5B58\u66F4\u6539","settings.llm.saving":"\u4FDD\u5B58\u4E2D...","settings.llm.saved":"\u914D\u7F6E\u5DF2\u4FDD\u5B58","settings.llm.savedRefreshWarning":"\u914D\u7F6E\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u5B9E\u65F6\u6A21\u578B\u76EE\u5F55\u5237\u65B0\u5931\u8D25\uFF1A{error}","settings.llm.unsavedChanges":"\u6709\u672A\u4FDD\u5B58\u7684\u66F4\u6539","settings.llm.confirmRemoveProvider":"\u786E\u5B9A\u79FB\u9664\u6B64\u670D\u52A1\u5546\uFF1F","settings.llm.setupTitle":"\u8FDE\u63A5\u6A21\u578B","settings.llm.setupDesc":"\u63A8\u8350\u4F7F\u7528 GitHub Copilot\uFF1B\u4E5F\u53EF\u4EE5\u6DFB\u52A0\u81EA\u5DF1\u7684 API \u670D\u52A1\u5546\u3002","settings.llm.providerSectionHint":"\u53EA\u4FDD\u7559\u8FDE\u63A5\u6A21\u578B\u5FC5\u9700\u7684\u4FE1\u606F\u3002","settings.tabs.dashboard":"\u4EEA\u8868\u677F","settings.dashboard.totalUsers":"\u603B\u7528\u6237\u6570","settings.dashboard.onlineUsers":"\u5728\u7EBF\u7528\u6237","settings.dashboard.activeUsers":"\u6D3B\u8DC3\u7528\u6237","settings.dashboard.onlineAgents":"\u5728\u7EBFAgent","settings.dashboard.totalSessions":"\u603B\u4F1A\u8BDD\u6570","settings.dashboard.todayActive":"\u4ECA\u65E5\u6D3B\u8DC3","settings.dashboard.todayMessages":"\u4ECA\u65E5\u6D88\u606F","settings.dashboard.todayUserTurns":"\u4ECA\u65E5\u7528\u6237 Turn","settings.dashboard.totalTokens":"\u603B Token","settings.dashboard.tokenAccuracy":"\u6765\u81EA\u6A21\u578B\u670D\u52A1\u5546\u8FD4\u56DE\u7684\u5B9E\u9645\u7528\u91CF\uFF1B\u4ECE\u542F\u7528\u6309\u7528\u6237 Token \u7EDF\u8BA1\u7684\u7248\u672C\u5F00\u59CB\u7D2F\u8BA1\uFF0C\u4E14\u4E0D\u5305\u542B\u5FC3\u8DF3\u3002","settings.dashboard.agentTurns":"Agent Turn","settings.dashboard.agentSessions":"Agent Session","settings.dashboard.turns":"Turn","settings.dashboard.tokens":"Token","settings.dashboard.inputTokens":"\u8F93\u5165","settings.dashboard.outputTokens":"\u8F93\u51FA","settings.dashboard.cacheTokens":"\u7F13\u5B58","settings.dashboard.today":"\u4ECA\u5929","settings.dashboard.thisWeek":"\u672C\u5468","settings.dashboard.thisMonth":"\u672C\u6708","settings.dashboard.all":"\u5168\u90E8","settings.dashboard.general":"\u5E38\u89C4","settings.dashboard.detailed":"\u8BE6\u7EC6\u4FE1\u606F","settings.dashboard.users":"\u7528\u6237","settings.dashboard.agents":"Agent","settings.dashboard.time":"\u65F6\u95F4","settings.dashboard.active":"\u6D3B\u8DC3","settings.dashboard.inactive":"\u672A\u6D3B\u8DC3","settings.dashboard.activeOnly":"\u4EC5\u6D3B\u8DC3","settings.dashboard.inactiveOnly":"\u4EC5\u672A\u6D3B\u8DC3","settings.dashboard.userUsage":"\u7528\u6237\u7528\u91CF","settings.dashboard.refresh":"\u5237\u65B0","settings.dashboard.name":"\u540D\u79F0","settings.dashboard.messages":"\u6D88\u606F\u6570","settings.dashboard.userTurns":"\u7528\u6237 Turn \u6570","settings.dashboard.sessions":"\u4F1A\u8BDD\u6570","settings.dashboard.requests":"\u8BF7\u6C42\u6570","settings.dashboard.traffic":"\u6D41\u91CF","settings.dashboard.lastTurnCompleted":"\u6700\u540E Turn \u7ED3\u675F\u65F6\u95F4","settings.dashboard.status":"\u72B6\u6001","settings.dashboard.latency":"\u5EF6\u8FDF","settings.dashboard.version":"\u7248\u672C","settings.dashboard.owner":"\u6240\u6709\u8005","settings.dashboard.role":"\u89D2\u8272","settings.dashboard.agent":"Agent","settings.dashboard.online":"\u5728\u7EBF","settings.dashboard.offline":"\u79BB\u7EBF","settings.dashboard.noAgents":"\u6682\u65E0\u6CE8\u518C Agent","settings.dashboard.noUserData":"\u6682\u65E0\u7528\u6237\u6570\u636E","settings.dashboard.noOnlineUsers":"\u6682\u65E0\u5728\u7EBF\u7528\u6237","settings.dashboard.loading":"\u52A0\u8F7D\u4E2D...","settings.dashboard.error":"\u6570\u636E\u52A0\u8F7D\u5931\u8D25","settings.dashboard.ago":"{time}\u524D","settings.dashboard.loadMore":"\u52A0\u8F7D\u66F4\u591A\uFF08\u5269\u4F59 {remaining} \u6761\uFF09","workbench.title":"Workbench","workbench.openItems":"\u5DF2\u6253\u5F00\u7684 Workbench \u9879\u76EE","workbench.addItem":"\u6DFB\u52A0 Workbench \u9879\u76EE","workbench.addItemHint":"\u4F7F\u7528 + \u6253\u5F00\u6587\u4EF6\u3001\u7EC8\u7AEF\u3001Git \u6216\u6D4F\u89C8\u5668\u3002","workbench.closeItem":"\u5173\u95ED {name}","workbench.chooseCapability":"\u9009\u62E9\u80FD\u529B","workbench.chooseCapabilityHint":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u5177\u5F00\u59CB\u4F7F\u7528\uFF1B\u5DF2\u6253\u5F00\u7684\u5DE5\u5177\u4F1A\u4FDD\u7559\u5728\u6807\u7B7E\u9875\u4E2D\u3002","workbench.terminal":"\u7EC8\u7AEF","workbench.terminalDescription":"\u5728\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u8FD0\u884C\u547D\u4EE4\u5E76\u7BA1\u7406\u7EC8\u7AEF\u5206\u5C4F\u3002","workbench.git":"Git","workbench.gitDescription":"\u67E5\u770B\u4ED3\u5E93\u72B6\u6001\u3001\u4EE3\u7801\u5DEE\u5F02\u548C\u53D8\u66F4\u6587\u4EF6\u3002","workbench.files":"\u6587\u4EF6","workbench.filesDescription":"\u6D4F\u89C8\u3001\u9884\u89C8\u548C\u7F16\u8F91\u6240\u9009 Agent \u4E0A\u7684\u6587\u4EF6\u3002","workbench.browser":"\u6D4F\u89C8\u5668","workbench.browserDescription":"\u901A\u8FC7\u5B9E\u65F6 WebRTC \u753B\u9762\u67E5\u770B Agent \u672C\u5730\u6D4F\u89C8\u5668\u3002","workbench.available":"\u53EF\u7528","workbench.enableRequired":"\u9700\u8981\u542F\u7528","workbench.unavailable":"\u5F53\u524D Agent \u4E0D\u53EF\u7528","workbench.capabilityUnavailable":"\u6240\u9009 Agent \u672A\u63D0\u4F9B\u6B64\u80FD\u529B\u3002","workbench.browserUnavailable":"\u6D4F\u89C8\u5668\u5DF2\u88AB\u7BA1\u7406\u5458\u5173\u95ED\uFF0C\u6216\u5F53\u524D Agent \u4E0D\u652F\u6301\u3002\u8BF7\u5347\u7EA7 Agent\uFF0C\u6216\u8BA9\u7BA1\u7406\u5458\u5F00\u542F\u6D4F\u89C8\u5668\u8DEF\u7531\u3002","workbench.browserReadyHint":"\u8F93\u5165\u5730\u5740\u4EE5\u542F\u52A8\u9694\u79BB\u7684 Agent \u672C\u5730\u6D4F\u89C8\u5668\u3002\u70B9\u51FB\u5B9E\u65F6\u753B\u9762\u540E\u53EF\u4F7F\u7528\u9F20\u6807\u548C\u952E\u76D8\u4EA4\u4E92\u3002","workbench.browserStart":"\u542F\u52A8\u6D4F\u89C8\u5668","workbench.browserAddressLabel":"\u6D4F\u89C8\u5668\u5730\u5740","workbench.browserAddressPlaceholder":"example.com","workbench.browserAddressInvalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684 HTTP \u6216 HTTPS \u5730\u5740\u3002","workbench.browserInteractionUnavailable":"\u6D4F\u89C8\u5668\u8F93\u5165\u94FE\u8DEF\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u7B49\u5F85 WebRTC \u8FDE\u63A5\u540E\u91CD\u8BD5\u3002","workbench.browserGo":"\u524D\u5F80","workbench.browserStarting":"\u6B63\u5728\u542F\u52A8 Agent \u672C\u5730\u6D4F\u89C8\u5668\u2026","workbench.browserConnecting":"\u6B63\u5728\u8FDE\u63A5\u5B9E\u65F6 WebRTC \u753B\u9762\u2026","workbench.browserIceServersMissing":"\u6D4F\u89C8\u5668\u753B\u9762\u65E0\u6CD5\u8FDE\u63A5\u5F53\u524D Agent\uFF0C\u4E14 Server \u672A\u914D\u7F6E STUN \u6216 TURN \u670D\u52A1\u3002\u8BF7\u8BA9\u7BA1\u7406\u5458\u914D\u7F6E Browser ICE/TURN \u540E\u91CD\u8BD5\u3002","workbench.browserIceConnectionFailed":"\u6D4F\u89C8\u5668 WebRTC \u8FDE\u63A5\u5931\u8D25\u3002\u8BF7\u68C0\u67E5\u5DF2\u914D\u7F6E\u7684 TURN \u670D\u52A1\u662F\u5426\u80FD\u88AB Web \u6D4F\u89C8\u5668\u548C Agent \u540C\u65F6\u8BBF\u95EE\uFF0C\u7136\u540E\u91CD\u8BD5\u3002","workbench.browserPeerAttachTimeout":"\u8FDE\u63A5\u6D4F\u89C8\u5668 WebRTC \u753B\u9762\u8D85\u65F6\u3002\u8BF7\u68C0\u67E5 Browser ICE/TURN \u8FDE\u901A\u6027\uFF0C\u7136\u540E\u91CD\u8BD5\u3002","workbench.browserEnd":"\u7ED3\u675F\u6D4F\u89C8\u5668","workbench.browserVideoLabel":"Agent \u6D4F\u89C8\u5668\u5B9E\u65F6\u753B\u9762","workbench.browserInputLabel":"\u6D4F\u89C8\u5668\u952E\u76D8\u8F93\u5165","workbench.browserStatusConnecting":"\u8FDE\u63A5\u4E2D","workbench.browserProtocolUnavailable":"\u5F53\u524D Server \u8FDE\u63A5\u4E0D\u652F\u6301 Browser Runtime \u534F\u8BAE\u3002","workbench.browserChecking":"\u6B63\u5728\u68C0\u67E5\u6240\u9009 Agent \u7684 Browser Runtime\u2026","workbench.browserPlatformUnsupported":"\u6240\u9009 Agent \u65E0\u6CD5\u8FD0\u884C\u5F53\u524D Browser Runtime \u6570\u636E\u94FE\u8DEF\u3002","workbench.browserSetupTitle":"\u542F\u7528\u6D4F\u89C8\u5668","workbench.browserOptionalInstall":"\u6D4F\u89C8\u5668\u9700\u8981\u5728\u5F53\u524D Agent \u5B89\u88C5\u56FA\u5B9A\u7248\u672C Chrome for Testing\u3002\u542F\u7528\u540E\u5C06\u4E0B\u8F7D\u7EA6 {size}\uFF0C\u6821\u9A8C\u5E76\u5B89\u88C5\u7248\u672C {build}\uFF0C\u7136\u540E\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u3002","workbench.browserInstallDiskNote":"\u70B9\u51FB\u201C\u542F\u7528\u6D4F\u89C8\u5668\u201D\u524D\u4E0D\u4F1A\u4E0B\u8F7D\u4EFB\u4F55\u5185\u5BB9\uFF1B\u6D4F\u89C8\u5668\u6587\u4EF6\u53EA\u5B58\u653E\u5728\u5F53\u524D Agent instance \u7684\u6570\u636E\u76EE\u5F55\u3002","workbench.browserInstallAction":"\u542F\u7528\u6D4F\u89C8\u5668\uFF08{size}\uFF09","workbench.browserInstalling":"\u6B63\u5728\u542F\u7528\u6D4F\u89C8\u5668\uFF1A\u4E0B\u8F7D\u5E76\u6821\u9A8C Chrome for Testing {build}\u2026","workbench.browserInstallKeepOpen":"\u53EF\u4EE5\u79BB\u5F00\u6B64\u9762\u677F\u3002\u518D\u6B21\u6253\u5F00\u6D4F\u89C8\u5668\u4F1A\u6062\u590D\u663E\u793A\u5F53\u524D\u5B89\u88C5\u72B6\u6001\uFF0C\u4E0D\u4F1A\u91CD\u590D\u4E0B\u8F7D\u3002","workbench.browserInstallProgressLabel":"\u6D4F\u89C8\u5668\u4E0B\u8F7D\u8FDB\u5EA6","workbench.browserInstallProgress":"\u5DF2\u4E0B\u8F7D {downloaded} / {total}","workbench.browserInstalledEnable":"\u6D4F\u89C8\u5668\u6587\u4EF6\u5DF2\u7ECF\u5B89\u88C5\u3002\u542F\u7528\u6D4F\u89C8\u5668\u5E76\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u5373\u53EF\u4F7F\u7528\u3002","workbench.browserEnableAction":"\u542F\u7528\u6D4F\u89C8\u5668","workbench.browserEnabling":"\u6B63\u5728\u5B8C\u6210\u8BBE\u7F6E\u5E76\u68C0\u67E5\u5A92\u4F53\u94FE\u8DEF\u2026","workbench.browserStatusInstalling":"\u5B89\u88C5\u4E2D","workbench.browserStatusProbing":"\u63A2\u6D4B\u4E2D","workbench.backToCapabilities":"\u8FD4\u56DE\u80FD\u529B\u5217\u8868","workbench.closeCapability":"\u5173\u95ED\u5F53\u524D\u80FD\u529B","workbench.maximize":"\u6700\u5927\u5316\u9762\u677F","workbench.restore":"\u8FD8\u539F\u9762\u677F","workbench.collapse":"\u6536\u8D77\u9762\u677F","theme.switchToLight":"\u5207\u6362\u5230\u6D45\u8272\u4E3B\u9898","theme.switchToDark":"\u5207\u6362\u5230\u6DF1\u8272\u4E3B\u9898","theme.toLight":"\u5207\u6362\u5230\u6D45\u8272\u4E3B\u9898","theme.toDark":"\u5207\u6362\u5230\u6DF1\u8272\u4E3B\u9898","terminal.splitH":"\u6C34\u5E73\u5206\u5C4F\uFF08\u5DE6\u53F3\uFF09","terminal.splitV":"\u5782\u76F4\u5206\u5C4F\uFF08\u4E0A\u4E0B\uFF09","terminal.close":"\u5173\u95ED\u5F53\u524D\u7EC8\u7AEF","terminal.autoCreate":"\u6253\u5F00\u7EC8\u7AEF\u80FD\u529B\u65F6\u5C06\u81EA\u52A8\u521B\u5EFA\u7EC8\u7AEF","terminal.xtermError":"xterm.js \u672A\u52A0\u8F7D\uFF0C\u8BF7\u5237\u65B0\u9875\u9762","terminal.xtermNotLoaded":"xterm.js \u672A\u52A0\u8F7D\uFF0C\u8BF7\u5237\u65B0\u9875\u9762","terminal.mountError":"\u7EC8\u7AEF\u5BB9\u5668\u6302\u8F7D\u5931\u8D25","terminal.mountFailed":"\u7EC8\u7AEF\u5BB9\u5668\u6302\u8F7D\u5931\u8D25","terminal.createError":"\u7EC8\u7AEF\u521B\u5EFA\u5931\u8D25","terminal.createFailed":"\u7EC8\u7AEF\u521B\u5EFA\u5931\u8D25","terminal.error":"\u7EC8\u7AEF\u9519\u8BEF","git.selectFolder":"\u9009\u62E9\u6587\u4EF6\u5939","git.repoPath":"\u8F93\u5165 Git \u4ED3\u5E93\u8DEF\u5F84...","git.repoPathPlaceholder":"\u8F93\u5165 Git \u4ED3\u5E93\u8DEF\u5F84...","git.workDir":"Git \u5DE5\u4F5C\u76EE\u5F55","git.loadStatus":"\u52A0\u8F7D Git \u72B6\u6001","git.loading":"\u52A0\u8F7D Git \u72B6\u6001...","git.loadingStatus":"\u52A0\u8F7D Git \u72B6\u6001...","git.clean":"\u5DE5\u4F5C\u533A\u5E72\u51C0\uFF0C\u65E0\u53D8\u66F4","git.cleanWorkDir":"\u5DE5\u4F5C\u533A\u5E72\u51C0\uFF0C\u65E0\u53D8\u66F4","git.selectAgent":"\u9009\u62E9 Agent \u540E\u52A0\u8F7D Git \u72B6\u6001","git.selectAgentFirst":"\u9009\u62E9 Agent \u540E\u52A0\u8F7D Git \u72B6\u6001","git.workItemRootRequired":"\u6B64\u5DE5\u4F5C\u9879\u4F7F\u7528\u4ED3\u5E93\u5B50\u76EE\u5F55\uFF0C\u65E0\u6CD5\u5728\u6B64\u64CD\u4F5C Git\u3002\u6587\u4EF6\u548C\u7EC8\u7AEF\u4ECD\u53EF\u4F7F\u7528\uFF1BGit \u64CD\u4F5C\u9700\u8981\u5DE5\u4F5C\u9879\u4EE5\u4ED3\u5E93\u6839\u76EE\u5F55\u4E3A\u5DE5\u4F5C\u76EE\u5F55\u3002","git.diffOnly":"\u53EA\u770B\u5DEE\u5F02","git.fullFile":"\u770B\u5168\u6587","git.zoomIn":"\u653E\u5927\u5B57\u4F53","git.zoomOut":"\u7F29\u5C0F\u5B57\u4F53","git.loadingDiff":"\u52A0\u8F7D Diff...","git.clickToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5DEE\u5F02","git.clickFileToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5DEE\u5F02","git.selectRepo":"\u9009\u62E9 Git \u4ED3\u5E93","git.noDiff":"(\u65E0\u5DEE\u5F02)","git.binaryFile":"(\u4E8C\u8FDB\u5236\u6587\u4EF6)","files.notLoaded":"\u672A\u52A0\u8F7D","files.newFile":"\u65B0\u5EFA\u6587\u4EF6","files.newFolder":"\u65B0\u5EFA\u6587\u4EF6\u5939","files.openFolder":"\u6253\u5F00\u6587\u4EF6\u5939","files.showTree":"\u663E\u793A\u6587\u4EF6\u5939","files.hideTree":"\u9690\u85CF\u6587\u4EF6\u5939","files.deleteSelected":"\u5220\u9664\u9009\u4E2D","files.moveSelected":"\u79FB\u52A8\u9009\u4E2D","files.enterPath":"\u8F93\u5165\u8DEF\u5F84...","files.searchFiles":"\u641C\u7D22\u6587\u4EF6... (Ctrl+P)","files.noMatch":"\u65E0\u5339\u914D\u7ED3\u679C","files.searching":"\u641C\u7D22\u4E2D...","files.loadingTree":"\u52A0\u8F7D\u4E2D...","files.emptyDir":"\u7A7A\u76EE\u5F55","files.loadingFile":"\u52A0\u8F7D\u6587\u4EF6...","files.readSendFailed":"\u6587\u4EF6\u8BF7\u6C42\u672A\u53D1\u9001\u3002\u8BF7\u68C0\u67E5\u8FDE\u63A5\uFF0C\u7136\u540E\u518D\u6B21\u70B9\u51FB\u6587\u4EF6\u91CD\u8BD5\u3002","files.readInterrupted":"\u6587\u4EF6\u8BFB\u53D6\u5DF2\u4E2D\u65AD\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\uFF0C\u7136\u540E\u518D\u6B21\u70B9\u51FB\u6587\u4EF6\u91CD\u8BD5\u3002","files.searchPlaceholder":"\u641C\u7D22...","files.replacePlaceholder":"\u66FF\u6362...","files.replace":"\u66FF\u6362","files.replaceAll":"\u5168\u90E8","files.replaceCurrent":"\u66FF\u6362\u5F53\u524D","files.replaceAllTitle":"\u5168\u90E8\u66FF\u6362","files.clickToView":"\u70B9\u51FB\u6587\u4EF6\u67E5\u770B\u5185\u5BB9","files.selectFolder":"\u9009\u62E9\u6587\u4EF6\u5939","files.enterFolderName":"\u8F93\u5165\u6587\u4EF6\u5939\u540D...","files.enterFileName":"\u8F93\u5165\u6587\u4EF6\u540D...","files.moveTarget":"\u8F93\u5165\u76EE\u6807\u76EE\u5F55\u8DEF\u5F84...","files.moveItems":"\u5C06 {count} \u4E2A\u9879\u76EE\u79FB\u52A8\u5230\u6307\u5B9A\u76EE\u5F55","files.workDir":"\u5DE5\u4F5C\u76EE\u5F55: {dir}","files.enterDirPath":"\u8F93\u5165\u76EE\u5F55\u8DEF\u5F84...","files.unsavedConfirm":'"{name}" \u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\uFF0C\u786E\u5B9A\u5173\u95ED\uFF1F',"files.unsavedBatchConfirm":"{count} \u4E2A\u6587\u4EF6\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\uFF0C\u786E\u5B9A\u5173\u95ED\uFF1F","files.showOpenTabs":"\u663E\u793A\u5DF2\u6253\u5F00\u7684\u6587\u4EF6","files.closeTab":"\u5173\u95ED {name}","files.closeTabAction":"\u5173\u95ED","files.closeOtherTabs":"\u5173\u95ED\u5176\u4ED6","files.closeTabsToLeft":"\u5173\u95ED\u5DE6\u4FA7","files.closeTabsToRight":"\u5173\u95ED\u53F3\u4FA7","files.closeAllTabs":"\u5168\u90E8\u5173\u95ED","files.deleteConfirm":'\u786E\u5B9A\u8981\u5220\u9664 "{name}" \u5417\uFF1F',"files.deleteDirHint":"\uFF08\u5C06\u5220\u9664\u6587\u4EF6\u5939\u53CA\u5176\u6240\u6709\u5185\u5BB9\uFF09","files.deleteSelectedConfirm":"\u786E\u5B9A\u8981\u5220\u9664\u9009\u4E2D\u7684 {count} \u4E2A\u9879\u76EE\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","files.findPrev":"\u4E0A\u4E00\u4E2A (Shift+Enter)","files.findNext":"\u4E0B\u4E00\u4E2A (Enter)","files.caseSensitive":"\u533A\u5206\u5927\u5C0F\u5199","files.regex":"\u6B63\u5219\u8868\u8FBE\u5F0F","files.unsaved":"\u672A\u4FDD\u5B58","files.clearSelection":"\u6E05\u9664\u9009\u62E9","files.rename":"\u91CD\u547D\u540D","files.copyHere":"\u590D\u5236","files.moveTo":"\u79FB\u52A8\u5230...","files.download":"\u4E0B\u8F7D","files.enterNewName":"\u8F93\u5165\u65B0\u540D\u79F0...","files.loadingPreview":"\u52A0\u8F7D\u9884\u89C8\u4E2D...","files.previewTooLarge":"\u8BE5\u6587\u4EF6\u5927\u5C0F\u4E3A {size} MB\uFF0C\u8D85\u8FC7 {limit} MB \u7684\u9884\u89C8\u4E0E\u4E0B\u8F7D\u4E0A\u9650\u3002","files.previewLoadFailed":"\u56FE\u7247\u9884\u89C8\u52A0\u8F7D\u5931\u8D25\u3002","files.videoPreviewLoadFailed":"\u89C6\u9891\u65E0\u6CD5\u64AD\u653E\uFF0C\u5F53\u524D\u6D4F\u89C8\u5668\u53EF\u80FD\u4E0D\u652F\u6301\u8BE5\u89C6\u9891\u7F16\u7801\u3002","files.videoStreamUnavailable":"\u5F53\u524D Agent \u6216 Session \u4E0D\u652F\u6301\u89C6\u9891\u6D41\u5F0F\u64AD\u653E\u3002","files.preview":"\u9884\u89C8","files.edit":"\u7F16\u8F91","files.pptxNotSupported":"PPTX \u672C\u5730\u9884\u89C8\u6682\u4E0D\u652F\u6301\uFF0C\u8BF7\u5728\u8BBE\u7F6E\u4E2D\u5207\u6362\u4E3A Office Online \u6A21\u5F0F\u3002","files.officePreviewMode":"Office \u9884\u89C8\u6A21\u5F0F","files.officeOnline":"Office Online","files.localRender":"\u672C\u5730\u6E32\u67D3","proxy.port":"\u7AEF\u53E3","proxy.label":"\u6807\u7B7E","proxy.add":"\u6DFB\u52A0\u7AEF\u53E3\u6620\u5C04","proxy.addPort":"\u6DFB\u52A0\u7AEF\u53E3\u6620\u5C04","proxy.enable":"\u70B9\u51FB\u542F\u7528","proxy.clickEnable":"\u70B9\u51FB\u542F\u7528","proxy.disable":"\u70B9\u51FB\u7981\u7528","proxy.clickDisable":"\u70B9\u51FB\u7981\u7528","proxy.openNewTab":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00","proxy.openInBrowser":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00","proxy.noMappings":"\u6682\u65E0\u7AEF\u53E3\u6620\u5C04","proxy.noPorts":"\u6682\u65E0\u7AEF\u53E3\u6620\u5C04","proxy.hint":"\u6DFB\u52A0\u7AEF\u53E3\u540E\uFF0C\u53EF\u901A\u8FC7\u4EE3\u7406 URL \u8BBF\u95EE agent \u673A\u5668\u4E0A\u7684\u672C\u5730\u670D\u52A1","proxy.noPortsHint":"\u6DFB\u52A0\u7AEF\u53E3\u540E\uFF0C\u53EF\u901A\u8FC7\u4EE3\u7406 URL \u8BBF\u95EE agent \u673A\u5668\u4E0A\u7684\u672C\u5730\u670D\u52A1","proxy.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","store.selectAgent":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A Agent","store.creatingConv":"\u6B63\u5728\u521B\u5EFA\u4F1A\u8BDD...","store.loadingHistory":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u5386\u53F2...","store.executionCancelled":"\u6267\u884C\u5DF2\u53D6\u6D88","store.loginFailed":"\u767B\u5F55\u5931\u8D25","store.convClosed":"\u4F1A\u8BDD\u5DF2\u5173\u95ED","store.convCreated":"\u65B0\u4F1A\u8BDD\u5DF2\u521B\u5EFA [{agent}]\uFF0C\u5DE5\u4F5C\u76EE\u5F55: {workDir}","store.convResumed":"\u5DF2\u6062\u590D\u4F1A\u8BDD [{agent}]: {sessionId}","roleplay.creating":"\u6B63\u5728\u521B\u5EFA \u89D2\u8272\u626E\u6F14 \u4F1A\u8BDD...","roleplay.working":"\u5DE5\u4F5C\u4E2D","roleplay.selectTeam":"\u9009\u62E9\u56E2\u961F\u6A21\u677F","roleplay.teamDev":"\u8F6F\u4EF6\u5F00\u53D1","roleplay.teamCustom":"\u81EA\u5B9A\u4E49","roleplay.editRoles":"\u7F16\u8F91\u89D2\u8272","roleplay.roleName":"\u89D2\u8272\u6807\u8BC6","roleplay.roleDisplayName":"\u663E\u793A\u540D\u79F0","roleplay.roleIcon":"\u56FE\u6807","roleplay.roleDesc":"\u89D2\u8272\u63CF\u8FF0","roleplay.rolePrompt":"\u89D2\u8272 Prompt","roleplay.removeRole":"\u79FB\u9664\u89D2\u8272","roleplay.addRole":"\u6DFB\u52A0\u89D2\u8272","roleplay.start":"\u542F\u52A8 \u89D2\u8272\u626E\u6F14","roleplay.sidebarTitle":"\u89D2\u8272\u626E\u6F14","roleplay.configTitle":"\u89D2\u8272\u626E\u6F14","roleplay.newSession":"\u65B0\u5EFA \u89D2\u8272\u626E\u6F14","roleplay.emptyHint":"\u53D1\u9001\u6D88\u606F\u5F00\u59CB\u591A\u89D2\u8272\u534F\u4F5C","roleplay.askingYou":"\u6B63\u5728\u63D0\u95EE","roleplay.language":"\u8BED\u8A00","roleplay.rolePreview":"\u89D2\u8272\u914D\u7F6E","roleplay.noAgents":"\u6CA1\u6709\u5728\u7EBF\u7684 Agent","roleplay.inputPlaceholder":"\u8F93\u5165\u6D88\u606F\u2026 \u4F7F\u7528 @ \u63D0\u53CA\u89D2\u8272","roleplay.existingSessions":"\u5DF2\u6709\u56E2\u961F","roleplay.restore":"\u6062\u590D","roleplay.restoring":"\u6B63\u5728\u6062\u590D \u89D2\u8272\u626E\u6F14 \u4F1A\u8BDD...","roleplay.createNew":"\u521B\u5EFA\u65B0\u56E2\u961F","expertPanel.title":"\u5E2E\u5E2E\u56E2","expertPanel.search":"\u641C\u7D22\u89D2\u8272\u6216 Action...","expertPanel.noResults":"\u6CA1\u6709\u5339\u914D\u7ED3\u679C","expertPanel.clearAll":"\u6E05\u7A7A","expertPanel.persona":"\u89D2\u8272\u4EBA\u8BBE","expertPanel.template":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00","expertPanel.templateHint":"\u7528\u6237\u5199\u4E86\u6587\u5B57\u65F6\uFF1A\u6B64\u524D\u7F00 + \u7528\u6237\u6587\u5B57 = \u6700\u7EC8\u53D1\u9001\u5185\u5BB9","expertPanel.defaultMsg":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt","expertPanel.defaultMsgHint":"\u7528\u6237\u4E0D\u5199\u6587\u5B57\u76F4\u63A5\u53D1\u9001\u65F6\uFF0C\u4F7F\u7528\u6B64\u5B8C\u6574 prompt","expertPanel.loading":"\u6B63\u5728\u52A0\u8F7D\u89D2\u8272\u5B9A\u4E49...","expertPanel.viewPrompt":"\u67E5\u770B\u63D0\u793A\u8BCD","expertPanel.customRoles":"\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.addRole":"\u6DFB\u52A0\u89D2\u8272","expertPanel.editRole":"\u7F16\u8F91\u89D2\u8272","expertPanel.deleteRole":"\u5220\u9664\u89D2\u8272","expertPanel.noCustomRoles":"\u6682\u65E0\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.createFirst":"\u521B\u5EFA\u7B2C\u4E00\u4E2A\u81EA\u5B9A\u4E49\u89D2\u8272","expertPanel.noActions":"\u6682\u65E0 Action","expertPanel.deleteConfirm":'\u786E\u5B9A\u8981\u5220\u9664\u89D2\u8272 "{name}" \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002',"expertPanel.deleteConfirmBtn":"\u5220\u9664","expertEditor.createTitle":"\u521B\u5EFA\u81EA\u5B9A\u4E49\u89D2\u8272","expertEditor.editTitle":"\u7F16\u8F91\u81EA\u5B9A\u4E49\u89D2\u8272","expertEditor.basicInfo":"\u57FA\u672C\u4FE1\u606F","expertEditor.roleName":"\u89D2\u8272\u540D\u79F0","expertEditor.roleNamePlaceholder":"\u5982\uFF1A\u6570\u636E\u5206\u6790\u5E08","expertEditor.roleTitle":"\u804C\u79F0","expertEditor.roleTitlePlaceholder":"\u5982\uFF1A\u9AD8\u7EA7\u6570\u636E\u5206\u6790\u5E08","expertEditor.fullName":"\u5168\u540D","expertEditor.fullNamePlaceholder":"\u53EF\u9009","expertEditor.titleEn":"\u82F1\u6587\u804C\u79F0","expertEditor.titleEnPlaceholder":"\u53EF\u9009","expertEditor.rolePrompt":"\u89D2\u8272 Prompt","expertEditor.messagePrefix":"\u6D88\u606F\u524D\u7F00\uFF08\u4E2D\u6587\uFF09","expertEditor.messagePrefixPlaceholder":"\u5982\uFF1A\u4F5C\u4E3A\u4E00\u540D\u8D44\u6DF1\u6570\u636E\u5206\u6790\u5E08\uFF0C","expertEditor.messagePrefixEn":"\u6D88\u606F\u524D\u7F00\uFF08\u82F1\u6587\uFF09","expertEditor.messagePrefixEnPlaceholder":"As a senior data analyst, ","expertEditor.actions":"Actions","expertEditor.addAction":"\u6DFB\u52A0 Action","expertEditor.removeAction":"\u79FB\u9664","expertEditor.actionName":"Action \u540D\u79F0","expertEditor.actionNamePlaceholder":"\u5982\uFF1A\u6570\u636E\u5206\u6790","expertEditor.actionNameEn":"\u82F1\u6587\u540D\u79F0","expertEditor.actionNameEnPlaceholder":"\u53EF\u9009","expertEditor.messageTemplate":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00\uFF08\u4E2D\u6587\uFF09","expertEditor.messageTemplatePlaceholder":"\u7528\u6237\u5199\u4E86\u6587\u5B57\u65F6\uFF0C\u62FC\u5728\u7528\u6237\u6587\u5B57\u524D\u9762\u53D1\u9001","expertEditor.messageTemplateEn":"\u6709\u8F93\u5165\u65F6 \xB7 \u6D88\u606F\u524D\u7F00\uFF08\u82F1\u6587\uFF09","expertEditor.messageTemplateEnPlaceholder":"Prepended to user text when user types something","expertEditor.defaultMessage":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt\uFF08\u4E2D\u6587\uFF09","expertEditor.defaultMessagePlaceholder":"\u7528\u6237\u4E0D\u5199\u6587\u5B57\u76F4\u63A5\u53D1\u9001\u65F6\uFF0C\u4F7F\u7528\u6B64\u5B8C\u6574\u5185\u5BB9","expertEditor.defaultMessageEn":"\u65E0\u8F93\u5165\u65F6 \xB7 \u5B8C\u6574 Prompt\uFF08\u82F1\u6587\uFF09","expertEditor.defaultMessageEnPlaceholder":"Used as-is when user sends without typing","expertEditor.cancel":"\u53D6\u6D88","expertEditor.save":"\u4FDD\u5B58","expertEditor.saving":"\u4FDD\u5B58\u4E2D...","subAgentPanel.title":"\u5B50\u4EE3\u7406","subAgentPanel.back":"\u8FD4\u56DE\u5217\u8868","subAgentPanel.running":"\u8FD0\u884C\u4E2D","subAgentPanel.completed":"\u5DF2\u5B8C\u6210","subAgentPanel.waitingMessages":"\u7B49\u5F85\u6D88\u606F...","subAgentPanel.toolCount":"{count} \u4E2A\u5DE5\u5177","subAgentPanel.toolSummary":"\u5DF2\u5B8C\u6210 {count} \u6B21\u5DE5\u5177\u8C03\u7528","subAgentPanel.empty":"\u6682\u65E0\u5B50\u4EE3\u7406","subAgentPanel.emptyHint":"\u5F53 Claude \u59D4\u6D3E\u4EFB\u52A1\u65F6\uFF0C\u5B50\u4EE3\u7406\u4F1A\u5728\u8FD9\u91CC\u663E\u793A","splitScreen.split":"\u5206\u5C4F","splitScreen.closePane":"\u5173\u95ED\u6B64\u9762\u677F","splitScreen.newChat":"\u65B0\u5EFA Chat","splitScreen.noSessions":"\u6682\u65E0\u4F1A\u8BDD","splitScreen.splitToPanel":"\u5728\u65B0\u9762\u677F\u4E2D\u6253\u5F00","splitScreen.selectFromSidebar":"\u4ECE\u5DE6\u4FA7\u9009\u62E9\u5BF9\u8BDD","yeaft.vp.library":"\u89D2\u8272\u5E93","yeaft.vp.createFirst":"+ \u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u89D2\u8272","yeaft.vp.empty.aria":"\u5C1A\u65E0\u89D2\u8272","yeaft.vp.avatar.aria":"{name} \u5934\u50CF","yeaft.vp.speaker.stateCauseAria":"\u72B6\u6001\u53D8\u66F4\uFF1A{cause}","yeaft.vp.status.thinking":"\u6B63\u5728\u601D\u8003\u2026","yeaft.vp.status.tool":"\u6B63\u5728\u4F7F\u7528 {name}","yeaft.vp.status.done":"\u5B8C\u6210 \xB7 {count} \u4E2A\u5DE5\u5177","yeaft.vp.status.aborted":"\u5DF2\u4E2D\u6B62","yeaft.vp.crud.title":"\u89D2\u8272\u5E93","yeaft.vp.crud.close":"\u5173\u95ED","yeaft.vp.crud.addNew":"+ \u65B0\u5EFA\u89D2\u8272","yeaft.vp.crud.empty":"\u8FD8\u6CA1\u6709\u89D2\u8272\u3002\u521B\u5EFA\u7B2C\u4E00\u4E2A\u89D2\u8272\u5F00\u59CB\u534F\u4F5C\u5427\u3002","yeaft.vp.crud.edit":"\u7F16\u8F91","yeaft.vp.crud.delete":"\u5220\u9664","yeaft.vp.crud.deleteConfirm":'\u5220\u9664 "{name}"\uFF1F\u4F1A\u4E00\u5E76\u5220\u9664\u78C1\u76D8\u4E0A\u7684 role.md \u6587\u4EF6\u3002',"yeaft.vp.crud.form.create":"\u521B\u5EFA\u89D2\u8272","yeaft.vp.crud.form.update":"\u7F16\u8F91\u89D2\u8272","yeaft.vp.crud.form.vpId":"\u89D2\u8272 ID","yeaft.vp.crud.form.vpId.tooltip":"\u53EA\u80FD\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001- \u548C _\uFF0C\u4E0D\u80FD\u4EE5 _ \u5F00\u5934\uFF0C\u4E0D\u80FD\u662F\u7EAF\u6570\u5B57\uFF0C\u4E0D\u80FD\u7528\u4FDD\u7559\u540D\uFF1Aall / user / system / everyone\u3002","yeaft.vp.crud.form.displayName":"\u663E\u793A\u540D\uFF08\u82F1\u6587\uFF09","yeaft.vp.crud.form.displayNameZh":"\u663E\u793A\u540D\uFF08\u4E2D\u6587\uFF09","yeaft.vp.crud.form.description":"\u80FD\u529B\u63CF\u8FF0\uFF08\u82F1\u6587\uFF09","yeaft.vp.crud.form.descriptionZh":"\u80FD\u529B\u63CF\u8FF0\uFF08\u4E2D\u6587\uFF09","yeaft.vp.crud.form.descriptionPlaceholder":"\u4F8B\u5982\uFF1AAPI design, migration planning, and compatibility reviews","yeaft.vp.crud.form.descriptionZhPlaceholder":"\u4F8B\u5982\uFF1AAPI \u8BBE\u8BA1\u3001\u8FC1\u79FB\u89C4\u5212\u4E0E\u517C\u5BB9\u6027\u8BC4\u5BA1","yeaft.vp.crud.form.role":"\u804C\u4F4D","yeaft.vp.crud.form.rolePlaceholder":"\u4F8B\u5982\uFF1A\u4EA7\u54C1\u7ECF\u7406","yeaft.vp.crud.form.traits":"\u7279\u8D28\u6807\u7B7E","yeaft.vp.crud.form.traitsHint":"\u7528\u82F1\u6587\u9017\u53F7\u5206\u9694\u7684\u77ED\u6807\u7B7E\uFF08\u4F8B\u5982\uFF1A\u597D\u5947, \u52A1\u5B9E\uFF09\u3002","yeaft.vp.crud.form.modelHint":"\u6A21\u578B\u504F\u597D","yeaft.vp.crud.form.modelHint.none":"\u2014 \u9ED8\u8BA4 \u2014","yeaft.vp.crud.form.modelHint.primary":"\u4E3B\u6A21\u578B","yeaft.vp.crud.form.modelHint.fast":"\u5FEB\u6A21\u578B","yeaft.vp.crud.form.persona":"\u4EBA\u8BBE\uFF08Markdown\uFF09","yeaft.vp.crud.form.personaPlaceholder":"\u63CF\u8FF0\u8FD9\u4E2A\u89D2\u8272\u5982\u4F55\u601D\u8003\u3001\u8868\u8FBE\u3001\u505A\u51B3\u7B56\u2026\u2026","yeaft.vp.crud.form.submit":"\u4FDD\u5B58","yeaft.vp.crud.form.cancel":"\u53D6\u6D88","yeaft.vp.crud.form.ok":"\u683C\u5F0F\u6B63\u786E","yeaft.vp.crud.form.idLocked":"\u521B\u5EFA\u540E\u89D2\u8272 ID \u4E0D\u53EF\u4FEE\u6539\u3002","yeaft.vp.crud.saving":"\u4FDD\u5B58\u4E2D\u2026\u2026","yeaft.vp.crud.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","yeaft.vp.crud.deleteFailed":"\u5220\u9664\u5931\u8D25\uFF1A{error}","yeaft.vp.crud.viewPrompt":"\u67E5\u770B prompt","yeaft.vp.crud.view.title":"VP \u63D0\u793A\u8BCD","yeaft.vp.crud.view.personaEmpty":"\uFF08\u672A\u5B9A\u4E49 persona \u6B63\u6587\uFF0C\u53EA\u6709\u57FA\u7840\u5143\u6570\u636E\uFF09","yeaft.vp.crud.view.back":"\u8FD4\u56DE","yeaft.vp.crud.view.editFromHere":"\u7F16\u8F91\u8BE5 VP","yeaft.vp.crud.view.removed":"\u8BE5 VP \u5DF2\u5728\u522B\u5904\u88AB\u5220\u9664\uFF0C\u8FD4\u56DE\u5217\u8868\u3002","yeaft.vp.crud.stockBadge":"\u9884\u88C5","yeaft.vp.crud.stockReadOnly":"\u9884\u88C5 VP \u968F agent \u51FA\u5382\uFF0C\u4E0D\u80FD\u7F16\u8F91\u6216\u5220\u9664\u3002","yeaft.vp.idError.empty_or_non_string":"\u89D2\u8272 ID \u4E0D\u80FD\u4E3A\u7A7A\u3002","yeaft.vp.idError.too_long":"\u89D2\u8272 ID \u592A\u957F\uFF08\u6700\u591A 40 \u5B57\u7B26\uFF09\u3002","yeaft.vp.idError.illegal_character":'\u53EA\u80FD\u4F7F\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001"-" \u548C "_"\u3002',"yeaft.vp.idError.underscore_prefix_reserved":'\u89D2\u8272 ID \u4E0D\u80FD\u4EE5 "_" \u5F00\u5934\uFF08\u9884\u7559\u7ED9\u7CFB\u7EDF\u89D2\u8272\uFF09\u3002',"yeaft.vp.idError.pure_digits":"\u89D2\u8272 ID \u4E0D\u80FD\u662F\u7EAF\u6570\u5B57\u3002","yeaft.vp.idError.reserved":"\u89D2\u8272 ID \u4E0D\u80FD\u7528\u4FDD\u7559\u540D\uFF08all / user / system / everyone\uFF09\u3002","yeaft.vp.idError.duplicate":"\u5DF2\u7ECF\u5B58\u5728\u540C ID \u7684\u89D2\u8272\u3002","yeaft.vp.idError.not_found":"\u8BE5 VP \u4E0D\u5B58\u5728\uFF0C\u53EF\u80FD\u5DF2\u88AB\u5220\u9664\u3002","yeaft.vp.idError.stock_readonly":"\u9884\u88C5 VP \u4E0D\u80FD\u7F16\u8F91\u6216\u5220\u9664\u3002","yeaft.vp.idError.unknown":"\u53D1\u751F\u672A\u77E5\u9519\u8BEF\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.vp.reason.personaEdit":"\u4EBA\u8BBE\u5DF2\u66F4\u65B0","yeaft.vp.reason.traitsEdit":"\u7279\u5F81\u5DF2\u66F4\u65B0","yeaft.vp.reason.manualReload":"\u5DF2\u91CD\u65B0\u8F7D\u5165","yeaft.vp.reason.fileRemoved":"\u5DF2\u79FB\u9664","yeaft.vp.reason.toast.updated":"{name}\uFF1A{reason}","yeaft.vp.reason.toast.removed":"{name} \u5DF2\u88AB\u79FB\u9664","yeaft.message.timeAria":"\u53D1\u9001\u4E8E {time}","yeaft.message.llmCall":"{count} \u6B21 LLM \u8C03\u7528","yeaft.message.llmCalls":"{count} \u6B21 LLM \u8C03\u7528","yeaft.message.tokenUsage":"\u603B\u8BA1 {total} \xB7 \u8F93\u5165 {input} \xB7 \u8F93\u51FA {output}","yeaft.user.youLabel":"\u6211","yeaft.session.sidebarTitle":"\u4F1A\u8BDD","yeaft.session.sidebarAria":"\u4F1A\u8BDD\u5217\u8868","yeaft.session.newButton":"+ \u65B0\u5EFA\u4F1A\u8BDD","yeaft.session.newButtonAria":"\u521B\u5EFA\u65B0\u4F1A\u8BDD","yeaft.session.empty":"\u6682\u65E0\u4F1A\u8BDD\u3002","yeaft.session.membersCount":"{count} \u4F4D\u6210\u5458","yeaft.session.oneMember":"1 \u4F4D\u6210\u5458","yeaft.session.noMembers":"\u7A7A\u4F1A\u8BDD \u2014 \u8BF7\u9080\u8BF7 VP","yeaft.session.defaultBadge":"\u9ED8\u8BA4","yeaft.session.defaultName":"\u9ED8\u8BA4\u4F1A\u8BDD","yeaft.session.moreActions":"\u66F4\u591A\u64CD\u4F5C","yeaft.session.archive":"\u5F52\u6863","yeaft.session.archiveConfirm":"\u5F52\u6863\u300C{name}\u300D\uFF1F\u7A0D\u540E\u53EF\u4ECE\u78C1\u76D8\u6062\u590D\u3002","yeaft.session.archivingEllipsis":"\u5F52\u6863\u4E2D\u2026","yeaft.session.delete":"\u5220\u9664","yeaft.session.deleteConfirm":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5C06\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\u53CA\u5176\u6240\u6709\u6570\u636E\uFF0C\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","yeaft.session.deletingEllipsis":"\u5220\u9664\u4E2D\u2026","yeaft.session.rename":"\u91CD\u547D\u540D","yeaft.session.copy":"\u590D\u5236\u4F1A\u8BDD","yeaft.session.forkFromTurn":"\u4ECE\u6B64\u8F6E\u5206\u53C9","yeaft.session.forkFromTurnHint":"\u590D\u5236\u622A\u81F3\u6B64\u6761\u56DE\u590D\u7684\u5386\u53F2\u5230\u65B0\u4F1A\u8BDD\uFF0C\u4E0D\u5305\u542B\u540E\u7EED\u6D88\u606F\u3002","yeaft.session.copying":"\u6B63\u5728\u590D\u5236\u4F1A\u8BDD\u2026","yeaft.session.copyComplete":"\u4F1A\u8BDD\u590D\u5236\u5B8C\u6210","yeaft.session.copyFailed":"\u65E0\u6CD5\u590D\u5236\u4F1A\u8BDD\uFF1A{message}","yeaft.session.openSettings":"\u8BBE\u7F6E","yeaft.session.removeFromList":"\u79FB\u9664","yeaft.session.manageMembers":"\u7BA1\u7406\u6210\u5458","yeaft.session.memberCount.one":"1 \u4F4D\u6210\u5458","yeaft.session.memberCount.other":"{count} \u4F4D\u6210\u5458","yeaft.session.renamePrompt":"\u4E3A\u300C{name}\u300D\u8F93\u5165\u65B0\u540D\u79F0\uFF1A","yeaft.session.renamingEllipsis":"\u91CD\u547D\u540D\u4E2D\u2026","yeaft.session.editModal.renameTitle":"\u91CD\u547D\u540D\u4F1A\u8BDD","yeaft.session.editModal.renameBody":"\u4E3A\u300C{name}\u300D\u9009\u62E9\u4E00\u4E2A\u65B0\u540D\u79F0\u3002","yeaft.session.editModal.renameSubmit":"\u4FDD\u5B58","yeaft.session.editModal.archiveTitle":"\u5F52\u6863\u4F1A\u8BDD","yeaft.session.editModal.archiveBody":"\u5F52\u6863\u300C{name}\u300D\uFF1F\u7A0D\u540E\u53EF\u4ECE\u78C1\u76D8\u6062\u590D\u3002","yeaft.session.editModal.archiveSubmit":"\u5F52\u6863","yeaft.session.editModal.deleteTitle":"\u5220\u9664\u4F1A\u8BDD","yeaft.session.editModal.deleteBody":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5C06\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\u53CA\u5176\u6240\u6709\u6570\u636E\uFF0C\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","yeaft.session.editModal.deleteSubmit":"\u5220\u9664","yeaft.session.editModal.newNameLabel":"\u65B0\u540D\u79F0","yeaft.session.editModal.cancel":"\u53D6\u6D88","yeaft.session.editModal.close":"\u5173\u95ED","yeaft.session.error.invalid_name":"\u4F1A\u8BDD\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","yeaft.session.error.duplicate":"\u8BE5\u4F1A\u8BDD id \u5DF2\u5B58\u5728\u3002","yeaft.session.error.not_found":"\u672A\u627E\u5230\u8BE5\u4F1A\u8BDD\u3002","yeaft.session.error.agent_offline":"\u8BF7\u8FDE\u63A5 Agent \u540E\u518D\u590D\u5236\u4F1A\u8BDD\u3002","yeaft.session.error.invalid_fork_boundary":"\u65E0\u6CD5\u5728\u5DF2\u4FDD\u5B58\u5386\u53F2\u4E2D\u51C6\u786E\u5B9A\u4F4D\u8FD9\u6761\u56DE\u590D\uFF0C\u8BF7\u5237\u65B0\u5386\u53F2\u540E\u91CD\u8BD5\u3002","yeaft.session.error.session_fork_from_turn_unsupported":"\u8BF7\u5347\u7EA7\u6B64 Agent \u540E\u518D\u4ECE\u6307\u5B9A\u8F6E\u6B21\u5206\u53C9\u3002","yeaft.session.error.fork_boundary_not_found":"\u5DF2\u4FDD\u5B58\u5386\u53F2\u4E2D\u6CA1\u6709\u8FD9\u6761\u56DE\u590D\uFF0C\u8BF7\u5237\u65B0\u5386\u53F2\u540E\u91CD\u8BD5\u3002","yeaft.session.error.ambiguous_fork_boundary":"\u6B64\u65E7\u8F6E\u6B21\u5305\u542B\u591A\u4E2A\u53D1\u8A00\u8005\uFF0C\u65E0\u6CD5\u5B89\u5168\u5730\u4ECE\u8FD9\u6761\u56DE\u590D\u5206\u53C9\u3002","yeaft.session.error.incomplete_fork_boundary":"\u6B64\u5904\u622A\u65AD\u4F1A\u62C6\u5F00\u5DE5\u5177\u8C03\u7528\u53CA\u5176\u7ED3\u679C\uFF0C\u8BF7\u9009\u62E9\u66F4\u665A\u7684\u5DF2\u5B8C\u6210\u56DE\u590D\u3002","yeaft.session.error.fork_pending":"\u6B63\u5728\u590D\u5236\u4F1A\u8BDD\uFF0C\u8BF7\u7A0D\u5019\u3002","yeaft.session.error.project_inheritance_failed":"\u526F\u672C\u5DF2\u521B\u5EFA\uFF0C\u4F46\u4FDD\u5B58 Project \u5F52\u5C5E\u5931\u8D25\u3002\u8BF7\u5728\u4FA7\u680F\u5C06\u65B0\u4F1A\u8BDD\u79FB\u5165\u539F Project\uFF0C\u4E0D\u8981\u91CD\u590D\u590D\u5236\u3002","yeaft.session.error.session_running":"\u8BF7\u7B49\u5F85\u8BE5\u4F1A\u8BDD\u7684\u5F53\u524D\u56DE\u590D\u5B8C\u6210\u540E\u518D\u590D\u5236\u3002","yeaft.session.error.default_not_in_roster":"\u9ED8\u8BA4 VP \u5FC5\u987B\u5728\u6210\u5458\u5217\u8868\u4E2D\u3002","yeaft.session.error.no_default_vp":"\u8BE5\u4F1A\u8BDD\u6CA1\u6709\u6210\u5458\uFF0C\u8BF7\u4ECE\u89D2\u8272\u5E93\u6DFB\u52A0 VP \u4EE5\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.error.reserved":"\u6240\u9009 id \u4E2D\u5305\u542B\u4FDD\u7559\u540D\uFF08all / user / system / everyone\uFF09\u3002","yeaft.session.error.unknown":"\u4F1A\u8BDD\u64CD\u4F5C\u5931\u8D25\uFF1A{message}","yeaft.session.error.timeout":"\u4F1A\u8BDD\u64CD\u4F5C\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5\u3002","yeaft.session.invite.title":"\u9080\u8BF7 VP","yeaft.session.invite.body":"\u300C{name}\u300D\u5F53\u524D\u4E3A\u7A7A\uFF0C\u8BF7\u4ECE\u89D2\u8272\u5E93\u6DFB\u52A0\u4E00\u4F4D VP \u4EE5\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.invite.openLibrary":"\u6253\u5F00\u89D2\u8272\u5E93","yeaft.session.invite.dismiss":"\u6682\u4E0D","yeaft.session.empty.title":"\u7A7A\u4F1A\u8BDD","yeaft.session.empty.hint":"\u300C{name}\u300D\u8FD8\u6CA1\u6709\u6210\u5458\u3002\u6DFB\u52A0\u4E00\u4F4D VP \u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002","yeaft.session.empty.cta":"\u7BA1\u7406\u6210\u5458","yeaft.session.members.title":"\u7BA1\u7406\u300C{name}\u300D\u7684\u6210\u5458","yeaft.session.members.aria":"\u6210\u5458\u7BA1\u7406","yeaft.session.members.close":"\u5173\u95ED","yeaft.session.members.done":"\u5B8C\u6210","yeaft.session.members.empty":"\u6682\u65E0\u53EF\u7528 VP \u2014 \u8BF7\u5148\u5230\u89D2\u8272\u5E93\u521B\u5EFA\u3002","yeaft.session.members.loading":"VP \u52A0\u8F7D\u4E2D\u2026","yeaft.session.members.defaultHint":"\u9ED8\u8BA4 VP\uFF08@\u63D0\u53CA\u7F3A\u7701\u65F6\u7531\u8BE5 VP \u5E94\u7B54\uFF09","yeaft.session.members.memberCount":"\u5DF2\u9009 {count} \u4F4D","yeaft.session.members.actionFailed":"\u64CD\u4F5C\u5931\u8D25\uFF1A{error}","yeaft.session.members.openLibrary":"\u6253\u5F00 VP \u5E93","yeaft.session.members.openLibraryHint":"\u5728 VP \u5E93\u53EF\u521B\u5EFA\u65B0 VP \u6216\u67E5\u770B VP \u7684 prompt\u3002","yeaft.session.announcement.label":"\u4F1A\u8BDD\u516C\u544A","yeaft.session.announcement.hintEmpty":"\u6682\u65E0\u516C\u544A \u2014 \u70B9\u51FB \u270F\uFE0F \u6DFB\u52A0\u3002","yeaft.session.announcement.emptyBody":"\u672A\u8BBE\u7F6E\u4F1A\u8BDD\u516C\u544A\u3002\u53EF\u4EE5\u5728\u8FD9\u91CC\u5199\u4E00\u6BB5\u7B80\u4ECB\uFF0C\u4F1A\u8BDD\u5185\u6240\u6709 VP \u5728\u6536\u5230\u6D88\u606F\u65F6\u90FD\u4F1A\u5728 system prompt \u9876\u90E8\u770B\u5230 \u2014 \u9002\u5408\u5199\u5171\u540C\u80CC\u666F\u3001\u89C4\u5219\u3001\u6216 CLAUDE.md \u5F0F\u7684\u6307\u5F15\u3002","yeaft.session.announcement.placeholder":"\u4E3A\u8FD9\u4E2A\u4F1A\u8BDD\u91CC\u7684\u6240\u6709 VP \u5199\u4E00\u6BB5\u5171\u4EAB\u7684\u7B80\u4ECB\u2026","yeaft.session.announcement.edit":"\u7F16\u8F91\u516C\u544A","yeaft.session.announcement.editTitle":"\u7F16\u8F91\u4F1A\u8BDD\u516C\u544A","yeaft.session.announcement.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.announcement.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","yeaft.session.announcement.openSettings":"\u6253\u5F00\u4F1A\u8BDD\u8BBE\u7F6E","yeaft.session.settings.title":"{name} \u2014 \u4F1A\u8BDD\u8BBE\u7F6E","yeaft.session.settings.short":"\u4F1A\u8BDD","yeaft.session.settings.close":"\u5173\u95ED","yeaft.session.settings.nav.session":"\u4F1A\u8BDD","yeaft.session.settings.nav.members":"\u6210\u5458","yeaft.session.settings.announcement.heading":"\u4F1A\u8BDD\u516C\u544A","yeaft.session.settings.announcement.help":"\u6CE8\u5165\u5230\u4F1A\u8BDD\u5185\u6BCF\u4E2A VP \u7684 system prompt \u9876\u90E8 \u2014 \u7C7B\u4F3C\u56E2\u961F\u5171\u4EAB\u7684 CLAUDE.md\u3002","yeaft.session.settings.members.heading":"\u6210\u5458","yeaft.session.settings.rename.heading":"\u91CD\u547D\u540D\u4F1A\u8BDD","yeaft.session.settings.rename.label":"\u65B0\u540D\u79F0","yeaft.session.settings.rename.save":"\u4FDD\u5B58\u540D\u79F0","yeaft.session.settings.rename.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.settings.workDir.heading":"\u5DE5\u4F5C\u76EE\u5F55","yeaft.session.settings.workDir.help":"\u4E0B\u4E2A\u56DE\u5408\u5C06\u4ECE\u6B64\u76EE\u5F55\u52A0\u8F7D\u9879\u76EE\u6587\u4EF6\u548C\u9879\u76EE\u6307\u4EE4\u3002\u4F1A\u8BDD\u5386\u53F2\u4ECD\u4FDD\u5B58\u5728 Agent \u6570\u636E\u76EE\u5F55\u4E2D\u3002","yeaft.session.settings.workDir.label":"\u8DEF\u5F84","yeaft.session.settings.workDir.placeholder":"/path/to/project","yeaft.session.settings.workDir.save":"\u4FDD\u5B58\u76EE\u5F55","yeaft.session.settings.workDir.saving":"\u4FDD\u5B58\u4E2D\u2026","yeaft.session.settings.workDir.saveFailed":"\u65E0\u6CD5\u4FDD\u5B58\u5DE5\u4F5C\u76EE\u5F55\uFF1A{error}","yeaft.session.settings.danger.heading":"\u5220\u9664\u4F1A\u8BDD","yeaft.session.settings.danger.deleteHelp":"\u8FD9\u4F1A\u6C38\u4E45\u5220\u9664\u8BE5\u4F1A\u8BDD\uFF0C\u79FB\u9664\u78C1\u76D8\u4E0A\u7684 session.json \u548C\u5168\u90E8\u6D88\u606F\u5386\u53F2\uFF0C\u4E0D\u53EF\u6062\u590D\u3002","yeaft.session.settings.danger.deleteBtn":"\u5220\u9664\u4F1A\u8BDD","yeaft.vp.mention.placeholder":"\u6309 id \u6216\u540D\u79F0\u641C\u7D22\u89D2\u8272\u2026","yeaft.vp.mention.noMatch":"\u6CA1\u6709\u5339\u914D\u7684\u89D2\u8272","yeaft.vp.mention.count":"\u5DF2 @{count} \u4EBA","yeaft.feature.reject.missing_group_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u672A\u6307\u5B9A\u4F1A\u8BDD\u3002","yeaft.feature.reject.missing_feature_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u4EFB\u52A1\u4E0A\u4E0B\u6587\u4E22\u5931\u3002","yeaft.feature.reject.missing_vp_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u672A\u8BBE\u7F6E\u53D1\u8A00\u8005\u3002","yeaft.feature.reject.invalid_vp_id":"\u53D1\u9001\u5931\u8D25\uFF1A\u53D1\u8A00\u8005 id \u975E\u6CD5\u3002","yeaft.feature.reject.empty_text":"\u53D1\u9001\u5931\u8D25\uFF1A\u5185\u5BB9\u4E3A\u7A7A\u3002","yeaft.feature.reject.text_too_long":"\u53D1\u9001\u5931\u8D25\uFF1A\u5185\u5BB9\u8FC7\u957F\uFF08\u4E0A\u9650 16 KiB\uFF09\u3002","yeaft.feature.reject.unknown":"\u53D1\u9001\u5931\u8D25\u3002","yeaft.feature.pill.label":"\u4EFB\u52A1","yeaft.feature.messageTime.aria":"\u53D1\u9001\u4E8E {time}","yeaft.vp.turnBlock.elapsedTitle":"\u672C\u8F6E turn \u5F00\u59CB\u81F3\u4ECA\u7684\u65F6\u95F4","yeaft.vp.turnBlock.retryingRequest":"\u54CD\u5E94\u505C\u6EDE\uFF0C\u6B63\u5728\u53D1\u8D77\u5168\u65B0\u8BF7\u6C42\uFF08{attempt}/{max}\uFF09","yeaft.vp.turnBlock.retryingContinue":"\u54CD\u5E94\u505C\u6EDE\uFF0C\u6B63\u5728\u7528\u5168\u65B0\u8BF7\u6C42\u7EED\u5199\uFF08{attempt}/{max}\uFF09","yeaft.sessionStatus.aria":"Session \u72B6\u6001","yeaft.sessionStatus.title":"Session \u72B6\u6001","yeaft.sessionStatus.announcement":"\u516C\u544A","yeaft.sessionStatus.announcementEmpty":"\u6682\u65E0\u516C\u544A","yeaft.sessionStatus.announcementAdd":"\u6DFB\u52A0\u516C\u544A","yeaft.sessionStatus.announcementEdit":"\u7F16\u8F91\u516C\u544A","yeaft.sessionStatus.vps":"VP","yeaft.sessionStatus.backgroundTasks":"\u540E\u53F0\u4EFB\u52A1","yeaft.sessionStatus.noLogPreview":"\u6682\u65E0\u65E5\u5FD7\u8F93\u51FA\u3002","yeaft.sessionStatus.task.subAgentStarted":"{name} \u5DF2\u542F\u52A8","yeaft.sessionStatus.task.subAgentStartedWithMission":"{name} \u5DF2\u542F\u52A8\uFF1A{mission}","yeaft.sessionStatus.task.subAgentStatus":"{name} \u72B6\u6001\uFF1A{status}","yeaft.sessionStatus.task.subAgentStatusUpdated":"{name} \u72B6\u6001\u5DF2\u66F4\u65B0","yeaft.sessionStatus.task.subAgentResult":"{name} \u7ED3\u679C\uFF1A{text}","yeaft.sessionStatus.task.subAgentProducedResult":"{name} \u5DF2\u4EA7\u751F\u7ED3\u679C","yeaft.sessionStatus.task.subAgentUsedTool":"{name} \u8C03\u7528\u4E86 {tool}","yeaft.sessionStatus.task.subAgentFinishedTool":"{name} \u5B8C\u6210\u4E86 {tool}","yeaft.sessionStatus.task.subAgentUsage":"{name} \u4F7F\u7528\u4E86 {tokens} tokens","yeaft.sessionStatus.task.subAgentEvent":"{name}\uFF1A{text}","yeaft.sessionStatus.task.subAgentUserPrompt":"\u4F60\uFF1A{text}","yeaft.sessionStatus.task.subAgentToolSummary":"\u5DF2\u5B8C\u6210 {count} \u6B21\u5DE5\u5177\u8C03\u7528","yeaft.sessionStatus.task.subAgentError":"{name} \u9519\u8BEF\uFF1A{error}","yeaft.sessionStatus.task.subAgentHitError":"{name} \u9047\u5230\u9519\u8BEF","yeaft.sessionStatus.task.subAgentNoReadableEvents":"\u6682\u65E0\u53EF\u8BFB\u7684 sub-agent \u6D3B\u52A8\u3002","yeaft.sessionStatus.task.promptPlaceholder":"\u7ED9\u8FD9\u4E2A sub-agent \u8FFD\u52A0\u60F3\u6CD5\u2026","yeaft.sessionStatus.task.promptSend":"\u53D1\u9001","yeaft.sessionStatus.task.promptSending":"\u53D1\u9001\u4E2D\u2026","yeaft.sessionStatus.task.promptFailed":"\u53D1\u9001\u5931\u8D25\u3002","yeaft.sessionStatus.task.title":"\u4EFB\u52A1","yeaft.sessionStatus.task.command":"\u547D\u4EE4","yeaft.sessionStatus.task.stop":"\u505C\u6B62\u4EFB\u52A1","yeaft.sessionStatus.task.stopping":"\u505C\u6B62\u4E2D\u2026","yeaft.sessionStatus.task.kind.subAgent":"sub-agent","yeaft.sessionStatus.task.kind.shell":"shell","yeaft.sessionStatus.show":"\u663E\u793A Session \u72B6\u6001","yeaft.sessionStatus.hide":"\u9690\u85CF Session \u72B6\u6001","yeaft.sessionStatus.close":"\u5173\u95ED Session \u72B6\u6001","yeaft.vpTimeline.empty":"\u672C Session \u8FD8\u6CA1\u6709 VP\u3002","yeaft.vpTimeline.resizeTitle":"\u62D6\u52A8\u8C03\u6574\u5BBD\u5EA6","yeaft.vpTimeline.status.idle":"\u7A7A\u95F2","yeaft.vpTimeline.status.typing":"\u8F93\u5165\u4E2D\u2026","yeaft.vpTimeline.status.thinking":"\u601D\u8003\u4E2D\u2026","yeaft.vpTimeline.status.retrying":"\u6B63\u5728\u91CD\u8BD5\u8BF7\u6C42\u2026","yeaft.vpTimeline.status.streaming":"\u751F\u6210\u4E2D","yeaft.vpTimeline.status.tool":"\u8C03\u7528\u5DE5\u5177\u4E2D\u2026","yeaft.vpTimeline.status.error":"\u51FA\u9519","yeaft.vpTimeline.status.offline":"\u79BB\u7EBF","yeaft.vpTimeline.abort":"\u4E2D\u6B62","yeaft.vpTimeline.edit":"\u7F16\u8F91 VP","yeaft.vpTimeline.mention":"\u70B9\u51FB @ \u8BE5 VP","yeaft.vpTimeline.expand":"\u5C55\u5F00\u4EFB\u52A1\u8BE6\u60C5","yeaft.toolStats.title":"\u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1","yeaft.toolStats.refresh":"\u5237\u65B0","yeaft.toolStats.close":"\u5173\u95ED","yeaft.toolStats.tabAll":"\u5168\u90E8\u5DE5\u5177","yeaft.toolStats.tabUnused":"\u672A\u4F7F\u7528","yeaft.toolStats.loading":"\u52A0\u8F7D\u4E2D\u2026","yeaft.toolStats.notLoaded":"\u6682\u65E0\u6570\u636E \u2014 \u70B9\u51FB\u5237\u65B0\u3002","yeaft.toolStats.empty":"\uFF08\u6682\u65E0\u5DE5\u5177\u8C03\u7528\u8BB0\u5F55\uFF09","yeaft.toolStats.noneUnused":"\uFF08\u6BCF\u4E2A\u5DF2\u6CE8\u518C\u5DE5\u5177\u90FD\u81F3\u5C11\u88AB\u8C03\u7528\u8FC7\u4E00\u6B21\uFF09","yeaft.toolStats.fetchedAt":"\u83B7\u53D6\u65F6\u95F4","yeaft.toolStats.col.name":"\u5DE5\u5177","yeaft.toolStats.col.calls":"\u8C03\u7528","yeaft.toolStats.col.errors":"\u9519\u8BEF","yeaft.toolStats.col.errRate":"\u9519\u8BEF\u7387","yeaft.toolStats.col.p50":"p50","yeaft.toolStats.col.p95":"p95","yeaft.toolStats.col.avg":"\u5E73\u5747","yeaft.toolStats.col.last":"\u6700\u8FD1","yeaft.toolStats.buttonLabel":"\u5DE5\u5177\u7EDF\u8BA1","workCenter.itemInfo":"\u4EFB\u52A1\u4FE1\u606F","workCenter.infoTab.requirement":"\u9700\u6C42","workCenter.infoTab.progress":"\u8FDB\u5EA6","workCenter.infoTab.outputs":"\u4EA7\u51FA","workCenter.infoTab.goals":"\u76EE\u6807","workCenter.infoTab.usage":"\u7528\u91CF","workCenter.infoProgressEmpty":"\u6682\u65E0 Action\u3002","workCenter.infoOutputsEmpty":"\u6682\u65E0\u4EA7\u51FA\u3002","workCenter.infoConversationEmpty":"\u6682\u65E0\u5BF9\u8BDD\u6D88\u606F\u3002","workCenter.workbenchUnavailable":"\u8BF7\u5728\u65B0\u7248 Agent \u548C Server \u4E0A\u6253\u5F00\u6709\u5DE5\u4F5C\u76EE\u5F55\u7684\u5DE5\u4F5C\u9879\u4EE5\u4F7F\u7528\u5DE5\u4F5C\u53F0\u3002","workCenter.openOutputFile":"\u6253\u5F00\u6587\u4EF6\uFF1A{name}","workCenter.returnToSession":"\u8FD4\u56DE Session","workCenter.showNavigation":"\u5C55\u5F00\u5DE5\u4F5C\u4E2D\u5FC3\u5BFC\u822A","workCenter.hideNavigation":"\u6536\u8D77\u5DE5\u4F5C\u4E2D\u5FC3\u5BFC\u822A","workCenter.agents":"Agents","workCenter.expandItemActivity":"\u5C55\u5F00 {title} \u7684\u6267\u884C\u72B6\u6001","workCenter.collapseItemActivity":"\u6536\u8D77 {title} \u7684\u6267\u884C\u72B6\u6001","workCenter.activity":"\u6B63\u5728\u63A8\u8FDB","workCenter.noActivity":"\u6682\u65E0\u6B63\u5728\u63A8\u8FDB\u7684\u5DE5\u4F5C\u9879","workCenter.activityOffline":"\u8FDE\u63A5\u5DF2\u65AD\u5F00 \xB7 \u72B6\u6001\u53EF\u80FD\u4E0D\u662F\u6700\u65B0","workCenter.online":"\u5728\u7EBF","workCenter.offline":"\u79BB\u7EBF","workCenter.close":"\u5173\u95ED\u5DE5\u4F5C\u4E2D\u5FC3","workCenter.searchAndFilters":"\u641C\u7D22\u4E0E\u7B5B\u9009","workCenter.moreActions":"\u66F4\u591A\u64CD\u4F5C","workCenter.navigation":"\u5DE5\u4F5C\u9879\u5BFC\u822A","workCenter.title":"\u5DE5\u4F5C\u4E2D\u5FC3","workCenter.subtitle":"\u7531\u5F53\u524D Agent \u6301\u7EED\u63A8\u8FDB\u7684\u6301\u4E45\u5DE5\u4F5C","workCenter.agent":"Agent","workCenter.selectAgent":"\u9009\u62E9 Agent","workCenter.noOnlineAgents":"\u6CA1\u6709\u5728\u7EBF Agent","workCenter.noAvailableAgents":"\u6CA1\u6709\u517C\u5BB9\u5DE5\u4F5C\u4E2D\u5FC3\u7684\u5728\u7EBF Agent","workCenter.checkingAgents":"\u6B63\u5728\u68C0\u67E5\u5DE5\u4F5C\u4E2D\u5FC3\u53EF\u7528\u72B6\u6001\u2026","workCenter.agentStatusLoadFailed":"\u65E0\u6CD5\u68C0\u67E5\u5DE5\u4F5C\u4E2D\u5FC3\u72B6\u6001\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.retryAgentStatus":"\u91CD\u8BD5\u72B6\u6001\u68C0\u67E5","workCenter.unavailableAgents":"\u5DE5\u4F5C\u4E2D\u5FC3\u5DF2\u914D\u7F6E\u4E3A\u542F\u7528\uFF0C\u4F46\u8FD0\u884C\u65F6\u5F53\u524D\u4E0D\u53EF\u7528\uFF1B\u8BF7\u68C0\u67E5\u6B64 Agent \u7684\u8BBE\u7F6E\u548C\u65E5\u5FD7\u3002","workCenter.disabledAgents":"\u5728\u7EBF Agent \u5C1A\u672A\u542F\u7528\u5DE5\u4F5C\u4E2D\u5FC3\u3002","workCenter.disabledAgentsMany":"{count} \u4E2A\u5728\u7EBF Agent \u5C1A\u672A\u542F\u7528\u5DE5\u4F5C\u4E2D\u5FC3\u3002","workCenter.openAgentSettings":"\u6253\u5F00 Agent \u8BBE\u7F6E","workCenter.openAgentSettingsUpgrade":"\u6253\u5F00 Agent \u8BBE\u7F6E\u5E76\u5347\u7EA7","workCenter.upgradeAgents":"\u5728\u7EBF Agent \u6682\u4E0D\u652F\u6301\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E\u3002","workCenter.new":"\u65B0\u5EFA","workCenter.newWorkItem":"\u65B0\u5EFA\u5DE5\u4F5C\u9879","workCenter.workItem":"\u5DE5\u4F5C\u9879","workCenter.createFirst":"\u521B\u5EFA\u7B2C\u4E00\u4E2A\u5DE5\u4F5C\u9879","workCenter.backToChat":"\u8FD4\u56DE\u5BF9\u8BDD","workCenter.refresh":"\u5237\u65B0","workCenter.search":"\u641C\u7D22\u5DE5\u4F5C\u9879","workCenter.filter":"\u7B5B\u9009","workCenter.filterAttention":"\u9700\u8981\u5904\u7406","workCenter.filterActive":"\u6267\u884C\u4E2D","workCenter.filterAll":"\u5168\u90E8","workCenter.filterDone":"\u5DF2\u5B8C\u6210","workCenter.attentionItems":"\u9700\u8981\u5904\u7406","workCenter.board.active":"\u8FDB\u884C\u4E2D","workCenter.board.needsAttention":"\u9700\u8981\u5904\u7406","workCenter.board.closed":"\u5DF2\u5173\u95ED","workCenter.board.emptyLane":"\u6682\u65E0\u5DE5\u4F5C\u9879","workCenter.board.lanes":"\u5DE5\u4F5C\u9879\u5206\u680F","workCenter.filterVp":"\u6309 VP \u7B5B\u9009","workCenter.filterType":"\u6309\u7C7B\u578B\u7B5B\u9009","workCenter.filterUpdated":"\u6309\u66F4\u65B0\u65F6\u95F4\u7B5B\u9009","workCenter.allVps":"\u5168\u90E8 VP","workCenter.allTypes":"\u5168\u90E8\u7C7B\u578B","workCenter.anyTime":"\u4E0D\u9650\u65F6\u95F4","workCenter.lastDay":"\u6700\u8FD1 24 \u5C0F\u65F6","workCenter.lastWeek":"\u6700\u8FD1 7 \u5929","workCenter.deleteWorkItem":"\u5220\u9664 Work Item","workCenter.deleteConfirm":"\u6C38\u4E45\u5220\u9664\u8FD9\u4E2A Work Item\u3001\u6267\u884C\u5386\u53F2\u548C\u9644\u4EF6\uFF1F","workCenter.deleteRequiresStop":"\u8BF7\u5148\u505C\u6B62\u8FD9\u4E2A Work Item \u518D\u5220\u9664","workCenter.lastMonth":"\u6700\u8FD1 30 \u5929","workCenter.assignment.planned":"\u8BA1\u5212\u5206\u914D","workCenter.created":"\u521B\u5EFA\u4E8E","workCenter.executionDuration":"\u6267\u884C\u7528\u65F6","workCenter.files":"\u4E2A\u6587\u4EF6","workCenter.loadMore":"\u52A0\u8F7D\u66F4\u591A","workCenter.activeItems":"\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C","workCenter.allItems":"\u5168\u90E8\u5DE5\u4F5C\u9879","workCenter.completedItems":"\u5DF2\u5B8C\u6210","workCenter.watcherActive":"Watcher \u8FD0\u884C\u4E2D","workCenter.loading":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u4F5C\u9879\u2026","workCenter.noTimestamp":"\u65E0\u65F6\u95F4\u6233","workCenter.updated":"\u66F4\u65B0\u65F6\u95F4","workCenter.emptyTitle":"\u8FD8\u6CA1\u6709\u5DE5\u4F5C\u9879","workCenter.emptyBody":"\u5F53\u5DE5\u4F5C\u9700\u8981\u8DE8\u8D8A\u4E00\u6B21\u5BF9\u8BDD\u3001\u7B49\u5F85\u6216\u89D2\u8272\u63A5\u529B\u65F6\uFF0C\u628A\u5B83\u521B\u5EFA\u4E3A\u6301\u4E45\u5DE5\u4F5C\u9879\u3002","workCenter.noAttentionTitle":"\u5F53\u524D\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u5DE5\u4F5C\u9879","workCenter.noAttentionBody":"\u7B49\u5F85\u4F60\u56DE\u7B54\u6216\u9700\u8981\u6062\u590D\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noActiveTitle":"\u5F53\u524D\u6CA1\u6709\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C\u9879","workCenter.noActiveBody":"\u8349\u7A3F\u3001\u5C31\u7EEA\u548C\u6267\u884C\u4E2D\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noCompletedTitle":"\u8FD8\u6CA1\u6709\u5DF2\u5B8C\u6210\u7684\u5DE5\u4F5C\u9879","workCenter.noCompletedBody":"\u5B8C\u6210\u540E\u7684\u5DE5\u4F5C\u9879\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002","workCenter.noMatchesTitle":"\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u4F5C\u9879","workCenter.noMatchesBody":"\u5C1D\u8BD5\u8C03\u6574\u641C\u7D22\u5185\u5BB9\u6216\u7B5B\u9009\u6761\u4EF6\u3002","workCenter.selectTitle":"\u5DE5\u4F5C\u9879\u8BE6\u60C5","workCenter.detailLoading":"\u6B63\u5728\u52A0\u8F7D\u5B8C\u6574\u8BE6\u60C5\u2026","workCenter.detailLoadFailed":"\u65E0\u6CD5\u52A0\u8F7D\u5B8C\u6574\u8BE6\u60C5","workCenter.start":"\u5F00\u59CB","workCenter.retry":"\u91CD\u8BD5","workCenter.cancel":"\u53D6\u6D88","workCenter.closeWorkItem":"\u5173\u95ED\u8BE6\u60C5","workCenter.cancelWorkItem":"\u505C\u6B62\u5DE5\u4F5C\u9879","workCenter.cancelWorkItemHint":"\u505C\u6B62\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53CA\u6240\u6709\u5C1A\u672A\u5B8C\u6210\u7684 Actions\u3002","workCenter.cancelConfirm":"\u505C\u6B62\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53CA\u5176\u5C1A\u672A\u5B8C\u6210\u7684 Actions\uFF1F","workCenter.stopWorkItem":"\u505C\u6B62\u5DE5\u4F5C\u9879","workCenter.resumeWorkItem":"\u6062\u590D\u5DE5\u4F5C\u9879","workCenter.resource.title":"\u8D44\u6E90\u9884\u7B97","workCenter.resource.requests":"\u8BF7\u6C42","workCenter.resource.chargedTokens":"Token \u9884\u7B97\u5360\u7528","workCenter.resource.details":"\u6D88\u8017\u660E\u7EC6\u4E0E\u9650\u989D","workCenter.resource.total":"\u603B\u8BA1 \xB7 \u5168\u751F\u547D\u5468\u671F","workCenter.resource.coordinator":"\u534F\u8C03\u5668","workCenter.resource.actions":"Actions","workCenter.resource.usage":"{requests} \u6B21\u8BF7\u6C42 \xB7 \u5360\u7528 {charged} token","workCenter.resource.tokens":"\u5DF2\u62A5\u544A {reported} \xB7 \u9884\u7559 / \u672A\u77E5\u5360\u7528 {reserved} token","workCenter.resource.unknown":"\u7528\u91CF\u672A\u77E5\uFF1A{unknown} \u6B21\u8BF7\u6C42 \xB7 \u5728\u9014\uFF1A{inflight}","workCenter.resource.accounting":"\u9884\u7B97\u5360\u7528\u5DF2\u542B\u9884\u7559\uFF0C\u8BF7\u52FF\u91CD\u590D\u76F8\u52A0\u3002\u5DF2\u62A5\u544A token \u662F\u5DF2\u77E5\u7528\u91CF\uFF0C\u4E0D\u4EE3\u8868\u5B8C\u6574\u8D26\u5355\u3002\u51C6\u5165\u57FA\u4E8E\u4F30\u7B97\uFF0C\u4E0D\u662F\u786C\u6027\u8D39\u7528\u4E0A\u9650\u3002","workCenter.resource.maxRequests":"\u7D2F\u8BA1\u8BF7\u6C42\u4E0A\u9650","workCenter.resource.maxTokens":"\u7D2F\u8BA1 token \u4E0A\u9650","workCenter.resource.maxRunRequests":"\u6BCF\u4E2A Run \u8BF7\u6C42\u4E0A\u9650","workCenter.resource.maxActionAttempts":"\u6BCF\u4E2A Action \u5C1D\u8BD5\u4E0A\u9650","workCenter.resource.maxCoordinatorFailures":"\u534F\u8C03\u5668\u5931\u8D25\u4E0A\u9650","workCenter.resource.attemptLimit":"Action \u5C1D\u8BD5\u8DE8\u4EE3\u7D2F\u8BA1\uFF0C\u540C\u65F6\u53D7\u5404 Action \u539F\u59CB\u4E0A\u9650\u4E0E\u663E\u5F0F\u8FFD\u52A0\u989D\u5EA6\u7EA6\u675F\u3002\u5DF2\u7528 / \u6709\u6548\u4E0A\u9650\uFF1A","workCenter.resource.attemptExtension":"\u8FFD\u52A0 Action \u5C1D\u8BD5\u989D\u5EA6\u4F1A\u6388\u6743\u6B64\u5DE5\u4F5C\u9879\u7684\u6240\u6709\u5F53\u524D\u53CA\u672A\u6765 Action \u589E\u52A0\u5C1D\u8BD5\u6B21\u6570\u3002","workCenter.resource.stopped":"\u6267\u884C\u5DF2\u88AB\u8D44\u6E90\u63A7\u5236\u505C\u6B62\u3002","workCenter.resource.stop.work_item_requests_exhausted":"\u5DF2\u505C\u6B62\uFF1A\u7D2F\u8BA1\u8BF7\u6C42\u9884\u7B97\u8017\u5C3D\u3002","workCenter.resource.stop.work_item_tokens_exhausted":"\u5DF2\u505C\u6B62\uFF1Atoken \u9884\u7B97\u4E0D\u8DB3\u4EE5\u51C6\u5165\u4E0B\u4E00\u6B21\u8BF7\u6C42\u3002","workCenter.resource.stop.run_requests_exhausted":"\u5DF2\u505C\u6B62\uFF1ARun \u8BF7\u6C42\u6570\u8FBE\u5230\u4E0A\u9650\u3002\u6062\u590D\u5C06\u542F\u52A8\u65B0\u7684 Run\u3002","workCenter.resource.stop.action_attempts_exhausted":"\u5DF2\u505C\u6B62\uFF1AAction \u5C1D\u8BD5\u6B21\u6570\u8FBE\u5230\u4E0A\u9650\u3002","workCenter.resource.stop.coordinator_failures_exhausted":"\u5DF2\u505C\u6B62\uFF1A\u534F\u8C03\u5668\u5931\u8D25\u6B21\u6570\u8FBE\u5230\u4E0A\u9650\u3002","workCenter.resource.offline":"Agent \u5DF2\u65AD\u5F00\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\u5E76\u5237\u65B0\u540E\u518D\u4FEE\u6539\u8D44\u6E90\u9884\u7B97\u3002","workCenter.resource.stale":"\u8D44\u6E90\u72B6\u6001\u5DF2\u53D8\u5316\u6216\u5C1A\u672A\u786E\u8BA4\u3002\u8BF7\u5237\u65B0\u540E\u91CD\u65B0\u786E\u8BA4\uFF1B\u4E0D\u4F1A\u81EA\u52A8\u91CD\u8BD5\u4EFB\u4F55\u4FEE\u6539\u3002","workCenter.resource.refresh":"\u5237\u65B0\u8D44\u6E90\u72B6\u6001","workCenter.resource.reconfirm":"\u5DF2\u52A0\u8F7D\u6700\u65B0\u72B6\u6001\u3002\u8BF7\u68C0\u67E5\u9650\u989D\uFF0C\u9700\u8981\u65F6\u91CD\u65B0\u786E\u8BA4\u64CD\u4F5C\u3002","workCenter.resource.extend":"\u8FFD\u52A0\u9884\u7B97","workCenter.resource.confirmExtend":"\u786E\u8BA4\u8FFD\u52A0\u9884\u7B97","workCenter.resource.extendHelp":"\u8F93\u5165\u8981\u8FFD\u52A0\u7684\u6B63\u6574\u6570\u989D\u5EA6\uFF0C\u800C\u975E\u65B0\u7684\u603B\u4E0A\u9650\uFF1B\u4E0D\u4FEE\u6539\u7684\u5B57\u6BB5\u7559\u7A7A\u3002\u8FFD\u52A0\u4E0D\u4F1A\u6062\u590D\u6267\u884C\u6216\u6E05\u96F6\u7528\u91CF\u3002","workCenter.resource.current":"\u5F53\u524D\uFF1A{count}","workCenter.resource.invalid":"\u53EA\u80FD\u586B\u5199\u6B63\u5B89\u5168\u6574\u6570\uFF0C\u8FFD\u52A0\u540E\u7684\u4E0A\u9650\u4E5F\u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570\u3002","workCenter.resource.extended":"\u9884\u7B97\u5DF2\u8FFD\u52A0\u3002\u672A\u6062\u590D\u6267\u884C\uFF1B\u51C6\u5907\u597D\u540E\u8BF7\u660E\u786E\u70B9\u51FB\u6062\u590D\u3002","workCenter.resource.resumed":"\u6062\u590D\u8BF7\u6C42\u5DF2\u63A5\u53D7\u3002","workCenter.resource.pending":"\u6B63\u5728\u66F4\u65B0\u8D44\u6E90\u72B6\u6001\u2026","workCenter.resource.close":"\u5173\u95ED\u9884\u7B97\u8868\u5355","workCenter.breadcrumbs":"Work Center \u5BFC\u822A","workCenter.actionNumber":"Action {number}","workCenter.actionBreadcrumb":"Action {number}\uFF1A{description}","workCenter.sourceUnavailable":"\u6765\u6E90 Action \u4E0D\u53EF\u7528","workCenter.untitledAction":"\u672A\u547D\u540D Action","workCenter.workItems":"\u5DE5\u4F5C\u9879","workCenter.description":"\u9700\u6C42\u63CF\u8FF0","workCenter.goal":"\u76EE\u6807","workCenter.acceptanceCriteria":"\u9A8C\u6536\u6761\u4EF6","workCenter.goalProgress":"\u76EE\u6807\u8FDB\u5EA6","workCenter.criteriaProgress":"{completed} / {total} \u9879\u9A8C\u6536\u6761\u4EF6\u5DF2\u9A8C\u8BC1","workCenter.criteriaRemaining":"\u5269\u4F59 {count} \u9879","workCenter.criteriaOmitted":"\u6B64\u6709\u754C\u89C6\u56FE\u7701\u7565\u4E86 {count} \u9879\u6761\u4EF6\uFF0C\u603B\u6570\u4ECD\u5305\u542B\u8FD9\u4E9B\u6761\u4EF6\u3002","workCenter.criteriaVerified":"\u6240\u6709\u9A8C\u6536\u6761\u4EF6\u5DF2\u9A8C\u8BC1","workCenter.criteriaPending":"\u5C1A\u672A\u5B9A\u4E49\u9A8C\u6536\u6761\u4EF6","workCenter.goalStatus.passed":"\u5DF2\u9A8C\u8BC1","workCenter.goalStatus.failed":"\u672A\u901A\u8FC7","workCenter.goalStatus.unmet":"\u5F85\u9A8C\u8BC1","workCenter.goalBlockers":"\u963B\u585E\u539F\u56E0","workCenter.evidenceRuns":"\u8BC1\u636E Run","workCenter.deliveredResponse":"\u4EA4\u4ED8\u56DE\u590D","workCenter.responseEvidence":"\u56DE\u590D\u6765\u6E90\u4E0E\u8BC1\u636E","workCenter.noCriteria":"\u672A\u63D0\u4F9B\u9A8C\u6536\u6761\u4EF6","workCenter.failureReason":"\u5931\u8D25\u539F\u56E0","workCenter.workflow":"\u4EFB\u52A1\u6D41","workCenter.triageSummary":"Triage \u6458\u8981","workCenter.actionFlow":"Action \u6D41\u7A0B","workCenter.viewActions":"\u67E5\u770B Actions","workCenter.actionsPanel":"Actions","workCenter.resizeActions":"\u8C03\u6574 Actions \u680F\u5BBD\u5EA6\uFF08\u65B9\u5411\u952E\u8C03\u6574\uFF0CHome \u91CD\u7F6E\uFF09","workCenter.closeActions":"\u5173\u95ED Actions","workCenter.actionCount":"{count} \u4E2A Action","workCenter.noActionSummary":"\u6682\u65E0\u6458\u8981","workCenter.actionProgress":"{completed} / {total} \u4E2A Action","workCenter.currentAction":"\u5F53\u524D Action","workCenter.expandActions":"\u5C55\u5F00 Action","workCenter.collapseActions":"\u6536\u8D77","workCenter.actionObjective":"\u8FD9\u6B21\u8981\u505A\u4EC0\u4E48","workCenter.actionApproach":"\u51C6\u5907\u600E\u4E48\u505A","workCenter.actionExpectedOutcome":"\u671F\u5F85\u7684\u7ED3\u679C","workCenter.dependencies":"\u6765\u6E90 Action","workCenter.actionResult":"\u6700\u65B0\u7ED3\u679C","workCenter.currentProgress":"\u5F53\u524D\u8FDB\u5EA6","workCenter.requirementAndAcceptance":"\u9700\u6C42\u4E0E\u9A8C\u6536","workCenter.taskInformation":"\u4EFB\u52A1\u4FE1\u606F\u4E0E\u7528\u91CF","workCenter.actionMessages":"\u6D88\u606F","workCenter.loops":"\u4E2A Loop","workCenter.tools":"\u6B21\u5DE5\u5177\u8C03\u7528","workCenter.noActionMessages":"\u8FD8\u6CA1\u6709\u6D88\u606F\u3002","workCenter.actionDetails":"Action \u8BE6\u60C5","workCenter.selectAction":"\u9009\u62E9\u4E00\u4E2A Action","workCenter.backToWorkItems":"\u5DE5\u4F5C\u9879","workCenter.backToActions":"\u8FD4\u56DE Actions","workCenter.you":"\u4F60","workCenter.noRequestDetails":"\u8FD9\u4E2A Action \u6682\u65F6\u6CA1\u6709\u53EF\u7528\u7684\u6267\u884C\u8BB0\u5F55\u3002","workCenter.loadingRequests":"\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u8BB0\u5F55\u2026","workCenter.loadingRequestDetail":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u5177\u8BC1\u636E\u2026","workCenter.requestDetailUnavailable":"\u5DE5\u5177\u8BC1\u636E\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.noRequestLoops":"\u8FD9\u6B21\u6267\u884C\u6CA1\u6709\u4FDD\u7559\u4E0B\u53EF\u5C55\u793A\u7684 Loop\u3002","workCenter.requestDetailTruncated":"\u6267\u884C\u5185\u5BB9\u8F83\u5927\uFF1A{summarized} \u4E2A Loop \u663E\u793A\u6458\u8981\uFF0C\u53E6\u6709 {omitted} \u4E2A\u8F83\u65E9 Loop \u672A\u663E\u793A\u3002","workCenter.loopDetailTruncated":"\u8FD9\u4E2A Loop \u5185\u5BB9\u8F83\u5927\uFF0C\u5F53\u524D\u663E\u793A\u4FDD\u7559\u4E0B\u6765\u7684\u5DE5\u5177\u8BC1\u636E\u3002","workCenter.loadEarlierMessages":"\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F","workCenter.loadingEarlierMessages":"\u6B63\u5728\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u2026","workCenter.unknownModel":"\u672A\u77E5\u6A21\u578B","workCenter.loop":"Loop","workCenter.actionBrief":"\u4EFB\u52A1\u8BF4\u660E","workCenter.executionSummary":"\u6267\u884C\u6458\u8981","workCenter.toolParameters":"\u8C03\u7528\u53C2\u6570","workCenter.toolResult":"\u6267\u884C\u7ED3\u679C","workCenter.noToolCalls":"\u8FD9\u4E2A Loop \u6CA1\u6709\u5DE5\u5177\u8C03\u7528\u3002","workCenter.actionInputPlaceholder":"\u8865\u5145\u4E0A\u4E0B\u6587\u3001\u56DE\u7B54\u95EE\u9898\u6216\u8C03\u6574\u8FD9\u4E2A Action","workCenter.actionInputResumeHint":"\u4F60\u7684\u8F93\u5165\u4F1A\u5E26\u7740\u65B0\u589E\u4E0A\u4E0B\u6587\u7EE7\u7EED\u8FD9\u4E2A Action\u3002","workCenter.waitingQuestionTitle":"\u9700\u8981\u4F60\u7684\u56DE\u7B54","workCenter.replyToAction":"\u56DE\u590D\u8FD9\u4E2A Action","workCenter.replyToCoordinator":"\u56DE\u590D\u534F\u8C03\u8005","workCenter.replyHelp":"\u5728\u4E0B\u65B9\u5BF9\u8BDD\u4E2D\u56DE\u590D\u4F60\u7684\u51B3\u5B9A\u6216\u5904\u7406\u8981\u6C42\uFF1B\u53D1\u9001\u524D\u4E0D\u4F1A\u6267\u884C\u4EFB\u4F55\u786E\u8BA4\u3002","workCenter.inputStale":"\u76EE\u6807\u72B6\u6001\u5DF2\u53D8\u5316\uFF0C\u56DE\u7B54\u5C1A\u672A\u5E94\u7528\u3002\u8F93\u5165\u5DF2\u4FDD\u7559\uFF0C\u8BF7\u6838\u5BF9\u5237\u65B0\u540E\u7684\u76EE\u6807\u518D\u53D1\u9001\u3002","workCenter.actionInputRetryHint":"\u8865\u5145\u4FEE\u6B63\u8BF4\u660E\u6216\u6587\u4EF6\u540E\uFF0C\u4F7F\u7528\u65B0\u4E0A\u4E0B\u6587\u91CD\u65B0\u6267\u884C\u8FD9\u4E2A Action\u3002","workCenter.actionInputContinueHint":"\u8FD9\u91CC\u53EA\u76F4\u63A5\u5E72\u9884\u5F53\u524D Action\u3002","workCenter.actionFailedTitle":"\u8FD9\u4E2A Action \u4E3A\u4EC0\u4E48\u5931\u8D25","workCenter.actionClosedTitle":"\u8FD9\u4E2A Action \u4E3A\u4EC0\u4E48\u88AB\u5173\u95ED","workCenter.failedAt":"\u5931\u8D25\u65F6\u95F4","workCenter.closedAt":"\u5173\u95ED\u65F6\u95F4","workCenter.actionFailureRecovery":"\u5728\u5DE5\u4F5C\u9879\u8F93\u5165\u6846\u4E2D\u9009\u62E9\u6B64 Action\uFF0C\u518D\u53D1\u9001\u4FEE\u6B63\u8BF4\u660E\u3002","workCenter.sendInput":"\u53D1\u9001\u7ED9 Action","workCenter.sendingInput":"\u6B63\u5728\u53D1\u9001\u2026","workCenter.retryAction":"\u91CD\u8BD5 Action","workCenter.sendAndRetryAction":"\u53D1\u9001\u5E76\u91CD\u8BD5 Action","workCenter.coordinatorDecision.guide_actions":"\u5DF2\u66F4\u65B0 Action \u6307\u4EE4","workCenter.coordinatorDecision.replan":"\u5DF2\u66F4\u65B0\u76EE\u6807\u6216\u8BA1\u5212","workCenter.coordinatorDecision.request_human":"\u9700\u8981\u4EBA\u5DE5\u8865\u5145\u4FE1\u606F","workCenter.conversation":"\u5BF9\u8BDD","workCenter.contentPane":"\u5185\u5BB9","workCenter.workItemPanes":"\u5DE5\u4F5C\u9879\u9762\u677F","workCenter.coordinator":"\u534F\u8C03\u8005","workCenter.coordinatorTargetHint":"\u5DE5\u4F5C\u9879\u89C4\u5212\u4E0E\u534F\u8C03","workCenter.composerTarget":"\u6D88\u606F\u76EE\u6807","workCenter.targetUnavailable":"\u6240\u9009 Action \u5DF2\u4E0D\u53EF\u7528","workCenter.targetUnavailableHelp":"\u53D1\u9001\u524D\u8BF7\u9009\u62E9\u5176\u4ED6\u76EE\u6807\uFF1B\u7CFB\u7EDF\u6CA1\u6709\u91CD\u5B9A\u5411\u8FD9\u4EFD\u8349\u7A3F\u3002","workCenter.sendToCoordinatorInstead":"\u6539\u53D1\u7ED9 Coordinator","workCenter.sendToTarget":"\u53D1\u9001\u7ED9 {target}","workCenter.answerWithTarget":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u9009\u62E9\u76F8\u5173\u76EE\u6807\uFF0C\u7136\u540E\u56DE\u590D\u3002","workCenter.conversationThinking":"\u5904\u7406\u4E2D\u2026","workCenter.conversationReadOnly":"\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u5DF2\u5173\u95ED\uFF0C\u5BF9\u8BDD\u8BB0\u5F55\u4ECD\u53EF\u67E5\u770B\u3002","workCenter.conversationPlaceholder":"\u7EE7\u7EED\u8BA8\u8BBA\u8FD9\u4E2A\u5DE5\u4F5C\u9879","workCenter.sendMessage":"\u53D1\u9001\u6D88\u606F","workCenter.messageSpeakerRole":"{name} \xB7 {role}","workCenter.originalRequest":"\u539F\u59CB\u9700\u6C42","workCenter.actionMessageScopeTitle":"\u7ED9\u8FD9\u4E2A Action \u53D1\u6D88\u606F","workCenter.actionMessageScope":"\u6D88\u606F\u53EA\u53D1\u9001\u7ED9\u5F53\u524D Action\u3002","workCenter.actionConversation":"\u5BF9\u8BDD","workCenter.actionConversationWith":"Action \u6267\u884C\u8005","workCenter.actionViews":"Action \u89C6\u56FE","workCenter.actionExecutor":"\u6267\u884C\u8005","workCenter.actionExecutorPending":"\u7B49\u5F85\u5206\u914D\u6267\u884C\u8005","workCenter.actionInformation":"Action \u4FE1\u606F","workCenter.messageExecutor":"\u7ED9 {name} \u53D1\u6D88\u606F","workCenter.actionChatPlaceholder":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u7ED9 {name} \u53D1\u6D88\u606F","workCenter.statusLabel":"\u72B6\u6001","workCenter.llmRequestsLabel":"LLM \u8BF7\u6C42","workCenter.loopsLabel":"Loops","workCenter.toolsLabel":"\u5DE5\u5177","workCenter.tokensLabel":"Tokens","workCenter.workItemMessagePlaceholder":"\u8865\u5145\u6574\u4E2A Work Item \u7684\u65B9\u5411\u6216\u7EA6\u675F","workCenter.sendWorkItemMessage":"\u53D1\u9001\u7ED9 Work Item","workCenter.fromSession":"\u4ECE\u5F53\u524D Session \u521B\u5EFA\u5DE5\u4F5C\u9879","workCenter.llmRequestCount":"{count} \u6B21 LLM \u8BF7\u6C42","workCenter.loopCount":"{count} \u6B21 Loop","workCenter.toolCount":"{count} \u4E2A\u5DE5\u5177","workCenter.tokenCount":"{count} tokens","workCenter.tokenBreakdown":"\u8F93\u5165 {input} / \u8F93\u51FA {output} / \u7F13\u5B58 {cache}","workCenter.guidance":"\u7ED9\u5F53\u524D Action \u8865\u5145\u63D0\u793A","workCenter.guidanceHint":"\u8865\u5145\u7EA6\u675F\uFF0C\u6216\u8C03\u6574\u5F53\u524D Action \u7684\u6267\u884C\u65B9\u5411","workCenter.guidanceRestartHint":"\u53D1\u9001\u540E\u4F1A\u4F7F\u7528\u65B0\u63D0\u793A\u91CD\u542F\u5F53\u524D Action\u3002","workCenter.sendGuidance":"\u53D1\u9001\u63D0\u793A","workCenter.reuseMemory":"\u4F7F\u7528\u76F8\u5173 Agent memory \u548C\u6B64\u9879\u76EE\u7684\u5DF2\u5B8C\u6210\u5DE5\u4F5C","workCenter.reuseMemoryHelp":"\u5305\u62EC\u53D7 scope \u7EA6\u675F\u7684 Agent memory\uFF0C\u4EE5\u53CA canonical \u9879\u76EE\u76EE\u5F55\u76F8\u540C\u7684\u5DF2\u5B8C\u6210 Work Item \u7ED3\u6784\u5316\u6458\u8981\u548C\u8BC1\u636E\uFF1B\u4E0D\u4F1A\u590D\u7528\u539F\u59CB\u5DE5\u5177\u8F93\u51FA\u3002","workCenter.resumeAnswer":"\u56DE\u7B54\u7B49\u5F85\u4E2D\u7684\u95EE\u9898","workCenter.resumeAnswerHint":"\u63D0\u4F9B\u7EE7\u7EED\u6267\u884C\u6240\u9700\u7684\u4FE1\u606F","workCenter.answerInActionDetail":"\u5728\u5BF9\u8BDD\u8F93\u5165\u6846\u4E2D\u5C06\u76EE\u6807\u8BBE\u4E3A\u5F53\u524D Action\uFF0C\u7136\u540E\u56DE\u590D\u3002","workCenter.selectPrompt":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u9879\uFF0C\u67E5\u770B\u5B83\u7684\u6D41\u7A0B\u3002","workCenter.createHint":"\u63CF\u8FF0\u4F60\u9700\u8981\u4EC0\u4E48\uFF0CCoordinator \u4F1A\u6301\u7EED\u521B\u5EFA\u5F53\u524D\u5FC5\u8981\u7684 Actions\uFF0C\u76F4\u5230\u9A8C\u6536\u6761\u4EF6\u5F97\u5230\u9A8C\u8BC1\u3002","workCenter.requirement":"\u9700\u6C42","workCenter.requirementHint":"\u7528\u81EA\u7136\u8BED\u8A00\u63CF\u8FF0\u95EE\u9898\u3001\u671F\u671B\u7ED3\u679C\u548C\u5FC5\u8981\u7EA6\u675F","workCenter.requirementHelp":"Coordinator \u4F1A\u5B8C\u5584\u76EE\u6807\u4E0E\u9A8C\u6536\u6761\u4EF6\uFF0C\u5E76\u968F\u7740\u8BC1\u636E\u4EA7\u751F\u52A8\u6001\u521B\u5EFA Actions\u3002","workCenter.titleField":"\u6807\u9898","workCenter.titleHint":"\u7B80\u77ED\u3001\u660E\u786E\u5730\u63CF\u8FF0\u9884\u671F\u7ED3\u679C","workCenter.goalHint":"\u8BF4\u660E Agent \u5FC5\u987B\u4EA4\u4ED8\u7684\u6700\u7EC8\u7ED3\u679C","workCenter.criteriaHint":"\u6BCF\u884C\u4E00\u6761\u9A8C\u6536\u6761\u4EF6","workCenter.attachments":"\u9644\u4EF6","workCenter.outputs":"\u4EA7\u51FA","workCenter.deliveryTarget":"\u4EA4\u4ED8\u76EE\u6807","workCenter.deliveryTargetCustom":"\u81EA\u5B9A\u4E49","workCenter.deliveryCustomHelp":"\u5408\u5E76\u3001\u53D1\u5E03\u4ECD\u9700\u6309\u89C4\u5219\u6388\u6743\u3002","workCenter.deliveryTargetAsk":"\u4EA4\u4ED8\u524D\u8BE2\u95EE\u6211","workCenter.deliveryTargetResponse":"\u56DE\u590D","workCenter.deliveryTargetFiles":"\u5DE5\u4F5C\u76EE\u5F55\u4E2D\u7684\u6587\u4EF6","workCenter.deliveryTargetPr":"\u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42","workCenter.deliveryTargetMerge":"\u5408\u5E76\u5DF2\u6279\u51C6\u7684\u62C9\u53D6\u8BF7\u6C42","workCenter.deliveryTargetHelp":"\u201C\u56DE\u590D\u201D\u4EA4\u4ED8\u6709\u8BC1\u636E\u652F\u6301\u7684\u7B54\u590D\uFF0C\u4E0D\u8981\u6C42\u4EE3\u7801\u4EA7\u7269\u3002\u4EE3\u7801\u7C7B\u4EA4\u4ED8\u4ECD\u987B\u9075\u5B88\u8BC4\u5BA1\u4E0E\u5408\u5E76\u7B56\u7565\u3002","workCenter.deliveryInstructions":"\u4EA4\u4ED8\u76EE\u6807\u8BF4\u660E","workCenter.deliveryInstructionsHint":"\u4F8B\u5982\uFF1A\u53D1\u5E03\u7248\u672C\u5E76\u603B\u7ED3\u6539\u52A8","workCenter.deliveryInstructionsHelp":"\u53EF\u9009\u62E9\u4EE5\u524D\u7528\u8FC7\u7684\u76EE\u6807\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u65B0\u76EE\u6807\uFF1B\u4E0D\u4F1A\u56E0\u6B64\u83B7\u5F97\u989D\u5916\u4EA4\u4ED8\u6743\u9650\u3002","workCenter.attachmentsHelp":"\u56FE\u7247\u3001PDF \u548C\u6587\u672C\u6587\u4EF6\u4F1A\u6301\u7EED\u7ED1\u5B9A\u5230\u6B64 Work Item\uFF0C\u5E76\u63D0\u4F9B\u7ED9\u6BCF\u4E2A Action\u3002","workCenter.attachmentsUnsupported":"\u6240\u9009 Agent \u4E0D\u652F\u6301 Work Item \u9644\u4EF6\u3002","workCenter.addAttachments":"\u6DFB\u52A0\u6587\u4EF6","workCenter.attachmentsUploading":"\u4E0A\u4F20\u4E2D\u2026","workCenter.attachmentsUploadFailed":"\u9644\u4EF6\u4E0A\u4F20\u5931\u8D25","workCenter.pendingEnvelopeLocked":"\u6709\u4E00\u6761\u672A\u786E\u8BA4\u8BF7\u6C42\u5DF2\u9501\u5B9A\u5230\u539F\u59CB\u8EAB\u4EFD\u3002","workCenter.replacePendingAttachments":"\u66FF\u6362\u9644\u4EF6","workCenter.discardPendingEnvelope":"\u653E\u5F03\u5F85\u786E\u8BA4\u8BF7\u6C42","workCenter.pendingEnvelopeChanged":"\u5F85\u786E\u8BA4\u8BF7\u6C42\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u8BE5\u5DE5\u4F5C\u9879\u540E\u518D\u8BD5\u3002","workCenter.removeAttachment":"\u4ECE\u8349\u7A3F\u4E2D\u79FB\u9664","workCenter.previewAttachment":"\u6253\u5F00\u9644\u4EF6","workCenter.openAttachmentNamed":"\u6253\u5F00\u9644\u4EF6 {name}","workCenter.openingAttachment":"\u6B63\u5728\u6253\u5F00\u9644\u4EF6\u2026","workCenter.attachmentPreviewFailed":"\u65E0\u6CD5\u6253\u5F00\u9644\u4EF6\uFF0C\u8BF7\u91CD\u8BD5\u3002","workCenter.attachmentOpenBlocked":"\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u9644\u4EF6\u7A97\u53E3\uFF0C\u8BF7\u5141\u8BB8\u5F39\u51FA\u7A97\u53E3\u540E\u91CD\u8BD5\u3002","workCenter.execution":"\u6267\u884C\u65B9\u5F0F","workCenter.executionHint":"\u9009\u62E9\u5DE5\u4F5C\u9879\u5728\u54EA\u91CC\u6267\u884C\uFF0C\u4EE5\u53CA\u521B\u5EFA\u540E\u662F\u5426\u7ACB\u5373\u5F00\u59CB\u3002","workCenter.workDir":"\u5DE5\u4F5C\u76EE\u5F55","workCenter.workDirHint":"\u9009\u62E9\u4E00\u4E2A\u5DF2\u5B58\u5728\u7684\u9879\u76EE\u76EE\u5F55","workCenter.chooseFolder":"\u9009\u62E9\u6587\u4EF6\u5939","workCenter.workDirPickerHelp":"\u4ECE\u5F53\u524D Agent \u7684\u771F\u5B9E\u76EE\u5F55\u4E2D\u9009\u62E9\u5DF2\u5B58\u5728\u7684\u6587\u4EF6\u5939\u3002","workCenter.folderPickerHint":"\u9009\u62E9\u8FD9\u4E2A\u5DE5\u4F5C\u9879\u53EF\u4EE5\u8BFB\u53D6\u548C\u4FEE\u6539\u7684\u9879\u76EE\u76EE\u5F55\u3002","workCenter.folderPickerSelectionHint":"\u53CC\u51FB\u8FDB\u5165\u76EE\u5F55\uFF0C\u6216\u9009\u4E2D\u76EE\u5F55\u540E\u786E\u8BA4\u3002","workCenter.schedule":"\u8BA1\u5212","workCenter.scheduleStatus":"\u8BA1\u5212\u72B6\u6001","workCenter.scheduleEnabled":"\u5DF2\u542F\u7528","workCenter.scheduleDisabled":"\u5DF2\u505C\u7528","workCenter.scheduleRunsAt":"\u8BA1\u5212\u6267\u884C\u4E8E","workCenter.scheduleTriggered":"\u8BA1\u5212\u5DF2\u89E6\u53D1","workCenter.schedulePaused":"\u8BA1\u5212\u5DF2\u6682\u505C","workCenter.scheduleWorkItem":"\u5B9A\u65F6\u6267\u884C\u6B64\u5DE5\u4F5C\u9879","workCenter.scheduleWorkItemHint":"\u5C06\u5176\u6301\u4E45\u4FDD\u5B58\u4E3A\u8349\u7A3F\uFF0C\u5E76\u5728\u6240\u9009\u672C\u5730\u65F6\u95F4\u6267\u884C\u4E00\u6B21\u3002","workCenter.scheduling.heading":"\u6267\u884C\u65F6\u95F4","workCenter.scheduling.planHint":"\u8FD9\u662F\u6267\u884C\u8BA1\u5212\uFF0C\u4E0D\u662F\u6B63\u5728\u8FD0\u884C\u7684\u5DE5\u4F5C\u9879\u3002\u8BF7\u6253\u5F00\u751F\u6210\u7684\u5DE5\u4F5C\u9879\u67E5\u770B\u8FDB\u5EA6\u6216\u53D1\u9001\u6307\u4EE4\u3002","workCenter.scheduling.mode.now":"\u7ACB\u5373\u6267\u884C","workCenter.scheduling.mode.draft":"\u4FDD\u5B58\u8349\u7A3F","workCenter.scheduling.mode.scheduled":"\u5B9A\u65F6\u6267\u884C","workCenter.scheduling.modeHint.now":"\u521B\u5EFA\u540E\u7ACB\u5373\u5F00\u59CB\u6267\u884C\u3002","workCenter.scheduling.modeHint.draft":"\u5148\u4FDD\u5B58\uFF0C\u4E0D\u6267\u884C\uFF1B\u786E\u8BA4\u540E\u518D\u624B\u52A8\u5F00\u59CB\u3002","workCenter.scheduling.repeat":"\u91CD\u590D\u65B9\u5F0F","workCenter.scheduling.once":"\u4EC5\u4E00\u6B21","workCenter.scheduling.daily":"\u6BCF\u5929","workCenter.scheduling.weekdays":"\u5DE5\u4F5C\u65E5\uFF08\u5468\u4E00\u81F3\u5468\u4E94\uFF09","workCenter.scheduling.weekly":"\u6BCF\u5468","workCenter.scheduling.monthly":"\u6BCF\u6708","workCenter.scheduling.date":"\u65E5\u671F","workCenter.scheduling.fromDate":"\u5F00\u59CB\u65E5\u671F","workCenter.scheduling.time":"\u65F6\u95F4 \xB7 24 \u5C0F\u65F6\u5236","workCenter.scheduling.timeHint":"HH:mm\uFF0C\u4F8B\u5982 09:00 \u6216 17:30","workCenter.scheduling.timeZone":"\u65F6\u533A","workCenter.scheduling.onDays":"\u6267\u884C\u65E5","workCenter.scheduling.monthDay":"\u6BCF\u6708\u51E0\u53F7","workCenter.scheduling.shortMonth":"\u5F53\u6708\u6CA1\u6709\u8BE5\u65E5\u671F\u65F6\uFF0C\u5728\u5F53\u6708\u6700\u540E\u4E00\u5929\u6267\u884C\u3002","workCenter.scheduling.ends":"\u7ED3\u675F\u6761\u4EF6","workCenter.scheduling.end.never":"\u4E0D\u8BBE\u7ED3\u675F","workCenter.scheduling.end.date":"\u5230\u6307\u5B9A\u65E5\u671F","workCenter.scheduling.end.count":"\u6267\u884C\u6307\u5B9A\u6B21\u6570","workCenter.scheduling.endDate":"\u7ED3\u675F\u65E5\u671F\uFF08\u542B\u5F53\u5929\uFF09","workCenter.scheduling.runCount":"\u603B\u6267\u884C\u6B21\u6570 \xB7 1\u20131,000","workCenter.scheduling.nextRun":"\u4E0B\u6B21\u6267\u884C","workCenter.scheduling.create":"\u521B\u5EFA\u8BA1\u5212","workCenter.scheduling.onceHint":"\u8BE5 Agent \u5728\u7EBF\u65F6\u6267\u884C\u4E00\u6B21\uFF1B\u82E5\u5230\u65F6\u79BB\u7EBF\uFF0C\u5219\u5728\u6062\u590D\u540E\u6267\u884C\u3002","workCenter.scheduling.recurringHint":"\u6BCF\u6B21\u751F\u6210\u72EC\u7ACB\u5DE5\u4F5C\u9879\u3002\u79BB\u7EBF\u9519\u8FC7\u7684\u65F6\u6BB5\u5408\u5E76\u5904\u7406\uFF1B\u4E0A\u4E00\u8F6E\u672A\u7ED3\u675F\u65F6\u8DF3\u8FC7\u672C\u8F6E\uFF0C\u4E0D\u91CD\u53E0\u6267\u884C\u3002\u6682\u505C\u53EA\u5F71\u54CD\u540E\u7EED\u8BA1\u5212\uFF0C\u4E0D\u4E2D\u65AD\u5DF2\u5F00\u59CB\u7684\u5DE5\u4F5C\u3002","workCenter.scheduling.upgrade":"\u6B64 Agent \u5C1A\u672A\u58F0\u660E\u652F\u6301\u5468\u671F\u8BA1\u5212\uFF0C\u66F4\u65B0\u540E\u53EF\u542F\u7528\u91CD\u590D\u6267\u884C\u3002","workCenter.scheduling.invalidDateTime":"\u8BF7\u8F93\u5165\u6709\u6548\u65E5\u671F\u548C\u65F6\u95F4\uFF08HH:mm\uFF09\u3002","workCenter.scheduling.invalidTimeZone":"\u8BF7\u9009\u62E9\u6709\u6548\u65F6\u533A\u3002","workCenter.scheduling.chooseWeekdays":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u6267\u884C\u65E5\u3002","workCenter.scheduling.invalidMonthDay":"\u8BF7\u9009\u62E9 1 \u81F3 31 \u53F7\u3002","workCenter.scheduling.nonexistentTime":"\u590F\u4EE4\u65F6\u5207\u6362\u5BFC\u81F4\u8FD9\u4E2A\u672C\u5730\u65F6\u95F4\u4E0D\u5B58\u5728\uFF0C\u8BF7\u6362\u4E00\u4E2A\u65F6\u95F4\u3002","workCenter.scheduling.futureTime":"\u9996\u6B21\u6267\u884C\u65F6\u95F4\u5FC5\u987B\u665A\u4E8E\u73B0\u5728\u3002","workCenter.scheduling.tooFar":"\u8BF7\u9009\u62E9\u672A\u6765\u4E94\u5E74\u5185\u7684\u9996\u6B21\u6267\u884C\u65F6\u95F4\u3002","workCenter.scheduling.invalidEndDate":"\u7ED3\u675F\u65E5\u671F\u4E0D\u80FD\u65E9\u4E8E\u9996\u6B21\u6267\u884C\u3002","workCenter.scheduling.supportedRange":"\u8BF7\u9009\u62E9\u652F\u6301\u8303\u56F4\u5185\u7684\u65E5\u671F\uFF08UTC 1970\u20132099 \u5E74\uFF09\u3002","workCenter.scheduling.invalidRunCount":"\u8BF7\u8F93\u5165 1 \u81F3 1,000 \u4E4B\u95F4\u7684\u6574\u6570\u3002","workCenter.scheduling.status.scheduled":"\u5DF2\u5B89\u6392","workCenter.scheduling.status.paused":"\u5DF2\u6682\u505C","workCenter.scheduling.status.triggered":"\u5DF2\u89E6\u53D1","workCenter.scheduling.status.completed":"\u8BA1\u5212\u5DF2\u7ED3\u675F","workCenter.scheduling.status.cancelled":"\u5DF2\u53D6\u6D88","workCenter.scheduling.retrying":"\u6B63\u5728\u91CD\u8BD5","workCenter.scheduling.dispatchFailed":"\u5B9A\u65F6\u6267\u884C\u672A\u80FD\u542F\u52A8\uFF0C\u5C06\u81EA\u52A8\u91CD\u8BD5\u3002\u8BF7\u68C0\u67E5\u8BA1\u5212\u914D\u7F6E\u548C\u9644\u4EF6\u3002","workCenter.scheduling.pause":"\u6682\u505C\u8BA1\u5212","workCenter.scheduling.resume":"\u6062\u590D\u8BA1\u5212","workCenter.scheduling.executions":"\u5DF2\u751F\u6210 {count} \u4E2A\u5DE5\u4F5C\u9879","workCenter.scheduling.lastExecution":"\u67E5\u770B\u6700\u8FD1\u4E00\u6B21\u6267\u884C","workCenter.scheduling.sourcePlan":"\u67E5\u770B\u6240\u5C5E\u5468\u671F\u8BA1\u5212","workCenter.scheduleAt":"\u5F00\u59CB\u65F6\u95F4","workCenter.enableSchedule":"\u542F\u7528\u8BA1\u5212","workCenter.disableSchedule":"\u505C\u7528\u8BA1\u5212","workCenter.startImmediately":"\u7ACB\u5373\u5F00\u59CB","workCenter.startImmediatelyHint":"\u5173\u95ED\u540E\u5C06\u521B\u5EFA\u4E3A\u8349\u7A3F\uFF0C\u786E\u8BA4\u65E0\u8BEF\u540E\u518D\u5F00\u59CB\u3002","workCenter.creating":"\u521B\u5EFA\u4E2D\u2026","workCenter.create":"\u521B\u5EFA","workCenter.status.draft":"\u8349\u7A3F","workCenter.status.ready":"\u5F85\u6267\u884C","workCenter.status.running":"\u6267\u884C\u4E2D","workCenter.status.waiting":"\u7B49\u5F85\u4E2D","workCenter.status.needs_attention":"\u9700\u8981\u5904\u7406","workCenter.status.done":"\u5DF2\u5B8C\u6210","workCenter.status.cancelled":"\u5DF2\u53D6\u6D88","workCenter.status.completed":"\u5DF2\u5B8C\u6210","workCenter.status.failed":"\u5931\u8D25","workCenter.status.closed":"\u5DF2\u5173\u95ED","workCenter.status.superseded":"\u5DF2\u66FF\u4EE3","workCenter.action.triage":"\u5206\u6790","workCenter.action.implement":"\u5B9E\u73B0","workCenter.action.review":"\u8BC4\u5BA1","workCenter.action.integrate":"\u96C6\u6210","workCenter.action.deliver":"\u4EA4\u4ED8","workCenter.action.test":"\u6D4B\u8BD5","workCenter.action.research":"\u7814\u7A76","workCenter.action.design":"\u8BBE\u8BA1","workCenter.action.diagnose":"\u8BCA\u65AD","workCenter.action.migrate":"\u8FC1\u79FB","workCenter.action.document":"\u6587\u6863","workCenter.action.operate":"\u8FD0\u7EF4","workCenter.action.write":"\u5199\u4F5C","workCenter.action.create_vp":"\u521B\u5EFA VP","workCenter.action.custom":"\u81EA\u5B9A\u4E49","workCenter.assignment.auto":"\u4F7F\u7528\u4EFB\u52A1\u6D41\u7B56\u7565","workCenter.model.inherit":"\u4F7F\u7528\u4EFB\u52A1\u6D41\u6A21\u578B","workCenter.model.defaultProvider":"\u9ED8\u8BA4 Provider","workCenter.planPreview":"\u6267\u884C\u8BA1\u5212","workCenter.planPreviewHelp":"\u6839\u636E\u5F53\u524D Agent \u7684 VP \u6C60\u548C\u6A21\u578B\u8BBE\u7F6E\u5B9E\u65F6\u89E3\u6790\u3002","workCenter.settings.title":"\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E","workCenter.settings.subtitle":"\u914D\u7F6E Coordinator\uFF0C\u4EE5\u53CA AI \u52A8\u6001\u89C4\u5212\u4F7F\u7528\u7684 Action \u63D0\u793A\u8BCD\u3001\u6A21\u578B\u548C effort\u3002","workCenter.settings.workflow":"\u4EFB\u52A1\u6D41","workCenter.settings.workflowHelp":"Coordinator \u4F1A\u9488\u5BF9\u4EFB\u52A1\u52A8\u6001\u9009\u62E9 Action \u548C\u6267\u884C\u8005\u3002","workCenter.settings.aiWorkflowHelp":"Coordinator \u53EA\u521B\u5EFA\u5F53\u524D\u5FC5\u8981\u7684\u4EFB\u52A1\u4E13\u5C5E Action\u3002\u5185\u7F6E Action \u7B56\u7565\u662F\u53EF\u590D\u7528\u6A21\u677F\uFF1B\u9700\u8981\u65F6 Coordinator \u53EF\u4EE5\u521B\u5EFA\u7CBE\u786E\u7684\u9886\u57DF\u7C7B\u578B\u3002","workCenter.settings.globalInstructions":"Agent \u5168\u5C40\u6307\u4EE4","workCenter.settings.globalInstructionsHint":"\u4F8B\u5982\uFF1A\u9075\u5FAA\u4ED3\u5E93\u53D1\u5E03\u6D41\u7A0B\u3001\u5FC5\u987B\u72EC\u7ACB\u8BC4\u5BA1\uFF0C\u672A\u7ECF\u660E\u786E\u6279\u51C6\u4E0D\u5F97\u521B\u5EFA\u90E8\u7F72 tag\u3002","workCenter.settings.globalInstructionsHelp":"\u4FDD\u5B58\u5728 Agent \u7EA7\uFF0C\u5E76\u51BB\u7ED3\u8FDB\u6BCF\u4E2A\u65B0 Work Item\uFF1B\u5BF9 triage \u548C\u6240\u6709\u751F\u6210\u7684 Action \u751F\u6548\uFF0C\u4F18\u5148\u7EA7\u4F4E\u4E8E Work Item \u5951\u7EA6\u53CA\u7CFB\u7EDF/\u5DE5\u5177\u5B89\u5168\u89C4\u5219\u3002\u5DF2\u6709 Work Item \u4FDD\u7559\u539F\u5FEB\u7167\u3002","workCenter.settings.actionPolicies":"\u5185\u7F6E Action \u7B56\u7565","workCenter.settings.actionPoliciesHelp":"\u8FD9\u4E9B\u662F\u53EF\u590D\u7528\u7684\u6267\u884C\u57FA\u7EBF\uFF0C\u4E0D\u662F\u56FA\u5B9A\u5DE5\u4F5C\u6D41\u3002\u672A\u77E5\u7684\u9886\u57DF Action \u7C7B\u578B\u4F1A\u4F7F\u7528\u201C\u81EA\u5B9A\u4E49\u201D\u7B56\u7565\uFF0C\u5E76\u4FDD\u7559 triage \u751F\u6210\u7684\u7C7B\u578B\u548C\u4EFB\u52A1\u76EE\u6807\u3002","workCenter.settings.dynamicInstructionHelp":"AI \u4F1A\u52A0\u5165 Work Item \u5951\u7EA6\u3001\u5168\u5C40\u6307\u4EE4\u3001\u524D\u5E8F Action \u4E0A\u4E0B\u6587\u3001memory \u548C\u4EFB\u52A1\u4E13\u5C5E\u76EE\u6807\uFF1B\u8FD9\u91CC\u5B9A\u4E49\u8BE5 Action \u7C7B\u578B\u7684\u53EF\u590D\u7528\u884C\u4E3A\u3002","workCenter.settings.models":"\u6A21\u578B","workCenter.settings.modelsHelp":"Provider \u548C\u51ED\u8BC1\u4ECD\u7531 Agent LLM \u8BBE\u7F6E\u7BA1\u7406\uFF1B\u5DE5\u4F5C\u4E2D\u5FC3\u53EA\u9009\u62E9\u53EF\u7528\u6A21\u578B\u3002","workCenter.settings.dynamicModelsHelp":"Coordinator \u4E0E\u5B9E\u9645\u6267\u884C Action \u7684\u6A21\u578B\u53EF\u4EE5\u5206\u522B\u914D\u7F6E\u3002","workCenter.settings.coordinatorModel":"Coordinator","workCenter.settings.coordinatorModelHelp":"\u7528\u4E8E Work Item \u5BF9\u8BDD\u3001\u4FEE\u6539\u76EE\u6807\u548C\u91CD\u65B0\u89C4\u5212\uFF1B\u4E0D\u4F1A\u6267\u884C\u9879\u76EE\u5DE5\u5177\u3002","workCenter.settings.allActions":"\u6240\u6709 Action \u7684\u515C\u5E95\u7B56\u7565","workCenter.settings.maxConcurrentActions":"\u6700\u5927\u5E76\u53D1 Action \u6570","workCenter.settings.maxConcurrentActionsHelp":"\u9ED8\u8BA4 3\u3002\u975E Git\u3001\u810F\u5DE5\u4F5C\u533A\u3001\u5171\u4EAB\u526F\u4F5C\u7528\u548C\u96C6\u6210 Action \u4ECD\u4F1A\u4E32\u884C\u6267\u884C\u3002","workCenter.workItemType":"\u7C7B\u578B","workCenter.typeAuto":"Auto \u2014 \u7531 LLM \u63A8\u65AD","workCenter.typeHelp":"\u53EF\u9009\u62E9\u4EFB\u52A1\u7C7B\u522B\uFF0C\u4E5F\u53EF\u8BA9 AI \u81EA\u52A8\u63A8\u65AD\uFF1B\u5177\u4F53 Actions \u59CB\u7EC8\u7531 AI \u89C4\u5212\u3002","workCenter.planning":"\u89C4\u5212\u4E2D","workCenter.aiPlan":"Coordinator \u9A71\u52A8\u6267\u884C","workCenter.aiPlanHelp":"Coordinator \u4F1A\u4F9D\u636E\u5F53\u524D\u8BC1\u636E\u9009\u62E9\u4E0B\u4E00\u6279 Action \u548C\u6267\u884C\u8005\uFF0C\u4E0D\u518D\u9884\u5148\u751F\u6210\u5DE5\u4F5C\u6D41\u56FE\uFF1B\u6A21\u578B\u4E0E effort \u7531 Work Center \u8BBE\u7F6E\u63A7\u5236\u3002","workCenter.settings.manageProviders":"\u7BA1\u7406 Agent \u6A21\u578B","workCenter.settings.assignment":"VP \u9009\u62E9","workCenter.settings.assignment.auto":"\u4ECE\u5168\u90E8 VP \u81EA\u52A8\u9009\u62E9","workCenter.settings.assignment.pool":"\u5019\u9009\u6C60","workCenter.settings.assignment.fixed":"\u56FA\u5B9A VP","workCenter.settings.capability":"\u6240\u9700\u80FD\u529B","workCenter.settings.vp":"Virtual Person","workCenter.settings.poolMembers":"\u5019\u9009 VP","workCenter.settings.modelPolicy":"\u6A21\u578B\u7B56\u7565","workCenter.settings.model.inherit":"\u7EE7\u627F VP \u504F\u597D","workCenter.settings.model.primary":"Agent \u4E3B\u6A21\u578B","workCenter.settings.model.fast":"Agent \u5FEB\u6A21\u578B","workCenter.settings.model.specific":"\u6307\u5B9A\u6A21\u578B","workCenter.settings.model.tag":"\u6A21\u578B\u6807\u7B7E","workCenter.settings.modelTag":"\u6807\u7B7E","workCenter.settings.modelTag.fast":"\u5FEB\u901F","workCenter.settings.modelTag.balanced":"\u6B63\u5E38","workCenter.settings.modelTag.ultimate":"\u6781\u81F4","workCenter.settings.model":"\u6A21\u578B","workCenter.settings.effort":"\u63A8\u7406\u5F3A\u5EA6","workCenter.settings.effortDefault":"\u6A21\u578B\u9ED8\u8BA4\u503C","workCenter.settings.effortHelp":"\u8986\u76D6\u6240\u9009\u6A21\u578B\u7684\u9ED8\u8BA4\u63A8\u7406\u5F3A\u5EA6\uFF0C\u5E76\u7528\u4E8E\u6240\u6709 Work Center Action\u3002","workCenter.settings.effortChooseModelHelp":"\u9009\u62E9 Agent \u4E3B\u6A21\u578B\u3001\u5FEB\u6A21\u578B\u6216\u6307\u5B9A\u6A21\u578B\u540E\u53EF\u914D\u7F6E\u63A8\u7406\u5F3A\u5EA6\uFF1B\u7EE7\u627F VP \u504F\u597D\u65F6\u4F7F\u7528\u5404 VP \u6A21\u578B\u7684\u9ED8\u8BA4\u503C\u3002","workCenter.settings.effortUnsupportedHelp":"\u6240\u9009\u6A21\u578B\u4E0D\u63D0\u4F9B\u53EF\u914D\u7F6E\u7684\u63A8\u7406\u5F3A\u5EA6\uFF0C\u56E0\u6B64\u4F7F\u7528\u6A21\u578B\u9ED8\u8BA4\u503C\u3002","workCenter.settings.saving":"\u4FDD\u5B58\u4E2D\u2026","workCenter.settings.reload":"\u91CD\u65B0\u52A0\u8F7D\u8BBE\u7F6E","workCenter.settings.conflict":"\u8BBE\u7F6E\u5DF2\u5728\u5176\u4ED6\u4F4D\u7F6E\u66F4\u65B0\uFF0C\u8BF7\u91CD\u65B0\u52A0\u8F7D\u540E\u518D\u4FDD\u5B58\u3002","workCenter.settings.upgradeRequired":"\u5F53\u524D Agent \u7248\u672C\u65E0\u6CD5\u4FDD\u5B58\u5DE5\u4F5C\u4E2D\u5FC3\u8BBE\u7F6E\u3002\u8FD9\u91CC\u4EE5\u53EA\u8BFB\u65B9\u5F0F\u663E\u793A\u5F53\u524D\u503C\uFF1B\u5347\u7EA7 Agent \u540E\u5373\u53EF\u7F16\u8F91\u5E76\u4FDD\u5B58\u3002","workCenter.settings.saveNotConfirmed":"Agent \u672A\u786E\u8BA4\u672C\u6B21\u63D0\u4EA4\u7684\u63D0\u793A\u8BCD\u548C\u6A21\u578B\u7B56\u7565\u3002\u8BBE\u7F6E\u7A97\u53E3\u4E0D\u4F1A\u5173\u95ED\uFF1B\u8BF7\u91CD\u65B0\u52A0\u8F7D\u6216\u5347\u7EA7 Agent \u540E\u518D\u8BD5\u3002","workCenter.settings.addWorkflow":"\u590D\u5236\u4EFB\u52A1\u6D41","workCenter.settings.removeWorkflow":"\u5220\u9664","workCenter.settings.newWorkflow":"\u4EFB\u52A1\u6D41 {index}","workCenter.settings.workflowName":"\u4EFB\u52A1\u6D41\u540D\u79F0","workCenter.settings.newStage":"\u65B0\u9636\u6BB5","workCenter.settings.addStage":"\u6DFB\u52A0\u9636\u6BB5","workCenter.settings.removeStage":"\u5220\u9664\u9636\u6BB5","workCenter.settings.moveUp":"\u4E0A\u79FB\u9636\u6BB5","workCenter.settings.moveDown":"\u4E0B\u79FB\u9636\u6BB5","workCenter.settings.stageType":"\u9636\u6BB5\u7C7B\u578B","workCenter.settings.reviewReturnStage":"\u8981\u6C42\u4FEE\u6539\u65F6\u9000\u56DE\u9636\u6BB5","workCenter.settings.instruction":"\u9636\u6BB5 Prompt","workCenter.settings.instructionHint":"\u5B9A\u4E49\u8FD9\u4E2A\u9636\u6BB5\u5177\u4F53\u8981\u505A\u4EC0\u4E48\u3002","workCenter.settings.instructionHelp":"\u8FD0\u884C\u65F6\u4F1A\u81EA\u52A8\u52A0\u5165 Work Item \u7684\u76EE\u6807\u3001\u9A8C\u6536\u6807\u51C6\u548C\u53EF\u590D\u7528\u4E0A\u4E0B\u6587\u3002","workCenter.settings.instructionReset":"\u6062\u590D\u9ED8\u8BA4\u503C"}});var oh,ah=N(()=>{Gc();Yc();oh={"person.settings":"Settings","person.modelCandidates":"Candidate models","person.modelCandidatesHint":"Choose up to 8 configured models this person may use. Changing candidates does not start thinking.","person.modelsDefault":"Follow Agent model defaults","person.modelUnavailable":"Unavailable \u2014 remove to save other candidates","person.modelsEmpty":"Configure native API models on the Agent first.","person.modelsInvalid":"Select 1\u20138 currently configured models, or follow Agent defaults.","person.modelsScope":"Saved for your digital person on this Agent only. Credentials and Agent defaults are not changed.","person.settingsSaving":"Saving\u2026","person.uploadFiles":"Files","person.attachedFiles":"Attached files","person.filesUploading":"Uploading\u2026","person.filesRetry":"Retry upload","person.filesRemove":"Remove file","person.filesLimit":"Up to 4 files, 5 MiB per file and 10 MiB total. Text files and message together must fit within 24 KiB.","person.filesUnsupported":"Supported: UTF-8 text, code, JSON, CSV and PNG/JPEG/WebP/GIF images. PDF and other binary files are not supported yet.","person.filesFailed":"Upload failed. Retry or remove the file before sending.","person.name":"Name","person.renameUpgrade":"This Agent does not support renaming yet. Upgrade the Agent to edit the name.","person.nameInvalid":"Enter a name (up to 160 UTF-8 bytes).","person.inside":"Inside the digital person","person.overview":"Overview","person.memory":"Memory","person.skills":"Skills & capabilities","person.searchMessages":"Search messages","person.search":"Search","person.noSearchResults":"No matching messages.","person.you":"You","person.currentUnderstanding":"Current understanding","person.createdAt":"Created","person.revision":"Version","person.knowledgeEmpty":"Nothing recorded yet.","person.memoryScope":"Committed memories, grouped by type.","person.skillsScope":"This person\u2019s built-in and created capabilities.","person.epistemicState":"Knowledge status","person.sources":"Sources","person.associations":"Associations","person.useWhen":"Use when","person.avoidWhen":"Avoid when","person.contract":"Contract & definition","person.loadMore":"Load more","person.group.claim":"Claims","person.group.question":"Questions","person.group.method":"Methods","person.group.self-model":"Self model","person.group.scenario":"Scenarios","person.group.interest":"Interests","person.group.cognition":"Cognition","person.group.memory":"Recall","person.group.creation":"Creation","person.group.script":"Created scripts","person.group.filesystem":"Files & directories","person.group.git":"Git","person.group.shell":"Shell","person.group.network":"Web","person.group.native-skill":"Skill library","person.epistemic.reported":"Reported \u2014 not independently verified","person.epistemic.hypothesis":"Hypothesis","person.epistemic.imagined":"Imagined","person.epistemic.uncertain":"Uncertain","person.title":"Digital Person","person.navigation":"Global navigation","person.plugins":"Plugins","person.agent":"Agent","person.noAgent":"Connect an Agent to use Digital Person.","person.offlineShort":"Offline","person.disconnected":"Connection lost. Reconnect to refresh this Person; commands are not resent automatically.","person.offline":"This Agent is offline. Its Person will refresh when it reconnects.","person.disabled":"Enable Digital Person for this Agent in Agent settings.","person.unsupported":"This Agent does not advertise digital_person. Ask its operator to upgrade it; Session chat is unchanged.","person.loading":"Loading\u2026","person.busy":"Working\u2026","person.activity.confirming":"Confirming your request\u2026","person.activity.preparing":"Preparing to respond\u2026","person.activity.thinking":"Thinking it through\u2026","person.activity.dreaming":"Exploring memories and possibilities\u2026","person.activity.recalling":"Looking up relevant memories\u2026","person.activity.searchingSkills":"Looking for a suitable skill\u2026","person.activity.readingSkill":"Reading a skill\u2026","person.activity.readingMethod":"Reading a thinking method\u2026","person.activity.validatingCapability":"Checking a new capability\u2026","person.activity.runningScript":"Running a script\u2026","person.activity.usingCapability":"Using a capability\u2026","person.activity.processingResponse":"Processing the response\u2026","person.activity.stopping":"Stopping this round\u2026","person.activity.completed":"This activity is complete","person.activity.failed":"This activity could not finish","person.activity.cancelled":"This round was cancelled","person.activity.interrupted":"This round was interrupted","person.activity.budgetExhausted":"This round reached its limit","person.activity.stale":"Waiting for an update; progress is unknown","person.activity.disconnected":"Connection lost; cannot confirm progress","person.activity.uncertain":"The request is not yet confirmed; progress is unknown","person.activity.model":"Thinking","person.activity.recall":"Memory lookup","person.activity.skillSearch":"Skill search","person.activity.skillRead":"Skill reading","person.activity.methodRead":"Thinking method","person.activity.capabilityCreate":"Capability validation","person.activity.script":"Script execution","person.activity.capability":"Capability use","person.activity.details":"Activity","person.activity.limited":"Only recent activity is shown; earlier steps may be missing.","person.activity.elapsed":"Took {duration}","person.activity.durationSeconds":"{seconds}s","person.activity.durationMinutes":"{minutes}m {seconds}s","person.activity.status.running":"In progress","person.activity.status.completed":"Completed","person.activity.status.failed":"Failed","person.activity.status.cancelled":"Cancelled","person.activity.status.interrupted":"Interrupted","person.activity.status.unknown":"Unknown","person.ready":"Waiting for you","person.manualMode":"Manual mode","person.manualHint":"Send a message or click Think / Dream to start one activity. No automatic thinking; you can cancel while it runs.","person.version":"State v{version}","person.cancelling":"Cancelling\u2026","person.configureTitle":"Configure Digital Person on this Agent","person.configureAgent":"Memory uses local SQLite by default; no database service is needed. Configure a native model provider for this Agent instance. If unavailable, check instance storage permissions and model configuration. Existing MongoDB deployments keep their configured backend.","person.configureSecrets":"Keep provider keys and optional database credentials on the Agent machine. Do not paste credentials into conversations or thought records.","person.configureRefresh":"After the operator applies the configuration (and restarts the Agent if required), select Refresh. This page does not restart services or create a fallback Session.","person.requestFailed":"Request failed.","person.timeout":"The response timed out; the operation may still be running. Refresh before deciding whether to retry.","person.uncertain":"A command has not been acknowledged. Check the refreshed conversation and Thought journal before retrying or starting another command.","person.retrySame":"Retry same command ID","person.discardRetry":"Dismiss retry (does not cancel)","person.conversation":"Digital Person conversation","person.messages":"Conversation messages","person.olderMessages":"Load older messages","person.empty":"Share what is on your mind, or let a thought unfold.","person.system":"System","person.input":"Message or thought topic","person.placeholder":"Write a message\u2026","person.thinkHint":"Think: recall, reconsider and associate using the optional topic above. Dream explores memories and possibilities without requiring a topic.","person.dream":"Dream","person.think":"Think","person.send":"Send","person.more":"More","person.views":"Digital Person views","person.chat":"Conversation","person.thoughts":"Thought journal","person.debug":"Debug logs","person.back":"Back","person.welcome":"A conversation, a new idea","person.thoughtsHint":"Inputs, recalled memories, ideas, self-checks and outputs \u2014 recorded as they happen.","person.recordsStale":"New records may be available. Refresh to return to the latest page.","person.olderThoughts":"Load earlier thoughts","person.noThoughts":"No readable thoughts on this page yet. Try earlier records or start a conversation, Think or Dream.","person.debugHint":"Technical diagnostics: raw events, model requests and state versions. Thought content is presented separately in the Thought journal.","person.noDebug":"No diagnostic events yet.","person.moreDebug":"Load more logs","person.state":"Current state","person.episodeFailed":"The latest activity did not complete. Check the Thought journal; technical details are in Debug logs.","person.thought.input":"Input","person.thought.think":"Think","person.thought.dream":"Dream","person.thought.context":"Memories in mind","person.thought.thought":"Ideas and output","person.thought.activity":"Reflection","person.thought.memory":"Recalled memories","person.thought.capability_created":"Self-created capability","person.thought.script_executed":"Script invocation","person.thought.capability_failed":"Capability attempt failed","person.thought.capability_published":"Capability saved independently of thought adoption","person.thought.capability_name":"Capability name","person.thought.capability_description":"What it does","person.thought.capability_version":"Version","person.thought.capability_tests_passed":"Tests passed","person.thought.capability_tests_limit":"Passing these tests does not prove correctness for other inputs","person.thought.capability_recorded":"Recorded capability outcome \u2014 not an adopted conclusion","person.thought.script_succeeded":"Pure computation completed","person.thought.script_test_failed":"Script tests did not pass","person.thought.script_execution_failed":"Script could not complete","person.thought.script_timeout":"Script time limit reached","person.thought.script_output_invalid":"Script output did not meet requirements","person.thought.script_version_unavailable":"Requested script version unavailable","person.thought.script_busy":"Script execution is busy","person.thought.capability_failure_unknown":"Capability could not complete; technical details are in Debug logs","person.thought.committed":"Adopted","person.thought.rejected":"Not adopted","person.thought.cancelled":"Activity cancelled","person.thought.failed":"Activity failed","person.thought.interrupted":"Activity interrupted","person.thought.budget_exhausted":"Activity limit reached","person.thought.candidate":"Not yet adopted","person.thought.incomplete":"Incomplete record","person.thought.recorded":"Recorded","person.thought.state_summary":"Current understanding","person.thought.appraisal":"Perspective","person.thought.user_message":"What you said","person.thought.person_message":"Earlier response","person.thought.concept_reported":"Reported information","person.thought.concept_hypothesis":"Hypothesis","person.thought.concept_imagined":"Imagined possibility","person.thought.concept_uncertain":"Uncertain idea","person.thought.activity_summary":"Reflection","person.thought.decision_summary":"Judgment","person.thought.self_check":"Self-check","person.thought.uncertainties":"Open questions","person.thought.reply":"Response","person.thought.next_reason":"Why continue","person.thought.unstructured":"Unstructured output \u2014 not an adopted conclusion","person.thought.unavailable":"No readable output was recorded","person.thought.previous_candidate":"Earlier candidate \u2014 not adopted","person.thought.recalled":"Recalled for this thought","person.thought.structured_unavailable":"Incomplete or invalid structured output; details are available in Debug logs","scheduleDatePicker.chooseDate":"Choose date","scheduleDatePicker.previousMonth":"Previous month","scheduleDatePicker.nextMonth":"Next month","scheduleDatePicker.today":"Today","scheduleDatePicker.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.",...eh,...sh,"quickSend.composer.label":"Quick send","quickSend.composer.send":"Quick send {number}: {name}","common.loading":"Loading...","common.confirm":"OK","common.apply":"Apply","common.cancel":"Cancel","common.delete":"Delete","common.copy":"Copy","common.copied":"Copied","common.close":"Close","common.refresh":"Refresh","common.open":"Open","common.save":"Save","common.saving":"Saving...","common.search":"Search","common.back":"Back","common.noSubdirectories":"No subdirectories","common.drives":"Drives","common.rootDir":"Root","common.comma":", ","common.select":"Select","common.retry":"Retry","mermaid.export":"Export","mermaid.exportMd":"Export MD","mermaid.exportPng":"Export PNG","mermaid.exportJpg":"Export JPG","login.subtitle":"Yeaft Web Code Agent","login.username":"Username","login.password":"Password","login.login":"Login","login.loggingIn":"Logging in...","login.enterUsername":"Please enter your username","login.enterPassword":"Please enter your password","login.noAccount":"Don't have an account?","login.registerWithCode":"Register","login.or":"or","login.usePassword":"Sign in with username & password","login.useSso":"Back to single sign-on","login.noProviders":"No third-party sign-in providers are enabled.","login.microsoft":"Sign in with Microsoft","login.github":"Sign in with GitHub","login.google":"Sign in with Google","login.wechat":"Sign in with WeChat","login.alipay":"Sign in with Alipay","login.wechat.mobileUnsupported":"Sign in with WeChat is only available on PC. Please scan the QR code from a desktop browser.","login.alipay.mobileWaiting":"Waiting for you to confirm in the Alipay app\u2026 Once you finish, return to this page and you will be signed in automatically.","login.alipay.relaunch":"Open Alipay again","login.qr.title":"Scan to sign in","login.qr.titleAlipay":"Sign in with Alipay","login.qr.titleWechat":"Sign in with WeChat","login.qr.hint":"Scan the QR code with your phone to authorize.","login.error.enterUsername":"Please enter your username","login.error.enterPassword":"Please enter your password","login.error.enter6Digit":"Please enter a 6-digit code","login.error.enterInviteCode":"Please enter the invite code","login.error.usernameMinLen":"Username must be at least 2 characters","login.error.passwordMinLen":"Password must be at least 6 characters","login.error.passwordMismatch":"Passwords do not match","login.error.enterVerifyCode":"Please enter the verification code","login.error.loginFailed":"Login failed","login.forgot.link":"Forgot password?","login.forgot.title":"Reset your password","login.forgot.emailHint":"Enter the email address on your account. We will send a 6-digit reset code.","login.forgot.sendCode":"Send Reset Code","login.forgot.sending":"Sending...","login.forgot.codeSent":"If the email is on file, a 6-digit reset code has been sent. Enter it below along with your new password.","login.forgot.resetBtn":"Reset Password","login.forgot.resetting":"Resetting...","login.forgot.success":"Password reset. You can now sign in with your new password.","login.forgot.emailInvalid":"Please enter a valid email","login.register.title":"New User Registration","login.register.inviteCode":"Invite Code","login.register.username":"Username","login.register.password":"Password (min 6 characters)","login.register.confirmPassword":"Confirm Password","login.register.email":"Email (optional)","login.register.submit":"Register","login.register.submitting":"Registering...","login.register.back":"Back to Login","login.register.success":"Registration successful, please login","login.register.enterCode":"Please enter the invite code","login.register.usernameMin":"Username must be at least 2 characters","login.register.passwordMin":"Password must be at least 6 characters","login.register.passwordMismatch":"Passwords do not match","login.totp.setupTitle":"Set Up Two-Factor Authentication","login.totp.setupHint":"Scan the QR code below with Microsoft Authenticator or Google Authenticator","login.totp.manualKey":"Or enter the key manually:","login.totp.enterCode":"Enter 6-digit code","login.totp.complete":"Complete Setup","login.totp.verifying":"Verifying...","login.totp.verify":"Verify","login.totp.prompt":"Enter the code from your Authenticator app","login.totp.invalidCode":"Please enter a 6-digit code","login.email.codeSent":"Verification code sent to {email}","login.email.enterCode":"Enter verification code","login.email.verify":"Verify","login.email.verifying":"Verifying...","login.email.enterCodeError":"Please enter the verification code","chat.agent.select":"Select Agent","chat.agent.manage":"Manage Agents","chat.agent.count":"{count} agents","chat.agent.updatesAvailable":"{count} Agent update(s) available","chat.agent.updateAvailable":"Update available: v{version}","chat.agent.none":"No Agents","chat.agent.restarting":"Restarting","agentSettings.open":"Agent settings","agentSettings.manage":"Manage","agentSettings.eyebrow":"Local runtime","agentSettings.title":"Agent settings","agentSettings.description":"Inspect and configure each connected Agent without mixing runtime controls into account settings.","agentSettings.agentList":"Agent","agentSettings.categories":"Agent setting categories","agentSettings.categories.operations":"Operations","agentSettings.categories.trace":"Trace","agentSettings.categories.llm":"LLM configuration","agentSettings.selectedAgent":"Selected Agent","agentSettings.online":"Online","agentSettings.offline":"Offline","agentSettings.empty":"No Agents are available.","agentSettings.runtime.title":"Runtime","agentSettings.runtime.description":"Identity, workspace, and local background processing.","agentSettings.runtime.version":"Version","agentSettings.runtime.updateAvailable":"Update available: v{version}","agentSettings.runtime.updateUnknown":"Update status unavailable","agentSettings.runtime.workDir":"Working directory","agentSettings.digitalPerson.title":"Digital Person","agentSettings.digitalPerson.description":"Show Digital Person for this Agent in this browser. Off by default; hiding it does not stop activities or delete data.","agentSettings.workCenter.title":"Work Center","agentSettings.workCenter.enabled":"Enabled","agentSettings.workCenter.disabled":"Disabled","agentSettings.workCenter.runtimeUnavailable":"Startup failed","agentSettings.workCenter.runtimeUnavailableMessage":"Work Center is configured on, but its runtime did not start. Review the Agent logs and try again.","agentSettings.workCenter.runtimeUnavailableHint":"Configured on, but the Work Center runtime is currently unavailable.","agentSettings.workCenter.enabledHint":"Persistent work is available on this Agent. New Sessions can also create Work Items.","agentSettings.workCenter.disabledHint":"Enable persistent Work Items and background execution on this Agent.","agentSettings.workCenter.environmentManaged":"Managed by YEAFT_WORK_CENTER_ENABLED and cannot be changed here.","agentSettings.workCenter.upgradeRequired":"Upgrade this Agent to manage Work Center availability.","agentSettings.workCenter.unsupported":"Upgrade required","agentSettings.workCenter.loadFailed":"Failed to load Work Center status.","agentSettings.workCenter.loadFailedStatus":"Load failed","agentSettings.workCenter.saveFailed":"Failed to update Work Center.","agentSettings.telemetry.title":"Diagnostics","agentSettings.telemetry.saved":"Diagnostics settings saved.","agentSettings.telemetry.loadFailed":"Failed to load diagnostics settings.","agentSettings.telemetry.saveFailed":"Failed to save diagnostics settings.","agentSettings.maintenance.title":"Maintenance","agentSettings.maintenance.description":"These operations interrupt work running on the selected Agent.","agentSettings.maintenance.upgradeFailed":"Agent upgrade failed.","chat.agent.restart":"Restart","chat.agent.restartConfirm":`Are you sure you want to restart Agent "{name}"?
|
|
14
14
|
All active conversations will be interrupted.`,"chat.agent.upgrade":"Upgrade","chat.agent.upgrading":"Upgrading","chat.agent.upgradeConfirm":`Upgrade Agent "{name}" to the latest version?
|
|
15
15
|
The agent will restart after upgrading.`,"chat.agent.upgradeAll":"Upgrade all","chat.agent.upgradingAll":"Upgrading all\u2026","chat.agent.upgradeAllConfirm":`Upgrade {count} eligible Agent(s) to the latest version?
|
|
16
16
|
They will restart after upgrading. {skipped} other Agent(s) will be skipped because they are currently unavailable or do not support safe remote upgrades.`,"chat.agent.upgradeAllSummary":"Agent upgrades finished: {upgraded} upgraded, {latest} already current, {failed} failed, {skipped} skipped.","chat.agent.alreadyLatest":"Agent is already at the latest version (v{version}), no upgrade needed.","chat.agent.nodeIncompatible":"Agent upgrade aborted: target version v{version} requires Node {required}, but this machine is running Node {current}. Please upgrade Node.js first, then retry.","chat.agent.manualUpgradeRequired":'Agent v{version} does not advertise the safe remote-upgrade contract. Older clients do not report enough platform information to rule out the Windows package-lock failure, so this request was blocked instead of repeating a known-bad upgrade. First stop the selected Agent/service on that machine: if it runs under PM2 or another service manager, stop that exact instance there; if it runs in a foreground terminal, terminate that process. Confirm that process has exited, then run "npm install -g @yeaft/webchat-agent@latest --registry=https://pkg.yeaft.com/". Finally, start the same Agent instance again with its original configuration. Browser upgrades will work after this one-time bridge.',"chat.agent.containerImageUpgradeRequired":'Container Agent v{version} is managed as a Docker image and cannot upgrade itself with npm. On the Docker Host, run "docker pull <configured-agent-image>", then recreate the same container through the existing Server/Sandbox lifecycle or the original "yeaft-agent container install" command. Keep the existing /home/yeaft/.yeaft and /workspace persistent volumes and reuse the original host-side 0600 agent-secret file. Do not remove those volumes during recreation.',"chat.agent.online":"{count} Agent(s) online","chat.agent.selectFirst":"Please select an Agent first","chat.agent.yeaft":"Yeaft Chat","sidebar.toggle.chat":"Switch to Chat","sidebar.toggle.yeaft":"Switch to Yeaft","sidebar.surface.label":"Sidebar view","sidebar.surface.sessions":"Sessions","sidebar.provider.label":"Session provider","sidebar.provider.claude":"Claude","sidebar.sessions.new":"New session","sidebar.sessions.newChat":"New chat","sidebar.sessions.emptyProvider":"No sessions for this provider","sidebar.sessions.menu":"Session menu","sidebar.sessions.unread":"Unread","sidebar.sessions.pinned":"Pinned","sidebar.sessions.processing":"Reply in progress","sidebar.sessions.hidden":"Hidden sessions","sidebar.sessions.remove":"Remove from sidebar","sidebar.sessions.agent":"Agent","sidebar.sessions.provider":"Provider","sidebar.projects.title":"Projects","sidebar.projects.menu":"Project menu","sidebar.projects.new":"New project","sidebar.projects.newSession":"New Session in {name}","sidebar.projects.assignFailed":"Session created, but it could not be added to {name}. Error: {message}","sidebar.projects.empty":"No projects yet","sidebar.projects.noSessions":"Drag a Yeaft chat here","sidebar.projects.namePrompt":"Project name","sidebar.projects.renamePrompt":"Rename project","sidebar.projects.rename":"Rename project","sidebar.projects.delete":"Delete project","sidebar.projects.deleteConfirm":'Delete project "{name}"? Its chats will move to Recents.',"sidebar.projects.remove":"Remove from project","sidebar.projects.moveMenu":"Move to Projects","sidebar.projects.moveBack":"Back","sidebar.projects.moveEmpty":"No other projects","sidebar.projects.moveTo":"Move to {name}","sidebar.projects.instructions":"Project instructions","sidebar.projects.instructionsTitle":"{name} instructions","sidebar.projects.instructionsHint":"These instructions are added to the system prompt for every Session in this Project.","sidebar.projects.instructionsPlaceholder":"Add shared coding conventions, constraints, or workflow guidance...","sidebar.recents.title":"Recents","sidebar.recents.empty":"No chats found","yeaft.back":"Back","yeaft.session.people":"People","yeaft.session.peopleEmpty":"No people","yeaft.session.runningTasks":"Running tasks","yeaft.session.tasksEmpty":"No running tasks","yeaft.session.owner":"Owner","yeaft.session.started":"Started","yeaft.breadcrumb.label":"Thread filter","yeaft.breadcrumb.mainStream":"Main stream","yeaft.breadcrumb.backHint":"Return to full stream (Esc)","yeaft.featureDetail.ariaLabel":"Task detail","yeaft.featureDetail.replyTo":"Reply in:","yeaft.featureDetail.forkHint":"No active thread \u2014 fork a new one to reply.","yeaft.featureDetail.empty":"No messages for this task yet.","yeaft.featureDetail.threadPillHint":"Open thread","yeaft.featureDetail.summary.aria":"Task summary timeline","yeaft.featureDetail.summary.title":"Summary timeline","yeaft.featureDetail.summary.loading":"Loading summary history\u2026","yeaft.featureDetail.summary.empty":"No summaries yet.","yeaft.featureDetail.summary.error":"Summary history failed: {error}","yeaft.featureDetail.summary.showArchived":"Show archived","yeaft.featureDetail.related.aria":"Related tasks","yeaft.featureDetail.related.title":"Related tasks","yeaft.featureDetail.related.unlink":"Unlink","yeaft.featureDetail.members.aria":"Task members","yeaft.featureDetail.members.title":"Members","yeaft.featureDetail.members.abort":"Abort","yeaft.featureDetail.members.kick":"Kick","yeaft.model":"Model","yeaft.placeholder":"Ask anything...","yeaft.inbox":"Inbox","yeaft.inbox.tooltip":"Your default thread \u2014 one-on-one chat with Yeaft. New threads can be created for specific topics or tasks.","yeaft.sidebar.activeThreads":"Active","yeaft.sidebar.idleThreads":"Idle","yeaft.sidebar.archivedThreads":"Archived","yeaft.sidebar.tasks":"Tasks","yeaft.sidebar.emptyActive":"No active threads","yeaft.sidebar.emptyIdle":"No idle threads","yeaft.sidebar.emptyArchived":"No archived threads","yeaft.sidebar.emptyTasks":"No tasks match","yeaft.sidebar.results":"Results","yeaft.sidebar.resultsThreads":"Threads","yeaft.sidebar.kindThread":"thread","yeaft.sidebar.cancel":"Cancel","yeaft.sidebar.mergeInto":"Merge into\u2026","yeaft.sidebar.mergeNoCandidates":"No other threads to merge into","yeaft.sidebar.mergeConfirmTitle":"Merge this thread?","yeaft.sidebar.mergeIrreversible":"This cannot be undone. The source thread will be archived and its messages moved to the target.","yeaft.sidebar.mergeConfirm":"Merge","yeaft.settings.sidebarV2":"Experimental: Sidebar V2","yeaft.settings.sidebarV2Hint":"Thread list + task tree (preview).","yeaft.clearConfirm":"Clear all messages?","yeaft.mode":"Mode","yeaft.agent":"Agent","yeaft.connecting":"Connecting...","yeaft.ready":"Ready","yeaft.tools":"tools","yeaft.skills":"skills","yeaft.mcp":"MCP","yeaft.showSidebar":"Show sidebar","yeaft.hideSidebar":"Hide sidebar","yeaft.debug":"Debug","yeaft.debugClose":"Close debug panel","yeaft.debugTurns":"turns","yeaft.debugTabToolStats":"Tool Stats","yeaft.debugTabRequestLog":"Request Log","yeaft.debugHistoryLoad":"Load request history","yeaft.debugHistoryLoading":"Loading...","yeaft.debugHistoryLoaded":"{count} loaded","yeaft.debugHistoryUnavailable":"The debug trace request timed out. The Agent may be offline or the response may have been dropped. Try again.","yeaft.debugHistoryTruncated":"This trace was too large for one response. Large fields are previewed here; the full trace remains on the Agent.","yeaft.debugSearchPlaceholder":"Regex search request logs","yeaft.debugSearchHint":"Shows the latest 10 globally by default; search matches request summaries across Sessions.","yeaft.debugTurnAction":"View debug trace for this turn","yeaft.debugTurnContext":"Trace","yeaft.debugPanelEmpty":"Hover over an AI turn and click the debug icon to view its trace.","yeaft.debugGroupFollowMain":"Follow main pane","yeaft.debugGroupAll":"All sessions","yeaft.debugAssistantResponse":"Assistant response","yeaft.debugViewAssistantResponse":"View response","yeaft.debugLatestRequestBody":"Latest available request body","yeaft.debugLatestSystemPrompt":"Latest available system prompt","yeaft.debugRequestBodyUnavailable":"No request body is available for this turn yet.","yeaft.debugSystemPromptUnavailable":"No system prompt is available for this turn yet.","yeaft.debugInputSystemShort":"system","yeaft.debugInputHistoryShort":"history","yeaft.debugInputToolsShort":"tool definitions","yeaft.debugInputCurrentShort":"current","yeaft.debugInputTokenBreakdown":"Provider input {total}: system prompt {system}, history messages {history}, tool definitions {tools}, current turn {current} (estimated split)","yeaft.debugToolInput":"Input","yeaft.debugToolResult":"Result","yeaft.debugToolRunning":"running","yeaft.debugToolRunningNoResult":"Running; no result yet","yeaft.debugShowDetails":"show","yeaft.debugHideDetails":"hide","yeaft.debugTurnStartedAt":"turn started at","yeaft.debugRequestAt":"request time","yeaft.debugRequestAtDerived":"derived from turn start (legacy loop)","yeaft.turn":"Turn {n}","yeaft.systemPrompt":"System Prompt","yeaft.messagesLabel":"Messages","yeaft.response":"Response","yeaft.toolCalls":"Tool Calls","yeaft.functionCalls":"Function Calls","yeaft.request":"Request","yeaft.pending":"(pending)","yeaft.inputTokens":"Input","yeaft.outputTokens":"Output","yeaft.duration":"Duration","yeaft.noDebugData":"No debug data yet","yeaft.showDebug":"Show debug panel","yeaft.hideDebug":"Hide debug panel","yeaft.reloadPage":"Reload page","yeaft.reloadMessages":"Reload messages","sidebar.sessions.syncing":"Syncing latest messages","yeaft.historySearch.label":"Search Session history","yeaft.historySearch.button":"Search messages","yeaft.historySearch.placeholder":"Search messages in this Session","yeaft.historySearch.searching":"Searching\u2026","yeaft.historySearch.minChars":"Type at least 2 characters","yeaft.historySearch.empty":"No matching messages","yeaft.historySearch.error":"Search failed. Try again.","yeaft.historySearch.unsupported":"Upgrade this Agent to search Session history.","yeaft.historySearch.more":"Load more results","yeaft.historySearch.you":"You","yeaft.historySearch.assistant":"Assistant","yeaft.outline.label":"Message history","yeaft.outline.sender":"Sender","yeaft.outline.allSenders":"All senders","yeaft.outline.title":"Message history","yeaft.outline.placeholder":"Search this conversation","yeaft.outline.searching":"Searching\u2026","yeaft.outline.loading":"Loading\u2026","yeaft.outline.older":"Load older messages","yeaft.outline.moreMatches":"Load more matches","yeaft.outline.minChars":"Type at least 2 characters","yeaft.outline.empty":"No messages yet","yeaft.outline.noMatches":"No matching messages","yeaft.outline.error":"Could not load the outline. Try again.","yeaft.outline.unsupported":"Upgrade this Agent to use the conversation outline.","yeaft.outline.you":"You","yeaft.outline.assistant":"Assistant","yeaft.outline.nonText":"Non-text response","yeaft.switchModel":"Switch model","yeaft.modelMenu.title":"Model and LLM settings","yeaft.modelMenu.label":"Model","yeaft.modelMenu.effort":"Effort","yeaft.modelMenu.effort.openaiReasoning":"Reasoning effort","yeaft.modelMenu.effort.anthropicBudget":"Thinking budget","yeaft.modelMenu.effort.anthropicAdaptive":"Adaptive thinking effort","yeaft.modelMenu.effort.minimal":"Minimal","yeaft.modelMenu.effort.low":"Low","yeaft.modelMenu.effort.medium":"Medium","yeaft.modelMenu.effort.high":"High","yeaft.modelMenu.effort.xhigh":"X-High","yeaft.modelMenu.effort.max":"Max","yeaft.modelMenu.effort.ultra":"Ultra","yeaft.modelMenu.noEffort":"This model does not expose a compatible effort control.","yeaft.modelMenu.configureHint":"Providers, keys, model list","yeaft.settings.title":"Settings","settings.yeaft.tabs.vp":"VP Library","settings.yeaft.tabs.search":"Search","settings.yeaft.tabs.mcp":"MCP","yeaft.settings.tabs.vp":"VP Library","yeaft.settings.tabs.search":"Search","yeaft.settings.tabs.mcp":"MCP","settings.mcp.title":"MCP servers","settings.mcp.description":"Connect Model Context Protocol servers to extend Yeaft with extra tools. Servers are stored in ~/.yeaft/config.json on the agent; tools appear in the LLM's catalogue as mcp__<server>__<tool>.","settings.mcp.reloadAll":"Reload all","settings.mcp.reloadOne":"Reconnect this server","settings.mcp.loading":"Working\u2026","settings.mcp.connected":"connected","settings.mcp.disconnected":"disconnected","settings.mcp.tools":"tools","settings.mcp.remove":"Remove","settings.mcp.empty":"No MCP servers configured yet. Add one below.","settings.mcp.addServer":"Add server","settings.mcp.addServerDesc":"Most MCP servers run as a local command \u2014 Yeaft launches it via stdio and discovers its tools.","settings.mcp.serverName":"Name","settings.mcp.command":"Command","settings.mcp.args":"Arguments","settings.mcp.argsPlaceholder":"e.g. -y @modelcontextprotocol/server-filesystem /tmp","settings.mcp.env":"Environment","settings.mcp.envPlaceholder":"KEY=value per line. Lines starting with # are ignored.","settings.mcp.saving":"Saving\u2026","settings.mcp.add":"Add","settings.mcp.cancel":"Clear","settings.mcp.connectFailed":"Saved but failed to connect","settings.mcp.addSuccess":"Server added","settings.mcp.removeSuccess":"Server removed","settings.mcp.reloadSuccess":"Reload requested","settings.mcp.confirmRemove":'Remove MCP server "{name}"? Its tools will disappear from the next LLM turn.',"settings.mcp.errors.nameRequired":"Name is required","settings.mcp.errors.nameFormat":"Name must be lowercase letters, digits, dashes or underscores only","settings.mcp.errors.commandRequired":"Command is required","settings.mcp.errors.argsParse":"Could not parse arguments","settings.mcp.errors.envParse":"Could not parse environment","search.settings.backendTitle":"Search backend","search.settings.backendDesc":"Choose the primary backend for the WebSearch tool. If the primary fails, the engine automatically falls back to HTML scraping.","search.settings.backend.tavily":"Tavily","search.settings.backend.tavilyHint":"Hosted search API. Free tier: 1000 queries/month. Recommended.","search.settings.backend.playwright":"Playwright service","search.settings.backend.playwrightHint":"Self-hosted browser-based search/fetch. Best for cloud IPs that get bot-blocked. Service not yet shipped.","search.settings.comingSoon":"Coming soon","search.settings.tavilyKeyTitle":"Tavily API key","search.settings.tavilyKeyDesc":"Stored on the agent in ~/.yeaft/config.json. Get a free key at","search.settings.tavilyKeyUnchanged":"(unchanged)","search.settings.clearKey":"Clear","search.settings.usageTitle":"Usage this month","search.settings.usageRefresh":"Refresh","search.settings.usageLoading":"Loading\u2026","search.settings.usagePlan":"Plan","search.settings.usageUsed":"Used","search.settings.usagePaygo":"Pay-as-you-go","search.settings.usageError":"Failed to load usage","search.settings.save":"Save","search.settings.saving":"Saving\u2026","search.settings.saveSuccess":"Saved","search.settings.cancel":"Reset","yeaft.settings.yeaftTitle":"Thread Concurrency & Archive","yeaft.settings.yeaftDesc":"Tune how many threads can run at once and when idle threads are auto-archived.","yeaft.settings.maxConcurrentLabel":"Max concurrent threads","yeaft.settings.maxConcurrentHint":"Maximum number of live threads at once (includes the always-on main thread). New threads beyond this cap are refused until an existing thread is archived or terminated. Range: 1-50.","yeaft.settings.archiveIdleDaysLabel":"Auto-archive idle threads after (days)","yeaft.settings.archiveIdleDaysHint":"Threads with no activity for this many days will be archived. Range: 1-3650.","yeaft.settings.yeaftSaveBtn":"Save","yeaft.settings.yeaftSaving":"Saving...","yeaft.settings.yeaftSaved":"Saved","yeaft.settings.yeaftLoading":"Loading...","yeaft.settings.yeaftLoadError":"Failed to load Yeaft settings","yeaft.settings.yeaftSaveError":"Failed to save Yeaft settings","yeaft.settings.rangeErrorConcurrent":"Must be between 1 and 50","yeaft.settings.rangeErrorArchive":"Must be between 1 and 3650","chat.session.creating":"Creating conversation...","chat.session.loadingHistory":"Loading conversation history...","yeaft.historyLoad.error":"Conversation history could not be loaded. Your messages are still stored on the Agent.","yeaft.historyLoad.retry":"Retry loading","yeaft.sessionInventory.error":"Sessions could not be loaded. Your conversations are still stored on the Agent.","yeaft.sessionInventory.retry":"Retry Sessions","chat.session.closed":"Conversation closed","chat.session.agentOffline":"Agent is offline. This session will be available when the agent reconnects.","chat.execution.cancelled":"Execution cancelled","chat.sidebar.expand":"Expand menu","chat.sidebar.collapse":"Collapse sidebar","chat.sidebar.workbench":"Workbench","chat.sidebar.newConv":"Conversation","chat.sidebar.recentChats":"Recent Chats","chat.sidebar.resumeConv":"Resume Conversation","chat.sidebar.lightMode":"Light Mode","chat.sidebar.darkMode":"Dark Mode","chat.sidebar.settings":"Settings","chat.sidebar.emptyHint":"Click the button above to create a new conversation","chat.sidebar.closeConv":"Close Conversation","chat.sidebar.renameConv":"Rename","chat.sidebar.pin":"Pin to top","chat.sidebar.unpin":"Unpin","chat.connection.connecting":"Connecting...","chat.connection.reconnecting":"Reconnecting ({current}/{max})...","chat.connection.updating":"Server is updating, please wait...","chat.connection.disconnected":"Disconnected","chat.connection.reconnect":"Reconnect","chat.connection.reconnectFailed":"Connection lost. Please click reconnect to retry.","chat.time.justNow":"Just now","chat.time.minutesAgo":"{count}m ago","chat.time.daysAgo":"{count}d ago","chat.time.today":"Today","chat.time.yesterday":"Yesterday","chat.delete.confirm":"Are you sure you want to close this conversation? This will terminate the corresponding Claude process.","chat.delete.enterWorkDir":"Please enter the working directory path","modal.newConv.workDir":"Work Directory","modal.newConv.inputOrSelect":"Enter or select a work directory","modal.newConv.browse":"Browse","modal.newConv.noWorkDirs":"No work directories","modal.newConv.selectAgent":"Please select an online Agent first","modal.newConv.create":"Create Conversation","modal.newConv.folderLabel":"\u{1F4C1} Work Directories","modal.newConv.provider":"Provider","modal.newConv.model":"Model","provider.claudeCode":"Claude Code","provider.copilot":"Copilot","modal.resume.workDir":"Work Directory","modal.resume.inputOrSelect":"Enter or select a work directory","modal.resume.browse":"Browse","modal.resume.tabFolders":"Directories","modal.resume.tabSessions":"History","modal.resume.noWorkDirs":"No work directories","modal.resume.selectWorkDir":"Please select a work directory first","modal.resume.noSessions":"No history sessions in this directory","modal.resume.untitled":"Untitled Session","modal.resume.folderLabel":"\u{1F4C1} Work Directories","modal.resume.sessionLabel":"\u{1F4AC} History Sessions","modal.resume.selectAgent":"Please select an online Agent first","modal.folderPicker.title":"Select Work Directory","modal.folderPicker.root":"Root / drives","modal.folderPicker.path":"Directory path","modal.folderPicker.go":"Go","modal.folderPicker.ancestors":"Directory ancestors","modal.folderPicker.directories":"Subdirectories","modal.folderPicker.navigationHint":"Click a folder to open it, then select the current directory.","modal.folderPicker.selectCurrent":"Select this directory","modal.folderPicker.loadFailed":"Cannot open this directory. Check the path and permissions, or retry.","modal.folderPicker.unavailable":"Agent unavailable. Reconnect and retry.","modal.folderPicker.timeout":"Directory request timed out. Please retry.","modal.folderPicker.parentDir":"Parent Directory","welcome.subtitle":"Web Code Agent for sessions, tools, and VP collaboration","welcome.agentOnline":"{count} Agent(s) online","welcome.noAgents":"No Agents Online","welcome.noAgentsHint":"Please start an Agent and connect it to the server","welcome.noAgent":"No Agents Online","welcome.noAgentHint":"Please start an Agent and connect it to the server","welcome.setupAgent":"Set Up Agent","welcome.setupTitle":"Connect your Agent","welcome.setupDesc":"Run the installer on your computer to start chatting. Your code and tools stay on your machine.","welcome.setupSecretLoading":"Preparing your Agent secret...","welcome.setupSecretError":"Could not prepare the Agent secret. Open Security settings to retry.","installer.platformLabel":"Target operating system","installer.posix":"Linux / macOS","installer.powershell":"Windows PowerShell","installer.copyCommand":"Copy install command","installer.instruction":"Paste into a terminal on the computer where you want to run your Agent.","installer.viewCommand":"View command","installer.copying":"Copying\u2026","installer.copyFailed":"Copy failed","installer.secretLoading":"Preparing your Agent secret\u2026","installer.secretError":"Could not prepare the Agent secret.","installer.secretRequired":"Generate an Agent secret before copying this command.","installer.commandUnavailable":"Command available after an Agent secret is generated.","installer.copyError":"Copy failed. Select and copy the command manually.","installer.copySuccess":"Command copied.","installer.openSecurity":"Open Security settings","installer.note":"Includes Node.js and a private Agent instance. Only run commands from a trusted server. Contains your access secret \u2014 do not share.","welcome.openSecuritySettings":"Open Security Settings","welcome.newConv":"Conversation","welcome.resumeHistory":"Resume History","messages.loadingMore":"Loading more messages...","messages.loadMore":"\u2191 Click or scroll up to load more","message.loadingMore":"Loading more messages...","message.loadMore":"\u2191 Click or scroll up to load more","message.navigation":"Conversation navigation","message.currentTurn":"\u2191 Turn","message.scrollToLatest":"\u2193 Latest","message.backToCurrentTurn":"Back to this turn\u2019s question","message.showResponses":"Show {count} response(s)","message.hideResponses":"Hide response(s)","message.assistant":"Assistant","chat.waiting.disconnected":"Connection lost","chat.connecting":"Connecting to provider session...","chat.waiting.compacting":"Compacting context...","chat.waiting.agentOffline":"Agent offline","chat.waiting.sessionLost":"Session lost, refreshed, waiting for update...","chat.waiting.cliExited":"Claude process exited, refreshed, waiting for update...","chat.waiting.refresh":"Refresh","chat.waiting.thinking":"AI is thinking, please wait...","btw.hint":"esc to exit","btw.placeholder":"Ask a side question...","btw.close":"Exit BTW mode","message.copyContent":"Copy content","message.copy":"Copy content","message.copied":"Copied","message.copyCode":"Copy code","message.copyAll":"Copy all","message.screenshot":"Screenshot","message.screenshotting":"Taking screenshot...","message.exportMd":"Export MD","message.askInput":"Your input needed","message.askAnswered":"\u2713 Answered","message.askCustom":"Or type a custom answer...","message.askCustomPlaceholder":"Or type a custom answer...","message.askSubmit":"Submit Answer","message.askWaiting":"Waiting for question...","message.askSubmitting":"Answer sent. Waiting for Agent confirmation\u2026","message.askUnconfirmed":"No confirmation yet. Check the connection, then resend the same answer.","message.askRetry":"Resend answer","message.askSendFailed":"Answer was not sent. Check the connection and try again.","message.askAgentUnavailable":"Agent is unavailable. Reconnect, then resend your answer.","message.askIdentityMismatch":"This question no longer matches the active request. Ask the role to re-ask.","message.askExpired":"This question has expired. Ask the role to re-ask.","message.openInEditor":"Open in editor","message.resultDone":"Done","message.done":"Done","message.resultRead":"Read {file}","message.readFile":"Read {name}","message.file":"file","message.attachImages":"{count} image(s)","message.imageCount":"{count} image(s)","message.imagePreview":"Image preview","message.zoomOut":"Zoom out","message.zoomIn":"Zoom in","message.resetZoom":"Reset image zoom","message.previousImage":"Previous image","message.nextImage":"Next image","message.imagePosition":"Image {current} of {total}","message.imageUnavailable":"Image unavailable","message.attachFiles":"{count} file(s)","message.fileCount":"{count} file(s)","message.quote":"Quote","message.removeQuote":"Remove quote","message.replyingTo":"Replying to {author}","message.quotedFrom":"Quoted from {author}","message.editAsNew":"Edit","message.you":"You","input.upload":"Upload file","input.placeholder":"Type a message...","input.send":"Send","input.stopExecution":"Stop execution","chatInput.upload":"Upload file","chatInput.uploading":"Uploading...","chatInput.uploadFailed":"Upload failed","chatInput.retryUpload":"Retry","chatInput.removeAttachment":"Remove attachment","chatInput.placeholder":"Type a message...","chatInput.send":"Send","chatInput.stop":"Stop execution","tools.thinking":"Thinking...","tools.read":"Reading file","tools.write":"Writing file","tools.edit":"Editing file","tools.bash":"Running command","tools.glob":"Searching files","tools.grep":"Searching content","tools.task":"Running task","tools.webFetch":"Fetching web page","tools.webSearch":"Searching the web","tools.todoWrite":"Updating tasks","tools.executing":"Running {name}","status.thinking":"Thinking...","status.reading":"Reading file","status.writing":"Writing file","status.editing":"Editing file","status.executing":"Running command","status.searchingFiles":"Searching files","status.searchingContent":"Searching content","status.executingTask":"Running task","status.fetching":"Fetching web page","status.searching":"Searching the web","status.updatingTasks":"Updating tasks","status.executingTool":"Running {name}","header.compacting":"Compressing context...","header.compacted":"Context compression complete","chatHeader.newConv":"Conversation","chatHeader.compacting":"Compressing context...","chatHeader.compactDone":"Context compression complete","chatHeader.compact":"Compact context","chatHeader.resume":"Resume session","chatHeader.refresh":"Refresh messages","chatHeader.reloadPage":"Reload page","chatHeader.clear":"Clear messages","chatHeader.clearing":"Clearing context...","chatHeader.clearDone":"Context cleared","chatHeader.confirmClear":"Are you sure you want to clear all messages in this conversation?","chatHeader.mcpConfig":"MCP Servers","chatHeader.mcpNeedRestart":"Changes will take effect after restarting the session.","chatHeader.expertPanel":"Expert Panel","chatHeader.subAgentPanel":"Sub-Agents","settings.close":"Close settings","settings.tabs.account":"Account","settings.tabs.security":"Security","settings.tabs.general":"General","settings.tabs.sandbox":"Sandbox","settings.tabs.invitations":"Invitations","auth.sessionExpired":"Session expired. Please log in again.","settings.sandbox.description":"Run a persistent Yeaft Agent in a Docker container managed by this Server.","settings.sandbox.containerAgent":"Dockerized Yeaft Agent","settings.sandbox.serverManaged":"The Server manages only this container\u2019s start, stop, and removal. The Agent itself uses the normal Yeaft connection.","settings.sandbox.agentName":"Agent name","settings.sandbox.sizeLabel":"Size","settings.sandbox.enable":"Enable Sandbox","settings.sandbox.creating":"Setting up...","settings.sandbox.start":"Start","settings.sandbox.stop":"Stop","settings.sandbox.retry":"Retry","settings.sandbox.remove":"Remove","settings.sandbox.removeConfirm":"Permanently remove this Sandbox, including its home and workspace data? This cannot be undone.","settings.sandbox.size.small":"Small","settings.sandbox.size.normal":"Normal","settings.sandbox.state.reserving":"Setting up","settings.sandbox.state.provisioning":"Preparing Sandbox","settings.sandbox.state.starting":"Starting","settings.sandbox.state.waiting_for_agent":"Waiting for Agent","settings.sandbox.state.stopping":"Stopping","settings.sandbox.state.removing":"Removing","settings.sandbox.state.removed":"Removed","settings.sandbox.state.running":"Running","settings.sandbox.state.stopped":"Stopped","settings.sandbox.state.failed":"Failed","settings.sandbox.state.remove_failed":"Remove failed","settings.sandbox.state.recovery_required":"Recovery required","settings.sandbox.stage.reserving_capacity":"Reserving capacity","settings.sandbox.stage.starting":"Starting Sandbox","settings.sandbox.stage.stopping":"Stopping Sandbox","settings.sandbox.stage.retrying":"Retrying operation","settings.sandbox.stage.removing":"Removing Sandbox","settings.sandbox.stage.complete":"Complete","settings.sandbox.stage.dispatching":"Dispatching securely","settings.sandbox.stage.capacity_rejected":"Waiting for capacity","settings.sandbox.unavailable.disabled":"Sandbox is not enabled on this Server. Updating a local Agent does not enable it; a Server administrator must enable Docker management.","settings.sandbox.unavailable.dockerUnavailable":"Docker is unavailable to the Server. Check the Sandbox Server deployment.","settings.sandbox.unavailable.notEntitled":"Sandbox is not available for this account.","settings.sandbox.unavailable.capacityUnavailable":"Sandbox is temporarily unavailable.","settings.sandbox.error.SANDBOX_LOAD_FAILED":"Sandbox status could not be loaded.","settings.sandbox.retryLoad":"Retry","settings.sandbox.error.SANDBOX_CREATE_FAILED":"Sandbox could not be created. Try again later.","settings.sandbox.error.SANDBOX_ACTION_FAILED":"Sandbox action could not be scheduled. Try again later.","settings.sandbox.error.SANDBOX_OPERATION_TIMEOUT":"The operation timed out. Retry or remove the Sandbox.","settings.sandbox.error.SANDBOX_RUNTIME_FAILED":"The Sandbox runtime reported a failure.","settings.sandbox.error.SANDBOX_CGROUP_SLICE_UNAVAILABLE":"The shared resource slice could not be initialized on the host (cgroup v2 + root required). Contact your administrator or remove SANDBOX_CGROUP_PARENT to disable resource caps.","settings.account.username":"Username","settings.account.role":"Role","settings.account.email":"Email","settings.account.emailNotSet":"Not set","settings.account.profileLoadFailed":"Failed to load account profile","settings.account.logout":"Log Out","settings.account.roleAdmin":"Admin","settings.account.rolePro":"Pro","settings.account.linkedAccounts":"Linked Accounts","settings.account.linkedDesc":"Link external sign-in providers so you can log in with any of them.","settings.account.bind":"Link","settings.account.unbind":"Unlink","settings.account.linked":"Linked","settings.account.providerDisabled":"Not configured","settings.account.cantUnbindLast":"Cannot unlink the only login method","settings.account.unbindFailed":"Failed to unlink: {error}","settings.account.bindFailed":"Failed to link account","settings.account.ssoBoundMsg":"Successfully linked {provider}.","settings.account.ssoConflictMsg":"This {provider} account is already linked to another user.","settings.account.providerMicrosoft":"Microsoft","settings.account.providerGithub":"GitHub","settings.account.providerGoogle":"Google","settings.account.providerWechat":"WeChat","settings.account.providerAlipay":"Alipay","settings.security.agentKey":"Agent Secret","settings.security.agentKeyDesc":"Shared secret for Agent connection authentication","settings.security.agentSetupCommands":"Agent setup commands","settings.security.agentCmdInstall":"Install and connect Agent","settings.security.agentCmdService":"Run Agent server","settings.security.agentCmdContainer":"Run Agent in Docker","settings.security.agentCmdContainerDesc":"One command. The first run initializes shared CPU/memory limits automatically (sudo password prompt once); pass --no-slice to run without resource protection. Docker must be installed on the machine.","settings.security.agentCmdNeedsSecret":"Generate an Agent Secret first to create the server command.","settings.security.agentCmdLlm":"Manual Copilot fallback","settings.security.agentCmdLlmDesc":"After the Agent connects, configure its optional LLM in Agent settings. The installer also prints the absolute management command for terminal use.","settings.security.none":"None","settings.security.show":"Show","settings.security.hide":"Hide","settings.security.generateKey":"Generate Secret","settings.security.resetKey":"Reset Secret","settings.security.resetting":"Resetting...","settings.security.resetWarning":"All Agents need to be reconfigured after reset","settings.security.changePassword":"Change Password","settings.security.currentPassword":"Current password","settings.security.newPassword":"New password (min 6 characters)","settings.security.confirmPassword":"Confirm new password","settings.security.changeBtn":"Change Password","settings.security.changing":"Changing...","settings.security.enterCurrentPwd":"Please enter your current password","settings.security.newPwdMin":"New password must be at least 6 characters","settings.security.pwdMismatch":"Passwords do not match","settings.security.pwdChanged":"Password changed successfully","settings.security.setPassword":"Set a Password","settings.security.setPasswordDesc":"You signed in via SSO and have no password yet. Set one so you can also log in with username + password.","settings.security.setBtn":"Set Password","settings.security.pwdSet":"Password set successfully","settings.security.deleteAccount":"Delete Account","settings.security.deleteAccountDesc":"Permanently delete your account and all associated data. This cannot be undone.","settings.security.deleteBtn":"Delete Account","settings.security.deleteConfirmBtn":"Confirm Delete","settings.security.deleteConfirmPlaceholder":"Type DELETE to confirm","settings.security.deleteConfirmRequired":"Type DELETE to confirm account removal","settings.security.deleteFailed":"Failed to delete account","settings.security.deleting":"Deleting...","settings.general.theme":"Theme","settings.general.lightTheme":"Light","settings.general.darkTheme":"Dark","settings.general.language":"Language","settings.general.currentValue":"Current: {value}","settings.general.workCenter":"Work Center entry","settings.general.workCenterDesc":"Show the Work Center entry in the sidebar header. Available Agents are selected inside Work Center.","settings.general.workCenterOn":"Enabled","settings.general.workCenterOff":"Disabled","settings.general.telemetry":"Performance telemetry","settings.general.telemetryDesc":"Buffer local timing diagnostics without sending trace content to the server.","settings.general.telemetryOn":"Enabled","settings.general.telemetryOff":"Disabled","settings.general.telemetryLoading":"Loading\u2026","settings.general.telemetrySaving":"Saving\u2026","settings.general.telemetryUnavailable":"Unavailable","settings.general.telemetryLoadFailed":"Could not load the saved telemetry setting. Try reopening Settings.","settings.general.telemetrySaveFailed":"Could not confirm the telemetry change. The displayed setting was restored; reopen Settings to check.","settings.general.telemetryRawLimit":"Raw provider exchange limit (bytes)","settings.general.telemetryTraceTextLimit":"Debug prompt and message limit (bytes)","settings.invite.create":"Create Invite Code","settings.invite.normalUser":"Regular User","settings.invite.proUser":"Pro User","settings.invite.createBtn":"Create Invite","settings.invite.creating":"Creating...","settings.invite.list":"Invite Codes","settings.invite.used":"Used","settings.invite.expired":"Expired","settings.invite.available":"Available","settings.invite.usedBy":"Used by: {user}","settings.invite.expiredAt":"Expired at: {time}","settings.invite.expiresAt":"Expires at: {time}","settings.invite.noInvites":"No invite codes","settings.msg.copiedClipboard":"Copied to clipboard","settings.msg.copyFailed":"Copy failed","settings.msg.keyReset":"Secret has been reset","settings.msg.resetFailed":"Reset failed","settings.msg.changeFailed":"Change failed","settings.msg.inviteCreated":"Invite code created","settings.msg.createFailed":"Create failed","settings.msg.inviteCopied":"Invite code copied","settings.msg.inviteDeleted":"Invite code deleted","settings.msg.deleteFailed":"Delete failed","settings.tabs.llm":"LLM","settings.tabs.yeaft":"Yeaft","yeaft.session.title":"Sessions","yeaft.session.new":"+ New session","yeaft.session.create.title":"New session","yeaft.session.create.subtitle":"Choose where it runs and which provider should handle it.","yeaft.session.create.close":"Close","yeaft.session.create.nameLabel":"Name","yeaft.session.create.namePlaceholder":"Session name (optional)","yeaft.session.create.workDirLabel":"Work Directory","yeaft.session.create.agentLabel":"Agent","yeaft.session.create.vpPicker":"Pick VPs","yeaft.session.create.vpNone":"No VPs selected","yeaft.session.create.vpCount":"{n} VPs selected","yeaft.session.create.untitled":"Untitled session","yeaft.session.create.rosterEmpty":"No VPs available \u2014 create one from the VP Library first.","yeaft.session.create.rosterLoading":"Loading VPs\u2026","yeaft.session.create.rosterError":"VPs could not be loaded from this Agent.","yeaft.session.create.rosterRetry":"Retry","yeaft.vp.domain.general":"General & coordination","yeaft.vp.domain.productDesign":"Product & experience design","yeaft.vp.domain.softwareSystems":"Software & systems","yeaft.vp.domain.securityReliability":"Security & reliability","yeaft.vp.domain.scienceAnalysis":"Science & analysis","yeaft.vp.domain.philosophyPsychology":"Philosophy & psychology","yeaft.vp.domain.strategyHistory":"Strategy & history","yeaft.vp.domain.businessManagement":"Business & management","yeaft.vp.domain.artsCulture":"Arts & culture","yeaft.vp.domain.other":"Other specialties","yeaft.vp.domain.custom":"Custom VPs","yeaft.session.create.defaultVpHint":"The VP that answers when no one is @-mentioned.","yeaft.session.create.folderLabel":"\u{1F4C1} Work directories","yeaft.session.create.sessionLabel":"\u{1F4AC} Sessions in this directory","yeaft.session.create.noWorkDirs":"No prior sessions yet \u2014 pick or type a work directory above.","yeaft.session.create.back":"Back","yeaft.session.create.creating":"Creating\u2026","yeaft.session.create.submit":"Create","yeaft.plugins.title":"Plugins","yeaft.plugins.subtitle":"Choose which tools, skills, and MCP servers this Agent makes available to Sessions.","yeaft.plugins.agentLabel":"Agent","yeaft.plugins.overviewLabel":"Plugin availability overview","yeaft.plugins.noAgent":"No Agent selected","yeaft.plugins.allAvailable":"All available capabilities are enabled.","yeaft.plugins.selectedSummary":"{count} capabilities enabled.","yeaft.plugins.enabledLabel":"enabled","yeaft.plugins.useAll":"Use all available","yeaft.plugins.loading":"Loading plugins\u2026","yeaft.plugins.empty":"No configurable plugins are available on this Agent.","yeaft.plugins.loadError":"Failed to load plugins: {error}","yeaft.plugins.upgradeRequired":"This Agent does not support Plugins. Upgrade and restart the Agent.","yeaft.plugins.retry":"Retry","yeaft.plugins.searchPlaceholder":"Search tools, skills, and MCP servers","yeaft.plugins.resultCount":"{count} results","yeaft.plugins.categoryLabel":"Plugin categories","yeaft.plugins.all":"All","yeaft.plugins.noMatchesTitle":"No matching plugins","yeaft.plugins.noMatchesBody":"Try a different search or category.","yeaft.plugins.toolDescription":"Built-in Agent capability","yeaft.plugins.skillDescription":"Reusable Agent workflow","yeaft.plugins.mcpDescription":"{count} tools available","yeaft.plugins.unsavedChanges":"Unsaved changes","yeaft.plugins.tools":"Tools","yeaft.plugins.skills":"Skills","yeaft.plugins.mcpServers":"MCP servers","yeaft.plugins.toolsCount":"tools","yeaft.plugins.manageSkills":"Manage skills","yeaft.plugins.manageSkillsDescription":"Create reusable Skills for this Agent or the active project. Project Skills override same-named user Skills.","yeaft.plugins.createSkill":"Create skill","yeaft.plugins.removeSkill":"Remove","yeaft.plugins.confirmRemoveSkill":'Remove Skill "{name}"? This deletes only the native Skill in its selected scope.',"yeaft.plugins.skillManagementUpgradeRequired":"This Agent must be upgraded before it can create or remove Skills.","yeaft.plugins.skillManagementVersionUnknown":"This Agent has not reported Skill management support yet. Upgrade and restart it before creating or removing Skills.","yeaft.plugins.skillScope":"Scope","yeaft.plugins.userScope":"User","yeaft.plugins.projectScope":"Project","yeaft.plugins.userScopeDescription":"Available to every project run by this Agent.","yeaft.plugins.projectScopeDescription":"Available only to the active project and overrides a same-named user Skill.","yeaft.plugins.projectScopeUnavailable":"Select a Session with a project directory to manage project-level Skills.","yeaft.plugins.skillName":"Name","yeaft.plugins.skillDescriptionLabel":"Description","yeaft.plugins.skillTrigger":"Trigger (optional)","yeaft.plugins.skillInstructions":"Instructions","yeaft.plugins.resetSkillForm":"Reset","yeaft.plugins.skillTier.bundled":"Bundled \xB7 read-only","yeaft.plugins.skillTier.user":"User","yeaft.plugins.skillTier.project":"Project","yeaft.plugins.skillTier.project-claude":"Claude project \xB7 read-only","yeaft.plugins.skillTier.project-codex":"Codex project \xB7 read-only","yeaft.onboarding.ariaLabel":"Yeaft getting started guide","yeaft.onboarding.topbarTitle":"Get started with Yeaft","yeaft.onboarding.eyebrow":"Yeaft setup guide","yeaft.onboarding.title":"Connect an Agent before chatting","yeaft.onboarding.subtitle":"Run these commands on the machine that should execute tools. The agent secret is generated automatically for your account if it does not exist yet.","yeaft.onboarding.createSession":"Create or restore Session","yeaft.onboarding.secretLoading":"Generating agent secret\u2026","yeaft.onboarding.secretError":"Failed to load agent secret.","yeaft.onboarding.secretPending":"<loading-agent-secret>","yeaft.onboarding.installTitle":"Install and connect Agent","yeaft.onboarding.installDesc":"Run one command on the target machine to install prerequisites, create a private instance, and connect it to this server.","yeaft.onboarding.connectTitle":"Connect this Agent","yeaft.onboarding.connectDesc":"The installer uses this server URL and your generated secret.","yeaft.restore.modal.empty":"No yeaft sessions found in this directory","yeaft.restore.modal.scanError":"Failed to scan: {message}","yeaft.restore.modal.restoreError":"Failed to restore: {message}","settings.llm.noAgent":"Please select an Agent first to manage LLM configuration.","settings.llm.agentOffline":"Agent is currently offline. LLM configuration will load when the agent comes online.","settings.llm.loading":"Loading configuration...","settings.llm.loadError":"Failed to load configuration","settings.llm.configureAgent":"Configure this agent LLM","settings.llm.configureMenu":"LLM Settings","settings.llm.simpleCopilotTitle":"Recommended: GitHub Copilot","settings.llm.useGitHubCopilot":"Use GitHub Copilot","settings.llm.refreshingModels":"Refreshing models...","settings.llm.managedCopilotTitle":"Managed GitHub Copilot","settings.llm.managedCopilotDesc":"Base URL, authentication, model catalog, and per-model API protocol are managed automatically. Claude models use Anthropic Messages; GPT/o models use OpenAI Responses.","settings.llm.providersTitle":"Providers","settings.llm.testFailed":"Connection test failed","settings.llm.saveSuccess":"LLM settings saved","settings.llm.saveFailed":"Failed to save LLM settings","settings.llm.presets.title":"Quick setup","settings.llm.providersDesc":"Choose a provider, save it, and use it in Sessions.","settings.llm.agentProviders":"This agent providers","settings.llm.agentBadge":"This agent","settings.llm.addProvider":"Add Provider","settings.llm.addFromPreset":"Add from Catalog","settings.llm.preset.title":"Provider Catalog (models.dev)","settings.llm.preset.refresh":"Refresh catalog","settings.llm.preset.loading":"Loading catalog\u2026","settings.llm.preset.empty":"No providers available.","settings.llm.preset.pickProvider":"Pick a provider on the left to see its models.","settings.llm.preset.filterProviders":"Filter providers\u2026","settings.llm.preset.filterModels":"Filter models\u2026","settings.llm.preset.selectAll":"Select all","settings.llm.preset.selectNone":"Clear","settings.llm.preset.cancel":"Cancel","settings.llm.preset.add":"Add to providers","settings.llm.preset.fetchedAt":"Catalog updated {minutes}m ago","settings.llm.addModel":"Add Model","settings.llm.removeModel":"Remove Model","settings.llm.providerName":"Name","settings.llm.providerNamePlaceholder":"e.g. my-proxy","settings.llm.baseUrl":"Base URL","settings.llm.baseUrlPlaceholder":"e.g. http://localhost:6628/v1","settings.llm.apiKey":"API Key","settings.llm.apiKeyPlaceholder":"Enter API key","settings.llm.protocol":"Protocol","settings.llm.protocolOpenAI":"OpenAI Compatible","settings.llm.protocolOpenAIResponses":"OpenAI Responses (GPT-5)","settings.llm.protocolAnthropic":"Anthropic Native","settings.llm.protocolHint.anthropic":"Claude native Messages API.","settings.llm.protocolHint.openai":"Chat Completions /v1/chat/completions \u2014 GPT-4 and most compatible proxies.","settings.llm.protocolHint.openaiResponses":"Responses API /v1/responses \u2014 required for GPT-5 series.","settings.llm.modelCtxPlaceholder":"ctx","settings.llm.modelMaxPlaceholder":"max","settings.llm.models":"Candidate Model IDs","settings.llm.modelsPlaceholder":"Model IDs, comma or newline separated, e.g. claude-sonnet-4-20250514, gpt-5","settings.llm.modelsHint":"Comma or newline separated.","settings.llm.removeProvider":"Remove","settings.llm.modelSelectionTitle":"Model Selection","settings.llm.modelSelectionDesc":"Choose the default models.","settings.llm.primaryModel":"Primary Model","settings.llm.primaryModelDesc":"Used for user-facing conversations","settings.llm.fastModel":"Fast Model","settings.llm.fastModelDesc":"Used for internal tasks (memory, consolidation)","settings.llm.noModels":"No models available. Add a provider first.","settings.llm.selectModel":"Select a model...","settings.llm.debugTitle":"Debug traces","settings.llm.debugDesc":"Per-agent opt-in for collecting per-turn debug traces (system prompts, LLM calls, tool payloads).","settings.llm.enableDebug":"Enable debug traces","settings.llm.save":"Save Changes","settings.llm.saving":"Saving...","settings.llm.saved":"Configuration saved","settings.llm.savedRefreshWarning":"Configuration was saved, but the live model catalog could not refresh: {error}","settings.llm.unsavedChanges":"You have unsaved changes","settings.llm.confirmRemoveProvider":"Remove this provider?","settings.llm.setupTitle":"Connect a model","settings.llm.setupDesc":"GitHub Copilot is recommended. You can also add your own API provider.","settings.llm.providerSectionHint":"Only the fields required to connect a model.","settings.tabs.dashboard":"Dashboard","settings.dashboard.totalUsers":"Total Users","settings.dashboard.onlineUsers":"Online Users","settings.dashboard.activeUsers":"Active Users","settings.dashboard.onlineAgents":"Online Agents","settings.dashboard.totalSessions":"Total Sessions","settings.dashboard.todayActive":"Today Active","settings.dashboard.todayMessages":"Today Messages","settings.dashboard.todayUserTurns":"Today User Turns","settings.dashboard.totalTokens":"Total Tokens","settings.dashboard.tokenAccuracy":"Provider-reported usage, accumulated from the version that enabled per-user token tracking. Heartbeats are excluded.","settings.dashboard.agentTurns":"Agent Turns","settings.dashboard.agentSessions":"Agent Sessions","settings.dashboard.turns":"Turns","settings.dashboard.tokens":"Tokens","settings.dashboard.inputTokens":"Input","settings.dashboard.outputTokens":"Output","settings.dashboard.cacheTokens":"Cache","settings.dashboard.today":"Today","settings.dashboard.thisWeek":"This Week","settings.dashboard.thisMonth":"This Month","settings.dashboard.all":"All","settings.dashboard.general":"General","settings.dashboard.detailed":"Detailed","settings.dashboard.users":"Users","settings.dashboard.agents":"Agents","settings.dashboard.time":"Time","settings.dashboard.active":"Active","settings.dashboard.inactive":"Inactive","settings.dashboard.activeOnly":"Active only","settings.dashboard.inactiveOnly":"Inactive only","settings.dashboard.userUsage":"User Usage","settings.dashboard.refresh":"Refresh","settings.dashboard.name":"Name","settings.dashboard.messages":"Messages","settings.dashboard.userTurns":"User Turns","settings.dashboard.sessions":"Sessions","settings.dashboard.requests":"Requests","settings.dashboard.traffic":"Traffic","settings.dashboard.lastTurnCompleted":"Last Turn Completed","settings.dashboard.status":"Status","settings.dashboard.latency":"Latency","settings.dashboard.version":"Version","settings.dashboard.owner":"Owner","settings.dashboard.role":"Role","settings.dashboard.agent":"Agent","settings.dashboard.online":"Online","settings.dashboard.offline":"Offline","settings.dashboard.noAgents":"No agents registered","settings.dashboard.noUserData":"No user data","settings.dashboard.noOnlineUsers":"No users online","settings.dashboard.loading":"Loading...","settings.dashboard.error":"Failed to load data","settings.dashboard.ago":"{time} ago","settings.dashboard.loadMore":"Load more ({remaining} remaining)","workbench.title":"Workbench","workbench.openItems":"Open Workbench items","workbench.addItem":"Add Workbench item","workbench.addItemHint":"Use + to open Files, Terminal, Git, or Browser.","workbench.closeItem":"Close {name}","workbench.chooseCapability":"Choose a capability","workbench.chooseCapabilityHint":"Choose a tool to start. Open tools stay available as tabs.","workbench.terminal":"Terminal","workbench.terminalDescription":"Run commands and manage terminal panes in the current working directory.","workbench.git":"Git","workbench.gitDescription":"Review repository status, diffs, and changed files.","workbench.files":"Files","workbench.filesDescription":"Browse, preview, and edit files on the selected Agent.","workbench.browser":"Browser","workbench.browserDescription":"View the Agent-local browser over a live WebRTC stream.","workbench.available":"Available","workbench.enableRequired":"Enable required","workbench.unavailable":"Unavailable on this Agent","workbench.capabilityUnavailable":"The selected Agent does not provide this capability.","workbench.browserUnavailable":"Browser is disabled by the administrator or unsupported by this Agent. Upgrade the Agent or ask an administrator to enable Browser routes.","workbench.browserReadyHint":"Enter an address to start an isolated Agent-local browser. Click the live view to use its mouse and keyboard.","workbench.browserStart":"Start browser","workbench.browserAddressLabel":"Browser address","workbench.browserAddressPlaceholder":"example.com","workbench.browserAddressInvalid":"Enter a valid HTTP or HTTPS address.","workbench.browserInteractionUnavailable":"Browser input is not connected yet. Wait for WebRTC, then retry.","workbench.browserGo":"Go","workbench.browserStarting":"Starting the Agent-local browser\u2026","workbench.browserConnecting":"Connecting the live WebRTC viewer\u2026","workbench.browserIceServersMissing":"The Browser viewer could not reach this Agent, and this Server has no STUN or TURN service configured. Ask an administrator to configure Browser ICE/TURN, then retry.","workbench.browserIceConnectionFailed":"The Browser WebRTC connection failed. Check that the configured TURN service is reachable from both the Web browser and Agent, then retry.","workbench.browserPeerAttachTimeout":"The Browser viewer timed out while establishing WebRTC. Check Browser ICE/TURN connectivity, then retry.","workbench.browserEnd":"End browser","workbench.browserVideoLabel":"Live Agent browser view","workbench.browserInputLabel":"Browser keyboard input","workbench.browserStatusConnecting":"Connecting","workbench.browserProtocolUnavailable":"Browser Runtime protocol is unavailable on this Server connection.","workbench.browserChecking":"Checking Browser Runtime on the selected Agent\u2026","workbench.browserPlatformUnsupported":"The selected Agent cannot host the current Browser Runtime data plane.","workbench.browserSetupTitle":"Enable Browser","workbench.browserOptionalInstall":"Browser needs a pinned Chrome for Testing build on this Agent. Enabling downloads approximately {size}, verifies and installs build {build}, then checks the media path.","workbench.browserInstallDiskNote":"Nothing downloads until you click Enable Browser. The extracted browser is stored only in this Agent instance data directory.","workbench.browserInstallAction":"Enable Browser ({size})","workbench.browserInstalling":"Enabling Browser: downloading and verifying Chrome for Testing {build}\u2026","workbench.browserInstallKeepOpen":"You may leave this panel. Reopening Browser resumes the visible install state; it will not start a second download.","workbench.browserInstallProgressLabel":"Browser download progress","workbench.browserInstallProgress":"{downloaded} of {total}","workbench.browserInstalledEnable":"The browser files are already installed. Enable Browser and check the media path.","workbench.browserEnableAction":"Enable Browser","workbench.browserEnabling":"Finishing setup and checking the media path\u2026","workbench.browserStatusInstalling":"Installing","workbench.browserStatusProbing":"Probing","workbench.backToCapabilities":"Back to capabilities","workbench.closeCapability":"Close capability","workbench.maximize":"Maximize panel","workbench.restore":"Restore panel","workbench.collapse":"Collapse panel","theme.switchToLight":"Switch to light theme","theme.switchToDark":"Switch to dark theme","theme.toLight":"Switch to light theme","theme.toDark":"Switch to dark theme","terminal.splitH":"Split horizontally (left-right)","terminal.splitV":"Split vertically (top-bottom)","terminal.close":"Close current terminal","terminal.autoCreate":"A terminal will be created when you open Terminal","terminal.xtermError":"xterm.js not loaded, please refresh the page","terminal.xtermNotLoaded":"xterm.js not loaded, please refresh the page","terminal.mountError":"Terminal container mount failed","terminal.mountFailed":"Terminal container mount failed","terminal.createError":"Terminal creation failed","terminal.createFailed":"Terminal creation failed","terminal.error":"Terminal error","git.selectFolder":"Select folder","git.repoPath":"Enter Git repository path...","git.repoPathPlaceholder":"Enter Git repository path...","git.workDir":"Git working directory","git.loadStatus":"Load Git status","git.loading":"Loading Git status...","git.loadingStatus":"Loading Git status...","git.clean":"Working directory clean, no changes","git.cleanWorkDir":"Working directory clean, no changes","git.selectAgent":"Select an Agent to load Git status","git.selectAgentFirst":"Select an Agent to load Git status","git.workItemRootRequired":"Git is unavailable because this Work Item uses a repository subfolder. Files and Terminal remain available; Git operations require a Work Item at the repository root.","git.diffOnly":"Diff only","git.fullFile":"Full file","git.zoomIn":"Zoom in","git.zoomOut":"Zoom out","git.loadingDiff":"Loading Diff...","git.clickToView":"Click a file to view diff","git.clickFileToView":"Click a file to view diff","git.selectRepo":"Select Git Repository","git.noDiff":"(No differences)","git.binaryFile":"(Binary file)","files.notLoaded":"Not loaded","files.newFile":"New File","files.newFolder":"New Folder","files.openFolder":"Open Folder","files.showTree":"Show folders","files.hideTree":"Hide folders","files.deleteSelected":"Delete selected","files.moveSelected":"Move selected","files.enterPath":"Enter path...","files.searchFiles":"Search files... (Ctrl+P)","files.noMatch":"No matches found","files.searching":"Searching...","files.loadingTree":"Loading...","files.emptyDir":"Empty directory","files.loadingFile":"Loading file...","files.readSendFailed":"The file request was not sent. Check the connection, then click the file again to retry.","files.readInterrupted":"The file read was interrupted. Reconnect, then click the file again to retry.","files.searchPlaceholder":"Search...","files.replacePlaceholder":"Replace...","files.replace":"Replace","files.replaceAll":"All","files.replaceCurrent":"Replace current","files.replaceAllTitle":"Replace all","files.clickToView":"Click a file to view content","files.selectFolder":"Select Folder","files.enterFolderName":"Enter folder name...","files.enterFileName":"Enter file name...","files.moveTarget":"Enter target directory path...","files.moveItems":"Move {count} item(s) to the specified directory","files.workDir":"Work directory: {dir}","files.enterDirPath":"Enter directory path...","files.unsavedConfirm":'"{name}" has unsaved changes. Close anyway?',"files.unsavedBatchConfirm":"{count} files have unsaved changes. Close them anyway?","files.showOpenTabs":"Show open files","files.closeTab":"Close {name}","files.closeTabAction":"Close","files.closeOtherTabs":"Close Others","files.closeTabsToLeft":"Close to the Left","files.closeTabsToRight":"Close to the Right","files.closeAllTabs":"Close All","files.deleteConfirm":'Are you sure you want to delete "{name}"?',"files.deleteDirHint":" (this will delete the folder and all its contents)","files.deleteSelectedConfirm":"Are you sure you want to delete {count} selected item(s)? This action cannot be undone.","files.findPrev":"Previous (Shift+Enter)","files.findNext":"Next (Enter)","files.caseSensitive":"Case sensitive","files.regex":"Regular expression","files.unsaved":"Unsaved","files.clearSelection":"Clear selection","files.rename":"Rename","files.copyHere":"Copy","files.moveTo":"Move to...","files.download":"Download","files.enterNewName":"Enter new name...","files.loadingPreview":"Loading preview...","files.previewTooLarge":"This file is {size} MB and exceeds the {limit} MB preview and download limit.","files.previewLoadFailed":"The image preview could not be loaded.","files.videoPreviewLoadFailed":"The video could not be played. Its codec may not be supported by this browser.","files.videoStreamUnavailable":"Video streaming is unavailable for this Agent or Session.","files.preview":"Preview","files.edit":"Edit","files.pptxNotSupported":"PPTX local preview is not supported. Please switch to Office Online mode in Settings.","files.officePreviewMode":"Office Preview Mode","files.officeOnline":"Office Online","files.localRender":"Local Rendering","proxy.port":"Port","proxy.label":"Label","proxy.add":"Add port mapping","proxy.addPort":"Add port mapping","proxy.enable":"Click to enable","proxy.clickEnable":"Click to enable","proxy.disable":"Click to disable","proxy.clickDisable":"Click to disable","proxy.openNewTab":"Open in new tab","proxy.openInBrowser":"Open in new tab","proxy.noMappings":"No port mappings","proxy.noPorts":"No port mappings","proxy.hint":"After adding ports, you can access local services on the agent machine through proxy URLs","proxy.noPortsHint":"After adding ports, you can access local services on the agent machine through proxy URLs","proxy.selectAgent":"Please select an Agent first","store.selectAgent":"Please select an Agent first","store.creatingConv":"Creating conversation...","store.loadingHistory":"Loading conversation history...","store.executionCancelled":"Execution cancelled","store.loginFailed":"Login failed","store.convClosed":"Conversation closed","store.convCreated":"New conversation created [{agent}], work directory: {workDir}","store.convResumed":"Conversation resumed [{agent}]: {sessionId}","roleplay.creating":"Creating Role Play session...","roleplay.working":"Working","roleplay.selectTeam":"Select team template","roleplay.teamDev":"Software Dev","roleplay.teamCustom":"Custom","roleplay.editRoles":"Edit Roles","roleplay.roleName":"Role ID","roleplay.roleDisplayName":"Display Name","roleplay.roleIcon":"Icon","roleplay.roleDesc":"Role Description","roleplay.rolePrompt":"Role Prompt","roleplay.removeRole":"Remove Role","roleplay.addRole":"Add Role","roleplay.start":"Start Role Play","roleplay.sidebarTitle":"Role Play","roleplay.configTitle":"Role Play","roleplay.newSession":"New Role Play","roleplay.emptyHint":"Send a message to start multi-role collaboration","roleplay.askingYou":"is asking you","roleplay.language":"Language","roleplay.rolePreview":"Role Configuration","roleplay.noAgents":"No online agents available","roleplay.inputPlaceholder":"Type a message\u2026 Use @ to mention a role","roleplay.existingSessions":"Existing Teams","roleplay.restore":"Restore","roleplay.restoring":"Restoring Role Play session...","roleplay.createNew":"Create New Team","expertPanel.title":"Expert Panel","expertPanel.search":"Search roles or actions...","expertPanel.noResults":"No results","expertPanel.clearAll":"Clear","expertPanel.persona":"Persona Prompt","expertPanel.template":"With Input \xB7 Prefix","expertPanel.templateHint":"When user types text: this prefix + user text = final prompt","expertPanel.defaultMsg":"No Input \xB7 Full Prompt","expertPanel.defaultMsgHint":"When user sends without typing: this full prompt is used as-is","expertPanel.loading":"Loading role definitions...","expertPanel.viewPrompt":"View prompt","expertPanel.customRoles":"Custom Roles","expertPanel.addRole":"Add role","expertPanel.editRole":"Edit role","expertPanel.deleteRole":"Delete role","expertPanel.noCustomRoles":"No custom roles yet","expertPanel.createFirst":"Create your first custom role","expertPanel.noActions":"No actions defined","expertPanel.deleteConfirm":'Delete role "{name}"? This cannot be undone.',"expertPanel.deleteConfirmBtn":"Delete","expertEditor.createTitle":"Create Custom Role","expertEditor.editTitle":"Edit Custom Role","expertEditor.basicInfo":"Basic Info","expertEditor.roleName":"Role Name","expertEditor.roleNamePlaceholder":"e.g. Data Analyst","expertEditor.roleTitle":"Title","expertEditor.roleTitlePlaceholder":"e.g. Senior Data Analyst","expertEditor.fullName":"Full Name","expertEditor.fullNamePlaceholder":"Optional","expertEditor.titleEn":"English Title","expertEditor.titleEnPlaceholder":"Optional","expertEditor.rolePrompt":"Role Prompt","expertEditor.messagePrefix":"Message Prefix (Chinese)","expertEditor.messagePrefixPlaceholder":"e.g. As a senior data analyst, ","expertEditor.messagePrefixEn":"Message Prefix (English)","expertEditor.messagePrefixEnPlaceholder":"As a senior data analyst, ","expertEditor.actions":"Actions","expertEditor.addAction":"Add Action","expertEditor.removeAction":"Remove","expertEditor.actionName":"Action Name","expertEditor.actionNamePlaceholder":"e.g. Data Analysis","expertEditor.actionNameEn":"English Name","expertEditor.actionNameEnPlaceholder":"Optional","expertEditor.messageTemplate":"With Input \xB7 Prefix (Chinese)","expertEditor.messageTemplatePlaceholder":"Prepended to user text when user types something","expertEditor.messageTemplateEn":"With Input \xB7 Prefix (English)","expertEditor.messageTemplateEnPlaceholder":"Prepended to user text when user types something","expertEditor.defaultMessage":"No Input \xB7 Full Prompt (Chinese)","expertEditor.defaultMessagePlaceholder":"Used as-is when user sends without typing","expertEditor.defaultMessageEn":"No Input \xB7 Full Prompt (English)","expertEditor.defaultMessageEnPlaceholder":"Used as-is when user sends without typing","expertEditor.cancel":"Cancel","expertEditor.save":"Save","expertEditor.saving":"Saving...","subAgentPanel.title":"Sub-Agents","subAgentPanel.back":"Back to list","subAgentPanel.running":"Running","subAgentPanel.completed":"Completed","subAgentPanel.waitingMessages":"Waiting for messages...","subAgentPanel.toolCount":"{count} tools","subAgentPanel.toolSummary":"{count} tool calls completed","subAgentPanel.empty":"No sub-agents","subAgentPanel.emptyHint":"Sub-agents will appear here when Claude delegates tasks","splitScreen.split":"Split screen","splitScreen.closePane":"Close pane","splitScreen.newChat":"New Chat","splitScreen.noSessions":"No sessions","splitScreen.splitToPanel":"Open in new panel","splitScreen.selectFromSidebar":"Select a conversation from the sidebar","yeaft.vp.library":"VP Library","yeaft.vp.createFirst":"+ Create your first role","yeaft.vp.empty.aria":"No virtual persons yet","yeaft.vp.avatar.aria":"{name} avatar","yeaft.vp.speaker.stateCauseAria":"State change: {cause}","yeaft.vp.status.thinking":"thinking\u2026","yeaft.vp.status.tool":"using {name}","yeaft.vp.status.done":"done \xB7 {count} tools","yeaft.vp.status.aborted":"aborted","yeaft.vp.crud.title":"VP Library","yeaft.vp.crud.close":"Close","yeaft.vp.crud.addNew":"+ New role","yeaft.vp.crud.empty":"No virtual persons yet. Create your first role to start collaborating.","yeaft.vp.crud.edit":"Edit","yeaft.vp.crud.delete":"Delete","yeaft.vp.crud.deleteConfirm":'Delete "{name}"? This removes the role.md file on disk.',"yeaft.vp.crud.form.create":"Create role","yeaft.vp.crud.form.update":"Edit role","yeaft.vp.crud.form.vpId":"VP id","yeaft.vp.crud.form.vpId.tooltip":'Letters / digits / - / _ only. Cannot start with "_", cannot be all digits, cannot be one of: all, user, system, everyone.',"yeaft.vp.crud.form.displayName":"Display name (English)","yeaft.vp.crud.form.displayNameZh":"Display name (Chinese)","yeaft.vp.crud.form.description":"Capability description (English)","yeaft.vp.crud.form.descriptionZh":"Capability description (Chinese)","yeaft.vp.crud.form.descriptionPlaceholder":"e.g. API design, migration planning, and compatibility reviews","yeaft.vp.crud.form.descriptionZhPlaceholder":"\u4F8B\u5982\uFF1AAPI \u8BBE\u8BA1\u3001\u8FC1\u79FB\u89C4\u5212\u4E0E\u517C\u5BB9\u6027\u8BC4\u5BA1","yeaft.vp.crud.form.role":"Role","yeaft.vp.crud.form.rolePlaceholder":"e.g. Product Manager","yeaft.vp.crud.form.traits":"Traits","yeaft.vp.crud.form.traitsHint":"Comma-separated short tags (e.g. curious, pragmatic).","yeaft.vp.crud.form.modelHint":"Model hint","yeaft.vp.crud.form.modelHint.none":"\u2014 default \u2014","yeaft.vp.crud.form.modelHint.primary":"primary","yeaft.vp.crud.form.modelHint.fast":"fast","yeaft.vp.crud.form.persona":"Persona (markdown)","yeaft.vp.crud.form.personaPlaceholder":"Describe how this role should think, speak, and decide...","yeaft.vp.crud.form.submit":"Save","yeaft.vp.crud.form.cancel":"Cancel","yeaft.vp.crud.form.ok":"Looks good","yeaft.vp.crud.form.idLocked":"VP id cannot be changed after creation.","yeaft.vp.crud.saving":"Saving\u2026","yeaft.vp.crud.saveFailed":"Save failed: {error}","yeaft.vp.crud.deleteFailed":"Delete failed: {error}","yeaft.vp.crud.viewPrompt":"View prompt","yeaft.vp.crud.view.title":"VP prompt","yeaft.vp.crud.view.personaEmpty":"(no persona body \u2014 only metadata is defined)","yeaft.vp.crud.view.back":"Back","yeaft.vp.crud.view.editFromHere":"Edit this VP","yeaft.vp.crud.view.removed":"This VP was removed elsewhere \u2014 returning to the list.","yeaft.vp.crud.stockBadge":"Stock","yeaft.vp.crud.stockReadOnly":"Stock VPs ship with the agent and cannot be edited or deleted.","yeaft.vp.idError.empty_or_non_string":"VP id is required.","yeaft.vp.idError.too_long":"VP id is too long (max 40 characters).","yeaft.vp.idError.illegal_character":'Only letters, digits, "-" and "_" are allowed.',"yeaft.vp.idError.underscore_prefix_reserved":'VP id cannot start with "_" (reserved for system roles).',"yeaft.vp.idError.pure_digits":"VP id cannot be all digits.","yeaft.vp.idError.reserved":"VP id cannot be one of the reserved names (all, user, system, everyone).","yeaft.vp.idError.duplicate":"A role with this VP id already exists.","yeaft.vp.idError.not_found":"This VP does not exist \u2014 it may have been deleted.","yeaft.vp.idError.stock_readonly":"Stock VPs cannot be edited or deleted.","yeaft.vp.idError.unknown":"An unexpected error occurred. Please try again.","yeaft.vp.reason.personaEdit":"Persona updated","yeaft.vp.reason.traitsEdit":"Traits updated","yeaft.vp.reason.manualReload":"Reloaded","yeaft.vp.reason.fileRemoved":"Removed","yeaft.vp.reason.toast.updated":"{name}: {reason}","yeaft.vp.reason.toast.removed":"{name} was removed","yeaft.message.timeAria":"Sent at {time}","yeaft.message.llmCall":"{count} LLM call","yeaft.message.llmCalls":"{count} LLM calls","yeaft.message.tokenUsage":"Total {total} \xB7 Input {input} \xB7 Output {output}","yeaft.user.youLabel":"You","yeaft.session.sidebarTitle":"Sessions","yeaft.session.sidebarAria":"Sessions section","yeaft.session.newButton":"+ New session","yeaft.session.newButtonAria":"Create a new session","yeaft.session.defaultName":"Default","yeaft.session.moreActions":"More actions","yeaft.session.archivingEllipsis":"Archiving\u2026","yeaft.session.deletingEllipsis":"Deleting\u2026","yeaft.session.renamingEllipsis":"Renaming\u2026","yeaft.session.empty":"No sessions yet.","yeaft.session.membersCount":"{count} members","yeaft.session.oneMember":"1 member","yeaft.session.noMembers":"Empty \u2014 invite a VP","yeaft.session.defaultBadge":"default","yeaft.session.archive":"Archive","yeaft.session.archiveConfirm":'Archive "{name}"? You can recover it from disk later.',"yeaft.session.delete":"Delete","yeaft.session.deleteConfirm":'Delete "{name}"? This permanently removes the session and all its data \u2014 this cannot be undone.',"yeaft.session.rename":"Rename","yeaft.session.copy":"Copy session","yeaft.session.forkFromTurn":"Fork from this turn","yeaft.session.forkFromTurnHint":"Copy history through this response into a new Session; later messages are excluded.","yeaft.session.copying":"Copying session\u2026","yeaft.session.copyComplete":"Session copied","yeaft.session.copyFailed":"Could not copy the session: {message}","yeaft.session.openSettings":"Settings","yeaft.session.removeFromList":"Remove","yeaft.session.manageMembers":"Manage members","yeaft.session.memberCount.one":"1 member","yeaft.session.memberCount.other":"{count} members","yeaft.session.renamePrompt":'New name for "{name}":',"yeaft.session.editModal.renameTitle":"Rename session","yeaft.session.editModal.renameBody":'Choose a new name for "{name}".',"yeaft.session.editModal.renameSubmit":"Save","yeaft.session.editModal.archiveTitle":"Archive session","yeaft.session.editModal.archiveBody":'Archive "{name}"? You can recover it from disk later.',"yeaft.session.editModal.archiveSubmit":"Archive","yeaft.session.editModal.deleteTitle":"Delete session","yeaft.session.editModal.deleteBody":'Delete "{name}"? This permanently removes the session and all its data \u2014 this cannot be undone.',"yeaft.session.editModal.deleteSubmit":"Delete","yeaft.session.editModal.newNameLabel":"New name","yeaft.session.editModal.cancel":"Cancel","yeaft.session.editModal.close":"Close","yeaft.session.error.invalid_name":"Session name cannot be empty.","yeaft.session.error.duplicate":"A session with this id already exists.","yeaft.session.error.not_found":"Session not found.","yeaft.session.error.agent_offline":"Reconnect to the Agent before copying this session.","yeaft.session.error.invalid_fork_boundary":"This response cannot be located unambiguously in saved history. Refresh the history and try again.","yeaft.session.error.session_fork_from_turn_unsupported":"Upgrade this Agent to fork from a specific turn.","yeaft.session.error.fork_boundary_not_found":"This response is not in saved history. Refresh the history and try again.","yeaft.session.error.ambiguous_fork_boundary":"This older turn has multiple speakers and cannot be safely forked at this response.","yeaft.session.error.incomplete_fork_boundary":"This boundary would split a tool call from its result. Choose a later completed response.","yeaft.session.error.fork_pending":"A Session copy is already in progress.","yeaft.session.error.project_inheritance_failed":"The copy was created, but its Project could not be saved. Move the new Session into the original Project from the sidebar; do not copy it again.","yeaft.session.error.session_running":"Wait for this session's current response to finish before copying it.","yeaft.session.error.default_not_in_roster":"The default VP must be in the roster.","yeaft.session.error.no_default_vp":"This session has no members. Add a VP from the library to start chatting.","yeaft.session.error.reserved":"One of the selected ids is reserved (all, user, system, everyone).","yeaft.session.error.unknown":"Session operation failed: {message}","yeaft.session.error.timeout":"Session operation timed out \u2014 try again.","yeaft.session.invite.title":"Invite a VP","yeaft.session.invite.body":'"{name}" has no members yet. Add a VP from your library to start chatting.',"yeaft.session.invite.openLibrary":"Open VP Library","yeaft.session.invite.dismiss":"Not now","yeaft.session.empty.title":"Empty session","yeaft.session.empty.hint":'"{name}" has no members yet. Add a VP to start chatting.',"yeaft.session.empty.cta":"Manage members","yeaft.session.members.title":'Manage members of "{name}"',"yeaft.session.members.aria":"Session members manager","yeaft.session.members.close":"Close","yeaft.session.members.done":"Done","yeaft.session.members.empty":"No VPs available \u2014 create one in the VP Library first.","yeaft.session.members.loading":"Loading VPs\u2026","yeaft.session.members.defaultHint":"Default VP (replies when no @mention is given)","yeaft.session.members.memberCount":"{count} selected","yeaft.session.members.actionFailed":"Action failed: {error}","yeaft.session.members.openLibrary":"Open VP Library","yeaft.session.members.openLibraryHint":"Create a new VP or view a VP's prompt.","yeaft.session.announcement.label":"Announcement","yeaft.session.announcement.hintEmpty":"No announcement \u2014 click \u270F\uFE0F to add one.","yeaft.session.announcement.emptyBody":"No announcement set. Add a message that every VP in this session will see at the top of its system prompt \u2014 useful for shared context, ground rules, or a CLAUDE.md-style brief.","yeaft.session.announcement.placeholder":"Write a shared briefing for all VPs in this session\u2026","yeaft.session.announcement.edit":"Edit announcement","yeaft.session.announcement.editTitle":"Edit session announcement","yeaft.session.announcement.saving":"Saving\u2026","yeaft.session.announcement.saveFailed":"Save failed: {error}","yeaft.session.announcement.openSettings":"Open session settings","yeaft.session.settings.title":"{name} \u2014 session settings","yeaft.session.settings.short":"Session","yeaft.session.settings.close":"Close","yeaft.session.settings.nav.session":"Session","yeaft.session.settings.nav.members":"Members","yeaft.session.settings.announcement.heading":"Session announcement","yeaft.session.settings.announcement.help":"Shared at the top of every VP's system prompt while in this session. Like a CLAUDE.md for the team.","yeaft.session.settings.members.heading":"Members","yeaft.session.settings.rename.heading":"Rename session","yeaft.session.settings.rename.label":"New name","yeaft.session.settings.rename.save":"Save name","yeaft.session.settings.rename.saving":"Saving\u2026","yeaft.session.settings.workDir.heading":"Working directory","yeaft.session.settings.workDir.help":"Project files and instructions are loaded from this directory on the next turn. Session history remains in Agent storage.","yeaft.session.settings.workDir.label":"Path","yeaft.session.settings.workDir.placeholder":"/path/to/project","yeaft.session.settings.workDir.save":"Save directory","yeaft.session.settings.workDir.saving":"Saving\u2026","yeaft.session.settings.workDir.saveFailed":"Could not save the working directory: {error}","yeaft.session.settings.danger.heading":"Delete session","yeaft.session.settings.danger.deleteHelp":"This permanently deletes the session, removing session.json and all message history on disk. It cannot be undone.","yeaft.session.settings.danger.deleteBtn":"Delete session","yeaft.vp.mention.placeholder":"Search role by id or name\u2026","yeaft.vp.mention.noMatch":"No matching role","yeaft.vp.mention.count":"{count} mentions","yeaft.feature.reject.missing_group_id":"Message send failed: session not specified.","yeaft.feature.reject.missing_feature_id":"Message send failed: task context lost.","yeaft.feature.reject.missing_vp_id":"Message send failed: speaker not set.","yeaft.feature.reject.invalid_vp_id":"Message send failed: invalid speaker id.","yeaft.feature.reject.empty_text":"Message send failed: empty message.","yeaft.feature.reject.text_too_long":"Message send failed: text too long (max 16 KiB).","yeaft.feature.reject.unknown":"Message send failed.","yeaft.feature.pill.label":"task","yeaft.feature.messageTime.aria":"Sent at {time}","yeaft.vp.turnBlock.elapsedTitle":"Time elapsed since this turn started","yeaft.vp.turnBlock.retryingRequest":"Response stalled; retrying with a fresh request ({attempt}/{max})","yeaft.vp.turnBlock.retryingContinue":"Response stalled; continuing with a fresh request ({attempt}/{max})","yeaft.sessionStatus.aria":"Session status","yeaft.sessionStatus.title":"Session status","yeaft.sessionStatus.announcement":"Announcement","yeaft.sessionStatus.announcementEmpty":"No announcement","yeaft.sessionStatus.announcementAdd":"Add announcement","yeaft.sessionStatus.announcementEdit":"Edit announcement","yeaft.sessionStatus.vps":"VPs","yeaft.sessionStatus.backgroundTasks":"Background tasks","yeaft.sessionStatus.noLogPreview":"No log output yet.","yeaft.sessionStatus.task.subAgentStarted":"{name} started","yeaft.sessionStatus.task.subAgentStartedWithMission":"{name} started: {mission}","yeaft.sessionStatus.task.subAgentStatus":"{name} is {status}","yeaft.sessionStatus.task.subAgentStatusUpdated":"{name} status updated","yeaft.sessionStatus.task.subAgentResult":"{name} result: {text}","yeaft.sessionStatus.task.subAgentProducedResult":"{name} produced a result","yeaft.sessionStatus.task.subAgentUsedTool":"{name} used {tool}","yeaft.sessionStatus.task.subAgentFinishedTool":"{name} finished {tool}","yeaft.sessionStatus.task.subAgentUsage":"{name} used {tokens} tokens","yeaft.sessionStatus.task.subAgentEvent":"{name}: {text}","yeaft.sessionStatus.task.subAgentUserPrompt":"You: {text}","yeaft.sessionStatus.task.subAgentToolSummary":"{count} tool calls completed","yeaft.sessionStatus.task.subAgentError":"{name} error: {error}","yeaft.sessionStatus.task.subAgentHitError":"{name} hit an error","yeaft.sessionStatus.task.subAgentNoReadableEvents":"No readable sub-agent activity yet.","yeaft.sessionStatus.task.promptPlaceholder":"Add guidance for this sub-agent\u2026","yeaft.sessionStatus.task.promptSend":"Send","yeaft.sessionStatus.task.promptSending":"Sending\u2026","yeaft.sessionStatus.task.promptFailed":"Failed to send prompt.","yeaft.sessionStatus.task.title":"Task","yeaft.sessionStatus.task.command":"Command","yeaft.sessionStatus.task.stop":"Stop task","yeaft.sessionStatus.task.stopping":"Stopping\u2026","yeaft.sessionStatus.task.kind.subAgent":"sub-agent","yeaft.sessionStatus.task.kind.shell":"shell","yeaft.sessionStatus.show":"Show Session status","yeaft.sessionStatus.hide":"Hide Session status","yeaft.sessionStatus.close":"Close Session status","yeaft.vpTimeline.empty":"No VPs in this Session yet.","yeaft.vpTimeline.resizeTitle":"Drag to resize","yeaft.vpTimeline.status.idle":"idle","yeaft.vpTimeline.status.typing":"typing\u2026","yeaft.vpTimeline.status.thinking":"thinking\u2026","yeaft.vpTimeline.status.retrying":"retrying request\u2026","yeaft.vpTimeline.status.streaming":"streaming","yeaft.vpTimeline.status.tool":"using tool\u2026","yeaft.vpTimeline.status.error":"error","yeaft.vpTimeline.status.offline":"offline","yeaft.vpTimeline.abort":"Abort","yeaft.vpTimeline.edit":"Edit VP","yeaft.vpTimeline.mention":"Click to @-mention this VP","yeaft.vpTimeline.expand":"Toggle task details","yeaft.toolStats.title":"Tool Usage Stats","yeaft.toolStats.refresh":"Refresh","yeaft.toolStats.close":"Close","yeaft.toolStats.tabAll":"All tools","yeaft.toolStats.tabUnused":"Unused","yeaft.toolStats.loading":"Loading\u2026","yeaft.toolStats.notLoaded":"No data yet \u2014 click refresh.","yeaft.toolStats.empty":"(no tool calls recorded yet)","yeaft.toolStats.noneUnused":"(every registered tool has been called at least once)","yeaft.toolStats.fetchedAt":"Fetched at","yeaft.toolStats.col.name":"Tool","yeaft.toolStats.col.calls":"Calls","yeaft.toolStats.col.errors":"Errors","yeaft.toolStats.col.errRate":"Err%","yeaft.toolStats.col.p50":"p50","yeaft.toolStats.col.p95":"p95","yeaft.toolStats.col.avg":"Avg","yeaft.toolStats.col.last":"Last","yeaft.toolStats.buttonLabel":"Tool Stats","workCenter.itemInfo":"Work item info","workCenter.infoTab.requirement":"Requirement","workCenter.infoTab.progress":"Progress","workCenter.infoTab.outputs":"Outputs","workCenter.infoTab.goals":"Goals","workCenter.infoTab.usage":"Usage","workCenter.infoProgressEmpty":"No Actions yet.","workCenter.infoOutputsEmpty":"No outputs yet.","workCenter.infoConversationEmpty":"No messages yet.","workCenter.workbenchUnavailable":"Open a Work Item with a workspace on an updated Agent and Server to use Workbench.","workCenter.openOutputFile":"Open file: {name}","workCenter.returnToSession":"Return to Session","workCenter.showNavigation":"Show Work Center navigation","workCenter.hideNavigation":"Hide Work Center navigation","workCenter.agents":"Agents","workCenter.expandItemActivity":"Expand activity for {title}","workCenter.collapseItemActivity":"Collapse activity for {title}","workCenter.activity":"In progress","workCenter.noActivity":"No work in progress","workCenter.activityOffline":"Disconnected \xB7 status may be out of date","workCenter.online":"Online","workCenter.offline":"Offline","workCenter.close":"Close Work Center","workCenter.searchAndFilters":"Search and filters","workCenter.moreActions":"More actions","workCenter.navigation":"Work item navigation","workCenter.title":"Work Center","workCenter.subtitle":"Persistent work owned by this Agent","workCenter.agent":"Agent","workCenter.selectAgent":"Select Agent","workCenter.noOnlineAgents":"No online agents","workCenter.noAvailableAgents":"No compatible online Agents","workCenter.checkingAgents":"Checking Work Center availability\u2026","workCenter.agentStatusLoadFailed":"Could not check Work Center status. Try again.","workCenter.retryAgentStatus":"Retry status check","workCenter.unavailableAgents":"Work Center is configured on, but its runtime is unavailable. Review this Agent\u2019s settings and logs.","workCenter.disabledAgents":"Work Center is disabled on the online Agent.","workCenter.disabledAgentsMany":"Work Center is disabled on {count} online Agents.","workCenter.openAgentSettings":"Open Agent settings","workCenter.openAgentSettingsUpgrade":"Open Agent settings to upgrade","workCenter.upgradeAgents":"The online Agents do not support Work Center settings.","workCenter.new":"New","workCenter.newWorkItem":"New work item","workCenter.workItem":"Work item","workCenter.createFirst":"Create first work item","workCenter.backToChat":"Back to chat","workCenter.refresh":"Refresh","workCenter.search":"Search work items","workCenter.filter":"Filter","workCenter.filterAttention":"Needs attention","workCenter.filterActive":"Active","workCenter.filterAll":"All","workCenter.filterDone":"Done","workCenter.attentionItems":"Needs attention","workCenter.board.active":"Active","workCenter.board.needsAttention":"Needs attention","workCenter.board.closed":"Closed","workCenter.board.emptyLane":"No work items","workCenter.board.lanes":"Work item lanes","workCenter.filterVp":"Filter by VP","workCenter.filterType":"Filter by type","workCenter.filterUpdated":"Filter by update time","workCenter.allVps":"All VPs","workCenter.allTypes":"All types","workCenter.anyTime":"Any time","workCenter.lastDay":"Last 24 hours","workCenter.lastWeek":"Last 7 days","workCenter.deleteWorkItem":"Delete Work Item","workCenter.deleteConfirm":"Permanently delete this Work Item, its execution history, and attachments?","workCenter.deleteRequiresStop":"Stop this Work Item before deleting it","workCenter.lastMonth":"Last 30 days","workCenter.assignment.planned":"Planned assignment","workCenter.created":"Created","workCenter.executionDuration":"Runtime","workCenter.files":"files","workCenter.loadMore":"Load more","workCenter.activeItems":"Active work","workCenter.allItems":"All work items","workCenter.completedItems":"Completed","workCenter.watcherActive":"Watcher active","workCenter.loading":"Loading work items\u2026","workCenter.noTimestamp":"No timestamp","workCenter.updated":"Updated","workCenter.emptyTitle":"No work items yet","workCenter.emptyBody":"Create a persistent task when work must continue beyond one conversation turn.","workCenter.noAttentionTitle":"Nothing needs attention","workCenter.noAttentionBody":"Work Items waiting for you or needing recovery will appear here.","workCenter.noActiveTitle":"No active work items","workCenter.noActiveBody":"Draft, ready, and running Work Items will appear here.","workCenter.noCompletedTitle":"No completed work items","workCenter.noCompletedBody":"Completed work items will appear here.","workCenter.noMatchesTitle":"No matching work items","workCenter.noMatchesBody":"Try a different search or filter.","workCenter.selectTitle":"Work item details","workCenter.detailLoading":"Loading full details\u2026","workCenter.detailLoadFailed":"Could not load full details","workCenter.start":"Start","workCenter.retry":"Retry","workCenter.cancel":"Cancel","workCenter.closeWorkItem":"Close details","workCenter.cancelWorkItem":"Stop work item","workCenter.cancelWorkItemHint":"Stop this Work Item and all unfinished Actions.","workCenter.cancelConfirm":"Stop this work item and its unfinished Actions?","workCenter.stopWorkItem":"Stop work item","workCenter.resumeWorkItem":"Resume work item","workCenter.resource.title":"Resource budget","workCenter.resource.requests":"Requests","workCenter.resource.chargedTokens":"Budgeted tokens","workCenter.resource.details":"Usage breakdown and limits","workCenter.resource.total":"Total \xB7 lifetime","workCenter.resource.coordinator":"Coordinator","workCenter.resource.actions":"Actions","workCenter.resource.usage":"{requests} requests \xB7 {charged} budgeted tokens","workCenter.resource.tokens":"Reported {reported} \xB7 reserved / unknown {reserved} tokens","workCenter.resource.unknown":"Unknown usage: {unknown} requests \xB7 in flight: {inflight}","workCenter.resource.accounting":"Budgeted tokens include reservations; do not add them again. Reported tokens are known usage, not the total bill. Admission is estimated, not a hard spending ceiling.","workCenter.resource.maxRequests":"Lifetime requests","workCenter.resource.maxTokens":"Lifetime tokens","workCenter.resource.maxRunRequests":"Requests per Run","workCenter.resource.maxActionAttempts":"Attempts per Action","workCenter.resource.maxCoordinatorFailures":"Coordinator failures","workCenter.resource.attemptLimit":"Action attempts are cumulative across generations and also capped by each Action\u2019s original limit plus explicit extensions. Used / effective limit:","workCenter.resource.attemptExtension":"Adding Action attempts authorizes extra attempts for ALL current and future Actions in this WorkItem.","workCenter.resource.stopped":"Execution stopped by resource control.","workCenter.resource.stop.work_item_requests_exhausted":"Stopped: lifetime request budget exhausted.","workCenter.resource.stop.work_item_tokens_exhausted":"Stopped: token budget cannot admit another request.","workCenter.resource.stop.run_requests_exhausted":"Stopped: Run request limit reached. Resume starts a new Run.","workCenter.resource.stop.action_attempts_exhausted":"Stopped: Action attempt limit reached.","workCenter.resource.stop.coordinator_failures_exhausted":"Stopped: Coordinator failure limit reached.","workCenter.resource.offline":"Agent disconnected. Reconnect and refresh before changing resources.","workCenter.resource.stale":"Resource state changed or is unconfirmed. Refresh and confirm again; nothing will be retried automatically.","workCenter.resource.refresh":"Refresh resource state","workCenter.resource.reconfirm":"Latest state loaded. Review the limits and confirm a new operation if needed.","workCenter.resource.extend":"Extend budget","workCenter.resource.confirmExtend":"Confirm budget addition","workCenter.resource.extendHelp":"Enter positive whole-number additions, not replacement limits. Leave other fields blank. Adding budget does not resume execution or reset usage.","workCenter.resource.current":"Current: {count}","workCenter.resource.invalid":"Use positive safe integers only; the resulting limits must also be safe integers.","workCenter.resource.extended":"Budget added. Execution was not resumed; resume explicitly when ready.","workCenter.resource.resumed":"Resume accepted.","workCenter.resource.pending":"Updating resource state\u2026","workCenter.resource.close":"Close budget form","workCenter.breadcrumbs":"Work Center navigation","workCenter.actionNumber":"Action {number}","workCenter.actionBreadcrumb":"Action {number}: {description}","workCenter.sourceUnavailable":"Source Action unavailable","workCenter.untitledAction":"Untitled Action","workCenter.workItems":"Work items","workCenter.description":"Description","workCenter.goal":"Goal","workCenter.acceptanceCriteria":"Acceptance criteria","workCenter.goalProgress":"Goal progress","workCenter.criteriaProgress":"{completed} / {total} criteria verified","workCenter.criteriaRemaining":"{count} remaining","workCenter.criteriaOmitted":"{count} more criteria omitted from this bounded view; totals include them.","workCenter.criteriaVerified":"All criteria verified","workCenter.criteriaPending":"Acceptance criteria have not been defined yet","workCenter.goalStatus.passed":"Verified","workCenter.goalStatus.failed":"Failed","workCenter.goalStatus.unmet":"Not yet verified","workCenter.goalBlockers":"Blockers","workCenter.evidenceRuns":"Evidence Runs","workCenter.deliveredResponse":"Delivered response","workCenter.responseEvidence":"Response source and evidence","workCenter.noCriteria":"No criteria provided","workCenter.failureReason":"Failure reason","workCenter.workflow":"Workflow","workCenter.triageSummary":"Triage summary","workCenter.actionFlow":"Action flow","workCenter.viewActions":"View Actions","workCenter.actionsPanel":"Actions","workCenter.resizeActions":"Resize Actions panel (arrow keys to adjust, Home to reset)","workCenter.closeActions":"Close Actions","workCenter.actionCount":"{count} Actions","workCenter.noActionSummary":"No summary yet","workCenter.actionProgress":"{completed} / {total} Actions","workCenter.currentAction":"Current Action","workCenter.expandActions":"Show Actions","workCenter.collapseActions":"Collapse","workCenter.actionObjective":"What to do","workCenter.actionApproach":"How to do it","workCenter.actionExpectedOutcome":"Expected result","workCenter.dependencies":"Source Actions","workCenter.actionResult":"Latest result","workCenter.currentProgress":"Current progress","workCenter.requirementAndAcceptance":"Requirement and acceptance","workCenter.taskInformation":"Task information and usage","workCenter.actionMessages":"Messages","workCenter.loops":"loops","workCenter.tools":"tools","workCenter.noActionMessages":"No messages yet.","workCenter.actionDetails":"Action details","workCenter.selectAction":"Select an Action","workCenter.backToWorkItems":"Work items","workCenter.backToActions":"Back to Actions","workCenter.you":"You","workCenter.noRequestDetails":"No execution records are available for this Action yet.","workCenter.loadingRequests":"Loading execution records\u2026","workCenter.loadingRequestDetail":"Loading tool evidence\u2026","workCenter.requestDetailUnavailable":"Tool evidence is unavailable. Try again.","workCenter.noRequestLoops":"This execution has no retained Loop details.","workCenter.requestDetailTruncated":"Large execution: {summarized} Loops are summarized and {omitted} older Loops are omitted.","workCenter.loopDetailTruncated":"Large Loop: showing retained tool evidence.","workCenter.loadEarlierMessages":"Load earlier messages","workCenter.loadingEarlierMessages":"Loading earlier messages\u2026","workCenter.unknownModel":"Unknown model","workCenter.loop":"Loop","workCenter.actionBrief":"Task brief","workCenter.executionSummary":"Execution summary","workCenter.toolParameters":"Parameters","workCenter.toolResult":"Result","workCenter.noToolCalls":"No tool calls in this Loop.","workCenter.actionInputPlaceholder":"Add context, answer a question, or redirect this Action","workCenter.actionInputResumeHint":"Your input resumes this Action with the additional context.","workCenter.waitingQuestionTitle":"Input required","workCenter.replyToAction":"Reply to this Action","workCenter.replyToCoordinator":"Reply to Coordinator","workCenter.replyHelp":"Reply with your decision or instructions in the conversation below. Nothing is approved until you send.","workCenter.inputStale":"Your reply was not applied because the target changed. Your draft is saved; check the refreshed target and send again.","workCenter.actionInputRetryHint":"Add instructions or files, then rerun this Action with the new context.","workCenter.actionInputContinueHint":"Direct intervention for this Action only.","workCenter.actionFailedTitle":"Why this Action failed","workCenter.actionClosedTitle":"Why this Action was closed","workCenter.failedAt":"Failed at","workCenter.closedAt":"Closed at","workCenter.actionFailureRecovery":"Choose this Action in the Work Item composer to send corrected instructions.","workCenter.sendInput":"Send to Action","workCenter.sendingInput":"Sending\u2026","workCenter.retryAction":"Retry Action","workCenter.sendAndRetryAction":"Send and retry Action","workCenter.coordinatorDecision.guide_actions":"Action instructions updated","workCenter.coordinatorDecision.replan":"Goal or plan updated","workCenter.coordinatorDecision.request_human":"Human input requested","workCenter.conversation":"Conversation","workCenter.contentPane":"Content","workCenter.workItemPanes":"Work item panes","workCenter.coordinator":"Coordinator","workCenter.coordinatorTargetHint":"Work Item planning and coordination","workCenter.composerTarget":"Message target","workCenter.targetUnavailable":"Selected Action is no longer available","workCenter.targetUnavailableHelp":"Choose another target before sending. This draft was not redirected.","workCenter.sendToCoordinatorInstead":"Send to Coordinator instead","workCenter.sendToTarget":"Send to {target}","workCenter.answerWithTarget":"Choose the relevant target in the Conversation composer, then reply.","workCenter.conversationThinking":"Working\u2026","workCenter.conversationReadOnly":"This work item is closed. The conversation remains available.","workCenter.conversationPlaceholder":"Message about this work item","workCenter.sendMessage":"Send message","workCenter.messageSpeakerRole":"{name} \xB7 {role}","workCenter.originalRequest":"Original request","workCenter.actionMessageScopeTitle":"Message this Action","workCenter.actionMessageScope":"Only this Action receives the message.","workCenter.actionConversation":"Conversation","workCenter.actionConversationWith":"Action executor","workCenter.actionViews":"Action views","workCenter.actionExecutor":"Executor","workCenter.actionExecutorPending":"Executor pending","workCenter.actionInformation":"Action information","workCenter.messageExecutor":"Message {name}","workCenter.actionChatPlaceholder":"Message {name} from the Conversation composer","workCenter.statusLabel":"Status","workCenter.llmRequestsLabel":"LLM requests","workCenter.loopsLabel":"Loops","workCenter.toolsLabel":"Tools","workCenter.tokensLabel":"Tokens","workCenter.workItemMessagePlaceholder":"Add direction for the whole Work Item","workCenter.sendWorkItemMessage":"Send to Work Item","workCenter.fromSession":"Create a work item from this Session","workCenter.llmRequestCount":"{count} LLM requests","workCenter.loopCount":"{count} loops","workCenter.toolCount":"{count} tools","workCenter.tokenCount":"{count} tokens","workCenter.tokenBreakdown":"{input} input / {output} output / {cache} cached","workCenter.guidance":"Add guidance to the current Action","workCenter.guidanceHint":"Clarify constraints or redirect the current Action","workCenter.guidanceRestartHint":"This restarts the current Action with the new guidance.","workCenter.sendGuidance":"Send guidance","workCenter.reuseMemory":"Use relevant Agent memory and completed work from this project","workCenter.reuseMemoryHelp":"Includes scope-bounded Agent memory plus structured summaries and evidence from completed WorkItems with the same canonical project directory. Raw tool output is not reused.","workCenter.resumeAnswer":"Answer the waiting question","workCenter.resumeAnswerHint":"Provide the information required to continue","workCenter.answerInActionDetail":"Target the current Action in the Conversation composer, then reply.","workCenter.selectPrompt":"Select a work item to inspect its workflow.","workCenter.createHint":"Describe what you need. The Coordinator will keep creating the next justified Actions until the acceptance criteria are verified.","workCenter.requirement":"Requirement","workCenter.requirementHint":"Describe the problem, desired outcome, and any constraints in your own words","workCenter.requirementHelp":"The Coordinator will refine the goal and acceptance criteria, then create Actions dynamically as evidence arrives.","workCenter.titleField":"Title","workCenter.titleHint":"A short, specific outcome","workCenter.goalHint":"Describe the result the Agent must deliver","workCenter.criteriaHint":"One criterion per line","workCenter.attachments":"Attachments","workCenter.outputs":"Outputs","workCenter.deliveryTarget":"Delivery target","workCenter.deliveryTargetCustom":"Custom","workCenter.deliveryCustomHelp":"Merge and release still require authorization.","workCenter.deliveryTargetAsk":"Ask me before delivery","workCenter.deliveryTargetResponse":"Response","workCenter.deliveryTargetFiles":"Workspace files","workCenter.deliveryTargetPr":"Open a pull request","workCenter.deliveryTargetMerge":"Merge an approved pull request","workCenter.deliveryTargetHelp":"Response delivers an answer with evidence, without requiring code artifacts. Code targets still follow review and merge policy.","workCenter.deliveryInstructions":"Delivery goal","workCenter.deliveryInstructionsHint":"For example: publish a release and summarize the changes","workCenter.deliveryInstructionsHelp":"Choose a previous goal or enter a new one. This does not grant extra delivery permissions.","workCenter.attachmentsHelp":"Images, PDFs, and text files stay bound to this Work Item and are available to every Action.","workCenter.attachmentsUnsupported":"The selected Agent does not support Work Item attachments.","workCenter.addAttachments":"Add files","workCenter.attachmentsUploading":"Uploading\u2026","workCenter.attachmentsUploadFailed":"Attachment upload failed","workCenter.pendingEnvelopeLocked":"An unconfirmed request is locked to its original identity.","workCenter.replacePendingAttachments":"Replace attachments","workCenter.discardPendingEnvelope":"Discard pending request","workCenter.pendingEnvelopeChanged":"The pending request changed; reopen this Work Item and try again.","workCenter.removeAttachment":"Remove from draft","workCenter.previewAttachment":"Open attachment","workCenter.openAttachmentNamed":"Open attachment {name}","workCenter.openingAttachment":"Opening attachment\u2026","workCenter.attachmentPreviewFailed":"Could not open the attachment. Try again.","workCenter.attachmentOpenBlocked":"The browser blocked the attachment window. Allow pop-ups and try again.","workCenter.execution":"Execution","workCenter.executionHint":"Choose where and how this work item starts.","workCenter.workDir":"Working directory","workCenter.workDirHint":"Choose an existing project directory","workCenter.chooseFolder":"Choose folder","workCenter.workDirPickerHelp":"Select an existing folder on the chosen Agent.","workCenter.folderPickerHint":"Choose the project folder this Work Item can read and modify.","workCenter.folderPickerSelectionHint":"Double-click to open a folder, or select it and confirm.","workCenter.schedule":"Schedule","workCenter.scheduleStatus":"Schedule status","workCenter.scheduleEnabled":"Enabled","workCenter.scheduleDisabled":"Disabled","workCenter.scheduleRunsAt":"Scheduled for","workCenter.scheduleTriggered":"Schedule triggered","workCenter.schedulePaused":"Schedule paused","workCenter.scheduleWorkItem":"Schedule this work item","workCenter.scheduleWorkItemHint":"Keep it as a persisted draft and start it once at the selected local time.","workCenter.scheduling.heading":"When to run","workCenter.scheduling.planHint":"This is a schedule, not an execution. Open a generated work item to follow its progress or send instructions.","workCenter.scheduling.mode.now":"Start now","workCenter.scheduling.mode.draft":"Save draft","workCenter.scheduling.mode.scheduled":"Schedule","workCenter.scheduling.modeHint.now":"Start as soon as the work item is created.","workCenter.scheduling.modeHint.draft":"Save without starting. Review it and start when ready.","workCenter.scheduling.repeat":"Repeat","workCenter.scheduling.once":"Once","workCenter.scheduling.daily":"Every day","workCenter.scheduling.weekdays":"Weekdays","workCenter.scheduling.weekly":"Every week","workCenter.scheduling.monthly":"Every month","workCenter.scheduling.date":"Date","workCenter.scheduling.fromDate":"Starting from","workCenter.scheduling.time":"Time \xB7 24-hour","workCenter.scheduling.timeHint":"HH:mm, for example 09:00 or 17:30","workCenter.scheduling.timeZone":"Time zone","workCenter.scheduling.onDays":"Run on","workCenter.scheduling.monthDay":"Day of the month","workCenter.scheduling.shortMonth":"If the month is shorter, run on its last day.","workCenter.scheduling.ends":"Ends","workCenter.scheduling.end.never":"Never","workCenter.scheduling.end.date":"On a date","workCenter.scheduling.end.count":"After a number of runs","workCenter.scheduling.endDate":"Last day \xB7 inclusive","workCenter.scheduling.runCount":"Total runs \xB7 1\u20131,000","workCenter.scheduling.nextRun":"Next run","workCenter.scheduling.create":"Create schedule","workCenter.scheduling.onceHint":"Runs once when this Agent is online. If it is offline at the scheduled time, runs after it reconnects.","workCenter.scheduling.recurringHint":"Each run creates a separate work item. Missed times are coalesced; runs never overlap. Pausing stops future runs, not work already in progress.","workCenter.scheduling.upgrade":"This Agent does not advertise recurring schedules. Update it to enable repetition.","workCenter.scheduling.invalidDateTime":"Enter a valid date and time (HH:mm).","workCenter.scheduling.invalidTimeZone":"Choose a valid time zone.","workCenter.scheduling.chooseWeekdays":"Choose at least one day of the week.","workCenter.scheduling.invalidMonthDay":"Choose a day from 1 to 31.","workCenter.scheduling.nonexistentTime":"This local time does not exist because the clock changes. Choose another time.","workCenter.scheduling.futureTime":"The first run must be in the future.","workCenter.scheduling.tooFar":"Choose a first run within the next five years.","workCenter.scheduling.invalidEndDate":"The end date must include at least the first run.","workCenter.scheduling.supportedRange":"Choose dates within the supported 1970\u20132099 UTC range.","workCenter.scheduling.invalidRunCount":"Enter a whole number from 1 to 1,000.","workCenter.scheduling.status.scheduled":"Scheduled","workCenter.scheduling.status.paused":"Paused","workCenter.scheduling.status.triggered":"Triggered","workCenter.scheduling.status.completed":"Schedule finished","workCenter.scheduling.status.cancelled":"Cancelled","workCenter.scheduling.retrying":"Retrying","workCenter.scheduling.dispatchFailed":"Scheduled execution could not start. It will retry automatically; check the plan\u2019s configuration and attachments.","workCenter.scheduling.pause":"Pause schedule","workCenter.scheduling.resume":"Resume schedule","workCenter.scheduling.executions":"{count} work items created","workCenter.scheduling.lastExecution":"View latest execution","workCenter.scheduling.sourcePlan":"View recurring schedule","workCenter.scheduleAt":"Start at","workCenter.enableSchedule":"Enable schedule","workCenter.disableSchedule":"Disable schedule","workCenter.startImmediately":"Start immediately","workCenter.startImmediatelyHint":"Turn this off to create a draft you can review first.","workCenter.creating":"Creating\u2026","workCenter.create":"Create","workCenter.status.draft":"draft","workCenter.status.ready":"ready","workCenter.status.running":"running","workCenter.status.waiting":"waiting","workCenter.status.needs_attention":"needs attention","workCenter.status.done":"done","workCenter.status.cancelled":"cancelled","workCenter.status.completed":"completed","workCenter.status.failed":"failed","workCenter.status.closed":"closed","workCenter.status.superseded":"superseded","workCenter.action.triage":"Triage","workCenter.action.implement":"Implement","workCenter.action.review":"Review","workCenter.action.integrate":"Integrate","workCenter.action.deliver":"Deliver","workCenter.action.test":"Test","workCenter.action.research":"Research","workCenter.action.design":"Design","workCenter.action.diagnose":"Diagnose","workCenter.action.migrate":"Migrate","workCenter.action.document":"Document","workCenter.action.operate":"Operate","workCenter.action.write":"Write","workCenter.action.create_vp":"Create VP","workCenter.action.custom":"Custom","workCenter.assignment.auto":"Use workflow policy","workCenter.model.inherit":"Use workflow model","workCenter.model.defaultProvider":"default provider","workCenter.planPreview":"Execution plan","workCenter.planPreviewHelp":"Resolved from this Agent\u2019s VP pool and model settings.","workCenter.settings.title":"Work Center settings","workCenter.settings.subtitle":"Configure the Coordinator plus reusable Action prompts, models, and effort for AI-planned work.","workCenter.settings.workflow":"Workflow","workCenter.settings.workflowHelp":"The Coordinator chooses task-specific Actions and executors dynamically.","workCenter.settings.aiWorkflowHelp":"The Coordinator creates only the next justified task-specific Actions. Built-in Action policies are reusable templates, and the Coordinator may create a precise domain type when needed.","workCenter.settings.globalInstructions":"Global Agent instructions","workCenter.settings.globalInstructionsHint":"Example: Follow the repository release policy, require independent review, and never create deployment tags without explicit approval.","workCenter.settings.globalInstructionsHelp":"Stored at Agent level and frozen into every new WorkItem. Applied to triage and every generated Action, below the WorkItem contract and system/tool safety rules. Existing WorkItems keep their original snapshot.","workCenter.settings.actionPolicies":"Built-in Action policies","workCenter.settings.actionPoliciesHelp":"These are reusable execution baselines, not a fixed workflow. Unknown domain-specific Action types use the Custom policy plus their triage-generated type and objective.","workCenter.settings.dynamicInstructionHelp":"The AI adds the WorkItem contract, global instructions, prior Action context, memory, and a task-specific objective. This prompt defines the reusable behavior for this Action type.","workCenter.settings.models":"Models","workCenter.settings.modelsHelp":"Providers and credentials stay in Agent LLM settings. Work Center only selects available models.","workCenter.settings.dynamicModelsHelp":"Choose the Coordinator model separately from the models that execute Actions.","workCenter.settings.coordinatorModel":"Coordinator","workCenter.settings.coordinatorModelHelp":"Used for Work Item conversation, goal changes, and replanning. It never executes repository tools.","workCenter.settings.allActions":"Fallback for all Actions","workCenter.settings.maxConcurrentActions":"Maximum concurrent Actions","workCenter.settings.maxConcurrentActionsHelp":"Defaults to 3. Non-Git, dirty, shared, and integration work remains serial.","workCenter.workItemType":"Type","workCenter.typeAuto":"Auto \u2014 let the LLM infer","workCenter.typeHelp":"Choose a task category, or use Auto for AI inference. AI still plans the concrete Actions.","workCenter.planning":"Planning","workCenter.aiPlan":"Coordinator-driven execution","workCenter.aiPlanHelp":"The Coordinator chooses the next Actions and executors from the current evidence instead of precomputing a workflow graph. Work Center settings control model and effort.","workCenter.settings.manageProviders":"Manage Agent models","workCenter.settings.assignment":"VP selection","workCenter.settings.assignment.auto":"Auto from all VPs","workCenter.settings.assignment.pool":"Candidate pool","workCenter.settings.assignment.fixed":"Fixed VP","workCenter.settings.capability":"Required capability","workCenter.settings.vp":"Virtual Person","workCenter.settings.poolMembers":"Candidate VPs","workCenter.settings.modelPolicy":"Model policy","workCenter.settings.model.inherit":"Inherit from VP","workCenter.settings.model.primary":"Agent primary model","workCenter.settings.model.fast":"Agent fast model","workCenter.settings.model.specific":"Specific model","workCenter.settings.model.tag":"Model tag","workCenter.settings.modelTag":"Tag","workCenter.settings.modelTag.fast":"Fast","workCenter.settings.modelTag.balanced":"Balanced","workCenter.settings.modelTag.ultimate":"Ultimate","workCenter.settings.model":"Model","workCenter.settings.effort":"Reasoning effort","workCenter.settings.effortDefault":"Model default","workCenter.settings.effortHelp":"Overrides the selected model\u2019s default reasoning effort for every Work Center Action.","workCenter.settings.effortChooseModelHelp":"Select the Agent primary model, fast model, or a specific model to configure effort. Inherit from VP uses each VP\u2019s model default.","workCenter.settings.effortUnsupportedHelp":"The selected model does not expose configurable effort, so its model default is used.","workCenter.settings.saving":"Saving\u2026","workCenter.settings.reload":"Reload settings","workCenter.settings.conflict":"Settings changed elsewhere. Reload before saving again.","workCenter.settings.upgradeRequired":"This Agent version cannot save Work Center settings. The current values are shown read-only; upgrade the Agent to edit and save them.","workCenter.settings.saveNotConfirmed":"The Agent did not confirm the submitted prompts and model policy. Settings were not closed; reload or upgrade the Agent before trying again.","workCenter.settings.addWorkflow":"Duplicate workflow","workCenter.settings.removeWorkflow":"Remove","workCenter.settings.newWorkflow":"Workflow {index}","workCenter.settings.workflowName":"Workflow name","workCenter.settings.newStage":"New stage","workCenter.settings.addStage":"Add stage","workCenter.settings.removeStage":"Remove stage","workCenter.settings.moveUp":"Move stage up","workCenter.settings.moveDown":"Move stage down","workCenter.settings.stageType":"Stage type","workCenter.settings.reviewReturnStage":"Return to stage when changes are requested","workCenter.settings.instruction":"Stage prompt","workCenter.settings.instructionHint":"Define what this stage must do.","workCenter.settings.instructionHelp":"The WorkItem goal, acceptance criteria, and reusable context are added automatically at run time.","workCenter.settings.instructionReset":"Restore default"}});function Qc(){return typeof navigator>"u"||!navigator?"":navigator.userAgent||""}function Mr(){let e=Qc();return/Android|iPhone|iPad|iPod|Windows Phone|IEMobile|BlackBerry|Opera Mini/i.test(e)}function la(){return/MicroMessenger/i.test(Qc())}function ca(){return/AlipayClient/i.test(Qc())}var Xc=N(()=>{});var lh,ch=N(()=>{Ft();ms();Xc();lh={name:"LoginPage",template:`
|
|
@@ -8145,6 +8145,7 @@ ${String(e||"").trim()}
|
|
|
8145
8145
|
<p v-if="stale" class="person-notice" role="status">{{ $t('person.recordsStale') }}</p>
|
|
8146
8146
|
<div class="person-journal-scroll" tabindex="0" :aria-label="$t('person.thoughts')" :aria-busy="loading">
|
|
8147
8147
|
<div class="person-reading-column">
|
|
8148
|
+
<slot name="activity"></slot>
|
|
8148
8149
|
<button v-if="more" type="button" class="btn-ghost person-load-more" :disabled="disabled || loading" @click="$emit('more')">{{ $t('person.olderThoughts') }}</button>
|
|
8149
8150
|
<p v-if="!entries.length" class="person-empty" role="status">{{ $t(loading ? 'person.loading' : 'person.noThoughts') }}</p>
|
|
8150
8151
|
<article v-for="entry in entries" :key="entry.id" class="person-thought" :data-thought-kind="entry.kind">
|
|
@@ -8206,20 +8207,12 @@ ${String(e||"").trim()}
|
|
|
8206
8207
|
<header class="chat-header person-header" :inert="compactPanel && panel ? true : undefined">
|
|
8207
8208
|
<nav class="person-navigation" :aria-label="$t('person.navigation')">
|
|
8208
8209
|
<button ref="returnButton" type="button" class="header-action-btn" @click="leave()" :aria-label="$t('yeaft.session.title')" :title="$t('yeaft.session.title')"><NavigationIcon name="back" /></button>
|
|
8209
|
-
</nav>
|
|
8210
|
-
<div class="person-identity">
|
|
8211
8210
|
<div class="person-breadcrumb">
|
|
8212
|
-
<ModernSelect id="person-agent" class="person-agent-select" v-model="agentId" :options="agentOptions" :aria-label="$t('person.agent')" :placeholder="$t('person.noAgent')" :empty-text="$t('person.noAgent')" :disabled="!
|
|
8213
|
-
<NavigationIcon name="chevron" :size="14" />
|
|
8214
|
-
<h1 :title="state.person?.name || $t('person.title')">{{ state.person?.name || $t('person.title') }}</h1>
|
|
8215
|
-
</div>
|
|
8216
|
-
<div v-if="!responding" class="person-status" role="status" aria-live="polite">
|
|
8217
|
-
<span class="person-status-dot" :class="{ ready }" aria-hidden="true"></span>
|
|
8218
|
-
<span v-if="gate">{{ $t('person.' + gate) }}</span>
|
|
8219
|
-
<span v-else-if="state.loading">{{ $t('person.loading') }}</span>
|
|
8220
|
-
<span v-else-if="ready">{{ $t('person.ready') }}</span>
|
|
8221
|
-
<button v-if="gate === 'disconnected'" type="button" class="btn-ghost" @click="chat.manualReconnect()">{{ $t('chat.connection.reconnect') }}</button>
|
|
8211
|
+
<ModernSelect id="person-agent" class="person-agent-select" menu-class="agent-select-menu" v-model="agentId" :options="agentOptions" :aria-label="$t('person.agent')" :placeholder="$t('person.noAgent')" :empty-text="$t('person.noAgent')" :disabled="!agentOptions.length" :menu-min-width="220" />
|
|
8222
8212
|
</div>
|
|
8213
|
+
</nav>
|
|
8214
|
+
<div class="person-identity">
|
|
8215
|
+
<h1 :title="state.person?.name || $t('person.title')">{{ state.person?.name || $t('person.title') }}</h1>
|
|
8223
8216
|
</div>
|
|
8224
8217
|
<div class="person-header-actions">
|
|
8225
8218
|
<button type="button" class="header-action-btn" @click="controller.refresh()" :disabled="!!gate || state.loading || state.commandPending" :aria-label="$t('common.refresh')" :title="$t('common.refresh')"><NavigationIcon name="refresh" /></button>
|
|
@@ -8228,6 +8221,10 @@ ${String(e||"").trim()}
|
|
|
8228
8221
|
<button type="button" class="header-action-btn person-settings-button" :disabled="!!gate || state.loading || !state.person || state.busy || state.commandPending" @click="settingsOpen = true" :aria-label="$t('person.settings')" :title="$t('person.settings')"><NavigationIcon name="settings" /></button>
|
|
8229
8222
|
</div>
|
|
8230
8223
|
</header>
|
|
8224
|
+
<div v-if="gate || state.loading" class="person-connection-notice" :inert="compactPanel && panel ? true : undefined" role="status" aria-live="polite">
|
|
8225
|
+
<span>{{ $t('person.' + (gate || 'loading')) }}</span>
|
|
8226
|
+
<button v-if="gate === 'disconnected'" type="button" class="btn-ghost" @click="chat.manualReconnect()">{{ $t('chat.connection.reconnect') }}</button>
|
|
8227
|
+
</div>
|
|
8231
8228
|
<section v-if="(state.configured === false || state.storageReady === false || state.modelReady === false) && !gate" class="person-configuration" :inert="compactPanel && panel ? true : undefined" role="status">
|
|
8232
8229
|
<h2>{{ $t('person.configureTitle') }}</h2>
|
|
8233
8230
|
<p>{{ $t('person.configureAgent') }}</p>
|
|
@@ -8263,7 +8260,9 @@ ${String(e||"").trim()}
|
|
|
8263
8260
|
<div class="person-message-text markdown-body" v-html="renderSafeMessageMarkdown(message.text)"></div>
|
|
8264
8261
|
</article>
|
|
8265
8262
|
</template>
|
|
8266
|
-
<
|
|
8263
|
+
<div v-if="activity.loading" class="person-response-loading" role="status" :aria-label="$t('sidebar.sessions.processing')">
|
|
8264
|
+
<span class="typing-indicator" aria-hidden="true"><span></span><span></span><span></span></span>
|
|
8265
|
+
</div>
|
|
8267
8266
|
</div>
|
|
8268
8267
|
</div>
|
|
8269
8268
|
<div class="input-area person-composer">
|
|
@@ -8325,7 +8324,9 @@ ${String(e||"").trim()}
|
|
|
8325
8324
|
<button v-if="panel === 'thoughts'" type="button" class="btn-ghost person-debug-link" @click="openPanel('debug')">{{ $t('person.debug') }}</button>
|
|
8326
8325
|
<button v-else type="button" class="btn-ghost" @click="openPanel('thoughts')">{{ $t('person.back') }}</button>
|
|
8327
8326
|
</div>
|
|
8328
|
-
<PersonThoughtJournal v-if="panel === 'thoughts'" :traces="state.traces" :loading="state.tracesLoading" :stale="state.tracesStale" :more="state.traceCursor != null" :disabled="!!gate || !state.person || state.loading" @refresh="controller.page('traces')" @more="controller.page('traces', true)"
|
|
8327
|
+
<PersonThoughtJournal v-if="panel === 'thoughts'" :traces="state.traces" :loading="state.tracesLoading" :stale="state.tracesStale" :more="state.traceCursor != null" :disabled="!!gate || !state.person || state.loading" @refresh="controller.page('traces')" @more="controller.page('traces', true)">
|
|
8328
|
+
<template #activity><PersonActivity :key="activity.episodeId || 'pending'" :activity="activity" /></template>
|
|
8329
|
+
</PersonThoughtJournal>
|
|
8329
8330
|
<PersonDebugLog v-if="panel === 'debug'" :traces="state.traces" :state="state.state" :loading="state.tracesLoading" :stale="state.tracesStale" :more="state.traceCursor != null" :disabled="!!gate || !state.person || state.loading" @refresh="controller.page('traces')" @more="controller.page('traces', true)" />
|
|
8330
8331
|
</aside>
|
|
8331
8332
|
</div>
|