54 lines
343 KiB
JavaScript
54 lines
343 KiB
JavaScript
/**
|
||
* @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)&>(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&>(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&<(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)&<(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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Xi(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}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,"$1on$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:")}),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 Body(Markdown)",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:"headers(JSON,可选)",mcpEnv:"env(JSON,可选,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};
|