astrion-website/demo/static/dist/assets/index.js

54 lines
343 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @vue/shared v3.5.35
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function _s(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ae={},Zt=[],st=()=>{},Aa=()=>!1,To=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ko=e=>e.startsWith("onUpdate:"),ve=Object.assign,Ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Al=Object.prototype.hasOwnProperty,ne=(e,t)=>Al.call(e,t),V=Array.isArray,en=e=>Vn(e)==="[object Map]",mn=e=>Vn(e)==="[object Set]",ai=e=>Vn(e)==="[object Date]",G=e=>typeof e=="function",le=e=>typeof e=="string",We=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",Fa=e=>(ee(e)||G(e))&&G(e.then)&&G(e.catch),Ra=Object.prototype.toString,Vn=e=>Ra.call(e),Fl=e=>Vn(e).slice(8,-1),Pa=e=>Vn(e)==="[object Object]",Co=e=>le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_n=_s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),So=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Rl=/-\w/g,Ee=So(e=>e.replace(Rl,t=>t.slice(1).toUpperCase())),Pl=/\B([A-Z])/g,Et=So(e=>e.replace(Pl,"-$1").toLowerCase()),_o=So(e=>e.charAt(0).toUpperCase()+e.slice(1)),Bo=So(e=>e?`on${_o(e)}`:""),Ke=(e,t)=>!Object.is(e,t),io=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Ea=(e,t,n,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Do=e=>{const t=parseFloat(e);return isNaN(t)?e:t},El=e=>{const t=le(e)?Number(e):NaN;return isNaN(t)?e:t};let ri;const Mo=()=>ri||(ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ao(e){if(V(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],s=le(o)?xl(o):Ao(o);if(s)for(const i in s)t[i]=s[i]}return t}else if(le(e)||ee(e))return e}const Nl=/;(?![^(]*\))/g,Il=/:([^]+)/,Ll=/\/\*[^]*?\*\//g;function xl(e){const t={};return e.replace(Ll,"").split(Nl).forEach(n=>{if(n){const o=n.split(Il);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Fo(e){let t="";if(le(e))t=e;else if(V(e))for(let n=0;n<e.length;n++){const o=Fo(e[n]);o&&(t+=o+" ")}else if(ee(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function uf(e){if(!e)return null;let{class:t,style:n}=e;return t&&!le(t)&&(e.class=Fo(t)),n&&(e.style=Ao(n)),e}const Ol="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Ul=_s(Ol);function Na(e){return!!e||e===""}function Wl(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=fn(e[o],t[o]);return n}function fn(e,t){if(e===t)return!0;let n=ai(e),o=ai(t);if(n||o)return n&&o?e.getTime()===t.getTime():!1;if(n=We(e),o=We(t),n||o)return e===t;if(n=V(e),o=V(t),n||o)return n&&o?Wl(e,t):!1;if(n=ee(e),o=ee(t),n||o){if(!n||!o)return!1;const s=Object.keys(e).length,i=Object.keys(t).length;if(s!==i)return!1;for(const a in e){const r=e.hasOwnProperty(a),l=t.hasOwnProperty(a);if(r&&!l||!r&&l||!fn(e[a],t[a]))return!1}}return String(e)===String(t)}function Ms(e,t){return e.findIndex(n=>fn(n,t))}const Ia=e=>!!(e&&e.__v_isRef===!0),Bl=e=>le(e)?e:e==null?"":V(e)||ee(e)&&(e.toString===Ra||!G(e.toString))?Ia(e)?Bl(e.value):JSON.stringify(e,La,2):String(e),La=(e,t)=>Ia(t)?La(e,t.value):en(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],i)=>(n[jo(o,i)+" =>"]=s,n),{})}:mn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>jo(n))}:We(t)?jo(t):ee(t)&&!V(t)&&!Pa(t)?String(t):t,jo=(e,t="")=>{var n;return We(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
* @vue/reactivity v3.5.35
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let we;class xa{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&we&&(we.active?(this.parent=we,this.index=(we.scopes||(we.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){++this._on===1&&(this.prevScope=we,we=this)}off(){if(this._on>0&&--this._on===0){if(we===this)we=this.prevScope;else{let t=we;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(this.effects.length=0,n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,o=this.scopes.length;n<o;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function jl(e){return new xa(e)}function Hl(){return we}function pf(e,t=!1){we&&we.cleanups.push(e)}let re;const Ho=new WeakSet;class Oa{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,we&&(we.active?we.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ho.has(this)&&(Ho.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Wa(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,li(this),Ba(this);const t=re,n=ze;re=this,ze=!0;try{return this.fn()}finally{ja(this),re=t,ze=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Rs(t);this.deps=this.depsTail=void 0,li(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ho.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){es(this)&&this.run()}get dirty(){return es(this)}}let Ua=0,Dn,Mn;function Wa(e,t=!1){if(e.flags|=8,t){e.next=Mn,Mn=e;return}e.next=Dn,Dn=e}function As(){Ua++}function Fs(){if(--Ua>0)return;if(Mn){let t=Mn;for(Mn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Dn;){let t=Dn;for(Dn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Ba(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ja(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),Rs(o),Vl(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function es(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ha(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ha(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===En)||(e.globalVersion=En,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!es(e))))return;e.flags|=2;const t=e.dep,n=re,o=ze;re=e,ze=!0;try{Ba(e);const s=e.fn(e._value);(t.version===0||Ke(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{re=n,ze=o,ja(e),e.flags&=-3}}function Rs(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Rs(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Vl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ze=!0;const Va=[];function wt(){Va.push(ze),ze=!1}function yt(){const e=Va.pop();ze=e===void 0?!0:e}function li(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=re;re=void 0;try{t()}finally{re=n}}}let En=0;class $l{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ro{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!re||!ze||re===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==re)n=this.activeLink=new $l(re,this),re.deps?(n.prevDep=re.depsTail,re.depsTail.nextDep=n,re.depsTail=n):re.deps=re.depsTail=n,$a(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=re.depsTail,n.nextDep=void 0,re.depsTail.nextDep=n,re.depsTail=n,re.deps===n&&(re.deps=o)}return n}trigger(t){this.version++,En++,this.notify(t)}notify(t){As();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Fs()}}}function $a(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)$a(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const co=new WeakMap,Vt=Symbol(""),ts=Symbol(""),Nn=Symbol("");function Se(e,t,n){if(ze&&re){let o=co.get(e);o||co.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new Ro),s.map=o,s.key=n),s.track()}}function ft(e,t,n,o,s,i){const a=co.get(e);if(!a){En++;return}const r=l=>{l&&l.trigger()};if(As(),t==="clear")a.forEach(r);else{const l=V(e),c=l&&Co(n);if(l&&n==="length"){const d=Number(o);a.forEach((f,h)=>{(h==="length"||h===Nn||!We(h)&&h>=d)&&r(f)})}else switch((n!==void 0||a.has(void 0))&&r(a.get(n)),c&&r(a.get(Nn)),t){case"add":l?c&&r(a.get("length")):(r(a.get(Vt)),en(e)&&r(a.get(ts)));break;case"delete":l||(r(a.get(Vt)),en(e)&&r(a.get(ts)));break;case"set":en(e)&&r(a.get(Vt));break}}Fs()}function ql(e,t){const n=co.get(e);return n&&n.get(t)}function zt(e){const t=X(e);return t===e?t:(Se(t,"iterate",Nn),Ue(e)?t:t.map(Qe))}function Po(e){return Se(e=X(e),"iterate",Nn),e}function nt(e,t){return Tt(e)?an($t(e)?Qe(t):t):Qe(t)}const Gl={__proto__:null,[Symbol.iterator](){return Vo(this,Symbol.iterator,e=>nt(this,e))},concat(...e){return zt(this).concat(...e.map(t=>V(t)?zt(t):t))},entries(){return Vo(this,"entries",e=>(e[1]=nt(this,e[1]),e))},every(e,t){return dt(this,"every",e,t,void 0,arguments)},filter(e,t){return dt(this,"filter",e,t,n=>n.map(o=>nt(this,o)),arguments)},find(e,t){return dt(this,"find",e,t,n=>nt(this,n),arguments)},findIndex(e,t){return dt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return dt(this,"findLast",e,t,n=>nt(this,n),arguments)},findLastIndex(e,t){return dt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return dt(this,"forEach",e,t,void 0,arguments)},includes(...e){return $o(this,"includes",e)},indexOf(...e){return $o(this,"indexOf",e)},join(e){return zt(this).join(e)},lastIndexOf(...e){return $o(this,"lastIndexOf",e)},map(e,t){return dt(this,"map",e,t,void 0,arguments)},pop(){return bn(this,"pop")},push(...e){return bn(this,"push",e)},reduce(e,...t){return ci(this,"reduce",e,t)},reduceRight(e,...t){return ci(this,"reduceRight",e,t)},shift(){return bn(this,"shift")},some(e,t){return dt(this,"some",e,t,void 0,arguments)},splice(...e){return bn(this,"splice",e)},toReversed(){return zt(this).toReversed()},toSorted(e){return zt(this).toSorted(e)},toSpliced(...e){return zt(this).toSpliced(...e)},unshift(...e){return bn(this,"unshift",e)},values(){return Vo(this,"values",e=>nt(this,e))}};function Vo(e,t,n){const o=Po(e),s=o[t]();return o!==e&&!Ue(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.done||(i.value=n(i.value)),i}),s}const Kl=Array.prototype;function dt(e,t,n,o,s,i){const a=Po(e),r=a!==e&&!Ue(e),l=a[t];if(l!==Kl[t]){const f=l.apply(e,i);return r?Qe(f):f}let c=n;a!==e&&(r?c=function(f,h){return n.call(this,nt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const d=l.call(a,c,o);return r&&s?s(d):d}function ci(e,t,n,o){const s=Po(e),i=s!==e&&!Ue(e);let a=n,r=!1;s!==e&&(i?(r=o.length===0,a=function(c,d,f){return r&&(r=!1,c=nt(e,c)),n.call(this,c,nt(e,d),f,e)}):n.length>3&&(a=function(c,d,f){return n.call(this,c,d,f,e)}));const l=s[t](a,...o);return r?nt(e,l):l}function $o(e,t,n){const o=X(e);Se(o,"iterate",Nn);const s=o[t](...n);return(s===-1||s===!1)&&Eo(n[0])?(n[0]=X(n[0]),o[t](...n)):s}function bn(e,t,n=[]){wt(),As();const o=X(e)[t].apply(e,n);return Fs(),yt(),o}const Yl=_s("__proto__,__v_isRef,__isVue"),qa=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(We));function zl(e){We(e)||(e=String(e));const t=X(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Ga{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(s?i?ic:Qa:i?za:Ya).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const a=V(t);if(!s){let l;if(a&&(l=Gl[n]))return l;if(n==="hasOwnProperty")return zl}const r=Reflect.get(t,n,be(t)?t:o);if((We(n)?qa.has(n):Yl(n))||(s||Se(t,"get",n),i))return r;if(be(r)){const l=a&&Co(n)?r:r.value;return s&&ee(l)?os(l):l}return ee(r)?s?os(r):Es(r):r}}class Ka extends Ga{constructor(t=!1){super(!1,t)}set(t,n,o,s){let i=t[n];const a=V(t)&&Co(n);if(!this._isShallow){const c=Tt(i);if(!Ue(o)&&!Tt(o)&&(i=X(i),o=X(o)),!a&&be(i)&&!be(o))return c||(i.value=o),!0}const r=a?Number(n)<t.length:ne(t,n),l=Reflect.set(t,n,o,be(t)?t:s);return t===X(s)&&(r?Ke(o,i)&&ft(t,"set",n,o):ft(t,"add",n,o)),l}deleteProperty(t,n){const o=ne(t,n);t[n];const s=Reflect.deleteProperty(t,n);return s&&o&&ft(t,"delete",n,void 0),s}has(t,n){const o=Reflect.has(t,n);return(!We(n)||!qa.has(n))&&Se(t,"has",n),o}ownKeys(t){return Se(t,"iterate",V(t)?"length":Vt),Reflect.ownKeys(t)}}class Ql extends Ga{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Xl=new Ka,Jl=new Ql,Zl=new Ka(!0);const ns=e=>e,Xn=e=>Reflect.getPrototypeOf(e);function ec(e,t,n){return function(...o){const s=this.__v_raw,i=X(s),a=en(i),r=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,c=s[e](...o),d=n?ns:t?an:Qe;return!t&&Se(i,"iterate",l?ts:Vt),ve(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:r?[d(f[0]),d(f[1])]:d(f),done:h}}})}}function Jn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function tc(e,t){const n={get(s){const i=this.__v_raw,a=X(i),r=X(s);e||(Ke(s,r)&&Se(a,"get",s),Se(a,"get",r));const{has:l}=Xn(a),c=t?ns:e?an:Qe;if(l.call(a,s))return c(i.get(s));if(l.call(a,r))return c(i.get(r));i!==a&&i.get(s)},get size(){const s=this.__v_raw;return!e&&Se(X(s),"iterate",Vt),s.size},has(s){const i=this.__v_raw,a=X(i),r=X(s);return e||(Ke(s,r)&&Se(a,"has",s),Se(a,"has",r)),s===r?i.has(s):i.has(s)||i.has(r)},forEach(s,i){const a=this,r=a.__v_raw,l=X(r),c=t?ns:e?an:Qe;return!e&&Se(l,"iterate",Vt),r.forEach((d,f)=>s.call(i,c(d),c(f),a))}};return ve(n,e?{add:Jn("add"),set:Jn("set"),delete:Jn("delete"),clear:Jn("clear")}:{add(s){const i=X(this),a=Xn(i),r=X(s),l=!t&&!Ue(s)&&!Tt(s)?r:s;return a.has.call(i,l)||Ke(s,l)&&a.has.call(i,s)||Ke(r,l)&&a.has.call(i,r)||(i.add(l),ft(i,"add",l,l)),this},set(s,i){!t&&!Ue(i)&&!Tt(i)&&(i=X(i));const a=X(this),{has:r,get:l}=Xn(a);let c=r.call(a,s);c||(s=X(s),c=r.call(a,s));const d=l.call(a,s);return a.set(s,i),c?Ke(i,d)&&ft(a,"set",s,i):ft(a,"add",s,i),this},delete(s){const i=X(this),{has:a,get:r}=Xn(i);let l=a.call(i,s);l||(s=X(s),l=a.call(i,s)),r&&r.call(i,s);const c=i.delete(s);return l&&ft(i,"delete",s,void 0),c},clear(){const s=X(this),i=s.size!==0,a=s.clear();return i&&ft(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ec(s,e,t)}),n}function Ps(e,t){const n=tc(e,t);return(o,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(ne(n,s)&&s in o?n:o,s,i)}const nc={get:Ps(!1,!1)},oc={get:Ps(!1,!0)},sc={get:Ps(!0,!1)};const Ya=new WeakMap,za=new WeakMap,Qa=new WeakMap,ic=new WeakMap;function ac(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Es(e){return Tt(e)?e:Ns(e,!1,Xl,nc,Ya)}function rc(e){return Ns(e,!1,Zl,oc,za)}function os(e){return Ns(e,!0,Jl,sc,Qa)}function Ns(e,t,n,o,s){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=s.get(e);if(i)return i;const a=ac(Fl(e));if(a===0)return e;const r=new Proxy(e,a===2?o:n);return s.set(e,r),r}function $t(e){return Tt(e)?$t(e.__v_raw):!!(e&&e.__v_isReactive)}function Tt(e){return!!(e&&e.__v_isReadonly)}function Ue(e){return!!(e&&e.__v_isShallow)}function Eo(e){return e?!!e.__v_raw:!1}function X(e){const t=e&&e.__v_raw;return t?X(t):e}function lc(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&Ea(e,"__v_skip",!0),e}const Qe=e=>ee(e)?Es(e):e,an=e=>ee(e)?os(e):e;function be(e){return e?e.__v_isRef===!0:!1}function tn(e){return Xa(e,!1)}function cc(e){return Xa(e,!0)}function Xa(e,t){return be(e)?e:new dc(e,t)}class dc{constructor(t,n){this.dep=new Ro,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:X(t),this._value=n?t:Qe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Ue(t)||Tt(t);t=o?t:X(t),Ke(t,n)&&(this._rawValue=t,this._value=o?t:Qe(t),this.dep.trigger())}}function Is(e){return be(e)?e.value:e}function mf(e){return G(e)?e():Is(e)}const uc={get:(e,t,n)=>t==="__v_raw"?e:Is(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return be(s)&&!be(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function Ja(e){return $t(e)?e:new Proxy(e,uc)}class pc{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Ro,{get:o,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function ff(e){return new pc(e)}function gf(e){const t=V(e)?new Array(e.length):{};for(const n in e)t[n]=Za(e,n);return t}class mc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=We(n)?n:String(n),this._raw=X(t);let s=!0,i=t;if(!V(t)||We(this._key)||!Co(this._key))do s=!Eo(i)||Ue(i);while(s&&(i=i.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Is(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&be(this._raw[this._key])){const n=this._object[this._key];if(be(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ql(this._raw,this._key)}}class fc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function hf(e,t,n){return be(e)?e:G(e)?new fc(e):ee(e)&&arguments.length>1?Za(e,t,n):tn(e)}function Za(e,t,n){return new mc(e,t,n)}class gc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ro(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=En-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&re!==this)return Wa(this,!0),!0}get value(){const t=this.dep.track();return Ha(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function hc(e,t,n=!1){let o,s;return G(e)?o=e:(o=e.get,s=e.set),new gc(o,s,n)}const Zn={},uo=new WeakMap;let Wt;function bc(e,t=!1,n=Wt){if(n){let o=uo.get(n);o||uo.set(n,o=[]),o.push(e)}}function vc(e,t,n=ae){const{immediate:o,deep:s,once:i,scheduler:a,augmentJob:r,call:l}=n,c=y=>s?y:Ue(y)||s===!1||s===0?gt(y,1):gt(y);let d,f,h,S,F=!1,C=!1;if(be(e)?(f=()=>e.value,F=Ue(e)):$t(e)?(f=()=>c(e),F=!0):V(e)?(C=!0,F=e.some(y=>$t(y)||Ue(y)),f=()=>e.map(y=>{if(be(y))return y.value;if($t(y))return c(y);if(G(y))return l?l(y,2):y()})):G(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){wt();try{h()}finally{yt()}}const y=Wt;Wt=d;try{return l?l(e,3,[S]):e(S)}finally{Wt=y}}:f=st,t&&s){const y=f,L=s===!0?1/0:s;f=()=>gt(y(),L)}const P=Hl(),b=()=>{d.stop(),P&&P.active&&Ds(P.effects,d)};if(i&&t){const y=t;t=(...L)=>{y(...L),b()}}let T=C?new Array(e.length).fill(Zn):Zn;const M=y=>{if(!(!(d.flags&1)||!d.dirty&&!y))if(t){const L=d.run();if(s||F||(C?L.some((x,A)=>Ke(x,T[A])):Ke(L,T))){h&&h();const x=Wt;Wt=d;try{const A=[L,T===Zn?void 0:C&&T[0]===Zn?[]:T,S];T=L,l?l(t,3,A):t(...A)}finally{Wt=x}}}else d.run()};return r&&r(M),d=new Oa(f),d.scheduler=a?()=>a(M,!1):M,S=y=>bc(y,!1,d),h=d.onStop=()=>{const y=uo.get(d);if(y){if(l)l(y,4);else for(const L of y)L();uo.delete(d)}},t?o?M(!0):T=d.run():a?a(M.bind(null,!0),!0):d.run(),b.pause=d.pause.bind(d),b.resume=d.resume.bind(d),b.stop=b,b}function gt(e,t=1/0,n){if(t<=0||!ee(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,be(e))gt(e.value,t,n);else if(V(e))for(let o=0;o<e.length;o++)gt(e[o],t,n);else if(mn(e)||en(e))e.forEach(o=>{gt(o,t,n)});else if(Pa(e)){for(const o in e)gt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&gt(e[o],t,n)}return e}/**
* @vue/runtime-core v3.5.35
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function $n(e,t,n,o){try{return o?e(...o):e()}catch(s){qn(s,t,n)}}function qe(e,t,n,o){if(G(e)){const s=$n(e,t,n,o);return s&&Fa(s)&&s.catch(i=>{qn(i,t,n)}),s}if(V(e)){const s=[];for(let i=0;i<e.length;i++)s.push(qe(e[i],t,n,o));return s}}function qn(e,t,n,o=!0){const s=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:a}=t&&t.appContext.config||ae;if(t){let r=t.parent;const l=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){const d=r.ec;if(d){for(let f=0;f<d.length;f++)if(d[f](e,l,c)===!1)return}r=r.parent}if(i){wt(),$n(i,null,10,[e,l,c]),yt();return}}wc(e,n,s,o,a)}function wc(e,t,n,o=!0,s=!1){if(s)throw e;console.error(e)}const Re=[];let tt=-1;const nn=[];let Ft=null,Qt=0;const er=Promise.resolve();let po=null;function tr(e){const t=po||er;return e?t.then(this?e.bind(this):e):t}function yc(e){let t=tt+1,n=Re.length;for(;t<n;){const o=t+n>>>1,s=Re[o],i=In(s);i<e||i===e&&s.flags&2?t=o+1:n=o}return t}function Ls(e){if(!(e.flags&1)){const t=In(e),n=Re[Re.length-1];!n||!(e.flags&2)&&t>=In(n)?Re.push(e):Re.splice(yc(t),0,e),e.flags|=1,nr()}}function nr(){po||(po=er.then(sr))}function Tc(e){V(e)?nn.push(...e):Ft&&e.id===-1?Ft.splice(Qt+1,0,e):e.flags&1||(nn.push(e),e.flags|=1),nr()}function di(e,t,n=tt+1){for(;n<Re.length;n++){const o=Re[n];if(o&&o.flags&2){if(e&&o.id!==e.uid)continue;Re.splice(n,1),n--,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function or(e){if(nn.length){const t=[...new Set(nn)].sort((n,o)=>In(n)-In(o));if(nn.length=0,Ft){Ft.push(...t);return}for(Ft=t,Qt=0;Qt<Ft.length;Qt++){const n=Ft[Qt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}Ft=null,Qt=0}}const In=e=>e.id==null?e.flags&2?-1:1/0:e.id;function sr(e){try{for(tt=0;tt<Re.length;tt++){const t=Re[tt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),$n(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;tt<Re.length;tt++){const t=Re[tt];t&&(t.flags&=-2)}tt=-1,Re.length=0,or(),po=null,(Re.length||nn.length)&&sr()}}let Ce=null,ir=null;function mo(e){const t=Ce;return Ce=e,ir=e&&e.type.__scopeId||null,t}function kc(e,t=Ce,n){if(!t||e._n)return e;const o=(...s)=>{o._d&&ho(-1);const i=mo(t);let a;try{a=e(...s)}finally{mo(i),o._d&&ho(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function bf(e,t){if(Ce===null)return e;const n=xo(Ce),o=e.dirs||(e.dirs=[]);for(let s=0;s<t.length;s++){let[i,a,r,l=ae]=t[s];i&&(G(i)&&(i={mounted:i,updated:i}),i.deep&&gt(a),o.push({dir:i,instance:n,value:a,oldValue:void 0,arg:r,modifiers:l}))}return e}function xt(e,t,n,o){const s=e.dirs,i=t&&t.dirs;for(let a=0;a<s.length;a++){const r=s[a];i&&(r.oldValue=i[a].value);let l=r.dir[o];l&&(wt(),qe(l,n,8,[e.el,r,e,t]),yt())}}function Cc(e,t){if(ke){let n=ke.provides;const o=ke.parent&&ke.parent.provides;o===n&&(n=ke.provides=Object.create(o)),n[e]=t}}function An(e,t,n=!1){const o=at();if(o||qt){let s=qt?qt._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(s&&e in s)return s[e];if(arguments.length>1)return n&&G(t)?t.call(o&&o.proxy):t}}function vf(){return!!(at()||qt)}const Sc=Symbol.for("v-scx"),_c=()=>An(Sc);function wf(e,t){return xs(e,null,t)}function on(e,t,n){return xs(e,t,n)}function xs(e,t,n=ae){const{immediate:o,deep:s,flush:i,once:a}=n,r=ve({},n),l=t&&o||!t&&i!=="post";let c;if(ln){if(i==="sync"){const S=_c();c=S.__watcherHandles||(S.__watcherHandles=[])}else if(!l){const S=()=>{};return S.stop=st,S.resume=st,S.pause=st,S}}const d=ke;r.call=(S,F,C)=>qe(S,d,F,C);let f=!1;i==="post"?r.scheduler=S=>{Ae(S,d&&d.suspense)}:i!=="sync"&&(f=!0,r.scheduler=(S,F)=>{F?S():Ls(S)}),r.augmentJob=S=>{t&&(S.flags|=4),f&&(S.flags|=2,d&&(S.id=d.uid,S.i=d))};const h=vc(e,t,r);return ln&&(c?c.push(h):l&&h()),h}function Dc(e,t,n){const o=this.proxy,s=le(e)?e.includes(".")?ar(o,e):()=>o[e]:e.bind(o,o);let i;G(t)?i=t:(i=t.handler,n=t);const a=Yn(this),r=xs(s,i.bind(o),n);return a(),r}function ar(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;s<n.length&&o;s++)o=o[n[s]];return o}}const Mt=new WeakMap,rr=Symbol("_vte"),lr=e=>e.__isTeleport,Bt=e=>e&&(e.disabled||e.disabled===""),Mc=e=>e&&(e.defer||e.defer===""),ui=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ss=(e,t)=>{const n=e&&e.to;return le(n)?t?t(n):null:n},Ac={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,i,a,r,l,c){const{mc:d,pc:f,pbc:h,o:{insert:S,querySelector:F,createText:C,createComment:P,parentNode:b}}=c,T=Bt(t.props);let{dynamicChildren:M}=t;const y=(A,H,U)=>{A.shapeFlag&16&&d(A.children,H,U,s,i,a,r,l)},L=(A=t)=>{const H=Bt(A.props),U=A.target=ss(A.props,F),q=is(U,A,C,S);U&&(a!=="svg"&&ui(U)?a="svg":a!=="mathml"&&pi(U)&&(a="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),H||(y(A,U,q),kn(A,!1)))},x=A=>{const H=()=>{if(Mt.get(A)===H){if(Mt.delete(A),Bt(A.props)){const U=b(A.el)||n;y(A,U,A.anchor),kn(A,!0)}L(A)}};Mt.set(A,H),Ae(H,i)};if(e==null){const A=t.el=C(""),H=t.anchor=C("");if(S(A,n,o),S(H,n,o),Mc(t.props)||i&&i.pendingBranch){x(t);return}T&&(y(t,n,H),kn(t,!0)),L()}else{t.el=e.el;const A=t.anchor=e.anchor,H=Mt.get(e);if(H){H.flags|=8,Mt.delete(e),x(t);return}t.targetStart=e.targetStart;const U=t.target=e.target,q=t.targetAnchor=e.targetAnchor,K=Bt(e.props),O=K?n:U,Q=K?A:q;if(a==="svg"||ui(U)?a="svg":(a==="mathml"||pi(U))&&(a="mathml"),M?(h(e.dynamicChildren,M,O,s,i,a,r),Vs(e,t,!0)):l||f(e,t,O,Q,s,i,a,r,!1),T)K?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):eo(t,n,A,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const pe=t.target=ss(t.props,F);pe&&eo(t,pe,null,c,0)}else K&&eo(t,U,q,c,1);kn(t,T)}},remove(e,t,n,{um:o,o:{remove:s}},i){const{shapeFlag:a,children:r,anchor:l,targetStart:c,targetAnchor:d,target:f,props:h}=e,S=i||!Bt(h),F=Mt.get(e);if(F&&(F.flags|=8,Mt.delete(e)),f&&(s(c),s(d)),i&&s(l),!F&&a&16)for(let C=0;C<r.length;C++){const P=r[C];o(P,t,n,S,!!P.dynamicChildren)}},move:eo,hydrate:Fc};function eo(e,t,n,{o:{insert:o},m:s},i=2){i===0&&o(e.targetAnchor,t,n);const{el:a,anchor:r,shapeFlag:l,children:c,props:d}=e,f=i===2;if(f&&o(a,t,n),!Mt.has(e)&&(!f||Bt(d))&&l&16)for(let h=0;h<c.length;h++)s(c[h],t,n,2);f&&o(r,t,n)}function Fc(e,t,n,o,s,i,{o:{nextSibling:a,parentNode:r,querySelector:l,insert:c,createText:d}},f){function h(P,b){let T=b;for(;T;){if(T&&T.nodeType===8){if(T.data==="teleport start anchor")t.targetStart=T;else if(T.data==="teleport anchor"){t.targetAnchor=T,P._lpa=t.targetAnchor&&a(t.targetAnchor);break}}T=a(T)}}function S(P,b){b.anchor=f(a(P),b,r(P),n,o,s,i)}const F=t.target=ss(t.props,l),C=Bt(t.props);if(F){const P=F._lpa||F.firstChild;t.shapeFlag&16&&(C?(S(e,t),h(F,P),t.targetAnchor||is(F,t,d,c,r(e)===F?e:null)):(t.anchor=a(e),h(F,P),t.targetAnchor||is(F,t,d,c),f(P&&a(P),t,F,n,o,s,i))),kn(t,C)}else C&&t.shapeFlag&16&&(S(e,t),t.targetStart=e,t.targetAnchor=a(e));return t.anchor&&a(t.anchor)}const yf=Ac;function kn(e,t){const n=e.ctx;if(n&&n.ut){let o,s;for(t?(o=e.el,s=e.anchor):(o=e.targetStart,s=e.targetAnchor);o&&o!==s;)o.nodeType===1&&o.setAttribute("data-v-owner",n.uid),o=o.nextSibling;n.ut()}}function is(e,t,n,o,s=null){const i=t.targetStart=n(""),a=t.targetAnchor=n("");return i[rr]=a,e&&(o(i,e,s),o(a,e,s)),a}const Ve=Symbol("_leaveCb"),vn=Symbol("_enterCb");function cr(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ws(()=>{e.isMounted=!0}),hr(()=>{e.isUnmounting=!0}),e}const He=[Function,Array],dr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:He,onEnter:He,onAfterEnter:He,onEnterCancelled:He,onBeforeLeave:He,onLeave:He,onAfterLeave:He,onLeaveCancelled:He,onBeforeAppear:He,onAppear:He,onAfterAppear:He,onAppearCancelled:He},ur=e=>{const t=e.subTree;return t.component?ur(t.component):t},Rc={name:"BaseTransition",props:dr,setup(e,{slots:t}){const n=at(),o=cr();return()=>{const s=t.default&&Os(t.default(),!0),i=s&&s.length?pr(s):n.subTree?vd():void 0;if(!i)return;const a=X(e),{mode:r}=a;if(o.isLeaving)return qo(i);const l=mi(i);if(!l)return qo(i);let c=Ln(l,a,o,n,f=>c=f);l.type!==De&&Gt(l,c);let d=n.subTree&&mi(n.subTree);if(d&&d.type!==De&&!jt(d,l)&&ur(n).type!==De){let f=Ln(d,a,o,n);if(Gt(d,f),r==="out-in"&&l.type!==De)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,d=void 0},qo(i);r==="in-out"&&l.type!==De?f.delayLeave=(h,S,F)=>{const C=mr(o,d);C[String(d.key)]=d,h[Ve]=()=>{S(),h[Ve]=void 0,delete c.delayedLeave,d=void 0},c.delayedLeave=()=>{F(),delete c.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return i}}};function pr(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==De){t=n;break}}return t}const Pc=Rc;function mr(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Ln(e,t,n,o,s){const{appear:i,mode:a,persisted:r=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:h,onLeave:S,onAfterLeave:F,onLeaveCancelled:C,onBeforeAppear:P,onAppear:b,onAfterAppear:T,onAppearCancelled:M}=t,y=String(e.key),L=mr(n,e),x=(U,q)=>{U&&qe(U,o,9,q)},A=(U,q)=>{const K=q[1];x(U,q),V(U)?U.every(O=>O.length<=1)&&K():U.length<=1&&K()},H={mode:a,persisted:r,beforeEnter(U){let q=l;if(!n.isMounted)if(i)q=P||l;else return;U[Ve]&&U[Ve](!0);const K=L[y];K&&jt(e,K)&&K.el[Ve]&&K.el[Ve](),x(q,[U])},enter(U){if(L[y]===e)return;let q=c,K=d,O=f;if(!n.isMounted)if(i)q=b||c,K=T||d,O=M||f;else return;let Q=!1;U[vn]=xe=>{Q||(Q=!0,xe?x(O,[U]):x(K,[U]),H.delayedLeave&&H.delayedLeave(),U[vn]=void 0)};const pe=U[vn].bind(null,!1);q?A(q,[U,pe]):pe()},leave(U,q){const K=String(e.key);if(U[vn]&&U[vn](!0),n.isUnmounting)return q();x(h,[U]);let O=!1;U[Ve]=pe=>{O||(O=!0,q(),pe?x(C,[U]):x(F,[U]),U[Ve]=void 0,L[K]===e&&delete L[K])};const Q=U[Ve].bind(null,!1);L[K]=e,S?A(S,[U,Q]):Q()},clone(U){const q=Ln(U,t,n,o,s);return s&&s(q),q}};return H}function qo(e){if(Gn(e))return e=Pt(e),e.children=null,e}function mi(e){if(!Gn(e))return lr(e.type)&&e.children?pr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&G(n.default))return n.default()}}function Gt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Gt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Os(e,t=!1,n){let o=[],s=0;for(let i=0;i<e.length;i++){let a=e[i];const r=n==null?a.key:String(n)+String(a.key!=null?a.key:i);a.type===_e?(a.patchFlag&128&&s++,o=o.concat(Os(a.children,t,r))):(t||a.type!==De)&&o.push(r!=null?Pt(a,{key:r}):a)}if(s>1)for(let i=0;i<o.length;i++)o[i].patchFlag=-2;return o}function No(e,t){return G(e)?ve({name:e.name},t,{setup:e}):e}function Us(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const fo=new WeakMap;function Fn(e,t,n,o,s=!1){if(V(e)){e.forEach((C,P)=>Fn(C,t&&(V(t)?t[P]:t),n,o,s));return}if(sn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Fn(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?xo(o.component):o.el,a=s?null:i,{i:r,r:l}=e,c=t&&t.r,d=r.refs===ae?r.refs={}:r.refs,f=r.setupState,h=X(f),S=f===ae?Aa:C=>fi(d,C)?!1:ne(h,C),F=(C,P)=>!(P&&fi(d,P));if(c!=null&&c!==l){if(gi(t),le(c))d[c]=null,S(c)&&(f[c]=null);else if(be(c)){const C=t;F(c,C.k)&&(c.value=null),C.k&&(d[C.k]=null)}}if(G(l))$n(l,r,12,[a,d]);else{const C=le(l),P=be(l);if(C||P){const b=()=>{if(e.f){const T=C?S(l)?f[l]:d[l]:F()||!e.k?l.value:d[e.k];if(s)V(T)&&Ds(T,i);else if(V(T))T.includes(i)||T.push(i);else if(C)d[l]=[i],S(l)&&(f[l]=d[l]);else{const M=[i];F(l,e.k)&&(l.value=M),e.k&&(d[e.k]=M)}}else C?(d[l]=a,S(l)&&(f[l]=a)):P&&(F(l,e.k)&&(l.value=a),e.k&&(d[e.k]=a))};if(a){const T=()=>{b(),fo.delete(e)};T.id=-1,fo.set(e,T),Ae(T,n)}else gi(e),b()}}}function gi(e){const t=fo.get(e);t&&(t.flags|=8,fo.delete(e))}const hi=e=>e.nodeType===8;Mo().requestIdleCallback;Mo().cancelIdleCallback;function Ec(e,t){if(hi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(hi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const sn=e=>!!e.type.__asyncLoader;function Tf(e){G(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:i,timeout:a,suspensible:r=!0,onError:l}=e;let c=null,d,f=0;const h=()=>(f++,c=null,S()),S=()=>{let F;return c||(F=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((P,b)=>{l(C,()=>P(h()),()=>b(C),f+1)});throw C}).then(C=>F!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),d=C,C)))};return No({name:"AsyncComponentWrapper",__asyncLoader:S,__asyncHydrate(F,C,P){let b=!1;(C.bu||(C.bu=[])).push(()=>b=!0);const T=()=>{b||P()},M=i?()=>{const y=i(T,L=>Ec(F,L));y&&(C.bum||(C.bum=[])).push(y)}:T;d?M():S().then(()=>!C.isUnmounted&&M())},get __asyncResolved(){return d},setup(){const F=ke;if(Us(F),d)return()=>to(d,F);const C=M=>{c=null,qn(M,F,13,!o)};if(r&&F.suspense||ln)return S().then(M=>()=>to(M,F)).catch(M=>(C(M),()=>o?he(o,{error:M}):null));const P=tn(!1),b=tn(),T=tn(!!s);return s&&setTimeout(()=>{T.value=!1},s),a!=null&&setTimeout(()=>{if(!P.value&&!b.value){const M=new Error(`Async component timed out after ${a}ms.`);C(M),b.value=M}},a),S().then(()=>{P.value=!0,F.parent&&Gn(F.parent.vnode)&&F.parent.update()}).catch(M=>{C(M),b.value=M}),()=>{if(P.value&&d)return to(d,F);if(b.value&&o)return he(o,{error:b.value});if(n&&!T.value)return to(n,F)}}})}function to(e,t){const{ref:n,props:o,children:s,ce:i}=t.vnode,a=he(e,o,s);return a.ref=n,a.ce=i,delete t.vnode.ce,a}const Gn=e=>e.type.__isKeepAlive;function Nc(e,t){fr(e,"a",t)}function Ic(e,t){fr(e,"da",t)}function fr(e,t,n=ke){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Io(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Gn(s.parent.vnode)&&Lc(o,t,n,s),s=s.parent}}function Lc(e,t,n,o){const s=Io(t,e,o,!0);Bs(()=>{Ds(o[t],s)},n)}function Io(e,t,n=ke,o=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...a)=>{wt();const r=Yn(n),l=qe(t,n,e,a);return r(),yt(),l});return o?s.unshift(i):s.push(i),i}}const kt=e=>(t,n=ke)=>{(!ln||e==="sp")&&Io(e,(...o)=>t(...o),n)},xc=kt("bm"),Ws=kt("m"),Oc=kt("bu"),gr=kt("u"),hr=kt("bum"),Bs=kt("um"),Uc=kt("sp"),Wc=kt("rtg"),Bc=kt("rtc");function jc(e,t=ke){Io("ec",e,t)}const br="components";function kf(e,t){return wr(br,e,!0,t)||e}const vr=Symbol.for("v-ndc");function Cf(e){return le(e)?wr(br,e,!1)||e:e||vr}function wr(e,t,n=!0,o=!1){const s=Ce||ke;if(s){const i=s.type;{const r=Dd(i,!1);if(r&&(r===t||r===Ee(t)||r===_o(Ee(t))))return i}const a=bi(s[e]||i[e],t)||bi(s.appContext[e],t);return!a&&o?i:a}}function bi(e,t){return e&&(e[t]||e[Ee(t)]||e[_o(Ee(t))])}function Sf(e,t,n,o){let s;const i=n&&n[o],a=V(e);if(a||le(e)){const r=a&&$t(e);let l=!1,c=!1;r&&(l=!Ue(e),c=Tt(e),e=Po(e)),s=new Array(e.length);for(let d=0,f=e.length;d<f;d++)s[d]=t(l?c?an(Qe(e[d])):Qe(e[d]):e[d],d,void 0,i&&i[d])}else if(typeof e=="number"){s=new Array(e);for(let r=0;r<e;r++)s[r]=t(r+1,r,void 0,i&&i[r])}else if(ee(e))if(e[Symbol.iterator])s=Array.from(e,(r,l)=>t(r,l,void 0,i&&i[l]));else{const r=Object.keys(e);s=new Array(r.length);for(let l=0,c=r.length;l<c;l++){const d=r[l];s[l]=t(e[d],d,l,i&&i[l])}}else s=[];return n&&(n[o]=s),s}function _f(e,t,n={},o,s){if(Ce.ce||Ce.parent&&sn(Ce.parent)&&Ce.parent.ce){const c=Object.keys(n).length>0;return t!=="default"&&(n.name=t),ds(),us(_e,null,[he("slot",n,o&&o())],c?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),ds();const a=i&&yr(i(n)),r=n.key||a&&a.key,l=us(_e,{key:(r&&!We(r)?r:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function yr(e){return e.some(t=>xn(t)?!(t.type===De||t.type===_e&&!yr(t.children)):!0)?e:null}const as=e=>e?jr(e)?xo(e):as(e.parent):null,Rn=ve(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>as(e.parent),$root:e=>as(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Cr(e),$forceUpdate:e=>e.f||(e.f=()=>{Ls(e.update)}),$nextTick:e=>e.n||(e.n=tr.bind(e.proxy)),$watch:e=>Dc.bind(e)}),Go=(e,t)=>e!==ae&&!e.__isScriptSetup&&ne(e,t),Hc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:i,accessCache:a,type:r,appContext:l}=e;if(t[0]!=="$"){const h=a[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(Go(o,t))return a[t]=1,o[t];if(s!==ae&&ne(s,t))return a[t]=2,s[t];if(ne(i,t))return a[t]=3,i[t];if(n!==ae&&ne(n,t))return a[t]=4,n[t];rs&&(a[t]=0)}}const c=Rn[t];let d,f;if(c)return t==="$attrs"&&Se(e.attrs,"get",""),c(e);if((d=r.__cssModules)&&(d=d[t]))return d;if(n!==ae&&ne(n,t))return a[t]=4,n[t];if(f=l.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:i}=e;return Go(s,t)?(s[t]=n,!0):o!==ae&&ne(o,t)?(o[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:i,type:a}},r){let l;return!!(n[r]||e!==ae&&r[0]!=="$"&&ne(e,r)||Go(t,r)||ne(i,r)||ne(o,r)||ne(Rn,r)||ne(s.config.globalProperties,r)||(l=a.__cssModules)&&l[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Df(){return Tr().slots}function Mf(){return Tr().attrs}function Tr(e){const t=at();return t.setupContext||(t.setupContext=Vr(t))}function vi(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function Af(e,t){const n={};for(const o in e)t.includes(o)||Object.defineProperty(n,o,{enumerable:!0,get:()=>e[o]});return n}let rs=!0;function Vc(e){const t=Cr(e),n=e.proxy,o=e.ctx;rs=!1,t.beforeCreate&&wi(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:a,watch:r,provide:l,inject:c,created:d,beforeMount:f,mounted:h,beforeUpdate:S,updated:F,activated:C,deactivated:P,beforeDestroy:b,beforeUnmount:T,destroyed:M,unmounted:y,render:L,renderTracked:x,renderTriggered:A,errorCaptured:H,serverPrefetch:U,expose:q,inheritAttrs:K,components:O,directives:Q,filters:pe}=t;if(c&&$c(c,o,null),a)for(const ie in a){const te=a[ie];G(te)&&(o[ie]=te.bind(n))}if(s){const ie=s.call(n,n);ee(ie)&&(e.data=Es(ie))}if(rs=!0,i)for(const ie in i){const te=i[ie],Te=G(te)?te.bind(n,n):G(te.get)?te.get.bind(n,n):st,rt=!G(te)&&G(te.set)?te.set.bind(n):st,Be=Xt({get:Te,set:rt});Object.defineProperty(o,ie,{enumerable:!0,configurable:!0,get:()=>Be.value,set:Ie=>Be.value=Ie})}if(r)for(const ie in r)kr(r[ie],o,n,ie);if(l){const ie=G(l)?l.call(n):l;Reflect.ownKeys(ie).forEach(te=>{Cc(te,ie[te])})}d&&wi(d,e,"c");function me(ie,te){V(te)?te.forEach(Te=>ie(Te.bind(n))):te&&ie(te.bind(n))}if(me(xc,f),me(Ws,h),me(Oc,S),me(gr,F),me(Nc,C),me(Ic,P),me(jc,H),me(Bc,x),me(Wc,A),me(hr,T),me(Bs,y),me(Uc,U),V(q))if(q.length){const ie=e.exposed||(e.exposed={});q.forEach(te=>{Object.defineProperty(ie,te,{get:()=>n[te],set:Te=>n[te]=Te,enumerable:!0})})}else e.exposed||(e.exposed={});L&&e.render===st&&(e.render=L),K!=null&&(e.inheritAttrs=K),O&&(e.components=O),Q&&(e.directives=Q),U&&Us(e)}function $c(e,t,n=st){V(e)&&(e=ls(e));for(const o in e){const s=e[o];let i;ee(s)?"default"in s?i=An(s.from||o,s.default,!0):i=An(s.from||o):i=An(s),be(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[o]=i}}function wi(e,t,n){qe(V(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function kr(e,t,n,o){let s=o.includes(".")?ar(n,o):()=>n[o];if(le(e)){const i=t[e];G(i)&&on(s,i)}else if(G(e))on(s,e.bind(n));else if(ee(e))if(V(e))e.forEach(i=>kr(i,t,n,o));else{const i=G(e.handler)?e.handler.bind(n):t[e.handler];G(i)&&on(s,i,e)}}function Cr(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,r=i.get(t);let l;return r?l=r:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>go(l,c,a,!0)),go(l,t,a)),ee(t)&&i.set(t,l),l}function go(e,t,n,o=!1){const{mixins:s,extends:i}=t;i&&go(e,i,n,!0),s&&s.forEach(a=>go(e,a,n,!0));for(const a in t)if(!(o&&a==="expose")){const r=qc[a]||n&&n[a];e[a]=r?r(e[a],t[a]):t[a]}return e}const qc={data:yi,props:Ti,emits:Ti,methods:Cn,computed:Cn,beforeCreate:Me,created:Me,beforeMount:Me,mounted:Me,beforeUpdate:Me,updated:Me,beforeDestroy:Me,beforeUnmount:Me,destroyed:Me,unmounted:Me,activated:Me,deactivated:Me,errorCaptured:Me,serverPrefetch:Me,components:Cn,directives:Cn,watch:Kc,provide:yi,inject:Gc};function yi(e,t){return t?e?function(){return ve(G(e)?e.call(this,this):e,G(t)?t.call(this,this):t)}:t:e}function Gc(e,t){return Cn(ls(e),ls(t))}function ls(e){if(V(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Me(e,t){return e?[...new Set([].concat(e,t))]:t}function Cn(e,t){return e?ve(Object.create(null),e,t):t}function Ti(e,t){return e?V(e)&&V(t)?[...new Set([...e,...t])]:ve(Object.create(null),vi(e),vi(t??{})):t}function Kc(e,t){if(!e)return t;if(!t)return e;const n=ve(Object.create(null),e);for(const o in t)n[o]=Me(e[o],t[o]);return n}function Sr(){return{app:null,config:{isNativeTag:Aa,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Yc=0;function zc(e,t){return function(o,s=null){G(o)||(o=ve({},o)),s!=null&&!ee(s)&&(s=null);const i=Sr(),a=new WeakSet,r=[];let l=!1;const c=i.app={_uid:Yc++,_component:o,_props:s,_container:null,_context:i,_instance:null,version:Ad,get config(){return i.config},set config(d){},use(d,...f){return a.has(d)||(d&&G(d.install)?(a.add(d),d.install(c,...f)):G(d)&&(a.add(d),d(c,...f))),c},mixin(d){return i.mixins.includes(d)||i.mixins.push(d),c},component(d,f){return f?(i.components[d]=f,c):i.components[d]},directive(d,f){return f?(i.directives[d]=f,c):i.directives[d]},mount(d,f,h){if(!l){const S=c._ceVNode||he(o,s);return S.appContext=i,h===!0?h="svg":h===!1&&(h=void 0),e(S,d,h),l=!0,c._container=d,d.__vue_app__=c,xo(S.component)}},onUnmount(d){r.push(d)},unmount(){l&&(qe(r,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(d,f){return i.provides[d]=f,c},runWithContext(d){const f=qt;qt=c;try{return d()}finally{qt=f}}};return c}}let qt=null;const Qc=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ee(t)}Modifiers`]||e[`${Et(t)}Modifiers`];function Xc(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||ae;let s=n;const i=t.startsWith("update:"),a=i&&Qc(o,t.slice(7));a&&(a.trim&&(s=n.map(d=>le(d)?d.trim():d)),a.number&&(s=n.map(Do)));let r,l=o[r=Bo(t)]||o[r=Bo(Ee(t))];!l&&i&&(l=o[r=Bo(Et(t))]),l&&qe(l,e,6,s);const c=o[r+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,qe(c,e,6,s)}}const Jc=new WeakMap;function _r(e,t,n=!1){const o=n?Jc:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const i=e.emits;let a={},r=!1;if(!G(e)){const l=c=>{const d=_r(c,t,!0);d&&(r=!0,ve(a,d))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!i&&!r?(ee(e)&&o.set(e,null),null):(V(i)?i.forEach(l=>a[l]=null):ve(a,i),ee(e)&&o.set(e,a),a)}function Lo(e,t){return!e||!To(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,Et(t))||ne(e,t))}function ki(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[i],slots:a,attrs:r,emit:l,render:c,renderCache:d,props:f,data:h,setupState:S,ctx:F,inheritAttrs:C}=e,P=mo(e);let b,T;try{if(n.shapeFlag&4){const y=s||o,L=y;b=ot(c.call(L,y,d,f,S,h,F)),T=r}else{const y=t;b=ot(y.length>1?y(f,{attrs:r,slots:a,emit:l}):y(f,null)),T=t.props?r:Zc(r)}}catch(y){Pn.length=0,qn(y,e,1),b=he(De)}let M=b;if(T&&C!==!1){const y=Object.keys(T),{shapeFlag:L}=M;y.length&&L&7&&(i&&y.some(ko)&&(T=ed(T,i)),M=Pt(M,T,!1,!0))}return n.dirs&&(M=Pt(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(n.dirs):n.dirs),n.transition&&Gt(M,n.transition),b=M,mo(P),b}const Zc=e=>{let t;for(const n in e)(n==="class"||n==="style"||To(n))&&((t||(t={}))[n]=e[n]);return t},ed=(e,t)=>{const n={};for(const o in e)(!ko(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function td(e,t,n){const{props:o,children:s,component:i}=e,{props:a,children:r,patchFlag:l}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Ci(o,a,c):!!a;if(l&8){const d=t.dynamicProps;for(let f=0;f<d.length;f++){const h=d[f];if(Dr(a,o,h)&&!Lo(c,h))return!0}}}else return(s||r)&&(!r||!r.$stable)?!0:o===a?!1:o?a?Ci(o,a,c):!0:!!a;return!1}function Ci(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let s=0;s<o.length;s++){const i=o[s];if(Dr(t,e,i)&&!Lo(n,i))return!0}return!1}function Dr(e,t,n){const o=e[n],s=t[n];return n==="style"&&ee(o)&&ee(s)?!fn(o,s):o!==s}function nd({vnode:e,parent:t,suspense:n},o){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.suspense.vnode.el=s.el=o,e=s),s===e)(e=t.vnode).el=o,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=o)}const Mr={},Ar=()=>Object.create(Mr),Fr=e=>Object.getPrototypeOf(e)===Mr;function od(e,t,n,o=!1){const s={},i=Ar();e.propsDefaults=Object.create(null),Rr(e,t,s,i);for(const a in e.propsOptions[0])a in s||(s[a]=void 0);n?e.props=o?s:rc(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function sd(e,t,n,o){const{props:s,attrs:i,vnode:{patchFlag:a}}=e,r=X(s),[l]=e.propsOptions;let c=!1;if((o||a>0)&&!(a&16)){if(a&8){const d=e.vnode.dynamicProps;for(let f=0;f<d.length;f++){let h=d[f];if(Lo(e.emitsOptions,h))continue;const S=t[h];if(l)if(ne(i,h))S!==i[h]&&(i[h]=S,c=!0);else{const F=Ee(h);s[F]=cs(l,r,F,S,e,!1)}else S!==i[h]&&(i[h]=S,c=!0)}}}else{Rr(e,t,s,i)&&(c=!0);let d;for(const f in r)(!t||!ne(t,f)&&((d=Et(f))===f||!ne(t,d)))&&(l?n&&(n[f]!==void 0||n[d]!==void 0)&&(s[f]=cs(l,r,f,void 0,e,!0)):delete s[f]);if(i!==r)for(const f in i)(!t||!ne(t,f))&&(delete i[f],c=!0)}c&&ft(e.attrs,"set","")}function Rr(e,t,n,o){const[s,i]=e.propsOptions;let a=!1,r;if(t)for(let l in t){if(_n(l))continue;const c=t[l];let d;s&&ne(s,d=Ee(l))?!i||!i.includes(d)?n[d]=c:(r||(r={}))[d]=c:Lo(e.emitsOptions,l)||(!(l in o)||c!==o[l])&&(o[l]=c,a=!0)}if(i){const l=X(n),c=r||ae;for(let d=0;d<i.length;d++){const f=i[d];n[f]=cs(s,l,f,c[f],e,!ne(c,f))}}return a}function cs(e,t,n,o,s,i){const a=e[n];if(a!=null){const r=ne(a,"default");if(r&&o===void 0){const l=a.default;if(a.type!==Function&&!a.skipFactory&&G(l)){const{propsDefaults:c}=s;if(n in c)o=c[n];else{const d=Yn(s);o=c[n]=l.call(null,t),d()}}else o=l;s.ce&&s.ce._setProp(n,o)}a[0]&&(i&&!r?o=!1:a[1]&&(o===""||o===Et(n))&&(o=!0))}return o}const id=new WeakMap;function Pr(e,t,n=!1){const o=n?id:t.propsCache,s=o.get(e);if(s)return s;const i=e.props,a={},r=[];let l=!1;if(!G(e)){const d=f=>{l=!0;const[h,S]=Pr(f,t,!0);ve(a,h),S&&r.push(...S)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!l)return ee(e)&&o.set(e,Zt),Zt;if(V(i))for(let d=0;d<i.length;d++){const f=Ee(i[d]);Si(f)&&(a[f]=ae)}else if(i)for(const d in i){const f=Ee(d);if(Si(f)){const h=i[d],S=a[f]=V(h)||G(h)?{type:h}:ve({},h),F=S.type;let C=!1,P=!0;if(V(F))for(let b=0;b<F.length;++b){const T=F[b],M=G(T)&&T.name;if(M==="Boolean"){C=!0;break}else M==="String"&&(P=!1)}else C=G(F)&&F.name==="Boolean";S[0]=C,S[1]=P,(C||ne(S,"default"))&&r.push(f)}}const c=[a,r];return ee(e)&&o.set(e,c),c}function Si(e){return e[0]!=="$"&&!_n(e)}const js=e=>e==="_"||e==="_ctx"||e==="$stable",Hs=e=>V(e)?e.map(ot):[ot(e)],ad=(e,t,n)=>{if(t._n)return t;const o=kc((...s)=>Hs(t(...s)),n);return o._c=!1,o},Er=(e,t,n)=>{const o=e._ctx;for(const s in e){if(js(s))continue;const i=e[s];if(G(i))t[s]=ad(s,i,o);else if(i!=null){const a=Hs(i);t[s]=()=>a}}},Nr=(e,t)=>{const n=Hs(t);e.slots.default=()=>n},Ir=(e,t,n)=>{for(const o in t)(n||!js(o))&&(e[o]=t[o])},rd=(e,t,n)=>{const o=e.slots=Ar();if(e.vnode.shapeFlag&32){const s=t._;s?(Ir(o,t,n),n&&Ea(o,"_",s,!0)):Er(t,o)}else t&&Nr(e,t)},ld=(e,t,n)=>{const{vnode:o,slots:s}=e;let i=!0,a=ae;if(o.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Ir(s,t,n):(i=!t.$stable,Er(t,s)),a=t}else t&&(Nr(e,t),a={default:1});if(i)for(const r in s)!js(r)&&a[r]==null&&delete s[r]},Ae=md;function cd(e){return dd(e)}function dd(e,t){const n=Mo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:i,createElement:a,createText:r,createComment:l,setText:c,setElementText:d,parentNode:f,nextSibling:h,setScopeId:S=st,insertStaticContent:F}=e,C=(m,g,D,I=null,E=null,N=null,u=void 0,p=null,v=!!g.dynamicChildren)=>{if(m===g)return;m&&!jt(m,g)&&(I=Ct(m),Ie(m,E,N,!0),m=null),g.patchFlag===-2&&(v=!1,g.dynamicChildren=null);const{type:k,ref:W,shapeFlag:R}=g;switch(k){case Kn:P(m,g,D,I);break;case De:b(m,g,D,I);break;case ao:m==null&&T(g,D,I,u);break;case _e:O(m,g,D,I,E,N,u,p,v);break;default:R&1?L(m,g,D,I,E,N,u,p,v):R&6?Q(m,g,D,I,E,N,u,p,v):(R&64||R&128)&&k.process(m,g,D,I,E,N,u,p,v,ct)}W!=null&&E?Fn(W,m&&m.ref,N,g||m,!g):W==null&&m&&m.ref!=null&&Fn(m.ref,null,N,m,!0)},P=(m,g,D,I)=>{if(m==null)o(g.el=r(g.children),D,I);else{const E=g.el=m.el;g.children!==m.children&&c(E,g.children)}},b=(m,g,D,I)=>{m==null?o(g.el=l(g.children||""),D,I):g.el=m.el},T=(m,g,D,I)=>{[m.el,m.anchor]=F(m.children,g,D,I,m.el,m.anchor)},M=({el:m,anchor:g},D,I)=>{let E;for(;m&&m!==g;)E=h(m),o(m,D,I),m=E;o(g,D,I)},y=({el:m,anchor:g})=>{let D;for(;m&&m!==g;)D=h(m),s(m),m=D;s(g)},L=(m,g,D,I,E,N,u,p,v)=>{if(g.type==="svg"?u="svg":g.type==="math"&&(u="mathml"),m==null)x(g,D,I,E,N,u,p,v);else{const k=m.el&&m.el._isVueCE?m.el:null;try{k&&k._beginPatch(),U(m,g,E,N,u,p,v)}finally{k&&k._endPatch()}}},x=(m,g,D,I,E,N,u,p)=>{let v,k;const{props:W,shapeFlag:R,transition:w,dirs:_}=m;if(v=m.el=a(m.type,N,W&&W.is,W),R&8?d(v,m.children):R&16&&H(m.children,v,null,I,E,Ko(m,N),u,p),_&&xt(m,null,I,"created"),A(v,m,m.scopeId,u,I),W){for(const $ in W)$!=="value"&&!_n($)&&i(v,$,null,W[$],N,I);"value"in W&&i(v,"value",null,W.value,N),(k=W.onVnodeBeforeMount)&&Je(k,I,m)}_&&xt(m,null,I,"beforeMount");const j=ud(E,w);j&&w.beforeEnter(v),o(v,g,D),((k=W&&W.onVnodeMounted)||j||_)&&Ae(()=>{try{k&&Je(k,I,m),j&&w.enter(v),_&&xt(m,null,I,"mounted")}finally{}},E)},A=(m,g,D,I,E)=>{if(D&&S(m,D),I)for(let N=0;N<I.length;N++)S(m,I[N]);if(E){let N=E.subTree;if(g===N||Or(N.type)&&(N.ssContent===g||N.ssFallback===g)){const u=E.vnode;A(m,u,u.scopeId,u.slotScopeIds,E.parent)}}},H=(m,g,D,I,E,N,u,p,v=0)=>{for(let k=v;k<m.length;k++){const W=m[k]=p?mt(m[k]):ot(m[k]);C(null,W,g,D,I,E,N,u,p)}},U=(m,g,D,I,E,N,u)=>{const p=g.el=m.el;let{patchFlag:v,dynamicChildren:k,dirs:W}=g;v|=m.patchFlag&16;const R=m.props||ae,w=g.props||ae;let _;if(D&&Ot(D,!1),(_=w.onVnodeBeforeUpdate)&&Je(_,D,g,m),W&&xt(g,m,D,"beforeUpdate"),D&&Ot(D,!0),(R.innerHTML&&w.innerHTML==null||R.textContent&&w.textContent==null)&&d(p,""),k?q(m.dynamicChildren,k,p,D,I,Ko(g,E),N):u||te(m,g,p,null,D,I,Ko(g,E),N,!1),v>0){if(v&16)K(p,R,w,D,E);else if(v&2&&R.class!==w.class&&i(p,"class",null,w.class,E),v&4&&i(p,"style",R.style,w.style,E),v&8){const j=g.dynamicProps;for(let $=0;$<j.length;$++){const z=j[$],ce=R[z],ue=w[z];(ue!==ce||z==="value")&&i(p,z,ce,ue,E,D)}}v&1&&m.children!==g.children&&d(p,g.children)}else!u&&k==null&&K(p,R,w,D,E);((_=w.onVnodeUpdated)||W)&&Ae(()=>{_&&Je(_,D,g,m),W&&xt(g,m,D,"updated")},I)},q=(m,g,D,I,E,N,u)=>{for(let p=0;p<g.length;p++){const v=m[p],k=g[p],W=v.el&&(v.type===_e||!jt(v,k)||v.shapeFlag&198)?f(v.el):D;C(v,k,W,null,I,E,N,u,!0)}},K=(m,g,D,I,E)=>{if(g!==D){if(g!==ae)for(const N in g)!_n(N)&&!(N in D)&&i(m,N,g[N],null,E,I);for(const N in D){if(_n(N))continue;const u=D[N],p=g[N];u!==p&&N!=="value"&&i(m,N,p,u,E,I)}"value"in D&&i(m,"value",g.value,D.value,E)}},O=(m,g,D,I,E,N,u,p,v)=>{const k=g.el=m?m.el:r(""),W=g.anchor=m?m.anchor:r("");let{patchFlag:R,dynamicChildren:w,slotScopeIds:_}=g;_&&(p=p?p.concat(_):_),m==null?(o(k,D,I),o(W,D,I),H(g.children||[],D,W,E,N,u,p,v)):R>0&&R&64&&w&&m.dynamicChildren&&m.dynamicChildren.length===w.length?(q(m.dynamicChildren,w,D,E,N,u,p),(g.key!=null||E&&g===E.subTree)&&Vs(m,g,!0)):te(m,g,D,W,E,N,u,p,v)},Q=(m,g,D,I,E,N,u,p,v)=>{g.slotScopeIds=p,m==null?g.shapeFlag&512?E.ctx.activate(g,D,I,u,v):pe(g,D,I,E,N,u,v):xe(m,g,v)},pe=(m,g,D,I,E,N,u)=>{const p=m.component=kd(m,I,E);if(Gn(m)&&(p.ctx.renderer=ct),Cd(p,!1,u),p.asyncDep){if(E&&E.registerDep(p,me,u),!m.el){const v=p.subTree=he(De);b(null,v,g,D),m.placeholder=v.el}}else me(p,m,g,D,E,N,u)},xe=(m,g,D)=>{const I=g.component=m.component;if(td(m,g,D))if(I.asyncDep&&!I.asyncResolved){ie(I,g,D);return}else I.next=g,I.update();else g.el=m.el,I.vnode=g},me=(m,g,D,I,E,N,u)=>{const p=()=>{if(m.isMounted){let{next:R,bu:w,u:_,parent:j,vnode:$}=m;{const Ge=Lr(m);if(Ge){R&&(R.el=$.el,ie(m,R,u)),Ge.asyncDep.then(()=>{Ae(()=>{m.isUnmounted||k()},E)});return}}let z=R,ce;Ot(m,!1),R?(R.el=$.el,ie(m,R,u)):R=$,w&&io(w),(ce=R.props&&R.props.onVnodeBeforeUpdate)&&Je(ce,j,R,$),Ot(m,!0);const ue=ki(m),je=m.subTree;m.subTree=ue,C(je,ue,f(je.el),Ct(je),m,E,N),R.el=ue.el,z===null&&nd(m,ue.el),_&&Ae(_,E),(ce=R.props&&R.props.onVnodeUpdated)&&Ae(()=>Je(ce,j,R,$),E)}else{let R;const{el:w,props:_}=g,{bm:j,m:$,parent:z,root:ce,type:ue}=m,je=sn(g);Ot(m,!1),j&&io(j),!je&&(R=_&&_.onVnodeBeforeMount)&&Je(R,z,g),Ot(m,!0);{ce.ce&&ce.ce._hasShadowRoot()&&ce.ce._injectChildStyle(ue,m.parent?m.parent.type:void 0);const Ge=m.subTree=ki(m);C(null,Ge,D,I,m,E,N),g.el=Ge.el}if($&&Ae($,E),!je&&(R=_&&_.onVnodeMounted)){const Ge=g;Ae(()=>Je(R,z,Ge),E)}(g.shapeFlag&256||z&&sn(z.vnode)&&z.vnode.shapeFlag&256)&&m.a&&Ae(m.a,E),m.isMounted=!0,g=D=I=null}};m.scope.on();const v=m.effect=new Oa(p);m.scope.off();const k=m.update=v.run.bind(v),W=m.job=v.runIfDirty.bind(v);W.i=m,W.id=m.uid,v.scheduler=()=>Ls(W),Ot(m,!0),k()},ie=(m,g,D)=>{g.component=m;const I=m.vnode.props;m.vnode=g,m.next=null,sd(m,g.props,I,D),ld(m,g.children,D),wt(),di(m),yt()},te=(m,g,D,I,E,N,u,p,v=!1)=>{const k=m&&m.children,W=m?m.shapeFlag:0,R=g.children,{patchFlag:w,shapeFlag:_}=g;if(w>0){if(w&128){rt(k,R,D,I,E,N,u,p,v);return}else if(w&256){Te(k,R,D,I,E,N,u,p,v);return}}_&8?(W&16&&lt(k,E,N),R!==k&&d(D,R)):W&16?_&16?rt(k,R,D,I,E,N,u,p,v):lt(k,E,N,!0):(W&8&&d(D,""),_&16&&H(R,D,I,E,N,u,p,v))},Te=(m,g,D,I,E,N,u,p,v)=>{m=m||Zt,g=g||Zt;const k=m.length,W=g.length,R=Math.min(k,W);let w;for(w=0;w<R;w++){const _=g[w]=v?mt(g[w]):ot(g[w]);C(m[w],_,D,null,E,N,u,p,v)}k>W?lt(m,E,N,!0,!1,R):H(g,D,I,E,N,u,p,v,R)},rt=(m,g,D,I,E,N,u,p,v)=>{let k=0;const W=g.length;let R=m.length-1,w=W-1;for(;k<=R&&k<=w;){const _=m[k],j=g[k]=v?mt(g[k]):ot(g[k]);if(jt(_,j))C(_,j,D,null,E,N,u,p,v);else break;k++}for(;k<=R&&k<=w;){const _=m[R],j=g[w]=v?mt(g[w]):ot(g[w]);if(jt(_,j))C(_,j,D,null,E,N,u,p,v);else break;R--,w--}if(k>R){if(k<=w){const _=w+1,j=_<W?g[_].el:I;for(;k<=w;)C(null,g[k]=v?mt(g[k]):ot(g[k]),D,j,E,N,u,p,v),k++}}else if(k>w)for(;k<=R;)Ie(m[k],E,N,!0),k++;else{const _=k,j=k,$=new Map;for(k=j;k<=w;k++){const Oe=g[k]=v?mt(g[k]):ot(g[k]);Oe.key!=null&&$.set(Oe.key,k)}let z,ce=0;const ue=w-j+1;let je=!1,Ge=0;const hn=new Array(ue);for(k=0;k<ue;k++)hn[k]=0;for(k=_;k<=R;k++){const Oe=m[k];if(ce>=ue){Ie(Oe,E,N,!0);continue}let Xe;if(Oe.key!=null)Xe=$.get(Oe.key);else for(z=j;z<=w;z++)if(hn[z-j]===0&&jt(Oe,g[z])){Xe=z;break}Xe===void 0?Ie(Oe,E,N,!0):(hn[Xe-j]=k+1,Xe>=Ge?Ge=Xe:je=!0,C(Oe,g[Xe],D,null,E,N,u,p,v),ce++)}const oi=je?pd(hn):Zt;for(z=oi.length-1,k=ue-1;k>=0;k--){const Oe=j+k,Xe=g[Oe],si=g[Oe+1],ii=Oe+1<W?si.el||xr(si):I;hn[k]===0?C(null,Xe,D,ii,E,N,u,p,v):je&&(z<0||k!==oi[z]?Be(Xe,D,ii,2):z--)}}},Be=(m,g,D,I,E=null)=>{const{el:N,type:u,transition:p,children:v,shapeFlag:k}=m;if(k&6){Be(m.component.subTree,g,D,I);return}if(k&128){m.suspense.move(g,D,I);return}if(k&64){u.move(m,g,D,ct);return}if(u===_e){o(N,g,D);for(let R=0;R<v.length;R++)Be(v[R],g,D,I);o(m.anchor,g,D);return}if(u===ao){M(m,g,D);return}if(I!==2&&k&1&&p)if(I===0)p.persisted&&!N[Ve]?o(N,g,D):(p.beforeEnter(N),o(N,g,D),Ae(()=>p.enter(N),E));else{const{leave:R,delayLeave:w,afterLeave:_}=p,j=()=>{m.ctx.isUnmounted?s(N):o(N,g,D)},$=()=>{const z=N._isLeaving||!!N[Ve];N._isLeaving&&N[Ve](!0),p.persisted&&!z?j():R(N,()=>{j(),_&&_()})};w?w(N,j,$):$()}else o(N,g,D)},Ie=(m,g,D,I=!1,E=!1)=>{const{type:N,props:u,ref:p,children:v,dynamicChildren:k,shapeFlag:W,patchFlag:R,dirs:w,cacheIndex:_,memo:j}=m;if(R===-2&&(E=!1),p!=null&&(wt(),Fn(p,null,D,m,!0),yt()),_!=null&&(g.renderCache[_]=void 0),W&256){g.ctx.deactivate(m);return}const $=W&1&&w,z=!sn(m);let ce;if(z&&(ce=u&&u.onVnodeBeforeUnmount)&&Je(ce,g,m),W&6)zn(m.component,D,I);else{if(W&128){m.suspense.unmount(D,I);return}$&&xt(m,null,g,"beforeUnmount"),W&64?m.type.remove(m,g,D,ct,I):k&&!k.hasOnce&&(N!==_e||R>0&&R&64)?lt(k,g,D,!1,!0):(N===_e&&R&384||!E&&W&16)&&lt(v,g,D),I&&Kt(m)}const ue=j!=null&&_==null;(z&&(ce=u&&u.onVnodeUnmounted)||$||ue)&&Ae(()=>{ce&&Je(ce,g,m),$&&xt(m,null,g,"unmounted"),ue&&(m.el=null)},D)},Kt=m=>{const{type:g,el:D,anchor:I,transition:E}=m;if(g===_e){gn(D,I);return}if(g===ao){y(m);return}const N=()=>{s(D),E&&!E.persisted&&E.afterLeave&&E.afterLeave()};if(m.shapeFlag&1&&E&&!E.persisted){const{leave:u,delayLeave:p}=E,v=()=>u(D,N);p?p(m.el,N,v):v()}else N()},gn=(m,g)=>{let D;for(;m!==g;)D=h(m),s(m),m=D;s(g)},zn=(m,g,D)=>{const{bum:I,scope:E,job:N,subTree:u,um:p,m:v,a:k}=m;_i(v),_i(k),I&&io(I),E.stop(),N&&(N.flags|=8,Ie(u,m,g,D)),p&&Ae(p,g),Ae(()=>{m.isUnmounted=!0},g)},lt=(m,g,D,I=!1,E=!1,N=0)=>{for(let u=N;u<m.length;u++)Ie(m[u],g,D,I,E)},Ct=m=>{if(m.shapeFlag&6)return Ct(m.component.subTree);if(m.shapeFlag&128)return m.suspense.next();const g=h(m.anchor||m.el),D=g&&g[rr];return D?h(D):g};let St=!1;const Yt=(m,g,D)=>{let I;m==null?g._vnode&&(Ie(g._vnode,null,null,!0),I=g._vnode.component):C(g._vnode||null,m,g,null,null,null,D),g._vnode=m,St||(St=!0,di(I),or(),St=!1)},ct={p:C,um:Ie,m:Be,r:Kt,mt:pe,mc:H,pc:te,pbc:q,n:Ct,o:e};return{render:Yt,hydrate:void 0,createApp:zc(Yt)}}function Ko({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ot({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ud(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,n=!1){const o=e.children,s=t.children;if(V(o)&&V(s))for(let i=0;i<o.length;i++){const a=o[i];let r=s[i];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=s[i]=mt(s[i]),r.el=a.el),!n&&r.patchFlag!==-2&&Vs(a,r)),r.type===Kn&&(r.patchFlag===-1&&(r=s[i]=mt(r)),r.el=a.el),r.type===De&&!r.el&&(r.el=a.el)}}function pd(e){const t=e.slice(),n=[0];let o,s,i,a,r;const l=e.length;for(o=0;o<l;o++){const c=e[o];if(c!==0){if(s=n[n.length-1],e[s]<c){t[o]=s,n.push(o);continue}for(i=0,a=n.length-1;i<a;)r=i+a>>1,e[n[r]]<c?i=r+1:a=r;c<e[n[i]]&&(i>0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,a=n[i-1];i-- >0;)n[i]=a,a=t[a];return n}function Lr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Lr(t)}function _i(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function xr(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?xr(t.subTree):null}const Or=e=>e.__isSuspense;function md(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):Tc(e)}const _e=Symbol.for("v-fgt"),Kn=Symbol.for("v-txt"),De=Symbol.for("v-cmt"),ao=Symbol.for("v-stc"),Pn=[];let Pe=null;function ds(e=!1){Pn.push(Pe=e?null:[])}function fd(){Pn.pop(),Pe=Pn[Pn.length-1]||null}let rn=1;function ho(e,t=!1){rn+=e,e<0&&Pe&&t&&(Pe.hasOnce=!0)}function Ur(e){return e.dynamicChildren=rn>0?Pe||Zt:null,fd(),rn>0&&Pe&&Pe.push(e),e}function Ff(e,t,n,o,s,i){return Ur(Br(e,t,n,o,s,i,!0))}function us(e,t,n,o,s){return Ur(he(e,t,n,o,s,!0))}function xn(e){return e?e.__v_isVNode===!0:!1}function jt(e,t){return e.type===t.type&&e.key===t.key}const Wr=({key:e})=>e??null,ro=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?le(e)||be(e)||G(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function Br(e,t=null,n=null,o=0,s=null,i=e===_e?0:1,a=!1,r=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wr(t),ref:t&&ro(t),scopeId:ir,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return r?($s(l,n),i&128&&e.normalize(l)):n&&(l.shapeFlag|=le(n)?8:16),rn>0&&!a&&Pe&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&Pe.push(l),l}const he=gd;function gd(e,t=null,n=null,o=0,s=null,i=!1){if((!e||e===vr)&&(e=De),xn(e)){const r=Pt(e,t,!0);return n&&$s(r,n),rn>0&&!i&&Pe&&(r.shapeFlag&6?Pe[Pe.indexOf(e)]=r:Pe.push(r)),r.patchFlag=-2,r}if(Md(e)&&(e=e.__vccOpts),t){t=hd(t);let{class:r,style:l}=t;r&&!le(r)&&(t.class=Fo(r)),ee(l)&&(Eo(l)&&!V(l)&&(l=ve({},l)),t.style=Ao(l))}const a=le(e)?1:Or(e)?128:lr(e)?64:ee(e)?4:G(e)?2:0;return Br(e,t,n,o,s,a,i,!0)}function hd(e){return e?Eo(e)||Fr(e)?ve({},e):e:null}function Pt(e,t,n=!1,o=!1){const{props:s,ref:i,patchFlag:a,children:r,transition:l}=e,c=t?wd(s||{},t):s,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Wr(c),ref:t&&t.ref?n&&i?V(i)?i.concat(ro(t)):[i,ro(t)]:ro(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pt(e.ssContent),ssFallback:e.ssFallback&&Pt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Gt(d,l.clone(d)),d}function bd(e=" ",t=0){return he(Kn,null,e,t)}function Rf(e,t){const n=he(ao,null,e);return n.staticCount=t,n}function vd(e="",t=!1){return t?(ds(),us(De,null,e)):he(De,null,e)}function ot(e){return e==null||typeof e=="boolean"?he(De):V(e)?he(_e,null,e.slice()):xn(e)?mt(e):he(Kn,null,String(e))}function mt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pt(e)}function $s(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),$s(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Fr(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else G(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),o&64?(n=16,t=[bd(t)]):n=8);e.children=t,e.shapeFlag|=n}function wd(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const s in o)if(s==="class")t.class!==o.class&&(t.class=Fo([t.class,o.class]));else if(s==="style")t.style=Ao([t.style,o.style]);else if(To(s)){const i=t[s],a=o[s];a&&i!==a&&!(V(i)&&i.includes(a))?t[s]=i?[].concat(i,a):a:a==null&&i==null&&!ko(s)&&(t[s]=a)}else s!==""&&(t[s]=o[s])}return t}function Je(e,t,n,o=null){qe(e,t,7,[n,o])}const yd=Sr();let Td=0;function kd(e,t,n){const o=e.type,s=(t?t.appContext:e.appContext)||yd,i={uid:Td++,vnode:e,type:o,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new xa(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Pr(o,s),emitsOptions:_r(o,s),emit:null,emitted:null,propsDefaults:ae,inheritAttrs:o.inheritAttrs,ctx:ae,data:ae,props:ae,attrs:ae,slots:ae,refs:ae,setupState:ae,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Xc.bind(null,i),e.ce&&e.ce(i),i}let ke=null;const at=()=>ke||Ce;let bo,ps;{const e=Mo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};bo=t("__VUE_INSTANCE_SETTERS__",n=>ke=n),ps=t("__VUE_SSR_SETTERS__",n=>ln=n)}const Yn=e=>{const t=ke;return bo(e),e.scope.on(),()=>{e.scope.off(),bo(t)}},Di=()=>{ke&&ke.scope.off(),bo(null)};function jr(e){return e.vnode.shapeFlag&4}let ln=!1;function Cd(e,t=!1,n=!1){t&&ps(t);const{props:o,children:s}=e.vnode,i=jr(e);od(e,o,i,t),rd(e,s,n||t);const a=i?Sd(e,t):void 0;return t&&ps(!1),a}function Sd(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Hc);const{setup:o}=n;if(o){wt();const s=e.setupContext=o.length>1?Vr(e):null,i=Yn(e),a=$n(o,e,0,[e.props,s]),r=Fa(a);if(yt(),i(),(r||e.sp)&&!sn(e)&&Us(e),r){if(a.then(Di,Di),t)return a.then(l=>{Mi(e,l)}).catch(l=>{qn(l,e,0)});e.asyncDep=a}else Mi(e,a)}else Hr(e)}function Mi(e,t,n){G(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Ja(t)),Hr(e)}function Hr(e,t,n){const o=e.type;e.render||(e.render=o.render||st);{const s=Yn(e);wt();try{Vc(e)}finally{yt(),s()}}}const _d={get(e,t){return Se(e,"get",""),e[t]}};function Vr(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,_d),slots:e.slots,emit:e.emit,expose:t}}function xo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ja(lc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Rn)return Rn[n](e)},has(t,n){return n in t||n in Rn}})):e.proxy}function Dd(e,t=!0){return G(e)?e.displayName||e.name:e.name||t&&e.__name}function Md(e){return G(e)&&"__vccOpts"in e}const Xt=(e,t)=>hc(e,t,ln);function qs(e,t,n){try{ho(-1);const o=arguments.length;return o===2?ee(t)&&!V(t)?xn(t)?he(e,null,[t]):he(e,t):he(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&xn(n)&&(n=[n]),he(e,t,n))}finally{ho(1)}}function Pf(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let o=0;o<n.length;o++)if(Ke(n[o],t[o]))return!1;return rn>0&&Pe&&Pe.push(e),!0}const Ad="3.5.35";/**
* @vue/runtime-dom v3.5.35
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let ms;const Ai=typeof window<"u"&&window.trustedTypes;if(Ai)try{ms=Ai.createPolicy("vue",{createHTML:e=>e})}catch{}const $r=ms?e=>ms.createHTML(e):e=>e,Fd="http://www.w3.org/2000/svg",Rd="http://www.w3.org/1998/Math/MathML",pt=typeof document<"u"?document:null,Fi=pt&&pt.createElement("template"),Pd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?pt.createElementNS(Fd,e):t==="mathml"?pt.createElementNS(Rd,e):n?pt.createElement(e,{is:n}):pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>pt.createTextNode(e),createComment:e=>pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,i){const a=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{Fi.innerHTML=$r(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const r=Fi.content;if(o==="svg"||o==="mathml"){const l=r.firstChild;for(;l.firstChild;)r.appendChild(l.firstChild);r.removeChild(l)}t.insertBefore(r,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},_t="transition",wn="animation",cn=Symbol("_vtc"),qr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Gr=ve({},dr,qr),Ed=e=>(e.displayName="Transition",e.props=Gr,e),Ef=Ed((e,{slots:t})=>qs(Pc,Kr(e),t)),Ut=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ri=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function Kr(e){const t={};for(const O in e)O in qr||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:o,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:r=`${n}-enter-to`,appearFromClass:l=i,appearActiveClass:c=a,appearToClass:d=r,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:S=`${n}-leave-to`}=e,F=Nd(s),C=F&&F[0],P=F&&F[1],{onBeforeEnter:b,onEnter:T,onEnterCancelled:M,onLeave:y,onLeaveCancelled:L,onBeforeAppear:x=b,onAppear:A=T,onAppearCancelled:H=M}=t,U=(O,Q,pe,xe)=>{O._enterCancelled=xe,At(O,Q?d:r),At(O,Q?c:a),pe&&pe()},q=(O,Q)=>{O._isLeaving=!1,At(O,f),At(O,S),At(O,h),Q&&Q()},K=O=>(Q,pe)=>{const xe=O?A:T,me=()=>U(Q,O,pe);Ut(xe,[Q,me]),Pi(()=>{At(Q,O?l:i),et(Q,O?d:r),Ri(xe)||Ei(Q,o,C,me)})};return ve(t,{onBeforeEnter(O){Ut(b,[O]),et(O,i),et(O,a)},onBeforeAppear(O){Ut(x,[O]),et(O,l),et(O,c)},onEnter:K(!1),onAppear:K(!0),onLeave(O,Q){O._isLeaving=!0;const pe=()=>q(O,Q);et(O,f),O._enterCancelled?(et(O,h),fs(O)):(fs(O),et(O,h)),Pi(()=>{O._isLeaving&&(At(O,f),et(O,S),Ri(y)||Ei(O,o,P,pe))}),Ut(y,[O,pe])},onEnterCancelled(O){U(O,!1,void 0,!0),Ut(M,[O])},onAppearCancelled(O){U(O,!0,void 0,!0),Ut(H,[O])},onLeaveCancelled(O){q(O),Ut(L,[O])}})}function Nd(e){if(e==null)return null;if(ee(e))return[Yo(e.enter),Yo(e.leave)];{const t=Yo(e);return[t,t]}}function Yo(e){return El(e)}function et(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cn]||(e[cn]=new Set)).add(t)}function At(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[cn];n&&(n.delete(t),n.size||(e[cn]=void 0))}function Pi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Id=0;function Ei(e,t,n,o){const s=e._endId=++Id,i=()=>{s===e._endId&&o()};if(n!=null)return setTimeout(i,n);const{type:a,timeout:r,propCount:l}=Yr(e,t);if(!a)return o();const c=a+"end";let d=0;const f=()=>{e.removeEventListener(c,h),i()},h=S=>{S.target===e&&++d>=l&&f()};setTimeout(()=>{d<l&&f()},r+1),e.addEventListener(c,h)}function Yr(e,t){const n=window.getComputedStyle(e),o=F=>(n[F]||"").split(", "),s=o(`${_t}Delay`),i=o(`${_t}Duration`),a=Ni(s,i),r=o(`${wn}Delay`),l=o(`${wn}Duration`),c=Ni(r,l);let d=null,f=0,h=0;t===_t?a>0&&(d=_t,f=a,h=i.length):t===wn?c>0&&(d=wn,f=c,h=l.length):(f=Math.max(a,c),d=f>0?a>c?_t:wn:null,h=d?d===_t?i.length:l.length:0);const S=d===_t&&/\b(?:transform|all)(?:,|$)/.test(o(`${_t}Property`).toString());return{type:d,timeout:f,propCount:h,hasTransform:S}}function Ni(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,o)=>Ii(n)+Ii(e[o])))}function Ii(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function fs(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ld(e,t,n){const o=e[cn];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const vo=Symbol("_vod"),zr=Symbol("_vsh"),Nf={name:"show",beforeMount(e,{value:t},{transition:n}){e[vo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):yn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),yn(e,!0),o.enter(e)):o.leave(e,()=>{yn(e,!1)}):yn(e,t))},beforeUnmount(e,{value:t}){yn(e,t)}};function yn(e,t){e.style.display=t?e[vo]:"none",e[zr]=!t}const xd=Symbol(""),Od=/(?:^|;)\s*display\s*:/;function Ud(e,t,n){const o=e.style,s=le(n);let i=!1;if(n&&!s){if(t)if(le(t))for(const a of t.split(";")){const r=a.slice(0,a.indexOf(":")).trim();n[r]==null&&Sn(o,r,"")}else for(const a in t)n[a]==null&&Sn(o,a,"");for(const a in n){a==="display"&&(i=!0);const r=n[a];r!=null?Bd(e,a,!le(t)&&t?t[a]:void 0,r)||Sn(o,a,r):Sn(o,a,"")}}else if(s){if(t!==n){const a=o[xd];a&&(n+=";"+a),o.cssText=n,i=Od.test(n)}}else t&&e.removeAttribute("style");vo in e&&(e[vo]=i?o.display:"",e[zr]&&(o.display="none"))}const Li=/\s*!important$/;function Sn(e,t,n){if(V(n))n.forEach(o=>Sn(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Wd(e,t);Li.test(n)?e.setProperty(Et(o),n.replace(Li,""),"important"):e[o]=n}}const xi=["Webkit","Moz","ms"],zo={};function Wd(e,t){const n=zo[t];if(n)return n;let o=Ee(t);if(o!=="filter"&&o in e)return zo[t]=o;o=_o(o);for(let s=0;s<xi.length;s++){const i=xi[s]+o;if(i in e)return zo[t]=i}return t}function Bd(e,t,n,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&le(o)&&n===o}const Oi="http://www.w3.org/1999/xlink";function Ui(e,t,n,o,s,i=Ul(t)){o&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Oi,t.slice(6,t.length)):e.setAttributeNS(Oi,t,n):n==null||i&&!Na(n)?e.removeAttribute(t):e.setAttribute(t,i?"":We(n)?String(n):n)}function Wi(e,t,n,o,s){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?$r(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(r!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let a=!1;if(n===""||n==null){const r=typeof e[t];r==="boolean"?n=Na(n):n==null&&r==="string"?(n="",a=!0):r==="number"&&(n=0,a=!0)}try{e[t]=n}catch{}a&&e.removeAttribute(s||t)}function Rt(e,t,n,o){e.addEventListener(t,n,o)}function jd(e,t,n,o){e.removeEventListener(t,n,o)}const Bi=Symbol("_vei");function Hd(e,t,n,o,s=null){const i=e[Bi]||(e[Bi]={}),a=i[t];if(o&&a)a.value=o;else{const[r,l]=Vd(t);if(o){const c=i[t]=Gd(o,s);Rt(e,r,c,l)}else a&&(jd(e,r,a,l),i[t]=void 0)}}const ji=/(?:Once|Passive|Capture)$/;function Vd(e){let t;if(ji.test(e)){t={};let o;for(;o=e.match(ji);)e=e.slice(0,e.length-o[0].length),t[o[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Et(e.slice(2)),t]}let Qo=0;const $d=Promise.resolve(),qd=()=>Qo||($d.then(()=>Qo=0),Qo=Date.now());function Gd(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(V(s)){const i=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{i.call(o),o._stopped=!0};const a=s.slice(),r=[o];for(let l=0;l<a.length&&!o._stopped;l++){const c=a[l];c&&qe(c,t,5,r)}}else qe(s,t,5,[o])};return n.value=e,n.attached=qd(),n}const Hi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Kd=(e,t,n,o,s,i)=>{const a=s==="svg";t==="class"?Ld(e,o,a):t==="style"?Ud(e,n,o):To(t)?ko(t)||Hd(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Yd(e,t,o,a))?(Wi(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ui(e,t,o,a,i,t!=="value")):e._isVueCE&&(zd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!le(o)))?Wi(e,Ee(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Ui(e,t,o,a))};function Yd(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Hi(t)&&G(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Hi(t)&&le(n)?!1:t in e}function zd(e,t){const n=e._def.props;if(!n)return!1;const o=Ee(t);return Array.isArray(n)?n.some(s=>Ee(s)===o):Object.keys(n).some(s=>Ee(s)===o)}const Qr=new WeakMap,Xr=new WeakMap,wo=Symbol("_moveCb"),Vi=Symbol("_enterCb"),Qd=e=>(delete e.props.mode,e),Xd=Qd({name:"TransitionGroup",props:ve({},Gr,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=at(),o=cr();let s,i;return gr(()=>{if(!s.length)return;const a=e.moveClass||`${e.name||"v"}-move`;if(!tu(s[0].el,n.vnode.el,a)){s=[];return}s.forEach(Jd),s.forEach(Zd);const r=s.filter(eu);fs(n.vnode.el),r.forEach(l=>{const c=l.el,d=c.style;et(c,a),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[wo]=h=>{h&&h.target!==c||(!h||h.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[wo]=null,At(c,a))};c.addEventListener("transitionend",f)}),s=[]}),()=>{const a=X(e),r=Kr(a);let l=a.tag||_e;if(s=[],i)for(let c=0;c<i.length;c++){const d=i[c];d.el&&d.el instanceof Element&&(s.push(d),Gt(d,Ln(d,r,o,n)),Qr.set(d,Jr(d.el)))}i=t.default?Os(t.default()):[];for(let c=0;c<i.length;c++){const d=i[c];d.key!=null&&Gt(d,Ln(d,r,o,n))}return he(l,null,i)}}}),If=Xd;function Jd(e){const t=e.el;t[wo]&&t[wo](),t[Vi]&&t[Vi]()}function Zd(e){Xr.set(e,Jr(e.el))}function eu(e){const t=Qr.get(e),n=Xr.get(e),o=t.left-n.left,s=t.top-n.top;if(o||s){const i=e.el,a=i.style,r=i.getBoundingClientRect();let l=1,c=1;return i.offsetWidth&&(l=r.width/i.offsetWidth),i.offsetHeight&&(c=r.height/i.offsetHeight),(!Number.isFinite(l)||l===0)&&(l=1),(!Number.isFinite(c)||c===0)&&(c=1),Math.abs(l-1)<.01&&(l=1),Math.abs(c-1)<.01&&(c=1),a.transform=a.webkitTransform=`translate(${o/l}px,${s/c}px)`,a.transitionDuration="0s",e}}function Jr(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top}}function tu(e,t,n){const o=e.cloneNode(),s=e[cn];s&&s.forEach(r=>{r.split(/\s+/).forEach(l=>l&&o.classList.remove(l))}),n.split(/\s+/).forEach(r=>r&&o.classList.add(r)),o.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(o);const{hasTransform:a}=Yr(o);return i.removeChild(o),a}const dn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>io(t,n):t};function nu(e){e.target.composing=!0}function $i(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vt=Symbol("_assign");function qi(e,t,n){return t&&(e=e.trim()),n&&(e=Do(e)),e}const Lf={created(e,{modifiers:{lazy:t,trim:n,number:o}},s){e[vt]=dn(s);const i=o||s.props&&s.props.type==="number";Rt(e,t?"change":"input",a=>{a.target.composing||e[vt](qi(e.value,n,i))}),(n||i)&&Rt(e,"change",()=>{e.value=qi(e.value,n,i)}),t||(Rt(e,"compositionstart",nu),Rt(e,"compositionend",$i),Rt(e,"change",$i))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:s,number:i}},a){if(e[vt]=dn(a),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Do(e.value):e.value,l=t??"";if(r===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(o&&t===n||s&&e.value.trim()===l)||(e.value=l)}},xf={deep:!0,created(e,t,n){e[vt]=dn(n),Rt(e,"change",()=>{const o=e._modelValue,s=On(e),i=e.checked,a=e[vt];if(V(o)){const r=Ms(o,s),l=r!==-1;if(i&&!l)a(o.concat(s));else if(!i&&l){const c=[...o];c.splice(r,1),a(c)}}else if(mn(o)){const r=new Set(o);i?r.add(s):r.delete(s),a(r)}else a(Zr(e,i))})},mounted:Gi,beforeUpdate(e,t,n){e[vt]=dn(n),Gi(e,t,n)}};function Gi(e,{value:t,oldValue:n},o){e._modelValue=t;let s;if(V(t))s=Ms(t,o.props.value)>-1;else if(mn(t))s=t.has(o.props.value);else{if(t===n)return;s=fn(t,Zr(e,!0))}e.checked!==s&&(e.checked=s)}const Of={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const s=mn(t);Rt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,a=>a.selected).map(a=>n?Do(On(a)):On(a));e[vt](e.multiple?s?new Set(i):i:i[0]),e._assigning=!0,tr(()=>{e._assigning=!1})}),e[vt]=dn(o)},mounted(e,{value:t}){Ki(e,t)},beforeUpdate(e,t,n){e[vt]=dn(n)},updated(e,{value:t}){e._assigning||Ki(e,t)}};function Ki(e,t){const n=e.multiple,o=V(t);if(!(n&&!o&&!mn(t))){for(let s=0,i=e.options.length;s<i;s++){const a=e.options[s],r=On(a);if(n)if(o){const l=typeof r;l==="string"||l==="number"?a.selected=t.some(c=>String(c)===String(r)):a.selected=Ms(t,r)>-1}else a.selected=t.has(r);else if(fn(On(a),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function On(e){return"_value"in e?e._value:e.value}function Zr(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ou=["ctrl","shift","alt","meta"],su={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ou.some(n=>e[`${n}Key`]&&!t.includes(n))},Uf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...i)=>{for(let a=0;a<t.length;a++){const r=su[t[a]];if(r&&r(s,t))return}return e(s,...i)})},iu={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Wf=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=s=>{if(!("key"in s))return;const i=Et(s.key);if(t.some(a=>a===i||iu[a]===i))return e(s)})},au=ve({patchProp:Kd},Pd);let Yi;function ru(){return Yi||(Yi=cd(au))}const Bf=(...e)=>{const t=ru().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=cu(o);if(!s)return;const i=t._component;!G(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=n(s,!1,lu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t};function lu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function cu(e){return le(e)?document.querySelector(e):e}/*!
* shared v10.0.8
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
*/function du(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const yo=typeof window<"u",Nt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),uu=(e,t,n)=>pu({l:e,k:t,s:n}),pu=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ge=e=>typeof e=="number"&&isFinite(e),mu=e=>Gs(e)==="[object Date]",un=e=>Gs(e)==="[object RegExp]",Oo=e=>Y(e)&&Object.keys(e).length===0,ye=Object.assign,fu=Object.create,se=(e=null)=>fu(e);let zi;const Ht=()=>zi||(zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:se());function Qi(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/\//g,"&#x2F;").replace(/=/g,"&#x3D;")}function Xi(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function gu(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,i)=>`${s}="${Xi(i)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,i)=>`${s}='${Xi(i)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1&#111;n$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(o=>{e=e.replace(o,"$1javascript&#58;")}),e}const hu=Object.prototype.hasOwnProperty;function Ye(e,t){return hu.call(e,t)}const fe=Array.isArray,de=e=>typeof e=="function",B=e=>typeof e=="string",J=e=>typeof e=="boolean",Z=e=>e!==null&&typeof e=="object",bu=e=>Z(e)&&de(e.then)&&de(e.catch),el=Object.prototype.toString,Gs=e=>el.call(e),Y=e=>Gs(e)==="[object Object]",vu=e=>e==null?"":fe(e)||Y(e)&&e.toString===el?JSON.stringify(e,null,2):String(e);function Ks(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const no=e=>!Z(e)||fe(e);function lo(e,t){if(no(e)||no(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:s}=n.pop();Object.keys(o).forEach(i=>{i!=="__proto__"&&(Z(o[i])&&!Z(s[i])&&(s[i]=Array.isArray(o[i])?[]:se()),no(s[i])||no(o[i])?s[i]=o[i]:n.push({src:o[i],des:s[i]}))})}}/*!
* message-compiler v10.0.8
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
*/function wu(e,t,n){return{line:e,column:t,offset:n}}function gs(e,t,n){return{start:e,end:t}}const oe={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},yu=17;function Uo(e,t,n={}){const{domain:o,messages:s,args:i}=n,a=e,r=new SyntaxError(String(a));return r.code=e,t&&(r.location=t),r.domain=o,r}function Tu(e){throw e}const ut=" ",ku="\r",Fe=`
`,Cu="\u2028",Su="\u2029";function _u(e){const t=e;let n=0,o=1,s=1,i=0;const a=A=>t[A]===ku&&t[A+1]===Fe,r=A=>t[A]===Fe,l=A=>t[A]===Su,c=A=>t[A]===Cu,d=A=>a(A)||r(A)||l(A)||c(A),f=()=>n,h=()=>o,S=()=>s,F=()=>i,C=A=>a(A)||l(A)||c(A)?Fe:t[A],P=()=>C(n),b=()=>C(n+i);function T(){return i=0,d(n)&&(o++,s=0),a(n)&&n++,n++,s++,t[n]}function M(){return a(n+i)&&i++,i++,t[n+i]}function y(){n=0,o=1,s=1,i=0}function L(A=0){i=A}function x(){const A=n+i;for(;A!==n;)T();i=0}return{index:f,line:h,column:S,peekOffset:F,charAt:C,currentChar:P,currentPeek:b,next:T,peek:M,reset:y,resetPeek:L,skipToPeek:x}}const Dt=void 0,Du=".",Ji="'",Mu="tokenizer";function Au(e,t={}){const n=t.location!==!1,o=_u(e),s=()=>o.index(),i=()=>wu(o.line(),o.column(),o.index()),a=i(),r=s(),l={currentType:13,offset:r,startLoc:a,endLoc:a,lastType:13,lastOffset:r,lastStartLoc:a,lastEndLoc:a,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:d}=t;function f(u,p,v,...k){const W=c();if(p.column+=v,p.offset+=v,d){const R=n?gs(W.startLoc,p):null,w=Uo(u,R,{domain:Mu,args:k});d(w)}}function h(u,p,v){u.endLoc=i(),u.currentType=p;const k={type:p};return n&&(k.loc=gs(u.startLoc,u.endLoc)),v!=null&&(k.value=v),k}const S=u=>h(u,13);function F(u,p){return u.currentChar()===p?(u.next(),p):(f(oe.EXPECTED_TOKEN,i(),0,p),"")}function C(u){let p="";for(;u.currentPeek()===ut||u.currentPeek()===Fe;)p+=u.currentPeek(),u.peek();return p}function P(u){const p=C(u);return u.skipToPeek(),p}function b(u){if(u===Dt)return!1;const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function T(u){if(u===Dt)return!1;const p=u.charCodeAt(0);return p>=48&&p<=57}function M(u,p){const{currentType:v}=p;if(v!==2)return!1;C(u);const k=b(u.currentPeek());return u.resetPeek(),k}function y(u,p){const{currentType:v}=p;if(v!==2)return!1;C(u);const k=u.currentPeek()==="-"?u.peek():u.currentPeek(),W=T(k);return u.resetPeek(),W}function L(u,p){const{currentType:v}=p;if(v!==2)return!1;C(u);const k=u.currentPeek()===Ji;return u.resetPeek(),k}function x(u,p){const{currentType:v}=p;if(v!==7)return!1;C(u);const k=u.currentPeek()===".";return u.resetPeek(),k}function A(u,p){const{currentType:v}=p;if(v!==8)return!1;C(u);const k=b(u.currentPeek());return u.resetPeek(),k}function H(u,p){const{currentType:v}=p;if(!(v===7||v===11))return!1;C(u);const k=u.currentPeek()===":";return u.resetPeek(),k}function U(u,p){const{currentType:v}=p;if(v!==9)return!1;const k=()=>{const R=u.currentPeek();return R==="{"?b(u.peek()):R==="@"||R==="|"||R===":"||R==="."||R===ut||!R?!1:R===Fe?(u.peek(),k()):K(u,!1)},W=k();return u.resetPeek(),W}function q(u){C(u);const p=u.currentPeek()==="|";return u.resetPeek(),p}function K(u,p=!0){const v=(W=!1,R="")=>{const w=u.currentPeek();return w==="{"||w==="@"||!w?W:w==="|"?!(R===ut||R===Fe):w===ut?(u.peek(),v(!0,ut)):w===Fe?(u.peek(),v(!0,Fe)):!0},k=v();return p&&u.resetPeek(),k}function O(u,p){const v=u.currentChar();return v===Dt?Dt:p(v)?(u.next(),v):null}function Q(u){const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function pe(u){return O(u,Q)}function xe(u){const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function me(u){return O(u,xe)}function ie(u){const p=u.charCodeAt(0);return p>=48&&p<=57}function te(u){return O(u,ie)}function Te(u){const p=u.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function rt(u){return O(u,Te)}function Be(u){let p="",v="";for(;p=te(u);)v+=p;return v}function Ie(u){let p="";for(;;){const v=u.currentChar();if(v==="{"||v==="}"||v==="@"||v==="|"||!v)break;if(v===ut||v===Fe)if(K(u))p+=v,u.next();else{if(q(u))break;p+=v,u.next()}else p+=v,u.next()}return p}function Kt(u){P(u);let p="",v="";for(;p=me(u);)v+=p;return u.currentChar()===Dt&&f(oe.UNTERMINATED_CLOSING_BRACE,i(),0),v}function gn(u){P(u);let p="";return u.currentChar()==="-"?(u.next(),p+=`-${Be(u)}`):p+=Be(u),u.currentChar()===Dt&&f(oe.UNTERMINATED_CLOSING_BRACE,i(),0),p}function zn(u){return u!==Ji&&u!==Fe}function lt(u){P(u),F(u,"'");let p="",v="";for(;p=O(u,zn);)p==="\\"?v+=Ct(u):v+=p;const k=u.currentChar();return k===Fe||k===Dt?(f(oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,i(),0),k===Fe&&(u.next(),F(u,"'")),v):(F(u,"'"),v)}function Ct(u){const p=u.currentChar();switch(p){case"\\":case"'":return u.next(),`\\${p}`;case"u":return St(u,p,4);case"U":return St(u,p,6);default:return f(oe.UNKNOWN_ESCAPE_SEQUENCE,i(),0,p),""}}function St(u,p,v){F(u,p);let k="";for(let W=0;W<v;W++){const R=rt(u);if(!R){f(oe.INVALID_UNICODE_ESCAPE_SEQUENCE,i(),0,`\\${p}${k}${u.currentChar()}`);break}k+=R}return`\\${p}${k}`}function Yt(u){return u!=="{"&&u!=="}"&&u!==ut&&u!==Fe}function ct(u){P(u);let p="",v="";for(;p=O(u,Yt);)v+=p;return v}function Qn(u){let p="",v="";for(;p=pe(u);)v+=p;return v}function m(u){const p=v=>{const k=u.currentChar();return k==="{"||k==="@"||k==="|"||k==="("||k===")"||!k||k===ut?v:(v+=k,u.next(),p(v))};return p("")}function g(u){P(u);const p=F(u,"|");return P(u),p}function D(u,p){let v=null;switch(u.currentChar()){case"{":return p.braceNest>=1&&f(oe.NOT_ALLOW_NEST_PLACEHOLDER,i(),0),u.next(),v=h(p,2,"{"),P(u),p.braceNest++,v;case"}":return p.braceNest>0&&p.currentType===2&&f(oe.EMPTY_PLACEHOLDER,i(),0),u.next(),v=h(p,3,"}"),p.braceNest--,p.braceNest>0&&P(u),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),v;case"@":return p.braceNest>0&&f(oe.UNTERMINATED_CLOSING_BRACE,i(),0),v=I(u,p)||S(p),p.braceNest=0,v;default:{let W=!0,R=!0,w=!0;if(q(u))return p.braceNest>0&&f(oe.UNTERMINATED_CLOSING_BRACE,i(),0),v=h(p,1,g(u)),p.braceNest=0,p.inLinked=!1,v;if(p.braceNest>0&&(p.currentType===4||p.currentType===5||p.currentType===6))return f(oe.UNTERMINATED_CLOSING_BRACE,i(),0),p.braceNest=0,E(u,p);if(W=M(u,p))return v=h(p,4,Kt(u)),P(u),v;if(R=y(u,p))return v=h(p,5,gn(u)),P(u),v;if(w=L(u,p))return v=h(p,6,lt(u)),P(u),v;if(!W&&!R&&!w)return v=h(p,12,ct(u)),f(oe.INVALID_TOKEN_IN_PLACEHOLDER,i(),0,v.value),P(u),v;break}}return v}function I(u,p){const{currentType:v}=p;let k=null;const W=u.currentChar();switch((v===7||v===8||v===11||v===9)&&(W===Fe||W===ut)&&f(oe.INVALID_LINKED_FORMAT,i(),0),W){case"@":return u.next(),k=h(p,7,"@"),p.inLinked=!0,k;case".":return P(u),u.next(),h(p,8,".");case":":return P(u),u.next(),h(p,9,":");default:return q(u)?(k=h(p,1,g(u)),p.braceNest=0,p.inLinked=!1,k):x(u,p)||H(u,p)?(P(u),I(u,p)):A(u,p)?(P(u),h(p,11,Qn(u))):U(u,p)?(P(u),W==="{"?D(u,p)||k:h(p,10,m(u))):(v===7&&f(oe.INVALID_LINKED_FORMAT,i(),0),p.braceNest=0,p.inLinked=!1,E(u,p))}}function E(u,p){let v={type:13};if(p.braceNest>0)return D(u,p)||S(p);if(p.inLinked)return I(u,p)||S(p);switch(u.currentChar()){case"{":return D(u,p)||S(p);case"}":return f(oe.UNBALANCED_CLOSING_BRACE,i(),0),u.next(),h(p,3,"}");case"@":return I(u,p)||S(p);default:{if(q(u))return v=h(p,1,g(u)),p.braceNest=0,p.inLinked=!1,v;if(K(u))return h(p,0,Ie(u));break}}return v}function N(){const{currentType:u,offset:p,startLoc:v,endLoc:k}=l;return l.lastType=u,l.lastOffset=p,l.lastStartLoc=v,l.lastEndLoc=k,l.offset=s(),l.startLoc=i(),o.currentChar()===Dt?h(l,13):E(o,l)}return{nextToken:N,currentOffset:s,currentPosition:i,context:c}}const Fu="parser",Ru=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Pu(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"<22>"}}}function Eu(e={}){const t=e.location!==!1,{onError:n}=e;function o(b,T,M,y,...L){const x=b.currentPosition();if(x.offset+=y,x.column+=y,n){const A=t?gs(M,x):null,H=Uo(T,A,{domain:Fu,args:L});n(H)}}function s(b,T,M){const y={type:b};return t&&(y.start=T,y.end=T,y.loc={start:M,end:M}),y}function i(b,T,M,y){t&&(b.end=T,b.loc&&(b.loc.end=M))}function a(b,T){const M=b.context(),y=s(3,M.offset,M.startLoc);return y.value=T,i(y,b.currentOffset(),b.currentPosition()),y}function r(b,T){const M=b.context(),{lastOffset:y,lastStartLoc:L}=M,x=s(5,y,L);return x.index=parseInt(T,10),b.nextToken(),i(x,b.currentOffset(),b.currentPosition()),x}function l(b,T){const M=b.context(),{lastOffset:y,lastStartLoc:L}=M,x=s(4,y,L);return x.key=T,b.nextToken(),i(x,b.currentOffset(),b.currentPosition()),x}function c(b,T){const M=b.context(),{lastOffset:y,lastStartLoc:L}=M,x=s(9,y,L);return x.value=T.replace(Ru,Pu),b.nextToken(),i(x,b.currentOffset(),b.currentPosition()),x}function d(b){const T=b.nextToken(),M=b.context(),{lastOffset:y,lastStartLoc:L}=M,x=s(8,y,L);return T.type!==11?(o(b,oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,M.lastStartLoc,0),x.value="",i(x,y,L),{nextConsumeToken:T,node:x}):(T.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,M.lastStartLoc,0,Ze(T)),x.value=T.value||"",i(x,b.currentOffset(),b.currentPosition()),{node:x})}function f(b,T){const M=b.context(),y=s(7,M.offset,M.startLoc);return y.value=T,i(y,b.currentOffset(),b.currentPosition()),y}function h(b){const T=b.context(),M=s(6,T.offset,T.startLoc);let y=b.nextToken();if(y.type===8){const L=d(b);M.modifier=L.node,y=L.nextConsumeToken||b.nextToken()}switch(y.type!==9&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(y)),y=b.nextToken(),y.type===2&&(y=b.nextToken()),y.type){case 10:y.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(y)),M.key=f(b,y.value||"");break;case 4:y.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(y)),M.key=l(b,y.value||"");break;case 5:y.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(y)),M.key=r(b,y.value||"");break;case 6:y.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(y)),M.key=c(b,y.value||"");break;default:{o(b,oe.UNEXPECTED_EMPTY_LINKED_KEY,T.lastStartLoc,0);const L=b.context(),x=s(7,L.offset,L.startLoc);return x.value="",i(x,L.offset,L.startLoc),M.key=x,i(M,L.offset,L.startLoc),{nextConsumeToken:y,node:M}}}return i(M,b.currentOffset(),b.currentPosition()),{node:M}}function S(b){const T=b.context(),M=T.currentType===1?b.currentOffset():T.offset,y=T.currentType===1?T.endLoc:T.startLoc,L=s(2,M,y);L.items=[];let x=null;do{const U=x||b.nextToken();switch(x=null,U.type){case 0:U.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(U)),L.items.push(a(b,U.value||""));break;case 5:U.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(U)),L.items.push(r(b,U.value||""));break;case 4:U.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(U)),L.items.push(l(b,U.value||""));break;case 6:U.value==null&&o(b,oe.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,Ze(U)),L.items.push(c(b,U.value||""));break;case 7:{const q=h(b);L.items.push(q.node),x=q.nextConsumeToken||null;break}}}while(T.currentType!==13&&T.currentType!==1);const A=T.currentType===1?T.lastOffset:b.currentOffset(),H=T.currentType===1?T.lastEndLoc:b.currentPosition();return i(L,A,H),L}function F(b,T,M,y){const L=b.context();let x=y.items.length===0;const A=s(1,T,M);A.cases=[],A.cases.push(y);do{const H=S(b);x||(x=H.items.length===0),A.cases.push(H)}while(L.currentType!==13);return x&&o(b,oe.MUST_HAVE_MESSAGES_IN_PLURAL,M,0),i(A,b.currentOffset(),b.currentPosition()),A}function C(b){const T=b.context(),{offset:M,startLoc:y}=T,L=S(b);return T.currentType===13?L:F(b,M,y,L)}function P(b){const T=Au(b,ye({},e)),M=T.context(),y=s(0,M.offset,M.startLoc);return t&&y.loc&&(y.loc.source=b),y.body=C(T),e.onCacheKey&&(y.cacheKey=e.onCacheKey(b)),M.currentType!==13&&o(T,oe.UNEXPECTED_LEXICAL_ANALYSIS,M.lastStartLoc,0,b[M.offset]||""),i(y,T.currentOffset(),T.currentPosition()),y}return{parse:P}}function Ze(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Nu(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:i=>(n.helpers.add(i),i)}}function Zi(e,t){for(let n=0;n<e.length;n++)Ys(e[n],t)}function Ys(e,t){switch(e.type){case 1:Zi(e.cases,t),t.helper("plural");break;case 2:Zi(e.items,t);break;case 6:{Ys(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function Iu(e,t={}){const n=Nu(e);n.helper("normalize"),e.body&&Ys(e.body,n);const o=n.context();e.helpers=Array.from(o.helpers)}function Lu(e){const t=e.body;return t.type===2?ea(t):t.cases.forEach(n=>ea(n)),e}function ea(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;n<e.items.length;n++){const o=e.items[n];if(!(o.type===3||o.type===9)||o.value==null)break;t.push(o.value)}if(t.length===e.items.length){e.static=Ks(t);for(let n=0;n<e.items.length;n++){const o=e.items[n];(o.type===3||o.type===9)&&delete o.value}}}}function Jt(e){switch(e.t=e.type,e.type){case 0:{const t=e;Jt(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,n=t.cases;for(let o=0;o<n.length;o++)Jt(n[o]);t.c=n,delete t.cases;break}case 2:{const t=e,n=t.items;for(let o=0;o<n.length;o++)Jt(n[o]);t.i=n,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;Jt(t.key),t.k=t.key,delete t.key,t.modifier&&(Jt(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}}delete e.type}function xu(e,t){const{filename:n,breakLineCode:o,needIndent:s}=t,i=t.location!==!1,a={filename:n,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:o,needIndent:s,indentLevel:0};i&&e.loc&&(a.source=e.loc.source);const r=()=>a;function l(C,P){a.code+=C}function c(C,P=!0){const b=P?o:"";l(s?b+" ".repeat(C):b)}function d(C=!0){const P=++a.indentLevel;C&&c(P)}function f(C=!0){const P=--a.indentLevel;C&&c(P)}function h(){c(a.indentLevel)}return{context:r,push:l,indent:d,deindent:f,newline:h,helper:C=>`_${C}`,needIndent:()=>a.needIndent}}function Ou(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),pn(e,t.key),t.modifier?(e.push(", "),pn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Uu(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let i=0;i<s&&(pn(e,t.items[i]),i!==s-1);i++)e.push(", ");e.deindent(o()),e.push("])")}function Wu(e,t){const{helper:n,needIndent:o}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let i=0;i<s&&(pn(e,t.cases[i]),i!==s-1);i++)e.push(", ");e.deindent(o()),e.push("])")}}function Bu(e,t){t.body?pn(e,t.body):e.push("null")}function pn(e,t){const{helper:n}=e;switch(t.type){case 0:Bu(e,t);break;case 1:Wu(e,t);break;case 2:Uu(e,t);break;case 6:Ou(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break}}const ju=(e,t={})=>{const n=B(t.mode)?t.mode:"normal",o=B(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":`
`,i=t.needIndent?t.needIndent:n!=="arrow",a=e.helpers||[],r=xu(e,{filename:o,breakLineCode:s,needIndent:i});r.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),r.indent(i),a.length>0&&(r.push(`const { ${Ks(a.map(d=>`${d}: _${d}`),", ")} } = ctx`),r.newline()),r.push("return "),pn(r,e),r.deindent(i),r.push("}"),delete e.helpers;const{code:l,map:c}=r.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function Hu(e,t={}){const n=ye({},t),o=!!n.jit,s=!!n.minify,i=n.optimize==null?!0:n.optimize,r=Eu(n).parse(e);return o?(i&&Lu(r),s&&Jt(r),{ast:r,code:""}):(Iu(r,n),ju(r,n))}/*!
* core-base v10.0.8
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
*/function Vu(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ht().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Ht().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function it(e){return Z(e)&&zs(e)===0&&(Ye(e,"b")||Ye(e,"body"))}const tl=["b","body"];function $u(e){return It(e,tl)}const nl=["c","cases"];function qu(e){return It(e,nl,[])}const ol=["s","static"];function Gu(e){return It(e,ol)}const sl=["i","items"];function Ku(e){return It(e,sl,[])}const il=["t","type"];function zs(e){return It(e,il)}const al=["v","value"];function oo(e,t){const n=It(e,al);if(n!=null)return n;throw Un(t)}const rl=["m","modifier"];function Yu(e){return It(e,rl)}const ll=["k","key"];function zu(e){const t=It(e,ll);if(t)return t;throw Un(6)}function It(e,t,n){for(let o=0;o<t.length;o++){const s=t[o];if(Ye(e,s)&&e[s]!=null)return e[s]}return n}const cl=[...tl,...nl,...ol,...sl,...ll,...rl,...al,...il];function Un(e){return new Error(`unhandled node type: ${e}`)}function Xo(e){return n=>Qu(n,e)}function Qu(e,t){const n=$u(t);if(n==null)throw Un(0);if(zs(n)===1){const i=qu(n);return e.plural(i.reduce((a,r)=>[...a,ta(e,r)],[]))}else return ta(e,n)}function ta(e,t){const n=Gu(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=Ku(t).reduce((s,i)=>[...s,hs(e,i)],[]);return e.normalize(o)}}function hs(e,t){const n=zs(t);switch(n){case 3:return oo(t,n);case 9:return oo(t,n);case 4:{const o=t;if(Ye(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(Ye(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw Un(n)}case 5:{const o=t;if(Ye(o,"i")&&ge(o.i))return e.interpolate(e.list(o.i));if(Ye(o,"index")&&ge(o.index))return e.interpolate(e.list(o.index));throw Un(n)}case 6:{const o=t,s=Yu(o),i=zu(o);return e.linked(hs(e,i),s?hs(e,s):void 0,e.type)}case 7:return oo(t,n);case 8:return oo(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Xu=e=>e;let so=se();function Ju(e,t={}){let n=!1;const o=t.onError||Tu;return t.onError=s=>{n=!0,o(s)},{...Hu(e,t),detectError:n}}function Zu(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&B(e)){J(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||Xu)(e),s=so[o];if(s)return s;const{ast:i,detectError:a}=Ju(e,{...t,location:!1,jit:!0}),r=Xo(i);return a?r:so[o]=r}else{const n=e.cacheKey;if(n){const o=so[n];return o||(so[n]=Xo(e))}else return Xo(e)}}let Wn=null;function ep(e){Wn=e}function tp(e,t,n){Wn&&Wn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const np=op("function:translate");function op(e){return t=>Wn&&Wn.emit(e,t)}const ht={INVALID_ARGUMENT:yu,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},sp=24;function bt(e){return Uo(e,null,void 0)}function Qs(e,t){return t.locale!=null?na(t.locale):na(e.locale)}let Jo;function na(e){if(B(e))return e;if(de(e)){if(e.resolvedOnce&&Jo!=null)return Jo;if(e.constructor.name==="Function"){const t=e();if(bu(t))throw bt(ht.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Jo=t}else throw bt(ht.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw bt(ht.NOT_SUPPORT_LOCALE_TYPE)}function ip(e,t,n){return[...new Set([n,...fe(t)?t:Z(t)?Object.keys(t):B(t)?[t]:[n]])]}function dl(e,t,n){const o=B(n)?n:Bn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let i=s.__localeChainCache.get(o);if(!i){i=[];let a=[n];for(;fe(a);)a=oa(i,a,t);const r=fe(t)||!Y(t)?t:t.default?t.default:null;a=B(r)?[r]:r,fe(a)&&oa(i,a,!1),s.__localeChainCache.set(o,i)}return i}function oa(e,t,n){let o=!0;for(let s=0;s<t.length&&J(o);s++){const i=t[s];B(i)&&(o=ap(e,t[s],n))}return o}function ap(e,t,n){let o;const s=t.split("-");do{const i=s.join("-");o=rp(e,i,n),s.splice(-1,1)}while(s.length&&o===!0);return o}function rp(e,t,n){let o=!1;if(!e.includes(t)&&(o=!0,t)){o=t[t.length-1]!=="!";const s=t.replace(/!/g,"");e.push(s),(fe(n)||Y(n))&&n[s]&&(o=n[s])}return o}const Lt=[];Lt[0]={w:[0],i:[3,0],"[":[4],o:[7]};Lt[1]={w:[1],".":[2],"[":[4],o:[7]};Lt[2]={w:[2],i:[3,0],0:[3,0]};Lt[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};Lt[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};Lt[5]={"'":[4,0],o:8,l:[5,0]};Lt[6]={'"':[4,0],o:8,l:[6,0]};const lp=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function cp(e){return lp.test(e)}function dp(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function up(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function pp(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:cp(t)?dp(t):"*"+t}function mp(e){const t=[];let n=-1,o=0,s=0,i,a,r,l,c,d,f;const h=[];h[0]=()=>{a===void 0?a=r:a+=r},h[1]=()=>{a!==void 0&&(t.push(a),a=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,a===void 0||(a=pp(a),a===!1))return!1;h[1]()}};function S(){const F=e[n+1];if(o===5&&F==="'"||o===6&&F==='"')return n++,r="\\"+F,h[0](),!0}for(;o!==null;)if(n++,i=e[n],!(i==="\\"&&S())){if(l=up(i),f=Lt[o],c=f[l]||f.l||8,c===8||(o=c[0],c[1]!==void 0&&(d=h[c[1]],d&&(r=i,d()===!1))))return;if(o===7)return t}}const sa=new Map;function fp(e,t){return Z(e)?e[t]:null}function gp(e,t){if(!Z(e))return null;let n=sa.get(t);if(n||(n=mp(t),n&&sa.set(t,n)),!n)return null;const o=n.length;let s=e,i=0;for(;i<o;){const a=n[i];if(cl.includes(a)&&it(s))return null;const r=s[a];if(r===void 0||de(s))return null;s=r,i++}return s}const hp="10.0.8",Wo=-1,Bn="en-US",ia="",aa=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function bp(){return{upper:(e,t)=>t==="text"&&B(e)?e.toUpperCase():t==="vnode"&&Z(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&B(e)?e.toLowerCase():t==="vnode"&&Z(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&B(e)?aa(e):t==="vnode"&&Z(e)&&"__v_isVNode"in e?aa(e.children):e}}let ul;function vp(e){ul=e}let pl;function wp(e){pl=e}let ml;function yp(e){ml=e}let fl=null;const Tp=e=>{fl=e},kp=()=>fl;let gl=null;const ra=e=>{gl=e},Cp=()=>gl;let la=0;function Sp(e={}){const t=de(e.onWarn)?e.onWarn:du,n=B(e.version)?e.version:hp,o=B(e.locale)||de(e.locale)?e.locale:Bn,s=de(o)?Bn:o,i=fe(e.fallbackLocale)||Y(e.fallbackLocale)||B(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,a=Y(e.messages)?e.messages:Zo(s),r=Y(e.datetimeFormats)?e.datetimeFormats:Zo(s),l=Y(e.numberFormats)?e.numberFormats:Zo(s),c=ye(se(),e.modifiers,bp()),d=e.pluralRules||se(),f=de(e.missing)?e.missing:null,h=J(e.missingWarn)||un(e.missingWarn)?e.missingWarn:!0,S=J(e.fallbackWarn)||un(e.fallbackWarn)?e.fallbackWarn:!0,F=!!e.fallbackFormat,C=!!e.unresolving,P=de(e.postTranslation)?e.postTranslation:null,b=Y(e.processor)?e.processor:null,T=J(e.warnHtmlMessage)?e.warnHtmlMessage:!0,M=!!e.escapeParameter,y=de(e.messageCompiler)?e.messageCompiler:ul,L=de(e.messageResolver)?e.messageResolver:pl||fp,x=de(e.localeFallbacker)?e.localeFallbacker:ml||ip,A=Z(e.fallbackContext)?e.fallbackContext:void 0,H=e,U=Z(H.__datetimeFormatters)?H.__datetimeFormatters:new Map,q=Z(H.__numberFormatters)?H.__numberFormatters:new Map,K=Z(H.__meta)?H.__meta:{};la++;const O={version:n,cid:la,locale:o,fallbackLocale:i,messages:a,modifiers:c,pluralRules:d,missing:f,missingWarn:h,fallbackWarn:S,fallbackFormat:F,unresolving:C,postTranslation:P,processor:b,warnHtmlMessage:T,escapeParameter:M,messageCompiler:y,messageResolver:L,localeFallbacker:x,fallbackContext:A,onWarn:t,__meta:K};return O.datetimeFormats=r,O.numberFormats=l,O.__datetimeFormatters=U,O.__numberFormatters=q,__INTLIFY_PROD_DEVTOOLS__&&tp(O,n,K),O}const Zo=e=>({[e]:se()});function Xs(e,t,n,o,s){const{missing:i,onWarn:a}=e;if(i!==null){const r=i(e,n,t,s);return B(r)?r:t}else return t}function Tn(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function _p(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Dp(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;o<t.length;o++)if(_p(e,t[o]))return!0;return!1}function ca(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:i,localeFallbacker:a}=e,{__datetimeFormatters:r}=e,[l,c,d,f]=bs(...t),h=J(d.missingWarn)?d.missingWarn:e.missingWarn;J(d.fallbackWarn)?d.fallbackWarn:e.fallbackWarn;const S=!!d.part,F=Qs(e,d),C=a(e,s,F);if(!B(l)||l==="")return new Intl.DateTimeFormat(F,f).format(c);let P={},b,T=null;const M="datetime format";for(let x=0;x<C.length&&(b=C[x],P=n[b]||{},T=P[l],!Y(T));x++)Xs(e,l,b,h,M);if(!Y(T)||!B(b))return o?Wo:l;let y=`${b}__${l}`;Oo(f)||(y=`${y}__${JSON.stringify(f)}`);let L=r.get(y);return L||(L=new Intl.DateTimeFormat(b,ye({},T,f)),r.set(y,L)),S?L.formatToParts(c):L.format(c)}const hl=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function bs(...e){const[t,n,o,s]=e,i=se();let a=se(),r;if(B(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw bt(ht.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();r=new Date(c);try{r.toISOString()}catch{throw bt(ht.INVALID_ISO_DATE_ARGUMENT)}}else if(mu(t)){if(isNaN(t.getTime()))throw bt(ht.INVALID_DATE_ARGUMENT);r=t}else if(ge(t))r=t;else throw bt(ht.INVALID_ARGUMENT);return B(n)?i.key=n:Y(n)&&Object.keys(n).forEach(l=>{hl.includes(l)?a[l]=n[l]:i[l]=n[l]}),B(o)?i.locale=o:Y(o)&&(a=o),Y(s)&&(a=s),[i.key||"",r,i,a]}function da(e,t,n){const o=e;for(const s in n){const i=`${t}__${s}`;o.__datetimeFormatters.has(i)&&o.__datetimeFormatters.delete(i)}}function ua(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:i,localeFallbacker:a}=e,{__numberFormatters:r}=e,[l,c,d,f]=vs(...t),h=J(d.missingWarn)?d.missingWarn:e.missingWarn;J(d.fallbackWarn)?d.fallbackWarn:e.fallbackWarn;const S=!!d.part,F=Qs(e,d),C=a(e,s,F);if(!B(l)||l==="")return new Intl.NumberFormat(F,f).format(c);let P={},b,T=null;const M="number format";for(let x=0;x<C.length&&(b=C[x],P=n[b]||{},T=P[l],!Y(T));x++)Xs(e,l,b,h,M);if(!Y(T)||!B(b))return o?Wo:l;let y=`${b}__${l}`;Oo(f)||(y=`${y}__${JSON.stringify(f)}`);let L=r.get(y);return L||(L=new Intl.NumberFormat(b,ye({},T,f)),r.set(y,L)),S?L.formatToParts(c):L.format(c)}const bl=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function vs(...e){const[t,n,o,s]=e,i=se();let a=se();if(!ge(t))throw bt(ht.INVALID_ARGUMENT);const r=t;return B(n)?i.key=n:Y(n)&&Object.keys(n).forEach(l=>{bl.includes(l)?a[l]=n[l]:i[l]=n[l]}),B(o)?i.locale=o:Y(o)&&(a=o),Y(s)&&(a=s),[i.key||"",r,i,a]}function pa(e,t,n){const o=e;for(const s in n){const i=`${t}__${s}`;o.__numberFormatters.has(i)&&o.__numberFormatters.delete(i)}}const Mp=e=>e,Ap=e=>"",Fp="text",Rp=e=>e.length===0?"":Ks(e),Pp=vu;function ma(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Ep(e){const t=ge(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(ge(e.named.count)||ge(e.named.n))?ge(e.named.count)?e.named.count:ge(e.named.n)?e.named.n:t:t}function Np(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ip(e={}){const t=e.locale,n=Ep(e),o=Z(e.pluralRules)&&B(t)&&de(e.pluralRules[t])?e.pluralRules[t]:ma,s=Z(e.pluralRules)&&B(t)&&de(e.pluralRules[t])?ma:void 0,i=b=>b[o(n,b.length,s)],a=e.list||[],r=b=>a[b],l=e.named||se();ge(e.pluralIndex)&&Np(n,l);const c=b=>l[b];function d(b,T){const M=de(e.messages)?e.messages(b,!!T):Z(e.messages)?e.messages[b]:!1;return M||(e.parent?e.parent.message(b):Ap)}const f=b=>e.modifiers?e.modifiers[b]:Mp,h=Y(e.processor)&&de(e.processor.normalize)?e.processor.normalize:Rp,S=Y(e.processor)&&de(e.processor.interpolate)?e.processor.interpolate:Pp,F=Y(e.processor)&&B(e.processor.type)?e.processor.type:Fp,P={list:r,named:c,plural:i,linked:(b,...T)=>{const[M,y]=T;let L="text",x="";T.length===1?Z(M)?(x=M.modifier||x,L=M.type||L):B(M)&&(x=M||x):T.length===2&&(B(M)&&(x=M||x),B(y)&&(L=y||L));const A=d(b,!0)(P),H=L==="vnode"&&fe(A)&&x?A[0]:A;return x?f(x)(H,L):H},message:d,type:F,interpolate:S,normalize:h,values:ye(se(),a,l)};return P}const fa=()=>"",$e=e=>de(e);function ga(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:i,fallbackLocale:a,messages:r}=e,[l,c]=ws(...t),d=J(c.missingWarn)?c.missingWarn:e.missingWarn,f=J(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=J(c.escapeParameter)?c.escapeParameter:e.escapeParameter,S=!!c.resolvedMessage,F=B(c.default)||J(c.default)?J(c.default)?i?l:()=>l:c.default:n?i?l:()=>l:null,C=n||F!=null&&(B(F)||de(F)),P=Qs(e,c);h&&Lp(c);let[b,T,M]=S?[l,P,r[P]||se()]:vl(e,l,P,a,f,d),y=b,L=l;if(!S&&!(B(y)||it(y)||$e(y))&&C&&(y=F,L=y),!S&&(!(B(y)||it(y)||$e(y))||!B(T)))return s?Wo:l;let x=!1;const A=()=>{x=!0},H=$e(y)?y:wl(e,l,T,y,L,A);if(x)return y;const U=Up(e,T,M,c),q=Ip(U),K=xp(e,H,q);let O=o?o(K,l):K;if(h&&B(O)&&(O=gu(O)),__INTLIFY_PROD_DEVTOOLS__){const Q={timestamp:Date.now(),key:B(l)?l:$e(y)?y.key:"",locale:T||($e(y)?y.locale:""),format:B(y)?y:$e(y)?y.source:"",message:O};Q.meta=ye({},e.__meta,kp()||{}),np(Q)}return O}function Lp(e){fe(e.list)?e.list=e.list.map(t=>B(t)?Qi(t):t):Z(e.named)&&Object.keys(e.named).forEach(t=>{B(e.named[t])&&(e.named[t]=Qi(e.named[t]))})}function vl(e,t,n,o,s,i){const{messages:a,onWarn:r,messageResolver:l,localeFallbacker:c}=e,d=c(e,o,n);let f=se(),h,S=null;const F="translate";for(let C=0;C<d.length&&(h=d[C],f=a[h]||se(),(S=l(f,t))===null&&(S=f[t]),!(B(S)||it(S)||$e(S)));C++)if(!Dp(h,d)){const P=Xs(e,t,h,i,F);P!==t&&(S=P)}return[S,h,f]}function wl(e,t,n,o,s,i){const{messageCompiler:a,warnHtmlMessage:r}=e;if($e(o)){const c=o;return c.locale=c.locale||n,c.key=c.key||t,c}if(a==null){const c=()=>o;return c.locale=n,c.key=t,c}const l=a(o,Op(e,n,s,o,r,i));return l.locale=n,l.key=t,l.source=o,l}function xp(e,t,n){return t(n)}function ws(...e){const[t,n,o]=e,s=se();if(!B(t)&&!ge(t)&&!$e(t)&&!it(t))throw bt(ht.INVALID_ARGUMENT);const i=ge(t)?String(t):($e(t),t);return ge(n)?s.plural=n:B(n)?s.default=n:Y(n)&&!Oo(n)?s.named=n:fe(n)&&(s.list=n),ge(o)?s.plural=o:B(o)?s.default=o:Y(o)&&ye(s,o),[i,s]}function Op(e,t,n,o,s,i){return{locale:t,key:n,warnHtmlMessage:s,onError:a=>{throw i&&i(a),a},onCacheKey:a=>uu(t,n,a)}}function Up(e,t,n,o){const{modifiers:s,pluralRules:i,messageResolver:a,fallbackLocale:r,fallbackWarn:l,missingWarn:c,fallbackContext:d}=e,h={locale:t,modifiers:s,pluralRules:i,messages:(S,F)=>{let C=a(n,S);if(C==null&&(d||F)){const[,,P]=vl(d||e,S,t,r,l,c);C=a(P,S)}if(B(C)||it(C)){let P=!1;const T=wl(e,S,t,C,S,()=>{P=!0});return P?fa:T}else return $e(C)?C:fa}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),ge(o.plural)&&(h.pluralIndex=o.plural),h}Vu();/*!
* vue-i18n v10.0.8
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
*/const Wp="10.0.8";function Bp(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Ht().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Ht().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Ht().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ht().__INTLIFY_PROD_DEVTOOLS__=!1)}const Ne={UNEXPECTED_RETURN_TYPE:sp,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function Le(e,...t){return Uo(e,null,void 0)}const ys=Nt("__translateVNode"),Ts=Nt("__datetimeParts"),ks=Nt("__numberParts"),yl=Nt("__setPluralRules"),Tl=Nt("__injectWithOption"),Cs=Nt("__dispose");function jn(e){if(!Z(e)||it(e))return e;for(const t in e)if(Ye(e,t))if(!t.includes("."))Z(e[t])&&jn(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,i=!1;for(let a=0;a<o;a++){if(n[a]==="__proto__")throw new Error(`unsafe key: ${n[a]}`);if(n[a]in s||(s[n[a]]=se()),!Z(s[n[a]])){i=!0;break}s=s[n[a]]}if(i||(it(s)?cl.includes(n[o])||delete e[t]:(s[n[o]]=e[t],delete e[t])),!it(s)){const a=s[n[o]];Z(a)&&jn(a)}}return e}function Js(e,t){const{messages:n,__i18n:o,messageResolver:s,flatJson:i}=t,a=Y(n)?n:fe(o)?se():{[e]:se()};if(fe(o)&&o.forEach(r=>{if("locale"in r&&"resource"in r){const{locale:l,resource:c}=r;l?(a[l]=a[l]||se(),lo(c,a[l])):lo(c,a)}else B(r)&&lo(JSON.parse(r),a)}),s==null&&i)for(const r in a)Ye(a,r)&&jn(a[r]);return a}function kl(e){return e.type}function Cl(e,t,n){let o=Z(t.messages)?t.messages:se();"__i18nGlobal"in n&&(o=Js(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(i=>{e.mergeLocaleMessage(i,o[i])});{if(Z(t.datetimeFormats)){const i=Object.keys(t.datetimeFormats);i.length&&i.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(Z(t.numberFormats)){const i=Object.keys(t.numberFormats);i.length&&i.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function ha(e){return he(Kn,null,e,0)}const ba="__INTLIFY_META__",va=()=>[],jp=()=>!1;let wa=0;function ya(e){return(t,n,o,s)=>e(n,o,at()||void 0,s)}const Hp=()=>{const e=at();let t=null;return e&&(t=kl(e)[ba])?{[ba]:t}:null};function Zs(e={}){const{__root:t,__injectWithOption:n}=e,o=t===void 0,s=e.flatJson,i=yo?tn:cc;let a=J(e.inheritLocale)?e.inheritLocale:!0;const r=i(t&&a?t.locale.value:B(e.locale)?e.locale:Bn),l=i(t&&a?t.fallbackLocale.value:B(e.fallbackLocale)||fe(e.fallbackLocale)||Y(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:r.value),c=i(Js(r.value,e)),d=i(Y(e.datetimeFormats)?e.datetimeFormats:{[r.value]:{}}),f=i(Y(e.numberFormats)?e.numberFormats:{[r.value]:{}});let h=t?t.missingWarn:J(e.missingWarn)||un(e.missingWarn)?e.missingWarn:!0,S=t?t.fallbackWarn:J(e.fallbackWarn)||un(e.fallbackWarn)?e.fallbackWarn:!0,F=t?t.fallbackRoot:J(e.fallbackRoot)?e.fallbackRoot:!0,C=!!e.fallbackFormat,P=de(e.missing)?e.missing:null,b=de(e.missing)?ya(e.missing):null,T=de(e.postTranslation)?e.postTranslation:null,M=t?t.warnHtmlMessage:J(e.warnHtmlMessage)?e.warnHtmlMessage:!0,y=!!e.escapeParameter;const L=t?t.modifiers:Y(e.modifiers)?e.modifiers:{};let x=e.pluralRules||t&&t.pluralRules,A;A=(()=>{o&&ra(null);const w={version:Wp,locale:r.value,fallbackLocale:l.value,messages:c.value,modifiers:L,pluralRules:x,missing:b===null?void 0:b,missingWarn:h,fallbackWarn:S,fallbackFormat:C,unresolving:!0,postTranslation:T===null?void 0:T,warnHtmlMessage:M,escapeParameter:y,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};w.datetimeFormats=d.value,w.numberFormats=f.value,w.__datetimeFormatters=Y(A)?A.__datetimeFormatters:void 0,w.__numberFormatters=Y(A)?A.__numberFormatters:void 0;const _=Sp(w);return o&&ra(_),_})(),Tn(A,r.value,l.value);function U(){return[r.value,l.value,c.value,d.value,f.value]}const q=Xt({get:()=>r.value,set:w=>{r.value=w,A.locale=r.value}}),K=Xt({get:()=>l.value,set:w=>{l.value=w,A.fallbackLocale=l.value,Tn(A,r.value,w)}}),O=Xt(()=>c.value),Q=Xt(()=>d.value),pe=Xt(()=>f.value);function xe(){return de(T)?T:null}function me(w){T=w,A.postTranslation=w}function ie(){return P}function te(w){w!==null&&(b=ya(w)),P=w,A.missing=b}const Te=(w,_,j,$,z,ce)=>{U();let ue;try{__INTLIFY_PROD_DEVTOOLS__,o||(A.fallbackContext=t?Cp():void 0),ue=w(A)}finally{__INTLIFY_PROD_DEVTOOLS__,o||(A.fallbackContext=void 0)}if(j!=="translate exists"&&ge(ue)&&ue===Wo||j==="translate exists"&&!ue){const[je,Ge]=_();return t&&F?$(t):z(je)}else{if(ce(ue))return ue;throw Le(Ne.UNEXPECTED_RETURN_TYPE)}};function rt(...w){return Te(_=>Reflect.apply(ga,null,[_,...w]),()=>ws(...w),"translate",_=>Reflect.apply(_.t,_,[...w]),_=>_,_=>B(_))}function Be(...w){const[_,j,$]=w;if($&&!Z($))throw Le(Ne.INVALID_ARGUMENT);return rt(_,j,ye({resolvedMessage:!0},$||{}))}function Ie(...w){return Te(_=>Reflect.apply(ca,null,[_,...w]),()=>bs(...w),"datetime format",_=>Reflect.apply(_.d,_,[...w]),()=>ia,_=>B(_))}function Kt(...w){return Te(_=>Reflect.apply(ua,null,[_,...w]),()=>vs(...w),"number format",_=>Reflect.apply(_.n,_,[...w]),()=>ia,_=>B(_))}function gn(w){return w.map(_=>B(_)||ge(_)||J(_)?ha(String(_)):_)}const lt={normalize:gn,interpolate:w=>w,type:"vnode"};function Ct(...w){return Te(_=>{let j;const $=_;try{$.processor=lt,j=Reflect.apply(ga,null,[$,...w])}finally{$.processor=null}return j},()=>ws(...w),"translate",_=>_[ys](...w),_=>[ha(_)],_=>fe(_))}function St(...w){return Te(_=>Reflect.apply(ua,null,[_,...w]),()=>vs(...w),"number format",_=>_[ks](...w),va,_=>B(_)||fe(_))}function Yt(...w){return Te(_=>Reflect.apply(ca,null,[_,...w]),()=>bs(...w),"datetime format",_=>_[Ts](...w),va,_=>B(_)||fe(_))}function ct(w){x=w,A.pluralRules=x}function Qn(w,_){return Te(()=>{if(!w)return!1;const j=B(_)?_:r.value,$=D(j),z=A.messageResolver($,w);return it(z)||$e(z)||B(z)},()=>[w],"translate exists",j=>Reflect.apply(j.te,j,[w,_]),jp,j=>J(j))}function m(w){let _=null;const j=dl(A,l.value,r.value);for(let $=0;$<j.length;$++){const z=c.value[j[$]]||{},ce=A.messageResolver(z,w);if(ce!=null){_=ce;break}}return _}function g(w){const _=m(w);return _??(t?t.tm(w)||{}:{})}function D(w){return c.value[w]||{}}function I(w,_){if(s){const j={[w]:_};for(const $ in j)Ye(j,$)&&jn(j[$]);_=j[w]}c.value[w]=_,A.messages=c.value}function E(w,_){c.value[w]=c.value[w]||{};const j={[w]:_};if(s)for(const $ in j)Ye(j,$)&&jn(j[$]);_=j[w],lo(_,c.value[w]),A.messages=c.value}function N(w){return d.value[w]||{}}function u(w,_){d.value[w]=_,A.datetimeFormats=d.value,da(A,w,_)}function p(w,_){d.value[w]=ye(d.value[w]||{},_),A.datetimeFormats=d.value,da(A,w,_)}function v(w){return f.value[w]||{}}function k(w,_){f.value[w]=_,A.numberFormats=f.value,pa(A,w,_)}function W(w,_){f.value[w]=ye(f.value[w]||{},_),A.numberFormats=f.value,pa(A,w,_)}wa++,t&&yo&&(on(t.locale,w=>{a&&(r.value=w,A.locale=w,Tn(A,r.value,l.value))}),on(t.fallbackLocale,w=>{a&&(l.value=w,A.fallbackLocale=w,Tn(A,r.value,l.value))}));const R={id:wa,locale:q,fallbackLocale:K,get inheritLocale(){return a},set inheritLocale(w){a=w,w&&t&&(r.value=t.locale.value,l.value=t.fallbackLocale.value,Tn(A,r.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:O,get modifiers(){return L},get pluralRules(){return x||{}},get isGlobal(){return o},get missingWarn(){return h},set missingWarn(w){h=w,A.missingWarn=h},get fallbackWarn(){return S},set fallbackWarn(w){S=w,A.fallbackWarn=S},get fallbackRoot(){return F},set fallbackRoot(w){F=w},get fallbackFormat(){return C},set fallbackFormat(w){C=w,A.fallbackFormat=C},get warnHtmlMessage(){return M},set warnHtmlMessage(w){M=w,A.warnHtmlMessage=w},get escapeParameter(){return y},set escapeParameter(w){y=w,A.escapeParameter=w},t:rt,getLocaleMessage:D,setLocaleMessage:I,mergeLocaleMessage:E,getPostTranslationHandler:xe,setPostTranslationHandler:me,getMissingHandler:ie,setMissingHandler:te,[yl]:ct};return R.datetimeFormats=Q,R.numberFormats=pe,R.rt=Be,R.te=Qn,R.tm=g,R.d=Ie,R.n=Kt,R.getDateTimeFormat=N,R.setDateTimeFormat=u,R.mergeDateTimeFormat=p,R.getNumberFormat=v,R.setNumberFormat=k,R.mergeNumberFormat=W,R[Tl]=n,R[ys]=Ct,R[Ts]=Yt,R[ks]=St,R}function Vp(e){const t=B(e.locale)?e.locale:Bn,n=B(e.fallbackLocale)||fe(e.fallbackLocale)||Y(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=de(e.missing)?e.missing:void 0,s=J(e.silentTranslationWarn)||un(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,i=J(e.silentFallbackWarn)||un(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=J(e.fallbackRoot)?e.fallbackRoot:!0,r=!!e.formatFallbackMessages,l=Y(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,d=de(e.postTranslation)?e.postTranslation:void 0,f=B(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,S=J(e.sync)?e.sync:!0;let F=e.messages;if(Y(e.sharedMessages)){const L=e.sharedMessages;F=Object.keys(L).reduce((A,H)=>{const U=A[H]||(A[H]={});return ye(U,L[H]),A},F||{})}const{__i18n:C,__root:P,__injectWithOption:b}=e,T=e.datetimeFormats,M=e.numberFormats,y=e.flatJson;return{locale:t,fallbackLocale:n,messages:F,flatJson:y,datetimeFormats:T,numberFormats:M,missing:o,missingWarn:s,fallbackWarn:i,fallbackRoot:a,fallbackFormat:r,modifiers:l,pluralRules:c,postTranslation:d,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:S,__i18n:C,__root:P,__injectWithOption:b}}function Ss(e={}){const t=Zs(Vp(e)),{__extender:n}=e,o={id:t.id,get locale(){return t.locale.value},set locale(s){t.locale.value=s},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(s){t.fallbackLocale.value=s},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(s){t.setMissingHandler(s)},get silentTranslationWarn(){return J(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(s){t.missingWarn=J(s)?!s:s},get silentFallbackWarn(){return J(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(s){t.fallbackWarn=J(s)?!s:s},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(s){t.fallbackFormat=s},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(s){t.setPostTranslationHandler(s)},get sync(){return t.inheritLocale},set sync(s){t.inheritLocale=s},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){t.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(s){t.escapeParameter=s},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...s){return Reflect.apply(t.t,t,[...s])},rt(...s){return Reflect.apply(t.rt,t,[...s])},tc(...s){const[i,a,r]=s,l={plural:1};let c=null,d=null;if(!B(i))throw Le(Ne.INVALID_ARGUMENT);const f=i;return B(a)?l.locale=a:ge(a)?l.plural=a:fe(a)?c=a:Y(a)&&(d=a),B(r)?l.locale=r:fe(r)?c=r:Y(r)&&(d=r),Reflect.apply(t.t,t,[f,c||d||{},l])},te(s,i){return t.te(s,i)},tm(s){return t.tm(s)},getLocaleMessage(s){return t.getLocaleMessage(s)},setLocaleMessage(s,i){t.setLocaleMessage(s,i)},mergeLocaleMessage(s,i){t.mergeLocaleMessage(s,i)},d(...s){return Reflect.apply(t.d,t,[...s])},getDateTimeFormat(s){return t.getDateTimeFormat(s)},setDateTimeFormat(s,i){t.setDateTimeFormat(s,i)},mergeDateTimeFormat(s,i){t.mergeDateTimeFormat(s,i)},n(...s){return Reflect.apply(t.n,t,[...s])},getNumberFormat(s){return t.getNumberFormat(s)},setNumberFormat(s,i){t.setNumberFormat(s,i)},mergeNumberFormat(s,i){t.mergeNumberFormat(s,i)}};return o.__extender=n,o}function $p(e,t,n){return{beforeCreate(){const o=at();if(!o)throw Le(Ne.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const i=s.i18n;if(s.__i18n&&(i.__i18n=s.__i18n),i.__root=t,this===this.$root)this.$i18n=Ta(e,i);else{i.__injectWithOption=!0,i.__extender=n.__vueI18nExtend,this.$i18n=Ss(i);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Ta(e,s);else{this.$i18n=Ss({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Cl(t,s,s),this.$t=(...i)=>this.$i18n.t(...i),this.$rt=(...i)=>this.$i18n.rt(...i),this.$tc=(...i)=>this.$i18n.tc(...i),this.$te=(i,a)=>this.$i18n.te(i,a),this.$d=(...i)=>this.$i18n.d(...i),this.$n=(...i)=>this.$i18n.n(...i),this.$tm=i=>this.$i18n.tm(i),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=at();if(!o)throw Le(Ne.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Ta(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[yl](t.pluralizationRules||e.pluralizationRules);const n=Js(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const ei={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function qp({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===_e?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},se())}function Sl(){return _e}const Gp=No({name:"i18n-t",props:ye({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>ge(e)||!isNaN(e)}},ei),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||ti({useScope:e.scope,__useComponent:!0});return()=>{const i=Object.keys(n).filter(f=>f!=="_"),a=se();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=B(e.plural)?+e.plural:e.plural);const r=qp(t,i),l=s[ys](e.keypath,r,a),c=ye(se(),o),d=B(e.tag)||Z(e.tag)?e.tag:Sl();return qs(d,c,l)}}}),ka=Gp;function Kp(e){return fe(e)&&!B(e[0])}function _l(e,t,n,o){const{slots:s,attrs:i}=t;return()=>{const a={part:!0};let r=se();e.locale&&(a.locale=e.locale),B(e.format)?a.key=e.format:Z(e.format)&&(B(e.format.key)&&(a.key=e.format.key),r=Object.keys(e.format).reduce((h,S)=>n.includes(S)?ye(se(),h,{[S]:e.format[S]}):h,se()));const l=o(e.value,a,r);let c=[a.key];fe(l)?c=l.map((h,S)=>{const F=s[h.type],C=F?F({[h.type]:h.value,index:S,parts:l}):[h.value];return Kp(C)&&(C[0].key=`${h.type}-${S}`),C}):B(l)&&(c=[l]);const d=ye(se(),i),f=B(e.tag)||Z(e.tag)?e.tag:Sl();return qs(f,d,c)}}const Yp=No({name:"i18n-n",props:ye({value:{type:Number,required:!0},format:{type:[String,Object]}},ei),setup(e,t){const n=e.i18n||ti({useScope:e.scope,__useComponent:!0});return _l(e,t,bl,(...o)=>n[ks](...o))}}),Ca=Yp,zp=No({name:"i18n-d",props:ye({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ei),setup(e,t){const n=e.i18n||ti({useScope:e.scope,__useComponent:!0});return _l(e,t,hl,(...o)=>n[Ts](...o))}}),Sa=zp;function Qp(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function Xp(e){const t=a=>{const{instance:r,value:l}=a;if(!r||!r.$)throw Le(Ne.UNEXPECTED_ERROR);const c=Qp(e,r.$),d=_a(l);return[Reflect.apply(c.t,c,[...Da(d)]),c]};return{created:(a,r)=>{const[l,c]=t(r);yo&&e.global===c&&(a.__i18nWatcher=on(c.locale,()=>{r.instance&&r.instance.$forceUpdate()})),a.__composer=c,a.textContent=l},unmounted:a=>{yo&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:r})=>{if(a.__composer){const l=a.__composer,c=_a(r);a.textContent=Reflect.apply(l.t,l,[...Da(c)])}},getSSRProps:a=>{const[r]=t(a);return{textContent:r}}}}function _a(e){if(B(e))return{path:e};if(Y(e)){if(!("path"in e))throw Le(Ne.REQUIRED_VALUE,"path");return e}else throw Le(Ne.INVALID_VALUE)}function Da(e){const{path:t,locale:n,args:o,choice:s,plural:i}=e,a={},r=o||{};return B(n)&&(a.locale=n),ge(s)&&(a.plural=s),ge(i)&&(a.plural=i),[t,r,a]}function Jp(e,t,...n){const o=Y(n[0])?n[0]:{};(J(o.globalInstall)?o.globalInstall:!0)&&([ka.name,"I18nT"].forEach(i=>e.component(i,ka)),[Ca.name,"I18nN"].forEach(i=>e.component(i,Ca)),[Sa.name,"I18nD"].forEach(i=>e.component(i,Sa))),e.directive("t",Xp(t))}const Zp=Nt("global-vue-i18n");function em(e={},t){const n=__VUE_I18N_LEGACY_API__&&J(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=J(e.globalInjection)?e.globalInjection:!0,s=new Map,[i,a]=tm(e,n),r=Nt("");function l(h){return s.get(h)||null}function c(h,S){s.set(h,S)}function d(h){s.delete(h)}const f={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},async install(h,...S){if(h.__VUE_I18N_SYMBOL__=r,h.provide(h.__VUE_I18N_SYMBOL__,f),Y(S[0])){const P=S[0];f.__composerExtend=P.__composerExtend,f.__vueI18nExtend=P.__vueI18nExtend}let F=null;!n&&o&&(F=cm(h,f.global)),__VUE_I18N_FULL_INSTALL__&&Jp(h,f,...S),__VUE_I18N_LEGACY_API__&&n&&h.mixin($p(a,a.__composer,f));const C=h.unmount;h.unmount=()=>{F&&F(),f.dispose(),C()}},get global(){return a},dispose(){i.stop()},__instances:s,__getInstance:l,__setInstance:c,__deleteInstance:d};return f}function ti(e={}){const t=at();if(t==null)throw Le(Ne.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Le(Ne.NOT_INSTALLED);const n=nm(t),o=sm(n),s=kl(t),i=om(e,s);if(i==="global")return Cl(o,e,s),o;if(i==="parent"){let l=im(n,t,e.__useComponent);return l==null&&(l=o),l}const a=n;let r=a.__getInstance(t);if(r==null){const l=ye({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),r=Zs(l),a.__composerExtend&&(r[Cs]=a.__composerExtend(r)),rm(a,t,r),a.__setInstance(t,r)}return r}function tm(e,t,n){const o=jl(),s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>Ss(e)):o.run(()=>Zs(e));if(s==null)throw Le(Ne.UNEXPECTED_ERROR);return[o,s]}function nm(e){const t=An(e.isCE?Zp:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Le(e.isCE?Ne.NOT_INSTALLED_WITH_PROVIDE:Ne.UNEXPECTED_ERROR);return t}function om(e,t){return Oo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function sm(e){return e.mode==="composition"?e.global:e.global.__composer}function im(e,t,n=!1){let o=null;const s=t.root;let i=am(t,n);for(;i!=null;){const a=e;if(e.mode==="composition")o=a.__getInstance(i);else if(__VUE_I18N_LEGACY_API__){const r=a.__getInstance(i);r!=null&&(o=r.__composer,n&&o&&!o[Tl]&&(o=null))}if(o!=null||s===i)break;i=i.parent}return o}function am(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function rm(e,t,n){Ws(()=>{},t),Bs(()=>{const o=n;e.__deleteInstance(t);const s=o[Cs];s&&(s(),delete o[Cs])},t)}const lm=["locale","fallbackLocale","availableLocales"],Ma=["t","rt","d","n","tm","te"];function cm(e,t){const n=Object.create(null);return lm.forEach(s=>{const i=Object.getOwnPropertyDescriptor(t,s);if(!i)throw Le(Ne.UNEXPECTED_ERROR);const a=be(i.value)?{get(){return i.value.value},set(r){i.value.value=r}}:{get(){return i.get&&i.get()}};Object.defineProperty(n,s,a)}),e.config.globalProperties.$i18n=n,Ma.forEach(s=>{const i=Object.getOwnPropertyDescriptor(t,s);if(!i||!i.value)throw Le(Ne.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,i)}),()=>{delete e.config.globalProperties.$i18n,Ma.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}Bp();vp(Zu);wp(gp);yp(dl);if(__INTLIFY_PROD_DEVTOOLS__){const e=Ht();e.__INTLIFY__=!0,ep(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const dm={ok:"确定",confirm:"确认",cancel:"取消",close:"关闭",save:"保存",delete:"删除",copy:"复制",copied:"已复制",copyFailed:"复制失败",download:"下载",downloadFailed:"下载失败",retry:"重试",retryLater:"请稍后重试",loading:"加载中...",loadFailed:"加载失败",success:"成功",failed:"失败",unknownError:"未知错误",running:"运行中",notRunning:"未运行",refreshing:"刷新中...",saving:"保存中...",noData:"暂无数据",newConversation:"新对话",moreActions:"更多操作",tool:"工具",versioning:"版本管理",unset:"未设置",settings:"设置",back:"返回",settingsLanguage:"界面语言",settingsLanguageDesc:"选择界面显示语言",justNow:"刚刚",secondsAgo:"{n}秒前",minutesAgo:"{n}分钟前",hoursAgo:"{n}小时前",daysAgo:"{n}天前",timeDate:"{month}月{day}日 {hour}:{minute}"},um={closePersonalSpaceAriaLabel:"关闭个人空间",tabAriaLabel:"个人空间分组切换",loadingPersonalization:"正在加载个性化配置...",tabGeneral:"常规",tabPreferences:"个性化",tabModel:"模型与思考",tabAppearance:"外观与显示",tabWorkspace:"工作区与权限",tabContext:"上下文",tabTools:"工具与 Skills",tabFiles:"文件与图片",tabVoice:"语音模型",tabSubAgents:"子智能体",tabReviewAgents:"审核智能体",tabAdmin:"管理员",autoTitleTitle:"自动生成对话标题",autoTitleDesc:"默认开启;关闭后标题将沿用首条消息",tutorialTitle:"新手教程",tutorialDesc:"通过高亮与说明窗了解主要功能入口和常用设置",tutorialButton:"开始教程",appUpdateTitle:"软件更新",appUpdateDesc:"当前版本:{version} · {checked}",appCheckUpdate:"检查更新",appChecking:"检查中...",appVersionUnknown:"未知",appUpdateNotChecked:"未检查",appUpdateFound:"发现新版本",appUpdateLatest:"已是最新",appUpdateNeverChecked:"尚未检查更新",appUpdateJustChecked:"刚刚检查过",appUpdateCheckedAt:"最近检查:{time}",appUpdateFailed:"检查更新失败",appUpdateNoUrl:"未拿到下载地址",logoutTitle:"退出登录",logoutDesc:"结束当前账号会话",preferencesTitle:"启用个性化提示",preferencesDesc:"开启后才会注入您的偏好",selfIdentifyTitle:"AI 智能体自称",selfIdentifyPlaceholder:"如小秘、助理小A",userNameTitle:"用户称呼",userNamePlaceholder:"如Jojo、老师",professionTitle:"职业",professionPlaceholder:"如:产品经理、设计师",toneTitle:"交流语气",tonePlaceholder:"请选择或输入语气",considerationsTitle:"回答时必须考虑的信息",considerationsDesc:"每次回答前都会参考这些背景信息",considerationsPlaceholder:"例如用户家有一只泰迪犬棕色公狗2014年开始养的...",hideBlockBordersTitle:"隐藏块间边线",hideBlockBordersDesc:"去掉堆叠块之间的分割线,更简洁",minimalExpandHeightTitle:"限制展开高度",minimalExpandHeightDesc:"极简模式展开摘要行时限制最大高度,超出可在内部滚动",communicationStyleTitle:"智能体交流风格",communicationStyleDesc:"智能体和您交流时使用何种形式",communicationDefault:"默认",communicationDefaultDesc:"标准 AI 风格",communicationHumanLike:"拟人",communicationHumanLikeDesc:"像聊天一样模仿人类语言风格",communicationAuto:"自动",communicationAutoDesc:"聊天时自然,复杂问题正常结构化回答",conversationContinuityTitle:"对话连续性",conversationContinuityDesc:"控制智能体延续历史对话和记忆的程度",continuityHigh:"高",continuityHighDesc:"更积极延续历史、记忆与项目背景",continuityMedium:"中",continuityMediumDesc:"当前对话优先,必要时参考历史",continuityLow:"低",continuityLowDesc:"当前对话尽量独立,少主动翻历史",defaultModelTitle:"默认模型",defaultModelDesc:"为新对话/登录后首次请求选择首选模型",modelDisabled:"已被管理员禁用",defaultThinkingModeTitle:"默认思考模式",defaultThinkingModeDesc:"登录或新建任务时的初始思考模式",reasoningEffortTitle:"默认推理强度",reasoningEffortDesc:"思考模式下请求模型时附带的推理强度参数",runModeFast:"快速模式",runModeFastDesc:"追求响应速度,跳过思考模型",runModeThinking:"思考模式",runModeThinkingDesc:"整轮对话都使用思考模型",effortDefault:"默认",effortDefaultDesc:"不指定强度,使用 API 默认行为",effortLow:"low",effortLowDesc:"最低推理,响应最快",effortMedium:"medium",effortMediumDesc:"较低推理",effortHigh:"high",effortHighDesc:"均衡推理",effortXhigh:"xhigh",effortXhighDesc:"更高推理",effortMax:"max",effortMaxDesc:"最高推理,适合最复杂任务",badgeTextOnly:"图文",badgeThinking:"思考",themeTitle:"主题切换",themeDesc:"在经典、明亮和夜间之间切换",groupByWorkspaceTitle:"按项目分组对话",groupByWorkspaceDesc:"侧边栏对话记录按工作区/项目折叠展示",newChatBlankTitle:"新建对话跳转空白页",newChatBlankDesc:"开启后点击「新建对话」跳转新对话页,发送首条消息时才创建;关闭则立即创建空对话",useCustomNamesTitle:"使用自定义称呼",useCustomNamesDesc:"对话区域使用个性化设置中的自称和称呼",enhancedToolDisplayTitle:"增强工具显示",enhancedToolDisplayDesc:"工具块显示格式化内容,关闭则显示原始 JSON",showStatusAvatarTitle:"显示助手状态形象",showStatusAvatarDesc:"在欢迎页和对话末尾显示空闲、思考、工具调用等状态动画",showGitStatusBarTitle:"显示 Git 状态栏",showGitStatusBarDesc:"工作区存在 Git 仓库时,在输入栏上方显示分支和变更统计",autoOpenTerminalTitle:"自动打开终端面板",autoOpenTerminalDesc:"创建终端时自动打开侧边栏终端面板",quickDockAutoExpandTitle:"快捷窗口自动展开",quickDockAutoExpandDesc:"有内容时自动展开快捷窗口;关闭后只能通过右侧按钮手动展开",editSummaryLiveTitle:"编辑摘要实时显示",editSummaryLiveDesc:"工作运行期间实时显示本次编辑过的文件;关闭时仅在每次工作完成后显示",filePreviewWrapTitle:"预览窗口自动换行显示",filePreviewWrapDesc:"文件预览按面板宽度自动换行;关闭时长行横向滚动",blockDisplayModeTitle:"堆叠块显示模式",blockDisplayModeDesc:"选择思考/工具块的显示方式",blockDisplayTraditional:"传统列表",blockDisplayTraditionalDesc:"按时间顺序垂直排列,经典样式",blockDisplayStacked:"堆叠动画",blockDisplayStackedDesc:'超过 6 条自动收纳为"更多",动态展示',blockDisplayMinimal:"极简模式",blockDisplayMinimalDesc:"摘要行 + 无缝展开,流式输出效果",badgeRecommended:"推荐",badgeNew:"新",compactMessageTitle:"简略消息显示",compactMessageDesc:"审核、子智能体等紧凑系统消息的显示形式",compactMessageFull:"完整信息",compactMessageFullDesc:"审核、子智能体等系统消息显示完整原始内容",compactMessageBrief:"简略信息",compactMessageBriefDesc:"用一行横线概要替代系统消息",themeClassic:"经典",themeClassicDesc:"米色质感,柔和高对比",themeLight:"明亮",themeLightDesc:"纯白底色 + 优雅灰,简洁清爽",themeDark:"夜间",themeDarkDesc:"深灰 + 黑,低亮度并保持彩色点缀",localeZhCN:"简体中文",localeChineseDesc:"Chinese (Simplified)",localeEnglish:"English",localeEnglishDesc:"English (US)",defaultPermissionTitle:"默认权限",defaultPermissionDesc:"新建对话时的默认权限模式",permissionReadonly:"只读",permissionReadonlyDesc:"仅允许读取/检索类工具,修改操作将被拒绝",permissionApproval:"批准",permissionApprovalDesc:"对工作区文件进行修改的工具需人工批准后执行",permissionAutoApproval:"自动审核",permissionAutoApprovalDesc:"工作区内写入直通;高风险操作由后台审核智能体自动审批",permissionUnrestricted:"无限制",permissionUnrestrictedDesc:"工具按常规流程直接执行",defaultWorkModeTitle:"默认工作模式",workRunModeDesc:"新建对话时的默认工作模式;计划模式下权限锁定为只读",workModePlan:"计划",workModePlanDesc:"只制定计划,批准后执行",workModeAsk:"询问",workModeAskDesc:"先讨论确认,再开工",workModeExecute:"执行",workModeExecuteDesc:"自行补全细节,直接开工",agentsMdInjectTitle:"AGENTS.md 自动注入",agentsMdInjectDesc:"工作区根目录存在 AGENTS.md 时自动注入系统提示词",claudeMdInjectTitle:"CLAUDE.md 自动注入",claudeMdInjectDesc:"工作区根目录存在 CLAUDE.md 时自动注入系统提示词(默认关闭,与 AGENTS.md 并列注入)",agentsSkillsScanTitle:"扫描 .agents/skills/ 技能目录",agentsSkillsScanDesc:"自动扫描工作区 .agents/skills/ 下的行业通用技能Agent Skills 开放标准路径),与 .astrion/skills/ 技能一并列出;同名重复时 read_skill 会报错并提示按具体路径读取",modifyHistoryTitle:"文件修改留痕",modifyHistoryDesc:"每次任务完成后,把本轮 write/edit 的文件修改以 diff 形式保存到工作区 .astrion/modify_history/,误操作(如被 git checkout 覆盖)后可据此人工恢复",versionControlDivider:"版本控制",versioningByDefaultTitle:"新对话默认开启版本控制",versioningByDefaultDesc:"创建新对话时自动启用,可在输入栏下方手动关闭",backupModeTitle:"文件备份方式",backupModeDesc:"浅备份只记录 AI 编辑的文件,完全备份会保存整个工作区快照",shallowBackup:"浅备份",shallowBackupDesc:"速度快,只回溯被编辑过的文件",fullBackup:"完全备份",fullBackupDesc:"完整工作区快照,首次创建可能较慢",goalModeDivider:"目标模式",goalReviewActiveTitle:"审核智能体主动取证",goalReviewActiveDesc:"开启后可运行只读命令核实目标,关闭则仅依据对话判断",goalMaxTurnsTitle:"最大自动续命轮数",goalMaxTurnsDesc:"主模型停下后最多自动继续 1-100 轮",goalTokenLimitTitle:"启用累计 token 上限",goalTokenLimitDesc:"累计输入输出超过上限时停止目标模式",goalTokenLimitValueTitle:"累计 token 上限",goalTokenLimitValueDesc:"达到该累计消耗即停止目标模式",recentConversationsTitle:"最近对话提示",recentConversationsDesc:"把当前工作区最近若干个非空对话注入系统提示词",recentConversationsCountTitle:"最近对话注入数量",restoreDefault:"恢复默认",maxMemoryInjectTitle:"最大记忆注入",noLimitPlaceholder:"无上限",compressionStrategyTitle:"上下文压缩策略",compressionStrategyDesc:"可分别控制自动浅层压缩与自动深层压缩",autoShallowCompressTitle:"自动浅层压缩",autoDeepCompressTitle:"自动深层压缩",shallowTriggerTokens:"浅压缩触发上下文",shallowKeepRecentTools:"浅压缩保留最近工具数",shallowKeepTurnTools:"浅压缩保留当前轮工具数",shallowMaxReplace:"每轮最大替换数量",shallowToolInterval:"工具调用间隔触发",deepTriggerTokens:"深压缩触发上下文",deepCompressInjectTitle:"深压缩直接注入",deepCompressInjectDesc:"开启后直接注入历次压缩全文,关闭则只提示文件位置",restoreCompressionDefaults:"恢复压缩默认值",silentToolDisableTitle:"静默禁用工具",silentToolDisableDesc:"禁用工具时不再注入提示消息,模型不会感知被禁用项",hideToolApprovalTitle:"隐藏工具审核面板",hideToolApprovalDesc:"自动审核模式下,后台审核工具时不再自动展开审核面板",toolIntentTitle:"工具意图提示",toolIntentDesc:"调用工具时先用简短文字告诉你要做什么",skillHintsTitle:"Skill 提示系统",skillHintsDesc:"检测到特定关键词时自动提示模型阅读相关 skill",strictSkillTitle:"强约束系统",strictSkillDesc:"仅对个人空间中已启用的 skill 生效",terminalToolsTitle:"Terminal 系列工具",subAgentToolsTitle:"子智能体系列工具",runCommandFgTitle:"run_command 前台模式",runCommandBgTitle:"run_command 后台模式",availableSkillsTitle:"可用 Skills",availableSkillsDesc:"勾选后会注入 system prompt并同步到工作区的 .astrion/skills/ 目录",disabledToolCategoriesTitle:"默认禁用工具类别",disabledToolCategoriesDesc:"选择后,这些类别在新任务中保持关闭",imageCompressionTitle:"图片压缩",imageCompressionDesc:"发送图片或调用 view_image 时自动等比缩放",imageOriginal:"原图",imageOriginalDesc:"不压缩",image1080p:"1080p",image1080pDesc:"最长边不超过 1080p 等比缩放",image720p:"720p",image720pDesc:"最长边不超过 720p 等比缩放",image540p:"540p",image540pDesc:"最长边不超过 540p 等比缩放",usageEyebrow:"对话用量",usageTitle:"用量统计",usageDesc:"累计统计所有对话的输入/输出 Token、对话数量、用户消息与工具调用",usageInputLabel:"累计输入",usageOutputLabel:"累计输出",usageConversationsLabel:"总对话数",usageMessagesLabel:"用户消息数",usageToolsLabel:"工具调用次数",usageSyncing:"正在同步最新统计...",usageUpdated:"最近更新:{time}",usageRefreshing:"刷新中...",usageRefresh:"刷新数据",usageNeverRefreshed:"尚未刷新",usageUnknownTime:"时间未知",usageFetchFailed:"获取用量统计失败",voiceModelIntro:"端侧语音识别模型SenseVoice int8支持中英混说 + 自动标点。 模型约 228MB仅在手机本地运行无需网络。",voiceModelTitle:"语音识别模型",voiceModelReady:"已下载 (228MB)",voiceModelDownloading:"下载中 {percent}% — {msg}",voiceModelPartial:"下载不完整,请重新下载",voiceModelNotDownloaded:"未下载 — 点击下载",voiceDownloadingBtn:"下载中...",voiceRedownload:"重新下载",voiceDownloadModel:"下载模型",voiceAppOnlyAlert:"仅在 App 内支持下载语音模型",voicePreparing:"准备下载...",subAgentsIntro:"管理多智能体模式下的子智能体角色。预设角色可编辑(创建自定义覆盖),自定义角色可创建/编辑/删除。",compressThresholdTitle:"上下文压缩阈值",compressThresholdDesc:"子智能体上下文 tokens 超过此值时触发深度压缩(默认 150000",maxTurnsTitle:"最大执行轮次",maxTurnsDesc:"传统后台子智能体单次任务的最大执行轮次(一轮 = 一次模型调用)。留空默认 50 轮;填 0 表示无上限(慎用,失控任务会持续消耗 API 额度)。多智能体模式的团队成员是长期协作角色,不受此限制",saving:"保存中...",roleListTitle:"角色列表",newRole:"+ 新建角色",noRoles:"暂无角色",customTag:"自定义",presetTag:"预设",noDescription:"无描述",roleMetaId:"ID: {id} · 思考模式: {mode}",roleMetaModel:" · 模型: {model}",edit:"编辑",roleEditorEditTitle:"编辑角色",roleEditorCreateTitle:"新建角色",roleIdTitle:"角色 ID",roleIdPlaceholder:"英文小写下划线,如 api-designer",roleNameTitle:"显示名",roleNamePlaceholder:"如 API Designer",roleDescTitle:"描述",roleDescPlaceholder:"一句话描述职责",thinkingModeTitle:"思考模式",roleThinkingDesc:"fast = 快速响应thinking = 思考推理",fastResponseMode:"快速响应模式",thinkingReasoningMode:"思考推理模式",modelTitle:"模型",roleModelEmptyDesc:"留空则使用默认模型",defaultModelOption:"默认模型",roleDefaultModelDesc:"使用配置文件中的 default_model",textOnly:"纯文本",promptBodyTitle:"Prompt BodyMarkdown",promptBodyPlaceholder:"角色的自定义 prompt body...",deleteRoleConfirm:"确认删除角色「{name}」?",reviewIntro:"统一配置三个审核智能体的模型与运行参数。模型与子智能体共用模型库,留空则使用模型库默认模型。",reviewAgentAutoApproval:"自动审批智能体",reviewAgentAutoApprovalDesc:"自动审批模式下判断工具调用是否越权/危险",reviewAgentGoalReview:"目标审核智能体",reviewAgentGoalReviewDesc:"目标模式下判断长期目标是否真正达成",reviewAgentWorkflowReview:"工作流审核智能体",reviewAgentWorkflowReviewDesc:"工作流审核节点判断阶段产出是否达标",reviewModelEmptyDesc:"留空则使用模型库默认模型",reviewDefaultModelDesc:"使用模型库的 default_model",titleModelTitle:"标题生成模型",titleModelDesc:"选择用于生成对话标题的 AI 模型,与子智能体共用模型库",titleDefaultModelDesc:"使用子智能体模型库的默认模型",reviewThinkingDesc:"模型不支持思考时自动回落快速模式",timeoutTitle:"审核请求超时",timeoutDesc:"单次模型请求超时5-3600 秒)",maxRoundsTitle:"最大审核轮次",maxRoundsDesc:"超过该轮次未产出结论时按兜底处理1-50 轮)",commandTimeoutTitle:"取证命令超时",commandTimeoutDesc:"只读取证命令的单次超时1-600 秒)",mcpConfigTitle:"MCP 服务器管理",mcpConfigDesc:"统一配置 MCP Server集中管理工具扩展能力",adminMonitorTitle:"管理员监控入口",adminMonitorDesc:"展示配额趋势、容器运行、项目存储与上传安全",apiAdminTitle:"API 管理",apiAdminDesc:"管理 API 调用与账户",customToolsAdminTitle:"自定义工具管理",customToolsAdminDesc:"在线创建/编辑自定义工具文件",open:"打开",modelDisabledTitle:"模型被禁用",modelDisabledMessage:"已被管理员禁用,无法选择",modelModeConflictTitle:"模型/思考模式不兼容",modelThinkingOnlyWarning:"{label} 仅支持思考模式,已保持原设置。",modelFastOnlyWarning:"{label} 仅支持快速模式,已保持原设置。",expTitle:"第一次使用?选择适合您的模式",expSubtitle:"速度、联网与工具范围各不相同,随时可在个人空间切换",expConfirmStart:"确认并开始",expModeFastBadge:"极速",expModeFastTitle:"快速回答",expModeFastDesc:"快速回答您的问题,会上网搜索,不会写文件",expModeThinkingBadge:"思考",expModeThinkingTitle:"思考后再答",expModeThinkingDesc:"经过思考后完成任务,会上网搜索,不会写文件,回复时间较长",expModeResearchBadge:"研究",expModeResearchTitle:"多步骤研究",expModeResearchDesc:"多步骤思考与 20+ 工具完成复杂任务,回复时间可能很长",expModeExpertBadge:"专家",expModeExpertTitle:"全功能探索",expModeExpertDesc:"自由探索所有配置选项,适合智能体专家与从业者"},pm={status:{successMark:"✓ 成功",failedMark:"✗ 失败",completed:"✓ 完成",saved:"✓ 已保存",created:"✓ 已创建",written:"✓ 已写入",edited:"✓ 已编辑",deleted:"✓ 已删除",renamed:"✓ 已重命名",read:"✓ 已读取",updated:"✓ 已更新",archived:"✓ 已归档",answered:"✓ 已回答",replied:"✓ 已回复",sent:"✓ 已发送",closed:"✓ 已关闭",triggered:"✓ 已触发",returned:"✓ 已返回",generated:"✓ 已生成",overwrittenUpdated:"✓ 已覆盖更新",rejected:"✗ 已拒绝",cancelled:"✗ 已取消",createFailed:"✗ 创建失败",closeFailed:"✗ 关闭失败",sendFailed:"✗ 发送失败",replyFailed:"✗ 回复失败",awaitingUserAnswer:"等待回答",awaitingApproval:"待审批",awaitingApprovalDots:"等待审批...",done:"已完成",notFound:"不存在",terminated:"已终止",waiting:"等待中"},labels:{tool:"工具:",status:"状态:",path:"路径:",error:"错误:",query:"搜索内容:",topic:"主题:",timeRange:"时间范围:",domains:"限定网站:",resultCount:"结果数量:",savePath:"保存路径:",url:"URL",mode:"模式:",size:"大小:",searchKeyword:"搜索关键词:",matchCount:"匹配数量:",found:"找到:",replaced:"替换:",replacementGroups:"替换组数:",segmentCount:"提取片段数:",operation:"操作:",terminalName:"终端名:",command:"指令:",waitTime:"等待时间:",timeout:"超时时间:",lineRange:"行范围:",reason:"原因:",waitSubAgent:"等待子智能体:",taskId:"任务 ID",backgroundCommandId:"后台命令 ID",exitCode:"退出码:",keywords:"关键词:",description:"描述:",memory:"记忆:",memoryContent:"记忆内容:",dateRange:"日期范围:",scope:"范围:",id:"ID",firstUserMessage:"首条用户消息:",updatedAt:"更新时间:",conversationId:"对话 ID",title:"标题:",reviewFile:"回顾文件:",charCount:"字符数:",skill:"Skill",workflow:"工作流:",workflowCount:"工作流数量:",source:"来源:",nodeCount:"节点:",sourceDir:"源目录:",nodeCountTotal:"节点数:",updatedField:"修改项:",updatedValue:"修改后:",validation:"校验:",question:"问题:",context:"说明:",providedOptions:"提供的选项:",userAnswer:"用户回答:",subAgent:"子智能体:",subAgentId:"子智能体 ID",deliverablesDir:"交付目录:",task:"任务:",workTime:"工作时间:",questionId:"问题 ID",roleId:"角色 ID",roleName:"角色名:",roleCount:"角色数量:",thinkingMode:"思考模式:",custom:"自定义:",activeCount:"活跃数量:",lastOutput:"最近输出:",type:"类型:",analysis:"分析结果:",ocrText:"识别文本:",output:"输出:",fetchedContent:"获取的内容:",result:"结果:",subAgentOutput:"子智能体输出:",backgroundCommandOutput:"后台命令输出:",reviewContent:"回顾内容:",rename:"重命名:",waitedSubAgents:"已等待 {n} 个子智能体:"},sectionLabels:{executionStats:"执行统计",finalReply:"最终回复",replyContent:"回复内容"},fields:{path:"路径",filePath:"路径",agentId:"子智能体 ID",targetAgentId:"目标子智能体 ID",displayName:"子智能体",targetDisplayName:"目标子智能体",question:"问题",roleId:"角色 ID",url:"URL"},personalization:{fieldLabels:{selfIdentify:"AI 自称",userName:"用户称呼",profession:"用户职业",tone:"交流语气",considerations:"注意事项",theme:"主题",communicationStyle:"交流风格",conversationContinuity:"对话连续性",enabled:"个性化开关"},values:{enabled:"开启",disabled:"关闭",styleDefault:"default标准 AI 风格)",styleHumanLike:"human_like拟人聊天风格",styleAuto:"auto自动",independenceLow:"low",independenceMedium:"medium",independenceHigh:"high"},actionUpdate:"更新配置",actionRead:"读取配置"},duration:{zero:"0 秒",seconds:"{seconds} 秒",minutesSeconds:"{minutes} 分 {seconds} 秒",minutes:"{minutes} 分",hours:"{hours} 小时",hoursMinutesSeconds:"{hours} 小时 {minutes} 分 {seconds} 秒",runtimeNote:"运行 {n} 秒"},counts:{foundValue:"{n}处",replacedValue:"{n}处",memoryHits:"命中记忆:{n} 条",apiCalls:"调用次数:{n} 次",toolCalls:"工具次数:{n} 次",conversationScale:"规模:{n} 条消息,{m} 个工具",statApiCalls:"调用 {n} 次",statFilesRead:"阅读 {n} 次",statEditFiles:"编辑 {n} 次",statSearches:"搜索 {n} 次",statWebPages:"网页 {n} 个",statCommands:"命令 {n} 个"},sentences:{emptyResult:"工具执行完成,无额外可展示内容。",mcpDone:"{name} 执行完成",hinted:"可能需要 {name}...",preparing:"准备调用 {name}...",noOutput:"[无输出]",tooLongSaved:"内容太长,已保存到文件,请分段或查找阅读。",queryFailed:"查询失败",noWorkflows:"当前没有可用工作流。",noSubAgentStatus:"未返回子智能体状态。",noRoles:"当前没有可用角色。",noActiveSubAgents:"当前会话没有活跃子智能体。",noMatchesMemory:"未找到匹配的项目记忆。",noMatchesConversation:"未找到匹配对话。",noSearchResults:"未返回详细的搜索结果。",noMatches:"未找到匹配内容",noExtractedContent:"未提取到内容",overwrittenVersion:"覆盖已有版本",userCopyShadow:"用户副本(遮蔽同名内置)",conversationScope:"当前工作区历史对话(已排除当前对话)",memoryAdd:"新增记忆",memoryUpdate:"更新记忆",memoryDelete:"删除记忆",subAgentResultName:"子智能体 #{agentId}",subAgentResultMeta:"(任务 {taskId})· {status} · {outcome}",searchQuote:"「{text}」",readSearch:"搜索{query},得到{count}个结果",readExtract:"提取了{n}行"},values:{none:"无",append:"追加",overwrite:"覆盖",deleted:"已删除",unlimited:"不限",notSpecified:"(未指定)",noTitle:"无标题",unnamed:"未命名",unnamedConversation:"未命名对话",noDescription:"(无描述)",noLink:"无可用链接",builtin:"内置",user:"用户",yes:"是",no:"否",unknown:"未知",colon:"",optionLabel:"选项 {n}",line:"行 {line}"},search:{topicGeneral:"通用",topicNews:"新闻",topicFinance:"金融",timeLast24h:"过去24小时",timeLast7d:"过去7天",timeLast30d:"过去30天",timeLast365d:"过去365天",timeUnlimited:"未限定时间",timeRelative:"相对范围:{range}",timeLastDays:"过去{n}天",timeRangeTo:"{start} 至 {end}",domainsUnlimited:"未限定网站"},media:{ocrImgAlt:"OCR图片",viewImgAlt:"查看图片",viewImgTitle:"在新窗口查看原图"},mcpTool:"MCP 工具",runningStatus:{createFile:"正在创建文件...",sleep:"正在等待...",deleteFile:"正在删除文件...",renameFile:"正在重命名文件...",writeFile:"正在写入文件...",editFile:"正在编辑文件...",createFolder:"正在创建文件夹...",webSearch:"正在搜索网络...",extractWebpage:"正在提取网页...",saveWebpage:"正在保存网页...",runCommand:"调用 run_command",updateMemory:"正在更新记忆...",recallProjectMemory:"正在回顾项目记忆...",searchProjectMemory:"正在检索项目记忆...",updateProjectMemory:"正在更新项目记忆...",terminalSession:"正在管理终端会话...",terminalInput:"调用 terminal_input",terminalSnapshot:"正在获取终端快照...",readSkill:"正在读取技能...",createSkill:"正在归档技能...",askUser:"等待用户回答...",readFile:"正在读取文件...",readSearch:"正在执行搜索...",readExtract:"正在提取内容...",fallback:"调用工具中"},completedStatus:{createFile:"文件创建成功",deleteFile:"文件删除成功",sleep:"等待完成",renameFile:"文件重命名成功",writeFile:"文件写入完成",editFile:"文件编辑完成",createFolder:"文件夹创建成功",webSearch:"搜索完成",extractWebpage:"网页提取完成",saveWebpage:"网页保存完成(纯文本)",vlmAnalyze:"图片解析完成",runCommand:"命令执行完成",updateMemory:"记忆更新成功",recallProjectMemory:"项目记忆已读取",searchProjectMemory:"项目记忆检索完成",updateProjectMemory:"项目记忆已更新",terminalSession:"终端操作完成",terminalInput:"终端输入完成",terminalSnapshot:"终端快照已返回",readSkill:"技能读取完成",createSkill:"技能归档完成",askUser:"用户已回答",readFile:"文件读取完成",fallback:"执行完成"}},mm={guide:"引导",openInFileManager:"在文件管理器中打开",copyPath:"复制地址",copyBranchName:"复制分支名称",goalModeRunning:"目标模式运行中",goalModeReady:"目标模式就绪",waitingForQuestion:"等待回答问题",planApprovalPending:"有待批准的计划",subAgentsRunning:"{n} 个子智能体运行中",terminalsRunning:"{n} 个终端",quickMenuAriaLabel:"快捷菜单",workModeLockedTitle:"对话运行中,运行模式只能在空闲时切换",workModeTitle:"运行模式",versionControl:"版本控制",permissionLockedByPlanTitle:"计划模式下权限与执行环境已锁定,网络权限仍可调整",executionLockedRestrictedTitle:"只读/批准/自动审核模式下执行环境已锁定为沙箱",permissionGroup:"权限",planModeLocked:"计划模式锁定",executionEnv:"执行环境",restrictedModeLocked:"受限模式锁定",networkPermission:"网络权限",usedPercent:"{n} 已用",pokeStop:"不要!",pokeHalt:"停下来!",pokeDontPoke:"别戳啦!",pokeOops:"哎呀!",pokeYouPokedMe:"你戳到我了!",pokeGentle:"轻一点嘛!",pokeNotButton:"我不是按钮!",pokeNoClicking:"不许乱点!",pokeWhimper:"呜……别戳我了……",pokeHexagonHurt:"六边形也是会痛的!",pokeDeform:"再戳我要变形了!",pokeNervous:"我会紧张的……",pokePretendCalm:"正在假装镇定……",pokeTokensFell:"Token 掉了一地!",pokeContextMessy:"上下文被你戳乱了!",pokeAntiPokeFailed:"防戳模式启动失败",pokeSystemHint:"系统提示AI 被戳了一下",pokeWarning:"警告:检测到手欠行为",pokeRemembered:"我记住你了!",pokePokeBack:"戳回去!",newConversationDesc:"开始一个新的对话new / clear",uploadFile:"上传文件",uploadingDesc:"上传中...",selectFileDesc:"选择本地文件上传",sendImage:"发送图片",sendImageDesc:"选择图片并附加到消息",imageNotSupported:"当前模型不支持图片",sendVideo:"发送视频",sendVideoDesc:"选择视频并附加到消息",videoNotSupported:"当前模型不支持视频",compressConversation:"压缩对话",compressingDesc:"压缩中...",compressDesc:"手动压缩当前对话上下文",selectAgentSkill:"选择 AgentSkill",selectAgentSkillDesc:"插入一个 AgentSkill 引用(// 快捷直达)",workflows:"工作流",workflowRunningDesc:"进行中:{name} · 查看或退出",workflowActivateDesc:"激活一个工作流,让智能体按流程推进",conversationType:"对话类型",conversationTypeDesc:"agent / multi-agent · 智能体 / 多智能体(仅新对话可切换)",switchWorkMode:"切换工作模式",switchWorkModeDesc:"plan / ask / execute · 计划 / 询问 / 执行",switchTheme:"切换主题",switchThemeDesc:"经典 / 明亮 / 夜间",conversationReview:"对话回顾",conversationReviewDesc:"打开当前对话回顾",usageStats:"用量统计",usageStatsDesc:"打开上下文与 token 用量面板",goalMode:"目标模式",goalModeArmed:"目标模式已就绪",goalModeToggleDesc:"切换目标模式",personalSettings:"个人设置",personalSettingsDesc:"打开个人空间设置",realtimeTerminal:"实时终端",realtimeTerminalDesc:"打开实时终端面板",switchModel:"切换模型",switchModelDesc:"选择对话使用的模型",thinkingMode:"思考模式",thinkingModeDesc:"切换 fast / thinking",permissionMode:"权限模式",permissionModeDesc:"切换 readonly / approval / auto / unrestricted",networkPermissionDesc:"restricted / full · 受限 / 完整",networkUnsupportedDesc:"当前环境不支持网络权限切换",executionEnvDesc:"切换 sandbox / direct",switchProject:"切换项目",switchWorkspace:"切换工作区",workspaceDesc:"workspace / project · 工作区 / 项目",versioningOn:"当前:开启",versioningOff:"当前:关闭",gitStatusBar:"Git 状态栏",gitStatusBarShown:"当前:显示",gitStatusBarHidden:"当前:隐藏",pathAuth:"路径授权",pathAuthDesc:"查看和管理路径授权",approvalPanel:"审批面板",approvalPanelDesc:"查看审批记录",themeClassic:"经典",themeClassicDesc:"米色质感,柔和高对比",themeLight:"明亮",themeLightDesc:"纯白底色 + 优雅灰,简洁清爽",themeDark:"夜间",themeDarkDesc:"深灰 + 黑,低亮度显示",permissionLockedReadonlyDesc:"计划模式下权限锁定为只读",executionLockedSandboxDesc:"计划模式下执行环境锁定为沙箱",currentMark:"当前",optionWithCurrent:"当前 · {desc}",conversationTypeLockedDesc:"对话类型创建后不可变,仅新对话可切换",slashSkillsAria:"可用 AgentSkills",slashWorkflowsAria:"工作流选项",slashThemeAria:"主题选项",slashPermissionAria:"权限模式选项",slashExecutionAria:"执行环境选项",slashModelAria:"模型选项",slashRunModeAria:"思考模式选项",slashNetworkAria:"网络权限选项",slashWorkModeAria:"工作模式选项",slashProjectAria:"项目选项",slashWorkspaceAria:"工作区选项",slashConversationTypeAria:"对话类型选项",slashRootAria:"快捷指令",skillsLoadingEmpty:"正在加载 skills...",skillsEmpty:"没有匹配的 skill",workflowsLoadingEmpty:"正在加载工作流...",workflowsEmpty:"暂无可用工作流(可去 /workflows 创建)",permissionEmpty:"无可用权限模式",executionEmpty:"无可用执行环境",modelEmpty:"无可用模型",networkEmpty:"无可用网络权限选项",workModeEmpty:"无可用工作模式",projectEmpty:"暂无其他项目",workspaceEmpty:"暂无其他工作区",conversationTypeEmpty:"无可用对话类型",commandEmpty:"没有匹配的指令",loadSkillsFailed:"加载 skills 失败",loadWorkflowsFailed:"加载工作流列表失败",activateWorkflowFailed:"激活工作流失败",workflowActivated:"工作流「{name}」已激活",exitWorkflowFailed:"退出工作流失败",workflowExited:"已退出工作流「{name}」",exitCurrentWorkflow:"退出当前工作流",workflowRunningExitDesc:"进行中:{name} · 摘牌退出(不打断当前工作)",workflowCurrentActive:"当前激活中",workflowNoDesc:"(无描述)",workflowBuiltinSuffix:" · 内置",workflowItemDesc:"{desc}{builtinSuffix}",messagePlaceholder:"输入消息... (Ctrl+Enter 发送)",voiceModelDownloading:"模型下载中 {percent}%",voiceModelNotReady:"模型未下载,请在个人空间下载",stopRecording:"停止录音",voiceInput:"语音输入",goalModeCompleted:"目标模式完成",agentType:"智能体",agentTypeDesc:"单智能体对话",multiAgentType:"多智能体",multiAgentTypeDesc:"Team Leader + 子智能体协作",workModePlanFallback:"计划",executionFullAccess:"完全访问",executionSandbox:"沙箱",runModeFast:"快速",runModeThinking:"思考"},fm={welcomeTitle:"欢迎使用 Astrion",welcomeDesc:"我们将用 2-3 分钟带你快速了解核心功能。",sidebarConversationsOpenTitle:"展开对话记录",sidebarConversationsOpenDesc:"下一步会自动点击展开对话记录。",sidebarConversationsCloseTitle:"折叠对话记录",sidebarConversationsCloseDesc:"下一步会自动点击折叠按钮收起对话记录。",newChatTitle:"新建对话",sidebarNewChatDesc:"下一步会自动新建并进入一个对话。",sidebarWorkspaceToggleTitle:"工作区折叠",sidebarWorkspaceToggleDesc:"显示/隐藏左侧工作区面板。",sidebarMonitorToggleTitle:"虚拟显示器",sidebarMonitorToggleDesc:"切换到虚拟显示器模式。",workspacePanelSwitchTitle:"工作区面板切换",workspacePanelSwitchDesc:"下一步会自动展开面板切换菜单。",workspacePanelOptionsTitle:"四合一面板",workspacePanelOptionsDesc:"这里可以切换文件 / 待办 / 子智能体 / 后台指令。",workspaceModeIndicatorTitle:"思考模式",workspaceModeIndicatorDesc:"点击切换快速 / 思考。",workspaceConnectionIndicatorTitle:"连接状态指示灯",workspaceConnectionIndicatorDesc:"绿色表示连接正常;红色表示与后端断开连接。",headerModelSelectorTitle:"模型与模式选择",headerModelSelectorDesc:"下一步会自动展开模型与运行模式弹窗。",modelListTitle:"模型列表",headerModelOptionsDesc:"这里是可用模型列表。",headerRunmodeOptionsTitle:"运行模式列表",headerRunmodeOptionsDesc:"这里可切换快速 / 思考。",headerMenuCloseTitle:"关闭模型菜单",headerMenuCloseDesc:"下一步会自动点击空白区域关闭菜单。",openMenuTitle:"打开菜单",mobileMenuOpenConversationDesc:"下一步会自动打开左上角菜单。",mobileMenuConversationTitle:"对话记录",mobileMenuConversationDesc:"下一步会自动进入对话记录。",mobileConversationCloseTitle:"关闭对话记录",mobileConversationCloseDesc:"下一步会自动关闭对话记录面板。",openMenuAgainTitle:"再次打开菜单",mobileMenuOpenWorkspaceDesc:"下一步会自动打开菜单。",mobileMenuWorkspaceTitle:"工作文件",mobileMenuWorkspaceDesc:"下一步会自动进入工作文件。",mobileWorkspacePanelSwitchDesc:"下一步会自动展开切换弹窗。",mobileWorkspacePanelOptionsTitle:"切换弹窗选项",mobileWorkspacePanelOptionsDesc:"这里可切换文件 / 待办 / 子智能体 / 后台指令。",mobileWorkspaceCloseTitle:"关闭工作文件",mobileWorkspaceCloseDesc:"下一步会自动关闭工作文件面板。",mobileMenuOpenNewchatDesc:"下一步会自动打开菜单。",mobileMenuNewChatDesc:"下一步会自动新建对话。",mobileModelSelectorOpenTitle:"模型与思考模式",mobileModelSelectorOpenDesc:"下一步会自动展开手机端模型/思考模式选择。",mobileModelOptionsDesc:"这里是手机端可选模型。",mobileRunmodeOptionsTitle:"思考模式列表",mobileRunmodeOptionsDesc:"这里可切换快速 / 思考。",mobileModelSelectorCloseTitle:"关闭选择菜单",mobileModelSelectorCloseDesc:"下一步会自动点击空白区域关闭菜单。",openQuickMenuTitle:"打开 + 菜单",openQuickMenuDesc:"将自动为你展开快捷菜单。",quickUploadTitle:"上传文件",quickUploadDesc:"上传本地文件到当前工作区。",quickReviewTitle:"对话回顾",quickReviewDesc:"回顾并压缩上下文。",quickSendImageTitle:"发送图片",quickSendImageDesc:"当前模型支持时,可发送图片给 AI 分析。",quickSendVideoTitle:"发送视频",quickSendVideoDesc:"当前模型支持时,可发送视频给 AI 分析。",quickToolDisableTitle:"工具禁用",quickToolDisableDesc:"临时禁用工具分类,控制模型行为范围。",quickSettingsTitle:"设置菜单",quickSettingsDesc:"这里可快速访问常用功能。",openSettingsSubmenuTitle:"打开设置子菜单",openSettingsSubmenuDesc:"下一步会自动展开设置子菜单。",openTokenPanelTitle:"打开用量统计",openTokenPanelDesc:"下一步会自动打开用量统计面板。",tokenPanelTitle:"Token 统计面板",tokenPanelDesc:"这里可以查看上下文、额度和资源统计。",closeTokenPanelTitle:"关闭统计面板",closeTokenPanelDesc:"下一步会自动关闭统计面板。",openPersonalSpaceTitle:"打开个人空间",openPersonalSpaceDesc:"下一步会自动打开个人空间。",mobileMenuOpenPersonalDesc:"下一步会自动打开菜单。",mobileMenuPersonalTitle:"进入个人空间",mobileMenuPersonalDesc:"下一步会自动进入个人空间。",personalOverviewTitle:"个人空间总览",personalOverviewDesc:"这里是个性化设置与高级配置中心。",tabPreferencesTitle:"个性化设置",tabPreferencesDesc:"下一步自动切换到“个性化设置”。",pagePreferencesTitle:"个性化设置内容",pagePreferencesDesc:"可配置昵称、语气、职业和必备信息。",tabModelTitle:"模型偏好",tabModelDesc:"下一步自动切换到“模型偏好”。",pageModelTitle:"模型偏好内容",pageModelDesc:"可设置默认模型、默认运行模式和思考频率。",tabUsageTitle:"用量统计",tabUsageDesc:"下一步自动切换到“用量统计”。",pageUsageTitle:"用量统计内容",pageUsageDesc:"可查看累计 Token、对话数和工具调用数据。",tabAppUpdateTitle:"软件更新",tabAppUpdateDesc:"移动端将自动切换到“软件更新”。",pageAppUpdateTitle:"软件更新内容",pageAppUpdateDesc:"这里会展示最新版本和更新说明。",tabBehaviorTitle:"智能体行为",tabBehaviorDesc:"下一步自动切换到“智能体行为”。",pageBehaviorTitle:"智能体行为内容",pageBehaviorDesc:"可配置工具显示、压缩策略等高级选项。",tabSkillsTitle:"Skills",tabSkillsDesc:"下一步自动切换到“Skills”。",pageSkillsTitle:"Skills 内容",pageSkillsDesc:"可启用/禁用技能并同步到工作区。",tabImageTitle:"图片压缩",tabImageDesc:"下一步自动切换到“图片压缩”。",pageImageTitle:"图片压缩内容",pageImageDesc:"可选择原图、1080p、720p、540p 压缩策略。",tabThemeTitle:"主题切换",tabThemeDesc:"下一步自动切换到“主题切换”。",pageThemeTitle:"主题切换内容",pageThemeDesc:"可在经典、明亮、夜间主题间切换。",closePersonalSpaceTitle:"关闭个人空间",closePersonalSpaceDesc:"下一步自动关闭个人空间并结束导览。",doneTitle:"教程完成!",doneDesc:"恭喜你完成新手教程。可随时在个人空间「新手教程」再次查看。"},gm={appBrowser:"浏览器",appTerminal:"终端",appCommand:"命令行",appPython:"Python",appMemory:"记忆",appTodo:"待办事项",appSubagent:"子代理",terminalName:"终端{n}",terminalTitle:"终端",terminalReset:"终端已重置",terminalEmptyHint:"尚未创建终端,点击 + 新建",thinkLabel:"思考中",waitingReply:"等待回复",toolError:"工具执行错误",browserReady:"准备搜索...",browserSearching:"正在搜索...",browserOpening:"正在打开网页...",defaultSearchQuery:"搜索内容",searchStatus:"正在搜索",searchFailed:"搜索失败",searchCompleted:"搜索完成,已加载结果",searchIncomplete:"搜索未完成",noSearchResults:"暂无搜索结果",searchResultFallback:"搜索结果",extractTitle:"网页提取",extractWaiting:"等待提取",extractInProgress:"提取中...",extractFailed:"网页提取失败",extractStateFailed:"提取失败",extractStateComplete:"提取完成",extractFailedLabel:"提取失败",extractFailedItem:"⚠️ {url}: {error}",extractSectionTitle:"网页摘要",extractSectionItem:"网页 {n}",noExtractionSummary:"未返回任何摘要内容",statusCreatingFolder:"正在创建文件夹",defaultFolderName:"新建文件夹",createFolderFailed:"创建文件夹失败",statusCreatingFile:"正在创建文件",defaultFileName:"新建文件",createFileFailed:"创建文件失败",statusRenaming:"正在重命名",renameFailed:"重命名失败",statusDeletingFile:"正在删除文件",statusEditing:"正在编辑",editFailed:"文件编辑失败",editorEmpty:"(文件当前为空)",commandTitle:"命令行",statusCallingTool:"调用 {tool}",commandFailed:"命令执行失败",commandDone:"命令执行完成",commandSent:"命令已发送",statusReading:"正在阅读",readerModeSearch:"文件搜索",readerModeExtract:"提取片段",readingContent:"正在读取文件内容...",readFailed:"阅读失败",noDisplayContent:"未返回可显示内容",defaultDocPath:"文档",defaultFilePath:"文件",statusFocusingFile:"正在聚焦文件",focusFailed:"聚焦文件失败",loadingContent:"正在加载文件内容...",focusedReady:"文件已聚焦,可在右侧聚焦面板查看",statusProcessing:"正在处理",unfocusFailed:"取消聚焦失败",unfocused:"已取消聚焦",statusExtracting:"正在提取",ocrFailed:"OCR 失败",ocrReady:"OCR 内容就绪",memorySynced:"记忆已同步",statusSyncingMemory:"正在同步记忆",defaultMemory:"新记忆",statusUpdatingTodo:"正在更新待办",defaultTodoSummary:"待办摘要",todoEmptySummary:"暂无摘要",statusAdjustingTodo:"正在调整待办",statusFinishingTask:"正在完成任务",statusRemovingTodo:"正在移除待办",statusResettingTerminal:"正在重置终端",statusOpeningTerminal:"打开终端",statusCallingTerminalInput:"调用 terminal_input",statusGettingTerminal:"正在获取终端",statusWaiting:"正在等待",statusSavingWeb:"正在保存网页",waitOverrun:"等待中 +{n}s{dots}",readerEmptyFallback:"暂无内容",noVisibleContent:"未返回可视内容"},hm={backToLibrary:"返回工作流库",badgeBuiltin:"内置",badgeUser:"用户",unsaved:"未保存",checkIssues:"查看结构提醒与错误",autoLayout:"自动排版",addNodeTitle:"在画布中央添加节点(或双击画布空白处添加阶段)",addNode:"添加节点",stage:"阶段",stageDesc:"AI 执行,单入单出",review:"审核",reviewDesc:"菱形,通过/驳回",branch:"分支",branchDesc:"多入多出,条件路由",start:"开始",startDesc:"入口,只能有一个",end:"结束",endDesc:"终点,可多个",workflowProps:"工作流属性",nameLabel:"名称(唯一标识)",descLabel:"描述",descPlaceholder:"激活选择时靠它辨认",reviewCapability:"审核智能体取证能力",reviewReadonly:"只读审核",reviewActive:"可调命令取证",reviewModeHint:"active 模式允许审核智能体执行只读命令核实成果",maxRoundsLabel:"单阶段最大轮数",endMethodLabel:"整体结束方式",endMethodPlaceholder:"例如:报告落盘且审核通过",globalNotes:"全局说明",globalNotesLabel:"工作方式 / 验证方式 / 结束方式",stageProps:"阶段属性",stageNameLabel:"阶段名称",stageGoalLabel:"阶段目标goal",stageGoalPlaceholder:"这一阶段要达成什么",stageWorkLabel:"工作方式说明",stageWorkPlaceholder:"本阶段的具体工作方式(自然语言)",entryStageAriaLabel:"入口阶段",terminalStageAriaLabel:"终点阶段",stageGoalUnset:"未设置阶段目标",forwardRoute:"前进路由",removeRouteAriaLabel:"移除到 {name} 的路由",endStageEmpty:"终点阶段(无后续路由)",routeHint:"从节点右侧连桩拖线到目标节点;已有出线时再拉新线会替换旧线。想分叉请添加分支节点",deleteNode:"删除此节点",deleteNodeWarning:"删除后指向它的路由也会移除",confirmDelete:"确认删除",reviewProps:"审核属性",reviewNameLabel:"审核名称",reviewFocusLabel:"审核关注点",reviewFocusPlaceholder:"审核智能体检查什么(自然语言)",maxRejectsLabel:"驳回上限(次)",maxRejectsHint:"超过上限后升级给用户处理demo 仅记录数值)",rejectLimitMeta:"驳回 ≤{n}",passRoute:"通过路由",removePassRouteAriaLabel:"移除到 {name} 的通过路由",passEndsWorkflow:"通过即结束工作流",passRouteHint:"审核通过后的去向,从菱形右侧连桩拖线(蓝线)",rejectRoute:"驳回路由",removeRejectRouteAriaLabel:"移除到 {name} 的驳回路由",rejectRequired:"必须连接驳回路由",rejectRouteHint:"审核不通过时的回退目标,从菱形顶部或底部连桩拖线(红线;上下出口语义相同,按目标方位自动选向)",branchProps:"分支属性",branchNameLabel:"分支名称",branchOuts:"出线({n}",branchOutMeta:"{n} 出",removeOutAriaLabel:"移除到 {name} 的出线",branchConditionPlaceholder:"条件:当……时走这条路",branchNoOuts:"无出线(死端)",branchRouteHint:"从节点右侧连桩逐条拖线1 入 n 出 = 分线n 入 1 出 = 并线。多条出线时每条都要写条件AI 汇报时按条件选择去向",startNode:"开始节点",endNode:"结束节点",boundaryNameLabel:"名称",entryRoute:"入口路由",disconnectEntryAriaLabel:"断开到 {name} 的入口路由",entryNotConnected:"未连接(从开始节点右侧连桩拖线到首个节点)",startOnlyHint:"工作流从这里启动;开始节点只能有一个",issueErrors:"{n} 个错误",issueWarnings:"{n} 个提醒",issueOk:"结构正常",flashReplaceReject:"已替换原驳回路由(原驳回到「{name}」)",flashBranchRetarget:"已将该出线的流向改到「{name}」",flashReplaceRoute:"已替换原出线(原连到「{name}」)",flashFixErrors:"存在 {n} 个结构错误,请先修复",flashSaved:"已保存",saveFailed:"保存失败",loadListFailed:"加载工作流列表失败",loadFailed:"加载工作流失败",createFailed:"新建工作流失败",duplicateFailed:"复制工作流失败",deleteFailed:"删除工作流失败",backToConversation:"返回对话",libraryTitle:"工作流",librarySubtitle:"把一套既定的工作方式、验证方式与结束方式存为流程,在对话中激活复用。",newWorkflow:"新建工作流",noDescription:"(无描述)",nodeCountLabel:"{n} 个节点",emptyTitle:"还没有工作流",emptyHint:"新建一个,或在对话中让 AI 帮你生成后归档。",edit:"编辑",httpError:"{msg}HTTP {status}",connectSelf:"不能连接到自身",sourceMissing:"源节点不存在",endHasNoOut:"结束节点没有出线",targetMissing:"目标节点不存在",connectToStart:"不能连到开始节点",routeExists:"该路由已存在",targetIsRejectRoute:"该目标已是驳回路由(红线),先断开驳回路由",onlyBranchHasOuts:"只有分支节点有多出桩",emptySlot:"该连接点是空桩,拖线即新增出线",targetAlreadyOut:"该目标已在出线中",rejectToSelf:"不能驳回至自身",onlyReviewHasReject:"只有审核节点(菱形)有驳回路由",rejectToStart:"不能驳回至开始节点",targetIsPassRoute:"该目标已是通过路由(蓝线)",missingName:"工作流缺少 name",missingDescription:"工作流缺少 description激活选择时靠它辨认",needStartEnd:"至少需要一个开始节点和一个结束节点",missingStart:"缺少开始节点(顶栏「添加节点 → 开始」)",multipleStarts:"开始节点只能有一个(当前 {n} 个)",missingEnd:"缺少结束节点(顶栏「添加节点 → 结束」)",dupNodeId:"节点 id 重复:{id}",nodeMissingName:"节点 {id} 缺少名称",startNotConnected:"开始节点未连接(从右侧连桩拖线到首个节点)",startBadTarget:"开始节点指向不存在的节点:{target}",stageMissingGoal:"阶段「{name}」缺少目标描述",stageNotConnected:"阶段「{name}」未连接后续(连到下一节点或结束节点)",stageBadTarget:"阶段「{name}」指向不存在的节点:{target}",stageToStart:"阶段「{name}」不能连到开始节点",reviewMissingFocus:"审核「{name}」缺少审核关注点",reviewNoPassRoute:"审核「{name}」未连接通过路由(蓝线)",reviewBadTarget:"审核「{name}」指向不存在的节点:{target}",reviewNoRejectRoute:"审核「{name}」缺少驳回路由(红线必须连接)",reviewBadRejectTarget:"审核「{name}」驳回至不存在的节点:{target}",reviewRejectToStart:"审核「{name}」不能驳回至开始节点",reviewBadMaxRejects:"审核「{name}」驳回上限必须 ≥ 1",branchNoOutsNamed:"分支「{name}」没有出线(死端)",branchBadTarget:"分支「{name}」指向不存在的节点:{target}",branchToStart:"分支「{name}」不能连到开始节点",branchRouteMissingCondition:"分支「{name}」到「{target}」的出线缺少条件描述",nodeUnreachable:"节点「{name}」从开始节点不可达",defaultBodyTemplate:`## 工作方式
## 验证方式
## 结束方式
`,defaultStartNode:"开始",defaultEndNode:"结束",defaultStageName:"阶段 {n}",defaultReviewName:"审核 {n}",defaultBranchName:"分支 {n}"},bm={loadingMonitor:"正在加载监控数据...",gateDescription:"为保护敏感监控数据,需二级校验后查看。",title:"管理员监控面板",lastUpdated:"最近更新:{time}",autoRefresh:"自动刷新",refreshNow:"立即刷新",policyConfig:"策略配置",apiAdmin:"API 管理",refreshFailed:"刷新失败:",tabOverview:"系统总览",tabUsage:"配额趋势",tabUsers:"用户",tabContainers:"容器",tabUploads:"上传审计",tabInvites:"邀请码",passwordManagement:"密码管理",usageTitle:"模型配额与趋势",fastMode:"快速模式:{count}",thinkingMode:"思考模式:{count}",searchMode:"搜索:{count}",totalInputTokens:"累计输入 Token",totalOutputTokens:"累计输出 Token",totalTokens:"总计 Token",tokenBreakdownTitle:"按用户累计 Token",tokenBreakdownSub:"实时拉取 · 按总量降序",tableUser:"用户",tableRole:"角色",tableInputTokens:"输入 Token",tableOutputTokens:"输出 Token",tableTotalTokens:"累计 Token",noTokenStats:"暂无 token 统计数据",leaderFast:"快速模式 TOP",leaderThinking:"思考模式 TOP",leaderSearch:"搜索调用 TOP",usersTitle:"用户与配额",tableStatus:"状态",tableProjectUsage:"项目占用",tableProjectSize:"项目体积",tableLastActive:"最近活跃",emptyUsers:"暂无用户",online:"在线",offline:"离线",containersTitle:"容器运行状态",tableMode:"模式",tableContainerName:"容器名",tableCpu:"CPU",tableMemPercent:"内存%",tableMemUsage:"内存使用",tableMemLimit:"内存上限",tableNetIo:"网络 RX/TX",emptyContainers:"暂无容器运行",unknown:"未知",uploadsTitle:"上传安全审计",last24h:"最近24小时{count}",blocked:"阻断:{count}",skippedScan:"跳过扫描:{count}",quarantineUsage:"隔离区占用:{size}",noSourceStats:"暂无来源统计",noRecentUploads:"暂无近期上传",unnamedFile:"未命名文件",uploadUser:"用户:{name}",uploadSource:"来源:{name}",uploadSize:"大小:{size}",accepted:"通过",blockedBadge:"阻断",invitesTitle:"邀请码",inviteTotal:"总计:{count}",inviteActive:"可用:{count}",inviteConsumed:"已用:{count}",inviteUnlimited:"无限制:{count}",newInvitePlaceholder:"新邀请码",remainingPlaceholder:"剩余次数",unlimitedLabel:"不限次数",processing:"处理中...",addInvite:"新增邀请码",noInviteData:"暂无邀请码数据",adjustRemaining:"调整次数",passwordHint:"管理员可重置任意用户的登录密码(包括自己)。",selectUser:"选择用户",userSearchPlaceholder:"搜索用户名或邮箱...",filterPlaceholder:"输入关键词筛选...",adminRole:"管理员",noMatchingUsers:"无匹配用户",newPasswordLabel:"新密码(至少 8 位)",newPasswordPlaceholder:"输入新密码",resetting:"重置中...",resetPassword:"重置密码",clear:"清空",requestFailed:"请求失败:{status}",csrfFailed:"获取 CSRF Token 失败:{status}",csrfNoToken:"获取 CSRF Token 失败:响应无 token",remainingInvalid:"剩余次数必须是大于等于 0 的整数,或留空表示不限次数",inviteCodeRequired:"请输入邀请码",passwordTooShort:"密码长度至少 8 位",passwordResetSuccess:"用户 {username} 的密码已成功重置",promptRemaining:"请输入新的剩余次数(留空或输入 unlimited 表示不限次数)",deleteInviteConfirm:"确认删除邀请码 {code}",metricRegisteredUsers:"注册用户",metricActiveUsers:"{count} 个活跃",metricContainerUsage:"容器使用",unlimited:"无限制",freeSlots:"{count} 个空闲",metricStorageWarnings:"资源告警",storageWarningSub:"达到预警阈值的工作区",metricUploadAudit:"上传审计 (24h)",blockedCount:"{count} 条被阻断",metricQuotaCalls:"配额调用 (fast / thinking / search)",windowCalls:"窗口内累计调用",metricInvites:"邀请码",inviteMetricsSub:"{active} 个可用 · {consumed} 已用",metricStorage:"存储占用",perUserLimit:"单用户上限 {size}",noLimitSet:"未设置上限",unknownTime:"未知时间",justNow:"刚刚",minutesAgo:"{count} 分钟前",hoursAgo:"{count} 小时前",daysAgo:"{count} 天前",remainingLeft:"剩余 {count}",usedUp:"已用完",cannotLoadData:"无法加载监控数据"},vm={gateDescription:"请输入管理员二级密码后继续配置策略。",title:"管理员策略配置",subtitle:"控制工具分类、模型与前端功能禁用。最新保存:{time}",scopeGlobal:"全局",scopeRole:"按角色",scopeUser:"指定用户",scopeInvite:"邀请码",placeholderRole:"如admin / user",placeholderInvite:"邀请码",placeholderUsername:"用户名(小写)",load:"载入",categorySection:"工具分类",addCategory:"新增分类",catId:"分类 ID",catName:"名称",catTools:"工具列表",catDefaultEnabled:"默认启用",catForced:"强制状态",tableActions:"操作",selectTools:"选择工具",toolSearchPlaceholder:"搜索或添加工具 ID",noMatchingTool:"未找到匹配的工具",addCustomToolWith:"添加自定义工具 “{id}”",enabledOn:"开",enabledOff:"关",forcedNone:"不强制",forcedEnable:"强制启用",forcedDisable:"强制禁用",modelDisable:"模型禁用",uiBlockSection:"前端禁用项",uiBlockCollapseWorkspace:"折叠工作区",uiBlockFileManager:"禁止文件管理器",uiBlockPersonalSpace:"禁止个人空间",uiBlockUpload:"禁止上传",uiBlockConversationReview:"禁止对话引用",uiBlockToolToggle:"禁止工具禁用",uiBlockRealtimeTerminal:"禁止实时终端",uiBlockFocusPanel:"禁止聚焦面板",uiBlockTokenPanel:"禁止用量统计",uiBlockCompressConversation:"禁止压缩对话",uiBlockVirtualMonitor:"禁止虚拟显示器",mcpSection:"MCP 服务配置(统一工具扩展)",refresh:"刷新",syncing:"同步中...",syncAll:"同步全部工具",addMcpServer:"新增 MCP 服务",emptyMcpServers:"暂无 MCP 服务,点击“新增 MCP 服务”开始配置。",mcpId:"ID",mcpName:"名称",mcpEnabled:"启用",mcpArgs:"args每行一个留空=无)",mcpCwd:"cwd可选",mcpHeaders:"headersJSON可选",mcpEnv:"envJSON可选stdio 有效)",mcpIncludeTools:"include_tools逗号分隔可选",mcpExcludeTools:"exclude_tools逗号分隔可选",mcpDescription:"说明(可选)",mcpIdPlaceholder:"如 demo_stdio",mcpNamePlaceholder:"显示名称(可选)",mcpCommandPlaceholder:"如 python3",mcpArgsPlaceholder:`
/abs/path/mcp_server.py`,mcpCwdPlaceholder:"工作目录",mcpDescriptionPlaceholder:"备注说明",mcpUrlPlaceholder:"如 https://example.com/mcp",mcpHeadersPlaceholder:`如 {'{'}"Authorization":"Bearer xxx"{'}'}`,mcpEnvPlaceholder:`如 {'{'}"PYTHONUNBUFFERED":"1"{'}'}`,mcpIncludeToolsPlaceholder:"如 echo,read_db",mcpExcludeToolsPlaceholder:"如 dangerous_tool",mcpLastSync:"最近同步:{time}",mcpNotSynced:"未同步",mcpError:"错误:{message}",mcpCacheCount:"缓存工具数:{count}",syncTools:"同步工具",removedCategories:"已删除分类",none:"无",notesLabel:"说明:",notePriority:"优先级:用户 > 邀请码 > 角色 > 全局。",noteForced:"分类“强制状态”会覆盖用户侧的工具开关,并在前端提示“被管理员强制”。",noteUiBlocks:"UI 禁用项会在用户操作时弹出右上角提示。",loadMcpFailed:"加载 MCP 服务失败",mcpIdRequired:"MCP 服务 ID 不能为空",jsonInvalid:"{label} 不是合法 JSON{message}",jsonMustBeObject:"{label} 必须是 JSON 对象",saveMcpFailed:"保存 MCP 服务失败",mcpSaved:"MCP 服务 {id} 已保存",mcpDeleted:"已删除 MCP 服务 {id}",deleteMcpFailed:"删除 MCP 服务失败",syncRequiresSave:"请先保存服务后再同步工具",syncMcpFailed:"同步 MCP 工具失败",mcpSyncedWith:"已同步 {id}",mcpSyncedAll:"已同步全部 MCP 服务",loadDefaultsFailed:"加载默认配置失败",saveFailed:"保存失败",savedSuccess:"保存成功",loadPolicyFailed:"加载策略失败",toolConflict:"工具 {tool} 已在分类 {category} 中,请先移除后再分配"},wm={gateDescription:"请输入管理员二级密码后查看 API 调用与账户。",title:"API 管理面板",subtitle:"监控 Token / 容器 / 上传审计,并管理 API 账户。",dataTime:"数据时间:{time}",autoRefresh:"自动刷新",manualRefresh:"手动刷新",metricUsers:"API 用户数",metricTotalRequests:"总请求",metricTotalTokens:"累计 Token",tokenInOut:"输入 {input} / 输出 {output}",metricActiveContainers:"活动容器",availableSlots:"可用槽位 {slots}",accountManagement:"API 账户管理",usernamePlaceholder:"新账号名 (小写英数/-/_)",notePlaceholder:"备注(可选)",creating:"创建中...",createAccount:"创建账号",tableUsername:"账号",tableNote:"备注",tableCreatedAt:"创建时间",tableRequests:"请求",tableLastCall:"最近调用",tableTotalTokens:"Token 累计",tableStorage:"存储",tableContainer:"容器",tableToken:"密钥",tableActions:"操作",emptyAccounts:"暂无 API 账号",containerSection:"容器状态",realtimeFetch:"实时抓取",tableKey:"Key",tableCpu:"CPU",tableMemPercent:"内存%",tableMemory:"内存",tableNetIo:"网络 RX/TX",tableStatus:"状态",emptyContainers:"暂无容器",uploadSection:"上传审计",uploadSourceNote:"来自隔离区日志",emptyRecords:"暂无记录",unnamedFile:"未命名文件",uploadMeta:"用户 {username} · {size} · {source}",accepted:"通过",blocked:"阻断",usernameRequired:"请输入账号名",usernameInvalid:"账号名需为 3-32 位小写字母/数字/_/-",createFailed:"创建失败",deleteConfirm:"确认删除 API 用户 {username} 吗?",deleteFailed:"删除失败",fetchFailed:"获取失败",fetchTokenFailed:"获取 token 失败",statusRequestFailed:"状态请求失败:{status}",cannotVerifySecondaryPass:"无法验证二级密码状态",secondaryPassVerifyFailed:"二级密码验证失败",verifyFailed:"验证失败"},ym={gateDescription:"输入管理员二级密码后可管理自定义工具。",gate:{notConfiguredTitle:"尚未设置二级密码",notConfiguredDesc:"管理面板的敏感操作(邀请码、密码管理、策略配置等)由二级密码保护。当前服务端尚未配置二级密码,请先完成设置:",step1Text:"在服务器上生成密码哈希:",step1Code:`python3 -c "from werkzeug.security import generate_password_hash; print(generate_password_hash('你的二级密码'))"`,step2TextPre:"将输出写入 settings.json 的",step2TextPost:"段:",step3Text:"重启服务,然后点击下方「重新检测」。",recheck:"重新检测",rechecking:"检测中...",title:"请输入管理员二级密码",passwordPlaceholder:"二级密码",verifying:"校验中...",confirmEnter:"确认进入",defaultDescription:"为保护敏感数据,需二级校验后查看。"},guide:{title:"开发指南",subtitle:"如何编写、组织与调试自定义工具的完整说明。"},renderFailed:"渲染指南失败",backToList:"返回列表",loadFailedWith:"加载失败:{message}",main:{title:"自定义工具管理",subtitle:"每个工具一个文件夹,三层文件独立存放;仅管理员可见并可调用。",newTool:"新建工具",refreshList:"刷新列表",viewGuide:"查看开发指南",backToMonitor:"返回监控",policyConfig:"策略配置",toolList:"工具列表",toolCount:"共 {count} 个",emptyTools:"暂无自定义工具",noDescription:"暂无描述",params:"参数:{count} 个",timeout:"超时:{seconds}s",noReturnLayer:"(无返回层)",toolNotFound:"未找到工具 {id}"},editor:{noDescription:"未填写描述",hint1Pre:"提示execution.py 中的字典/集合需要用",hint1Post:"包裹,避免被模板替换。",hint2:"保存后无需重启,系统会自动 reload 自定义工具。",loadingTool:"正在加载工具..."},create:{title:"创建新工具",toolIdLabel:"工具 ID小写/下划线):",descriptionLabel:"描述:",creating:"创建中...",create:"创建",idRequired:"请填写工具 ID",idInvalid:"工具 ID 需以字母开头,可包含字母/数字/_/-",failed:"创建失败"},delete:{title:"确认删除",confirmPre:"确定删除工具",confirmPost:"吗?该操作不可恢复。",deleting:"删除中...",failed:"删除失败"},save:{failed:"保存 {name} 失败"}},Tm={clearChatTitle:"清除对话",clearChatConfirmMessage:"确定要清除所有对话记录吗?该操作不可撤销。",clearChatConfirmText:"清除",cannotCompressTitle:"无法压缩",cannotCompressMessage:"当前没有可压缩的对话。",compressingTitle:"压缩中",compressingMessage:"对话正在压缩,请稍候...",compressionCompletedTitle:"压缩完成",compressionCompletedMessage:"已压缩较早的对话内容",compressionFailed:"压缩失败",compressionErrorTitle:"压缩对话异常",sendFailedTitle:"发送失败",createTaskFailedMessage:"创建任务失败,请重试",createNewConversationFailedMessage:"创建新对话失败,请重试",cannotQueueTitle:"暂不可堆积",noActiveTaskMessage:"未检测到活跃任务,请稍后再试",queueMessageFailed:"堆积消息失败",queueFailedTitle:"堆积失败",deleteFailed:"删除失败",guideMessageNotSent:"引导消息未发出,请稍后重试",cannotGuideTitle:"暂不可引导",submitGuideFailed:"提交引导失败",guideSetTitle:"已设为引导对话",guideSetMessage:"将在下一次工具结果后插入到当前对话",guideFailedTitle:"引导失败",autoCompressingTitle:"对话自动压缩中",autoCompressingBlockSend:"当前不可发送/停止,请等待压缩完成",compressionBlocksSend:"压缩完成后才能继续发送消息",textRequiredTitle:"需要文字消息",textRequiredMessage:"附加文件需随文字消息一起发送",subAgentRunningTitle:"后台子智能体运行中",subAgentRunningMessage:"请等待后台任务结束后再发送图片/视频",runningTextOnlyTitle:"运行中仅支持文本",runningTextOnlyMessage:"图片/视频请等待当前任务结束后发送",conversationRunningTitle:"当前对话正在运行",conversationRunningMessage:"请等待当前对话任务完成后再发送新消息;同工作区的其他对话可正常并行。",connectionLostTitle:"连接已断开",connectionLostMessage:"当前无法发送消息,请等待连接恢复后重试",uploadingTitle:"上传中",uploadingMessage:"请等待图片/视频上传完成后再发送",modelNoImageTitle:"当前模型不支持图片",modelNoImageMessage:"请切换到支持图片输入的模型再发送图片",modelNoVideoTitle:"当前模型不支持视频",modelNoVideoMessage:"请切换到支持视频输入的模型后再发送视频",noMixedMediaTitle:"请勿同时发送",noMixedMediaMessage:"视频与图片需分开发送,每条仅包含一种媒体",videoProcessingTitle:"视频处理中",videoProcessingMessage:"读取视频需要较长时间,请耐心等待",initializingBackupTitle:"正在初始化备份",initializingBackupMessage:"正在创建完整工作区快照,请稍候...",createConversationFailed:"创建对话失败",stopRequestedTitle:"停止请求已发送",stopRequestedMessage:"若主对话未停止,请稍候;后台任务可通过状态栏单独停止",autoCompressingBlockStop:"压缩进行中,当前不可停止任务",commandEmpty:"命令不能为空",connectionUnavailable:"连接不可用",connectionUnavailableMessage:"当前无法执行命令,请稍后重试。",commandExecutionFailed:"命令执行失败",clearedTitle:"已清除",conversationCleared:"对话已清除",systemStatus:"系统状态",statusUpdatedTitle:"状态已更新",statusFetched:"已获取系统状态",commandFailedLabel:"命令失败",commandExecutedTitle:"命令已执行",commandDone:"完成",serverNotSuccessMessage:"服务器未返回成功状态",createConversationErrorTitle:"创建对话异常",createWorkspaceConversationErrorTitle:"创建工作区对话异常",deleteConversationTitle:"删除对话",deleteConversationConfirmMessage:"确定要删除这个对话吗?删除后无法恢复。",deleteConversationFailedTitle:"删除对话失败",deleteConversationErrorTitle:"删除对话异常",duplicateConversationTitle:"复制的对话",duplicateConversationFailedTitle:"复制对话失败",duplicateConversationErrorTitle:"复制对话异常",loadConversationFailedTitle:"加载对话失败",loadConversationErrorTitle:"加载对话异常",versioningFetchStatusFailed:"获取版本状态失败",versioningLoadCheckpointsFailed:"加载版本点失败",versioningEnabledForNext:"已为下一次新对话开启版本管理",versioningDisabledForNext:"已取消下一次新对话的版本管理",versioningToggleFailed:"切换版本管理失败",versioningOn:"已开启",versioningOff:"已关闭",versioningSwitchFailed:"切换失败",versioningDetailParseFailed:"详情响应解析失败",versioningLoadDetailFailed:"加载详情失败",versioningScopeConversationOnly:"仅回溯对话",versioningScopeConversationAndWorkspace:"回溯对话和工作区",versioningModeCopy:"复制对话",versioningModeOverwrite:"覆盖当前对话",versioningRestoreConfirmTitle:"确认回溯",versioningRestoreConfirmMessage:"将{scope}到输入 #{seq} 对应的状态,并{mode}。是否继续?",versioningRestoreConfirmText:"回溯",versioningRestoreFailed:"回溯失败",versioningRestoreConversationTitle:"版本回溯对话",versioningRestoreCopyDone:"已复制并回溯到新对话",versioningRestoreDone:"回溯完成"},km={unknown:"未知",unknownTime:"未知时间",hostMode:"宿主机模式",containerMode:"容器模式",paused:"已暂停",stopped:"已停止",justNow:"刚刚",minutesAgo:"{n} 分钟前",hoursAgo:"{n} 小时前",compressionManual:"手动",compressionAuto:"自动",compressing:"压缩中",compressingMessage:"对话正在{mode}压缩,请稍候...",shallowCompressionTitle:"自动浅层压缩",shallowCompressedMessage:"已自动压缩 {n} 条较早工具结果",compressionComplete:"压缩完成",compressedEarlierContent:"已压缩较早的对话内容",taskRestoredTitle:"任务恢复",taskRestoredMessage:"检测到进行中的任务,已恢复连接",thinkingLabel:"思考中...",goalReviewTitle:"目标审批",workflowReviewTitle:"工作流审核",reviewStarted:"开始审核",reviewRound:"审核轮次 {n}",autoApprovalRecordTitle:"自动审批记录",autoApprovalStarted:"自动审批开始",approvalApproved:"批准通过",approvalRejected:"拒绝",approvalFinalMessage:`{decision}
原因:{reason}`,reasonNotProvided:"未提供",preparingTool:"准备调用 {name}...",interruptedByNewResponse:"已被新的响应中断",cannotModify:"无法修改",categoryEnforcedByAdmin:"该工具类别被管理员强制设置",cannotSwitchTool:"无法切换工具",toolToggleLockedByAdmin:"工具启用/禁用已被管理员锁定",answerNeededTitle:"{dot} 需要回答 - Agents",questionConfirmTitle:"需要你确认一个问题",retrySoonTitle:"即将重试",retryInSeconds:`将在 {n} 秒后重试(第 {attempt}/{max} 次)
错误:{error}`,streamRetrying:"连接中断,正在重试(第 {attempt}/{max} 次)…",streamRetryingGeneric:"连接中断,正在重试…",toolCallFailed:"工具调用失败",taskFailedTitle:"任务执行失败",apiErrorTitle:"API 调用失败",apiErrorMessage:"模型服务异常:{error}",timeoutTitle:"任务超时",timeoutMessage:"任务执行时间过长,已自动停止",quotaTitle:"配额不足",quotaMessage:"您的使用配额已用尽",cannotCompleteDownload:"无法完成下载"},Cm={unknown:"未知",saveFailed:"保存失败",notice:"提示",pleaseRetry:"请重试",appliedImmediately:"已立即生效",switchFailed:"切换失败",createFailed:"新建失败",deleteFailed:"删除失败",renameFailed:"重命名失败",openFailed:"打开失败",disabledByAdmin:"已被管理员禁用",forceDisabledByAdmin:"被管理员强制禁用",unnamedProject:"未命名项目",fetchProjectsFailed:"获取项目列表失败",pathCannotBeEmpty:"路径不能为空",projectNameCannotBeEmpty:"项目名称不能为空",workspaceNameCannotBeEmpty:"工作区名称不能为空",workspaceSwitched:"工作区已切换",projectSwitched:"项目已切换",switchHostWorkspaceFailed:"切换宿主机工作区失败",switchWorkspaceFailed:"切换工作区失败",switchProjectFailed:"切换项目失败",workspaceCreated:"工作区已创建",projectCreated:"项目已创建",createWorkspaceFailed:"新建工作区失败",createProjectFailed:"新建项目失败",workspaceRenamed:"工作区已重命名",projectRenamed:"项目已重命名",renameWorkspaceFailed:"重命名工作区失败",renameProjectFailed:"重命名项目失败",deleteWorkspaceConfirmTitle:"删除工作区",deleteProjectConfirmTitle:"删除项目",deleteWorkspaceConfirmMessage:"确定要从列表中删除“{name}”吗?不会删除磁盘上的工作区文件夹。",deleteProjectConfirmMessage:"确定要删除项目“{name}”吗?该项目文件夹和对话记录会被一并删除。",workspaceDeleted:"工作区已删除",projectDeleted:"项目已删除",deleteWorkspaceFailed:"删除工作区失败",deleteProjectFailed:"删除项目失败",openWorkspaceFailed:"打开工作区失败",openProjectFailed:"打开项目失败",setAsDefaultWorkspace:"已设为默认工作区",setAsDefaultProject:"已设为默认项目",setDefaultWorkspaceFailed:"设置默认工作区失败",setDefaultProjectFailed:"设置默认项目失败",policyBlockedPersonalSpace:"个人空间已被管理员禁用",policyBlockedReview:"对话引用已被管理员禁用",submitPlanDecisionFailed:"提交计划决策失败",planApproved:"计划已批准",planApprovedMessage:"已切换到执行模式,开始实施",planRejected:"已拒绝计划",planRejectedMessage:"AI 将根据你的意见修订后重新提交",unavailable:"无法使用",unavailableNoConnectionMessage:"当前未连接,无法生成回顾文件",cannotReferenceCurrentConversation:"无法引用当前对话",chooseOtherConversationForReview:"请选择其他对话生成回顾",submitAnswerFailed:"提交回答失败",submitApprovalFailed:"提交审批失败",approvalFailed:"审批失败",modelDisabled:"模型被禁用",conversationHasImagesMessage:"当前对话包含图片,目标模型不支持图片输入",conversationHasVideosMessage:"当前对话包含视频,目标模型不支持视频输入",modelSwitched:"模型已切换",switchModelFailed:"切换模型失败",modeUnavailable:"模式不可用",fastOnlyModeMessage:"当前模型仅支持快速模式",thinkingOnlyModeMessage:"当前模型仅支持思考模式",switchThinkingModeFailed:"切换思考模式失败",settingFailed:"设置失败",setReasoningEffortFailed:"设置推理强度失败",pauseAllSubAgentsTitle:"是否暂停所有子智能体?",terminateAllSubAgentsTitle:"是否终结所有子智能体?",pauseAllSubAgentsMessage:"所有正在运行的子智能体将停止工作并变为空闲状态。取消表示不执行操作。",terminateAllSubAgentsMessage:"所有后台子智能体将被强制终止。取消表示不执行操作。",pause:"暂停",terminate:"终结",stopSubAgentsFailed:"停止子智能体失败",subAgentsPaused:"子智能体已暂停",subAgentsTerminated:"子智能体已终结",stoppedSubAgentCount:"已处理 {n} 个子智能体",policyBlockedFocusPanel:"聚焦面板已被管理员禁用",policyBlockedTokenPanel:"用量统计已被管理员禁用",switchPermissionFailed:"切换权限失败",permissionUpdated:"权限已更新",switchExecutionModeFailed:"切换执行环境失败",executionModeUpdated:"执行环境已更新",switchNetworkPermissionFailed:"切换网络权限失败",networkPermissionUpdated:"网络权限已更新",networkRestricted:"受限",networkFull:"完全开放",switchedToMode:"已切换为 {mode}",pathAuthorizationSaved:"路径授权已保存",pathAuthApplyMessage:"命令工具立即生效;终端会话请重开后生效",savePathAuthorizationFailed:"保存路径授权失败",conversationAutoCompressing:"对话自动压缩中",compressingNowPleaseWait:"当前对话正在压缩,请稍后再试",policyBlockedCompress:"压缩对话已被管理员禁用",selectConversation:"请选择对话",selectConversationForReview:"请选择要生成回顾的对话记录",cannotSend:"无法发送",noActiveConversationMessage:"当前没有活跃对话,无法自动发送提示消息",reviewPathMissing:"未获取到生成的文件路径",reviewSuggestReadFull:"建议直接完整阅读。",reviewSuggestReadBySearch:"建议使用 read 工具进行搜索或分段阅读。",reviewAutoMessage:"帮我继续这个任务,对话文件在 {path},文件长 {count} 字符,{suggestion} 请阅读文件了解后,不要直接继续工作,而是向我汇报你的理解,然后等我做出指示。",reviewFileGenerated:"回顾文件已生成",generateFailed:"生成失败",generateReviewFailed:"生成回顾失败",fetchPreviewFailed:"获取预览失败",notConnected:"未连接",waitForConnectionBeforeUpload:"请等待服务器连接后再上传",uploadDisabled:"上传被禁用",uploadDisabledByAdmin:"已被管理员禁用上传功能",modelDoesNotSupportImage:"当前模型不支持图片",chooseImageModelMessage:"请选择支持图片输入的模型后再发送图片",modelDoesNotSupportVideo:"当前模型不支持视频",switchToVideoModelMessage:"请切换到支持视频输入的模型后再发送视频",workspaceBootstrapTitle:"尚未创建工作区",workspaceBootstrapMessage:"请点击侧边栏的「工作区」按钮创建第一个工作区",statusApiRequestFailed:"状态接口请求失败: {status}",hostModeFileTreeUnavailable:"宿主机模式下文件树不可用",dockerModeFilesChanged:"Docker 模式下文件区已改为项目列表",noImagesFound:"未找到图片",noImagesInWorkspace:"工作区内没有可用的图片文件",loadImagesFailed:"加载图片失败",noVideosFound:"未找到视频",noVideosInWorkspace:"工作区内没有可用的视频文件",loadVideosFailed:"加载视频失败",uploadingTitle:"上传中",waitImageUploadDone:"请等待当前图片上传完成",waitFileUploadDone:"请等待当前文件上传完成",noFileReceived:"未获取到文件",noValidFileContent:"系统未返回有效的文件内容,请重试",limitReachedTitle:"已达上限",maxImagesMessage:"最多只能选择 {max} 张图片",maxFilesMessage:"最多只能附加 {max} 个文件",ignoredTitle:"已忽略",skippedNonImageFiles:"已跳过非图片文件",exceededTitle:"已超出数量",truncatedImagesMessage:"最多还能添加 {n} 张图片,已自动截断",truncatedFilesMessage:"最多还能附加 {n} 个文件,已自动截断",waitVideoUploadDone:"请等待当前视频上传完成",skippedNonVideoFiles:"已跳过非视频文件",tooManyVideosTitle:"视频数量过多",onlyOneVideoMessage:"一次只能选择 1 个视频,已使用第一个",blankWelcomeDefault:"有什么可以帮忙的?",updateTutorialStatusFailed:"更新新手教程状态失败",tutorialSaveFailedMessage:"保存新手教程状态失败,请稍后重试",policyBlockedTerminal:"实时终端已被管理员禁用",workModeRunningMessage:"对话运行中,请等待当前任务结束后再切换运行模式",switchRunModeFailed:"切换运行模式失败",workModePlan:"计划",workModeAsk:"询问",workModeExecute:"执行",runModeUpdated:"运行模式已更新",loadGitChangesFailed:"加载 Git 变更失败",fetchRunningTasksFailed:"获取运行任务失败",saveInputDraftFailed:"保存输入草稿失败",fetchInputDraftFailed:"获取输入草稿失败",subAgentTaskDone:"子智能体{agentId} 任务完成",backgroundRunCommandDone:"后台 run_command 完成"},Sm={dragUploadText:"松开鼠标上传图片",dragUploadHint:"支持拖拽图片、视频文件到此处",connectingServer:"正在连接服务器,请稍候",refreshPage:"刷新页面",model:"模型",runMode:"运行模式",collapseQuickDock:"收起快捷窗口",expandQuickDock:"展开快捷窗口",switchWorkspace:"切换工作区",conversationHistory:"对话记录",personalSpace:"个人空间",refresh:"刷新",fullscreen:"全屏",cardActions:"卡片操作",imageUnsupportedPath:"无法显示图片:不支持的图片路径 {src}",imageMissingPath:"无法显示图片:缺少图片路径",imageLoadFailed:"图片加载失败",renderingContent:"正在渲染内容...",showFileMissingPath:"[show_file: 缺少 path 属性]",fastMode:"快速模式",fastModeDesc:"无思考,响应更快",thinkingModeDesc:"持续推理,适合复杂任务",modelNotSelected:"未选择模型",backgroundCommandCount:"{n} 个后台指令",backgroundAgentCount:"{n} 个后台智能体",backgroundRunning:"运行中...",thinking:"思考中...",waitingApiResponse:"等待 API 响应...",welcomeHelp:"有什么可以帮忙的?",welcomeHot:"想了解些热点吗?",welcomeHomework:"要我帮你完成作业吗?",welcomeCode:"整点代码?",welcomeChat:"随便聊点什么?",welcomeOrganize:"想让我帮你整理一下思路吗?",welcomeTool:"要不要我帮你写个小工具?",welcomeContinue:"发我一句话,我来接着做。",welcomeDraw:"我来给你画幅画?",welcomeCat:"想看小猫吗?",welcomePuzzle:"有什么难题丢过来吧。",welcomeFun:"想不想看个有意思的?",welcomeNeed:"来,说说你的需求~",networkRestrictedDesc:"仅允许本地回环访问,外部网络不可用",networkFullDesc:"允许所有出站和入站网络连接",workModePlanDesc:"只制定计划,批准后执行",workModeAskDesc:"先讨论确认,再开工",workModeExecuteDesc:"自行补全细节,直接开工",permissionApproval:"批准",permissionAutoApproval:"自动审核",permissionUnrestricted:"无限制",permissionReadonlyDesc:"仅允许读取/搜索类工具,禁止修改工作区",permissionApprovalDesc:"对工作区文件进行修改的工具需用户批准后才会执行",permissionAutoApprovalDesc:"工作区内写入直通,高风险操作由后台审核智能体自动审批",permissionUnrestrictedDesc:"保持当前默认行为,不额外拦截",executionSandboxDesc:"所有指令会在系统沙箱中执行",executionDirectDesc:"所有指令会在宿主机直接执行"},_m={expand:"展开",collapse:"收起",branch:"分支",userDefaultName:"用户",subAgentName:"子智能体",generating:"生成中…",userHeaderGuide:"引导",userHeaderGoal:"目标",userHeaderReview:"审核",userHeaderCompression:"压缩",userHeaderNotify:"通知",briefGoalReview:"目标审核完成",briefSubAgent:"后台子智能体完成",briefBackgroundCommand:"后台指令完成",briefCompression:"对话压缩完成",briefGoal:"目标进行中",briefGuidance:"运行中引导",briefNotify:"系统通知",briefSystem:"系统消息",subAgentDoneLabel:"子智能体{n} 任务完成",workInProgress:"工作中 {duration}",workCompleted:"工作完成 {duration}",thinking:"思考过程",thinkingRunning:"正在思考...",citationOpenSource:"打开来源",citationPrev:"上一个来源",citationNext:"下一个来源",targetFile:"目标文件",appendDone:"文件追加完成",appendSuccess:"已写入 {path} 的追加内容(内容已保存至文件)",appendFailed:"向 {path} 写入失败,内容已截获供后续修复。",appendWarning:"未检测到结束标记,请根据提示继续补充。",appendWarningFollow:"未检测到结束标记,请按提示继续补充。",linesCount:"· 行数 {n}",bytesCount:"· 字节 {n}",systemMessage:"系统消息 (role: {role})",quickNavAria:"用户输入快捷跳转",emptyInput:"(空输入)",noReply:"(暂无回复)",executing:"执行中...",callingTool:"正在调用 {name}...",toolCompleted:"工具执行完成",executingTool:"正在执行工具...",runTool:"执行工具",summaryRead:"读取了 {n} 个文件",summaryCommand:"运行了 {n} 个指令",summaryEdit:"编辑了 {n} 次文件",summarySearch:"搜索了 {n} 次",summaryWebpage:"查看了 {n} 次网页",summaryMcp:"执行了 {n} 次 MCP 工具",summaryWorkflowActivate:"激活了 {n} 个工作流",summaryWorkflowAdvance:"推进了 {n} 次工作流进度",summaryWorkflow:"执行了 {n} 次工作流操作",summaryTodoCreate:"创建了 {n} 次待办",summaryTodoUpdate:"更新了 {n} 次待办",summaryMemoryUpdate:"更新了 {n} 次记忆",summaryMemoryRead:"查看了 {n} 次记忆",summaryConversation:"回顾了 {n} 次对话",summarySubAgent:"创建了 {n} 个子智能体",summarySubAgentManage:"管理了 {n} 次子智能体",summaryWait:"等待了 {n} 次",summaryAsk:"询问了 {n} 次",summaryPlan:"提交了 {n} 次计划",summarySkill:"归档了 {n} 次技能",summarySettings:"更新了 {n} 次个性化设置",summaryEasterEgg:"触发了 {n} 次彩蛋",summaryOther:"执行了 {n} 次其他操作",more:"更多",allExpanded:"已展开全部",stepsTotal:"共 {n} 个步骤",stepsHidden:"{n} 个步骤折叠",copyCode:"复制代码",filesEdited:"已编辑 {n} 个文件",fileChanges:"文件变更:{path}",diffTruncated:"内容过长,已截断展示",diffEmpty:"暂无可展示的文本变更行",fileTypeDoc:"文档",fileTypeSheet:"电子表格",fileTypeSlides:"演示文稿",fileTypePdf:"PDF",fileTypeText:"文本",fileTypeArchive:"压缩包",fileTypeCode:"代码",fileTypeGeneric:"文件",removeFile:"移除 {name}",pdfLoading:"PDF 加载中...",pdfLoadFailed:"PDF 加载失败",pdfEmpty:"PDF 内容为空",pdfRenderFailed:"PDF 渲染失败",preview:"预览",fileEmpty:"文件内容为空",htmlPreviewNotice:"含外部资源引用,预览可能不完整",networkError:"网络错误",imageLoadFailed:"图片加载失败",csvTruncated:"仅显示前 {n} 行,完整内容请下载查看",vmBrowserTitle:"多模态知识浏览器",vmBrowserReady:"准备搜索...",vmWebExtract:"网页提取",vmExtractWait:"等待提取",vmFile:"文件",vmTerminal:"终端",vmCommandLine:"命令行",vmReaderTitle:"阅读器",vmMemory:"记忆",vmTodo:"待办事项",vmWait:"等待",vmNewFile:"新建文件",vmNewFolder:"新建文件夹",vmReadFile:"阅读文件",vmEditFile:"编辑文件",vmRename:"重命名",vmDeleteFile:"删除文件",vmFocusFile:"聚焦文件",vmUnfocus:"取消聚焦",vmSaveWebpage:"保存网页",vmSaveSnapshot:"保存快照",vmResetTerminal:"重置终端",vmCloseTerminal:"关闭终端",progressBrowserSearch:"正在搜索",progressWebExtract:"正在提取",progressWebSave:"正在保存",progressAppendFile:"正在编辑",progressModifyFile:"正在编辑",progressCreateFile:"正在创建",progressDeleteFile:"正在删除",progressReadFile:"正在读取",progressReader:"正在读取",progressFocus:"正在聚焦",progressUnfocus:"正在处理",progressRunCommand:"运行命令",progressTerminalSession:"打开终端",progressTerminalInput:"终端输入",progressTerminalSnapshot:"获取终端输出",progressMemoryUpdate:"正在同步记忆",progressTodoCreate:"正在更新待办",progressTodoUpdate:"正在更新待办",progressTodoFinish:"正在完成任务",progressTodoFinishConfirm:"正在确认任务",progressTodoDelete:"正在移除任务",progressWait:"正在等待",progressSleep:"正在等待",progressCreateFolder:"正在创建文件夹",progressRenameFile:"正在重命名",progressTerminalReset:"正在重置终端",progressTerminalSleep:"准备等待",progressTerminalRun:"终端运行中",progressOcr:"正在提取",progressMemory:"正在同步记忆",progressTodo:"正在管理待办",progressGenericTool:"调用工具"},Dm={applyModify:"应用修改",appendContent:"追加内容",apply:"应用",run:"执行",downloadFile:"下载文件",appendFailedRetry:"{path} 写入失败,请按提示重新尝试。",modifyRecord:"修改记录",entryTitle:"修改 {n}",modifyTotal:"· 共 {n} 处",modifyCompleted:"· 已完成 {n} 处",modifyDone:"· 完成 {n} 处",modifyRemaining:"· 未完成 {n} 处",modifyProcessed:"已处理 {path}",modifyWarning:"未检测到结束标记,系统已自动处理。",loaderPoolEmpty:"loaderPool 不能为空"},Mm={subAgent:"子智能体",backgroundCommand:"后台指令",agentNamed:"子智能体 {id}",more:"更多",fileWindowTitle:"文件",todoWindowTitle:"待办事项",menuForceStop:"强制关闭",menuRevealInManager:"在文件管理器中打开",menuCopyPath:"复制路径",killForceStopFailed:"强制关闭失败",revealDetectAppsFailed:"检测可用应用失败",revealNoAppsFound:"未找到可用应用",revealOpenFileFailed:"打开文件失败",copiedRelativePath:"已复制相对路径",noProgress:"暂无进度",noOutput:"暂无输出",statusIdle:"空闲",statusCompleted:"已完成",statusFailed:"已失败",statusTimeout:"已超时",statusTerminated:"已终止",statusEnded:"已结束",contextTokensTitle:"上下文 {tokens} tokens",toolReadFile:"阅读 {path}",toolWriteFile:"写入文件 {path}",toolReadSkill:"阅读技能 {name}",toolSearch:"搜索 {query}",toolExtract:"提取 {url}",toolRunCommand:"运行命令 {command}",toolEditFile:"编辑 {path}",toolReadMedia:"读取媒体文件 {path}",contextCompressed:"上下文已压缩(第 {round} 轮)",resizeWidthHint:"拖拽调整宽度",previewTypeUnsupported:"该文件类型不支持预览",loadFailedHttp:"加载失败HTTP {status}",reviewing:"审核中",roundsLabel:"{n} 轮",workflowEndRow:"结束",effortTitle:"推理强度",effortDefault:"默认",effortMoreEfficient:"更高效",effortMoreIntelligent:"更智能",atMenuAria:"文件引用",atMenuPicker:"在文件管理器中选中",atMenuPickerDesc:"选择本地文件",atMenuNoMatch:"没有匹配的文件",atMenuSearching:"搜索中...",uploading:"上传中...",uploadFile:"上传文件",conversationReview:"对话回顾",sendImage:"发送图片",sendVideo:"发送视频",disableTools:"工具禁用",goalMode:"目标模式",goalDone:"完成",goalArmed:"已就绪",settingsMenu:"设置",toolSettingsSyncing:"正在同步工具状态...",noControllableTools:"暂无可控工具",lockedByAdmin:"被管理员锁定",toolDisable:"禁用",toolEnable:"启用",realtimeTerminal:"实时终端",usageStats:"用量统计",compressing:"压缩中...",compressConversation:"压缩对话",approvalPanel:"审批面板",pathAuthorization:"路径授权"},Am={generatingBrainstorming:"正在构思…",generatingPreparing:"稍候AI 正在准备",generatingPreparingTools:"准备工具中",generatingThink:"容我三思…",generatingAnswerSoon:"答案马上就来",generatingLoadingInspiration:"灵感加载中",generatingAssemblingIdeas:"思路拼装中",generatingBestApproach:"琢磨最佳方案",generatingBrainMeeting:"脑内开会中",generatingOrganizing:"整理资料中",generatingPolishing:"润色回复中",generatingContext:"调配上下文",generatingMemorySearch:"搜刮记忆中",generatingAlmostDone:"快敲完了,别急",generatingDomainExpand:"领域展开",generatingToolchain:"工具链装配中…",generatingSentence:"句子正在成形…",generatingRethinking:"让我再捋一捋…",generatingKnowledgeSearch:"知识库检索中…",commandChannelUnavailable:"命令通道不可用",copyContentNotFound:"未找到可复制的内容",blockCopied:"片段 {id} 已复制到剪贴板",contentCopied:"内容已复制到剪贴板",copyBlockedByBrowser:"浏览器阻止了复制操作,请手动选择文本后复制。",codeBlockNotFound:"未找到对应的代码块",codeContentEmpty:"代码内容为空",codeCopied:"代码已复制到剪贴板",copyBlockedManual:"浏览器阻止了复制操作,请手动复制。",applyFailed:"无法应用",applyContentMissing:"缺少可应用的内容",filled:"已填充",checkContentBeforeSend:"请检查内容后发送以应用这些修改。",cannotExecute:"无法执行",commandContentMissing:"没有可执行的命令内容",connectionLost:"连接已断开",reconnectAndRetry:"请重新连接后再试。",commandFailed:"命令执行失败",commandExecuted:"命令已执行",downloadTargetMissing:"没有可下载的目标文件",downloadPathInvalid:"没有提供有效的文件路径",commandIdRequired:"command_id 不能为空",taskIdRequired:"task_id 不能为空",loadModelListFailed:"加载模型列表失败",loadPolicyFailed:"加载策略失败",createTaskFailed:"创建任务失败",pollTaskFailed:"轮询任务失败",cancelTaskFailed:"取消任务失败",fetchTaskListFailed:"获取任务列表失败",pollingFluctuation:"轮询波动",pollingUnstableRetry:"消息更新暂时不稳定,正在自动重试",requestFailed:"请求失败",fileTreeUnavailableHostMode:"宿主机模式下文件树不可用",unlimited:"未限制",confirmAction:"确认操作",confirmOperation:"请确认本次操作",uploadDisabled:"上传被禁用",uploadDisabledByAdmin:"已被管理员禁用上传功能",videoProcessing:"视频处理中",videoProcessingSlow:"读取视频需要较长时间,请耐心等待",uploadingFileTitle:"上传文件",uploadingFile:"正在上传 {name}...",uploadingScanning:"文件已上传,正在执行安全扫描...",serverResponseUnparseable:"服务器响应无法解析",uploadFailed:"上传失败",uploadSuccess:"上传成功:{name}",uploadComplete:"上传完成",genericFile:"文件",uploadSecurityRejected:"{name} 安全审核未通过",uploadTypeNotAllowed:"{name} 文件类型不在允许列表中",uploadFailedWithReason:"{name} 上传失败:{reason}",uploadFailedRetryLater:"{name} 上传失败,请稍后重试",updateFailed:"更新失败",enabled:"已启用",disabled:"已停用",deepCompressMustExceedShallow:"深压缩触发上下文必须大于浅压缩触发上下文",saveFailed:"保存失败",saved:"已保存",autoSaveFailed:"自动保存失败",logoutFailedRetry:"退出登录失败,请稍后重试",toneChatty:"健谈",toneHumorous:"幽默",toneBlunt:"直言不讳",toneEncouraging:"鼓励性",tonePoetic:"诗意",toneCorporate:"企业商务",toneUnconventional:"打破常规",toneEmpathetic:"同理心",idle:"待机",planning:"正在规划",thinking:"思考中",abnormal:"异常",waitingReply:"等待回复",waitingReplyEllipsis:"等待回复...",inProgress:"进行中",playbackStatus:"回放{label}",toolPlayback:"工具操作回放",toolExecFailed:"工具执行失败"},Fm={stopInProgress:"停止中...",stopManually:"手动停止",stopFailed:"停止失败",bgCommandTitle:"后台指令 {id}",bgCommandReadingOutput:"正在读取后台指令输出...",reviewTitle:"对话回顾",reviewSubtitle:"选择要生成回顾文件的对话",generatedHint:"已生成 {path}",conversationList:"对话列表",conversationCount:"共 {n} 条",noConversations:"暂无对话",unnamedConversation:"未命名对话",currentTag:"当前",messageCount:"{n}条",toolCount:" · {n}工具",loadingMore:"载入中...",loadMore:"加载更多",noMore:"没有更多了",previewTitle:"预览(前 {n} 条)",previewGenerating:"预览生成中...",previewEmptyHint:"选择左侧对话以查看预览",previewLimitHint:"最多展示前 {n} 条",previewCount:"{n} 条",sendToModel:"是否发送给模型",generating:"生成中...",goalDoneTitle:"目标已完成",goalStoppedTitle:"目标模式停止",goalRunningTitle:"目标模式进行中",goalLabel:"目标:{goal}",metricTurns:"已运行轮数",metricTokens:"消耗 token",metricToolCalls:"工具调用",metricDuration:"用时",stopReason:"停止原因:{reason}",summaryDone:"完成总结",summaryLatest:"最后进展",statusDone:"已完成",statusStopped:"已停止",reasonIdleNoTool:"主模型停止时未调用任何工具(可能卡住)",reasonMaxTurns:"已达到最大轮数上限",reasonMaxTokens:"已达到累计 token 上限",reasonUserCancel:"用户手动停止",imagePreview:"图片预览",closePreview:"关闭预览",imagePickerTitle:"选择图片最多9张",uploading:"上传中...",sendFromLocal:"从本地发送",noImages:"未找到图片文件",imageSelectedCount:"已选 {n} / 9",tutorialPromptAriaLabel:"新手教程提示",welcome:"欢迎",newUserTitle:"新用户 {name}",user:"用户",tutorialPromptDesc:"是否需要通过新手教程来快速认识这个系统?",processing:"处理中...",startTutorial:"开始吧!",noMorePrompt:"不再提示",pathAuthTitle:"路径授权",writableMode:"可读可写",readableMode:"仅可读",writableHint:"可读可写路径在可写沙箱中可写入,在只读沙箱中仅可读。",readableHint:"仅可读路径会加入只读沙箱的读取白名单(只读沙箱默认拒绝所有读取,仅系统目录、工作区与授权路径可读)。",writablePlaceholder:"每行一个路径,例如:~/Desktop/agents-export",readablePlaceholder:"每行一个路径,例如:~/Documents/reference",planApprovalAriaLabel:"计划待批准",planApprovalTitle:"计划待批准",planApprovalMinimize:"关闭弹窗,稍后从状态栏恢复",planTruncatedNote:"(内容过长,已截断预览,完整内容见文件)",planCommentPlaceholder:"意见(可选):批准时作为补充要求,拒绝时说明需要调整的方向…",planRejectTitle:"拒绝这份计划AI 将根据你的意见修订后重新提交",reject:"拒绝",planApproveTitle:"批准计划并切换到执行模式开始实施",submittingPlan:"提交中…",approveAndExecute:"批准并执行",subAgentProgressTitle:"子智能体 #{id} 进度",readingActivity:"正在读取子智能体活动...",noActivity:"暂无活动记录",toolReadFile:"阅读 {path}",toolWriteFile:"写入文件 {path}",toolReadSkill:"阅读技能 {name}",toolWebSearch:"在互联网中搜索 {query}",toolExtractWebpage:"在互联网中提取 {url}",toolRunCommand:"运行命令 {command}",toolEditFile:"编辑 {path}",toolReadMedia:"读取媒体文件 {path}",toolGeneric:"工具",stateCompleted:"完成",stateCalling:"调用中",stateInProgress:"进行中",tutorialExit:"退出",tutorialFallbackTitle:"新手教程",tutorialWaitingTarget:"未找到目标元素,可稍后重试或跳过当前步骤。",tutorialMustClickHint:"请点击高亮目标继续。",tutorialScrollHint:"提示:个人空间内容可上下滚动查看。",tutorialComplete:"完成",tutorialClickFirst:"请先点击高亮目标",tutorialNextSkip:"下一步(跳过)",tutorialNext:"下一步",userQuestionAriaLabel:"需要你回答一个问题",windowControlAria:"窗口控制",minimizeAria:"暂时收起",userQuestionWindowTitle:"需要你确认",questionIndex:"问题 {current} / {total}",questionNavAria:"问题切换",prevQuestionAria:"上一个问题",nextQuestionAria:"下一个问题",answerPlaceholder:"输入文字回答…",dismissTitle:"不回答当前这个问题AI 将改为在对话中直接提问",dismiss:"✕ 不回答",submittingAnswer:"提交中...",switchOn:"开启",switchOff:"关闭",refresh:"刷新",emptyMessage:"(空消息)",filesCount:"{n} 文件",noCheckpoints:"暂无版本点",loadingDetail:"加载详情中...",detailTitle:"提交详情 #{seq}",noDiffLines:"暂无可展示的文本变更行",diffTruncated:"内容过长,已截断展示",selectCheckpoint:"请选择一个版本点查看详情",restoreScope:"回溯范围",scopeConversationOnly:"仅回溯对话",scopeWorkspaceAndConversation:"回溯对话和工作区",restoreModeLabel:"回溯模式",modeOverwrite:"覆盖当前对话",modeCopy:"复制对话",restoring:"回溯中...",confirmRestore:"确认回溯",videoPickerTitle:"选择视频(一次最多 1 个)",noVideos:"未找到视频文件",videoSelectedCount:"已选 {n} / 1"},Rm={confirmOperation:"确认操作",downloadFile:"下载文件",downloadArchive:"下载压缩包",closeNotification:"关闭通知",focusFilesCount:"聚焦文件 ({n}/3)",closeFocusPanel:"关闭聚焦面板",noFocusFiles:"暂无聚焦文件",closeGitPanel:"关闭 Git 变更面板",loadingGitChanges:"正在加载 Git 变更...",noUncommittedChanges:"当前没有未提交变更",openFileWithApp:"用应用打开文件",dockerModeUnavailable:"Docker 模式不可用",noAppsDetected:"未检测到可用应用",restore:"恢复",hiddenLines:"{n} 行未编辑的内容",unsetUpstream:"未设置云端分支",detectAppsFailed:"检测应用失败",openFileFailed:"打开文件失败",waitingTerminalSession:"等待终端会话...",closeTerminalPanel:"关闭终端面板",noOpenTerminals:"当前没有开启的终端",closeApprovalPanel:"关闭审批面板",noPendingApprovals:"暂无待审批操作",pathLabel:"路径:",renameLabel:"重命名:",toolLabel:"工具:",summaryLabel:"说明:",switchToUnrestricted:"切换到无限制",run:"运行",reject:"拒绝",toolApprovalTitle:"工具审批 ({n})",toolRunCommand:"执行命令",toolTerminalInput:"终端输入",toolCreateFile:"创建文件",toolCreateFolder:"创建文件夹",toolDeleteFile:"删除文件",toolRenameFile:"重命名文件",toolWriteFile:"写入文件",toolEditFile:"编辑文件",pendingApproval:"待审批操作"},Pm={expandConversations:"展开对话记录",collapseConversations:"收起对话记录",conversationHistory:"对话记录",newConversation:"新建对话",project:"项目",workspace:"工作区",workflows:"工作流",searchConversationPlaceholder:"搜索对话",normalConversations:"普通对话",multiAgent:"多智能体",runningTasksTitle:"运行中的任务",runningConversation:"运行中的对话",completed:"已完成",currentWorkspace:"当前工作区",pinWorkspace:"置顶",unpinWorkspace:"取消置顶",revealInFolder:"在文件夹中打开",rename:"重命名",noConversations:"暂无对话",loadingMore:"载入中...",loadMore:"加载更多",noMatchingConversations:"未找到匹配对话",loading:"正在加载...",noConversationHistory:"暂无对话记录",searching:"搜索中...",searchMore:"搜索更多",searchExhausted:"已全部搜索",renameTitle:"重命名{kind}",renamePlaceholder:"请输入名称",personalSpace:"个人空间",workspaceCount:"{n} 个",deleteProjectConfirm:"删除「{label}」?项目文件夹和对话记录将一并删除。",deleteWorkspaceConfirm:"删除「{label}」?不会删除磁盘上的文件夹。",unconfiguredPath:"(未配置路径)",default:"默认",noProjects:"暂无项目",noWorkspaces:"暂无工作区",createNoun:"新建{noun}",projectNamePlaceholder:"项目名称",workspaceNamePlaceholder:"工作区名称(可选)",pathPlaceholder:"路径:绝对路径或相对仓库路径",creating:"创建中...",create:"创建",setDefault:"设为默认",collapseUsage:"收起用量统计",tokenStats:"Token 统计",currentContext:"当前上下文",cumulativeInput:"累计输入",cumulativeOutput:"累计输出",cumulativeCachedInput:"累积缓存输入",cacheHitRate:"缓存命中率",performanceStats:"性能统计",memory:"内存",containerMetricsPending:"容器已运行,等待采集指标...",hostModeNoContainer:"当前运行在宿主机模式,暂无容器指标。",quotaStats:"额度统计",resetAt:"重置 {time}",resourceStats:"资源统计",network:"网络",storage:"存储",quotaTierFast:"常规模型",quotaTierThinking:"思考模型",quotaTierSearch:"搜索",unknown:"未知",stopped:"停止",containerRunning:"运行"},Em={loginTitle:"Astrion 登录",loginSubtitle:"使用账号继续访问工作台",email:"邮箱",password:"密码",login:"登录",hostModeNoLogin:"宿主机模式(免登录)",noAccount:"还没有账号?",signUp:"点击注册",emailAndPasswordRequired:"请输入邮箱和密码",serviceUnavailable:"服务暂时不可用,请稍后重试",loginFailed:"登录失败",networkErrorRetry:"网络错误,请重试",resourceBusy:"资源繁忙,请稍后再试",hostModeUnavailable:"宿主机模式不可用",createAccount:"创建账号",registerDoneHint:"完成注册后即可登录使用",username:"用户名",usernamePlaceholder:"仅限小写字母/数字/下划线",inviteCode:"邀请码",requiredPlaceholder:"必填",register:"注册",haveAccount:"已有账号?",backToLogin:"返回登录",fillAllFields:"请完整填写所有字段",registerFailed:"注册失败"},Nm={fullscreenPreview:"全屏预览",refresh:"刷新",closeEsc:"关闭Esc",closeFullscreenPreview:"关闭全屏预览",copyCode:"复制代码",quotaTypeThinking:"思考模型",quotaTypeSearch:"搜索",quotaTypeFast:"常规模型",quotaExhaustedResetIn:"{type} 配额已用完,将在 {time} 重置",contextTooLong:"上下文过长",contextNearLimit:"当前对话上下文接近上限,建议使用压缩功能。",videoReading:"视频读取中",videoReadingSlow:"读取视频需要较长时间,请耐心等待",unknownFile:"未知文件",subAgentItem:"子智能体{id} ({summary})",noDescription:"无描述",waitingForSubAgents:"⏳ 等待 {n} 个后台子智能体完成:{list}",listSeparator:"、",unknownErrorOccurred:"发生未知错误",requestRecord:"请求记录: {path}",endpoint:"接口: {endpoint}",model:"模型: {model}",conversationIdLabel:"对话ID: {id}",taskIdLabel:"任务ID: {id}",apiError:"API 错误",apiErrorWithCode:"API 错误 {code}",systemStatus:`系统状态:
{data}`,commandFailed:"命令失败: {message}"},Im={setupTitle:"安装沙箱环境",setupAriaLabel:"沙箱环境安装向导",introWhat:"沙箱是一个隔离的命令执行环境(基于 WSL2。AI 执行的所有终端命令都在沙箱内运行,与您的系统隔离。",introEffect:"未安装沙箱时,需要隔离执行的命令将无法运行,工具调用会直接报错。",introDisk:"将下载约 3MB 的 Alpine 迷你系统并安装到 {path}(含工具链总占用约 100~300MB。",introUninstall:"可随时通过命令 wsl --unregister {distro} 完全卸载。",introSecure:"安装的是专用沙箱发行版(已关闭 Windows 互操作),不能使用已安装的 Ubuntu 等日常发行版代替。",stateWslMissing:"检测到系统尚未启用 WSL2。安装过程需要先启用 WSL2系统将弹出管理员授权授权后可能需要重启电脑。",stateDistroMissing:"检测到 WSL2 已就绪,但尚未安装沙箱专用发行版。点击安装即可自动完成。",stateBwrapMissing:"检测到沙箱发行版存在,但缺少 bubblewrap 组件。点击安装将自动修复。",stateChecking:"正在检测沙箱环境…",phaseEnablingWsl:"正在请求管理员授权以启用 WSL2请在系统弹窗中确认…",phaseInstallingWsl:"正在下载并安装 WSL2 组件,可能需要几分钟…",phaseVerifying:"正在验收安装结果…",phaseDone:"安装完成,沙箱环境已就绪。",phaseNeedsReboot:"WSL2 已启用,但需要重启电脑后才能继续。请重启后重新打开本向导完成安装。",phaseError:"安装失败",stepCheckWsl:"检查 WSL 环境",stepCheckDistro:"检查发行版",stepDownloadRootfs:"下载 Alpine 系统",stepImportDistro:"导入 WSL2 发行版",stepWriteConfig:"写入沙箱配置",stepInstallTools:"安装沙箱工具链",downloadProgress:"已下载 {size}",logLabel:"安装日志",installNow:"立即安装",later:"暂不安装",neverAgain:"不再提示",rebootDone:"我已重启,继续安装",uacCancelledHint:'已取消管理员授权。启用 WSL2 需要管理员权限,请点击重试并在系统弹窗中选择"是"。',sectionTitle:"沙箱环境",sectionReady:"已就绪",sectionMissing:"未安装",sectionChecking:"检测中…",sectionUnavailable:"当前环境不适用",sectionDesc:"Windows 宿主机模式下,命令在基于 WSL2 的沙箱中隔离执行。",openWizard:"打开安装向导",recheck:"重新检测",neverAgainSet:'已选择"不再提示"',resetNeverAgain:"恢复提示"},Lm={common:dm,personalization:um,toolResults:pm,input:mm,tutorial:fm,monitor:gm,workflow:hm,adminDashboard:bm,adminPolicy:vm,adminApi:wm,adminCustomTools:ym,appMessages:Tm,appTasks:km,appUi:Cm,appCore:Sm,chat:_m,chatActions:Dm,quickdock:Mm,stores:Am,overlay:Fm,shell:Rm,sidebar:Pm,auth:Em,utils:Nm,sandbox:Im},xm={ok:"OK",confirm:"Confirm",cancel:"Cancel",close:"Close",save:"Save",delete:"Delete",copy:"Copy",copied:"Copied",copyFailed:"Copy failed",download:"Download",downloadFailed:"Download failed",retry:"Retry",retryLater:"Please try again later",loading:"Loading...",loadFailed:"Failed to load",success:"Success",failed:"Failed",unknownError:"Unknown error",running:"Running",notRunning:"Not running",refreshing:"Refreshing...",saving:"Saving...",noData:"No data",newConversation:"New Chat",moreActions:"More actions",tool:"Tool",versioning:"Versioning",unset:"Not set",settings:"Settings",back:"Back",settingsLanguage:"Language",settingsLanguageDesc:"Choose the display language",justNow:"Just now",secondsAgo:"{n}s ago",minutesAgo:"{n}min ago",hoursAgo:"{n}h ago",daysAgo:"{n}d ago",timeDate:"{month}/{day} {hour}:{minute}"},Om={closePersonalSpaceAriaLabel:"Close personal space",tabAriaLabel:"Switch personal space sections",loadingPersonalization:"Loading personalization settings...",tabGeneral:"General",tabPreferences:"Personalization",tabModel:"Model & Thinking",tabAppearance:"Appearance & Display",tabWorkspace:"Workspace & Permissions",tabContext:"Context",tabTools:"Tools & Skills",tabFiles:"Files & Images",tabVoice:"Voice Model",tabSubAgents:"Sub-agents",tabReviewAgents:"Review Agents",tabAdmin:"Admin",autoTitleTitle:"Auto-generate conversation titles",autoTitleDesc:"On by default; when off, the title uses the first message",tutorialTitle:"Getting started",tutorialDesc:"Learn key features and common settings through highlights and callouts",tutorialButton:"Start tutorial",appUpdateTitle:"App updates",appUpdateDesc:"Current version: {version} · {checked}",appCheckUpdate:"Check for updates",appChecking:"Checking...",appVersionUnknown:"Unknown",appUpdateNotChecked:"Not checked",appUpdateFound:"New version available",appUpdateLatest:"Up to date",appUpdateNeverChecked:"Not checked yet",appUpdateJustChecked:"Just checked",appUpdateCheckedAt:"Last checked: {time}",appUpdateFailed:"Failed to check for updates",appUpdateNoUrl:"No download URL available",logoutTitle:"Sign out",logoutDesc:"End the current account session",preferencesTitle:"Enable personalized prompts",preferencesDesc:"Your preferences are only injected when enabled",selfIdentifyTitle:"AI agent's name",selfIdentifyPlaceholder:"e.g. Nova, Assistant A",userNameTitle:"What to call you",userNamePlaceholder:"e.g. Jojo, Teacher",professionTitle:"Profession",professionPlaceholder:"e.g. Product manager, Designer",toneTitle:"Tone",tonePlaceholder:"Choose or type a tone",considerationsTitle:"Always consider",considerationsDesc:"Referenced as background before every answer",considerationsPlaceholder:"e.g. The user owns a brown male teddy dog since 2014...",hideBlockBordersTitle:"Hide block borders",hideBlockBordersDesc:"Remove dividers between stacked blocks for a cleaner look",minimalExpandHeightTitle:"Limit expanded height",minimalExpandHeightDesc:"In minimal mode, cap the height when expanding the summary line; scroll inside if it overflows",communicationStyleTitle:"Communication style",communicationStyleDesc:"How the agent communicates with you",communicationDefault:"Default",communicationDefaultDesc:"Standard AI style",communicationHumanLike:"Human-like",communicationHumanLikeDesc:"Mimics natural human conversation",communicationAuto:"Auto",communicationAutoDesc:"Natural in chat; structured answers for complex questions",conversationContinuityTitle:"Conversation continuity",conversationContinuityDesc:"How strongly the agent continues past conversations and memory",continuityHigh:"High",continuityHighDesc:"Actively follows up on history, memory and project context",continuityMedium:"Medium",continuityMediumDesc:"Prioritizes the current conversation; references history when needed",continuityLow:"Low",continuityLowDesc:"Keeps conversations independent; rarely looks at history",defaultModelTitle:"Default model",defaultModelDesc:"Preferred model for new conversations and the first request after sign-in",modelDisabled:"Disabled by administrator",defaultThinkingModeTitle:"Default thinking mode",defaultThinkingModeDesc:"Initial thinking mode on sign-in or when starting a new task",reasoningEffortTitle:"Default reasoning effort",reasoningEffortDesc:"Reasoning effort level attached to model requests in thinking mode",runModeFast:"Fast mode",runModeFastDesc:"Prioritizes speed, skips the thinking model",runModeThinking:"Thinking mode",runModeThinkingDesc:"Uses the thinking model for the whole conversation",effortDefault:"Default",effortDefaultDesc:"No effort specified, uses API default",effortLow:"Low",effortLowDesc:"Lowest reasoning, fastest responses",effortMedium:"Medium",effortMediumDesc:"Light reasoning",effortHigh:"High",effortHighDesc:"Balanced reasoning",effortXhigh:"Extra high",effortXhighDesc:"Stronger reasoning",effortMax:"Max",effortMaxDesc:"Maximum reasoning, best for the hardest tasks",badgeTextOnly:"Multimodal",badgeThinking:"Thinking",themeTitle:"Theme",themeDesc:"Switch between Classic, Light and Dark",groupByWorkspaceTitle:"Group chats by project",groupByWorkspaceDesc:"Fold conversation history by workspace or project in the sidebar",newChatBlankTitle:"New Chat opens a blank page",newChatBlankDesc:'When on, "New Chat" routes to the new-chat page and the conversation is created on the first message; when off, an empty conversation is created immediately',useCustomNamesTitle:"Use custom names",useCustomNamesDesc:"Use the self-name and user name from personalization in the conversation area",enhancedToolDisplayTitle:"Enhanced tool display",enhancedToolDisplayDesc:"Show tool blocks as formatted content; off shows raw JSON",showStatusAvatarTitle:"Show assistant status avatar",showStatusAvatarDesc:"Show idle, thinking, and tool-call status animations on the welcome page and at the end of conversations",showGitStatusBarTitle:"Show Git status bar",showGitStatusBarDesc:"Show branch and change stats above the input when the workspace is a Git repo",autoOpenTerminalTitle:"Auto-open terminal panel",autoOpenTerminalDesc:"Open the sidebar terminal panel automatically when a terminal is created",quickDockAutoExpandTitle:"Auto-expand quick dock",quickDockAutoExpandDesc:"Expand the quick dock automatically when it has content; when off, expand it only with the side button",editSummaryLiveTitle:"Show edit summary live",editSummaryLiveDesc:"Show edited files in real time during a run; when off, show them only after the run completes",filePreviewWrapTitle:"Wrap file preview lines",filePreviewWrapDesc:"Wrap file previews to the panel width; when off, long lines scroll horizontally",blockDisplayModeTitle:"Block display mode",blockDisplayModeDesc:"How thinking and tool blocks are displayed",blockDisplayTraditional:"Traditional list",blockDisplayTraditionalDesc:"Vertical list in chronological order, classic style",blockDisplayStacked:"Stacked animation",blockDisplayStackedDesc:'Stacks more than 6 items under "More", animated',blockDisplayMinimal:"Minimal mode",blockDisplayMinimalDesc:"Summary line + seamless expand, streamed output",badgeRecommended:"Recommended",badgeNew:"New",compactMessageTitle:"Compact system messages",compactMessageDesc:"How compact system messages (review, sub-agents) are displayed",compactMessageFull:"Full info",compactMessageFullDesc:"Show full original content for review, sub-agent and other system messages",compactMessageBrief:"Brief",compactMessageBriefDesc:"Replace system messages with a one-line summary",themeClassic:"Classic",themeClassicDesc:"Beige tones, soft and high-contrast",themeLight:"Light",themeLightDesc:"Pure white + elegant grey, clean and fresh",themeDark:"Dark",themeDarkDesc:"Deep grey + black, dimmed with colorful accents",localeZhCN:"简体中文",localeChineseDesc:"Chinese (Simplified)",localeEnglish:"English",localeEnglishDesc:"English (US)",defaultPermissionTitle:"Default permission",defaultPermissionDesc:"Default permission mode for new conversations",permissionReadonly:"Read-only",permissionReadonlyDesc:"Read/search tools only; modification operations are rejected",permissionApproval:"Approval",permissionApprovalDesc:"Tools that modify workspace files require manual approval",permissionAutoApproval:"Auto-approval",permissionAutoApprovalDesc:"Writes pass through; high-risk operations are auto-approved by the background review agent",permissionUnrestricted:"Unrestricted",permissionUnrestrictedDesc:"Tools execute directly through the normal flow",defaultWorkModeTitle:"Default work mode",workRunModeDesc:"Default work mode for new conversations; locked to read-only in plan mode",workModePlan:"Plan",workModePlanDesc:"Only makes a plan and executes after approval",workModeAsk:"Ask",workModeAskDesc:"Discuss and confirm before starting",workModeExecute:"Execute",workModeExecuteDesc:"Fills in details and starts directly",agentsMdInjectTitle:"Auto-inject AGENTS.md",agentsMdInjectDesc:"Automatically inject system prompt when AGENTS.md exists in the workspace root",claudeMdInjectTitle:"Auto-inject CLAUDE.md",claudeMdInjectDesc:"Automatically inject system prompt when CLAUDE.md exists in the workspace root (off by default, injected alongside AGENTS.md)",agentsSkillsScanTitle:"Scan .agents/skills/ directory",agentsSkillsScanDesc:"Auto-scan industry skills under .agents/skills/ (Agent Skills open standard path) and list them with .astrion/skills/ skills; duplicates with the same name make read_skill error out and suggest reading by specific path",modifyHistoryTitle:"Track file changes",modifyHistoryDesc:"After each task, save this round of write/edit file changes as diffs under .astrion/modify_history/ so accidental overwrites (e.g. by git checkout) can be recovered manually",versionControlDivider:"Version control",versioningByDefaultTitle:"Enable versioning for new chats",versioningByDefaultDesc:"Turned on automatically when creating a new chat; can be disabled below the input",backupModeTitle:"Backup mode",backupModeDesc:"Shallow backup only tracks AI-edited files; full backup snapshots the whole workspace",shallowBackup:"Shallow",shallowBackupDesc:"Fast, only restores edited files",fullBackup:"Full",fullBackupDesc:"Full workspace snapshot; the first one may be slow",goalModeDivider:"Goal mode",goalReviewActiveTitle:"Review agent gathers evidence",goalReviewActiveDesc:"When on, runs read-only commands to verify goals; when off, judges from conversation only",goalMaxTurnsTitle:"Max auto-continuation turns",goalMaxTurnsDesc:"Automatically continues up to 1-100 turns after the main model stops",goalTokenLimitTitle:"Enable cumulative token limit",goalTokenLimitDesc:"Stop goal mode when cumulative input/output exceeds the limit",goalTokenLimitValueTitle:"Cumulative token limit",goalTokenLimitValueDesc:"Goal mode stops when cumulative consumption reaches this value",recentConversationsTitle:"Recent conversation hints",recentConversationsDesc:"Inject several recent non-empty conversations from the current workspace into the system prompt",recentConversationsCountTitle:"Recent conversations to inject",restoreDefault:"Restore default",maxMemoryInjectTitle:"Max memory injection",noLimitPlaceholder:"No limit",compressionStrategyTitle:"Context compression strategy",compressionStrategyDesc:"Control auto shallow and deep compression separately",autoShallowCompressTitle:"Auto shallow compression",autoDeepCompressTitle:"Auto deep compression",shallowTriggerTokens:"Shallow compression trigger context",shallowKeepRecentTools:"Recent tools kept in shallow compression",shallowKeepTurnTools:"Tools kept for current turn (shallow)",shallowMaxReplace:"Max replacements per round",shallowToolInterval:"Trigger on tool-call interval",deepTriggerTokens:"Deep compression trigger context",deepCompressInjectTitle:"Directly inject deep compression",deepCompressInjectDesc:"When on, inject the full text of previous compressions; when off, only hint the file location",restoreCompressionDefaults:"Restore compression defaults",silentToolDisableTitle:"Silently disable tools",silentToolDisableDesc:"No hint message when disabling tools; the model won't notice disabled items",hideToolApprovalTitle:"Hide tool approval panel",hideToolApprovalDesc:"In auto-approval mode, the approval panel no longer expands while tools are being reviewed in the background",toolIntentTitle:"Tool intent hints",toolIntentDesc:"State briefly what a tool will do before calling it",skillHintsTitle:"Skill hint system",skillHintsDesc:"Suggest relevant skills to the model when specific keywords are detected",strictSkillTitle:"Strict constraints",strictSkillDesc:"Applies only to skills enabled in personal space",terminalToolsTitle:"Terminal tools",subAgentToolsTitle:"Sub-agent tools",runCommandFgTitle:"run_command foreground",runCommandBgTitle:"run_command background",availableSkillsTitle:"Available skills",availableSkillsDesc:"Checked skills are injected into the system prompt and synced to .astrion/skills/ in the workspace",disabledToolCategoriesTitle:"Default disabled tool categories",disabledToolCategoriesDesc:"These categories stay off in new tasks once selected",imageCompressionTitle:"Image compression",imageCompressionDesc:"Scale down images proportionally when sent or viewed via view_image",imageOriginal:"Original",imageOriginalDesc:"No compression",image1080p:"1080p",image1080pDesc:"Scale down so the longest edge stays within 1080p",image720p:"720p",image720pDesc:"Scale down so the longest edge stays within 720p",image540p:"540p",image540pDesc:"Scale down so the longest edge stays within 540p",usageEyebrow:"Conversation usage",usageTitle:"Usage statistics",usageDesc:"Cumulative input/output tokens, conversation count, user messages and tool calls across all conversations",usageInputLabel:"Input tokens",usageOutputLabel:"Output tokens",usageConversationsLabel:"Conversations",usageMessagesLabel:"User messages",usageToolsLabel:"Tool calls",usageSyncing:"Syncing latest statistics...",usageUpdated:"Updated {time}",usageRefreshing:"Refreshing...",usageRefresh:"Refresh",usageNeverRefreshed:"Not refreshed yet",usageUnknownTime:"Unknown time",usageFetchFailed:"Failed to fetch usage statistics",voiceModelIntro:"On-device speech recognition model (SenseVoice int8) supporting mixed Chinese/English with automatic punctuation. The model is about 228MB and runs locally on the phone with no network needed.",voiceModelTitle:"Speech recognition model",voiceModelReady:"Downloaded (228MB)",voiceModelDownloading:"Downloading {percent}% — {msg}",voiceModelPartial:"Incomplete download, please download again",voiceModelNotDownloaded:"Not downloaded — click to download",voiceDownloadingBtn:"Downloading...",voiceRedownload:"Re-download",voiceDownloadModel:"Download model",voiceAppOnlyAlert:"Voice model downloads are only available inside the App",voicePreparing:"Preparing...",subAgentsIntro:"Manage sub-agent roles for multi-agent mode. Preset roles can be edited (creating a custom override); custom roles can be created, edited and deleted.",compressThresholdTitle:"Context compression threshold",compressThresholdDesc:"Deep compression triggers when a sub-agent's context tokens exceed this value (default 150000)",maxTurnsTitle:"Max execution turns",maxTurnsDesc:"Max execution turns for a single traditional background sub-agent task (one turn = one model call). Leave empty for the default of 50; 0 means unlimited (use with care — runaway tasks keep consuming API quota). Multi-agent team members are long-term collaborators and are not limited by this",saving:"Saving...",roleListTitle:"Roles",newRole:"+ New Role",noRoles:"No roles yet",customTag:"Custom",presetTag:"Preset",noDescription:"No description",roleMetaId:"ID: {id} · Thinking mode: {mode}",roleMetaModel:" · Model: {model}",edit:"Edit",roleEditorEditTitle:"Edit role",roleEditorCreateTitle:"New role",roleIdTitle:"Role ID",roleIdPlaceholder:"Lowercase letters and underscores, e.g. api-designer",roleNameTitle:"Display name",roleNamePlaceholder:"e.g. API Designer",roleDescTitle:"Description",roleDescPlaceholder:"One sentence describing the role",thinkingModeTitle:"Thinking mode",roleThinkingDesc:"fast = quick responses, thinking = reasoning",fastResponseMode:"Quick response mode",thinkingReasoningMode:"Reasoning mode",modelTitle:"Model",roleModelEmptyDesc:"Leave empty to use the default model",defaultModelOption:"Default model",roleDefaultModelDesc:"Uses default_model from the config file",textOnly:"Text only",promptBodyTitle:"Prompt Body (Markdown)",promptBodyPlaceholder:"Custom prompt body for this role...",deleteRoleConfirm:'Delete role "{name}"?',reviewIntro:"Configure models and run parameters for the three review agents. They share the model library with sub-agents; leave empty to use the library default.",reviewAgentAutoApproval:"Auto-approval agent",reviewAgentAutoApprovalDesc:"Judges whether a tool call is out of scope or dangerous in auto-approval mode",reviewAgentGoalReview:"Goal review agent",reviewAgentGoalReviewDesc:"Judges whether long-term goals are truly met in goal mode",reviewAgentWorkflowReview:"Workflow review agent",reviewAgentWorkflowReviewDesc:"Judges whether stage output meets the bar at workflow review nodes",reviewModelEmptyDesc:"Leave empty to use the model library default",reviewDefaultModelDesc:"Uses the model library default_model",titleModelTitle:"Title generation model",titleModelDesc:"Choose the AI model used to generate conversation titles, shared with sub-agents",titleDefaultModelDesc:"Uses the sub-agent model library default",reviewThinkingDesc:"Falls back to fast mode automatically when the model does not support thinking",timeoutTitle:"Review request timeout",timeoutDesc:"Single model request timeout (5-3600 seconds)",maxRoundsTitle:"Max review rounds",maxRoundsDesc:"Applies the fallback when no conclusion is reached within this many rounds (1-50)",commandTimeoutTitle:"Evidence command timeout",commandTimeoutDesc:"Single timeout for read-only evidence commands (1-600 seconds)",mcpConfigTitle:"MCP server management",mcpConfigDesc:"Configure MCP servers centrally to manage tool extensions",adminMonitorTitle:"Admin monitor",adminMonitorDesc:"Quota trends, container status, project storage and upload security",apiAdminTitle:"API management",apiAdminDesc:"Manage API calls and account",customToolsAdminTitle:"Custom tool management",customToolsAdminDesc:"Create and edit custom tool files online",open:"Open",modelDisabledTitle:"Model disabled",modelDisabledMessage:"This model has been disabled by the administrator and cannot be selected",modelModeConflictTitle:"Model / thinking mode conflict",modelThinkingOnlyWarning:"{label} only supports thinking mode. Your setting was kept.",modelFastOnlyWarning:"{label} only supports fast mode. Your setting was kept.",expTitle:"First time? Choose a mode that fits you",expSubtitle:"Speed, web access and tool scope differ; switch anytime in personal space",expConfirmStart:"Confirm & Start",expModeFastBadge:"Lightning",expModeFastTitle:"Quick answers",expModeFastDesc:"Answers your questions quickly, searches the web, and doesn't write files",expModeThinkingBadge:"Thinking",expModeThinkingTitle:"Think first",expModeThinkingDesc:"Thinks before completing tasks, searches the web, and doesn't write files; replies take longer",expModeResearchBadge:"Research",expModeResearchTitle:"Multi-step research",expModeResearchDesc:"Multi-step reasoning and 20+ tools for complex tasks; replies may take a while",expModeExpertBadge:"Expert",expModeExpertTitle:"Full-featured exploration",expModeExpertDesc:"Explore every configuration option freely; built for agent experts and practitioners"},Um={status:{successMark:"✓ Success",failedMark:"✗ Failed",completed:"✓ Done",saved:"✓ Saved",created:"✓ Created",written:"✓ Written",edited:"✓ Edited",deleted:"✓ Deleted",renamed:"✓ Renamed",read:"✓ Read",updated:"✓ Updated",archived:"✓ Archived",answered:"✓ Answered",replied:"✓ Replied",sent:"✓ Sent",closed:"✓ Closed",triggered:"✓ Triggered",returned:"✓ Returned",generated:"✓ Generated",overwrittenUpdated:"✓ Overwritten",rejected:"✗ Rejected",cancelled:"✗ Cancelled",createFailed:"✗ Create failed",closeFailed:"✗ Close failed",sendFailed:"✗ Send failed",replyFailed:"✗ Reply failed",awaitingUserAnswer:"Awaiting answer",awaitingApproval:"Pending approval",awaitingApprovalDots:"Awaiting approval...",done:"Done",notFound:"Not found",terminated:"Terminated",waiting:"Waiting"},labels:{tool:"Tool:",status:"Status:",path:"Path:",error:"Error:",query:"Search query:",topic:"Topic:",timeRange:"Time range:",domains:"Domains:",resultCount:"Results:",savePath:"Save path:",url:"URL:",mode:"Mode:",size:"Size:",searchKeyword:"Search keyword:",matchCount:"Matches:",found:"Found:",replaced:"Replaced:",replacementGroups:"Replacement groups:",segmentCount:"Extracted segments:",operation:"Operation:",terminalName:"Terminal:",command:"Command:",waitTime:"Wait time:",timeout:"Timeout:",lineRange:"Line range:",reason:"Reason:",waitSubAgent:"Waiting for sub-agent:",taskId:"Task ID:",backgroundCommandId:"Background command ID:",exitCode:"Exit code:",keywords:"Keywords:",description:"Description:",memory:"Memory:",memoryContent:"Memory content:",dateRange:"Date range:",scope:"Scope:",id:"ID:",firstUserMessage:"First user message:",updatedAt:"Updated at:",conversationId:"Conversation ID:",title:"Title:",reviewFile:"Review file:",charCount:"Characters:",skill:"Skill:",workflow:"Workflow:",workflowCount:"Workflows:",source:"Source:",nodeCount:"Node:",sourceDir:"Source dir:",nodeCountTotal:"Node count:",updatedField:"Updated field:",updatedValue:"New value:",validation:"Validation:",question:"Question:",context:"Context:",providedOptions:"Provided options:",userAnswer:"User answer:",subAgent:"Sub-agent:",subAgentId:"Sub-agent ID:",deliverablesDir:"Deliverables dir:",task:"Task:",workTime:"Work time:",questionId:"Question ID:",roleId:"Role ID:",roleName:"Role name:",roleCount:"Roles:",thinkingMode:"Thinking mode:",custom:"Custom:",activeCount:"Active:",lastOutput:"Last output:",type:"Type:",analysis:"Analysis:",ocrText:"Recognized text:",output:"Output:",fetchedContent:"Fetched content:",result:"Result:",subAgentOutput:"Sub-agent output:",backgroundCommandOutput:"Background command output:",reviewContent:"Review content:",rename:"Renamed:",waitedSubAgents:"Waited for {n} sub-agents:"},sectionLabels:{executionStats:"Execution stats",finalReply:"Final reply",replyContent:"Reply content"},fields:{path:"Path",filePath:"Path",agentId:"Sub-agent ID",targetAgentId:"Target sub-agent ID",displayName:"Sub-agent",targetDisplayName:"Target sub-agent",question:"Question",roleId:"Role ID",url:"URL"},personalization:{fieldLabels:{selfIdentify:"AI self-reference",userName:"User name",profession:"User profession",tone:"Tone",considerations:"Guidelines",theme:"Theme",communicationStyle:"Communication style",conversationContinuity:"Conversation continuity",enabled:"Personalization toggle"},values:{enabled:"On",disabled:"Off",styleDefault:"Default (standard AI style)",styleHumanLike:"human_like (conversational)",styleAuto:"auto (automatic)",independenceLow:"Low",independenceMedium:"Medium",independenceHigh:"High"},actionUpdate:"Update config",actionRead:"Read config"},duration:{zero:"0s",seconds:"{seconds}s",minutesSeconds:"{minutes}m {seconds}s",minutes:"{minutes}m",hours:"{hours}h",hoursMinutesSeconds:"{hours}h {minutes}m {seconds}s",runtimeNote:"Ran for {n}s"},counts:{foundValue:"{n}",replacedValue:"{n}",memoryHits:"Memory hits: {n}",apiCalls:"API calls: {n}",toolCalls:"Tool calls: {n}",conversationScale:"Scale: {n} messages, {m} tools",statApiCalls:"API calls {n}",statFilesRead:"Files read {n}",statEditFiles:"Files edited {n}",statSearches:"Searches {n}",statWebPages:"Web pages {n}",statCommands:"Commands {n}"},sentences:{emptyResult:"Tool executed successfully; nothing else to display.",mcpDone:"{name} executed",hinted:"May need {name}...",preparing:"Preparing to call {name}...",noOutput:"[No output]",tooLongSaved:"Content too long; saved to a file. Read it in sections or search within it.",queryFailed:"Query failed",noWorkflows:"No workflows available.",noSubAgentStatus:"No sub-agent status returned.",noRoles:"No roles available.",noActiveSubAgents:"No active sub-agents in this session.",noMatchesMemory:"No matching project memories found.",noMatchesConversation:"No matching conversations found.",noSearchResults:"No detailed search results returned.",noMatches:"No matching content found",noExtractedContent:"Nothing was extracted",overwrittenVersion:"Overwrote an existing version",userCopyShadow:"User copy (shadows built-in)",conversationScope:"Workspace history (excluding this conversation)",memoryAdd:"Memory added",memoryUpdate:"Memory updated",memoryDelete:"Memory deleted",subAgentResultName:"Sub-agent #{agentId}",subAgentResultMeta:" (task {taskId}) · {status} · {outcome}",searchQuote:'"{text}"',readSearch:"Search {query}, got {count} results",readExtract:"Extracted {n} lines"},values:{none:"None",append:"Append",overwrite:"Overwrite",deleted:"Deleted",unlimited:"Any",notSpecified:"(Not specified)",noTitle:"Untitled",unnamed:"Untitled",unnamedConversation:"Untitled conversation",noDescription:"(No description)",noLink:"No link available",builtin:"Built-in",user:"User",yes:"Yes",no:"No",unknown:"Unknown",colon:":",optionLabel:"Option {n}",line:"Line {line}"},search:{topicGeneral:"General",topicNews:"News",topicFinance:"Finance",timeLast24h:"Last 24 hours",timeLast7d:"Last 7 days",timeLast30d:"Last 30 days",timeLast365d:"Last 365 days",timeUnlimited:"No time limit",timeRelative:"Relative range: {range}",timeLastDays:"Last {n} days",timeRangeTo:"{start} to {end}",domainsUnlimited:"No domain limit"},media:{ocrImgAlt:"OCR image",viewImgAlt:"View image",viewImgTitle:"Open original in new window"},mcpTool:"MCP tool",runningStatus:{createFile:"Creating file...",sleep:"Waiting...",deleteFile:"Deleting file...",renameFile:"Renaming file...",writeFile:"Writing file...",editFile:"Editing file...",createFolder:"Creating folder...",webSearch:"Searching the web...",extractWebpage:"Extracting webpage...",saveWebpage:"Saving webpage...",runCommand:"Calling run_command",updateMemory:"Updating memory...",recallProjectMemory:"Recalling project memory...",searchProjectMemory:"Searching project memory...",updateProjectMemory:"Updating project memory...",terminalSession:"Managing terminal session...",terminalInput:"Calling terminal_input",terminalSnapshot:"Fetching terminal snapshot...",readSkill:"Reading skill...",createSkill:"Archiving skill...",askUser:"Waiting for user answer...",readFile:"Reading file...",readSearch:"Searching...",readExtract:"Extracting content...",fallback:"Calling tool"},completedStatus:{createFile:"File created",deleteFile:"File deleted",sleep:"Wait complete",renameFile:"File renamed",writeFile:"File written",editFile:"File edited",createFolder:"Folder created",webSearch:"Search complete",extractWebpage:"Webpage extracted",saveWebpage:"Webpage saved (plain text)",vlmAnalyze:"Image analyzed",runCommand:"Command executed",updateMemory:"Memory updated",recallProjectMemory:"Project memory recalled",searchProjectMemory:"Project memory search complete",updateProjectMemory:"Project memory updated",terminalSession:"Terminal operation complete",terminalInput:"Terminal input sent",terminalSnapshot:"Terminal snapshot returned",readSkill:"Skill read",createSkill:"Skill archived",askUser:"User answered",readFile:"File read complete",fallback:"Executed"}},Wm={guide:"Guide",openInFileManager:"Open in File Manager",copyPath:"Copy Path",copyBranchName:"Copy Branch Name",goalModeRunning:"Goal mode running",goalModeReady:"Goal mode ready",waitingForQuestion:"Waiting for your answer",planApprovalPending:"Plan awaiting approval",subAgentsRunning:"{n} sub-agents running",terminalsRunning:"{n} terminals",quickMenuAriaLabel:"Quick menu",workModeLockedTitle:"A conversation is running; switch modes only when idle",workModeTitle:"Run Mode",versionControl:"Version Control",permissionLockedByPlanTitle:"In plan mode, permission and execution environment are locked; network access can still be adjusted",executionLockedRestrictedTitle:"In readonly/approval/auto-approval mode, the execution environment is locked to sandbox",permissionGroup:"Permission",planModeLocked:"Locked by plan mode",executionEnv:"Execution Environment",restrictedModeLocked:"Locked by restricted mode",networkPermission:"Network Access",usedPercent:"{n} used",pokeStop:"No!",pokeHalt:"Stop it!",pokeDontPoke:"Stop poking!",pokeOops:"Ouch!",pokeYouPokedMe:"You poked me!",pokeGentle:"Be gentle!",pokeNotButton:"I'm not a button!",pokeNoClicking:"No random clicking!",pokeWhimper:"Ugh... stop poking me...",pokeHexagonHurt:"Hexagons hurt too!",pokeDeform:"Poke me again and I will deform!",pokeNervous:"I'm getting nervous...",pokePretendCalm:"Pretending to stay calm...",pokeTokensFell:"Tokens spilled everywhere!",pokeContextMessy:"You messed up the context!",pokeAntiPokeFailed:"Anti-poke mode failed to start",pokeSystemHint:"System: the AI was poked",pokeWarning:"Warning: fidgety behavior detected",pokeRemembered:"I'll remember that!",pokePokeBack:"Poke back!",newConversationDesc:"Start a new conversation (new / clear)",uploadFile:"Upload File",uploadingDesc:"Uploading...",selectFileDesc:"Choose a local file to upload",sendImage:"Send Image",sendImageDesc:"Pick an image to attach to the message",imageNotSupported:"The current model does not support images",sendVideo:"Send Video",sendVideoDesc:"Pick a video to attach to the message",videoNotSupported:"The current model does not support videos",compressConversation:"Compress Conversation",compressingDesc:"Compressing...",compressDesc:"Manually compress the current conversation context",selectAgentSkill:"Select an AgentSkill",selectAgentSkillDesc:"Insert an AgentSkill reference (// shortcut)",workflows:"Workflows",workflowRunningDesc:"Running: {name} · view or exit",workflowActivateDesc:"Activate a workflow to drive the agent through a process",conversationType:"Conversation Type",conversationTypeDesc:"agent / multi-agent · single / multi agent (switchable for new chats)",switchWorkMode:"Switch Work Mode",switchWorkModeDesc:"plan / ask / execute",switchTheme:"Switch Theme",switchThemeDesc:"Classic / Light / Dark",conversationReview:"Conversation Review",conversationReviewDesc:"Open the current conversation review",usageStats:"Usage Stats",usageStatsDesc:"Open the context and token usage panel",goalMode:"Goal Mode",goalModeArmed:"Goal mode armed",goalModeToggleDesc:"Toggle goal mode",personalSettings:"Personal Settings",personalSettingsDesc:"Open personal space settings",realtimeTerminal:"Live Terminal",realtimeTerminalDesc:"Open the live terminal panel",switchModel:"Switch Model",switchModelDesc:"Choose the model for this conversation",thinkingMode:"Thinking Mode",thinkingModeDesc:"Switch fast / thinking",permissionMode:"Permission Mode",permissionModeDesc:"Switch readonly / approval / auto / unrestricted",networkPermissionDesc:"restricted / full",networkUnsupportedDesc:"Network access switching is not supported in this environment",executionEnvDesc:"Switch sandbox / direct",switchProject:"Switch Project",switchWorkspace:"Switch Workspace",workspaceDesc:"workspace / project",versioningOn:"Currently on",versioningOff:"Currently off",gitStatusBar:"Git Status Bar",gitStatusBarShown:"Currently showing",gitStatusBarHidden:"Currently hidden",pathAuth:"Path Authorization",pathAuthDesc:"View and manage path authorization",approvalPanel:"Approval Panel",approvalPanelDesc:"View approval records",themeClassic:"Classic",themeClassicDesc:"Beige texture, soft and high contrast",themeLight:"Light",themeLightDesc:"Pure white base with elegant gray, clean and fresh",themeDark:"Dark",themeDarkDesc:"Dark gray plus black, low brightness",permissionLockedReadonlyDesc:"In plan mode, permission is locked to read-only",executionLockedSandboxDesc:"In plan mode, the execution environment is locked to sandbox",currentMark:"Current",optionWithCurrent:"Current · {desc}",conversationTypeLockedDesc:"The conversation type is fixed after creation; switch only for new chats",slashSkillsAria:"Available AgentSkills",slashWorkflowsAria:"Workflow options",slashThemeAria:"Theme options",slashPermissionAria:"Permission mode options",slashExecutionAria:"Execution environment options",slashModelAria:"Model options",slashRunModeAria:"Thinking mode options",slashNetworkAria:"Network access options",slashWorkModeAria:"Work mode options",slashProjectAria:"Project options",slashWorkspaceAria:"Workspace options",slashConversationTypeAria:"Conversation type options",slashRootAria:"Quick commands",skillsLoadingEmpty:"Loading skills...",skillsEmpty:"No matching skill",workflowsLoadingEmpty:"Loading workflows...",workflowsEmpty:"No workflows available (create one at /workflows)",permissionEmpty:"No permission modes available",executionEmpty:"No execution environments available",modelEmpty:"No models available",networkEmpty:"No network access options available",workModeEmpty:"No work modes available",projectEmpty:"No other projects",workspaceEmpty:"No other workspaces",conversationTypeEmpty:"No conversation types available",commandEmpty:"No matching command",loadSkillsFailed:"Failed to load skills",loadWorkflowsFailed:"Failed to load the workflow list",activateWorkflowFailed:"Failed to activate workflow",workflowActivated:'Workflow "{name}" activated',exitWorkflowFailed:"Failed to exit workflow",workflowExited:'Exited workflow "{name}"',exitCurrentWorkflow:"Exit Current Workflow",workflowRunningExitDesc:"Running: {name} · exit without interrupting current work",workflowCurrentActive:"Currently active",workflowNoDesc:"(No description)",workflowBuiltinSuffix:" · Built-in",workflowItemDesc:"{desc}{builtinSuffix}",messagePlaceholder:"Type a message... (Ctrl+Enter to send)",voiceModelDownloading:"Downloading model {percent}%",voiceModelNotReady:"Model not downloaded; download it in personal space",stopRecording:"Stop Recording",voiceInput:"Voice Input",goalModeCompleted:"Goal mode complete",agentType:"Agent",agentTypeDesc:"Single-agent conversation",multiAgentType:"Multi-agent",multiAgentTypeDesc:"Team Leader + sub-agent collaboration",workModePlanFallback:"Plan",executionFullAccess:"Full Access",executionSandbox:"Sandbox",runModeFast:"Fast",runModeThinking:"Thinking"},Bm={welcomeTitle:"Welcome to Astrion",welcomeDesc:"Let's take 2-3 minutes to explore the core features.",sidebarConversationsOpenTitle:"Expand conversation history",sidebarConversationsOpenDesc:"The next step will auto-expand the conversation history.",sidebarConversationsCloseTitle:"Collapse conversation history",sidebarConversationsCloseDesc:"The next step will auto-collapse the conversation history panel.",newChatTitle:"Start a new chat",sidebarNewChatDesc:"The next step will start and open a new chat.",sidebarWorkspaceToggleTitle:"Workspace toggle",sidebarWorkspaceToggleDesc:"Show or hide the left workspace panel.",sidebarMonitorToggleTitle:"Virtual monitor",sidebarMonitorToggleDesc:"Switch to the virtual monitor view.",workspacePanelSwitchTitle:"Workspace panel switcher",workspacePanelSwitchDesc:"The next step will open the panel switcher menu.",workspacePanelOptionsTitle:"Quad panel",workspacePanelOptionsDesc:"Switch between Files, To-dos, Sub-agents, and Background Commands here.",workspaceModeIndicatorTitle:"Thinking mode",workspaceModeIndicatorDesc:"Click to toggle Quick / Thinking.",workspaceConnectionIndicatorTitle:"Connection indicator",workspaceConnectionIndicatorDesc:"Green means connected; red means disconnected from the backend.",headerModelSelectorTitle:"Model & mode selector",headerModelSelectorDesc:"The next step will open the model and run mode popup.",modelListTitle:"Model list",headerModelOptionsDesc:"Here are the available models.",headerRunmodeOptionsTitle:"Run mode list",headerRunmodeOptionsDesc:"Switch between Quick and Thinking here.",headerMenuCloseTitle:"Close model menu",headerMenuCloseDesc:"The next step will click outside to close the menu.",openMenuTitle:"Open the menu",mobileMenuOpenConversationDesc:"The next step will open the top-left menu.",mobileMenuConversationTitle:"Conversation history",mobileMenuConversationDesc:"The next step will open the conversation history.",mobileConversationCloseTitle:"Close conversation history",mobileConversationCloseDesc:"The next step will close the conversation history panel.",openMenuAgainTitle:"Open the menu again",mobileMenuOpenWorkspaceDesc:"The next step will open the menu.",mobileMenuWorkspaceTitle:"Workspace files",mobileMenuWorkspaceDesc:"The next step will open the workspace files.",mobileWorkspacePanelSwitchDesc:"The next step will open the switcher popup.",mobileWorkspacePanelOptionsTitle:"Switcher options",mobileWorkspacePanelOptionsDesc:"Switch between Files, To-dos, Sub-agents, and Background Commands here.",mobileWorkspaceCloseTitle:"Close workspace files",mobileWorkspaceCloseDesc:"The next step will close the workspace files panel.",mobileMenuOpenNewchatDesc:"The next step will open the menu.",mobileMenuNewChatDesc:"The next step will start a new chat.",mobileModelSelectorOpenTitle:"Model & thinking mode",mobileModelSelectorOpenDesc:"The next step will open the mobile model/thinking mode picker.",mobileModelOptionsDesc:"Here are the available models on mobile.",mobileRunmodeOptionsTitle:"Thinking mode list",mobileRunmodeOptionsDesc:"Switch between Quick and Thinking here.",mobileModelSelectorCloseTitle:"Close the picker",mobileModelSelectorCloseDesc:"The next step will click outside to close the menu.",openQuickMenuTitle:"Open the + menu",openQuickMenuDesc:"The quick menu will open for you.",quickUploadTitle:"Upload files",quickUploadDesc:"Upload local files to the current workspace.",quickReviewTitle:"Conversation review",quickReviewDesc:"Review and compress the context.",quickSendImageTitle:"Send an image",quickSendImageDesc:"Send images to the AI for analysis when the model supports it.",quickSendVideoTitle:"Send a video",quickSendVideoDesc:"Send videos to the AI for analysis when the model supports it.",quickToolDisableTitle:"Disable tools",quickToolDisableDesc:"Temporarily disable tool categories to control model behavior.",quickSettingsTitle:"Settings menu",quickSettingsDesc:"Quick access to frequently used features.",openSettingsSubmenuTitle:"Open the settings submenu",openSettingsSubmenuDesc:"The next step will expand the settings submenu.",openTokenPanelTitle:"Open usage stats",openTokenPanelDesc:"The next step will open the usage stats panel.",tokenPanelTitle:"Token stats panel",tokenPanelDesc:"View context, quota, and resource stats here.",closeTokenPanelTitle:"Close stats panel",closeTokenPanelDesc:"The next step will close the stats panel.",openPersonalSpaceTitle:"Open Personal Space",openPersonalSpaceDesc:"The next step will open Personal Space.",mobileMenuOpenPersonalDesc:"The next step will open the menu.",mobileMenuPersonalTitle:"Enter Personal Space",mobileMenuPersonalDesc:"The next step will open Personal Space.",personalOverviewTitle:"Personal Space overview",personalOverviewDesc:"Your hub for personalization and advanced settings.",tabPreferencesTitle:"Preferences",tabPreferencesDesc:"The next step switches to Preferences.",pagePreferencesTitle:"Preferences content",pagePreferencesDesc:"Set your nickname, tone, role, and required info.",tabModelTitle:"Model preferences",tabModelDesc:"The next step switches to Model Preferences.",pageModelTitle:"Model preferences content",pageModelDesc:"Set the default model, run mode, and thinking frequency.",tabUsageTitle:"Usage stats",tabUsageDesc:"The next step switches to Usage Stats.",pageUsageTitle:"Usage stats content",pageUsageDesc:"View cumulative tokens, conversation count, and tool calls.",tabAppUpdateTitle:"App update",tabAppUpdateDesc:"The mobile app will switch to App Update.",pageAppUpdateTitle:"App update content",pageAppUpdateDesc:"See the latest version and release notes here.",tabBehaviorTitle:"Agent behavior",tabBehaviorDesc:"The next step switches to Agent Behavior.",pageBehaviorTitle:"Agent behavior content",pageBehaviorDesc:"Configure tool visibility, compaction strategy, and more.",tabSkillsTitle:"Skills",tabSkillsDesc:"The next step switches to Skills.",pageSkillsTitle:"Skills content",pageSkillsDesc:"Enable or disable skills and sync them to the workspace.",tabImageTitle:"Image compression",tabImageDesc:"The next step switches to Image Compression.",pageImageTitle:"Image compression content",pageImageDesc:"Choose original, 1080p, 720p, or 540p compression.",tabThemeTitle:"Theme",tabThemeDesc:"The next step switches to Theme.",pageThemeTitle:"Theme content",pageThemeDesc:"Switch between Classic, Light, and Dark themes.",closePersonalSpaceTitle:"Close Personal Space",closePersonalSpaceDesc:"The next step closes Personal Space and ends the tour.",doneTitle:"Tour complete!",doneDesc:"Congratulations! You can revisit this tour anytime from Personal Space."},jm={appBrowser:"Browser",appTerminal:"Terminal",appCommand:"Command Line",appPython:"Python",appMemory:"Memory",appTodo:"To-dos",appSubagent:"Sub-agent",terminalName:"Terminal {n}",terminalTitle:"Terminal",terminalReset:"Terminal reset",terminalEmptyHint:"No terminals yet — click + to create one",thinkLabel:"Thinking",waitingReply:"Waiting for reply",toolError:"Tool failed",browserReady:"Ready to search...",browserSearching:"Searching...",browserOpening:"Opening page...",defaultSearchQuery:"Search content",searchStatus:"Searching",searchFailed:"Search failed",searchCompleted:"Search complete, results loaded",searchIncomplete:"Search incomplete",noSearchResults:"No search results",searchResultFallback:"Search result",extractTitle:"Web extract",extractWaiting:"Waiting to extract",extractInProgress:"Extracting...",extractFailed:"Extraction failed",extractStateFailed:"Extraction failed",extractStateComplete:"Extraction complete",extractFailedLabel:"Extraction failed",extractFailedItem:"⚠️ {url}: {error}",extractSectionTitle:"Web summary",extractSectionItem:"Web page {n}",noExtractionSummary:"No summary returned",statusCreatingFolder:"Creating folder",defaultFolderName:"New folder",createFolderFailed:"Failed to create folder",statusCreatingFile:"Creating file",defaultFileName:"New file",createFileFailed:"Failed to create file",statusRenaming:"Renaming",renameFailed:"Rename failed",statusDeletingFile:"Deleting file",statusEditing:"Editing",editFailed:"Failed to edit file",editorEmpty:"(File is empty)",commandTitle:"Command",statusCallingTool:"Calling {tool}",commandFailed:"Command failed",commandDone:"Command finished",commandSent:"Command sent",statusReading:"Reading",readerModeSearch:"File search",readerModeExtract:"Extract snippet",readingContent:"Reading file content...",readFailed:"Read failed",noDisplayContent:"No displayable content",defaultDocPath:"Document",defaultFilePath:"File",statusFocusingFile:"Focusing file",focusFailed:"Failed to focus file",loadingContent:"Loading file content...",focusedReady:"File focused — view it in the focus panel",statusProcessing:"Processing",unfocusFailed:"Failed to unfocus",unfocused:"Unfocused",statusExtracting:"Extracting",ocrFailed:"OCR failed",ocrReady:"OCR content ready",memorySynced:"Memory synced",statusSyncingMemory:"Syncing memory",defaultMemory:"New memory",statusUpdatingTodo:"Updating to-dos",defaultTodoSummary:"Todo summary",todoEmptySummary:"No summary",statusAdjustingTodo:"Adjusting to-dos",statusFinishingTask:"Finishing task",statusRemovingTodo:"Removing to-do",statusResettingTerminal:"Resetting terminal",statusOpeningTerminal:"Opening terminal",statusCallingTerminalInput:"Calling terminal_input",statusGettingTerminal:"Fetching terminal",statusWaiting:"Waiting",statusSavingWeb:"Saving web page",waitOverrun:"Waiting +{n}s{dots}",readerEmptyFallback:"No content",noVisibleContent:"Nothing to display"},Hm={backToLibrary:"Back to workflow library",badgeBuiltin:"Built-in",badgeUser:"User",unsaved:"Unsaved",checkIssues:"View structure warnings and errors",autoLayout:"Auto layout",addNodeTitle:"Add a node at the center of the canvas (or double-click empty canvas to add a stage)",addNode:"Add node",stage:"Stage",stageDesc:"AI run, one in one out",review:"Review",reviewDesc:"Diamond, approve/reject",branch:"Branch",branchDesc:"Many-to-many, conditional routing",start:"Start",startDesc:"Entry point, only one allowed",end:"End",endDesc:"Exit, multiple allowed",workflowProps:"Workflow properties",nameLabel:"Name (unique id)",descLabel:"Description",descPlaceholder:"Used to identify this workflow when selected",reviewCapability:"Review agent forensics",reviewReadonly:"Read-only review",reviewActive:"Command-enabled review",reviewModeHint:"Active mode lets the review agent run read-only commands to verify the result",maxRoundsLabel:"Max rounds per stage",endMethodLabel:"Overall completion",endMethodPlaceholder:"e.g., report written and review approved",globalNotes:"Global notes",globalNotesLabel:"How it works / verification / completion",stageProps:"Stage properties",stageNameLabel:"Stage name",stageGoalLabel:"Stage goal",stageGoalPlaceholder:"What this stage should accomplish",stageWorkLabel:"How to work",stageWorkPlaceholder:"How this stage works (natural language)",entryStageAriaLabel:"Entry stage",terminalStageAriaLabel:"End stage",stageGoalUnset:"No goal set",forwardRoute:"Forward route",removeRouteAriaLabel:"Remove route to {name}",endStageEmpty:"End stage (no forward route)",routeHint:"Drag from the handle on the right of a node to the target; a new line replaces the existing one. Add a branch node to fork.",deleteNode:"Delete this node",deleteNodeWarning:"Routes pointing to it will also be removed",confirmDelete:"Confirm delete",reviewProps:"Review properties",reviewNameLabel:"Review name",reviewFocusLabel:"Review focus",reviewFocusPlaceholder:"What the review agent checks (natural language)",maxRejectsLabel:"Max rejections (times)",maxRejectsHint:"Escalates to the user after the limit (demo only records the value)",rejectLimitMeta:"Rejects ≤{n}",passRoute:"Approval route",removePassRouteAriaLabel:"Remove approval route to {name}",passEndsWorkflow:"Approval ends the workflow",passRouteHint:"Where the workflow goes after approval — drag from the right handle of the diamond (blue line)",rejectRoute:"Rejection route",removeRejectRouteAriaLabel:"Remove rejection route to {name}",rejectRequired:"A rejection route is required",rejectRouteHint:"Where the workflow goes on rejection — drag from the top or bottom handle of the diamond (red line; top and bottom exits are equivalent, direction follows the target position)",branchProps:"Branch properties",branchNameLabel:"Branch name",branchOuts:"Outgoing lines ({n})",branchOutMeta:"{n} out",removeOutAriaLabel:"Remove outgoing line to {name}",branchConditionPlaceholder:"Condition: take this path when...",branchNoOuts:"No outgoing lines (dead end)",branchRouteHint:"Drag lines one by one from the right handle; 1-in n-out splits, n-in 1-out joins. Give every outgoing line a condition — the AI picks the path based on them.",startNode:"Start node",endNode:"End node",boundaryNameLabel:"Name",entryRoute:"Entry route",disconnectEntryAriaLabel:"Disconnect entry route to {name}",entryNotConnected:"Not connected (drag from the right handle of the start node to the first node)",startOnlyHint:"The workflow starts here; only one start node is allowed",issueErrors:"{n} errors",issueWarnings:"{n} warnings",issueOk:"Structure OK",flashReplaceReject:'Replaced the previous reject route (was to "{name}")',flashBranchRetarget:'Redirected this outgoing line to "{name}"',flashReplaceRoute:'Replaced the previous outgoing line (was to "{name}")',flashFixErrors:"Fix the {n} structure errors first",flashSaved:"Saved",saveFailed:"Save failed",loadListFailed:"Failed to load workflow list",loadFailed:"Failed to load workflow",createFailed:"Failed to create workflow",duplicateFailed:"Failed to duplicate workflow",deleteFailed:"Failed to delete workflow",backToConversation:"Back to conversation",libraryTitle:"Workflows",librarySubtitle:"Save a fixed way of working, verification, and completion as a process, then activate it in your conversation.",newWorkflow:"New workflow",noDescription:"(no description)",nodeCountLabel:"{n} nodes",emptyTitle:"No workflows yet",emptyHint:"Create one, or have the AI generate it for you in a conversation.",edit:"Edit",httpError:"{msg} (HTTP {status})",connectSelf:"Cannot connect to itself",sourceMissing:"Source node does not exist",endHasNoOut:"End node has no outgoing lines",targetMissing:"Target node does not exist",connectToStart:"Cannot connect to the start node",routeExists:"This route already exists",targetIsRejectRoute:"This target is already the reject route (red line) — disconnect it first",onlyBranchHasOuts:"Only branch nodes have multiple outgoing handles",emptySlot:"This handle is empty; dragging creates a new outgoing line",targetAlreadyOut:"This target is already on an outgoing line",rejectToSelf:"Cannot reject to itself",onlyReviewHasReject:"Only review nodes (diamond) have a reject route",rejectToStart:"Cannot reject to the start node",targetIsPassRoute:"This target is already the approval route (blue line)",missingName:"Workflow is missing a name",missingDescription:"Workflow is missing a description (used to identify it when selected)",needStartEnd:"At least one start node and one end node are required",missingStart:"Missing start node (top bar: Add node → Start)",multipleStarts:"Only one start node is allowed (currently {n})",missingEnd:"Missing end node (top bar: Add node → End)",dupNodeId:"Duplicate node id: {id}",nodeMissingName:"Node {id} is missing a name",startNotConnected:"Start node is not connected (drag from the right handle to the first node)",startBadTarget:"Start node points to a nonexistent node: {target}",stageMissingGoal:'Stage "{name}" is missing a goal description',stageNotConnected:'Stage "{name}" is not connected (connect it to a next node or an end node)',stageBadTarget:'Stage "{name}" points to a nonexistent node: {target}',stageToStart:'Stage "{name}" cannot connect to the start node',reviewMissingFocus:'Review "{name}" is missing a review focus',reviewNoPassRoute:'Review "{name}" is missing an approval route (blue line)',reviewBadTarget:'Review "{name}" points to a nonexistent node: {target}',reviewNoRejectRoute:'Review "{name}" is missing a reject route (red line required)',reviewBadRejectTarget:'Review "{name}" rejects to a nonexistent node: {target}',reviewRejectToStart:'Review "{name}" cannot reject to the start node',reviewBadMaxRejects:'Review "{name}" reject limit must be ≥ 1',branchNoOutsNamed:'Branch "{name}" has no outgoing lines (dead end)',branchBadTarget:'Branch "{name}" points to a nonexistent node: {target}',branchToStart:'Branch "{name}" cannot connect to the start node',branchRouteMissingCondition:'Branch "{name}" is missing a condition for the line to "{target}"',nodeUnreachable:'Node "{name}" is unreachable from the start node',defaultBodyTemplate:`## How to work
## How to verify
## How to finish
`,defaultStartNode:"Start",defaultEndNode:"End",defaultStageName:"Stage {n}",defaultReviewName:"Review {n}",defaultBranchName:"Branch {n}"},Vm={loadingMonitor:"Loading monitor data...",gateDescription:"Secondary verification is required to view sensitive monitoring data.",title:"Admin Monitor",lastUpdated:"Last updated: {time}",autoRefresh:"Auto refresh",refreshNow:"Refresh now",policyConfig:"Policy",apiAdmin:"API Admin",refreshFailed:"Refresh failed: ",tabOverview:"Overview",tabUsage:"Quota & Trends",tabUsers:"Users",tabContainers:"Containers",tabUploads:"Uploads",tabInvites:"Invites",passwordManagement:"Passwords",usageTitle:"Model Quotas & Trends",fastMode:"Fast: {count}",thinkingMode:"Thinking: {count}",searchMode:"Search: {count}",totalInputTokens:"Total Input Tokens",totalOutputTokens:"Total Output Tokens",totalTokens:"Total Tokens",tokenBreakdownTitle:"Tokens by User",tokenBreakdownSub:"Live data · sorted by total",tableUser:"User",tableRole:"Role",tableInputTokens:"Input Tokens",tableOutputTokens:"Output Tokens",tableTotalTokens:"Total Tokens",noTokenStats:"No token stats available",leaderFast:"Fast Mode Top",leaderThinking:"Thinking Mode Top",leaderSearch:"Search Calls Top",usersTitle:"Users & Quotas",tableStatus:"Status",tableProjectUsage:"Project Usage",tableProjectSize:"Project Size",tableLastActive:"Last Active",emptyUsers:"No users",online:"Online",offline:"Offline",containersTitle:"Container Status",tableMode:"Mode",tableContainerName:"Container",tableCpu:"CPU",tableMemPercent:"Memory %",tableMemUsage:"Memory Used",tableMemLimit:"Memory Limit",tableNetIo:"Network RX/TX",emptyContainers:"No containers running",unknown:"Unknown",uploadsTitle:"Upload Security Audit",last24h:"Last 24h: {count}",blocked:"Blocked: {count}",skippedScan:"Skipped scan: {count}",quarantineUsage:"Quarantine: {size}",noSourceStats:"No source stats",noRecentUploads:"No recent uploads",unnamedFile:"Unnamed file",uploadUser:"User: {name}",uploadSource:"Source: {name}",uploadSize:"Size: {size}",accepted:"Allowed",blockedBadge:"Blocked",invitesTitle:"Invites",inviteTotal:"Total: {count}",inviteActive:"Available: {count}",inviteConsumed:"Used: {count}",inviteUnlimited:"Unlimited: {count}",newInvitePlaceholder:"New invite code",remainingPlaceholder:"Remaining uses",unlimitedLabel:"Unlimited",processing:"Processing...",addInvite:"Add invite",noInviteData:"No invite data",adjustRemaining:"Adjust uses",passwordHint:"Admins can reset any user's login password (including their own).",selectUser:"Select user",userSearchPlaceholder:"Search username or email...",filterPlaceholder:"Filter by keyword...",adminRole:"Admin",noMatchingUsers:"No matching users",newPasswordLabel:"New password (min. 8 characters)",newPasswordPlaceholder:"Enter new password",resetting:"Resetting...",resetPassword:"Reset password",clear:"Clear",requestFailed:"Request failed: {status}",csrfFailed:"Failed to fetch CSRF token: {status}",csrfNoToken:"Failed to fetch CSRF token: no token in response",remainingInvalid:"Remaining uses must be a non-negative integer, or blank for unlimited",inviteCodeRequired:"Enter an invite code",passwordTooShort:"Password must be at least 8 characters",passwordResetSuccess:"Password for {username} has been reset",promptRemaining:"Enter the new remaining uses (blank or unlimited for no limit)",deleteInviteConfirm:"Delete invite code {code}?",metricRegisteredUsers:"Registered Users",metricActiveUsers:"{count} active",metricContainerUsage:"Container Usage",unlimited:"Unlimited",freeSlots:"{count} slots free",metricStorageWarnings:"Storage Warnings",storageWarningSub:"Workspaces over threshold",metricUploadAudit:"Upload Audit (24h)",blockedCount:"{count} blocked",metricQuotaCalls:"Quota Calls (fast / thinking / search)",windowCalls:"Calls in window",metricInvites:"Invites",inviteMetricsSub:"{active} available · {consumed} used",metricStorage:"Storage Used",perUserLimit:"Limit per user: {size}",noLimitSet:"No limit set",unknownTime:"Unknown time",justNow:"Just now",minutesAgo:"{count}m ago",hoursAgo:"{count}h ago",daysAgo:"{count}d ago",remainingLeft:"{count} left",usedUp:"Used up",cannotLoadData:"Unable to load monitoring data"},$m={gateDescription:"Enter your admin secondary password to continue configuring policies.",title:"Admin Policy Configuration",subtitle:"Control tool categories, model availability, and disabled frontend features. Last saved: {time}",scopeGlobal:"Global",scopeRole:"By role",scopeUser:"Specific user",scopeInvite:"Invite code",placeholderRole:"e.g. admin / user",placeholderInvite:"Invite code",placeholderUsername:"Username (lowercase)",load:"Load",categorySection:"Tool Categories",addCategory:"Add category",catId:"Category ID",catName:"Name",catTools:"Tools",catDefaultEnabled:"Enabled by Default",catForced:"Forced State",tableActions:"Actions",selectTools:"Select tools",toolSearchPlaceholder:"Search or add a tool ID",noMatchingTool:"No matching tools",addCustomToolWith:'Add custom tool "{id}"',enabledOn:"On",enabledOff:"Off",forcedNone:"Not forced",forcedEnable:"Force enable",forcedDisable:"Force disable",modelDisable:"Disabled Models",uiBlockSection:"Disabled Frontend Features",uiBlockCollapseWorkspace:"Collapse workspace",uiBlockFileManager:"Block file manager",uiBlockPersonalSpace:"Block personal space",uiBlockUpload:"Block uploads",uiBlockConversationReview:"Block conversation review",uiBlockToolToggle:"Block tool disabling",uiBlockRealtimeTerminal:"Block realtime terminal",uiBlockFocusPanel:"Block focus panel",uiBlockTokenPanel:"Block usage stats",uiBlockCompressConversation:"Block conversation compression",uiBlockVirtualMonitor:"Block virtual monitor",mcpSection:"MCP Servers (Unified Tool Extension)",refresh:"Refresh",syncing:"Syncing...",syncAll:"Sync all tools",addMcpServer:"Add MCP Server",emptyMcpServers:'No MCP servers yet. Click "Add MCP Server" to get started.',mcpId:"ID",mcpName:"Name",mcpEnabled:"Enabled",mcpArgs:"args (one per line, blank = none)",mcpCwd:"cwd (optional)",mcpHeaders:"headers (JSON, optional)",mcpEnv:"env (JSON, optional, stdio only)",mcpIncludeTools:"include_tools (comma-separated, optional)",mcpExcludeTools:"exclude_tools (comma-separated, optional)",mcpDescription:"Description (optional)",mcpIdPlaceholder:"e.g. demo_stdio",mcpNamePlaceholder:"Display name (optional)",mcpCommandPlaceholder:"e.g. python3",mcpArgsPlaceholder:`e.g.
/abs/path/mcp_server.py`,mcpCwdPlaceholder:"Working directory",mcpDescriptionPlaceholder:"Notes",mcpUrlPlaceholder:"e.g. https://example.com/mcp",mcpHeadersPlaceholder:`e.g. {'{'}"Authorization":"Bearer xxx"{'}'}`,mcpEnvPlaceholder:`e.g. {'{'}"PYTHONUNBUFFERED":"1"{'}'}`,mcpIncludeToolsPlaceholder:"e.g. echo,read_db",mcpExcludeToolsPlaceholder:"e.g. dangerous_tool",mcpLastSync:"Last synced: {time}",mcpNotSynced:"Not synced",mcpError:"Error: {message}",mcpCacheCount:"Cached tools: {count}",syncTools:"Sync tools",removedCategories:"Removed Categories",none:"None",notesLabel:"Notes:",notePriority:"Priority: user > invite > role > global.",noteForced:`A category's "forced" state overrides the user-side tool toggle and shows "Forced by admin" in the frontend.`,noteUiBlocks:"Disabled UI features show a toast in the top-right corner on user actions.",loadMcpFailed:"Failed to load MCP servers",mcpIdRequired:"MCP server ID is required",jsonInvalid:"{label} is not valid JSON: {message}",jsonMustBeObject:"{label} must be a JSON object",saveMcpFailed:"Failed to save MCP server",mcpSaved:"MCP server {id} saved",mcpDeleted:"Deleted MCP server {id}",deleteMcpFailed:"Failed to delete MCP server",syncRequiresSave:"Save the server before syncing tools",syncMcpFailed:"Failed to sync MCP tools",mcpSyncedWith:"Synced {id}",mcpSyncedAll:"Synced all MCP servers",loadDefaultsFailed:"Failed to load default configuration",saveFailed:"Failed to save",savedSuccess:"Saved",loadPolicyFailed:"Failed to load policy",toolConflict:"Tool {tool} is already in category {category}. Remove it first, then reassign."},qm={gateDescription:"Enter your admin secondary password to view API usage and accounts.",title:"API Admin",subtitle:"Monitor token usage, containers, and uploads; manage API accounts.",dataTime:"Data time: {time}",autoRefresh:"Auto refresh",manualRefresh:"Manual refresh",metricUsers:"API Users",metricTotalRequests:"Total Requests",metricTotalTokens:"Total Tokens",tokenInOut:"Input {input} / Output {output}",metricActiveContainers:"Active Containers",availableSlots:"Slots available: {slots}",accountManagement:"API Accounts",usernamePlaceholder:"New username (lowercase alphanumeric / - / _)",notePlaceholder:"Note (optional)",creating:"Creating...",createAccount:"Create account",tableUsername:"Account",tableNote:"Note",tableCreatedAt:"Created At",tableRequests:"Requests",tableLastCall:"Last Call",tableTotalTokens:"Total Tokens",tableStorage:"Storage",tableContainer:"Container",tableToken:"Token",tableActions:"Actions",emptyAccounts:"No API accounts",containerSection:"Container Status",realtimeFetch:"Live data",tableKey:"Key",tableCpu:"CPU",tableMemPercent:"Memory %",tableMemory:"Memory",tableNetIo:"Network RX/TX",tableStatus:"Status",emptyContainers:"No containers",uploadSection:"Upload Audit",uploadSourceNote:"From quarantine logs",emptyRecords:"No records",unnamedFile:"Unnamed file",uploadMeta:"{username} · {size} · {source}",accepted:"Allowed",blocked:"Blocked",usernameRequired:"Please enter a username",usernameInvalid:"Username must be 3-32 chars of lowercase letters, digits, _ or -",createFailed:"Failed to create account",deleteConfirm:"Delete API user {username}?",deleteFailed:"Failed to delete user",fetchFailed:"Failed to fetch",fetchTokenFailed:"Failed to fetch token",statusRequestFailed:"Status request failed: {status}",cannotVerifySecondaryPass:"Unable to verify secondary password status",secondaryPassVerifyFailed:"Secondary password verification failed",verifyFailed:"Verification failed"},Gm={gateDescription:"Enter your admin secondary password to manage custom tools.",gate:{notConfiguredTitle:"Secondary password not set",notConfiguredDesc:"Sensitive admin actions (invites, password management, policy configuration) are protected by a secondary password. The server has not been configured yet — set it up first:",step1Text:"Generate a password hash on the server:",step1Code:`python3 -c "from werkzeug.security import generate_password_hash; print(generate_password_hash('your secondary password'))"`,step2TextPre:"Write the output to the",step2TextPost:"section of settings.json:",step3Text:'Restart the service, then click "Recheck" below.',recheck:"Recheck",rechecking:"Checking...",title:"Enter admin secondary password",passwordPlaceholder:"Secondary password",verifying:"Verifying...",confirmEnter:"Confirm & enter",defaultDescription:"Secondary verification is required to view sensitive data."},guide:{title:"Developer Guide",subtitle:"A complete walkthrough for writing, organizing, and debugging custom tools."},renderFailed:"Failed to render guide",backToList:"Back to list",loadFailedWith:"Failed to load: {message}",main:{title:"Custom Tools Administration",subtitle:"One folder per tool; the three layers live in separate files. Visible and callable by admins only.",newTool:"New tool",refreshList:"Refresh list",viewGuide:"View guide",backToMonitor:"Back to monitor",policyConfig:"Policy",toolList:"Tools",toolCount:"{count} tools",emptyTools:"No custom tools yet",noDescription:"No description",params:"Params: {count}",timeout:"Timeout: {seconds}s",noReturnLayer:"(no return layer)",toolNotFound:"Tool {id} not found"},editor:{noDescription:"No description",hint1Pre:"Hint: dicts/sets in execution.py must be wrapped in",hint1Post:"to avoid template replacement.",hint2:"No restart needed after saving — custom tools are reloaded automatically.",loadingTool:"Loading tool..."},create:{title:"Create New Tool",toolIdLabel:"Tool ID (lowercase / underscore):",descriptionLabel:"Description:",creating:"Creating...",create:"Create",idRequired:"Please enter a tool ID",idInvalid:"Tool ID must start with a letter and may contain letters, digits, _ and -",failed:"Failed to create tool"},delete:{title:"Confirm Delete",confirmPre:"Delete tool",confirmPost:"? This action cannot be undone.",deleting:"Deleting...",failed:"Failed to delete tool"},save:{failed:"Failed to save {name}"}},Km={clearChatTitle:"Clear chat",clearChatConfirmMessage:"Are you sure you want to clear all conversation records? This cannot be undone.",clearChatConfirmText:"Clear",cannotCompressTitle:"Cannot compress",cannotCompressMessage:"No conversation to compress.",compressingTitle:"Compressing",compressingMessage:"Compressing the conversation, please wait...",compressionCompletedTitle:"Compression complete",compressionCompletedMessage:"Earlier conversation content has been compressed",compressionFailed:"Compression failed",compressionErrorTitle:"Compression error",sendFailedTitle:"Send failed",createTaskFailedMessage:"Failed to create the task, please try again",createNewConversationFailedMessage:"Failed to create a new conversation, please try again",cannotQueueTitle:"Cannot queue",noActiveTaskMessage:"No active task detected, please try again later",queueMessageFailed:"Failed to queue the message",queueFailedTitle:"Queue failed",deleteFailed:"Delete failed",guideMessageNotSent:"The guide message was not sent, please try again later",cannotGuideTitle:"Cannot guide",submitGuideFailed:"Failed to submit the guide",guideSetTitle:"Set as guide conversation",guideSetMessage:"Will be inserted into the current conversation after the next tool result",guideFailedTitle:"Guide failed",autoCompressingTitle:"Conversation is auto-compressing",autoCompressingBlockSend:"Sending/stopping is unavailable while compression is in progress",compressionBlocksSend:"You can continue sending after compression completes",textRequiredTitle:"Text required",textRequiredMessage:"Attached files must be sent with a text message",subAgentRunningTitle:"Background sub-agent running",subAgentRunningMessage:"Please wait for the background task to finish before sending images/videos",runningTextOnlyTitle:"Text only while running",runningTextOnlyMessage:"Send images/videos after the current task finishes",conversationRunningTitle:"Conversation is running",conversationRunningMessage:"Please wait for the current conversation task to finish before sending a new message; other conversations in the same workspace can run in parallel.",connectionLostTitle:"Connection lost",connectionLostMessage:"Messages can't be sent right now; please retry after the connection is restored",uploadingTitle:"Uploading",uploadingMessage:"Please wait for the image/video upload to finish before sending",modelNoImageTitle:"Model does not support images",modelNoImageMessage:"Switch to a model that supports image input before sending images",modelNoVideoTitle:"Model does not support videos",modelNoVideoMessage:"Switch to a model that supports video input before sending videos",noMixedMediaTitle:"Send media separately",noMixedMediaMessage:"Videos and images must be sent separately; each message can contain only one media type",videoProcessingTitle:"Video processing",videoProcessingMessage:"Reading the video can take a while, please be patient",initializingBackupTitle:"Initializing backup",initializingBackupMessage:"Creating a full workspace snapshot, please wait...",createConversationFailed:"Failed to create conversation",stopRequestedTitle:"Stop requested",stopRequestedMessage:"If the main conversation does not stop, please wait; background tasks can be stopped from the status bar",autoCompressingBlockStop:"Compression is in progress; the task cannot be stopped right now",commandEmpty:"Command cannot be empty",connectionUnavailable:"Connection unavailable",connectionUnavailableMessage:"Cannot run commands right now, please try again later.",commandExecutionFailed:"Command execution failed",clearedTitle:"Cleared",conversationCleared:"Conversation cleared",systemStatus:"System status",statusUpdatedTitle:"Status updated",statusFetched:"System status fetched",commandFailedLabel:"Command failed",commandExecutedTitle:"Command executed",commandDone:"Done",serverNotSuccessMessage:"Server did not return a success status",createConversationErrorTitle:"Error creating conversation",createWorkspaceConversationErrorTitle:"Error creating workspace conversation",deleteConversationTitle:"Delete conversation",deleteConversationConfirmMessage:"Are you sure you want to delete this conversation? This cannot be undone.",deleteConversationFailedTitle:"Failed to delete conversation",deleteConversationErrorTitle:"Error deleting conversation",duplicateConversationTitle:"Duplicated conversation",duplicateConversationFailedTitle:"Failed to duplicate conversation",duplicateConversationErrorTitle:"Error duplicating conversation",loadConversationFailedTitle:"Failed to load conversation",loadConversationErrorTitle:"Error loading conversation",versioningFetchStatusFailed:"Failed to fetch version status",versioningLoadCheckpointsFailed:"Failed to load checkpoints",versioningEnabledForNext:"Versioning enabled for the next new conversation",versioningDisabledForNext:"Versioning cancelled for the next new conversation",versioningToggleFailed:"Failed to toggle versioning",versioningOn:"Enabled",versioningOff:"Disabled",versioningSwitchFailed:"Switch failed",versioningDetailParseFailed:"Failed to parse detail response",versioningLoadDetailFailed:"Failed to load detail",versioningScopeConversationOnly:"conversation only",versioningScopeConversationAndWorkspace:"conversation and workspace",versioningModeCopy:"duplicate the conversation",versioningModeOverwrite:"overwrite the current conversation",versioningRestoreConfirmTitle:"Confirm restore",versioningRestoreConfirmMessage:"Restore {scope} to the state at input #{seq} and {mode}. Continue?",versioningRestoreConfirmText:"Restore",versioningRestoreFailed:"Restore failed",versioningRestoreConversationTitle:"Restored conversation",versioningRestoreCopyDone:"Duplicated and restored to a new conversation",versioningRestoreDone:"Restore complete"},Ym={unknown:"Unknown",unknownTime:"Unknown time",hostMode:"Host mode",containerMode:"Container mode",paused:"Paused",stopped:"Stopped",justNow:"Just now",minutesAgo:"{n} min ago",hoursAgo:"{n} hr ago",compressionManual:"Manual",compressionAuto:"Auto",compressing:"Compressing",compressingMessage:"Compressing conversation ({mode})...",shallowCompressionTitle:"Auto shallow compression",shallowCompressedMessage:"Auto-compressed {n} older tool results",compressionComplete:"Compression complete",compressedEarlierContent:"Compressed earlier conversation content",taskRestoredTitle:"Task resumed",taskRestoredMessage:"Found a running task and reconnected",thinkingLabel:"Thinking...",goalReviewTitle:"Goal review",workflowReviewTitle:"Workflow review",reviewStarted:"Review started",reviewRound:"Review round {n}",autoApprovalRecordTitle:"Auto-approval record",autoApprovalStarted:"Auto-approval started",approvalApproved:"Approved",approvalRejected:"Rejected",approvalFinalMessage:`{decision}
Reason: {reason}`,reasonNotProvided:"Not provided",preparingTool:"Preparing to call {name}...",interruptedByNewResponse:"Interrupted by a new response",cannotModify:"Cannot modify",categoryEnforcedByAdmin:"This tool category is enforced by the administrator",cannotSwitchTool:"Cannot switch tool",toolToggleLockedByAdmin:"Tool enable/disable is locked by the administrator",answerNeededTitle:"{dot} Needs an answer - Agents",questionConfirmTitle:"Need your confirmation on a question",retrySoonTitle:"Retrying soon",retryInSeconds:`Retrying in {n}s (attempt {attempt}/{max})
Error: {error}`,streamRetrying:"Connection interrupted, retrying (attempt {attempt}/{max})…",streamRetryingGeneric:"Connection interrupted, retrying…",toolCallFailed:"Tool call failed",taskFailedTitle:"Task failed",apiErrorTitle:"API call failed",apiErrorMessage:"Model service error: {error}",timeoutTitle:"Task timed out",timeoutMessage:"The task ran too long and was stopped automatically",quotaTitle:"Quota exceeded",quotaMessage:"Your usage quota has been used up",cannotCompleteDownload:"Could not complete the download"},zm={unknown:"Unknown",saveFailed:"Failed to save",notice:"Notice",pleaseRetry:"Please retry",appliedImmediately:"Applied immediately",switchFailed:"Failed to switch",createFailed:"Failed to create",deleteFailed:"Failed to delete",renameFailed:"Failed to rename",openFailed:"Failed to open",disabledByAdmin:"Disabled by the administrator",forceDisabledByAdmin:"Force-disabled by the administrator",unnamedProject:"Untitled project",fetchProjectsFailed:"Failed to load project list",pathCannotBeEmpty:"Path cannot be empty",projectNameCannotBeEmpty:"Project name cannot be empty",workspaceNameCannotBeEmpty:"Workspace name cannot be empty",workspaceSwitched:"Workspace switched",projectSwitched:"Project switched",switchHostWorkspaceFailed:"Failed to switch host workspace",switchWorkspaceFailed:"Failed to switch workspace",switchProjectFailed:"Failed to switch project",workspaceCreated:"Workspace created",projectCreated:"Project created",createWorkspaceFailed:"Failed to create workspace",createProjectFailed:"Failed to create project",workspaceRenamed:"Workspace renamed",projectRenamed:"Project renamed",renameWorkspaceFailed:"Failed to rename workspace",renameProjectFailed:"Failed to rename project",deleteWorkspaceConfirmTitle:"Delete workspace",deleteProjectConfirmTitle:"Delete project",deleteWorkspaceConfirmMessage:'Remove "{name}" from the list? The workspace folder on disk will not be deleted.',deleteProjectConfirmMessage:'Delete project "{name}"? Its folder and conversation history will be deleted along with it.',workspaceDeleted:"Workspace deleted",projectDeleted:"Project deleted",deleteWorkspaceFailed:"Failed to delete workspace",deleteProjectFailed:"Failed to delete project",openWorkspaceFailed:"Failed to open workspace",openProjectFailed:"Failed to open project",setAsDefaultWorkspace:"Set as default workspace",setAsDefaultProject:"Set as default project",setDefaultWorkspaceFailed:"Failed to set default workspace",setDefaultProjectFailed:"Failed to set default project",policyBlockedPersonalSpace:"Personal space has been disabled by the administrator",policyBlockedReview:"Conversation references have been disabled by the administrator",submitPlanDecisionFailed:"Failed to submit plan decision",planApproved:"Plan approved",planApprovedMessage:"Switched to execute mode and started implementation",planRejected:"Plan rejected",planRejectedMessage:"The AI will revise it based on your feedback and resubmit",unavailable:"Unavailable",unavailableNoConnectionMessage:"Not connected, cannot generate a review file",cannotReferenceCurrentConversation:"Cannot reference the current conversation",chooseOtherConversationForReview:"Choose another conversation to generate the review",submitAnswerFailed:"Failed to submit answer",submitApprovalFailed:"Failed to submit decision",approvalFailed:"Approval failed",modelDisabled:"Model disabled",conversationHasImagesMessage:"This conversation contains images, but the target model does not support image input",conversationHasVideosMessage:"This conversation contains videos, but the target model does not support video input",modelSwitched:"Model switched",switchModelFailed:"Failed to switch model",modeUnavailable:"Mode unavailable",fastOnlyModeMessage:"The current model only supports fast mode",thinkingOnlyModeMessage:"The current model only supports thinking mode",switchThinkingModeFailed:"Failed to switch thinking mode",settingFailed:"Failed to set",setReasoningEffortFailed:"Failed to set reasoning effort",pauseAllSubAgentsTitle:"Pause all sub-agents?",terminateAllSubAgentsTitle:"Terminate all sub-agents?",pauseAllSubAgentsMessage:"All running sub-agents will stop and become idle. Cancel to do nothing.",terminateAllSubAgentsMessage:"All background sub-agents will be forcefully terminated. Cancel to do nothing.",pause:"Pause",terminate:"Terminate",stopSubAgentsFailed:"Failed to stop sub-agents",subAgentsPaused:"Sub-agents paused",subAgentsTerminated:"Sub-agents terminated",stoppedSubAgentCount:"Processed {n} sub-agents",policyBlockedFocusPanel:"The focus panel has been disabled by the administrator",policyBlockedTokenPanel:"Usage statistics have been disabled by the administrator",switchPermissionFailed:"Failed to switch permission",permissionUpdated:"Permission updated",switchExecutionModeFailed:"Failed to switch execution environment",executionModeUpdated:"Execution environment updated",switchNetworkPermissionFailed:"Failed to switch network permission",networkPermissionUpdated:"Network permission updated",networkRestricted:"Restricted",networkFull:"Fully open",switchedToMode:"Switched to {mode}",pathAuthorizationSaved:"Path authorization saved",pathAuthApplyMessage:"Applies to command tools immediately; restart terminal sessions to apply",savePathAuthorizationFailed:"Failed to save path authorization",conversationAutoCompressing:"Auto-compressing conversation",compressingNowPleaseWait:"The conversation is being compressed, please try again later",policyBlockedCompress:"Conversation compression has been disabled by the administrator",selectConversation:"Select a conversation",selectConversationForReview:"Select the conversation record to generate the review from",cannotSend:"Cannot send",noActiveConversationMessage:"No active conversation, cannot auto-send the prompt message",reviewPathMissing:"Review file path was not returned",reviewSuggestReadFull:"I suggest reading it in full.",reviewSuggestReadBySearch:"I suggest using the read tool to search or read in sections.",reviewAutoMessage:"Continue this task for me. The conversation file is at {path} and is {count} characters long. {suggestion} Read the file to understand it first, then do not continue working -- report your understanding to me and wait for my instructions.",reviewFileGenerated:"Review file generated",generateFailed:"Failed to generate",generateReviewFailed:"Failed to generate review",fetchPreviewFailed:"Failed to load preview",notConnected:"Not connected",waitForConnectionBeforeUpload:"Wait for the server connection before uploading",uploadDisabled:"Upload disabled",uploadDisabledByAdmin:"Uploading has been disabled by the administrator",modelDoesNotSupportImage:"The current model does not support images",chooseImageModelMessage:"Choose a model that supports image input before sending images",modelDoesNotSupportVideo:"The current model does not support videos",switchToVideoModelMessage:"Switch to a model that supports video input before sending videos",workspaceBootstrapTitle:"No workspaces yet",workspaceBootstrapMessage:'Click the "Workspace" button in the sidebar to create your first workspace',statusApiRequestFailed:"Status API request failed: {status}",hostModeFileTreeUnavailable:"The file tree is unavailable in host mode",dockerModeFilesChanged:"In Docker mode the files area now shows the project list",noImagesFound:"No images found",noImagesInWorkspace:"No image files available in the workspace",loadImagesFailed:"Failed to load images",noVideosFound:"No videos found",noVideosInWorkspace:"No video files available in the workspace",loadVideosFailed:"Failed to load videos",uploadingTitle:"Uploading",waitImageUploadDone:"Wait for the current image upload to finish",waitFileUploadDone:"Wait for the current file upload to finish",noFileReceived:"No file received",noValidFileContent:"The system did not return valid file content. Please try again",limitReachedTitle:"Limit reached",maxImagesMessage:"You can select up to {max} images",maxFilesMessage:"You can attach up to {max} files",ignoredTitle:"Ignored",skippedNonImageFiles:"Non-image files were skipped",exceededTitle:"Quantity exceeded",truncatedImagesMessage:"You can add up to {n} more images; the rest were truncated",truncatedFilesMessage:"You can attach up to {n} more files; the rest were truncated",waitVideoUploadDone:"Wait for the current video upload to finish",skippedNonVideoFiles:"Non-video files were skipped",tooManyVideosTitle:"Too many videos",onlyOneVideoMessage:"Only one video can be selected at a time; the first one was used",blankWelcomeDefault:"How can I help you?",updateTutorialStatusFailed:"Failed to update tutorial status",tutorialSaveFailedMessage:"Failed to save tutorial status, please try again later",policyBlockedTerminal:"The realtime terminal has been disabled by the administrator",workModeRunningMessage:"Conversation is running; wait for the current task to finish before switching run modes",switchRunModeFailed:"Failed to switch run mode",workModePlan:"Plan",workModeAsk:"Ask",workModeExecute:"Execute",runModeUpdated:"Run mode updated",loadGitChangesFailed:"Failed to load Git changes",fetchRunningTasksFailed:"Failed to load running tasks",saveInputDraftFailed:"Failed to save input draft",fetchInputDraftFailed:"Failed to load input draft",subAgentTaskDone:"Sub-agent {agentId} finished",backgroundRunCommandDone:"Background run_command finished"},Qm={dragUploadText:"Release to upload images",dragUploadHint:"Drag image or video files here",connectingServer:"Connecting to server, please wait",refreshPage:"Refresh page",model:"Model",runMode:"Run mode",collapseQuickDock:"Collapse quick dock",expandQuickDock:"Expand quick dock",switchWorkspace:"Switch workspace",conversationHistory:"Chat history",personalSpace:"Personal space",refresh:"Refresh",fullscreen:"Fullscreen",cardActions:"Card actions",imageUnsupportedPath:"Can't display image: unsupported image path {src}",imageMissingPath:"Can't display image: image path missing",imageLoadFailed:"Failed to load image",renderingContent:"Rendering content...",showFileMissingPath:"[show_file: missing path attribute]",fastMode:"Fast mode",fastModeDesc:"No reasoning, faster responses",thinkingModeDesc:"Continuous reasoning for complex tasks",modelNotSelected:"No model selected",backgroundCommandCount:"1 background command | {count} background commands",backgroundAgentCount:"1 background agent | {count} background agents",backgroundRunning:"running...",thinking:"Thinking...",waitingApiResponse:"Waiting for API response...",welcomeHelp:"How can I help?",welcomeHot:"Curious about trending topics?",welcomeHomework:"Need help with homework?",welcomeCode:"Up for some code?",welcomeChat:"Care for a chat?",welcomeOrganize:"Want me to organize your thoughts?",welcomeTool:"Want me to build a small tool for you?",welcomeContinue:"Send me a line and I will take it from here.",welcomeDraw:"Want me to draw something for you?",welcomeCat:"Want to see some kittens?",welcomePuzzle:"Throw a hard problem at me.",welcomeFun:"Want to see something fun?",welcomeNeed:"Tell me what you need~",networkRestrictedDesc:"Local loopback only; no external network",networkFullDesc:"Allow all outbound and inbound connections",workModePlanDesc:"Plan only; execute after approval",workModeAskDesc:"Discuss to confirm, then start",workModeExecuteDesc:"Fill in details and execute directly",permissionApproval:"Approval",permissionAutoApproval:"Auto-approval",permissionUnrestricted:"Unrestricted",permissionReadonlyDesc:"Read/search tools only; no workspace modifications",permissionApprovalDesc:"Tools that modify workspace files run only after your approval",permissionAutoApprovalDesc:"Writes in the workspace pass through; high-risk operations are auto-approved by the background agent",permissionUnrestrictedDesc:"Keep current default behavior with no extra restrictions",executionSandboxDesc:"All commands run in the system sandbox",executionDirectDesc:"All commands run directly on the host"},Xm={expand:"Expand",collapse:"Collapse",branch:"Branch",userDefaultName:"User",subAgentName:"Sub-agent",generating:"Generating...",userHeaderGuide:"Guidance",userHeaderGoal:"Goal",userHeaderReview:"Review",userHeaderCompression:"Compression",userHeaderNotify:"Notification",briefGoalReview:"Goal review complete",briefSubAgent:"Background sub-agent complete",briefBackgroundCommand:"Background command complete",briefCompression:"Conversation compressed",briefGoal:"Goal in progress",briefGuidance:"Running guidance",briefNotify:"System notification",briefSystem:"System message",subAgentDoneLabel:"Sub-agent {n} complete",workInProgress:"Working {duration}",workCompleted:"Work complete {duration}",thinking:"Thinking",thinkingRunning:"Thinking...",citationOpenSource:"Open source",citationPrev:"Previous source",citationNext:"Next source",targetFile:"target file",appendDone:"File append complete",appendSuccess:"Append content written to {path} (saved to file)",appendFailed:"Failed to write to {path}; content captured for later fixes.",appendWarning:"No closing marker detected. Continue adding content as prompted.",appendWarningFollow:"No closing marker detected. Continue adding content as prompted.",linesCount:"· {n} lines",bytesCount:"· {n} bytes",systemMessage:"System message (role: {role})",quickNavAria:"Quick jump to user inputs",emptyInput:"(Empty input)",noReply:"(No reply yet)",executing:"Executing...",callingTool:"Calling {name}...",toolCompleted:"Tool complete",executingTool:"Executing tool...",runTool:"Run tool",summaryRead:"Read {n} files",summaryCommand:"Ran {n} commands",summaryEdit:"Edited files {n} times",summarySearch:"Searched {n} times",summaryWebpage:"Viewed {n} webpages",summaryMcp:"Ran MCP tools {n} times",summaryWorkflowActivate:"Activated {n} workflows",summaryWorkflowAdvance:"Advanced workflow {n} times",summaryWorkflow:"Ran {n} workflow operations",summaryTodoCreate:"Created {n} todos",summaryTodoUpdate:"Updated {n} todos",summaryMemoryUpdate:"Updated memory {n} times",summaryMemoryRead:"Viewed memory {n} times",summaryConversation:"Reviewed {n} conversations",summarySubAgent:"Created {n} sub-agents",summarySubAgentManage:"Managed sub-agents {n} times",summaryWait:"Waited {n} times",summaryAsk:"Asked {n} times",summaryPlan:"Submitted {n} plans",summarySkill:"Archived {n} skills",summarySettings:"Updated personalization {n} times",summaryEasterEgg:"Triggered {n} easter eggs",summaryOther:"Ran {n} other operations",more:"More",allExpanded:"Showing all",stepsTotal:"{n} steps total",stepsHidden:"{n} steps collapsed",copyCode:"Copy code",filesEdited:"Edited {n} files",fileChanges:"File changes: {path}",diffTruncated:"Content too long; truncated",diffEmpty:"No text changes to show",fileTypeDoc:"Document",fileTypeSheet:"Spreadsheet",fileTypeSlides:"Presentation",fileTypePdf:"PDF",fileTypeText:"Text",fileTypeArchive:"Archive",fileTypeCode:"Code",fileTypeGeneric:"File",removeFile:"Remove {name}",pdfLoading:"Loading PDF...",pdfLoadFailed:"Failed to load PDF",pdfEmpty:"PDF content is empty",pdfRenderFailed:"Failed to render PDF",preview:"Preview",fileEmpty:"File is empty",htmlPreviewNotice:"References external resources; preview may be incomplete",networkError:"Network error",imageLoadFailed:"Failed to load image",csvTruncated:"Showing first {n} rows. Download the file for full content.",vmBrowserTitle:"Multimodal Knowledge Browser",vmBrowserReady:"Ready to search...",vmWebExtract:"Web Extraction",vmExtractWait:"Waiting to extract",vmFile:"Files",vmTerminal:"Terminal",vmCommandLine:"Command line",vmReaderTitle:"Reader",vmMemory:"Memory",vmTodo:"Todos",vmWait:"Wait",vmNewFile:"New file",vmNewFolder:"New folder",vmReadFile:"Read file",vmEditFile:"Edit file",vmRename:"Rename",vmDeleteFile:"Delete file",vmFocusFile:"Focus file",vmUnfocus:"Unfocus",vmSaveWebpage:"Save webpage",vmSaveSnapshot:"Save snapshot",vmResetTerminal:"Reset terminal",vmCloseTerminal:"Close terminal",progressBrowserSearch:"Searching...",progressWebExtract:"Extracting...",progressWebSave:"Saving...",progressAppendFile:"Editing...",progressModifyFile:"Editing...",progressCreateFile:"Creating...",progressDeleteFile:"Deleting...",progressReadFile:"Reading...",progressReader:"Reading...",progressFocus:"Focusing...",progressUnfocus:"Processing...",progressRunCommand:"Running command",progressTerminalSession:"Opening terminal",progressTerminalInput:"Terminal input",progressTerminalSnapshot:"Fetching terminal output",progressMemoryUpdate:"Syncing memory...",progressTodoCreate:"Updating todos...",progressTodoUpdate:"Updating todos...",progressTodoFinish:"Completing task...",progressTodoFinishConfirm:"Confirming task...",progressTodoDelete:"Removing task...",progressWait:"Waiting...",progressSleep:"Waiting...",progressCreateFolder:"Creating folder...",progressRenameFile:"Renaming...",progressTerminalReset:"Resetting terminal...",progressTerminalSleep:"Preparing to wait",progressTerminalRun:"Terminal running",progressOcr:"Extracting...",progressMemory:"Syncing memory...",progressTodo:"Managing todos...",progressGenericTool:"Calling tool"},Jm={applyModify:"Apply modifications",appendContent:"Append content",apply:"Apply",run:"Run",downloadFile:"Download file",appendFailedRetry:"Failed to write to {path}. Please retry as prompted.",modifyRecord:"Modification record",entryTitle:"Modification {n}",modifyTotal:"· {n} total",modifyCompleted:"· {n} completed",modifyDone:"· {n} done",modifyRemaining:"· {n} remaining",modifyProcessed:"Processed {path}",modifyWarning:"No closing marker detected; handled automatically.",loaderPoolEmpty:"loaderPool cannot be empty"},Zm={subAgent:"Sub-agent",backgroundCommand:"Background command",agentNamed:"Sub-agent {id}",more:"More",fileWindowTitle:"Files",todoWindowTitle:"To-dos",menuForceStop:"Force stop",menuRevealInManager:"Reveal in file manager",menuCopyPath:"Copy path",killForceStopFailed:"Failed to force stop",revealDetectAppsFailed:"Failed to detect available apps",revealNoAppsFound:"No available apps found",revealOpenFileFailed:"Failed to open file",copiedRelativePath:"Relative path copied",noProgress:"No progress yet",noOutput:"No output yet",statusIdle:"Idle",statusCompleted:"Completed",statusFailed:"Failed",statusTimeout:"Timed out",statusTerminated:"Terminated",statusEnded:"Ended",contextTokensTitle:"Context {tokens} tokens",toolReadFile:"Read {path}",toolWriteFile:"Write {path}",toolReadSkill:"Read skill {name}",toolSearch:"Search {query}",toolExtract:"Extract {url}",toolRunCommand:"Run command {command}",toolEditFile:"Edit {path}",toolReadMedia:"Read media file {path}",contextCompressed:"Context compressed (round {round})",resizeWidthHint:"Drag to resize width",previewTypeUnsupported:"This file type cannot be previewed",loadFailedHttp:"Failed to load (HTTP {status})",reviewing:"Reviewing",roundsLabel:"Round {n}",workflowEndRow:"Complete",effortTitle:"Reasoning effort",effortDefault:"Default",effortMoreEfficient:"More efficient",effortMoreIntelligent:"Smarter",atMenuAria:"File reference",atMenuPicker:"Select in file manager",atMenuPickerDesc:"Choose a local file",atMenuNoMatch:"No matching files",atMenuSearching:"Searching...",uploading:"Uploading...",uploadFile:"Upload file",conversationReview:"Review conversation",sendImage:"Send image",sendVideo:"Send video",disableTools:"Disable tools",goalMode:"Goal mode",goalDone:"Done",goalArmed:"Ready",settingsMenu:"Settings",toolSettingsSyncing:"Syncing tool settings...",noControllableTools:"No controllable tools",lockedByAdmin:"Locked by admin",toolDisable:"Disable",toolEnable:"Enable",realtimeTerminal:"Live terminal",usageStats:"Usage stats",compressing:"Compressing...",compressConversation:"Compress conversation",approvalPanel:"Approval panel",pathAuthorization:"Path authorization"},ef={generatingBrainstorming:"Brainstorming…",generatingPreparing:"Just a moment, AI is preparing",generatingPreparingTools:"Preparing tools",generatingThink:"Let me think…",generatingAnswerSoon:"The answer is almost here",generatingLoadingInspiration:"Loading inspiration",generatingAssemblingIdeas:"Assembling ideas",generatingBestApproach:"Weighing the best approach",generatingBrainMeeting:"Ideas in session",generatingOrganizing:"Gathering materials",generatingPolishing:"Polishing the reply",generatingContext:"Fitting context",generatingMemorySearch:"Digging through memory",generatingAlmostDone:"Almost done, hang tight",generatingDomainExpand:"Expanding the field",generatingToolchain:"Assembling toolchain…",generatingSentence:"Shaping the sentence…",generatingRethinking:"Let me think it through…",generatingKnowledgeSearch:"Searching the knowledge base…",commandChannelUnavailable:"Command channel unavailable",copyContentNotFound:"No content to copy",blockCopied:"Block {id} copied to clipboard",contentCopied:"Content copied to clipboard",copyBlockedByBrowser:"Your browser blocked the copy. Select the text and copy manually.",codeBlockNotFound:"Code block not found",codeContentEmpty:"Code content is empty",codeCopied:"Code copied to clipboard",copyBlockedManual:"Your browser blocked the copy. Please copy manually.",applyFailed:"Cannot apply",applyContentMissing:"No content to apply",filled:"Filled in",checkContentBeforeSend:"Review the content and send it to apply the changes.",cannotExecute:"Cannot run",commandContentMissing:"No command content to run",connectionLost:"Connection lost",reconnectAndRetry:"Reconnect and try again.",commandFailed:"Command failed",commandExecuted:"Command executed",downloadTargetMissing:"No file to download",downloadPathInvalid:"No valid file path provided",commandIdRequired:"command_id is required",taskIdRequired:"task_id is required",loadModelListFailed:"Failed to load model list",loadPolicyFailed:"Failed to load policy",createTaskFailed:"Failed to create task",pollTaskFailed:"Failed to poll task",cancelTaskFailed:"Failed to cancel task",fetchTaskListFailed:"Failed to fetch task list",pollingFluctuation:"Polling fluctuation",pollingUnstableRetry:"Message updates are temporarily unstable, retrying automatically",requestFailed:"Request failed",fileTreeUnavailableHostMode:"File tree unavailable in host mode",unlimited:"Unlimited",confirmAction:"Confirm action",confirmOperation:"Please confirm this operation",uploadDisabled:"Upload disabled",uploadDisabledByAdmin:"Upload has been disabled by the administrator",videoProcessing:"Processing video",videoProcessingSlow:"Reading video takes a while, please be patient",uploadingFileTitle:"Uploading file",uploadingFile:"Uploading {name}...",uploadingScanning:"File uploaded, running security scan...",serverResponseUnparseable:"Could not parse server response",uploadFailed:"Upload failed",uploadSuccess:"Uploaded: {name}",uploadComplete:"Upload complete",genericFile:"File",uploadSecurityRejected:"{name} failed the security review",uploadTypeNotAllowed:"{name} file type is not allowed",uploadFailedWithReason:'Failed to upload "{name}": {reason}',uploadFailedRetryLater:'Failed to upload "{name}", please try again later',updateFailed:"Failed to update",enabled:"Enabled",disabled:"Disabled",deepCompressMustExceedShallow:"Deep compression trigger context must be greater than shallow compression trigger context",saveFailed:"Failed to save",saved:"Saved",autoSaveFailed:"Failed to auto-save",logoutFailedRetry:"Failed to sign out, please try again later",toneChatty:"Chatty",toneHumorous:"Humorous",toneBlunt:"Blunt",toneEncouraging:"Encouraging",tonePoetic:"Poetic",toneCorporate:"Corporate",toneUnconventional:"Unconventional",toneEmpathetic:"Empathetic",idle:"Idle",planning:"Planning",thinking:"Thinking",abnormal:"Error",waitingReply:"Waiting for reply",waitingReplyEllipsis:"Waiting for reply...",inProgress:"In progress",playbackStatus:"Replaying {label}",toolPlayback:"Tool playback",toolExecFailed:"Tool execution failed"},tf={stopInProgress:"Stopping...",stopManually:"Stop manually",stopFailed:"Failed to stop",bgCommandTitle:"Background command {id}",bgCommandReadingOutput:"Reading background command output...",reviewTitle:"Conversation Review",reviewSubtitle:"Select a conversation to generate a review file",generatedHint:"Generated {path}",conversationList:"Conversations",conversationCount:"{n} total",noConversations:"No conversations",unnamedConversation:"Untitled conversation",currentTag:"Current",messageCount:"{n} msgs",toolCount:" · {n} tools",loadingMore:"Loading...",loadMore:"Load more",noMore:"No more",previewTitle:"Preview (first {n})",previewGenerating:"Generating preview...",previewEmptyHint:"Select a conversation on the left to preview",previewLimitHint:"Shows up to the first {n} lines",previewCount:"{n} lines",sendToModel:"Send to model",generating:"Generating...",goalDoneTitle:"Goal completed",goalStoppedTitle:"Goal mode stopped",goalRunningTitle:"Goal mode in progress",goalLabel:"Goal: {goal}",metricTurns:"Turns run",metricTokens:"Tokens used",metricToolCalls:"Tool calls",metricDuration:"Duration",stopReason:"Stop reason: {reason}",summaryDone:"Summary",summaryLatest:"Latest progress",statusDone:"Completed",statusStopped:"Stopped",reasonIdleNoTool:"The main model stopped without calling any tools (it may be stuck)",reasonMaxTurns:"Max turn limit reached",reasonMaxTokens:"Cumulative token limit reached",reasonUserCancel:"Stopped manually by user",imagePreview:"Image preview",closePreview:"Close preview",imagePickerTitle:"Select images (up to 9)",uploading:"Uploading...",sendFromLocal:"Send from local",noImages:"No image files found",imageSelectedCount:"Selected {n} / 9",tutorialPromptAriaLabel:"New user tutorial prompt",welcome:"Welcome",newUserTitle:"New user {name}",user:"User",tutorialPromptDesc:"Would you like a quick tutorial to get familiar with this system?",processing:"Processing...",startTutorial:"Let's start!",noMorePrompt:"Don't ask again",pathAuthTitle:"Path Authorization",writableMode:"Read & write",readableMode:"Read-only",writableHint:"Read-write paths are writable in the writable sandbox and read-only in the read-only sandbox.",readableHint:"Read-only paths join the read whitelist of the read-only sandbox (which denies all reads by default except system dirs, the workspace, and authorized paths).",writablePlaceholder:"One path per line, e.g. ~/Desktop/agents-export",readablePlaceholder:"One path per line, e.g. ~/Documents/reference",planApprovalAriaLabel:"Plan awaiting approval",planApprovalTitle:"Plan awaiting approval",planApprovalMinimize:"Close the dialog; restore it later from the status bar",planTruncatedNote:"(Content too long; preview truncated. See the file for the full content)",planCommentPlaceholder:"Feedback (optional): added as extra requirements when approving, or describe what to adjust when rejecting...",planRejectTitle:"Reject this plan; the AI will revise it based on your feedback and resubmit",reject:"Reject",planApproveTitle:"Approve the plan and switch to execute mode to start",submittingPlan:"Submitting...",approveAndExecute:"Approve & execute",subAgentProgressTitle:"Sub-agent #{id} progress",readingActivity:"Reading sub-agent activity...",noActivity:"No activity records",toolReadFile:"Reading {path}",toolWriteFile:"Writing file {path}",toolReadSkill:"Reading skill {name}",toolWebSearch:"Searching the web for {query}",toolExtractWebpage:"Extracting {url}",toolRunCommand:"Running command {command}",toolEditFile:"Editing {path}",toolReadMedia:"Reading media file {path}",toolGeneric:"Tool",stateCompleted:"Completed",stateCalling:"Calling",stateInProgress:"In progress",tutorialExit:"Exit",tutorialFallbackTitle:"Tutorial",tutorialWaitingTarget:"Target element not found. Retry later or skip this step.",tutorialMustClickHint:"Click the highlighted target to continue.",tutorialScrollHint:"Tip: personal space content is scrollable.",tutorialComplete:"Finish",tutorialClickFirst:"Click the highlighted target first",tutorialNextSkip:"Next (skip)",tutorialNext:"Next",userQuestionAriaLabel:"Your answer is needed",windowControlAria:"Window controls",minimizeAria:"Minimize for now",userQuestionWindowTitle:"Action needed",questionIndex:"Question {current} of {total}",questionNavAria:"Switch question",prevQuestionAria:"Previous question",nextQuestionAria:"Next question",answerPlaceholder:"Type your answer...",dismissTitle:"Skip this question; the AI will ask you directly in the conversation instead",dismiss:"✕ Skip",submittingAnswer:"Submitting...",switchOn:"On",switchOff:"Off",refresh:"Refresh",emptyMessage:"(Empty message)",filesCount:"{n} files",noCheckpoints:"No version points",loadingDetail:"Loading details...",detailTitle:"Commit details #{seq}",noDiffLines:"No text changes to show",diffTruncated:"Content too long, truncated",selectCheckpoint:"Select a version point to view details",restoreScope:"Restore scope",scopeConversationOnly:"Conversation only",scopeWorkspaceAndConversation:"Conversation & workspace",restoreModeLabel:"Restore mode",modeOverwrite:"Overwrite current conversation",modeCopy:"Copy conversation",restoring:"Restoring...",confirmRestore:"Confirm restore",videoPickerTitle:"Select video (1 at a time)",noVideos:"No video files found",videoSelectedCount:"Selected {n} / 1"},nf={confirmOperation:"Confirm action",downloadFile:"Download file",downloadArchive:"Download archive",closeNotification:"Close notification",focusFilesCount:"Focused files ({n}/3)",closeFocusPanel:"Close focus panel",noFocusFiles:"No focused files",closeGitPanel:"Close Git changes panel",loadingGitChanges:"Loading Git changes...",noUncommittedChanges:"No uncommitted changes",openFileWithApp:"Open file with an app",dockerModeUnavailable:"Unavailable in Docker mode",noAppsDetected:"No apps detected",restore:"Restore",hiddenLines:"{n} unchanged lines",unsetUpstream:"No upstream branch set",detectAppsFailed:"Failed to detect apps",openFileFailed:"Failed to open file",waitingTerminalSession:"Waiting for terminal session...",closeTerminalPanel:"Close terminal panel",noOpenTerminals:"No open terminals",closeApprovalPanel:"Close approval panel",noPendingApprovals:"No pending approvals",pathLabel:"Path: ",renameLabel:"Rename: ",toolLabel:"Tool: ",summaryLabel:"Summary: ",switchToUnrestricted:"Switch to unrestricted",run:"Run",reject:"Reject",toolApprovalTitle:"Tool approval ({n})",toolRunCommand:"Run command",toolTerminalInput:"Terminal input",toolCreateFile:"Create file",toolCreateFolder:"Create folder",toolDeleteFile:"Delete file",toolRenameFile:"Rename file",toolWriteFile:"Write file",toolEditFile:"Edit file",pendingApproval:"Pending approval"},of={expandConversations:"Expand conversation history",collapseConversations:"Collapse conversation history",conversationHistory:"Conversations",newConversation:"New Chat",project:"Project",workspace:"Workspace",workflows:"Workflows",searchConversationPlaceholder:"Search conversations",normalConversations:"Normal chat",multiAgent:"Multi-agent",runningTasksTitle:"Running tasks",runningConversation:"Running conversation",completed:"Completed",currentWorkspace:"Current workspace",pinWorkspace:"Pin",unpinWorkspace:"Unpin",revealInFolder:"Reveal in folder",rename:"Rename",noConversations:"No conversations",loadingMore:"Loading...",loadMore:"Load more",noMatchingConversations:"No matching conversations",loading:"Loading...",noConversationHistory:"No conversation history",searching:"Searching...",searchMore:"Search more",searchExhausted:"All results shown",renameTitle:"Rename {kind}",renamePlaceholder:"Enter a name",personalSpace:"Personal space",workspaceCount:"{n} items",deleteProjectConfirm:'Delete "{label}"? The project folder and its conversation history will be removed.',deleteWorkspaceConfirm:'Delete "{label}"? The folder on disk will not be deleted.',unconfiguredPath:"(No path set)",default:"Default",noProjects:"No projects",noWorkspaces:"No workspaces",createNoun:"New {noun}",projectNamePlaceholder:"Project name",workspaceNamePlaceholder:"Workspace name (optional)",pathPlaceholder:"Path: absolute or repo-relative path",creating:"Creating...",create:"Create",setDefault:"Set as default",collapseUsage:"Collapse usage stats",tokenStats:"Token stats",currentContext:"Current context",cumulativeInput:"Total input",cumulativeOutput:"Total output",cumulativeCachedInput:"Cached input",cacheHitRate:"Cache hit rate",performanceStats:"Performance",memory:"Memory",containerMetricsPending:"Container is running, waiting for metrics...",hostModeNoContainer:"Running in host mode; no container metrics available.",quotaStats:"Quota stats",resetAt:"Resets {time}",resourceStats:"Resources",network:"Network",storage:"Storage",quotaTierFast:"Regular models",quotaTierThinking:"Thinking models",quotaTierSearch:"Search",unknown:"Unknown",stopped:"Stopped",containerRunning:"Running"},sf={loginTitle:"Astrion Login",loginSubtitle:"Sign in to continue to the workspace",email:"Email",password:"Password",login:"Log in",hostModeNoLogin:"Host mode (no sign-in)",noAccount:"No account yet?",signUp:"Sign up",emailAndPasswordRequired:"Please enter your email and password",serviceUnavailable:"Service is temporarily unavailable, please try again later",loginFailed:"Login failed",networkErrorRetry:"Network error, please retry",resourceBusy:"Resources are busy, please try again later",hostModeUnavailable:"Host mode is unavailable",createAccount:"Create account",registerDoneHint:"You can log in once registration is complete",username:"Username",usernamePlaceholder:"Lowercase letters, digits, and underscores only",inviteCode:"Invite code",requiredPlaceholder:"Required",register:"Sign up",haveAccount:"Already have an account?",backToLogin:"Back to login",fillAllFields:"Please fill in all fields",registerFailed:"Registration failed"},af={fullscreenPreview:"Fullscreen preview",refresh:"Refresh",closeEsc:"Close (Esc)",closeFullscreenPreview:"Close fullscreen preview",copyCode:"Copy code",quotaTypeThinking:"Thinking model",quotaTypeSearch:"Search",quotaTypeFast:"Standard model",quotaExhaustedResetIn:"{type} quota exhausted, resets at {time}",contextTooLong:"Conversation context is too long",contextNearLimit:"The current conversation context is nearing its limit. Consider using compression.",videoReading:"Reading video",videoReadingSlow:"Reading the video may take a while, please be patient",unknownFile:"Unknown file",subAgentItem:"Sub-agent {id} ({summary})",noDescription:"No description",waitingForSubAgents:"⏳ Waiting for {n} background sub-agents to complete: {list}",listSeparator:", ",unknownErrorOccurred:"An unknown error occurred",requestRecord:"Request log: {path}",endpoint:"Endpoint: {endpoint}",model:"Model: {model}",conversationIdLabel:"Conversation ID: {id}",taskIdLabel:"Task ID: {id}",apiError:"API error",apiErrorWithCode:"API error {code}",systemStatus:`System status:
{data}`,commandFailed:"Command failed: {message}"},rf={setupTitle:"Set Up Sandbox Environment",setupAriaLabel:"Sandbox environment setup wizard",introWhat:"The sandbox is an isolated command execution environment (based on WSL2). All terminal commands run by the AI execute inside the sandbox, isolated from your system.",introEffect:"Without the sandbox, commands that require isolation cannot run and tool calls will fail with errors.",introDisk:"An Alpine mini system (~3MB) will be downloaded and installed to {path} (~100-300MB total with toolchain).",introUninstall:"You can fully uninstall anytime with: wsl --unregister {distro}.",introSecure:"A dedicated sandbox distro is installed (Windows interop disabled); a daily distro like Ubuntu cannot be used instead.",stateWslMissing:"WSL2 is not enabled on this system. Setup will first enable WSL2 (a system administrator prompt will appear, and a reboot may be required afterwards).",stateDistroMissing:"WSL2 is ready, but the dedicated sandbox distro is not installed yet. Click install to finish automatically.",stateBwrapMissing:"The sandbox distro exists, but the bubblewrap component is missing. Click install to repair automatically.",stateChecking:"Checking sandbox environment...",phaseEnablingWsl:"Requesting administrator approval to enable WSL2 (please confirm in the system prompt)...",phaseInstallingWsl:"Downloading and installing WSL2 components; this may take a few minutes...",phaseVerifying:"Verifying installation...",phaseDone:"Setup complete. The sandbox environment is ready.",phaseNeedsReboot:"WSL2 has been enabled, but a reboot is required to continue. Please reboot and reopen this wizard to finish setup.",phaseError:"Setup failed",stepCheckWsl:"Check WSL environment",stepCheckDistro:"Check distro",stepDownloadRootfs:"Download Alpine system",stepImportDistro:"Import WSL2 distro",stepWriteConfig:"Write sandbox configuration",stepInstallTools:"Install sandbox toolchain",downloadProgress:"Downloaded {size}",logLabel:"Setup log",installNow:"Install Now",later:"Not Now",neverAgain:"Don't ask again",rebootDone:"I have rebooted, continue setup",uacCancelledHint:'Administrator approval was cancelled. Enabling WSL2 requires administrator permission; please retry and choose "Yes" in the system prompt.',sectionTitle:"Sandbox Environment",sectionReady:"Ready",sectionMissing:"Not installed",sectionChecking:"Checking...",sectionUnavailable:"Not applicable in this environment",sectionDesc:"In Windows host mode, commands run isolated inside a WSL2-based sandbox.",openWizard:"Open Setup Wizard",recheck:"Re-check",neverAgainSet:`"Don't ask again" is on`,resetNeverAgain:"Re-enable prompts"},lf={common:xm,personalization:Om,toolResults:Um,input:Wm,tutorial:Bm,monitor:jm,workflow:Hm,adminDashboard:Vm,adminPolicy:$m,adminApi:qm,adminCustomTools:Gm,appMessages:Km,appTasks:Ym,appUi:zm,appCore:Qm,chat:Xm,chatActions:Jm,quickdock:Zm,stores:ef,overlay:tf,shell:nf,sidebar:of,auth:sf,utils:af,sandbox:rf},Dl="agents_ui_locale",cf=e=>e==="zh-CN"||e==="en-US",ni=()=>{if(typeof window>"u")return"zh-CN";const e=window.localStorage.getItem(Dl);return cf(e)?e:"zh-CN"},Hn=em({legacy:!1,globalInjection:!0,locale:ni(),fallbackLocale:"zh-CN",missingWarn:!1,fallbackWarn:!1,messages:{"zh-CN":Lm,"en-US":lf}}),Ml=tn(Hn.global.locale.value),df=e=>{Hn.global.locale.value=e,Ml.value=e,typeof window<"u"&&(window.localStorage.setItem(Dl,e),document.documentElement.setAttribute("lang",e))},jf=Hn.global.t.bind(Hn.global),Hf=e=>{e.use(Hn),document.documentElement.setAttribute("lang",ni())},Vf=()=>({locale:Ml,setLocale:df,loadLocale:ni});export{yf as $,Wf as A,Uf as B,Of as C,Ml as D,be as E,_e as F,$t as G,hf as H,jl as I,lc as J,X as K,An as L,vf as M,Hl as N,pf as O,tr as P,gf as Q,df as R,wf as S,Ef as T,Bs as U,xn as V,wd as W,If as X,Rf as Y,gr as Z,Cf as _,hr as a,Cc as a0,qs as a1,cc as a2,ff as a3,at as a4,Oc as a5,_f as a6,Tf as a7,Hn as a8,kf as a9,Nf as aa,ti as ab,Vf as ac,Af as ad,Df as ae,xc as af,Pf as ag,mf as ah,Mf as ai,os as aj,uf as ak,hd as al,us as b,Ff as c,No as d,vd as e,Br as f,bf as g,bd as h,Lf as i,tn as j,Xt as k,jf as l,ds as m,Fo as n,Ws as o,Bf as p,Hf as q,Sf as r,he as s,Bl as t,Is as u,xf as v,on as w,kc as x,Es as y,Ao as z};