diff --git a/static/management.html b/static/management.html index 7f5f138..b9d1cbf 100644 --- a/static/management.html +++ b/static/management.html @@ -34,7 +34,7 @@ Please change the parent to {if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Qu(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Wd(e){return function(t){return e.apply(null,t)}}function Gd(e){return H.isObject(e)&&e.isAxiosError===!0}var Kd={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Kd).forEach(([e,t])=>{Kd[t]=e});function qd(e){let t=new Hd(e),n=Xc(Hd.prototype.request,t);return H.extend(n,Hd.prototype,t,{allOwnKeys:!0}),H.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return qd(fd(e,t))},n}var Jd=qd(Fu);Jd.Axios=Hd,Jd.CanceledError=Qu,Jd.CancelToken=Ud,Jd.isCancel=Zu,Jd.VERSION=Id,Jd.toFormData=pu,Jd.AxiosError=su,Jd.Cancel=Jd.CanceledError,Jd.all=function(e){return Promise.all(e)},Jd.spread=Wd,Jd.isAxiosError=Gd,Jd.mergeConfig=fd,Jd.AxiosHeaders=Yu,Jd.formToJSON=e=>Mu(H.isHTMLForm(e)?new FormData(e):e),Jd.getAdapter=Nd.getAdapter,Jd.HttpStatusCode=Kd,Jd.default=Jd;var Yd=e=>{let t=(e||``).trim();return t?(t=t.replace(/\/?v0\/management\/?$/i,``),t=t.replace(/\/+$/i,``),/^https?:\/\//i.test(t)||(t=`http://${t}`),t):``},Xd=e=>{let t=Yd(e);return t?`${t}${nc}`:``},Zd=()=>{try{let{protocol:e,hostname:t,port:n}=window.location;return Yd(`${e}//${t}${n?`:${n}`:``}`)}catch(e){return console.warn(`Failed to detect api base from location, fallback to default`,e),Yd(`http://localhost:${tc}`)}};function Qd(e){"@babel/helpers - typeof";return Qd=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Qd(e)}function $d(e,t){if(Qd(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Qd(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ef(e){var t=$d(e,`string`);return Qd(t)==`symbol`?t:t+``}function tf(e,t,n){return(t=ef(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var U=new class{constructor(){tf(this,`instance`,void 0),tf(this,`apiBase`,``),tf(this,`managementKey`,``),this.instance=Jd.create({timeout:rc,headers:{"Content-Type":`application/json`}}),this.setupInterceptors()}setConfig(e){this.apiBase=Xd(e.apiBase),this.managementKey=e.managementKey,e.timeout?this.instance.defaults.timeout=e.timeout:this.instance.defaults.timeout=rc}readHeader(e,t){if(!e)return null;let n=e=>{if(e==null)return null;if(Array.isArray(e)){let t=e.find(e=>e!=null&&String(e).trim());return t===void 0?null:String(t)}return String(e)||null},r=e.get;if(typeof r==`function`)for(let i of t){let t=n(r.call(e,i));if(t)return t}let i=typeof e.entries==`function`?Array.from(e.entries()):Object.entries(e),a=Object.fromEntries(i.map(([e,t])=>[String(e).toLowerCase(),t]));for(let e of t){let t=n(a[e.toLowerCase()]);if(t)return t}return null}setupInterceptors(){this.instance.interceptors.request.use(e=>(e.baseURL=this.apiBase,e.url&&(e.url=e.url.replace(/\/generative-language-api-key\b/g,`/gemini-api-key`)),this.managementKey&&(e.headers.Authorization=`Bearer ${this.managementKey}`),e),e=>Promise.reject(this.handleError(e))),this.instance.interceptors.response.use(e=>{let t=e.headers,n=this.readHeader(t,ic),r=this.readHeader(t,ac);return(n||r)&&window.dispatchEvent(new CustomEvent(`server-version-update`,{detail:{version:n||null,buildDate:r||null}})),e},e=>Promise.reject(this.handleError(e)))}handleError(e){let t=e=>typeof e==`object`&&!!e;if(Jd.isAxiosError(e)){let n=e.response?.data,r=t(n)?n:null,i=r?.error,a=typeof i==`string`?i:t(i)&&typeof i.message==`string`?i.message:typeof r?.message==`string`?r.message:e.message||`Request failed`,o=Error(a);return o.name=`ApiError`,o.status=e.response?.status,o.code=e.code,o.details=n,o.data=n,e.response?.status===401&&window.dispatchEvent(new Event(`unauthorized`)),o}let n=e instanceof Error?e.message:typeof e==`string`?e:`Unknown error occurred`,r=Error(n);return r.name=`ApiError`,r}async get(e,t){return(await this.instance.get(e,t)).data}async post(e,t,n){return(await this.instance.post(e,t,n)).data}async put(e,t,n){return(await this.instance.put(e,t,n)).data}async patch(e,t,n){return(await this.instance.patch(e,t,n)).data}async delete(e,t){return(await this.instance.delete(e,t)).data}async getRaw(e,t){return this.instance.get(e,t)}async postForm(e,t,n){return(await this.instance.post(e,t,{...n,headers:{...n?.headers||{},"Content-Type":`multipart/form-data`}})).data}async requestRaw(e){return this.instance.request(e)}};function nf(e){return e?Array.isArray(e)?e.reduce((e,t)=>{let n=t?.key?.trim(),r=t?.value?.trim();return n&&r!=null&&r!==``&&(e[n]=r),e},{}):Object.entries(e).reduce((e,[t,n])=>{let r=t?.trim(),i=typeof n==`string`?n.trim():n;return r&&i!=null&&i!==``&&(e[r]=String(i)),e},{}):{}}function rf(e,t){if(!e)return!1;let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function af(e){return!e||typeof e!=`object`?[]:Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>({key:e,value:String(t)}))}var of=e=>(e??[]).map(e=>({key:String(e?.key??``).trim(),value:String(e?.value??``).trim()})).filter(e=>e.key||e.value).sort((e,t)=>{let n=e.key.toLowerCase().localeCompare(t.key.toLowerCase());return n===0?e.value.localeCompare(t.value):n}),sf=e=>typeof e==`object`&&!!e&&!Array.isArray(e),cf=e=>{if(e!=null){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(typeof e==`string`){let t=e.trim().toLowerCase();if([`true`,`1`,`yes`,`y`,`on`].includes(t))return!0;if([`false`,`0`,`no`,`n`,`off`].includes(t))return!1}return!!e}},lf=e=>Array.isArray(e)?e.map(e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();return t?{name:t}:null}if(!sf(e))return null;let t=e.name||e.id||e.model;if(!t)return null;let n=e.alias||e.display_name||e.displayName,r=e.priority??e.priority,i=e[`test-model`]??e.testModel,a={name:String(t)};if(n&&n!==t&&(a.alias=String(n)),r!==void 0){let e=Number(r);Number.isFinite(e)&&(a.priority=e)}return i&&(a.testModel=String(i)),a}).filter(Boolean):[],uf=e=>{if(!e||typeof e!=`object`)return;let t=nf(e);return Object.keys(t).length?t:void 0},df=e=>{let t=Array.isArray(e)?e:typeof e==`string`?e.split(/[\n,]/):[],n=new Set,r=[];return t.forEach(e=>{let t=String(e??``).trim();if(!t)return;let i=t.toLowerCase();n.has(i)||(n.add(i),r.push(t))}),r},ff=e=>e==null?void 0:String(e).trim()||void 0,pf=e=>e==null?void 0:String(e).trim()||void 0,mf=e=>{if(e==null)return null;let t=sf(e)?e:null,n=t?.[`api-key`]??t?.apiKey??t?.key??(typeof e==`string`?e:``),r=String(n||``).trim();if(!r)return null;let i=t?t[`proxy-url`]??t.proxyUrl:void 0,a=t?uf(t.headers):void 0,o=pf(t?.[`auth-index`]??t?.authIndex??t?.auth_index),s={apiKey:r,proxyUrl:i?String(i):void 0,headers:a};return o&&(s.authIndex=o),s},hf=e=>{if(e==null)return null;let t=sf(e)?e:null,n=t?.[`api-key`]??t?.apiKey??(typeof e==`string`?e:``),r=String(n||``).trim();if(!r)return null;let i={apiKey:r},a=t?.priority??t?.priority;if(a!=null&&String(a).trim()!==``){let e=Number(a);Number.isFinite(e)&&(i.priority=e)}let o=ff(t?.prefix??t?.prefix);o&&(i.prefix=o);let s=t?t[`base-url`]??t.baseUrl:void 0,c=t?t[`proxy-url`]??t.proxyUrl:void 0;s&&(i.baseUrl=String(s));let l=cf(t?.websockets??t?.websockets);l!==void 0&&(i.websockets=l),c&&(i.proxyUrl=String(c));let u=uf(t?.headers);u&&(i.headers=u);let d=lf(t?.models);d.length&&(i.models=d);let f=df(t?.[`excluded-models`]??t?.excludedModels??t?.excluded_models??t?.excluded_models);f.length&&(i.excludedModels=f);let p=pf(t?.[`auth-index`]??t?.authIndex??t?.auth_index);p&&(i.authIndex=p);let m=t?.cloak;if(sf(m)){let e={},t=m.mode??m.mode;typeof t==`string`&&t.trim()&&(e.mode=t.trim());let n=cf(m[`strict-mode`]??m.strictMode??m.strict_mode);n!==void 0&&(e.strictMode=n);let r=df(m[`sensitive-words`]??m.sensitiveWords??m.sensitive_words);r.length&&(e.sensitiveWords=r),Object.keys(e).length&&(i.cloak=e)}return i},gf=e=>{if(e==null)return null;let t=sf(e)?e:null,n=t?.[`api-key`]??t?.apiKey;!n&&typeof e==`string`&&(n=e);let r=String(n||``).trim();if(!r)return null;let i={apiKey:r},a=t?.priority??t?.priority;if(a!=null&&String(a).trim()!==``){let e=Number(a);Number.isFinite(e)&&(i.priority=e)}let o=ff(t?.prefix??t?.prefix);o&&(i.prefix=o);let s=t?t[`base-url`]??t.baseUrl??t.base_url:void 0;s&&(i.baseUrl=String(s));let c=t?t[`proxy-url`]??t.proxyUrl??t.proxy_url:void 0;c&&(i.proxyUrl=String(c));let l=lf(t?.models);l.length&&(i.models=l);let u=uf(t?.headers);u&&(i.headers=u);let d=df(t?.[`excluded-models`]??t?.excludedModels);d.length&&(i.excludedModels=d);let f=pf(t?.[`auth-index`]??t?.authIndex??t?.auth_index);return f&&(i.authIndex=f),i},_f=e=>{if(!sf(e))return null;let t=e.name||e.id,n=e[`base-url`]??e.baseUrl;if(!t||!n)return null;let r=[];Array.isArray(e[`api-key-entries`])?r=e[`api-key-entries`].map(e=>mf(e)).filter(Boolean):Array.isArray(e[`api-keys`])&&(r=e[`api-keys`].map(e=>mf({"api-key":e})).filter(Boolean));let i=uf(e.headers),a=lf(e.models),o=e.priority??e.priority,s=e[`test-model`]??e.testModel,c={name:String(t),baseUrl:String(n),apiKeyEntries:r},l=cf(e.disabled??e.disabled);l!==void 0&&(c.disabled=l);let u=ff(e.prefix??e.prefix);u&&(c.prefix=u),i&&(c.headers=i),a.length&&(c.models=a),o!==void 0&&(c.priority=Number(o)),s&&(c.testModel=String(s));let d=pf(e[`auth-index`]??e.authIndex??e.auth_index);return d&&(c.authIndex=d),c},vf=e=>{if(!sf(e))return;let t=e[`oauth-excluded-models`]??e.items??e;if(!sf(t))return;let n={};return Object.entries(t).forEach(([e,t])=>{let r=String(e||``).trim();if(!r)return;let i=df(t);n[r.toLowerCase()]=i}),n},yf=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{if(!sf(e))return;let r=String(e.from??e.from??``).trim(),i=String(e.to??e.to??``).trim();if(!r||!i)return;let a=r.toLowerCase();t.has(a)||(t.add(a),n.push({from:r,to:i}))}),n},bf=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{if(!sf(e))return;let r=String(e[`upstream-api-key`]??e.upstreamApiKey??e.upstream_api_key??``).trim();if(!r||t.has(r))return;let i=e[`api-keys`]??e.apiKeys??e.api_keys??[],a=Array.isArray(i)?Array.from(new Set(i.map(e=>String(e??``).trim()).filter(Boolean))):[];a.length&&(t.add(r),n.push({upstreamApiKey:r,apiKeys:a}))}),n},xf=e=>{let t=sf(e)?e.ampcode??e:e;if(!sf(t))return;let n=t,r={},i=n[`upstream-url`]??n.upstreamUrl??n.upstream_url;i&&(r.upstreamUrl=String(i));let a=n[`upstream-api-key`]??n.upstreamApiKey??n.upstream_api_key;a&&(r.upstreamApiKey=String(a));let o=bf(n[`upstream-api-keys`]??n.upstreamApiKeys??n.upstream_api_keys);o.length&&(r.upstreamApiKeys=o);let s=cf(n[`force-model-mappings`]??n.forceModelMappings??n.force_model_mappings);s!==void 0&&(r.forceModelMappings=s);let c=yf(n[`model-mappings`]??n.modelMappings??n.model_mappings);return c.length&&(r.modelMappings=c),r},Sf=e=>{let t={raw:sf(e)?e:{}};if(!sf(e))return t;t.debug=cf(e.debug);let n=e[`proxy-url`]??e.proxyUrl;t.proxyUrl=typeof n==`string`?n:n==null?void 0:String(n);let r=e[`request-retry`]??e.requestRetry;if(typeof r==`number`&&Number.isFinite(r))t.requestRetry=r;else if(typeof r==`string`&&r.trim()!==``){let e=Number(r);Number.isFinite(e)&&(t.requestRetry=e)}let i=e[`quota-exceeded`]??e.quotaExceeded;sf(i)&&(t.quotaExceeded={switchProject:cf(i[`switch-project`]??i.switchProject),switchPreviewModel:cf(i[`switch-preview-model`]??i.switchPreviewModel),antigravityCredits:cf(i[`antigravity-credits`]??i.antigravityCredits)}),t.requestLog=cf(e[`request-log`]??e.requestLog),t.loggingToFile=cf(e[`logging-to-file`]??e.loggingToFile);let a=e[`logs-max-total-size-mb`]??e.logsMaxTotalSizeMb;if(typeof a==`number`&&Number.isFinite(a))t.logsMaxTotalSizeMb=a;else if(typeof a==`string`&&a.trim()!==``){let e=Number(a);Number.isFinite(e)&&(t.logsMaxTotalSizeMb=e)}t.wsAuth=cf(e[`ws-auth`]??e.wsAuth),t.forceModelPrefix=cf(e[`force-model-prefix`]??e.forceModelPrefix);let o=e.routing,s=sf(o)?o.strategy??o.strategy:e[`routing-strategy`]??e.routingStrategy;s!=null&&(t.routingStrategy=String(s));let c=e[`api-keys`]??e.apiKeys;Array.isArray(c)&&(t.apiKeys=c.map(e=>String(e)).filter(e=>e.trim()!==``));let l=e[`gemini-api-key`]??e.geminiApiKey??e.geminiApiKeys;Array.isArray(l)&&(t.geminiApiKeys=l.map(e=>gf(e)).filter(Boolean));let u=e[`codex-api-key`]??e.codexApiKey??e.codexApiKeys;Array.isArray(u)&&(t.codexApiKeys=u.map(e=>hf(e)).filter(Boolean));let d=e[`claude-api-key`]??e.claudeApiKey??e.claudeApiKeys;Array.isArray(d)&&(t.claudeApiKeys=d.map(e=>hf(e)).filter(Boolean));let f=e[`vertex-api-key`]??e.vertexApiKey??e.vertexApiKeys;Array.isArray(f)&&(t.vertexApiKeys=f.map(e=>hf(e)).filter(Boolean));let p=e[`openai-compatibility`]??e.openaiCompatibility??e.openAICompatibility;Array.isArray(p)&&(t.openaiCompatibility=p.map(e=>_f(e)).filter(Boolean));let m=xf(e.ampcode);m&&(t.ampcode=m);let h=vf(e[`oauth-excluded-models`]??e.oauthExcludedModels);return h&&(t.oauthExcludedModels=h),t},Cf={async getConfig(){return Sf(await U.get(`/config`))},getRawConfig:()=>U.get(`/config`),updateDebug:e=>U.put(`/debug`,{value:e}),updateProxyUrl:e=>U.put(`/proxy-url`,{value:e}),clearProxyUrl:()=>U.delete(`/proxy-url`),updateRequestRetry:e=>U.put(`/request-retry`,{value:e}),updateSwitchProject:e=>U.put(`/quota-exceeded/switch-project`,{value:e}),updateSwitchPreviewModel:e=>U.put(`/quota-exceeded/switch-preview-model`,{value:e}),updateRequestLog:e=>U.put(`/request-log`,{value:e}),updateLoggingToFile:e=>U.put(`/logging-to-file`,{value:e}),async getLogsMaxTotalSizeMb(){let e=await U.get(`/logs-max-total-size-mb`),t=e?.[`logs-max-total-size-mb`]??e?.logsMaxTotalSizeMb??0,n=Number(t);return Number.isFinite(n)?n:0},updateLogsMaxTotalSizeMb:e=>U.put(`/logs-max-total-size-mb`,{value:e}),updateWsAuth:e=>U.put(`/ws-auth`,{value:e}),async getForceModelPrefix(){let e=await U.get(`/force-model-prefix`);return!!(e?.[`force-model-prefix`]??e?.forceModelPrefix??!1)},updateForceModelPrefix:e=>U.put(`/force-model-prefix`,{value:e}),async getRoutingStrategy(){let e=await U.get(`/routing/strategy`),t=e?.strategy??e?.[`routing-strategy`]??e?.routingStrategy;return typeof t==`string`?t:`round-robin`},updateRoutingStrategy:e=>U.put(`/routing/strategy`,{value:e})},wf=0,Tf=null,Ef=[`debug`,`proxy-url`,`request-retry`,`quota-exceeded`,`request-log`,`logging-to-file`,`logs-max-total-size-mb`,`ws-auth`,`force-model-prefix`,`routing/strategy`,`api-keys`,`ampcode`,`gemini-api-key`,`codex-api-key`,`claude-api-key`,`vertex-api-key`,`openai-compatibility`,`oauth-excluded-models`],Df=(e,t)=>{if(e)switch(t){case`debug`:return e.debug;case`proxy-url`:return e.proxyUrl;case`request-retry`:return e.requestRetry;case`quota-exceeded`:return e.quotaExceeded;case`request-log`:return e.requestLog;case`logging-to-file`:return e.loggingToFile;case`logs-max-total-size-mb`:return e.logsMaxTotalSizeMb;case`ws-auth`:return e.wsAuth;case`force-model-prefix`:return e.forceModelPrefix;case`routing/strategy`:return e.routingStrategy;case`api-keys`:return e.apiKeys;case`ampcode`:return e.ampcode;case`gemini-api-key`:return e.geminiApiKeys;case`codex-api-key`:return e.codexApiKeys;case`claude-api-key`:return e.claudeApiKeys;case`vertex-api-key`:return e.vertexApiKeys;case`openai-compatibility`:return e.openaiCompatibility;case`oauth-excluded-models`:return e.oauthExcludedModels;default:return t?e.raw?.[t]:void 0}},Of=Zs((e,t)=>({config:null,cache:new Map,loading:!1,error:null,fetchConfig:(async(n,r=!1)=>{let{cache:i,isCacheValid:a}=t(),o=n||`__full__`;if(!r&&a(n)){let e=i.get(o);if(e)return e.data}if(!r&&n&&a()){let e=i.get(`__full__`);if(e?.data)return Df(e.data,n)}if(Tf){let e=await Tf.promise;return n?Df(e,n):e}e({loading:!0,error:null});let s=wf+=1;try{let t=Cf.getConfig();Tf={id:s,promise:t};let r=await t,a=Date.now();if(s!==wf)return n?Df(r,n):r;let o=new Map(i);return o.set(`__full__`,{data:r,timestamp:a}),Ef.forEach(e=>{let t=Df(r,e);t!==void 0&&o.set(e,{data:t,timestamp:a})}),e({config:r,cache:o,loading:!1}),n?Df(r,n):r}catch(t){let n=t instanceof Error?t.message:typeof t==`string`?t:`Failed to fetch config`;throw s===wf&&e({error:n||`Failed to fetch config`,loading:!1}),t}finally{Tf?.id===s&&(Tf=null)}}),updateConfigValue:(n,r)=>{e(e=>{let t={...e.config?.raw||{}};t[n]=r;let i={...e.config||{},raw:t};switch(n){case`debug`:i.debug=r;break;case`proxy-url`:i.proxyUrl=r;break;case`request-retry`:i.requestRetry=r;break;case`quota-exceeded`:i.quotaExceeded=r;break;case`request-log`:i.requestLog=r;break;case`logging-to-file`:i.loggingToFile=r;break;case`logs-max-total-size-mb`:i.logsMaxTotalSizeMb=r;break;case`ws-auth`:i.wsAuth=r;break;case`force-model-prefix`:i.forceModelPrefix=r;break;case`routing/strategy`:i.routingStrategy=r;break;case`api-keys`:i.apiKeys=r;break;case`ampcode`:i.ampcode=r;break;case`gemini-api-key`:i.geminiApiKeys=r;break;case`codex-api-key`:i.codexApiKeys=r;break;case`claude-api-key`:i.claudeApiKeys=r;break;case`vertex-api-key`:i.vertexApiKeys=r;break;case`openai-compatibility`:i.openaiCompatibility=r;break;case`oauth-excluded-models`:i.oauthExcludedModels=r;break;default:break}return{config:i}}),t().clearCache(n)},clearCache:n=>{let{cache:r}=t(),i=new Map(r);if(n){i.delete(n),i.delete(`__full__`),wf+=1,Tf=null,e({cache:i,loading:!1,error:null});return}else i.clear();wf+=1,Tf=null,e({config:null,cache:i,loading:!1,error:null})},isCacheValid:e=>{let{cache:n}=t(),r=e||`__full__`,i=n.get(r);return i?Date.now()-i.timestamp{for(let t of kf)if(t.patterns.some(t=>t.test(e)))return t.id;return null},jf=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Mf(e,{dedupe:t=!1}={}){let n=e=>{if(typeof e==`string`)return{name:e};if(!jf(e))return null;let t=e.id||e.name||e.model||e.value;if(!t)return null;let n=e.alias||e.display_name||e.displayName,r=e.description||e.note||e.comment,i={name:String(t)};return n&&n!==t&&(i.alias=String(n)),r&&(i.description=String(r)),i},r=[];Array.isArray(e)?r=e.map(n):jf(e)&&(Array.isArray(e.data)?r=e.data.map(n):Array.isArray(e.models)&&(r=e.models.map(n)));let i=r.filter(Boolean);if(!t)return i;let a=new Set;return i.filter(e=>{let t=(e?.name||``).toLowerCase();return!t||a.has(t)?!1:(a.add(t),!0)})}function Nf(e=[],{otherLabel:t=`Other`}={}){let n=kf.map(e=>({id:e.id,label:e.label,items:[]})),r={id:`other`,label:t,items:[]};e.forEach(e=>{let t=Af(`${(e?.name||``).toString()} ${(e?.alias||``).toString()}`.toLowerCase()),i=t?n.find(e=>e.id===t):null;i?i.items.push(e):r.items.push(e)});let i=n.filter(e=>e.items.length>0);return r.items.length&&i.push(r),i}var Pf=e=>{if(e==null)return{bodyText:``,body:null};if(typeof e==`string`){let t=e,n=t.trim();if(!n)return{bodyText:t,body:null};try{return{bodyText:t,body:JSON.parse(n)}}catch{return{bodyText:t,body:t}}}try{return{bodyText:JSON.stringify(e),body:e}}catch{return{bodyText:String(e),body:e}}},Ff=e=>{let t=e=>typeof e==`object`&&!!e,n=e.statusCode,r=e.body,i=e.bodyText,a=``;if(t(r)){let e=r.error;t(e)&&typeof e.message==`string`?a=e.message:typeof e==`string`&&(a=e),!a&&typeof r.message==`string`&&(a=r.message)}else typeof r==`string`&&(a=r);return!a&&i&&(a=i),n&&a?`${n} ${a}`.trim():n?`HTTP ${n}`:a||`Request failed`},If={request:async(e,t)=>{let n=await U.post(`/api-call`,e,t),r=Number(n?.status_code??n?.statusCode??0),i=n?.header??n?.headers??{},{bodyText:a,body:o}=Pf(n?.body);return{statusCode:r,header:i,bodyText:a,body:o}}},Lf=`https://api.anthropic.com`,Rf=`https://generativelanguage.googleapis.com`,zf=`2023-06-01`,Bf=new Map,Vf=new Map,Hf=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Uf=(e,t)=>`${e}||${Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`)}`,Wf=e=>{let t=Yd(e);if(!t)return``;let n=t.replace(/\/+$/g,``);return/\/models$/i.test(n)?n:`${n}/models`},Gf=e=>{let t=Yd(e);if(!t)return``;let n=t.replace(/\/+$/g,``);return/\/v1\/models$/i.test(n)?n:/\/v1$/i.test(n)?`${n}/models`:`${n}/v1/models`},Kf=e=>{let t=(Yd(e)||Lf).replace(/\/+$/g,``);return t=t.replace(/\/v1\/models$/i,``),t=t.replace(/\/v1(?:\/.*)?$/i,``),`${t}/v1/models`},qf=e=>{let t=(Yd(e)||Rf).replace(/\/+$/g,``);return t=t.replace(/\/v1beta\/models$/i,``),t=t.replace(/\/v1beta(?:\/.*)?$/i,``),`${t}/v1beta/models`},Jf=e=>{let t=String(e??``).trim();return t?t.replace(/^\/?models\//i,``):``},Yf=(e,t)=>{let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)},Xf=e=>{let t=Object.entries(e).find(([e])=>e.toLowerCase()===`authorization`);if(!t)return``;let n=String(t[1]??``).trim();return n&&n.match(/^Bearer\s+(.+)$/i)?.[1]?.trim()||``},Zf={async fetchModels(e,t,n={}){let r=Gf(e);if(!r)throw Error(`Invalid base url`);let i={...n};t&&!Yf(i,`authorization`)&&(i.Authorization=`Bearer ${t}`);let a=await Jd.get(r,{headers:Object.keys(i).length?i:void 0});return Mf(a.data?.data??a.data?.models??a.data,{dedupe:!0})},async fetchV1ModelsViaApiCall(e,t,n={}){let r=Gf(e);if(!r)throw Error(`Invalid base url`);let i={...n};t&&!Yf(i,`authorization`)&&(i.Authorization=`Bearer ${t}`);let a=await If.request({method:`GET`,url:r,header:Object.keys(i).length?i:void 0});if(a.statusCode<200||a.statusCode>=300)throw Error(Ff(a));return Mf(a.body??a.bodyText,{dedupe:!0})},async fetchModelsViaApiCall(e,t,n={}){let r=Wf(e);if(!r)throw Error(`Invalid base url`);let i={...n};t&&!Yf(i,`authorization`)&&(i.Authorization=`Bearer ${t}`);let a=await If.request({method:`GET`,url:r,header:Object.keys(i).length?i:void 0});if(a.statusCode<200||a.statusCode>=300)throw Error(Ff(a));return Mf(a.body??a.bodyText,{dedupe:!0})},buildV1ModelsEndpoint(e){return Gf(e)},buildClaudeModelsEndpoint(e){return Kf(e)},buildGeminiModelsEndpoint(e){return qf(e)},async fetchClaudeModelsViaApiCall(e,t,n={}){let r=Kf(e);if(!r)throw Error(`Invalid base url`);let i={...n},a=String(t??``).trim();!a&&!Yf(i,`x-api-key`)&&(a=Xf(i)),a&&!Yf(i,`x-api-key`)&&(i[`x-api-key`]=a),Yf(i,`anthropic-version`)||(i[`anthropic-version`]=zf);let o=Uf(r,i),s=Bf.get(o);if(s)return s;let c=(async()=>{let e=await If.request({method:`GET`,url:r,header:Object.keys(i).length?i:void 0});if(e.statusCode<200||e.statusCode>=300)throw Error(Ff(e));return Mf(e.body??e.bodyText,{dedupe:!0})})();Bf.set(o,c);try{return await c}finally{Bf.delete(o)}},async fetchGeminiModelsViaApiCall(e,t,n={}){let r=qf(e);if(!r)throw Error(`Invalid base url`);let i={...n},a=String(t??``).trim();a&&!Yf(i,`x-goog-api-key`)&&(i[`x-goog-api-key`]=a);let o=Uf(r,i),s=Vf.get(o);if(s)return s;let c=(async()=>{let e=new Set,t=[],n=``;for(let a=0;a<20;a+=1){let a=new URL(r);n&&a.searchParams.set(`pageToken`,n);let o=await If.request({method:`GET`,url:a.toString(),header:Object.keys(i).length?i:void 0});if(o.statusCode<200||o.statusCode>=300)throw Error(Ff(o));let s=o.body??o.bodyText;Mf(s,{dedupe:!1}).forEach(n=>{let r=Jf(n.name),i=(r||``).toLowerCase();if(!i||e.has(i))return;e.add(i);let a={...n,name:r};a.alias&&a.alias.trim()===r&&(a.alias=void 0),t.push(a)});let c=Hf(s)&&typeof s.nextPageToken==`string`?s.nextPageToken:``;if(!c)break;n=c}return t})();Vf.set(o,c);try{return await c}finally{Vf.delete(o)}}},Qf=Zs((e,t)=>({models:[],loading:!1,error:null,cache:null,fetchModels:async(n,r,i=!1)=>{let{cache:a,isCacheValid:o}=t(),s=r?.trim()||``;if(!i&&o(n,s)&&a)return e({models:a.data,error:null}),a.data;e({loading:!0,error:null});try{let t=await Zf.fetchModels(n,s||void 0);return e({models:t,loading:!1,cache:{data:t,timestamp:Date.now(),apiBase:n,apiKey:s}}),t}catch(t){throw e({error:t instanceof Error?t.message:typeof t==`string`?t:`Failed to fetch models`,loading:!1,models:[]}),t}},clearCache:()=>{e({cache:null,models:[]})},isCacheValid:(e,n)=>{let{cache:r}=t();if(!r||r.apiBase!==e)return!1;let i=n?.trim()||``;return(r.apiKey||``)===i?Date.now()-r.timestamp({isAuthenticated:!1,apiBase:``,managementKey:``,rememberPassword:!1,serverVersion:null,serverBuildDate:null,connectionStatus:`disconnected`,connectionError:null,restoreSession:()=>$f||($f=(async()=>{Yc.migratePlaintextKeys([`apiBase`,`apiUrl`,`managementKey`]);let n=localStorage.getItem(`isLoggedIn`)===`true`,r=Yc.getItem(`apiBase`)||Yc.getItem(`apiUrl`,{encrypt:!0}),i=Yc.getItem(`managementKey`),{apiBase:a,managementKey:o,rememberPassword:s}=t(),c=Yd(a||r||Zd()),l=o||i||``,u=s||!!o||!!i;if(e({apiBase:c,managementKey:l,rememberPassword:u}),U.setConfig({apiBase:c,managementKey:l}),n&&c&&l)try{return await t().login({apiBase:c,managementKey:l,rememberPassword:u}),!0}catch(e){return console.warn(`Auto login failed:`,e),!1}return!1})(),$f),login:async n=>{let r=Yd(n.apiBase),i=n.managementKey.trim(),a=n.rememberPassword??t().rememberPassword??!1;try{e({connectionStatus:`connecting`}),Qf.getState().clearCache(),U.setConfig({apiBase:r,managementKey:i}),await Of.getState().fetchConfig(void 0,!0),e({isAuthenticated:!0,apiBase:r,managementKey:i,rememberPassword:a,connectionStatus:`connected`,connectionError:null}),a?localStorage.setItem(`isLoggedIn`,`true`):localStorage.removeItem(`isLoggedIn`)}catch(t){throw e({connectionStatus:`error`,connectionError:(t instanceof Error?t.message:typeof t==`string`?t:`Connection failed`)||`Connection failed`}),t}},logout:()=>{$f=null,Of.getState().clearCache(),Qf.getState().clearCache(),e({isAuthenticated:!1,apiBase:``,managementKey:``,serverVersion:null,serverBuildDate:null,connectionStatus:`disconnected`,connectionError:null}),localStorage.removeItem(`isLoggedIn`)},checkAuth:async()=>{let{managementKey:n,apiBase:r}=t();if(!n||!r)return!1;try{return U.setConfig({apiBase:r,managementKey:n}),await Of.getState().fetchConfig(),e({isAuthenticated:!0,connectionStatus:`connected`}),!0}catch{return e({isAuthenticated:!1,connectionStatus:`error`}),!1}},updateServerVersion:(t,n)=>{e({serverVersion:t||null,serverBuildDate:n||null})},updateConnectionStatus:(t,n=null)=>{e({connectionStatus:t,connectionError:n})}}),{name:cc,storage:gc(()=>({getItem:e=>{let t=Yc.getItem(e);return t?JSON.stringify(t):null},setItem:(e,t)=>{Yc.setItem(e,JSON.parse(t))},removeItem:e=>{Yc.removeItem(e)}})),partialize:e=>({apiBase:e.apiBase,...e.rememberPassword?{managementKey:e.managementKey}:{},rememberPassword:e.rememberPassword,serverVersion:e.serverVersion,serverBuildDate:e.serverBuildDate})}));typeof window<`u`&&(window.addEventListener(`unauthorized`,()=>{ep.getState().logout()}),window.addEventListener(`server-version-update`,(e=>{let t=e.detail||{};ep.getState().updateServerVersion(t.version||null,t.buildDate||null)})));var tp=(e,t)=>typeof e==`function`?e(t):e,np=Zs(e=>({antigravityQuota:{},claudeQuota:{},codexQuota:{},geminiCliQuota:{},kimiQuota:{},setAntigravityQuota:t=>e(e=>({antigravityQuota:tp(t,e.antigravityQuota)})),setClaudeQuota:t=>e(e=>({claudeQuota:tp(t,e.claudeQuota)})),setCodexQuota:t=>e(e=>({codexQuota:tp(t,e.codexQuota)})),setGeminiCliQuota:t=>e(e=>({geminiCliQuota:tp(t,e.geminiCliQuota)})),setKimiQuota:t=>e(e=>({kimiQuota:tp(t,e.kimiQuota)})),clearQuotaCache:()=>e({antigravityQuota:{},claudeQuota:{},codexQuota:{},geminiCliQuota:{},kimiQuota:{}})})),rp=20,ip=600*1e3,ap=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t:0};function op(e){if(typeof e==`number`)return Number.isFinite(e)?e:0;if(typeof e==`string`){let t=e.trim();if(!t)return 0;let n=Number(t);return Number.isFinite(n)?n:0}return 0}function sp(e,t){return`${String(e??``).trim()}|${String(t??``).trim()}`}function cp(e){return typeof e==`number`&&Number.isFinite(e)?e.toString():typeof e==`string`&&e.trim()||null}function lp(e){return Array.isArray(e)?e.slice(-rp).map(e=>{let t=e&&typeof e==`object`?e:{},n=typeof t.time==`string`?t.time:void 0;return{...n?{time:n}:{},success:ap(t.success),failed:ap(t.failed)}}):[]}function up(e){if(!e||typeof e!=`object`||Array.isArray(e))return{success:0,failed:0,recentRequests:[]};let t=e;return{success:op(t.success),failed:op(t.failed),recentRequests:lp(t.recent_requests??t.recentRequests)}}function dp(e){let t=e.map(e=>lp(e)).filter(e=>e.length>0);if(t.length===0)return[];let n=Math.min(rp,Math.max(...t.map(e=>e.length))),r=Array.from({length:n},()=>({success:0,failed:0}));return t.forEach(e=>{let t=e.slice(-n),i=n-t.length;t.forEach((e,t)=>{let n=r[i+t];n.success+=e.success,n.failed+=e.failed,!n.time&&e.time&&(n.time=e.time)})}),r}function fp(e){return lp(e).reduce((e,t)=>({success:e.success+t.success,failure:e.failure+t.failed}),{success:0,failure:0})}function pp(e){let t=lp(e),n=Math.max(0,rp-t.length),r=[...Array.from({length:n},()=>({success:0,failed:0})),...t.slice(-rp)],i=Date.now()-rp*ip,a=[],o=[],s=0,c=0;r.forEach((e,t)=>{let n=e.success,r=e.failed,l=n+r;s+=n,c+=r,l===0?a.push(`idle`):r===0?a.push(`success`):n===0?a.push(`failure`):a.push(`mixed`);let u=i+t*ip;o.push({success:n,failure:r,rate:l>0?n/l:-1,startTime:u,endTime:u+ip})});let l=s+c;return{blocks:a,blockDetails:o,successRate:l>0?s/l*100:100,totalSuccess:s,totalFailure:c}}var mp=e=>Array.isArray(e)&&e.some(e=>String(e??``).trim()===`*`),hp=e=>Array.isArray(e)?e.filter(e=>String(e??``).trim()!==`*`):[],gp=e=>[...hp(e),`*`],_p=e=>hp(e),vp=e=>e.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean),yp=vp,bp=e=>Array.isArray(e)?e.join(` `):``,xp=e=>{let t=String(e||``).trim();return t?(t=t.replace(/\/?v0\/management\/?$/i,``),t=t.replace(/\/+$/g,``),/^https?:\/\//i.test(t)||(t=`http://${t}`),t):``},Sp=e=>{let t=String(e||``).trim();return t?(t=t.replace(/\/?v0\/management\/?$/i,``),t=t.replace(/\/+$/g,``),/^https?:\/\//i.test(t)||(t=`http://${t}`),t):`https://api.anthropic.com`},Cp=e=>{let t=xp(e);return t?`${t}/models`:``},wp=e=>{let t=xp(e);return t?t.endsWith(`/chat/completions`)?t:`${t}/chat/completions`:``},Tp=e=>{let t=Sp(e);return t?t.endsWith(`/v1/messages`)?t:t.endsWith(`/v1`)?`${t}/messages`:`${t}/v1/messages`:``},Ep={success:0,failed:0,recentRequests:[]},Dp=e=>String(e??``).trim().toLowerCase();function Op(e,t,n,r){if(!String(n??``).trim())return Ep;let i=Dp(t),a=sp(r,n);return e.get(i)?.get(a)??Ep}function kp(e,t,n,r){return Op(e,t,n,r).recentRequests}function Ap(e,t,n,r){let i=Op(e,t,n,r);return{success:i.success,failure:i.failed}}function jp(e,t){return e.apiKeyEntries?.length?dp(e.apiKeyEntries.map(n=>kp(t,e.name,n.apiKey,e.baseUrl))):[]}function Mp(e,t){return(e.apiKeyEntries||[]).reduce((n,r)=>{let i=Op(t,e.name,r.apiKey,e.baseUrl);return{success:n.success+i.success,failure:n.failure+i.failed}},{success:0,failure:0})}function Np(e,t){return fp(jp(e,t))}function Pp(e,t){return pp(jp(e,t))}var Fp=(e,t)=>cp(e.authIndex)||`${e.apiKey??``}::${e.baseUrl??``}::${e.proxyUrl??``}::${t}`,Ip=(e,t)=>cp(e.authIndex)||`${e.name}::${e.baseUrl}::${e.prefix??``}::${t}`,Lp=e=>({apiKey:e?.apiKey??``,proxyUrl:e?.proxyUrl??``,headers:e?.headers??{}}),Rp=e=>!Array.isArray(e)||e.length===0?[{name:``,alias:``}]:e.map(e=>({name:e.from??``,alias:e.to??``})),zp=e=>{let t=new Set,n=[];return e.forEach(e=>{let r=e.name.trim(),i=e.alias.trim();if(!r||!i)return;let a=r.toLowerCase();t.has(a)||(t.add(a),n.push({from:r,to:i}))}),n},Bp=e=>!Array.isArray(e)||e.length===0?[{upstreamApiKey:``,clientApiKeysText:``}]:e.map(e=>({upstreamApiKey:e.upstreamApiKey??``,clientApiKeysText:Array.isArray(e.apiKeys)?e.apiKeys.join(` `):``})),Vp=e=>{let t=new Set,n=[];return e.forEach(e=>{let r=String(e?.upstreamApiKey??``).trim();if(!r||t.has(r))return;let i=Array.from(new Set(vp(String(e?.clientApiKeysText??``))));i.length&&(t.add(r),n.push({upstreamApiKey:r,apiKeys:i}))}),n},Hp=e=>({upstreamUrl:e?.upstreamUrl??``,upstreamApiKey:``,forceModelMappings:e?.forceModelMappings??!1,mappingEntries:Rp(e?.modelMappings),upstreamApiKeyEntries:Bp(e?.upstreamApiKeys)}),Up=(e,t)=>typeof e==`function`?e(t):e,Wp=()=>({name:``,prefix:``,baseUrl:``,headers:[],apiKeyEntries:[Lp()],modelEntries:[{name:``,alias:``}],testModel:void 0}),Gp=()=>({initialized:!1,baseline:null,form:Wp(),testModel:``,testStatus:`idle`,testMessage:``,keyTestStatuses:[]}),Kp=Zs((e,t)=>({drafts:{},refCounts:{},acquireDraft:t=>{t&&e(e=>{let n=e.drafts[t],r=e.refCounts[t]??0;return{drafts:n?e.drafts:{...e.drafts,[t]:Gp()},refCounts:{...e.refCounts,[t]:r+1}}})},releaseDraft:t=>{t&&e(e=>{let n=e.refCounts[t];if(!n)return e;if(n>1)return{refCounts:{...e.refCounts,[t]:n-1}};let r={...e.refCounts};delete r[t];let i={...e.drafts};return delete i[t],{refCounts:r,drafts:i}})},ensureDraft:n=>{n&&(t().drafts[n]||e(e=>({drafts:{...e.drafts,[n]:Gp()}})))},initDraft:(n,r)=>{n&&(t().drafts[n]?.initialized||e(e=>({drafts:{...e.drafts,[n]:{...r,initialized:!0}}})))},setDraftBaseline:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp();return{drafts:{...e.drafts,[t]:{...r,initialized:!0,baseline:n}}}})},setDraftForm:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp(),i=Up(n,r.form);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,form:i}}}})},setDraftTestModel:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp(),i=Up(n,r.testModel);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testModel:i}}}})},setDraftTestStatus:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp(),i=Up(n,r.testStatus);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testStatus:i}}}})},setDraftTestMessage:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp(),i=Up(n,r.testMessage);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testMessage:i}}}})},setDraftKeyTestStatus:(t,n,r)=>{t&&e(e=>{let i=e.drafts[t]??Gp(),a=[...i.keyTestStatuses];return a[n]=r,{drafts:{...e.drafts,[t]:{...i,initialized:!0,keyTestStatuses:a}}}})},resetDraftKeyTestStatuses:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Gp();return{drafts:{...e.drafts,[t]:{...r,initialized:!0,keyTestStatuses:Array.from({length:n},()=>({status:`idle`,message:``}))}}}})},clearDraft:t=>{t&&e(e=>{if(!e.drafts[t]&&!e.refCounts[t])return e;let n={...e.drafts};delete n[t];let r={...e.refCounts};return delete r[t],{drafts:n,refCounts:r}})}})),qp=(e,t)=>typeof e==`function`?e(t):e,Jp=()=>({apiKey:``,prefix:``,baseUrl:``,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),Yp=()=>({initialized:!1,baseline:null,form:Jp(),testModel:``,testStatus:`idle`,testMessage:``}),Xp=Zs((e,t)=>({drafts:{},refCounts:{},acquireDraft:t=>{t&&e(e=>{let n=e.drafts[t],r=e.refCounts[t]??0;return{drafts:n?e.drafts:{...e.drafts,[t]:Yp()},refCounts:{...e.refCounts,[t]:r+1}}})},releaseDraft:t=>{t&&e(e=>{let n=e.refCounts[t];if(!n)return e;if(n>1)return{refCounts:{...e.refCounts,[t]:n-1}};let r={...e.refCounts};delete r[t];let i={...e.drafts};return delete i[t],{refCounts:r,drafts:i}})},ensureDraft:n=>{n&&(t().drafts[n]||e(e=>({drafts:{...e.drafts,[n]:Yp()}})))},initDraft:(n,r)=>{n&&(t().drafts[n]?.initialized||e(e=>({drafts:{...e.drafts,[n]:{...r,initialized:!0}}})))},setDraftBaseline:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Yp();return{drafts:{...e.drafts,[t]:{...r,initialized:!0,baseline:n}}}})},setDraftForm:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Yp(),i=qp(n,r.form);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,form:i}}}})},setDraftTestModel:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Yp(),i=qp(n,r.testModel);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testModel:i}}}})},setDraftTestStatus:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Yp(),i=qp(n,r.testStatus);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testStatus:i}}}})},setDraftTestMessage:(t,n)=>{t&&e(e=>{let r=e.drafts[t]??Yp(),i=qp(n,r.testMessage);return{drafts:{...e.drafts,[t]:{...r,initialized:!0,testMessage:i}}}})},clearDraft:t=>{t&&e(e=>{if(!e.drafts[t]&&!e.refCounts[t])return e;let n={...e.drafts};delete n[t];let r={...e.refCounts};return delete r[t],{drafts:n,refCounts:r}})}})),Zp={container:`LoginPage-module__container___bHtIX`,brandPanel:`LoginPage-module__brandPanel___kKUR5`,brandContent:`LoginPage-module__brandContent___ZEhbk`,brandWord:`LoginPage-module__brandWord___3DkwD`,brandFadeIn:`LoginPage-module__brandFadeIn___tpmGl`,formPanel:`LoginPage-module__formPanel___Nrtrt`,formContent:`LoginPage-module__formContent___H8fD-`,logo:`LoginPage-module__logo___ASmao`,loginCard:`LoginPage-module__loginCard___OgP-R`,loginHeader:`LoginPage-module__loginHeader___3kAvs`,titleRow:`LoginPage-module__titleRow___9h914`,title:`LoginPage-module__title___I-LuY`,subtitle:`LoginPage-module__subtitle___Q41SH`,languageSelect:`LoginPage-module__languageSelect___KUNwV`,connectionBox:`LoginPage-module__connectionBox___B5--X`,label:`LoginPage-module__label___2fkY-`,value:`LoginPage-module__value___JFrYC`,hint:`LoginPage-module__hint___bcz4d`,toggleAdvanced:`LoginPage-module__toggleAdvanced___4aKnv`,toggleLabel:`LoginPage-module__toggleLabel___C3t9M`,errorBox:`LoginPage-module__errorBox___wX1tT`,splashContent:`LoginPage-module__splashContent___Cc3DZ`,splashEnter:`LoginPage-module__splashEnter___K-Jk9`,splashLogo:`LoginPage-module__splashLogo___yzbbw`,splashLogoPulse:`LoginPage-module__splashLogoPulse___DIteW`,splashTitle:`LoginPage-module__splashTitle___G-HEP`,splashSubtitle:`LoginPage-module__splashSubtitle___BYSQi`,splashLoader:`LoginPage-module__splashLoader___SdvUl`,splashLoaderBar:`LoginPage-module__splashLoaderBar___lyVXw`,splashLoading:`LoginPage-module__splashLoading___jAaFC`};function Qp(e,t){let n=e,r=typeof n.status==`number`?n.status:void 0,i=typeof n.code==`string`?n.code:void 0,a=e instanceof Error?e.message:typeof n.message==`string`?n.message:typeof e==`string`?e:``;return r===401?t(`login.error_unauthorized`):r===403?t(`login.error_forbidden`):r===404?t(`login.error_not_found`):r&&r>=500?t(`login.error_server`):i===`ECONNABORTED`||a.toLowerCase().includes(`timeout`)?t(`login.error_timeout`):i===`ERR_NETWORK`||a.toLowerCase().includes(`network error`)?t(`login.error_network`):i===`ERR_CERT_AUTHORITY_INVALID`||a.toLowerCase().includes(`certificate`)?t(`login.error_ssl`):a.toLowerCase().includes(`cors`)||a.toLowerCase().includes(`cross-origin`)?t(`login.error_cors`):t(`login.error_invalid`)}function $p(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=Ic(e=>e.language),a=Ic(e=>e.setLanguage),o=ep(e=>e.isAuthenticated),s=ep(e=>e.login),c=ep(e=>e.restoreSession),l=ep(e=>e.apiBase),u=ep(e=>e.managementKey),d=ep(e=>e.rememberPassword),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!0),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),M=(0,y.useMemo)(()=>Zd(),[]),N=(0,y.useMemo)(()=>dc.map(t=>({value:t,label:e(fc[t])})),[e]),P=(0,y.useCallback)(e=>{Ac(e)&&a(e)},[a]);(0,y.useEffect)(()=>{(async()=>{try{await c()?(k(!0),setTimeout(()=>{t(n.state?.from?.pathname||`/`,{replace:!0})},1500)):(p(l||M),h(u||``),C(d||!!u))}finally{O||D(!1)}})()},[]);let ee=(0,y.useCallback)(async()=>{if(!m.trim()){j(e(`login.error_required`));return}let n=f?Yd(f):M;T(!0),j(``);try{await s({apiBase:n,managementKey:m.trim(),rememberPassword:S}),r(e(`common.connected_status`),`success`),t(`/`,{replace:!0})}catch(t){let n=Qp(t,e);j(n),r(`${e(`notification.login_failed`)}: ${n}`,`error`)}finally{T(!1)}},[f,M,s,m,t,S,r,e]),F=(0,y.useCallback)(e=>{e.key===`Enter`&&!w&&(e.preventDefault(),ee())},[w,ee]);if(o&&!E&&!O)return(0,B.jsx)(Br,{to:n.state?.from?.pathname||`/`,replace:!0});let I=E||O;return(0,B.jsxs)(`div`,{className:Zp.container,children:[(0,B.jsx)(`div`,{className:Zp.brandPanel,children:(0,B.jsxs)(`div`,{className:Zp.brandContent,children:[(0,B.jsx)(`span`,{className:Zp.brandWord,children:`CLI`}),(0,B.jsx)(`span`,{className:Zp.brandWord,children:`PROXY`}),(0,B.jsx)(`span`,{className:Zp.brandWord,children:`API`})]})}),(0,B.jsx)(`div`,{className:Zp.formPanel,children:I?(0,B.jsxs)(`div`,{className:Zp.splashContent,children:[(0,B.jsx)(`img`,{src:x,alt:`CPAMC`,className:Zp.splashLogo}),(0,B.jsx)(`h1`,{className:Zp.splashTitle,children:e(`splash.title`)}),(0,B.jsx)(`p`,{className:Zp.splashSubtitle,children:e(`splash.subtitle`)}),(0,B.jsx)(`div`,{className:Zp.splashLoader,children:(0,B.jsx)(`div`,{className:Zp.splashLoaderBar})})]}):(0,B.jsxs)(`div`,{className:Zp.formContent,children:[(0,B.jsx)(`img`,{src:x,alt:`Logo`,className:Zp.logo}),(0,B.jsxs)(`div`,{className:Zp.loginCard,children:[(0,B.jsxs)(`div`,{className:Zp.loginHeader,children:[(0,B.jsxs)(`div`,{className:Zp.titleRow,children:[(0,B.jsx)(`div`,{className:Zp.title,children:e(`title.login`)}),(0,B.jsx)(Us,{className:Zp.languageSelect,value:i,options:N,onChange:P,fullWidth:!1,ariaLabel:e(`language.switch`)})]}),(0,B.jsx)(`div`,{className:Zp.subtitle,children:e(`login.subtitle`)})]}),(0,B.jsxs)(`div`,{className:Zp.connectionBox,children:[(0,B.jsx)(`div`,{className:Zp.label,children:e(`login.connection_current`)}),(0,B.jsx)(`div`,{className:Zp.value,children:f||M}),(0,B.jsx)(`div`,{className:Zp.hint,children:e(`login.connection_auto_hint`)})]}),(0,B.jsx)(`div`,{className:Zp.toggleAdvanced,children:(0,B.jsx)(Gs,{checked:g,onChange:_,ariaLabel:e(`login.custom_connection_label`),label:e(`login.custom_connection_label`),labelClassName:Zp.toggleLabel})}),g&&(0,B.jsx)(Xo,{label:e(`login.custom_connection_label`),placeholder:e(`login.custom_connection_placeholder`),value:f,onChange:e=>p(e.target.value),hint:e(`login.custom_connection_hint`)}),(0,B.jsx)(Xo,{autoFocus:!0,label:e(`login.management_key_label`),placeholder:e(`login.management_key_placeholder`),type:v?`text`:`password`,value:m,onChange:e=>h(e.target.value),onKeyDown:F,rightElement:(0,B.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,onClick:()=>b(e=>!e),"aria-label":v?e(`login.hide_key`,{defaultValue:`隐藏密钥`}):e(`login.show_key`,{defaultValue:`显示密钥`}),title:v?e(`login.hide_key`,{defaultValue:`隐藏密钥`}):e(`login.show_key`,{defaultValue:`显示密钥`}),children:v?(0,B.jsx)(vs,{size:16}):(0,B.jsx)(_s,{size:16})})}),(0,B.jsx)(`div`,{className:Zp.toggleAdvanced,children:(0,B.jsx)(Gs,{checked:S,onChange:C,ariaLabel:e(`login.remember_password_label`),label:e(`login.remember_password_label`),labelClassName:Zp.toggleLabel})}),(0,B.jsx)(V,{fullWidth:!0,onClick:ee,loading:w,children:e(w?`login.submitting`:`login.submit_button`)}),A&&(0,B.jsx)(`div`,{className:Zp.errorBox,children:A})]})]})})]})}var em=300;function tm(){let{t:e}=qo(),{notifications:t,removeNotification:n}=hc(),[r,i]=(0,y.useState)([]),a=(0,y.useRef)([]);(0,y.useEffect)(()=>{let e=a.current,n=new Set(e.map(e=>e.id)),r=new Set(t.map(e=>e.id)),o=t.filter(e=>!n.has(e.id)),s=new Set(e.filter(e=>!r.has(e.id)).map(e=>e.id));i(e=>{let t=e.map(e=>s.has(e.id)?{...e,isExiting:!0}:e);return o.forEach(e=>{t.find(t=>t.id===e.id)||t.push({...e,isExiting:!1})}),t=t.filter(e=>r.has(e.id)||e.isExiting),t}),s.size>0&&setTimeout(()=>{i(e=>e.filter(e=>!s.has(e.id)))},em),a.current=t},[t]);let o=e=>{i(t=>t.map(t=>t.id===e?{...t,isExiting:!0}:t)),setTimeout(()=>{n(e)},em)};return r.length?(0,B.jsx)(`div`,{className:`notification-container`,children:r.map(t=>(0,B.jsxs)(`div`,{className:`notification ${t.type} ${t.isExiting?`exiting`:`entering`}`,children:[(0,B.jsx)(`div`,{className:`message`,children:t.message}),(0,B.jsx)(`button`,{type:`button`,className:`close-btn`,onClick:()=>o(t.id),"aria-label":e(`common.close`),children:(0,B.jsx)(hs,{size:16})})]},t.id))}):null}var nm=350,rm=`modal-open`,im=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`),am=0,om={scrollY:0,contentScrollTop:0,contentEl:null,bodyPosition:``,bodyTop:``,bodyLeft:``,bodyRight:``,bodyWidth:``,bodyOverflow:``,htmlOverflow:``},sm=()=>{if(typeof document>`u`)return null;let e=document.querySelector(`.content`);return e instanceof HTMLElement?e:null},cm=()=>{if(!(typeof document>`u`)){if(am===0){let e=document.body,t=document.documentElement,n=sm();om.scrollY=window.scrollY||window.pageYOffset||t.scrollTop||0,om.contentEl=n,om.contentScrollTop=n?.scrollTop??0,om.bodyPosition=e.style.position,om.bodyTop=e.style.top,om.bodyLeft=e.style.left,om.bodyRight=e.style.right,om.bodyWidth=e.style.width,om.bodyOverflow=e.style.overflow,om.htmlOverflow=t.style.overflow,e.classList.add(rm),t.classList.add(rm),e.style.position=`fixed`,e.style.top=`-${om.scrollY}px`,e.style.left=`0`,e.style.right=`0`,e.style.width=`100%`,e.style.overflow=`hidden`,t.style.overflow=`hidden`}am+=1}},lm=()=>{if(!(typeof document>`u`)&&(am=Math.max(0,am-1),am===0)){let e=document.body,t=document.documentElement,n=om.scrollY,r=om.contentScrollTop,i=om.contentEl;e.classList.remove(rm),t.classList.remove(rm),e.style.position=om.bodyPosition,e.style.top=om.bodyTop,e.style.left=om.bodyLeft,e.style.right=om.bodyRight,e.style.width=om.bodyWidth,e.style.overflow=om.bodyOverflow,t.style.overflow=om.htmlOverflow,i&&i.scrollTo({top:r,left:0,behavior:`auto`}),window.scrollTo({top:n,left:0,behavior:`auto`}),om.scrollY=0,om.contentScrollTop=0,om.contentEl=null}};function um({open:e,title:t,onClose:n,footer:r,width:i=520,className:a,closeDisabled:o=!1,children:s}){let{t:c}=qo(),l=(0,y.useId)(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),m=(0,y.useRef)(null),h=(0,y.useRef)(null),g=(0,y.useRef)(null),_=(0,y.useRef)(null),v=(0,y.useCallback)(()=>h.current?Array.from(h.current.querySelectorAll(im)).filter(e=>!e.hasAttribute(`disabled`)&&e.tabIndex!==-1):[],[]),b=(0,y.useCallback)(e=>{m.current===null&&(p(!0),m.current=window.setTimeout(()=>{d(!1),p(!1),m.current=null,e&&n()},nm))},[n]);(0,y.useEffect)(()=>{let t=!1;return e?(m.current!==null&&(window.clearTimeout(m.current),m.current=null),queueMicrotask(()=>{t||(d(!0),p(!1))})):u&&queueMicrotask(()=>{t||b(!1)}),()=>{t=!0}},[e,u,b]);let x=(0,y.useCallback)(()=>{b(!0)},[b]);(0,y.useEffect)(()=>()=>{m.current!==null&&window.clearTimeout(m.current)},[]);let C=e||u;if((0,y.useEffect)(()=>{if(C)return cm(),()=>lm()},[C]),(0,y.useEffect)(()=>{if(!e)return;_.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=window.setTimeout(()=>{(v()[0]??g.current??h.current)?.focus()},0);return()=>{window.clearTimeout(t)}},[v,e]),(0,y.useEffect)(()=>{e||u||(_.current?.focus(),_.current=null)},[u,e]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{if(e.key===`Escape`){if(o)return;e.preventDefault(),x();return}if(e.key!==`Tab`)return;let t=v();if(t.length===0){e.preventDefault(),h.current?.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(e.shiftKey){(i===n||i===h.current)&&(e.preventDefault(),r.focus());return}i===r&&(e.preventDefault(),n.focus())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[o,v,x,e]),!e&&!u)return null;let w=(0,B.jsx)(`div`,{className:`modal-overlay ${f?`modal-overlay-closing`:`modal-overlay-entering`}`,children:(0,B.jsxs)(`div`,{ref:h,className:`modal ${f?`modal-closing`:`modal-entering`}${a?` ${a}`:``}`,style:{width:i,maxWidth:`100%`},role:`dialog`,"aria-modal":`true`,"aria-labelledby":t?l:void 0,tabIndex:-1,children:[(0,B.jsx)(`button`,{ref:g,type:`button`,className:`modal-close-floating`,onClick:o?void 0:x,"aria-label":c(`common.close`),disabled:o,children:(0,B.jsx)(hs,{size:20})}),(0,B.jsx)(`div`,{className:`modal-header`,children:(0,B.jsx)(`div`,{className:`modal-title`,id:t?l:void 0,children:t})}),(0,B.jsx)(`div`,{className:`modal-body`,children:s}),r&&(0,B.jsx)(`div`,{className:`modal-footer`,children:r})]})});return typeof document>`u`?w:(0,S.createPortal)(w,document.body)}function dm(){let{t:e}=qo(),t=hc(e=>e.confirmation),n=hc(e=>e.hideConfirmation),r=hc(e=>e.setConfirmationLoading),{isOpen:i,isLoading:a,options:o}=t;if(!i||!o)return null;let{title:s,message:c,onConfirm:l,onCancel:u,confirmText:d,cancelText:f,variant:p=`primary`}=o,m=async()=>{try{r(!0),await l(),n()}catch(e){console.error(`Confirmation action failed:`,e)}finally{r(!1)}},h=()=>{a||(u&&u(),n())};return(0,B.jsxs)(um,{open:i,onClose:h,title:s,closeDisabled:a,children:[typeof c==`string`?(0,B.jsx)(`p`,{style:{margin:`1rem 0`},children:c}):(0,B.jsx)(`div`,{style:{margin:`1rem 0`},children:c}),(0,B.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:`1rem`,marginTop:`2rem`},children:[(0,B.jsx)(V,{variant:`ghost`,onClick:h,disabled:a,children:f||e(`common.cancel`)}),(0,B.jsx)(V,{variant:p,onClick:m,loading:a,children:d||e(`common.confirm`)})]})]})}function fm(e){let t;return()=>(t===void 0&&(t=e()),t)}var pm=e=>e,mm=e=>e*1e3,hm=e=>e/1e3,gm=e=>Array.isArray(e)&&typeof e[0]==`number`,_m={value:null,addProjectionMetrics:null},vm={layout:0,mainThread:0,waapi:0},ym=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;te!==null;function xm(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(bm),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var Sm=class{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}};function Cm(e){for(let t=1;te.startsWith(`--`);function Tm(e,t,n){wm(t)?e.style.setProperty(t,n):e.style[t]=n}var Em={};function Dm(e,t){let n=fm(e);return()=>Em[t]??n()}var Om=Dm(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),km=Dm(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),Am=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,jm={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:Am([0,.65,.55,1]),circOut:Am([.55,0,1,.45]),backIn:Am([.31,.01,.66,-.59]),backOut:Am([.33,1.53,.69,.99])};function Mm(e,t){if(e)return typeof e==`function`?km()?ym(e,t):`ease-out`:gm(e)?Am(e):Array.isArray(e)?e.map(e=>Mm(e,t)||jm.easeOut):jm[e]}function Nm(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=Mm(s,i);Array.isArray(d)&&(u.easing=d),_m.value&&vm.waapi++;let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};l&&(f.pseudoElement=l);let p=e.animate(u,f);return _m.value&&p.finished.finally(()=>{vm.waapi--}),p}function Pm(e){return typeof e==`function`&&`applyToOptions`in e}function Fm({type:e,...t}){return Pm(e)&&km()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease=`easeOut`),t)}var Im=class extends Sm{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Fm(e);this.animation=Nm(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=xm(r,this.options,o,this.speed);this.updateMotionValue?this.updateMotionValue(e):Tm(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e===`idle`||e===`finished`||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return hm(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+hm(e)}get time(){return hm(Number(this.animation.currentTime)||0)}set time(e){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=mm(e)}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,observe:t}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&Om()?(this.animation.timeline=e,pm):t(this)}},Lm=class{constructor(e){this.stop=()=>this.runAll(`stop`),this.animations=e.filter(Boolean)}get finished(){return Promise.all(this.animations.map(e=>e.finished))}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;nt.attachTimeline(e));return()=>{t.forEach((e,t)=>{e&&e(),this.animations[t].stop()})}}get time(){return this.getAll(`time`)}set time(e){this.setAll(`time`,e)}get speed(){return this.getAll(`speed`)}set speed(e){this.setAll(`speed`,e)}get state(){return this.getAll(`state`)}get startTime(){return this.getAll(`startTime`)}get duration(){return Rm(this.animations,`duration`)}get iterationDuration(){return Rm(this.animations,`iterationDuration`)}runAll(e){this.animations.forEach(t=>t[e]())}play(){this.runAll(`play`)}pause(){this.runAll(`pause`)}cancel(){this.runAll(`cancel`)}complete(){this.runAll(`complete`)}};function Rm(e,t){let n=0;for(let r=0;rn&&(n=i)}return n}var zm=class extends Lm{then(e,t){return this.finished.finally(e).then(()=>{})}},Bm=new WeakMap,Vm=(e,t=``)=>`${e}:${t}`;function Hm(e){let t=Bm.get(e)||new Map;return Bm.set(e,t),t}function Um(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function Wm(e,t){let n=e?.[t]??e?.default??e;return n===e?n:Um(n,e)}var Gm=new Set(`borderWidth.borderTopWidth.borderRightWidth.borderBottomWidth.borderLeftWidth.borderRadius.borderTopLeftRadius.borderTopRightRadius.borderBottomRightRadius.borderBottomLeftRadius.width.maxWidth.height.maxHeight.top.right.bottom.left.inset.insetBlock.insetBlockStart.insetBlockEnd.insetInline.insetInlineStart.insetInlineEnd.padding.paddingTop.paddingRight.paddingBottom.paddingLeft.paddingBlock.paddingBlockStart.paddingBlockEnd.paddingInline.paddingInlineStart.paddingInlineEnd.margin.marginTop.marginRight.marginBottom.marginLeft.marginBlock.marginBlockStart.marginBlockEnd.marginInline.marginInlineStart.marginInlineEnd.fontSize.backgroundPositionX.backgroundPositionY`.split(`.`));function Km(e,t){for(let n=0;ne!=null)}function Jm(e,t){let n=window.getComputedStyle(e);return wm(t)?n.getPropertyValue(t):n[t]}function Ym(e,t,n,r){if(e==null)return[];let i=qm(e,r),a=i.length,o=[];for(let e=0;et.delete(n)),s.push(i)}return s}var Xm=(e=>{function t(t,n,r){return new zm(Ym(t,n,r,e))}return t})(),Zm=(0,y.createContext)(null),Qm={current:{status:`current`,isCurrentLayer:!0,isAnimating:!1},stacked:{status:`stacked`,isCurrentLayer:!1,isAnimating:!1},exiting:{status:`exiting`,isCurrentLayer:!1,isAnimating:!1}};function $m(){return(0,y.useContext)(Zm)}var eh=.35,th=60,nh=.42,rh=100,ih=-30,ah=100,oh=-30,sh=.72,ch=`-14px 0 24px rgba(0, 0, 0, 0.16)`,lh=e=>1-(1-e)**3,uh=e=>Math.sqrt(1-(e-1)**2),dh=e=>`translate3d(0px, ${e}px, 0px)`,fh=(e,t)=>`translate3d(${e}%, ${t}px, 0px)`,ph=e=>{e&&(e.style.removeProperty(`transform`),e.style.removeProperty(`opacity`),e.style.removeProperty(`box-shadow`))};function mh({render:e,getRouteOrder:t,getTransitionVariant:n,scrollContainerRef:r}){let i=Yn(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(`forward`),c=(0,y.useRef)(`vertical`),l=(0,y.useRef)(0),u=(0,y.useRef)(0),d=(0,y.useRef)(new Map),f=(0,y.useRef)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(()=>[{key:i.key,location:i,status:`current`}]),_=h.find(e=>e.status===`current`)??h[h.length-1],v=_?.key??i.key,b=_?.location.pathname,x=(0,y.useCallback)(()=>r?.current?r.current:typeof document>`u`?null:document.scrollingElement,[r]);return(0,y.useLayoutEffect)(()=>{if(p||i.key===v||b===i.pathname)return;let e=x()?.scrollTop??0;l.current=e,d.current.set(v,e),u.current=d.current.get(i.key)??0;let r=e=>{if(!t||!e)return null;let n=t(e);return typeof n==`number`&&n>=0?n:null},a=r(b),o=r(i.pathname),_=n?n(b??``,i.pathname):`vertical`,y=a===null||o===null||a===o||o>a?`forward`:`backward`;_===`ios`&&h.some(e=>e.key===i.key)&&(y=`backward`),s.current=y,c.current=_;let S=(()=>{if(_!==`ios`||y!==`backward`)return!1;let e=e=>e.split(`/`).filter(Boolean).filter(e=>e.length>0),t=e(b??``),n=e(i.pathname);return!t.length||!n.length?!1:t[0]===n[0]&&n.length===1})();g(e=>{let t=c.current,n=s.current,r=e.findIndex(e=>e.status===`current`),a=r>=0?r:e.length-1,o=e[a],l=e.filter((e,t)=>t!==a).map(e=>({...e,status:`stacked`})),u={key:i.key,location:i,status:`current`};if(!o)return f.current=[u],[u];if(t===`ios`){if(n===`forward`){let e={...o,status:`exiting`},t={...o,status:`stacked`};return f.current=[...l,t,u],[...l,e,u]}let t=e.findIndex(e=>e.key===i.key);if(t!==-1){let n=e.slice(0,t+1).map((e,n)=>{let r=n===t;return{...e,location:r?i:e.location,status:r?`current`:`stacked`}});if(S)return f.current=n,n;let r={...o,status:`exiting`};return f.current=n,[...n,r]}}if(S)return f.current=[u],[u];let d={...o,status:`exiting`};return f.current=[u],[d,u]}),m(!0)},[p,i,v,b,t,n,x,h]),(0,y.useLayoutEffect)(()=>{if(!p||!a.current)return;let e=a.current,t=o.current,n=c.current;ph(e),ph(t);let r=x(),i=l.current,d=u.current;r&&i!==d&&r.scrollTo({top:d,left:0,behavior:`auto`});let h=s.current===`forward`,_=h?th:-th,v=h?-th:th,y=d-i,b=[],S=!1,C=!1,w=()=>{if(C)return;C=!0;let n=f.current;f.current=null,g(e=>n??e.filter(e=>e.status!==`exiting`)),m(!1),ph(e),ph(t)};if(n===`ios`){let n=h?ih:ah,r=h?rh:oh;t&&(t.style.transform=fh(0,y),t.style.opacity=`1`),e.style.transform=fh(r,0),e.style.opacity=`1`;let i=h?e:t;i&&(i.style.boxShadow=ch),t&&b.push(Xm(t,{transform:[fh(0,y),fh(n,y)],opacity:[1,h?sh:1]},{duration:nh,ease:lh})),b.push(Xm(e,{transform:[fh(r,0),fh(0,0)],opacity:[1,1]},{duration:nh,ease:lh}))}else t&&(t.style.transform=dh(y),b.push(Xm(t,{transform:[dh(y),dh(y+v)],opacity:[1,0]},{duration:eh,ease:uh}))),e.style.transform=dh(_),e.style.opacity=`0`,b.push(Xm(e,{transform:[dh(_),dh(0)],opacity:[0,1]},{duration:eh,ease:uh}));return b.length?Promise.all(b.map(e=>e.finished.catch(()=>void 0))).then(()=>{S||w()}):w(),()=>{S=!0,b.forEach(e=>e.stop())}},[p,x]),(0,B.jsx)(`div`,{className:`page-transition${p?` page-transition--animating`:``}`,children:(()=>{let t=h.findIndex(e=>e.status===`current`),n=t===-1?h.length-1:t,r=h.slice(0,n).map((e,t)=>({layer:e,index:t})).reverse().find(({layer:e})=>e.status===`stacked`)?.index;return h.map((t,n)=>{let i=t.status===`stacked`&&n===r;return(0,B.jsx)(`div`,{className:[`page-transition__layer`,t.status===`exiting`?`page-transition__layer--exit`:``,t.status===`stacked`?`page-transition__layer--stacked`:``,i?`page-transition__layer--stacked-keep`:``].filter(Boolean).join(` `),"aria-hidden":t.status!==`current`,inert:t.status!==`current`,ref:t.status===`exiting`?o:t.status===`current`?a:void 0,children:(0,B.jsx)(Zm.Provider,{value:{...Qm[t.status],isAnimating:p},children:e(t.location)})},t.key)})})()})}var hh=15*1e3,gh={getUsage:()=>U.get(`/api-key-usage`,{timeout:hh})},_h={async fetchConfigYaml(){let e=(await U.getRaw(`/config.yaml`,{responseType:`text`,headers:{Accept:`application/yaml, text/yaml, text/plain`}})).data;return typeof e==`string`?e:e==null?``:String(e)},async saveConfigYaml(e){await U.put(`/config.yaml`,e,{headers:{"Content-Type":`application/yaml`,Accept:`application/json, text/plain, */*`}})}},vh={async list(){let e=await U.get(`/api-keys`),t=e[`api-keys`]??e.apiKeys;return Array.isArray(t)?t.map(e=>String(e)):[]},replace:e=>U.put(`/api-keys`,e),update:(e,t)=>U.patch(`/api-keys`,{index:e,value:t}),delete:e=>U.delete(`/api-keys?index=${e}`)},yh=e=>e.map(e=>({"upstream-api-key":e.upstreamApiKey,"api-keys":e.apiKeys})),bh={async getAmpcode(){return xf(await U.get(`/ampcode`))??{}},updateUpstreamUrl:e=>U.put(`/ampcode/upstream-url`,{value:e}),clearUpstreamUrl:()=>U.delete(`/ampcode/upstream-url`),updateUpstreamApiKey:e=>U.put(`/ampcode/upstream-api-key`,{value:e}),clearUpstreamApiKey:()=>U.delete(`/ampcode/upstream-api-key`),async getUpstreamApiKeys(){let e=await U.get(`/ampcode/upstream-api-keys`);return bf(e?.[`upstream-api-keys`]??e?.upstreamApiKeys??e?.items??e)},saveUpstreamApiKeys:e=>U.put(`/ampcode/upstream-api-keys`,{value:yh(e)}),patchUpstreamApiKeys:e=>U.patch(`/ampcode/upstream-api-keys`,{value:yh(e)}),deleteUpstreamApiKeys:e=>U.delete(`/ampcode/upstream-api-keys`,{data:{value:e}}),async getModelMappings(){let e=await U.get(`/ampcode/model-mappings`);return yf(e?.[`model-mappings`]??e?.modelMappings??e?.items??e)},saveModelMappings:e=>U.put(`/ampcode/model-mappings`,{value:e}),patchModelMappings:e=>U.patch(`/ampcode/model-mappings`,{value:e}),clearModelMappings:()=>U.delete(`/ampcode/model-mappings`),deleteModelMappings:e=>U.delete(`/ampcode/model-mappings`,{data:{value:e}}),updateForceModelMappings:e=>U.put(`/ampcode/force-model-mappings`,{value:e})},xh=e=>e&&Object.keys(e).length?e:void 0,Sh=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Ch=(e,t)=>{if(Array.isArray(e))return e;if(!Sh(e))return[];let n=e[t]??e.items??e.data??e;return Array.isArray(n)?n:[]},wh=(e,t)=>{let n=new URLSearchParams;return n.set(`api-key`,e.trim()),n.set(`base-url`,(t??``).trim()),`?${n.toString()}`},Th=e=>Array.isArray(e)?e.map(e=>{if(!e?.name)return null;let t={name:e.name};return e.alias&&e.alias!==e.name&&(t.alias=e.alias),e.priority!==void 0&&(t.priority=e.priority),e.testModel&&(t[`test-model`]=e.testModel),t}).filter(Boolean):void 0,Eh=e=>{let t={"api-key":e.apiKey};e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl);let n=xh(e.headers);return n&&(t.headers=n),t},Dh=e=>{let t={"api-key":e.apiKey};e.priority!==void 0&&(t.priority=e.priority),e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.baseUrl&&(t[`base-url`]=e.baseUrl),e.websockets!==void 0&&(t.websockets=e.websockets),e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl);let n=xh(e.headers);n&&(t.headers=n);let r=Th(e.models);if(r&&r.length&&(t.models=r),e.excludedModels&&e.excludedModels.length&&(t[`excluded-models`]=e.excludedModels),e.cloak){let n={},r=e.cloak.mode?.trim();r&&(n.mode=r),e.cloak.strictMode!==void 0&&(n[`strict-mode`]=e.cloak.strictMode),e.cloak.sensitiveWords&&e.cloak.sensitiveWords.length&&(n[`sensitive-words`]=e.cloak.sensitiveWords),Object.keys(n).length&&(t.cloak=n)}return t},Oh=e=>Array.isArray(e)?e.map(e=>{let t=typeof e?.name==`string`?e.name.trim():``,n=typeof e?.alias==`string`?e.alias.trim():``;return!t||!n?null:{name:t,alias:n}}).filter(Boolean):void 0,kh=e=>{let t={"api-key":e.apiKey};e.priority!==void 0&&(t.priority=e.priority),e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.baseUrl&&(t[`base-url`]=e.baseUrl),e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl);let n=xh(e.headers);n&&(t.headers=n);let r=Oh(e.models);return r&&r.length&&(t.models=r),e.excludedModels&&e.excludedModels.length&&(t[`excluded-models`]=e.excludedModels),t},Ah=e=>{let t={"api-key":e.apiKey};e.priority!==void 0&&(t.priority=e.priority),e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.baseUrl&&(t[`base-url`]=e.baseUrl),e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl);let n=xh(e.headers);n&&(t.headers=n);let r=Th(e.models);return r&&r.length&&(t.models=r),e.excludedModels&&e.excludedModels.length&&(t[`excluded-models`]=e.excludedModels),t},jh=e=>{let t={name:e.name,"base-url":e.baseUrl,"api-key-entries":Array.isArray(e.apiKeyEntries)?e.apiKeyEntries.map(e=>Eh(e)):[]};e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.disabled!==void 0&&(t.disabled=e.disabled);let n=xh(e.headers);n&&(t.headers=n);let r=Th(e.models);return r&&r.length&&(t.models=r),e.priority!==void 0&&(t.priority=e.priority),e.testModel&&(t[`test-model`]=e.testModel),t},Mh={async getGeminiKeys(){return Ch(await U.get(`/gemini-api-key`),`gemini-api-key`).map(e=>gf(e)).filter(Boolean)},saveGeminiKeys:e=>U.put(`/gemini-api-key`,e.map(e=>Ah(e))),updateGeminiKey:(e,t)=>U.patch(`/gemini-api-key`,{index:e,value:Ah(t)}),deleteGeminiKey:(e,t)=>U.delete(`/gemini-api-key${wh(e,t)}`),async getCodexConfigs(){return Ch(await U.get(`/codex-api-key`),`codex-api-key`).map(e=>hf(e)).filter(Boolean)},saveCodexConfigs:e=>U.put(`/codex-api-key`,e.map(e=>Dh(e))),updateCodexConfig:(e,t)=>U.patch(`/codex-api-key`,{index:e,value:Dh(t)}),deleteCodexConfig:(e,t)=>U.delete(`/codex-api-key${wh(e,t)}`),async getClaudeConfigs(){return Ch(await U.get(`/claude-api-key`),`claude-api-key`).map(e=>hf(e)).filter(Boolean)},saveClaudeConfigs:e=>U.put(`/claude-api-key`,e.map(e=>Dh(e))),updateClaudeConfig:(e,t)=>U.patch(`/claude-api-key`,{index:e,value:Dh(t)}),deleteClaudeConfig:(e,t)=>U.delete(`/claude-api-key${wh(e,t)}`),async getVertexConfigs(){return Ch(await U.get(`/vertex-api-key`),`vertex-api-key`).map(e=>hf(e)).filter(Boolean)},saveVertexConfigs:e=>U.put(`/vertex-api-key`,e.map(e=>kh(e))),updateVertexConfig:(e,t)=>U.patch(`/vertex-api-key`,{index:e,value:kh(t)}),deleteVertexConfig:(e,t)=>U.delete(`/vertex-api-key${wh(e,t)}`),async getOpenAIProviders(){return Ch(await U.get(`/openai-compatibility`),`openai-compatibility`).map(e=>_f(e)).filter(Boolean)},saveOpenAIProviders:e=>U.put(`/openai-compatibility`,e.map(e=>jh(e))),updateOpenAIProvider:(e,t)=>U.patch(`/openai-compatibility`,{index:e,value:jh(t)}),updateOpenAIProviderDisabled:(e,t)=>U.patch(`/openai-compatibility`,{index:e,value:{disabled:t}}),deleteOpenAIProvider:e=>U.delete(`/openai-compatibility?name=${encodeURIComponent(e)}`)},Nh=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/i;function Ph(e){let t=e.trim();if(!t)return``;let n=t.match(Nh);if(!n)return t;let[,r,,i=``,a=``]=n;return i.length<=3?t:`${r}.${i.slice(0,3)}${a}`}function Fh(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(e instanceof Date)return e.getTime();if(typeof e!=`string`)return NaN;let t=e.trim();if(!t)return NaN;let n=Ph(t),r=Date.parse(n);if(!Number.isNaN(r))return r;if(n!==t){let e=Date.parse(t);if(!Number.isNaN(e))return e}return NaN}function Ih(e){let t=Fh(e);return Number.isFinite(t)?new Date(t):null}var Lh=`AUTH_FILE_INVALID_JSON_OBJECT`,Rh=e=>{if(!(!e||typeof e!=`object`)&&`status`in e)return e.status},zh=e=>{let t=new Set,n=[];return e.forEach(e=>{let r=String(e??``).trim();!r||t.has(r)||(t.add(r),n.push(r))}),n},Bh=e=>Array.isArray(e)?zh(e.map(e=>String(e??``))):[],Vh=e=>Array.isArray(e)?e.reduce((e,t)=>{if(!t||typeof t!=`object`)return e;let n=t,r=String(n.name??``).trim(),i=typeof n.error==`string`?n.error.trim():typeof n.message==`string`?n.message.trim():``;return!r&&!i||e.push({name:r,error:i||`Unknown error`}),e},[]):[],Hh=(e,t)=>{let n=new Set(t.map(e=>e.name.trim()).filter(Boolean));return n.size===0?[...e]:e.filter(e=>!n.has(e))},Uh=(e,t)=>{let n=Vh(e?.failed),r=Bh(e?.files),i=typeof e?.uploaded==`number`?e.uploaded:r.length>0?r.length:+(t.length===1&&n.length===0),a=r;if(a.length===0&&i>0)if(n.length===0&&i===t.length)a=[...t];else{let e=Hh(t,n);e.length===i&&(a=e)}return{status:typeof e?.status==`string`?e.status:n.length>0?`partial`:`ok`,uploaded:i,files:a,failed:n}},Wh=(e,t)=>{let n=Vh(e?.failed),r=Bh(e?.files),i=typeof e?.deleted==`number`?e.deleted:r.length>0?r.length:+(t.length===1&&n.length===0),a=r;if(a.length===0&&i>0)if(n.length===0&&i===t.length)a=[...t];else{let e=Hh(t,n);e.length===i&&(a=e)}return{status:typeof e?.status==`string`?e.status:n.length>0?`partial`:`ok`,deleted:i,files:a,failed:n}},Gh=(e,t)=>{let n=e[t];return typeof n==`string`?n.trim():``},Kh=e=>{let t=[e.modtime,e.modified,e.updated_at,e.last_refresh];for(let e of t){if(typeof e==`number`&&Number.isFinite(e))return e<0xe8d4a51000?e*1e3:e;if(typeof e==`string`){let t=e.trim();if(!t)continue;let n=Number(t);if(Number.isFinite(n))return n<0xe8d4a51000?n*1e3:n;let r=Fh(t);if(!Number.isNaN(r))return r}}return 0},qh=e=>{let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`?t.trim().toLowerCase()===`true`:!1},Jh=e=>e==null?!1:typeof e==`string`?e.trim().length>0:Array.isArray(e)?e.length>0:!0,Yh=e=>Object.values(e).reduce((e,t)=>e+ +!!Jh(t),0),Xh=e=>{let t=0;return Gh(e,`source`).toLowerCase()===`file`&&(t+=32),Gh(e,`path`)&&(t+=16),qh(e)||(t+=8),e.disabled!==!0&&(t+=4),Kh(e)>0&&(t+=2),t},Zh=(e,t)=>{let n=Xh(t)-Xh(e);if(n!==0)return n;let r=Kh(t)-Kh(e);if(r!==0)return r;let i=Yh(t)-Yh(e);return i===0?0:i},Qh=e=>{let[t,...n]=[...e].sort(Zh),r={...t};return n.forEach(e=>{Object.entries(e).forEach(([e,t])=>{!Jh(r[e])&&Jh(t)&&(r[e]=t)})}),r},$h=e=>{let t=Array.isArray(e?.files)?e.files:[],n=new Map;t.forEach(e=>{let t=Gh(e,`name`)||JSON.stringify(e),r=n.get(t);if(r){r.push(e);return}n.set(t,[e])});let r=Array.from(n.values()).map(Qh);return r.sort((e,t)=>Gh(e,`name`).localeCompare(Gh(t,`name`),void 0,{sensitivity:`accent`})),{...e,files:r,total:r.length}},eg=e=>{let t=e.trim(),n;try{n=JSON.parse(t)}catch{throw Error(Lh)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(Lh);return{...n}},tg=async(e,t)=>{let n=new File([t],e,{type:`application/json`});await ag.upload(n)},ng=e=>{if(!e||typeof e!=`object`)return{};let t=e,n=t[`oauth-excluded-models`]??t.items??e;if(!n||typeof n!=`object`)return{};let r={};return Object.entries(n).forEach(([e,t])=>{let n=String(e??``).trim().toLowerCase();if(!n)return;let i=Array.isArray(t)?t:typeof t==`string`?t.split(/[\n,]+/):[],a=new Set,o=[];i.forEach(e=>{let t=String(e??``).trim();if(!t)return;let n=t.toLowerCase();a.has(n)||(a.add(n),o.push(t))}),r[n]=o}),r},rg=e=>{if(!e||typeof e!=`object`)return{};let t=e,n=t[`oauth-model-alias`]??t.items??e;if(!n||typeof n!=`object`)return{};let r={};return Object.entries(n).forEach(([e,t])=>{let n=String(e??``).trim().toLowerCase();if(!n||!Array.isArray(t))return;let i=new Set,a=t.map(e=>{if(!e||typeof e!=`object`)return null;let t=e,n=String(t.name??t.id??t.model??``).trim(),r=String(t.alias??``).trim();if(!n||!r)return null;let i=t.fork===!0;return i?{name:n,alias:r,fork:i}:{name:n,alias:r}}).filter(Boolean).filter(e=>{let t=e,n=`${t.name.toLowerCase()}::${t.alias.toLowerCase()}::${t.fork?`1`:`0`}`;return i.has(n)?!1:(i.add(n),!0)});a.length&&(r[n]=a)}),r},ig=`/oauth-model-alias`,ag={list:async()=>$h(await U.get(`/auth-files`)),setStatus:(e,t)=>U.patch(`/auth-files/status`,{name:e,disabled:t}),patchFields:(e,t)=>U.patch(`/auth-files/fields`,{name:e,...t}),uploadFiles:async e=>{let t=e.map(e=>e.name);if(t.length===0)return{status:`ok`,uploaded:0,files:[],failed:[]};let n=new FormData;return e.forEach(e=>{n.append(`file`,e,e.name)}),Uh(await U.postForm(`/auth-files`,n),t)},upload:e=>ag.uploadFiles([e]),deleteFiles:async e=>{let t=zh(e);return t.length===0?{status:`ok`,deleted:0,files:[],failed:[]}:Wh(await U.delete(`/auth-files`,{data:{names:t}}),t)},deleteFile:e=>ag.deleteFiles([e]),deleteAll:()=>U.delete(`/auth-files`,{params:{all:!0}}),downloadText:async e=>(await U.getRaw(`/auth-files/download?name=${encodeURIComponent(e)}`,{responseType:`blob`})).data.text(),async downloadJsonObject(e){return eg(await ag.downloadText(e))},saveText:(e,t)=>tg(e,t),saveJsonObject:(e,t)=>tg(e,JSON.stringify(t)),async getOauthExcludedModels(){return ng(await U.get(`/oauth-excluded-models`))},saveOauthExcludedModels:(e,t)=>U.patch(`/oauth-excluded-models`,{provider:e,models:t}),deleteOauthExcludedEntry:e=>U.delete(`/oauth-excluded-models?provider=${encodeURIComponent(e)}`),replaceOauthExcludedModels:e=>U.put(`/oauth-excluded-models`,ng(e)),async getOauthModelAlias(){return rg(await U.get(ig))},saveOauthModelAlias:async(e,t)=>{let n=String(e??``).trim().toLowerCase(),r=rg({[n]:t})[n]??[];await U.patch(ig,{channel:n,aliases:r})},deleteOauthModelAlias:async e=>{let t=String(e??``).trim().toLowerCase();try{await U.patch(ig,{channel:t,aliases:[]})}catch(e){if(Rh(e)!==405)throw e;await U.delete(`${ig}?channel=${encodeURIComponent(t)}`)}},async getModelsForAuthFile(e){let t=await U.get(`/auth-files/models?name=${encodeURIComponent(e)}`),n=t.models??t.models;return Array.isArray(n)?n:[]},async getModelDefinitions(e){let t=String(e??``).trim().toLowerCase();if(!t)return[];let n=await U.get(`/model-definitions/${encodeURIComponent(t)}`),r=n.models??n.models;return Array.isArray(r)?r:[]}},og=[`codex`,`anthropic`,`antigravity`,`gemini-cli`],sg={"gemini-cli":`gemini`},cg={startAuth:(e,t)=>{let n={};return og.includes(e)&&(n.is_webui=!0),e===`gemini-cli`&&t?.projectId&&(n.project_id=t.projectId),U.get(`/${e}-auth-url`,{params:Object.keys(n).length?n:void 0})},getAuthStatus:e=>U.get(`/get-auth-status`,{params:{state:e}}),submitCallback:(e,t)=>{let n=sg[e]??e;return U.post(`/oauth-callback`,{provider:n,redirect_url:t})}},lg={fetchLogs:(e={})=>U.get(`/logs`,{params:e,timeout:oc}),clearLogs:()=>U.delete(`/logs`),fetchErrorLogs:()=>U.get(`/request-error-logs`,{timeout:oc}),downloadErrorLog:e=>U.getRaw(`/request-error-logs/${encodeURIComponent(e)}`,{responseType:`blob`,timeout:oc}),downloadRequestLogById:e=>U.getRaw(`/request-log-by-id/${encodeURIComponent(e)}`,{responseType:`blob`,timeout:oc})},ug={checkLatest:()=>U.get(`/latest-version`)},dg={importCredential:(e,t)=>{let n=new FormData;return n.append(`file`,e),t&&n.append(`location`,t),U.postForm(`/vertex/import`,n)}},fg={dashboard:`DashboardPage-module__dashboard___c-JEy`,backgroundOrbs:`DashboardPage-module__backgroundOrbs___ZlInx`,orb1:`DashboardPage-module__orb1___msZV4`,orbFloat:`DashboardPage-module__orbFloat___zdYrn`,orb2:`DashboardPage-module__orb2___rkxwt`,hero:`DashboardPage-module__hero___4gtI-`,heroEnter:`DashboardPage-module__heroEnter___LNodk`,heroWatermark:`DashboardPage-module__heroWatermark___eoPCs`,watermarkEnter:`DashboardPage-module__watermarkEnter___4r-VK`,heroContent:`DashboardPage-module__heroContent___rRgSn`,heroGreeting:`DashboardPage-module__heroGreeting___LkC-3`,fadeSlideUp:`DashboardPage-module__fadeSlideUp___svgeE`,heroTitle:`DashboardPage-module__heroTitle___583C6`,heroCaring:`DashboardPage-module__heroCaring___4RIkE`,heroMeta:`DashboardPage-module__heroMeta___-2WgN`,dateTimeBlock:`DashboardPage-module__dateTimeBlock___nv-GA`,time:`DashboardPage-module__time___r-JWY`,date:`DashboardPage-module__date___fd2-M`,connectionPill:`DashboardPage-module__connectionPill___Jf-zm`,statusDot:`DashboardPage-module__statusDot___4w7W-`,connected:`DashboardPage-module__connected___CeELY`,connecting:`DashboardPage-module__connecting___j03PZ`,pulse:`DashboardPage-module__pulse___GLJju`,disconnected:`DashboardPage-module__disconnected___3l11q`,pillText:`DashboardPage-module__pillText___HO7gg`,buildDate:`DashboardPage-module__buildDate___zr4hY`,statsSection:`DashboardPage-module__statsSection___E5LH9`,sectionHeading:`DashboardPage-module__sectionHeading___j2-4e`,bentoGrid:`DashboardPage-module__bentoGrid___L3GMN`,bentoCard:`DashboardPage-module__bentoCard___fZ0NR`,cardEnter:`DashboardPage-module__cardEnter___TzYj-`,bentoLarge:`DashboardPage-module__bentoLarge___OI8ha`,bentoValue:`DashboardPage-module__bentoValue___4z4aG`,bentoIcon:`DashboardPage-module__bentoIcon___yMz7f`,bentoContent:`DashboardPage-module__bentoContent___7qrNg`,bentoLabel:`DashboardPage-module__bentoLabel___s0-b2`,bentoSublabel:`DashboardPage-module__bentoSublabel___LRcJB`,configSection:`DashboardPage-module__configSection___G0W4F`,configPillGrid:`DashboardPage-module__configPillGrid___Ie76m`,configPill:`DashboardPage-module__configPill___C2Adr`,configPillWide:`DashboardPage-module__configPillWide___2Bkpx`,configPillLabel:`DashboardPage-module__configPillLabel___eK-LR`,configPillValue:`DashboardPage-module__configPillValue___k6VI3`,on:`DashboardPage-module__on___kqLdD`,off:`DashboardPage-module__off___gkz6F`,configPillMono:`DashboardPage-module__configPillMono___pEsgq`,configBadge:`DashboardPage-module__configBadge___TrJTP`,configBadgeRoundRobin:`DashboardPage-module__configBadgeRoundRobin___wgPLB`,configBadgeFillFirst:`DashboardPage-module__configBadgeFillFirst___N5vai`,configBadgeUnknown:`DashboardPage-module__configBadgeUnknown___Jo3zP`,viewMoreLink:`DashboardPage-module__viewMoreLink___wKvoJ`};function pg(){let e=new Date().getHours();return e>=5&&e<12?`morning`:e>=12&&e<17?`afternoon`:e>=17&&e<21?`evening`:`night`}function mg(){let{t:e,i18n:t}=qo(),n=ep(e=>e.connectionStatus),r=ep(e=>e.serverVersion),i=ep(e=>e.serverBuildDate),a=ep(e=>e.apiBase),o=Of(e=>e.config),s=Qf(e=>e.models),c=Qf(e=>e.loading),l=Qf(e=>e.fetchModels),[u,d]=(0,y.useState)({apiKeys:null,authFiles:null}),[f,p]=(0,y.useState)({gemini:null,codex:null,claude:null,openai:null}),[m,h]=(0,y.useState)(!0),[g,_]=(0,y.useState)(pg),[v,b]=(0,y.useState)(()=>new Date),x=(0,y.useRef)([]);(0,y.useEffect)(()=>{x.current=[]},[a,o?.apiKeys]),(0,y.useEffect)(()=>{let e=setInterval(()=>{_(pg()),b(new Date)},6e4);return()=>clearInterval(e)},[]);let S=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{let r=typeof e==`object`&&e&&!Array.isArray(e)?e:null,i=typeof e==`string`?e:r?r[`api-key`]??r.apiKey??r.key??r.Key:``,a=String(i??``).trim();!a||t.has(a)||(t.add(a),n.push(a))}),n},C=(0,y.useCallback)(async()=>{if(x.current.length)return x.current;let e=S(o?.apiKeys);if(e.length)return x.current=e,e;try{let e=S(await vh.list());return e.length&&(x.current=e),e}catch{return[]}},[o?.apiKeys]),w=(0,y.useCallback)(async()=>{if(!(n!==`connected`||!a))try{let e=(await C())[0];await l(a,e)}catch{}},[n,a,C,l]);(0,y.useEffect)(()=>{n===`connected`?((async()=>{h(!0);try{let[e,t,n,r,i,a]=await Promise.allSettled([vh.list(),ag.list(),Mh.getGeminiKeys(),Mh.getCodexConfigs(),Mh.getClaudeConfigs(),Mh.getOpenAIProviders()]);d({apiKeys:e.status===`fulfilled`?e.value.length:null,authFiles:t.status===`fulfilled`?t.value.files.length:null}),p({gemini:n.status===`fulfilled`?n.value.length:null,codex:r.status===`fulfilled`?r.value.length:null,claude:i.status===`fulfilled`?i.value.length:null,openai:a.status===`fulfilled`?a.value.length:null})}finally{h(!1)}})(),w()):h(!1)},[n,w]);let T=f.gemini!==null&&f.codex!==null&&f.claude!==null&&f.openai!==null,E=f.gemini!==null||f.codex!==null||f.claude!==null||f.openai!==null,D=T?(f.gemini??0)+(f.codex??0)+(f.claude??0)+(f.openai??0):0,O=[{label:e(`dashboard.management_keys`),value:u.apiKeys??`-`,icon:(0,B.jsx)(es,{size:24}),path:`/config`,loading:m&&u.apiKeys===null,sublabel:e(`nav.config_management`)},{label:e(`nav.ai_providers`),value:m?`-`:T?D:`-`,icon:(0,B.jsx)(ts,{size:24}),path:`/ai-providers`,loading:m,sublabel:E?e(`dashboard.provider_keys_detail`,{gemini:f.gemini??`-`,codex:f.codex??`-`,claude:f.claude??`-`,openai:f.openai??`-`}):void 0},{label:e(`nav.auth_files`),value:u.authFiles??`-`,icon:(0,B.jsx)(is,{size:24}),path:`/auth-files`,loading:m&&u.authFiles===null,sublabel:e(`dashboard.oauth_credentials`)},{label:e(`dashboard.available_models`),value:c?`-`:s.length,icon:(0,B.jsx)(bs,{size:24}),path:`/system`,loading:c,sublabel:e(`dashboard.available_models_desc`)}],k=o?.routingStrategy?.trim()||``,A=k?k===`round-robin`?e(`basic_settings.routing_strategy_round_robin`):k===`fill-first`?e(`basic_settings.routing_strategy_fill_first`):k:`-`,j=k?k===`round-robin`?fg.configBadgeRoundRobin:k===`fill-first`?fg.configBadgeFillFirst:fg.configBadgeUnknown:fg.configBadgeUnknown,M=`dashboard.greeting_${g}`,N=`dashboard.caring_${g}`,P=v.toLocaleDateString(t.language,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),ee=v.toLocaleTimeString(t.language,{hour:`2-digit`,minute:`2-digit`});return(0,B.jsxs)(`div`,{className:fg.dashboard,children:[(0,B.jsxs)(`div`,{className:fg.backgroundOrbs,"aria-hidden":`true`,children:[(0,B.jsx)(`div`,{className:fg.orb1}),(0,B.jsx)(`div`,{className:fg.orb2})]}),(0,B.jsxs)(`section`,{className:fg.hero,children:[(0,B.jsx)(`span`,{className:fg.heroWatermark,"aria-hidden":`true`,children:`OVERVIEW`}),(0,B.jsxs)(`div`,{className:fg.heroContent,children:[(0,B.jsx)(`span`,{className:fg.heroGreeting,children:e(M)}),(0,B.jsx)(`h1`,{className:fg.heroTitle,children:e(`dashboard.welcome_back`)}),(0,B.jsx)(`p`,{className:fg.heroCaring,children:e(N)})]}),(0,B.jsxs)(`div`,{className:fg.heroMeta,children:[(0,B.jsxs)(`div`,{className:fg.dateTimeBlock,children:[(0,B.jsx)(`span`,{className:fg.time,children:ee}),(0,B.jsx)(`span`,{className:fg.date,children:P})]}),(0,B.jsxs)(`div`,{className:fg.connectionPill,children:[(0,B.jsx)(`span`,{className:`${fg.statusDot} ${n===`connected`?fg.connected:n===`connecting`?fg.connecting:fg.disconnected}`}),(0,B.jsx)(`span`,{className:fg.pillText,children:r?`v${r.trim().replace(/^[vV]+/,``)}`:e(n===`connected`?`common.connected`:n===`connecting`?`common.connecting`:`common.disconnected`)})]}),i&&(0,B.jsx)(`span`,{className:fg.buildDate,children:new Date(i).toLocaleDateString(t.language)})]})]}),(0,B.jsxs)(`section`,{className:fg.statsSection,children:[(0,B.jsx)(`h2`,{className:fg.sectionHeading,children:e(`dashboard.system_overview`)}),(0,B.jsx)(`div`,{className:fg.bentoGrid,children:O.map((e,t)=>(0,B.jsxs)(Pi,{to:e.path,className:`${fg.bentoCard} ${t===0?fg.bentoLarge:``}`,style:{animationDelay:`${t*80}ms`},children:[(0,B.jsx)(`div`,{className:fg.bentoIcon,children:e.icon}),(0,B.jsxs)(`div`,{className:fg.bentoContent,children:[(0,B.jsx)(`span`,{className:fg.bentoValue,children:e.loading?`...`:e.value}),(0,B.jsx)(`span`,{className:fg.bentoLabel,children:e.label}),e.sublabel&&!e.loading&&(0,B.jsx)(`span`,{className:fg.bentoSublabel,children:e.sublabel})]})]},e.path))})]}),o&&(0,B.jsxs)(`section`,{className:fg.configSection,children:[(0,B.jsx)(`h2`,{className:fg.sectionHeading,children:e(`dashboard.current_config`)}),(0,B.jsxs)(`div`,{className:fg.configPillGrid,children:[(0,B.jsxs)(`div`,{className:fg.configPill,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`basic_settings.debug_enable`)}),(0,B.jsx)(`span`,{className:`${fg.configPillValue} ${o.debug?fg.on:fg.off}`,children:o.debug?e(`common.yes`):e(`common.no`)})]}),(0,B.jsxs)(`div`,{className:fg.configPill,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`basic_settings.logging_to_file_enable`)}),(0,B.jsx)(`span`,{className:`${fg.configPillValue} ${o.loggingToFile?fg.on:fg.off}`,children:o.loggingToFile?e(`common.yes`):e(`common.no`)})]}),(0,B.jsxs)(`div`,{className:fg.configPill,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`basic_settings.retry_count_label`)}),(0,B.jsx)(`span`,{className:fg.configPillValue,children:o.requestRetry??0})]}),(0,B.jsxs)(`div`,{className:fg.configPill,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`basic_settings.ws_auth_enable`)}),(0,B.jsx)(`span`,{className:`${fg.configPillValue} ${o.wsAuth?fg.on:fg.off}`,children:o.wsAuth?e(`common.yes`):e(`common.no`)})]}),(0,B.jsxs)(`div`,{className:fg.configPill,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`dashboard.routing_strategy`)}),(0,B.jsx)(`span`,{className:`${fg.configBadge} ${j}`,children:A})]}),o.proxyUrl&&(0,B.jsxs)(`div`,{className:`${fg.configPill} ${fg.configPillWide}`,children:[(0,B.jsx)(`span`,{className:fg.configPillLabel,children:e(`basic_settings.proxy_url_label`)}),(0,B.jsx)(`span`,{className:fg.configPillMono,children:o.proxyUrl})]})]}),(0,B.jsxs)(Pi,{to:`/config`,className:fg.viewMoreLink,children:[e(`dashboard.edit_settings`),` →`]})]})]})}function hg({title:e,extra:t,children:n,className:r}){return(0,B.jsxs)(`div`,{className:r?`card ${r}`:`card`,children:[(e||t)&&(0,B.jsxs)(`div`,{className:`card-header`,children:[(0,B.jsx)(`div`,{className:`title`,children:e}),t]}),n]})}var gg=`data:image/svg+xml,%3csvg%20width='400'%20height='400'%20viewBox='0%200%2028%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M13.9197%2013.61L17.3816%2026.566L14.242%2027.4049L11.2645%2016.2643L0.119926%2013.2906L0.957817%2010.15L13.9197%2013.61Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M13.7391%2016.0892L4.88169%2024.9056L2.58872%2022.6019L11.4461%2013.7865L13.7391%2016.0892Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M18.9386%208.58315L22.4005%2021.5392L19.2609%2022.3781L16.2833%2011.2374L5.13879%208.26381L5.97668%205.12318L18.9386%208.58315Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M23.9803%203.55632L27.4422%2016.5124L24.3025%2017.3512L21.325%206.21062L10.1805%203.23698L11.0183%200.0963593L23.9803%203.55632Z'%20fill='%23F34E3F'/%3e%3c/svg%3e`;function _g(e){let t=String(e||``).trim();if(!t)return``;let n=t.length<4?1:2,r=t.slice(0,n),i=t.slice(-n),a=Math.max(10-n*2,1);return`${r}${`*`.repeat(a)}${i}`}function vg(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/n**+r).toFixed(2)} ${t[r]}`}function yg(e,t){if(e==null||e===``)return``;let n=typeof e==`number`?e:Number(e),r=(()=>{if(!Number.isFinite(n)||Number.isNaN(n))return Ih(e)??new Date(String(e));let t=Math.abs(n);return t<1e11?new Date(n*1e3):t<0x5af3107a4000?new Date(n):t<0x16345785d8a0000?new Date(Math.round(n/1e3)):new Date(Math.round(n/1e6))})();return Number.isNaN(r.getTime())?``:t?r.toLocaleString(t):r.toLocaleString()}var W={container:`AiProvidersPage-module__container___y-jfS`,cardTitle:`AiProvidersPage-module__cardTitle___vO4i3`,cardTitleIcon:`AiProvidersPage-module__cardTitleIcon___-rTw0`,pageTitle:`AiProvidersPage-module__pageTitle___DoSv8`,content:`AiProvidersPage-module__content___E2Czu`,section:`AiProvidersPage-module__section___IvT9j`,sectionHeader:`AiProvidersPage-module__sectionHeader___DP-H3`,openaiProviderList:`AiProvidersPage-module__openaiProviderList___p5iPp`,openaiProviderCard:`AiProvidersPage-module__openaiProviderCard___nqn98`,openaiProviderMeta:`AiProvidersPage-module__openaiProviderMeta___pp8j-`,openaiProviderActions:`AiProvidersPage-module__openaiProviderActions___UeCit`,openaiProviderTitle:`AiProvidersPage-module__openaiProviderTitle___Zk9Lr`,sortControls:`AiProvidersPage-module__sortControls___AsuBH`,sortSelect:`AiProvidersPage-module__sortSelect___R90DF`,sortDirectionButton:`AiProvidersPage-module__sortDirectionButton___dpY3h`,sortDirectionIcon:`AiProvidersPage-module__sortDirectionIcon___L6PuX`,cardHeaderActions:`AiProvidersPage-module__cardHeaderActions___nqVwO`,openaiToolbarAnchorHidden:`AiProvidersPage-module__openaiToolbarAnchorHidden___aRB4Z`,openaiFloatingToolbar:`AiProvidersPage-module__openaiFloatingToolbar___wHoSe`,modelMultiSelectWrapper:`AiProvidersPage-module__modelMultiSelectWrapper___0KvpR`,modelFilterControl:`AiProvidersPage-module__modelFilterControl___wByTZ`,modelFilterControlActive:`AiProvidersPage-module__modelFilterControlActive___vLEH7`,modelFilterControlDisabled:`AiProvidersPage-module__modelFilterControlDisabled___GBSA2`,modelFilterTrigger:`AiProvidersPage-module__modelFilterTrigger___p1dSx`,modelFilterIcon:`AiProvidersPage-module__modelFilterIcon___KByH4`,modelFilterText:`AiProvidersPage-module__modelFilterText___SlSM7`,modelFilterCount:`AiProvidersPage-module__modelFilterCount___PFlt6`,modelFilterChevron:`AiProvidersPage-module__modelFilterChevron___nUoML`,modelFilterInlineClear:`AiProvidersPage-module__modelFilterInlineClear___Or-vD`,modelDropdownList:`AiProvidersPage-module__modelDropdownList___9TG6y`,modelDropdownListAbove:`AiProvidersPage-module__modelDropdownListAbove___Dwnmk`,modelDropdownHeader:`AiProvidersPage-module__modelDropdownHeader___9wjXb`,modelDropdownSelectAll:`AiProvidersPage-module__modelDropdownSelectAll___054nb`,modelDropdownClear:`AiProvidersPage-module__modelDropdownClear___sl3Vu`,openaiAddButton:`AiProvidersPage-module__openaiAddButton___Ktjj2`,modelDropdownItems:`AiProvidersPage-module__modelDropdownItems___v-ZeZ`,modelDropdownItem:`AiProvidersPage-module__modelDropdownItem___m5To-`,modelDropdownItemLabel:`AiProvidersPage-module__modelDropdownItemLabel___j8oGZ`,modelDropdownEmpty:`AiProvidersPage-module__modelDropdownEmpty___e-7EC`,cardStats:`AiProvidersPage-module__cardStats___rELY1`,statPill:`AiProvidersPage-module__statPill___d812A`,statSuccess:`AiProvidersPage-module__statSuccess___5dRtj`,statFailure:`AiProvidersPage-module__statFailure___krDjY`,fieldRow:`AiProvidersPage-module__fieldRow___XK6hX`,fieldLabel:`AiProvidersPage-module__fieldLabel___cLX9f`,fieldValue:`AiProvidersPage-module__fieldValue___VdFCH`,headerBadgeList:`AiProvidersPage-module__headerBadgeList___kwkIM`,headerBadge:`AiProvidersPage-module__headerBadge___eN0Fd`,modelTagList:`AiProvidersPage-module__modelTagList___shUnj`,modelCountLabel:`AiProvidersPage-module__modelCountLabel___uV8s-`,modelTag:`AiProvidersPage-module__modelTag___k-VuJ`,modelName:`AiProvidersPage-module__modelName___-6r4h`,modelAlias:`AiProvidersPage-module__modelAlias___ljQjM`,excludedModelTag:`AiProvidersPage-module__excludedModelTag___emTfi`,excludedModelsSection:`AiProvidersPage-module__excludedModelsSection___XFykq`,excludedModelsLabel:`AiProvidersPage-module__excludedModelsLabel___Drdds`,apiKeyEntriesSection:`AiProvidersPage-module__apiKeyEntriesSection___60ydj`,apiKeyEntriesLabel:`AiProvidersPage-module__apiKeyEntriesLabel___c5W8h`,apiKeyEntryList:`AiProvidersPage-module__apiKeyEntryList___-xrgk`,apiKeyEntryCard:`AiProvidersPage-module__apiKeyEntryCard___Y5gRi`,apiKeyEntryIndex:`AiProvidersPage-module__apiKeyEntryIndex___h8oWW`,apiKeyEntryKey:`AiProvidersPage-module__apiKeyEntryKey___JgU0c`,apiKeyEntryProxy:`AiProvidersPage-module__apiKeyEntryProxy___gy9Vu`,apiKeyEntryStats:`AiProvidersPage-module__apiKeyEntryStats___Whq5E`,apiKeyEntryStat:`AiProvidersPage-module__apiKeyEntryStat___rwvkB`,apiKeyEntryStatSuccess:`AiProvidersPage-module__apiKeyEntryStatSuccess___GXIwG`,apiKeyEntryStatFailure:`AiProvidersPage-module__apiKeyEntryStatFailure___XV9wg`,modelDiscoveryList:`AiProvidersPage-module__modelDiscoveryList___HKeOb`,modelDiscoveryRow:`AiProvidersPage-module__modelDiscoveryRow___3J8pc`,modelDiscoverySelectionLabel:`AiProvidersPage-module__modelDiscoverySelectionLabel___GsF2O`,modelDiscoveryRowSelected:`AiProvidersPage-module__modelDiscoveryRowSelected___VLfIp`,modelDiscoveryMeta:`AiProvidersPage-module__modelDiscoveryMeta___7D6Y5`,modelDiscoveryName:`AiProvidersPage-module__modelDiscoveryName___yf70V`,modelDiscoveryAlias:`AiProvidersPage-module__modelDiscoveryAlias___N2nU7`,modelDiscoveryDesc:`AiProvidersPage-module__modelDiscoveryDesc___nsrtd`,modelDiscoveryToolbar:`AiProvidersPage-module__modelDiscoveryToolbar___FOjvS`,modelDiscoveryToolbarActions:`AiProvidersPage-module__modelDiscoveryToolbarActions___a8qmb`,modelDiscoverySelectionSummary:`AiProvidersPage-module__modelDiscoverySelectionSummary___7PhM7`,openaiTestButtonSuccess:`AiProvidersPage-module__openaiTestButtonSuccess___ZiymQ`,statusBar:`AiProvidersPage-module__statusBar___gAS9s`,statusBlocks:`AiProvidersPage-module__statusBlocks___RESqk`,statusBlockWrapper:`AiProvidersPage-module__statusBlockWrapper___crE7L`,statusBlock:`AiProvidersPage-module__statusBlock___nUV1s`,statusBlockActive:`AiProvidersPage-module__statusBlockActive___MgbMs`,statusBlockIdle:`AiProvidersPage-module__statusBlockIdle___WEMXo`,statusTooltip:`AiProvidersPage-module__statusTooltip___leV9X`,statusTooltipLeft:`AiProvidersPage-module__statusTooltipLeft___avU77`,statusTooltipRight:`AiProvidersPage-module__statusTooltipRight___k2gcI`,tooltipTime:`AiProvidersPage-module__tooltipTime___SU0zH`,tooltipStats:`AiProvidersPage-module__tooltipStats___c6Xho`,tooltipSuccess:`AiProvidersPage-module__tooltipSuccess___Nl3Pt`,tooltipFailure:`AiProvidersPage-module__tooltipFailure___1XMCP`,tooltipRate:`AiProvidersPage-module__tooltipRate___YDCOe`,statusRate:`AiProvidersPage-module__statusRate___mqcEs`,statusRateHigh:`AiProvidersPage-module__statusRateHigh___GpDhl`,statusRateMedium:`AiProvidersPage-module__statusRateMedium___hdtEj`,statusRateLow:`AiProvidersPage-module__statusRateLow___mNI2c`,openaiEditForm:`AiProvidersPage-module__openaiEditForm___axTov`,modelConfigSection:`AiProvidersPage-module__modelConfigSection___0v-e8`,sectionHint:`AiProvidersPage-module__sectionHint___-aBFT`,openaiModelsContent:`AiProvidersPage-module__openaiModelsContent___yEApy`,openaiModelsEndpointSection:`AiProvidersPage-module__openaiModelsEndpointSection___FvBIQ`,openaiModelsEndpointLabel:`AiProvidersPage-module__openaiModelsEndpointLabel___-rOEU`,openaiModelsEndpointControls:`AiProvidersPage-module__openaiModelsEndpointControls___pLkMs`,openaiModelsEndpointInput:`AiProvidersPage-module__openaiModelsEndpointInput___4xH3Y`,modelConfigHeader:`AiProvidersPage-module__modelConfigHeader___bXtq4`,modelConfigTitle:`AiProvidersPage-module__modelConfigTitle___ppVRn`,modelConfigToolbar:`AiProvidersPage-module__modelConfigToolbar___nrb6R`,modelInputList:`AiProvidersPage-module__modelInputList___AbYq6`,modelInputRow:`AiProvidersPage-module__modelInputRow___j-ubV`,modelInputField:`AiProvidersPage-module__modelInputField___QdqkU`,modelRowRemoveButton:`AiProvidersPage-module__modelRowRemoveButton___lEFpT`,modelTestPanel:`AiProvidersPage-module__modelTestPanel___SyW9P`,modelTestMeta:`AiProvidersPage-module__modelTestMeta___XMH-g`,modelTestLabel:`AiProvidersPage-module__modelTestLabel___HqcWx`,modelTestHint:`AiProvidersPage-module__modelTestHint___kUgyp`,modelTestControls:`AiProvidersPage-module__modelTestControls___yPmI0`,keyEntriesSection:`AiProvidersPage-module__keyEntriesSection___XD0xH`,keyEntriesHeader:`AiProvidersPage-module__keyEntriesHeader___yZxok`,keyEntriesTitle:`AiProvidersPage-module__keyEntriesTitle___MEybu`,keyEntriesHint:`AiProvidersPage-module__keyEntriesHint___gn0EN`,keyEntriesList:`AiProvidersPage-module__keyEntriesList___Gtpin`,keyEntriesToolbar:`AiProvidersPage-module__keyEntriesToolbar___eSzyC`,keyEntriesCount:`AiProvidersPage-module__keyEntriesCount___e6jgL`,keyTableShell:`AiProvidersPage-module__keyTableShell___0nNxe`,keyTableHeader:`AiProvidersPage-module__keyTableHeader___ZbWah`,keyTableRow:`AiProvidersPage-module__keyTableRow___0MOQW`,keyTableColIndex:`AiProvidersPage-module__keyTableColIndex___U12X-`,keyTableColStatus:`AiProvidersPage-module__keyTableColStatus___Dzw88`,keyTableColKey:`AiProvidersPage-module__keyTableColKey___V9Md3`,keyTableColProxy:`AiProvidersPage-module__keyTableColProxy___9hcue`,keyTableColAction:`AiProvidersPage-module__keyTableColAction___oZsbE`,keyTableInput:`AiProvidersPage-module__keyTableInput___bo5JN`,addKeyButton:`AiProvidersPage-module__addKeyButton___xuMah`,openaiTestSelect:`AiProvidersPage-module__openaiTestSelect___7-Upw`,modelTestAllButton:`AiProvidersPage-module__modelTestAllButton___SRL9M`,statusIconWrapper:`AiProvidersPage-module__statusIconWrapper___yoMZR`,statusIconSpin:`AiProvidersPage-module__statusIconSpin___DC8Ww`,spin:`AiProvidersPage-module__spin___D9eR3`};function bg({config:e,loading:t,disableControls:n,isSwitching:r,onEdit:i}){let{t:a}=qo(),o=t&&!e;return(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:gg,alt:``,className:W.cardTitleIcon}),a(`ai_providers.ampcode_title`)]}),extra:(0,B.jsx)(V,{size:`sm`,onClick:i,disabled:n||t||r,children:a(`common.edit`)}),children:o?(0,B.jsx)(`div`,{className:`hint`,children:a(`common.loading`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[a(`ai_providers.ampcode_upstream_url_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e?.upstreamUrl||a(`common.not_set`)})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[a(`ai_providers.ampcode_upstream_api_key_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e?.upstreamApiKey?_g(e.upstreamApiKey):a(`common.not_set`)})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[a(`ai_providers.ampcode_force_model_mappings_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e?.forceModelMappings??!1?a(`common.yes`):a(`common.no`)})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,style:{marginTop:8},children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[a(`ai_providers.ampcode_model_mappings_count`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e?.modelMappings?.length||0})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[a(`ai_providers.ampcode_upstream_api_keys_count`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e?.upstreamApiKeys?.length||0})]}),e?.modelMappings?.length?(0,B.jsxs)(`div`,{className:W.modelTagList,children:[e.modelMappings.slice(0,5).map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.from}),(0,B.jsx)(`span`,{className:W.modelAlias,children:e.to})]},`${e.from}→${e.to}`)),e.modelMappings.length>5&&(0,B.jsx)(`span`,{className:W.modelTag,children:(0,B.jsxs)(`span`,{className:W.modelName,children:[`+`,e.modelMappings.length-5]})})]}):null]})})})}var xg={root:`ToggleSwitch-module__root___IUqKD`,labelLeft:`ToggleSwitch-module__labelLeft___Pc6fJ`,label:`ToggleSwitch-module__label___4iQkR`,disabled:`ToggleSwitch-module__disabled___GNGHj`,track:`ToggleSwitch-module__track___zFtXx`,thumb:`ToggleSwitch-module__thumb___gQ45C`};function Sg({checked:e,onChange:t,label:n,ariaLabel:r,disabled:i=!1,labelPosition:a=`right`}){return(0,B.jsxs)(`label`,{className:[xg.root,a===`left`?xg.labelLeft:``,i?xg.disabled:``].filter(Boolean).join(` `),children:[(0,B.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>{t(e.target.checked)},disabled:i,"aria-label":r}),(0,B.jsx)(`span`,{className:xg.track,children:(0,B.jsx)(`span`,{className:xg.thumb})}),n&&(0,B.jsx)(`span`,{className:xg.label,children:n})]})}var Cg=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`;function wg({title:e,description:t,action:n}){return(0,B.jsxs)(`div`,{className:`empty-state`,children:[(0,B.jsxs)(`div`,{className:`empty-content`,children:[(0,B.jsx)(`div`,{className:`empty-icon`,"aria-hidden":`true`,children:(0,B.jsx)(ys,{size:20})}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`empty-title`,children:e}),t&&(0,B.jsx)(`div`,{className:`empty-desc`,children:t})]})]}),n&&(0,B.jsx)(`div`,{className:`empty-action`,children:n})]})}function Tg({items:e,loading:t,keyField:n,renderContent:r,onEdit:i,onDelete:a,emptyTitle:o,emptyDescription:s,deleteLabel:c,actionsDisabled:l=!1,getRowDisabled:u,renderExtraActions:d,listClassName:f,rowClassName:p,metaClassName:m,actionsClassName:h}){let{t:g}=qo();return t&&e.length===0?(0,B.jsx)(`div`,{className:`hint`,children:g(`common.loading`)}):e.length?(0,B.jsx)(`div`,{className:f??`item-list`,children:e.map((e,t)=>{let o=u?u(e,t):!1;return(0,B.jsxs)(`div`,{className:p??`item-row`,style:o?{opacity:.6}:void 0,children:[(0,B.jsx)(`div`,{className:m??`item-meta`,children:r(e,t)}),(0,B.jsxs)(`div`,{className:h??`item-actions`,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>i(e,t),disabled:l,children:g(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>a(e,t),disabled:l,children:c||g(`common.delete`)}),d?d(e,t):null]})]},n(e,t))})}):(0,B.jsx)(wg,{title:o,description:s})}var Eg=[{r:239,g:68,b:68},{r:250,g:204,b:21},{r:34,g:197,b:94}];function Dg(e){let t=Math.max(0,Math.min(1,e)),n=t<.5?0:1,r=n===0?t*2:(t-.5)*2,i=Eg[n],a=Eg[n+1];return`rgb(${Math.round(i.r+(a.r-i.r)*r)}, ${Math.round(i.g+(a.g-i.g)*r)}, ${Math.round(i.b+(a.b-i.b)*r)})`}function Og(e){let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}`}function kg(e){let t=e.toFixed(1);return`${t.endsWith(`.0`)?t.slice(0,-2):t}%`}function Ag({statusData:e,styles:t}){let{t:n}=qo(),r=t||W,[i,a]=(0,y.useState)(null),o=(0,y.useRef)(null),s=e.totalSuccess+e.totalFailure>0,c=s?e.successRate>=90?r.statusRateHigh:e.successRate>=50?r.statusRateMedium:r.statusRateLow:``;(0,y.useEffect)(()=>{if(i===null)return;let e=e=>{o.current&&!o.current.contains(e.target)&&a(null)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[i]);let l=(0,y.useCallback)((e,t)=>{e.pointerType===`mouse`&&a(t)},[]),u=(0,y.useCallback)(e=>{e.pointerType===`mouse`&&a(null)},[]),d=(0,y.useCallback)((e,t)=>{e.pointerType===`touch`&&(e.preventDefault(),a(e=>e===t?null:t))},[]),f=(e,t)=>e<=2?r.statusTooltipLeft:e>=t-3?r.statusTooltipRight:``,p=(t,i)=>{let a=t.success+t.failure,o=f(i,e.blockDetails.length),s=`${Og(t.startTime)} – ${Og(t.endTime)}`;return(0,B.jsxs)(`div`,{className:`${r.statusTooltip} ${o}`,children:[(0,B.jsx)(`span`,{className:r.tooltipTime,children:s}),a>0?(0,B.jsxs)(`span`,{className:r.tooltipStats,children:[(0,B.jsxs)(`span`,{className:r.tooltipSuccess,children:[n(`status_bar.success_short`),` `,t.success]}),(0,B.jsxs)(`span`,{className:r.tooltipFailure,children:[n(`status_bar.failure_short`),` `,t.failure]}),(0,B.jsxs)(`span`,{className:r.tooltipRate,children:[`(`,(t.rate*100).toFixed(1),`%)`]})]}):(0,B.jsx)(`span`,{className:r.tooltipStats,children:n(`status_bar.no_requests`)})]})};return(0,B.jsxs)(`div`,{className:r.statusBar,children:[(0,B.jsx)(`div`,{className:r.statusBlocks,ref:o,children:e.blockDetails.map((e,t)=>{let n=e.rate===-1,a=n?void 0:{backgroundColor:Dg(e.rate)},o=i===t;return(0,B.jsxs)(`div`,{className:`${r.statusBlockWrapper} ${o?r.statusBlockActive:``}`,onPointerEnter:e=>l(e,t),onPointerLeave:u,onPointerDown:e=>d(e,t),children:[(0,B.jsx)(`div`,{className:`${r.statusBlock} ${n?r.statusBlockIdle:``}`,style:a}),o&&p(e,t)]},t)})}),(0,B.jsx)(`span`,{className:`${r.statusRate} ${c}`,children:s?kg(e.successRate):`--`})]})}function jg({configs:e,usageByProvider:t,loading:n,disableControls:r,isSwitching:i,onAdd:a,onEdit:o,onDelete:s,onToggle:c}){let{t:l}=qo(),u=r||n||i,d=r||n||i,f=(0,y.useMemo)(()=>{let n=new Map;return e.forEach((e,r)=>{if(!e.apiKey)return;let i=Fp(e,r);n.set(i,pp(kp(t,`claude`,e.apiKey,e.baseUrl)))}),n},[e,t]);return(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:Cg,alt:``,className:W.cardTitleIcon}),l(`ai_providers.claude_title`)]}),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:u,children:l(`ai_providers.claude_add_button`)}),children:(0,B.jsx)(Tg,{items:e,loading:n,keyField:(e,t)=>Fp(e,t),emptyTitle:l(`ai_providers.claude_empty_title`),emptyDescription:l(`ai_providers.claude_empty_desc`),onEdit:(e,t)=>o(t),onDelete:(e,t)=>s(t),actionsDisabled:u,getRowDisabled:e=>mp(e.excludedModels),renderExtraActions:(e,t)=>(0,B.jsx)(Sg,{label:l(`ai_providers.config_toggle_label`),checked:!mp(e.excludedModels),disabled:d,onChange:e=>void c(t,e)}),renderContent:(e,n)=>{let r=Ap(t,`claude`,e.apiKey,e.baseUrl),i=Object.entries(e.headers||{}),a=mp(e.excludedModels),o=e.excludedModels??[],s=f.get(Fp(e,n))||pp([]);return(0,B.jsxs)(y.Fragment,{children:[(0,B.jsx)(`div`,{className:`item-title`,children:l(`ai_providers.claude_item_title`)}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.api_key`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:_g(e.apiKey)})]}),e.priority!==void 0&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.priority`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.priority})]}),e.prefix&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.prefix`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.prefix})]}),e.baseUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.base_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.baseUrl})]}),e.proxyUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.proxy_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.proxyUrl})]}),e.cloak&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`ai_providers.claude_cloak_mode_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:(()=>{let t=(e.cloak?.mode??``).trim().toLowerCase();return l(`ai_providers.claude_cloak_mode_${t===`always`||t===`never`?t:`auto`}`)})()})]}),e.cloak?.strictMode?(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`ai_providers.claude_cloak_strict_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:l(`common.yes`)})]}):null,e.cloak?.sensitiveWords?.length?(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`ai_providers.claude_cloak_sensitive_words_count`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.cloak.sensitiveWords.length})]}):null,i.length>0&&(0,B.jsx)(`div`,{className:W.headerBadgeList,children:i.map(([e,t])=>(0,B.jsxs)(`span`,{className:W.headerBadge,children:[(0,B.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),a&&(0,B.jsx)(`div`,{className:`status-badge warning`,style:{marginTop:8,marginBottom:0},children:l(`ai_providers.config_disabled_badge`)}),e.models?.length?(0,B.jsxs)(`div`,{className:W.modelTagList,children:[(0,B.jsxs)(`span`,{className:W.modelCountLabel,children:[l(`ai_providers.claude_models_count`),`: `,e.models.length]}),e.models.map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.name}),e.alias&&e.alias!==e.name&&(0,B.jsx)(`span`,{className:W.modelAlias,children:e.alias})]},e.name))]}):null,o.length?(0,B.jsxs)(`div`,{className:W.excludedModelsSection,children:[(0,B.jsx)(`div`,{className:W.excludedModelsLabel,children:l(`ai_providers.excluded_models_count`,{count:o.length})}),(0,B.jsx)(`div`,{className:W.modelTagList,children:o.map(e=>(0,B.jsx)(`span`,{className:`${W.modelTag} ${W.excludedModelTag}`,children:(0,B.jsx)(`span`,{className:W.modelName,children:e})},e))})]}):null,(0,B.jsxs)(`div`,{className:W.cardStats,children:[(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statSuccess}`,children:[l(`stats.success`),`: `,r.success]}),(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statFailure}`,children:[l(`stats.failure`),`: `,r.failure]})]}),(0,B.jsx)(Ag,{statusData:s})]})}})})})}var Mg=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eCodex%3c/title%3e%3cpath%20d='M19.503%200H4.496A4.496%204.496%200%20000%204.496v15.007A4.496%204.496%200%20004.496%2024h15.007A4.496%204.496%200%200024%2019.503V4.496A4.496%204.496%200%200019.503%200z'%20fill='%23fff'%3e%3c/path%3e%3cpath%20d='M9.064%203.344a4.578%204.578%200%20012.285-.312c1%20.115%201.891.54%202.673%201.275.01.01.024.017.037.021a.09.09%200%2000.043%200%204.55%204.55%200%20013.046.275l.047.022.116.057a4.581%204.581%200%20012.188%202.399c.209.51.313%201.041.315%201.595a4.24%204.24%200%2001-.134%201.223.123.123%200%2000.03.115c.594.607.988%201.33%201.183%202.17.289%201.425-.007%202.71-.887%203.854l-.136.166a4.548%204.548%200%2001-2.201%201.388.123.123%200%2000-.081.076c-.191.551-.383%201.023-.74%201.494-.9%201.187-2.222%201.846-3.711%201.838-1.187-.006-2.239-.44-3.157-1.302a.107.107%200%2000-.105-.024c-.388.125-.78.143-1.204.138a4.441%204.441%200%2001-1.945-.466%204.544%204.544%200%2001-1.61-1.335c-.152-.202-.303-.392-.414-.617a5.81%205.81%200%2001-.37-.961%204.582%204.582%200%2001-.014-2.298.124.124%200%2000.006-.056.085.085%200%2000-.027-.048%204.467%204.467%200%2001-1.034-1.651%203.896%203.896%200%2001-.251-1.192%205.189%205.189%200%2001.141-1.6c.337-1.112.982-1.985%201.933-2.618.212-.141.413-.251.601-.33.215-.089.43-.164.646-.227a.098.098%200%2000.065-.066%204.51%204.51%200%2001.829-1.615%204.535%204.535%200%20011.837-1.388zm3.482%2010.565a.637.637%200%20000%201.272h3.636a.637.637%200%20100-1.272h-3.636zM8.462%209.23a.637.637%200%2000-1.106.631l1.272%202.224-1.266%202.136a.636.636%200%20101.095.649l1.454-2.455a.636.636%200%2000.005-.64L8.462%209.23z'%20fill='url(%23lobe-icons-codex-fill)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-codex-fill'%20x1='12'%20x2='12'%20y1='3'%20y2='21'%3e%3cstop%20stop-color='%23B1A7FF'%3e%3c/stop%3e%3cstop%20offset='.5'%20stop-color='%237A9DFF'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%233941FF'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`;function Ng({configs:e,usageByProvider:t,loading:n,disableControls:r,isSwitching:i,onAdd:a,onEdit:o,onDelete:s,onToggle:c}){let{t:l}=qo(),u=r||n||i,d=r||n||i,f=(0,y.useMemo)(()=>{let n=new Map;return e.forEach((e,r)=>{if(!e.apiKey)return;let i=Fp(e,r);n.set(i,pp(kp(t,`codex`,e.apiKey,e.baseUrl)))}),n},[e,t]);return(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:Mg,alt:``,className:W.cardTitleIcon}),l(`ai_providers.codex_title`)]}),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:u,children:l(`ai_providers.codex_add_button`)}),children:(0,B.jsx)(Tg,{items:e,loading:n,keyField:(e,t)=>Fp(e,t),emptyTitle:l(`ai_providers.codex_empty_title`),emptyDescription:l(`ai_providers.codex_empty_desc`),onEdit:(e,t)=>o(t),onDelete:(e,t)=>s(t),actionsDisabled:u,getRowDisabled:e=>mp(e.excludedModels),renderExtraActions:(e,t)=>(0,B.jsx)(Sg,{label:l(`ai_providers.config_toggle_label`),checked:!mp(e.excludedModels),disabled:d,onChange:e=>void c(t,e)}),renderContent:(e,n)=>{let r=Ap(t,`codex`,e.apiKey,e.baseUrl),i=Object.entries(e.headers||{}),a=mp(e.excludedModels),o=e.excludedModels??[],s=f.get(Fp(e,n))||pp([]);return(0,B.jsxs)(y.Fragment,{children:[(0,B.jsx)(`div`,{className:`item-title`,children:l(`ai_providers.codex_item_title`)}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.api_key`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:_g(e.apiKey)})]}),e.priority!==void 0&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.priority`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.priority})]}),e.prefix&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.prefix`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.prefix})]}),e.baseUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.base_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.baseUrl})]}),e.proxyUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.proxy_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.proxyUrl})]}),e.websockets!==void 0&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`ai_providers.codex_websockets_label`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.websockets?l(`common.yes`):l(`common.no`)})]}),i.length>0&&(0,B.jsx)(`div`,{className:W.headerBadgeList,children:i.map(([e,t])=>(0,B.jsxs)(`span`,{className:W.headerBadge,children:[(0,B.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),a&&(0,B.jsx)(`div`,{className:`status-badge warning`,style:{marginTop:8,marginBottom:0},children:l(`ai_providers.config_disabled_badge`)}),e.models?.length?(0,B.jsxs)(`div`,{className:W.modelTagList,children:[(0,B.jsxs)(`span`,{className:W.modelCountLabel,children:[l(`ai_providers.codex_models_count`),`: `,e.models.length]}),e.models.map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.name}),e.alias&&e.alias!==e.name&&(0,B.jsx)(`span`,{className:W.modelAlias,children:e.alias})]},e.name))]}):null,o.length?(0,B.jsxs)(`div`,{className:W.excludedModelsSection,children:[(0,B.jsx)(`div`,{className:W.excludedModelsLabel,children:l(`ai_providers.excluded_models_count`,{count:o.length})}),(0,B.jsx)(`div`,{className:W.modelTagList,children:o.map(e=>(0,B.jsx)(`span`,{className:`${W.modelTag} ${W.excludedModelTag}`,children:(0,B.jsx)(`span`,{className:W.modelName,children:e})},e))})]}):null,(0,B.jsxs)(`div`,{className:W.cardStats,children:[(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statSuccess}`,children:[l(`stats.success`),`: `,r.success]}),(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statFailure}`,children:[l(`stats.failure`),`: `,r.failure]})]}),(0,B.jsx)(Ag,{statusData:s})]})}})})})}var Pg=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-0)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-1)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-2)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-0'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-1'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-2'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`;function Fg({configs:e,usageByProvider:t,loading:n,disableControls:r,isSwitching:i,onAdd:a,onEdit:o,onDelete:s,onToggle:c}){let{t:l}=qo(),u=r||n||i,d=r||n||i,f=(0,y.useMemo)(()=>{let n=new Map;return e.forEach((e,r)=>{if(!e.apiKey)return;let i=Fp(e,r);n.set(i,pp(kp(t,`gemini`,e.apiKey,e.baseUrl)))}),n},[e,t]);return(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:Pg,alt:``,className:W.cardTitleIcon}),l(`ai_providers.gemini_title`)]}),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:u,children:l(`ai_providers.gemini_add_button`)}),children:(0,B.jsx)(Tg,{items:e,loading:n,keyField:(e,t)=>Fp(e,t),emptyTitle:l(`ai_providers.gemini_empty_title`),emptyDescription:l(`ai_providers.gemini_empty_desc`),onEdit:(e,t)=>o(t),onDelete:(e,t)=>s(t),actionsDisabled:u,getRowDisabled:e=>mp(e.excludedModels),renderExtraActions:(e,t)=>(0,B.jsx)(Sg,{label:l(`ai_providers.config_toggle_label`),checked:!mp(e.excludedModels),disabled:d,onChange:e=>void c(t,e)}),renderContent:(e,n)=>{let r=Ap(t,`gemini`,e.apiKey,e.baseUrl),i=Object.entries(e.headers||{}),a=mp(e.excludedModels),o=e.excludedModels??[],s=f.get(Fp(e,n))||pp([]);return(0,B.jsxs)(y.Fragment,{children:[(0,B.jsxs)(`div`,{className:`item-title`,children:[l(`ai_providers.gemini_item_title`),` #`,n+1]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.api_key`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:_g(e.apiKey)})]}),e.priority!==void 0&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.priority`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.priority})]}),e.prefix&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.prefix`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.prefix})]}),e.baseUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.base_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.baseUrl})]}),e.proxyUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.proxy_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.proxyUrl})]}),i.length>0&&(0,B.jsx)(`div`,{className:W.headerBadgeList,children:i.map(([e,t])=>(0,B.jsxs)(`span`,{className:W.headerBadge,children:[(0,B.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),a&&(0,B.jsx)(`div`,{className:`status-badge warning`,style:{marginTop:8,marginBottom:0},children:l(`ai_providers.config_disabled_badge`)}),e.models?.length?(0,B.jsxs)(`div`,{className:W.modelTagList,children:[(0,B.jsxs)(`span`,{className:W.modelCountLabel,children:[l(`ai_providers.gemini_models_count`),`: `,e.models.length]}),e.models.map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.name}),e.alias&&e.alias!==e.name&&(0,B.jsx)(`span`,{className:W.modelAlias,children:e.alias})]},e.name))]}):null,o.length?(0,B.jsxs)(`div`,{className:W.excludedModelsSection,children:[(0,B.jsx)(`div`,{className:W.excludedModelsLabel,children:l(`ai_providers.excluded_models_count`,{count:o.length})}),(0,B.jsx)(`div`,{className:W.modelTagList,children:o.map(e=>(0,B.jsx)(`span`,{className:`${W.modelTag} ${W.excludedModelTag}`,children:(0,B.jsx)(`span`,{className:W.modelName,children:e})},e))})]}):null,(0,B.jsxs)(`div`,{className:W.cardStats,children:[(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statSuccess}`,children:[l(`stats.success`),`: `,r.success]}),(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statFailure}`,children:[l(`stats.failure`),`: `,r.failure]})]}),(0,B.jsx)(Ag,{statusData:s})]})}})})})}var Ig=`data:image/svg+xml,%3csvg%20fill='%23000000'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e`,Lg=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e`,Rg=pp([]),zg=(e,t)=>{let n=e.authIndex==null?``:String(e.authIndex).trim();return n?`auth-index-${n}`:`api-key-entry-${t}`};function Bg({configs:e,usageByProvider:t,loading:n,disableControls:r,isSwitching:i,resolvedTheme:a,onAdd:o,onEdit:s,onDelete:c,onToggle:l}){let{t:u}=qo(),d=$m()?.isAnimating??!1,f=r||n||i,p=r||n||i,[m,h]=(0,y.useState)(`priority`),[g,_]=(0,y.useState)(`asc`),[v,b]=(0,y.useState)(new Set),[x,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)({openAbove:!1,maxHeight:300}),[E,D]=(0,y.useState)({left:0,top:0,width:0,visible:!1}),O=(0,y.useRef)(null),k=(0,y.useRef)(null),A=(0,y.useRef)(null),j=(0,y.useRef)(null),M=!d&&E.visible;(0,y.useEffect)(()=>{if(d)return;let e=()=>{let e=O.current,t=k.current;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=getComputedStyle(document.documentElement),a=Number.parseFloat(i.getPropertyValue(`--header-height`))||64,o=r.height,s=!(window.innerWidth<=768)&&r.top<=a&&n.bottom>a+o;D(e=>{let t={left:n.left,top:a,width:n.width,visible:s};return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.visible===t.visible?e:t})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[e.length,x,d,v,g,m]),(0,y.useEffect)(()=>{if(!x)return;let e=e=>{let t=e.target,n=A.current?.contains(t),r=j.current?.contains(t);!n&&!r&&C(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[x]),(0,y.useEffect)(()=>{if(!x)return;let e=()=>{let e=E.visible?j.current:A.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.max(0,window.innerHeight-t.bottom-12-4),r=Math.max(0,t.top-12-4),i=n<300&&r>n,a=Math.max(120,Math.min(300,i?r:n));T(e=>e.openAbove===i&&e.maxHeight===a?e:{openAbove:i,maxHeight:a})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[E.visible,x]);let N=(0,y.useMemo)(()=>{let t=new Set;return e.forEach(e=>{e.models?.forEach(e=>{e.name&&t.add(e.name)})}),Array.from(t).sort()},[e]),P=(0,y.useMemo)(()=>Array.from(v).sort(),[v]),ee=P.length>0,F=ee?u(`ai_providers.model_discovery_selected_count`,{count:P.length}):u(`ai_providers.model_search_placeholder`),I=ee?P.join(`, `):u(`ai_providers.model_search_placeholder`),L=(0,y.useMemo)(()=>{let n=new Map;return e.forEach((e,r)=>{let i=Ip(e,r);n.set(i,Pp(e,t))}),n},[e,t]),R=(0,y.useMemo)(()=>[{value:`priority`,label:u(`ai_providers.sort_by_priority`)},{value:`name`,label:u(`ai_providers.sort_by_name`)},{value:`recent-success`,label:u(`ai_providers.sort_by_recent_success`)}],[u]),te=(0,y.useMemo)(()=>{let n=[...e.map((e,t)=>({config:e,originalIndex:t})).filter(({config:e})=>v.size===0?!0:e.models?.some(e=>v.has(e.name)))],r=g===`desc`?-1:1,i=m===`recent-success`?new Map(n.map(({config:e})=>[e,Np(e,t)])):null;switch(m){case`name`:n.sort((e,t)=>r*e.config.name.localeCompare(t.config.name));break;case`priority`:n.sort((e,t)=>{let n=(e.config.priority??2**53-1)-(t.config.priority??2**53-1);return n===0?r*e.config.name.localeCompare(t.config.name):r*n});break;case`recent-success`:n.sort((e,t)=>{let n=(i?.get(e.config)?.success??0)-(i?.get(t.config)?.success??0);return n===0?r*e.config.name.localeCompare(t.config.name):r*n});break;default:break}return n},[e,m,g,t,v]),ne=e=>{b(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},re=()=>{b(new Set)},z=e=>{h(e)},ie=()=>{_(e=>e===`asc`?`desc`:`asc`)},ae=()=>C(e=>!e),oe=()=>(0,B.jsxs)(`div`,{className:W.sortControls,children:[(0,B.jsx)(Us,{value:m,options:R,onChange:e=>z(e),className:W.sortSelect,disabled:f,ariaLabel:u(`ai_providers.sort_by_priority`),fullWidth:!1}),(0,B.jsxs)(V,{variant:`secondary`,size:`sm`,onClick:ie,className:W.sortDirectionButton,disabled:f,title:u(g===`asc`?`ai_providers.sort_ascending`:`ai_providers.sort_descending`),"aria-label":u(g===`asc`?`ai_providers.sort_ascending`:`ai_providers.sort_descending`),children:[(0,B.jsx)(`span`,{className:W.sortDirectionIcon,children:g===`asc`?(0,B.jsx)(ds,{size:14}):(0,B.jsx)(fs,{size:14})}),(0,B.jsx)(`span`,{children:u(g===`asc`?`ai_providers.sort_asc_short`:`ai_providers.sort_desc_short`)})]})]}),se=(e=!1)=>{let t=e===M,n=w.openAbove?`${W.modelDropdownList} ${W.modelDropdownListAbove}`:W.modelDropdownList;return(0,B.jsxs)(`div`,{className:W.cardHeaderActions,children:[(0,B.jsxs)(`div`,{className:W.modelMultiSelectWrapper,ref:e?j:A,children:[(0,B.jsxs)(`div`,{className:[W.modelFilterControl,ee?W.modelFilterControlActive:``,f?W.modelFilterControlDisabled:``].filter(Boolean).join(` `),children:[(0,B.jsxs)(`button`,{type:`button`,className:W.modelFilterTrigger,onClick:ae,disabled:f,title:I,"aria-label":I,"aria-haspopup":`true`,"aria-expanded":t&&x,children:[(0,B.jsx)(`span`,{className:W.modelFilterIcon,"aria-hidden":`true`,children:(0,B.jsx)($o,{size:14})}),(0,B.jsx)(`span`,{className:W.modelFilterText,children:F}),ee&&(0,B.jsx)(`span`,{className:W.modelFilterCount,children:P.length}),(0,B.jsx)(`span`,{className:W.modelFilterChevron,"aria-hidden":`true`,children:(0,B.jsx)(fs,{size:14})})]}),ee&&(0,B.jsx)(`button`,{type:`button`,className:W.modelFilterInlineClear,onClick:re,disabled:f,"aria-label":u(`ai_providers.model_search_clear`),title:u(`ai_providers.model_search_clear`),children:(0,B.jsx)(hs,{size:14})})]}),t&&x&&(0,B.jsxs)(`div`,{className:n,style:{maxHeight:`${w.maxHeight}px`},children:[(0,B.jsxs)(`div`,{className:W.modelDropdownHeader,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>b(new Set(N)),className:W.modelDropdownSelectAll,disabled:f||N.length===0,children:u(`ai_providers.model_select_all`)}),ee&&(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:re,className:W.modelDropdownClear,disabled:f,children:u(`ai_providers.model_search_clear`)})]}),(0,B.jsx)(`div`,{className:W.modelDropdownItems,role:`group`,"aria-label":u(`ai_providers.model_search_placeholder`),children:N.length===0?(0,B.jsx)(`div`,{className:W.modelDropdownEmpty,children:u(`ai_providers.model_filter_empty`)}):N.map(e=>(0,B.jsx)(Gs,{checked:v.has(e),onChange:()=>ne(e),disabled:f,className:W.modelDropdownItem,labelClassName:W.modelDropdownItemLabel,label:(0,B.jsx)(`span`,{title:e,children:e})},`top-option-${e}`))})]})]}),oe(),(0,B.jsx)(V,{size:`sm`,onClick:o,disabled:f,className:W.openaiAddButton,children:u(`ai_providers.openai_add_button`)})]})},ce=()=>(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:a===`dark`?Lg:Ig,alt:``,className:W.cardTitleIcon}),u(`ai_providers.openai_title`)]});return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{ref:O,children:(0,B.jsx)(hg,{title:ce(),extra:(0,B.jsx)(`div`,{ref:k,className:M?W.openaiToolbarAnchorHidden:void 0,children:se(!1)}),children:n&&te.length===0?(0,B.jsx)(`div`,{className:`hint`,children:u(`common.loading`)}):e.length>0&&te.length===0?(0,B.jsx)(wg,{title:u(`ai_providers.openai_filtered_empty_title`),description:u(`ai_providers.openai_filtered_empty_desc`),action:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:re,disabled:f,children:u(`ai_providers.model_search_clear`)})}):te.length===0?(0,B.jsx)(wg,{title:u(`ai_providers.openai_empty_title`),description:u(`ai_providers.openai_empty_desc`)}):(0,B.jsx)(`div`,{className:W.openaiProviderList,children:te.map(({config:e,originalIndex:n})=>{let r=Mp(e,t),i=Object.entries(e.headers||{}),a=e.apiKeyEntries||[],o=L.get(Ip(e,n))||Rg,d=e.disabled===!0;return(0,B.jsxs)(`div`,{className:W.openaiProviderCard,style:f?{opacity:.6}:void 0,children:[(0,B.jsxs)(`div`,{className:W.openaiProviderMeta,children:[(0,B.jsx)(`div`,{className:W.openaiProviderTitle,children:e.name}),e.priority!==void 0&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[u(`common.priority`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.priority})]}),e.prefix&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[u(`common.prefix`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.prefix})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[u(`common.base_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.baseUrl})]}),d&&(0,B.jsx)(`div`,{className:`status-badge warning`,style:{marginTop:8,marginBottom:0},children:u(`ai_providers.config_disabled_badge`)}),i.length>0&&(0,B.jsx)(`div`,{className:W.headerBadgeList,children:i.map(([e,t])=>(0,B.jsxs)(`span`,{className:W.headerBadge,children:[(0,B.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),a.length>0&&(0,B.jsxs)(`div`,{className:W.apiKeyEntriesSection,children:[(0,B.jsxs)(`div`,{className:W.apiKeyEntriesLabel,children:[u(`ai_providers.openai_keys_count`),`: `,a.length]}),(0,B.jsx)(`div`,{className:W.apiKeyEntryList,children:a.map((n,r)=>{let i=Ap(t,e.name,n.apiKey,e.baseUrl);return(0,B.jsxs)(`div`,{className:W.apiKeyEntryCard,children:[(0,B.jsx)(`span`,{className:W.apiKeyEntryIndex,children:r+1}),(0,B.jsx)(`span`,{className:W.apiKeyEntryKey,children:_g(n.apiKey)}),n.proxyUrl&&(0,B.jsx)(`span`,{className:W.apiKeyEntryProxy,children:n.proxyUrl}),(0,B.jsxs)(`div`,{className:W.apiKeyEntryStats,children:[(0,B.jsxs)(`span`,{className:`${W.apiKeyEntryStat} ${W.apiKeyEntryStatSuccess}`,children:[(0,B.jsx)(gs,{size:12}),` `,i.success]}),(0,B.jsxs)(`span`,{className:`${W.apiKeyEntryStat} ${W.apiKeyEntryStatFailure}`,children:[(0,B.jsx)(hs,{size:12}),` `,i.failure]})]})]},zg(n,r))})})]}),(0,B.jsxs)(`div`,{className:W.fieldRow,style:{marginTop:`8px`},children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[u(`ai_providers.openai_models_count`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.models?.length||0})]}),e.models?.length?(0,B.jsx)(`div`,{className:W.modelTagList,children:e.models.map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.name}),e.alias&&e.alias!==e.name&&(0,B.jsx)(`span`,{className:W.modelAlias,children:e.alias})]},e.name))}):null,e.testModel&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[u(`ai_providers.openai_test_model`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.testModel})]}),(0,B.jsxs)(`div`,{className:W.cardStats,children:[(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statSuccess}`,children:[u(`stats.success`),`: `,r.success]}),(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statFailure}`,children:[u(`stats.failure`),`: `,r.failure]})]}),(0,B.jsx)(Ag,{statusData:o})]}),(0,B.jsxs)(`div`,{className:W.openaiProviderActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>s(n),disabled:f,children:u(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>c(n),disabled:f,children:u(`common.delete`)}),(0,B.jsx)(Sg,{label:u(`ai_providers.config_toggle_label`),checked:!d,disabled:p,onChange:e=>void l(n,e)})]})]},`openai-provider-${n}`)})})})}),typeof document<`u`&&M?(0,S.createPortal)((0,B.jsx)(`div`,{className:`card ${W.openaiFloatingToolbar}`,style:{left:`${E.left}px`,top:`${E.top}px`,width:`${E.width}px`},children:(0,B.jsxs)(`div`,{className:`card-header`,children:[(0,B.jsx)(`div`,{className:`title`,children:ce()}),se(!0)]})}),document.body):null]})}var Vg=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24px'%20height='24px'%3e%3cpath%20d='M20,13.89A.77.77,0,0,0,19,13.73l-7,5.14v.22a.72.72,0,1,1,0,1.43v0a.74.74,0,0,0,.45-.15l7.41-5.47A.76.76,0,0,0,20,13.89Z'%20style='fill:%23669df6'/%3e%3cpath%20d='M12,20.52a.72.72,0,0,1,0-1.43h0v-.22L5,13.73a.76.76,0,0,0-1,.16.74.74,0,0,0,.16,1l7.41,5.47a.73.73,0,0,0,.44.15v0Z'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M12,18.34a1.47,1.47,0,1,0,1.47,1.47A1.47,1.47,0,0,0,12,18.34Zm0,2.18a.72.72,0,1,1,.72-.71A.71.71,0,0,1,12,20.52Z'%20style='fill:%234285f4'/%3e%3cpath%20d='M6,6.11a.76.76,0,0,1-.75-.75V3.48a.76.76,0,1,1,1.51,0V5.36A.76.76,0,0,1,6,6.11Z'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='12'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='9.79'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='7.57'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M18,8.31a.76.76,0,0,1-.75-.76V5.67a.75.75,0,1,1,1.5,0V7.55A.75.75,0,0,1,18,8.31Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='12.01'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='9.76'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='3.48'%20r='0.76'%20style='fill:%234285f4'/%3e%3cpath%20d='M12,15a.76.76,0,0,1-.75-.75V12.34a.76.76,0,0,1,1.51,0v1.89A.76.76,0,0,1,12,15Z'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='16.45'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='10.14'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='7.92'%20r='0.76'%20style='fill:%23669df6'/%3e%3cpath%20d='M15,10.54a.76.76,0,0,1-.75-.75V7.91a.76.76,0,1,1,1.51,0V9.79A.76.76,0,0,1,15,10.54Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='5.69'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='14.19'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='11.97'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='8.99'%20cy='14.19'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='7.92'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='5.69'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M9,12.73A.76.76,0,0,1,8.24,12V10.1a.75.75,0,1,1,1.5,0V12A.75.75,0,0,1,9,12.73Z'%20style='fill:%23aecbfa'/%3e%3c/svg%3e`;function Hg({configs:e,usageByProvider:t,loading:n,disableControls:r,isSwitching:i,onAdd:a,onEdit:o,onDelete:s,onToggle:c}){let{t:l}=qo(),u=r||n||i,d=r||n||i,f=(0,y.useMemo)(()=>{let n=new Map;return e.forEach((e,r)=>{if(!e.apiKey)return;let i=Fp(e,r);n.set(i,pp(kp(t,`vertex`,e.apiKey,e.baseUrl)))}),n},[e,t]);return(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:W.cardTitle,children:[(0,B.jsx)(`img`,{src:Vg,alt:``,className:W.cardTitleIcon}),l(`ai_providers.vertex_title`)]}),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:u,children:l(`ai_providers.vertex_add_button`)}),children:(0,B.jsx)(Tg,{items:e,loading:n,keyField:(e,t)=>Fp(e,t),emptyTitle:l(`ai_providers.vertex_empty_title`),emptyDescription:l(`ai_providers.vertex_empty_desc`),onEdit:(e,t)=>o(t),onDelete:(e,t)=>s(t),actionsDisabled:u,getRowDisabled:e=>mp(e.excludedModels),renderExtraActions:(e,t)=>(0,B.jsx)(Sg,{label:l(`ai_providers.config_toggle_label`),checked:!mp(e.excludedModels),disabled:d,onChange:e=>void c(t,e)}),renderContent:(e,n)=>{let r=Ap(t,`vertex`,e.apiKey,e.baseUrl),i=Object.entries(e.headers||{}),a=mp(e.excludedModels),o=e.excludedModels??[],s=f.get(Fp(e,n))||pp([]);return(0,B.jsxs)(y.Fragment,{children:[(0,B.jsxs)(`div`,{className:`item-title`,children:[l(`ai_providers.vertex_item_title`),` #`,n+1]}),(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.api_key`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:_g(e.apiKey)})]}),e.prefix&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.prefix`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.prefix})]}),e.baseUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.base_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.baseUrl})]}),e.proxyUrl&&(0,B.jsxs)(`div`,{className:W.fieldRow,children:[(0,B.jsxs)(`span`,{className:W.fieldLabel,children:[l(`common.proxy_url`),`:`]}),(0,B.jsx)(`span`,{className:W.fieldValue,children:e.proxyUrl})]}),i.length>0&&(0,B.jsx)(`div`,{className:W.headerBadgeList,children:i.map(([e,t])=>(0,B.jsxs)(`span`,{className:W.headerBadge,children:[(0,B.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),a&&(0,B.jsx)(`div`,{className:`status-badge warning`,style:{marginTop:8,marginBottom:0},children:l(`ai_providers.config_disabled_badge`)}),e.models?.length?(0,B.jsxs)(`div`,{className:W.modelTagList,children:[(0,B.jsxs)(`span`,{className:W.modelCountLabel,children:[l(`ai_providers.vertex_models_count`),`: `,e.models.length]}),e.models.map(e=>(0,B.jsxs)(`span`,{className:W.modelTag,children:[(0,B.jsx)(`span`,{className:W.modelName,children:e.name}),e.alias&&(0,B.jsx)(`span`,{className:W.modelAlias,children:e.alias})]},`${e.name}-${e.alias||`default`}`))]}):null,o.length?(0,B.jsxs)(`div`,{className:W.excludedModelsSection,children:[(0,B.jsx)(`div`,{className:W.excludedModelsLabel,children:l(`ai_providers.excluded_models_count`,{count:o.length})}),(0,B.jsx)(`div`,{className:W.modelTagList,children:o.map(e=>(0,B.jsx)(`span`,{className:`${W.modelTag} ${W.excludedModelTag}`,children:(0,B.jsx)(`span`,{className:W.modelName,children:e})},e))})]}):null,(0,B.jsxs)(`div`,{className:W.cardStats,children:[(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statSuccess}`,children:[l(`stats.success`),`: `,r.success]}),(0,B.jsxs)(`span`,{className:`${W.statPill} ${W.statFailure}`,children:[l(`stats.failure`),`: `,r.failure]})]}),(0,B.jsx)(Ag,{statusData:s})]})}})})})}var Ug={navContainer:`ProviderNav-module__navContainer___Ym-Eg`,navList:`ProviderNav-module__navList___7nsum`,indicator:`ProviderNav-module__indicator___Ta8ib`,indicatorVisible:`ProviderNav-module__indicatorVisible___U7LEL`,indicatorNoTransition:`ProviderNav-module__indicatorNoTransition___dtZdn`,navItem:`ProviderNav-module__navItem___LRkPI`,active:`ProviderNav-module__active___Jo0X6`,icon:`ProviderNav-module__icon___X-NJQ`},Wg=[{id:`gemini`,label:`Gemini`,getIcon:()=>Pg},{id:`codex`,label:`Codex`,getIcon:()=>Mg},{id:`claude`,label:`Claude`,getIcon:()=>Cg},{id:`vertex`,label:`Vertex`,getIcon:()=>Vg},{id:`ampcode`,label:`Ampcode`,getIcon:()=>gg},{id:`openai`,label:`OpenAI`,getIcon:e=>e===`dark`?Lg:Ig}],Gg=24;function Kg(){let e=Yn(),t=$m(),n=t?t.status===`current`:!0,r=wc(e=>e.resolvedTheme),[i,a]=(0,y.useState)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useRef)({gemini:null,codex:null,claude:null,vertex:null,ampcode:null,openai:null}),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(!1),m=(0,y.useRef)(!1),h=e.pathname.length>1&&e.pathname.endsWith(`/`)?e.pathname.slice(0,-1):e.pathname,g=n&&h===`/ai-providers`,_=(0,y.useCallback)(()=>{let e=document.querySelector(`.main-header`);if(e)return e.getBoundingClientRect().height;let t=getComputedStyle(document.documentElement).getPropertyValue(`--header-height`),n=Number.parseFloat(t);return Number.isFinite(n)?n:0},[]),v=(0,y.useCallback)(()=>{if(o.current&&document.contains(o.current))return o.current;let e=document.querySelector(`.content`);return o.current=e,e},[]),b=(0,y.useCallback)(()=>window.matchMedia(`(max-width: 768px)`).matches?window:v()??window,[v]),x=(0,y.useCallback)(()=>{let e=b();if(!e)return;let t=e instanceof HTMLElement,n=t?0:_(),r=(t?e.getBoundingClientRect().top:0)+n+Gg+1,i=null;for(let e of Wg){let t=document.getElementById(`provider-${e.id}`);if(t){if(t.getBoundingClientRect().top<=r){i=e.id;continue}if(i)break}}i||(i=Wg.find(e=>document.getElementById(`provider-${e.id}`))?.id??null),a(i)},[_,b]);(0,y.useEffect)(()=>{if(!g)return;let e=v();window.addEventListener(`scroll`,x,{passive:!0}),e?.addEventListener(`scroll`,x,{passive:!0}),window.addEventListener(`resize`,x);let t=requestAnimationFrame(x);return()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,x),window.removeEventListener(`resize`,x),e?.removeEventListener(`scroll`,x)}},[v,x,g]);let C=(0,y.useCallback)(e=>{if(!e){d(null);return}let t=l.current[e];t&&(d({x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}),m.current||(m.current=!0,requestAnimationFrame(()=>p(!0))))},[]);(0,y.useLayoutEffect)(()=>{if(!g)return;let e=requestAnimationFrame(()=>C(i));return()=>cancelAnimationFrame(e)},[i,g,C]),(0,y.useLayoutEffect)(()=>{if(!g)return;let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().height;document.documentElement.style.setProperty(`--provider-nav-height`,`${t}px`)};t(),window.addEventListener(`resize`,t);let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),document.documentElement.style.removeProperty(`--provider-nav-height`)}},[g]);let w=e=>{let t=b(),n=document.getElementById(`provider-${e}`);if(!n||!t)return;if(a(e),C(e),!(t instanceof HTMLElement)){let e=_(),t=n.getBoundingClientRect().top+window.scrollY,r=Math.max(0,t-e-Gg);window.scrollTo({top:r,behavior:`smooth`});return}let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),o=t.scrollTop+(i.top-r.top)-Gg;t.scrollTo({top:o,behavior:`smooth`})};(0,y.useEffect)(()=>{if(!g)return;let e=()=>C(i);return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[i,g,C]);let T=(0,B.jsx)(`div`,{className:Ug.navContainer,ref:c,children:(0,B.jsxs)(`div`,{className:Ug.navList,ref:s,children:[(0,B.jsx)(`div`,{className:[Ug.indicator,u?Ug.indicatorVisible:``,f?``:Ug.indicatorNoTransition].filter(Boolean).join(` `),style:u?{transform:`translate3d(${u.x}px, ${u.y}px, 0)`,width:u.width,height:u.height}:void 0}),Wg.map(e=>{let t=i===e.id;return(0,B.jsx)(`button`,{className:`${Ug.navItem} ${t?Ug.active:``}`,ref:t=>{l.current[e.id]=t},onClick:()=>w(e.id),title:e.label,type:`button`,"aria-label":e.label,"aria-pressed":t,children:(0,B.jsx)(`img`,{src:e.getIcon(r),alt:e.label,className:Ug.icon})},e.id)})]})});return typeof document>`u`||!g?null:(0,S.createPortal)(T,document.body)}function qg(e,t){let n=(0,y.useRef)(null);(0,y.useEffect)(()=>{n.current=e},[e]),(0,y.useEffect)(()=>{if(t===null)return;let e=setInterval(()=>{n.current?.()},t);return()=>clearInterval(e)},[t])}var Jg=24e4,Yg=new Map,Xg=Yg,Zg=0,Qg=null,$g=e=>String(e??``).trim().toLowerCase(),e_=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return Yg;let t=new Map;return Object.entries(e).forEach(([e,n])=>{let r=$g(e);if(!r||!n||typeof n!=`object`||Array.isArray(n))return;let i=new Map;Object.entries(n).forEach(([e,t])=>{i.set(e,up(t))}),t.set(r,i)}),t},t_=async()=>(Qg||(Qg=gh.getUsage().then(e=>{let t=e_(e);return Xg=t,Zg=Date.now(),t}).finally(()=>{Qg=null})),Qg);function n_(e={}){let t=e.enabled??!0,[n,r]=(0,y.useState)(Xg),[i,a]=(0,y.useState)(!1),o=(0,y.useCallback)(async(e={})=>{if(!t)return Yg;let n=Zg>0&&Date.now()-Zg0&&r(Xg),Xg}finally{a(!1)}},[t]),s=(0,y.useCallback)(async()=>o({force:!0}),[o]);return(0,y.useEffect)(()=>{r(t?Xg:Yg)},[t]),qg(()=>{s().catch(()=>{})},t?Jg:null),{usageByProvider:t?n:Yg,isLoading:t?i:!1,loadRecentRequests:o,refreshRecentRequests:s}}var r_=null,i_=async()=>{r_&&await r_()},a_=(e,t=!0)=>{let n=(0,y.useRef)(null);(0,y.useEffect)(()=>{let r=n.current;if(n.current=e??null,!t||!e){r&&r_===r&&(r_=null);return}return r_=e,()=>{r_===e&&(r_=null)}},[t,e])};function o_(){let{t:e}=qo(),t=Qn(),{showNotification:n,showConfirmation:r}=hc(),i=wc(e=>e.resolvedTheme),a=ep(e=>e.connectionStatus),o=Of(e=>e.config),s=Of(e=>e.fetchConfig),c=Of(e=>e.updateConfigValue),l=Of(e=>e.clearCache),u=Of(e=>e.isCacheValid),d=(0,y.useRef)(!1),[f,p]=(0,y.useState)(()=>!u()),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(()=>o?.geminiApiKeys||[]),[v,b]=(0,y.useState)(()=>o?.codexApiKeys||[]),[x,S]=(0,y.useState)(()=>o?.claudeApiKeys||[]),[C,w]=(0,y.useState)(()=>o?.vertexApiKeys||[]),[T,E]=(0,y.useState)(()=>o?.openaiCompatibility||[]),[D,O]=(0,y.useState)(null),k=a!==`connected`,A=!!D,j=$m(),M=j?j.status===`current`:!0,{usageByProvider:N,loadRecentRequests:P,refreshRecentRequests:ee}=n_({enabled:M}),F=e=>e instanceof Error?e.message:typeof e==`string`?e:``,I=(0,y.useCallback)(async()=>{u()||p(!0),h(``);try{let[e,t,n,r]=await Promise.allSettled([s(),Mh.getVertexConfigs(),bh.getAmpcode(),Mh.getOpenAIProviders()]);if(e.status!==`fulfilled`)throw e.reason;let i=e.value;_(i?.geminiApiKeys||[]),b(i?.codexApiKeys||[]),S(i?.claudeApiKeys||[]),w(i?.vertexApiKeys||[]),E(i?.openaiCompatibility||[]),t.status===`fulfilled`&&(w(t.value||[]),c(`vertex-api-key`,t.value||[]),l(`vertex-api-key`)),n.status===`fulfilled`&&(c(`ampcode`,n.value),l(`ampcode`)),r.status===`fulfilled`&&(E(r.value||[]),c(`openai-compatibility`,r.value||[]),l(`openai-compatibility`))}catch(t){h(F(t)||e(`notification.refresh_failed`))}finally{p(!1)}},[l,s,u,e,c]);(0,y.useEffect)(()=>{d.current||(d.current=!0,I())},[I]),(0,y.useEffect)(()=>{M&&P().catch(()=>{})},[M,P]),(0,y.useEffect)(()=>{o?.geminiApiKeys&&_(o.geminiApiKeys),o?.codexApiKeys&&b(o.codexApiKeys),o?.claudeApiKeys&&S(o.claudeApiKeys),o?.vertexApiKeys&&w(o.vertexApiKeys),o?.openaiCompatibility&&E(o.openaiCompatibility)},[o?.geminiApiKeys,o?.codexApiKeys,o?.claudeApiKeys,o?.vertexApiKeys,o?.openaiCompatibility]),a_((0,y.useCallback)(async()=>{await ee()},[ee]),M);let L=(0,y.useCallback)(e=>{t(e,{state:{fromAiProviders:!0}})},[t]),R=async t=>{let i=g[t];i&&r({title:e(`ai_providers.gemini_delete_title`,{defaultValue:`Delete Gemini Key`}),message:e(`ai_providers.gemini_delete_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{await Mh.deleteGeminiKey(i.apiKey,i.baseUrl);let r=g.filter((e,n)=>n!==t);_(r),c(`gemini-api-key`,r),l(`gemini-api-key`),n(e(`notification.gemini_key_deleted`),`success`)}catch(t){let r=F(t);n(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})},te=async(t,r,i)=>{if(t===`gemini`){let a=g[r];if(!a)return;O(`${t}:${a.apiKey}`);let o=g,s=i?_p(a.excludedModels):gp(a.excludedModels),u={...a,excludedModels:s},d=o.map((e,t)=>t===r?u:e);_(d),c(`gemini-api-key`,d),l(`gemini-api-key`);try{await Mh.saveGeminiKeys(d),n(e(i?`notification.config_enabled`:`notification.config_disabled`),`success`)}catch(t){let r=F(t);_(o),c(`gemini-api-key`,o),l(`gemini-api-key`),n(`${e(`notification.update_failed`)}: ${r}`,`error`)}finally{O(null)}return}let a=t===`codex`?v:t===`claude`?x:C,o=a[r];if(!o)return;O(`${t}:${o.apiKey}`);let s=a,u=i?_p(o.excludedModels):gp(o.excludedModels),d={...o,excludedModels:u},f=s.map((e,t)=>t===r?d:e);t===`codex`?(b(f),c(`codex-api-key`,f),l(`codex-api-key`)):t===`claude`?(S(f),c(`claude-api-key`,f),l(`claude-api-key`)):(w(f),c(`vertex-api-key`,f),l(`vertex-api-key`));try{t===`codex`?await Mh.saveCodexConfigs(f):t===`claude`?await Mh.saveClaudeConfigs(f):await Mh.saveVertexConfigs(f),n(e(i?`notification.config_enabled`:`notification.config_disabled`),`success`)}catch(r){let i=F(r);t===`codex`?(b(s),c(`codex-api-key`,s),l(`codex-api-key`)):t===`claude`?(S(s),c(`claude-api-key`,s),l(`claude-api-key`)):(w(s),c(`vertex-api-key`,s),l(`vertex-api-key`)),n(`${e(`notification.update_failed`)}: ${i}`,`error`)}finally{O(null)}},ne=async(t,r)=>{let i=T[t];if(!i)return;O(`openai:${i.name}:${t}`);let a=T,o={...i,disabled:!r},s=a.map((e,n)=>n===t?o:e);E(s),c(`openai-compatibility`,s),l(`openai-compatibility`);try{await Mh.updateOpenAIProviderDisabled(t,!r),n(e(r?`notification.config_enabled`:`notification.config_disabled`),`success`)}catch(t){let r=F(t);E(a),c(`openai-compatibility`,a),l(`openai-compatibility`),n(`${e(`notification.update_failed`)}: ${r}`,`error`)}finally{O(null)}},re=async(t,i)=>{let a=(t===`codex`?v:x)[i];a&&r({title:e(`ai_providers.${t}_delete_title`,{defaultValue:`Delete ${t===`codex`?`Codex`:`Claude`} Config`}),message:e(`ai_providers.${t}_delete_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{if(t===`codex`){await Mh.deleteCodexConfig(a.apiKey,a.baseUrl);let t=v.filter((e,t)=>t!==i);b(t),c(`codex-api-key`,t),l(`codex-api-key`),n(e(`notification.codex_config_deleted`),`success`)}else{await Mh.deleteClaudeConfig(a.apiKey,a.baseUrl);let t=x.filter((e,t)=>t!==i);S(t),c(`claude-api-key`,t),l(`claude-api-key`),n(e(`notification.claude_config_deleted`),`success`)}}catch(t){let r=F(t);n(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})};return(0,B.jsxs)(`div`,{className:W.container,children:[(0,B.jsx)(`h1`,{className:W.pageTitle,children:e(`ai_providers.title`)}),(0,B.jsxs)(`div`,{className:W.content,children:[m&&(0,B.jsx)(`div`,{className:`error-box`,children:m}),(0,B.jsx)(`div`,{id:`provider-gemini`,children:(0,B.jsx)(Fg,{configs:g,usageByProvider:N,loading:f,disableControls:k,isSwitching:A,onAdd:()=>L(`/ai-providers/gemini/new`),onEdit:e=>L(`/ai-providers/gemini/${e}`),onDelete:R,onToggle:(e,t)=>void te(`gemini`,e,t)})}),(0,B.jsx)(`div`,{id:`provider-codex`,children:(0,B.jsx)(Ng,{configs:v,usageByProvider:N,loading:f,disableControls:k,isSwitching:A,onAdd:()=>L(`/ai-providers/codex/new`),onEdit:e=>L(`/ai-providers/codex/${e}`),onDelete:e=>void re(`codex`,e),onToggle:(e,t)=>void te(`codex`,e,t)})}),(0,B.jsx)(`div`,{id:`provider-claude`,children:(0,B.jsx)(jg,{configs:x,usageByProvider:N,loading:f,disableControls:k,isSwitching:A,onAdd:()=>L(`/ai-providers/claude/new`),onEdit:e=>L(`/ai-providers/claude/${e}`),onDelete:e=>void re(`claude`,e),onToggle:(e,t)=>void te(`claude`,e,t)})}),(0,B.jsx)(`div`,{id:`provider-vertex`,children:(0,B.jsx)(Hg,{configs:C,usageByProvider:N,loading:f,disableControls:k,isSwitching:A,onAdd:()=>L(`/ai-providers/vertex/new`),onEdit:e=>L(`/ai-providers/vertex/${e}`),onDelete:async t=>{let i=C[t];i&&r({title:e(`ai_providers.vertex_delete_title`,{defaultValue:`Delete Vertex Config`}),message:e(`ai_providers.vertex_delete_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{await Mh.deleteVertexConfig(i.apiKey,i.baseUrl);let r=C.filter((e,n)=>n!==t);w(r),c(`vertex-api-key`,r),l(`vertex-api-key`),n(e(`notification.vertex_config_deleted`),`success`)}catch(t){let r=F(t);n(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})},onToggle:(e,t)=>void te(`vertex`,e,t)})}),(0,B.jsx)(`div`,{id:`provider-ampcode`,children:(0,B.jsx)(bg,{config:o?.ampcode,loading:f,disableControls:k,isSwitching:A,onEdit:()=>L(`/ai-providers/ampcode`)})}),(0,B.jsx)(`div`,{id:`provider-openai`,children:(0,B.jsx)(Bg,{configs:T,usageByProvider:N,loading:f,disableControls:k,isSwitching:A,resolvedTheme:i,onAdd:()=>L(`/ai-providers/openai/new`),onEdit:e=>L(`/ai-providers/openai/${e}`),onDelete:async t=>{let i=T[t];i&&r({title:e(`ai_providers.openai_delete_title`,{defaultValue:`Delete OpenAI Provider`}),message:e(`ai_providers.openai_delete_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{await Mh.deleteOpenAIProvider(i.name);let r=T.filter((e,n)=>n!==t);E(r),c(`openai-compatibility`,r),l(`openai-compatibility`),n(e(`notification.openai_provider_deleted`),`success`)}catch(t){let r=F(t);n(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})},onToggle:(e,t)=>void ne(e,t)})})]}),(0,B.jsx)(Kg,{})]})}function s_({entries:e,onChange:t,addLabel:n,disabled:r=!1,namePlaceholder:i=`model-name`,aliasPlaceholder:a=`alias (optional)`,hideAddButton:o=!1,onAdd:s,className:c=``,rowClassName:l=``,inputClassName:u=``,removeButtonClassName:d=``,removeButtonTitle:f=`Remove`,removeButtonAriaLabel:p=`Remove`}){let m=e.length?e:[{name:``,alias:``}],h=[`header-input-list`,c].filter(Boolean).join(` `),g=[`input`,u].filter(Boolean).join(` `),_=[`header-input-row`,l].filter(Boolean).join(` `),v=(e,n,r)=>{t(m.map((t,i)=>i===e?{...t,[n]:r}:t))},b=()=>{s?s():t([...m,{name:``,alias:``}])},x=e=>{let n=m.filter((t,n)=>n!==e);t(n.length?n:[{name:``,alias:``}])};return(0,B.jsxs)(`div`,{className:h,children:[m.map((e,t)=>(0,B.jsx)(y.Fragment,{children:(0,B.jsxs)(`div`,{className:_,children:[(0,B.jsx)(`input`,{className:g,placeholder:i,value:e.name,onChange:e=>v(t,`name`,e.target.value),disabled:r}),(0,B.jsx)(`span`,{className:`header-separator`,children:`→`}),(0,B.jsx)(`input`,{className:g,placeholder:a,value:e.alias,onChange:e=>v(t,`alias`,e.target.value),disabled:r}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>x(t),disabled:r||m.length<=1,className:d,title:f,"aria-label":p,children:(0,B.jsx)(hs,{size:14})})]})},t)),!o&&n&&(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:b,disabled:r,className:`align-start`,children:n})]})}var c_=28,l_=90,u_=1.2;function d_({enabled:e=!0,edgeSize:t=c_,threshold:n=l_,onBack:r}){let i=(0,y.useRef)(null),a=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!e)return;let o=i.current;if(!o)return;let s=()=>{a.current=null},c=e=>{let t=a.current;if(!t?.active||e.pointerId!==t.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;Math.abs(r)>Math.abs(n)*u_&&s()},l=e=>{let t=a.current;if(!t?.active||e.pointerId!==t.pointerId)return;let i=e.clientX-t.startX,o=e.clientY-t.startY,c=Math.abs(i)>Math.abs(o)*u_;s(),i>=n&&c&&r()},u=e=>{let t=a.current;t?.active&&e.pointerId===t.pointerId&&s()},d=e=>{e.pointerType===`touch`&&e.isPrimary&&(e.clientX>t||(a.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,active:!0}))};return o.addEventListener(`pointerdown`,d,{passive:!0}),window.addEventListener(`pointermove`,c,{passive:!0}),window.addEventListener(`pointerup`,l,{passive:!0}),window.addEventListener(`pointercancel`,u,{passive:!0}),()=>{o.removeEventListener(`pointerdown`,d),window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,l),window.removeEventListener(`pointercancel`,u)}},[t,e,r,n]),i}function f_(e){let{enabled:t=!0,shouldBlock:n,dialog:r}=e,{showConfirmation:i}=hc(),a=(0,y.useRef)(``),o=(0,y.useRef)(0),s=(0,y.useRef)(``),c=Yn(),l=(0,y.useCallback)(()=>{o.current=Date.now()+2e3,s.current=``},[]),u=wr((0,y.useCallback)(e=>{if(!t)return!1;let r=Date.now();if(o.current>r){let t=`${e.nextLocation.pathname}${e.nextLocation.search}${e.nextLocation.hash}`;if(s.current||(s.current=t),s.current===t)return!1}else o.current!==0&&(o.current=0,s.current=``);return typeof n==`function`?n(e):n},[t,n]));(0,y.useEffect)(()=>{o.current!==0&&(o.current=0,s.current=``)},[c.key]);let d=(0,y.useMemo)(()=>u.state!==`blocked`||!u.location?``:`${u.location.pathname}${u.location.search}${u.location.hash}`,[u.location,u.state]);return(0,y.useEffect)(()=>{if(u.state!==`blocked`){a.current=``;return}!d||a.current===d||(a.current=d,i({title:r.title,message:r.message,confirmText:r.confirmText,cancelText:r.cancelText,variant:r.variant??`danger`,onConfirm:()=>u.proceed(),onCancel:()=>u.reset()}))},[d,u,r,i]),{allowNextNavigation:l}}function p_({size:e=20,className:t=``}){return(0,B.jsx)(`div`,{className:`loading-spinner${t?` ${t}`:``}`,style:{width:e,height:e,borderWidth:e/7},role:`status`,"aria-live":`polite`})}var m_={container:`SecondaryScreenShell-module__container___9DAwq`,topBar:`SecondaryScreenShell-module__topBar___vHzq4`,topBarTitle:`SecondaryScreenShell-module__topBarTitle___Q8LCy`,backButton:`SecondaryScreenShell-module__backButton___d6Zgy`,backIcon:`SecondaryScreenShell-module__backIcon___R8Iyn`,backText:`SecondaryScreenShell-module__backText___CODk7`,rightSlot:`SecondaryScreenShell-module__rightSlot___ZvWJR`,loadingState:`SecondaryScreenShell-module__loadingState___4Jbsa`,content:`SecondaryScreenShell-module__content___nVk3R`,contentWithFloatingAction:`SecondaryScreenShell-module__contentWithFloatingAction___4gXgb`,floatingActionContainer:`SecondaryScreenShell-module__floatingActionContainer___sSKk-`,floatingActionSurface:`SecondaryScreenShell-module__floatingActionSurface___Wfab-`},h_=(0,y.forwardRef)(function({title:e,onBack:t,backLabel:n=`Back`,backAriaLabel:r,rightAction:i,hideTopBarBackButton:a=!1,hideTopBarRightAction:o=!1,floatingAction:s,isLoading:c=!1,loadingLabel:l=`Loading...`,className:u=``,contentClassName:d=``,children:f},p){let m=[m_.container,u].filter(Boolean).join(` `),h=[m_.content,s?m_.contentWithFloatingAction:``,d].filter(Boolean).join(` `),g=typeof e==`string`?e:void 0,_=r??n,v=$m(),b=v?v.isCurrentLayer:!0,x=!!s&&b,C=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{if(!x)return;let e=C.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().height;document.documentElement.style.setProperty(`--secondary-shell-floating-action-height`,`${t}px`)};t(),window.addEventListener(`resize`,t);let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),document.documentElement.style.removeProperty(`--secondary-shell-floating-action-height`)}},[x]),(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:m,ref:p,children:[(0,B.jsxs)(`div`,{className:m_.topBar,children:[t&&!a?(0,B.jsxs)(V,{variant:`ghost`,size:`sm`,onClick:t,className:m_.backButton,"aria-label":_,children:[(0,B.jsx)(`span`,{className:m_.backIcon,children:(0,B.jsx)(ps,{size:18})}),(0,B.jsx)(`span`,{className:m_.backText,children:n})]}):(0,B.jsx)(`div`,{}),(0,B.jsx)(`div`,{className:m_.topBarTitle,title:g,children:e}),(0,B.jsx)(`div`,{className:m_.rightSlot,children:o?null:i})]}),c?(0,B.jsxs)(`div`,{className:m_.loadingState,children:[(0,B.jsx)(p_,{size:16}),(0,B.jsx)(`span`,{children:l})]}):(0,B.jsx)(`div`,{className:h,children:f})]}),x&&typeof document<`u`?(0,S.createPortal)((0,B.jsx)(`div`,{className:m_.floatingActionContainer,children:(0,B.jsx)(`div`,{className:m_.floatingActionSurface,ref:C,children:s})}),document.body):null]})});function g_(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;ne instanceof Error?e.message:typeof e==`string`?e:``,x_=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return!n&&!r||e.push({from:n,to:r}),e},[]),S_=e=>({upstreamUrl:String(e.upstreamUrl??``).trim(),upstreamApiKey:String(e.upstreamApiKey??``).trim(),forceModelMappings:!!e.forceModelMappings,upstreamApiKeys:Vp(e.upstreamApiKeyEntries),modelMappings:x_(e.mappingEntries)}),C_=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;ne.connectionStatus)!==`connected`,o=Of(e=>e.config),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)(()=>Hp(null)),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(``),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(()=>S_(Hp(null))),E=(0,y.useRef)(!1),D=(0,y.useRef)(!1),O=(0,y.useMemo)(()=>e(`ai_providers.ampcode_modal_title`),[e]),k=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),A=d_({onBack:k});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&k()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[k]),(0,y.useEffect)(()=>(D.current=!0,()=>{D.current=!1}),[]),(0,y.useEffect)(()=>{if(E.current)return;E.current=!0,f(!0),m(!1),g(!1),v(!1),x(``);let t=Hp(Of.getState().config?.ampcode??null);u(t),T(S_(t)),(async()=>{try{let e=await bh.getAmpcode();if(!D.current)return;m(!0),s(`ampcode`,e),c(`ampcode`);let t=Hp(e);u(t),T(S_(t))}catch(t){if(!D.current)return;x(b_(t)||e(`notification.refresh_failed`))}finally{D.current&&f(!1)}})()},[c,e,s]);let j=(0,y.useMemo)(()=>Vp(l.upstreamApiKeyEntries),[l.upstreamApiKeyEntries]),M=(0,y.useMemo)(()=>x_(l.mappingEntries),[l.mappingEntries]),N=(0,y.useMemo)(()=>!C_(w.upstreamApiKeys,j),[w.upstreamApiKeys,j]),P=(0,y.useMemo)(()=>!w_(w.modelMappings,M),[w.modelMappings,M]),ee=w.upstreamUrl!==l.upstreamUrl.trim()||w.upstreamApiKey!==l.upstreamApiKey.trim()||w.forceModelMappings!==!!l.forceModelMappings||N||P,{allowNextNavigation:F}=f_({enabled:!d&&!S,shouldBlock:({currentLocation:e,nextLocation:t})=>ee&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),I=async()=>{i({title:e(`ai_providers.ampcode_clear_upstream_api_key_title`,{defaultValue:`Clear Upstream API Key`}),message:e(`ai_providers.ampcode_clear_upstream_api_key_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{C(!0),x(``);try{await bh.clearUpstreamApiKey();let t={...o?.ampcode??{}};delete t.upstreamApiKey,s(`ampcode`,t),c(`ampcode`),r(e(`notification.ampcode_upstream_api_key_cleared`),`success`)}catch(t){let n=b_(t);x(n),r(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{C(!1)}}})},L=async()=>{C(!0),x(``);try{let t=l.upstreamUrl.trim(),n=l.upstreamApiKey.trim(),i=Vp(l.upstreamApiKeyEntries),a=zp(l.mappingEntries);t?await bh.updateUpstreamUrl(t):await bh.clearUpstreamUrl(),await bh.updateForceModelMappings(l.forceModelMappings),(p||_)&&(i.length?await bh.saveUpstreamApiKeys(i):await bh.deleteUpstreamApiKeys([])),(p||h)&&(a.length?await bh.saveModelMappings(a):await bh.clearModelMappings()),n&&await bh.updateUpstreamApiKey(n);let u={...o?.ampcode??{},forceModelMappings:l.forceModelMappings};t?u.upstreamUrl=t:delete u.upstreamUrl,n&&(u.upstreamApiKey=n),(p||_)&&(i.length?u.upstreamApiKeys=i:delete u.upstreamApiKeys),(p||h)&&(a.length?u.modelMappings=a:delete u.modelMappings),s(`ampcode`,u),c(`ampcode`),r(e(`notification.ampcode_updated`),`success`),F(),T(S_(l)),k()}catch(t){let n=b_(t);x(n),r(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{C(!1)}},R=async()=>{if(!p&&(h||_)){i({title:e(`ai_providers.ampcode_lists_overwrite_title`),message:e(`ai_providers.ampcode_lists_overwrite_confirm`),variant:`secondary`,confirmText:e(`common.confirm`),onConfirm:L});return}await L()},te=!a&&!S&&!d;return(0,B.jsx)(h_,{ref:A,contentClassName:y_.content,title:O,onBack:k,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:k,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>void R(),loading:S,disabled:!te,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[b&&(0,B.jsx)(`div`,{className:`error-box`,children:b}),(0,B.jsx)(Xo,{label:e(`ai_providers.ampcode_upstream_url_label`),placeholder:e(`ai_providers.ampcode_upstream_url_placeholder`),value:l.upstreamUrl,onChange:e=>u(t=>({...t,upstreamUrl:e.target.value})),disabled:d||S||a,hint:e(`ai_providers.ampcode_upstream_url_hint`)}),(0,B.jsx)(Xo,{label:e(`ai_providers.ampcode_upstream_api_key_label`),placeholder:e(`ai_providers.ampcode_upstream_api_key_placeholder`),type:`password`,value:l.upstreamApiKey,onChange:e=>u(t=>({...t,upstreamApiKey:e.target.value})),disabled:d||S||a,hint:e(`ai_providers.ampcode_upstream_api_key_hint`)}),(0,B.jsxs)(`div`,{className:y_.upstreamApiKeyRow,children:[(0,B.jsx)(`div`,{className:y_.upstreamApiKeyHint,children:e(`ai_providers.ampcode_upstream_api_key_current`,{key:o?.ampcode?.upstreamApiKey?_g(o.ampcode.upstreamApiKey):e(`common.not_set`)})}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>void I(),disabled:d||S||a||!o?.ampcode?.upstreamApiKey,children:e(`ai_providers.ampcode_clear_upstream_api_key`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsxs)(`div`,{className:y_.ampcodeUpstreamMappingsHeader,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.ampcode_upstream_api_keys_label`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{v(!0),u(e=>({...e,upstreamApiKeyEntries:[...e.upstreamApiKeyEntries,{upstreamApiKey:``,clientApiKeysText:``}]}))},disabled:d||S||a,children:e(`ai_providers.ampcode_upstream_api_keys_add_btn`)})]}),(0,B.jsx)(`div`,{className:y_.ampcodeUpstreamMappingsList,children:(l.upstreamApiKeyEntries.length?l.upstreamApiKeyEntries:[{upstreamApiKey:``,clientApiKeysText:``}]).map((t,n,r)=>(0,B.jsxs)(`div`,{className:y_.ampcodeUpstreamMappingCard,children:[(0,B.jsxs)(`div`,{className:y_.ampcodeUpstreamMappingCardTop,children:[(0,B.jsx)(`span`,{className:y_.ampcodeUpstreamMappingTitle,children:e(`ai_providers.ampcode_upstream_api_keys_item_title`,{index:n+1})}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>{v(!0),u(e=>{let t=e.upstreamApiKeyEntries.filter((e,t)=>t!==n);return{...e,upstreamApiKeyEntries:t.length?t:[{upstreamApiKey:``,clientApiKeysText:``}]}})},disabled:d||S||a||r.length<=1,children:e(`common.delete`)})]}),(0,B.jsx)(`input`,{className:`input`,placeholder:e(`ai_providers.ampcode_upstream_api_keys_upstream_placeholder`),"aria-label":e(`ai_providers.ampcode_upstream_api_keys_upstream_placeholder`),value:t.upstreamApiKey,onChange:e=>{let t=e.target.value;v(!0),u(e=>({...e,upstreamApiKeyEntries:e.upstreamApiKeyEntries.map((e,r)=>r===n?{...e,upstreamApiKey:t}:e)}))},disabled:d||S||a}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.ampcode_upstream_api_keys_clients_placeholder`),"aria-label":e(`ai_providers.ampcode_upstream_api_keys_clients_placeholder`),value:t.clientApiKeysText,onChange:e=>{let t=e.target.value;v(!0),u(e=>({...e,upstreamApiKeyEntries:e.upstreamApiKeyEntries.map((e,r)=>r===n?{...e,clientApiKeysText:t}:e)}))},rows:3,disabled:d||S||a})]},n))}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.ampcode_upstream_api_keys_hint`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(Sg,{label:e(`ai_providers.ampcode_force_model_mappings_label`),checked:l.forceModelMappings,onChange:e=>u(t=>({...t,forceModelMappings:e})),disabled:d||S||a}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.ampcode_force_model_mappings_hint`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.ampcode_model_mappings_label`)}),(0,B.jsx)(s_,{entries:l.mappingEntries,onChange:e=>{g(!0),u(t=>({...t,mappingEntries:e}))},addLabel:e(`ai_providers.ampcode_model_mappings_add_btn`),namePlaceholder:e(`ai_providers.ampcode_model_mappings_from_placeholder`),aliasPlaceholder:e(`ai_providers.ampcode_model_mappings_to_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:d||S||a}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.ampcode_model_mappings_hint`)})]})]})})}var E_=e=>!Array.isArray(e)||e.length===0?[{name:``,alias:``}]:e.map(e=>({name:e.name||``,alias:e.alias||``})),D_=e=>e.filter(e=>e.name.trim()).map(e=>{let t={name:e.name.trim()},n=e.alias.trim();return n&&n!==t.name&&(t.alias=n),t}),O_=()=>({apiKey:``,priority:void 0,prefix:``,baseUrl:``,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),k_=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},A_=e=>e instanceof Error?e.message:typeof e==`string`?e:``,j_=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&(r=r||n),!n&&!r||e.push({name:n,alias:r}),e},[]),M_=e=>{if(!e)return null;let t=String(e.mode??``).trim().toLowerCase()||`auto`,n=!!e.strictMode,r=Array.isArray(e.sensitiveWords)?e.sensitiveWords.map(e=>String(e??``).trim()).filter(Boolean):[];return{mode:t,strictMode:n,sensitiveWords:r.length?r:null}},N_=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:j_(e.modelEntries),excludedModels:yp(e.excludedText??``),cloak:M_(e.cloak)}),P_=(e,t)=>e===t?!0:!e||!t||e.mode!==t.mode||e.strictMode!==t.strictMode?!1:e.sensitiveWords===null||t.sensitiveWords===null?e.sensitiveWords===t.sensitiveWords:g_(e.sensitiveWords,t.sensitiveWords);function F_(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=rr(),a=typeof i.index==`string`,o=(0,y.useMemo)(()=>k_(i.index),[i.index]),s=a&&o===null,c=ep(e=>e.connectionStatus)!==`connected`,l=Of(e=>e.config),u=Of(e=>e.fetchConfig),d=Of(e=>e.isCacheValid),f=Of(e=>e.updateConfigValue),p=Of(e=>e.clearCache),[m,h]=(0,y.useState)(()=>l?.claudeApiKeys??[]),[g,_]=(0,y.useState)(()=>!d(`claude-api-key`)),[v,b]=(0,y.useState)(!1),x=(0,y.useMemo)(()=>s?`claude:invalid:${i.index??`unknown`}`:o===null?`claude:new`:`claude:${o}`,[o,s,i.index]),S=Xp(e=>e.drafts[x]),C=Xp(e=>e.acquireDraft),w=Xp(e=>e.releaseDraft),T=Xp(e=>e.initDraft),E=Xp(e=>e.setDraftBaseline),D=Xp(e=>e.setDraftForm),O=Xp(e=>e.setDraftTestModel),k=Xp(e=>e.setDraftTestStatus),A=Xp(e=>e.setDraftTestMessage),j=S?.form??O_(),M=S?.testModel??``,N=S?.testStatus??`idle`,P=S?.testMessage??``,ee=(0,y.useCallback)(e=>{D(x,e)},[x,D]),F=(0,y.useCallback)(e=>{O(x,e)},[x,O]),I=(0,y.useCallback)(e=>{k(x,e)},[x,k]),L=(0,y.useCallback)(e=>{A(x,e)},[x,A]),R=(0,y.useMemo)(()=>{if(o!==null)return m[o]},[m,o]),te=o!==null&&!R,ne=(0,y.useMemo)(()=>j.modelEntries.map(e=>e.name.trim()).filter(Boolean),[j.modelEntries]);(0,y.useEffect)(()=>(C(x),()=>w(x)),[C,x,w]);let re=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]);(0,y.useEffect)(()=>{let t=!1;return d(`claude-api-key`)||_(!0),u(`claude-api-key`).then(e=>{t||h(Array.isArray(e)?e:[])}).catch(n=>{if(t)return;let i=A_(n)||e(`notification.refresh_failed`);r(`${e(`notification.load_failed`)}: ${i}`,`error`)}).finally(()=>{t||_(!1)}),()=>{t=!0}},[u,d,r,e]),(0,y.useEffect)(()=>{if(g||S?.initialized)return;if(R){let e={...R,headers:af(R.headers),modelEntries:E_(R.models),excludedText:bp(R.excludedModels)},t=e.modelEntries.map(e=>e.name.trim()).filter(Boolean);T(x,{baseline:N_(e),form:e,testModel:t[0]||``,testStatus:`idle`,testMessage:``});return}let e=O_();T(x,{baseline:N_(e),form:e,testModel:``,testStatus:`idle`,testMessage:``})},[S?.initialized,x,T,R,g]);let z=!S?.initialized,ie=S?.baseline??null,ae=(0,y.useMemo)(()=>of(j.headers),[j.headers]),oe=(0,y.useMemo)(()=>j_(j.modelEntries),[j.modelEntries]),se=(0,y.useMemo)(()=>yp(j.excludedText??``),[j.excludedText]),ce=(0,y.useMemo)(()=>M_(j.cloak),[j.cloak]),le=(0,y.useMemo)(()=>j.priority!==void 0&&Number.isFinite(j.priority)?Math.trunc(j.priority):null,[j.priority]),ue=(0,y.useMemo)(()=>ie?!__(ie.headers,ae):!1,[ie,ae]),de=(0,y.useMemo)(()=>ie?!v_(ie.models,oe):!1,[ie,oe]),fe=(0,y.useMemo)(()=>ie?!g_(ie.excludedModels,se):!1,[ie,se]),pe=(0,y.useMemo)(()=>ie?!P_(ie.cloak,ce):!1,[ie,ce]),me=!!S?.initialized&&ie!==null&&(ie.apiKey!==j.apiKey.trim()||ie.priority!==le||ie.prefix!==String(j.prefix??``).trim()||ie.baseUrl!==String(j.baseUrl??``).trim()||ie.proxyUrl!==String(j.proxyUrl??``).trim()||ue||de||fe||pe),he=(0,y.useMemo)(()=>a?`/ai-providers/claude/${i.index??``}`:`/ai-providers/claude/new`,[a,i.index]),{allowNextNavigation:ge}=f_({enabled:!z&&!v&&!s&&!te,shouldBlock:({nextLocation:e})=>{let t=e.pathname,n=t===he||t.startsWith(`${he}/`);return me&&!n},dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}});(0,y.useEffect)(()=>{if(!z){if(ne.length===0){M&&(F(``),I(`idle`),L(``));return}(!M||!ne.includes(M))&&(F(ne[0]),I(`idle`),L(``))}},[ne,z,L,F,I,M]);let _e=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;ee(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=e.name.trim();t&&r.set(t,{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=e.name.trim();!t||r.has(t)||(r.set(t,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&r(e(`ai_providers.claude_models_fetch_added`,{count:n}),`success`)},[ee,r,e]);return(0,B.jsx)(Vr,{context:{hasIndexParam:a,editIndex:o,invalidIndexParam:s,invalidIndex:te,disableControls:c,loading:z,saving:v,form:j,setForm:ee,testModel:M,setTestModel:F,testStatus:N,setTestStatus:I,testMessage:P,setTestMessage:L,availableModels:ne,handleBack:re,handleSave:(0,y.useCallback)(async()=>{if(!c&&!v&&!z&&!s&&!te){b(!0);try{let t={apiKey:j.apiKey.trim(),priority:j.priority===void 0?void 0:Math.trunc(j.priority),prefix:j.prefix?.trim()||void 0,baseUrl:(j.baseUrl??``).trim()||void 0,proxyUrl:j.proxyUrl?.trim()||void 0,headers:nf(j.headers),models:j.modelEntries.map(e=>{let t=e.name.trim();return t?{name:t,alias:e.alias.trim()||t}:null}).filter(Boolean),excludedModels:yp(j.excludedText),cloak:j.cloak},n=o===null?[...m,t]:m.map((e,n)=>n===o?t:e);await Mh.saveClaudeConfigs(n),h(n),f(`claude-api-key`,n),p(`claude-api-key`),r(e(o===null?`notification.claude_config_added`:`notification.claude_config_updated`),`success`),ge(),E(x,N_(j)),re()}catch(t){r(`${e(`notification.update_failed`)}: ${A_(t)}`,`error`)}finally{b(!1)}}},[ge,p,m,x,c,o,j,re,te,s,z,E,v,r,e,f]),mergeDiscoveredModels:_e}})}function I_({entries:e,onChange:t,addLabel:n,disabled:r=!1,keyPlaceholder:i=`X-Custom-Header`,valuePlaceholder:a=`value`,removeButtonTitle:o=`Remove`,removeButtonAriaLabel:s=`Remove`}){let c=e.length?e:[{key:``,value:``}],l=(e,n,r)=>{t(c.map((t,i)=>i===e?{...t,[n]:r}:t))},u=()=>{t([...c,{key:``,value:``}])},d=e=>{let n=c.filter((t,n)=>n!==e);t(n.length?n:[{key:``,value:``}])};return(0,B.jsxs)(`div`,{className:`header-input-list`,children:[c.map((e,t)=>(0,B.jsx)(y.Fragment,{children:(0,B.jsxs)(`div`,{className:`header-input-row`,children:[(0,B.jsx)(`input`,{className:`input`,placeholder:i,value:e.key,onChange:e=>l(t,`key`,e.target.value),disabled:r}),(0,B.jsx)(`span`,{className:`header-separator`,children:`:`}),(0,B.jsx)(`input`,{className:`input`,placeholder:a,value:e.value,onChange:e=>l(t,`value`,e.target.value),disabled:r}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>d(t),disabled:r||c.length<=1,title:o,"aria-label":s,children:(0,B.jsx)(hs,{size:14})})]})},t)),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:u,disabled:r,className:`align-start`,children:n})]})}var L_=3e4,R_=`2023-06-01`,z_=e=>e instanceof Error?e.message:typeof e==`string`?e:``,B_=(e,t)=>{let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)},V_=e=>{let t=Object.entries(e).find(([e])=>e.toLowerCase()===`authorization`);if(!t)return``;let n=String(t[1]??``).trim();return n&&n.match(/^Bearer\s+(.+)$/i)?.[1]?.trim()||``};function H_(){let{t:e}=qo(),t=Qn(),{showNotification:n}=hc(),{hasIndexParam:r,invalidIndexParam:i,invalidIndex:a,disableControls:o,loading:s,saving:c,form:l,setForm:u,testModel:d,setTestModel:f,testStatus:p,setTestStatus:m,testMessage:h,setTestMessage:g,availableModels:_,handleBack:v,handleSave:b}=tr(),x=e(r?`ai_providers.claude_edit_modal_title`:`ai_providers.claude_add_modal_title`),S=d_({onBack:v}),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&v()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]),(0,y.useEffect)(()=>{l.cloak&&(T.current=l.cloak)},[l.cloak]);let E=!o&&!s&&!c&&!i&&!a&&!C,D=(0,y.useMemo)(()=>{let e=new Set;return l.modelEntries.reduce((t,n)=>{let r=n.name.trim();if(!r||e.has(r))return t;e.add(r);let i=n.alias.trim();return t.push({value:r,label:i&&i!==r?`${r} (${i})`:r}),t},[])},[l.modelEntries]),O=(0,y.useMemo)(()=>[{value:`auto`,label:e(`ai_providers.claude_cloak_mode_auto`)},{value:`always`,label:e(`ai_providers.claude_cloak_mode_always`)},{value:`never`,label:e(`ai_providers.claude_cloak_mode_never`)}],[e]),k=(0,y.useMemo)(()=>{let e=(l.cloak?.mode??``).trim().toLowerCase();return!e||e===`provider`?`auto`:e===`auto`||e===`always`||e===`never`?e:`auto`},[l.cloak?.mode]),A=(0,y.useMemo)(()=>{let e=l.headers.map(e=>`${e.key.trim()}:${e.value.trim()}`).join(`|`),t=l.modelEntries.map(e=>`${e.name.trim()}:${e.alias.trim()}`).join(`|`);return[l.apiKey.trim(),l.baseUrl?.trim()??``,d.trim(),e,t].join(`||`)},[l.apiKey,l.baseUrl,l.headers,l.modelEntries,d]),j=(0,y.useRef)(A);(0,y.useEffect)(()=>{j.current!==A&&(j.current=A,m(`idle`),g(``))},[A,g,m]);let M=()=>{t(`models`)},N=(0,y.useCallback)(async()=>{if(C)return;let t=d.trim()||_[0]||``;if(!t){let t=e(`ai_providers.claude_test_model_required`);m(`error`),g(t),n(t,`error`);return}let r=nf(l.headers),i=l.apiKey.trim(),a=B_(r,`x-api-key`),o=V_(r),s=i||o;if(!s&&!a){let t=e(`ai_providers.claude_test_key_required`);m(`error`),g(t),n(t,`error`);return}let c=Tp(l.baseUrl??``);if(!c){let t=e(`ai_providers.claude_test_endpoint_invalid`);m(`error`),g(t),n(t,`error`);return}let u={"Content-Type":`application/json`,...r};B_(u,`anthropic-version`)||(u[`anthropic-version`]=R_),Object.prototype.hasOwnProperty.call(u,`Anthropic-Version`)||(u[`Anthropic-Version`]=u[`anthropic-version`]??R_),!a&&s&&(u[`x-api-key`]=s),!Object.prototype.hasOwnProperty.call(u,`X-Api-Key`)&&s&&(u[`X-Api-Key`]=s),w(!0),m(`loading`),g(e(`ai_providers.claude_test_running`));try{let r=await If.request({method:`POST`,url:c,header:u,data:JSON.stringify({model:t,max_tokens:8,messages:[{role:`user`,content:`Hi`}]})},{timeout:L_});if(r.statusCode<200||r.statusCode>=300)throw Error(Ff(r));let i=e(`ai_providers.claude_test_success`);m(`success`),g(i),n(i,`success`)}catch(t){let r=z_(t),i=(typeof t==`object`&&t&&`code`in t?String(t.code):``)===`ECONNABORTED`||r.toLowerCase().includes(`timeout`)?e(`ai_providers.claude_test_timeout`,{seconds:L_/1e3}):`${e(`ai_providers.claude_test_failed`)}: ${r||e(`common.unknown_error`)}`;m(`error`),g(i),n(i,`error`)}finally{w(!1)}},[_,l.apiKey,l.baseUrl,l.headers,C,g,m,n,e,d]);return(0,B.jsx)(h_,{ref:S,contentClassName:y_.content,title:x,onBack:v,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:v,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>void b(),loading:c,disabled:!E,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:s,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:i||a?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(`div`,{className:W.openaiEditForm,children:[(0,B.jsx)(Xo,{label:e(`ai_providers.claude_add_modal_key_label`),value:l.apiKey,onChange:e=>u(t=>({...t,apiKey:e.target.value})),disabled:c||o||C}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:l.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);u(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:c||o||C}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:l.prefix??``,onChange:e=>u(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:c||o||C}),(0,B.jsx)(Xo,{label:e(`ai_providers.claude_add_modal_url_label`),value:l.baseUrl??``,onChange:e=>u(t=>({...t,baseUrl:e.target.value})),disabled:c||o||C}),(0,B.jsx)(Xo,{label:e(`ai_providers.claude_add_modal_proxy_label`),value:l.proxyUrl??``,onChange:e=>u(t=>({...t,proxyUrl:e.target.value})),disabled:c||o||C}),(0,B.jsx)(I_,{entries:l.headers,onChange:e=>u(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:c||o||C}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.claude_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>u(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:c||o||C,children:e(`ai_providers.claude_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:M,disabled:c||o||C,children:e(`ai_providers.claude_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_hint`)}),(0,B.jsx)(s_,{entries:l.modelEntries,onChange:e=>u(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:c||o||C,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)}),(0,B.jsxs)(`div`,{className:W.modelTestPanel,children:[(0,B.jsxs)(`div`,{className:W.modelTestMeta,children:[(0,B.jsx)(`label`,{className:W.modelTestLabel,children:e(`ai_providers.claude_test_title`)}),(0,B.jsx)(`span`,{className:W.modelTestHint,children:e(`ai_providers.claude_test_hint`)})]}),(0,B.jsxs)(`div`,{className:W.modelTestControls,children:[(0,B.jsx)(Us,{value:d,options:D,onChange:e=>{f(e),m(`idle`),g(``)},placeholder:_.length?e(`ai_providers.claude_test_select_placeholder`):e(`ai_providers.claude_test_select_empty`),className:W.openaiTestSelect,ariaLabel:e(`ai_providers.claude_test_title`),disabled:c||o||C||p===`loading`||_.length===0}),(0,B.jsx)(V,{variant:p===`error`?`danger`:`secondary`,size:`sm`,onClick:()=>void N(),loading:p===`loading`,disabled:c||o||C||p===`loading`||_.length===0,className:W.modelTestAllButton,children:e(`ai_providers.claude_test_action`)})]})]}),h&&(0,B.jsx)(`div`,{className:`status-badge ${p===`error`?`error`:p===`success`?`success`:`muted`}`,children:h})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:l.excludedText,onChange:e=>u(t=>({...t,excludedText:e.target.value})),rows:4,disabled:c||o||C}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.claude_cloak_title`)}),(0,B.jsx)(`div`,{className:W.modelConfigToolbar,children:(0,B.jsx)(Sg,{checked:!!l.cloak,onChange:e=>u(t=>{if(!e)return t.cloak&&(T.current=t.cloak),{...t,cloak:void 0};let n=t.cloak??T.current??{mode:`auto`,strictMode:!1,sensitiveWords:[]},r=String(n.mode??`auto`).trim()||`auto`;return{...t,cloak:{mode:r,strictMode:n.strictMode??!1,sensitiveWords:n.sensitiveWords??[]}}}),disabled:c||o||C,ariaLabel:e(`ai_providers.claude_cloak_toggle_aria`),label:e(`ai_providers.claude_cloak_toggle_label`)})})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_cloak_hint`)}),l.cloak?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.claude_cloak_mode_label`)}),(0,B.jsx)(Us,{value:k,options:O,onChange:e=>u(t=>({...t,cloak:{...t.cloak??{},mode:e}})),ariaLabel:e(`ai_providers.claude_cloak_mode_label`),disabled:c||o||C}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.claude_cloak_mode_hint`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.claude_cloak_strict_label`)}),(0,B.jsx)(Sg,{checked:!!l.cloak.strictMode,onChange:e=>u(t=>({...t,cloak:{...t.cloak??{},strictMode:e}})),disabled:c||o||C,ariaLabel:e(`ai_providers.claude_cloak_strict_label`)}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.claude_cloak_strict_hint`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.claude_cloak_sensitive_words_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.claude_cloak_sensitive_words_placeholder`),value:(l.cloak.sensitiveWords??[]).join(` -`),onChange:e=>{let t=vp(e.target.value);u(e=>({...e,cloak:{...e.cloak??{},sensitiveWords:t.length?t:void 0}}))},rows:3,disabled:c||o||C}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.claude_cloak_sensitive_words_hint`)})]})]}):null]})]})})})}var U_=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function W_(){let{t:e}=qo(),t=Qn(),{disableControls:n,loading:r,saving:i,form:a,mergeDiscoveredModels:o}=tr(),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(new Set),b=(0,y.useRef)(``),x=(0,y.useMemo)(()=>{let e=h.trim().toLowerCase();return e?l.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):l},[l,h]),S=(0,y.useMemo)(()=>x.map(e=>e.name),[x]),C=(0,y.useMemo)(()=>S.length>0&&S.every(e=>_.has(e)),[_,S]),w=(0,y.useCallback)(async()=>{f(!0),m(``);let t=nf(a.headers);try{u(await Zf.fetchClaudeModelsViaApiCall(a.baseUrl??``,a.apiKey.trim()||void 0,t))}catch(n){u([]);let r=U_(n),i=Object.keys(t).some(e=>e.toLowerCase()===`x-api-key`),o=Object.keys(t).some(e=>e.toLowerCase()===`authorization`),s=r.toLowerCase().includes(`x-api-key`)||r.includes(`401`)?` [diag: apiKeyField=${a.apiKey.trim()?`yes`:`no`}, customXApiKey=${i?`yes`:`no`}, customAuthorization=${o?`yes`:`no`}]`:``;m(`${e(`ai_providers.claude_models_fetch_error`)}: ${r}${s}`)}finally{f(!1)}},[a.apiKey,a.baseUrl,a.headers,e]);(0,y.useEffect)(()=>{if(r)return;let e=Zf.buildClaudeModelsEndpoint(a.baseUrl??``);c(e),u([]),g(``),v(new Set),m(``);let t=nf(a.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`x-api-key`),i=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(a.apiKey.trim()||n||i))return;let o=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),s=`${e}||${a.apiKey.trim()}||${o}`;b.current!==s&&(b.current=s,w())},[w,a.apiKey,a.baseUrl,a.headers,r]),(0,y.useEffect)(()=>{let e=new Set(l.map(e=>e.name));v(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[l]);let T=(0,y.useCallback)(()=>{t(-1)},[t]),E=d_({onBack:T});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&T()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[T]);let D=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},O=(0,y.useCallback)(()=>{v(e=>{let t=new Set(e);return S.forEach(e=>t.add(e)),t})},[S]),k=(0,y.useCallback)(()=>{v(new Set)},[]),A=()=>{let e=l.filter(e=>_.has(e.name));e.length&&o(e),T()},j=!n&&!i&&!d&&_.size>0;return(0,B.jsx)(h_,{ref:E,contentClassName:y_.content,title:e(`ai_providers.claude_models_fetch_title`),onBack:T,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:T,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:A,disabled:!j,className:y_.floatingSaveButton,children:e(`ai_providers.claude_models_fetch_apply`)})]}),isLoading:r,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.claude_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:s}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void w(),loading:d,disabled:n||i,children:e(`ai_providers.claude_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.claude_models_search_label`),placeholder:e(`ai_providers.claude_models_search_placeholder`),value:h,onChange:e=>g(e.target.value),disabled:d}),l.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:O,disabled:n||i||d||x.length===0||C,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:k,disabled:n||i||d||_.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:_.size})})]}),p&&(0,B.jsx)(`div`,{className:`error-box`,children:p}),d?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_loading`)}):l.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_empty`)}):x.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:x.map(e=>{let t=_.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>D(e.name),disabled:n||i||d,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})})}var G_=()=>({apiKey:``,priority:void 0,prefix:``,baseUrl:``,websockets:!1,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),K_=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},q_=e=>e instanceof Error?e.message:typeof e==`string`?e:``,J_=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&r===n&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),Y_=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),websockets:!!e.websockets,proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:J_(e.modelEntries),excludedModels:yp(e.excludedText??``)});function X_(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>G_()),[b,x]=(0,y.useState)(()=>Y_(G_())),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)([]),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,ee]=(0,y.useState)(new Set),F=(0,y.useRef)(``),I=(0,y.useRef)(0),L=typeof r.index==`string`,R=(0,y.useMemo)(()=>K_(r.index),[r.index]),te=L&&R===null,ne=(0,y.useMemo)(()=>{if(R!==null)return l[R]},[l,R]),re=R!==null&&!ne,z=e(R===null?`ai_providers.codex_add_modal_title`:`ai_providers.codex_edit_modal_title`),ie=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),ae=d_({onBack:ie});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ie()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ie]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),o(`codex-api-key`).then(e=>{t||u(Array.isArray(e)?e:[])}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[o,e]),(0,y.useEffect)(()=>{if(d)return;if(ne){let e={...ne,websockets:!!ne.websockets,headers:af(ne.headers),modelEntries:E_(ne.models),excludedText:bp(ne.excludedModels)};v(e),x(Y_(e));return}let e=G_();v(e),x(Y_(e))},[ne,d]);let oe=(0,y.useMemo)(()=>of(_.headers),[_.headers]),se=(0,y.useMemo)(()=>J_(_.modelEntries),[_.modelEntries]),ce=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),le=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),ue=(0,y.useMemo)(()=>!__(b.headers,oe),[b.headers,oe]),de=(0,y.useMemo)(()=>!v_(b.models,se),[b.models,se]),fe=(0,y.useMemo)(()=>!g_(b.excludedModels,ce),[b.excludedModels,ce]),pe=b.apiKey!==_.apiKey.trim()||b.priority!==le||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.websockets!==!!_.websockets||b.proxyUrl!==String(_.proxyUrl??``).trim()||ue||de||fe,{allowNextNavigation:me}=f_({enabled:!d&&!p&&!te&&!re,shouldBlock:({currentLocation:e,nextLocation:t})=>pe&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),he=!a&&!p&&!d&&!te&&!re,ge=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase();return e?E.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):E},[E,M]),_e=(0,y.useMemo)(()=>ge.map(e=>e.name),[ge]),ve=(0,y.useMemo)(()=>_e.length>0&&_e.every(e=>P.has(e)),[P,_e]),ye=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;v(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=e.name.trim();t&&r.set(t.toLowerCase(),{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=String(e.name??``).trim();if(!t)return;let i=t.toLowerCase();r.has(i)||(r.set(i,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&i(e(`ai_providers.codex_models_fetch_added`,{count:n}),`success`)},[v,i,e]),be=(0,y.useCallback)(async()=>{let t=I.current+=1;k(!0),j(``);try{let e=nf(_.headers),n=Object.keys(e).some(e=>e.toLowerCase()===`authorization`),r=_.apiKey.trim()||void 0,i=await Zf.fetchV1ModelsViaApiCall(_.baseUrl??``,n?void 0:r,e);if(I.current!==t)return;D(i)}catch(n){if(I.current!==t)return;D([]);let r=q_(n);j(`${e(`ai_providers.codex_models_fetch_error`)}: ${r}`)}finally{I.current===t&&k(!1)}},[_.apiKey,_.baseUrl,_.headers,e]);(0,y.useEffect)(()=>{if(!S){F.current=``,I.current+=1,k(!1);return}let e=Zf.buildV1ModelsEndpoint(_.baseUrl??``);if(T(e),D([]),N(``),ee(new Set),j(``),!e)return;let t=nf(_.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(_.apiKey.trim()||n))return;let r=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),i=`${e}||${_.apiKey.trim()}||${r}`;F.current!==i&&(F.current=i,be())},[be,_.apiKey,_.baseUrl,_.headers,S]),(0,y.useEffect)(()=>{let e=new Set(E.map(e=>e.name));ee(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[E]);let xe=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Se=(0,y.useCallback)(()=>{ee(e=>{let t=new Set(e);return _e.forEach(e=>t.add(e)),t})},[_e]),Ce=(0,y.useCallback)(()=>{ee(new Set)},[]),we=()=>{let e=E.filter(e=>P.has(e.name));e.length&&ye(e),C(!1)},Te=(0,y.useCallback)(async()=>{if(!he)return;let t=(_.baseUrl??``).trim()||void 0;if(!t){i(e(`notification.codex_base_url_required`),`error`);return}m(!0),g(``);try{let n={apiKey:_.apiKey.trim(),priority:_.priority===void 0?void 0:Math.trunc(_.priority),prefix:_.prefix?.trim()||void 0,baseUrl:t,websockets:!!_.websockets,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:D_(_.modelEntries),excludedModels:yp(_.excludedText)},r=R===null?[...l,n]:l.map((e,t)=>t===R?n:e);await Mh.saveCodexConfigs(r),s(`codex-api-key`,r),c(`codex-api-key`),i(e(R===null?`notification.codex_config_added`:`notification.codex_config_updated`),`success`),me(),x(Y_(_)),ie()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}},[me,he,c,l,R,_,ie,i,e,s]),Ee=!a&&!p&&!d&&!te&&!re&&!!(_.baseUrl??``).trim(),De=!a&&!p&&!O&&P.size>0;return(0,B.jsx)(h_,{ref:ae,contentClassName:y_.content,title:z,onBack:ie,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:Te,loading:p,disabled:!he,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),te||re?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_key_label`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:_.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);v(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_url_label`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.codex_websockets_label`)}),(0,B.jsx)(Sg,{checked:!!_.websockets,onChange:e=>v(t=>({...t,websockets:e})),disabled:a||p,ariaLabel:e(`ai_providers.codex_websockets_label`)}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.codex_websockets_hint`)})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_proxy_label`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.codex_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:a||p,children:e(`ai_providers.codex_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:!Ee,children:e(`ai_providers.codex_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_hint`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:a||p,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]}),(0,B.jsx)(um,{open:S,title:e(`ai_providers.codex_models_fetch_title`),onClose:()=>C(!1),width:720,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!1),disabled:O,children:e(`common.cancel`)}),(0,B.jsx)(V,{size:`sm`,onClick:we,disabled:!De,children:e(`ai_providers.codex_models_fetch_apply`)})]}),children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.codex_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:w}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void be(),loading:O,disabled:a||p,children:e(`ai_providers.codex_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_models_search_label`),placeholder:e(`ai_providers.codex_models_search_placeholder`),value:M,onChange:e=>N(e.target.value),disabled:O}),E.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:Se,disabled:a||p||O||ge.length===0||ve,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:Ce,disabled:a||p||O||P.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:P.size})})]}),A&&(0,B.jsx)(`div`,{className:`error-box`,children:A}),O?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_loading`)}):E.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_empty`)}):ge.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:ge.map(e=>{let t=P.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>xe(e.name),disabled:a||p||O,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})]})]})})}var Z_=()=>({apiKey:``,priority:void 0,prefix:``,baseUrl:``,proxyUrl:``,headers:[],modelEntries:[{name:``,alias:``}],excludedModels:[],excludedText:``}),Q_=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},$_=e=>String(e??``).trim().replace(/^\/?models\//i,``),ev=e=>(e??[]).reduce((e,t)=>{let n=$_(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&r===n&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),tv=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:ev(e.modelEntries),excludedModels:yp(e.excludedText??``)});function nv(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>Z_()),[b,x]=(0,y.useState)(()=>tv(Z_())),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)([]),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,ee]=(0,y.useState)(new Set),F=(0,y.useRef)(``),I=(0,y.useRef)(0),L=typeof r.index==`string`,R=(0,y.useMemo)(()=>Q_(r.index),[r.index]),te=L&&R===null,ne=(0,y.useMemo)(()=>{if(R!==null)return l[R]},[l,R]),re=R!==null&&!ne,z=e(R===null?`ai_providers.gemini_add_modal_title`:`ai_providers.gemini_edit_modal_title`),ie=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),ae=d_({onBack:ie});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ie()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ie]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),o(`gemini-api-key`).then(e=>{t||u(Array.isArray(e)?e:[])}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[o,e]),(0,y.useEffect)(()=>{if(d)return;if(ne){let{headers:e,models:t,...n}=ne,r={...n,headers:af(e),modelEntries:E_(t).map(e=>({...e,name:$_(e.name)})),excludedText:bp(ne.excludedModels)};v(r),x(tv(r));return}let e=Z_();v(e),x(tv(e))},[ne,d]);let oe=!a&&!p&&!d&&!te&&!re,se=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase();return e?E.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):E},[E,M]),ce=(0,y.useMemo)(()=>se.map(e=>e.name),[se]),le=(0,y.useMemo)(()=>ce.length>0&&ce.every(e=>P.has(e)),[P,ce]),ue=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;v(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=$_(e.name);t&&r.set(t,{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=$_(e.name);!t||r.has(t)||(r.set(t,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&i(e(`ai_providers.gemini_models_fetch_added`,{count:n}),`success`)},[v,i,e]),de=(0,y.useCallback)(async()=>{let t=I.current+=1;k(!0),j(``);let n=nf(_.headers);try{let e=await Zf.fetchGeminiModelsViaApiCall(_.baseUrl??``,_.apiKey.trim()||void 0,n);if(I.current!==t)return;D(e)}catch(r){if(I.current!==t)return;D([]);let i=r instanceof Error?r.message:typeof r==`string`?r:``,a=Object.keys(n).some(e=>e.toLowerCase()===`x-goog-api-key`),o=Object.keys(n).some(e=>e.toLowerCase()===`authorization`),s=i.toLowerCase().includes(`api key`)||i.includes(`401`)?` [diag: apiKeyField=${_.apiKey.trim()?`yes`:`no`}, customXGoogApiKey=${a?`yes`:`no`}, customAuthorization=${o?`yes`:`no`}]`:``;j(`${e(`ai_providers.gemini_models_fetch_error`)}: ${i}${s}`)}finally{I.current===t&&k(!1)}},[_.apiKey,_.baseUrl,_.headers,e]);(0,y.useEffect)(()=>{if(!S){F.current=``,I.current+=1,k(!1);return}let e=Zf.buildGeminiModelsEndpoint(_.baseUrl??``);T(e),D([]),N(``),ee(new Set),j(``);let t=nf(_.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`x-goog-api-key`),r=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(_.apiKey.trim()||n||r))return;let i=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),a=`${e}||${_.apiKey.trim()}||${i}`;F.current!==a&&(F.current=a,de())},[de,_.apiKey,_.baseUrl,_.headers,S]),(0,y.useEffect)(()=>{let e=new Set(E.map(e=>e.name));ee(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[E]);let fe=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},pe=(0,y.useCallback)(()=>{ee(e=>{let t=new Set(e);return ce.forEach(e=>t.add(e)),t})},[ce]),me=(0,y.useCallback)(()=>{ee(new Set)},[]),he=()=>{let e=E.filter(e=>P.has(e.name));e.length&&ue(e),C(!1)},ge=(0,y.useMemo)(()=>of(_.headers),[_.headers]),_e=(0,y.useMemo)(()=>ev(_.modelEntries),[_.modelEntries]),ve=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),ye=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),be=(0,y.useMemo)(()=>!__(b.headers,ge),[b.headers,ge]),xe=(0,y.useMemo)(()=>!v_(b.models,_e),[b.models,_e]),Se=(0,y.useMemo)(()=>!g_(b.excludedModels,ve),[b.excludedModels,ve]),Ce=b.apiKey!==_.apiKey.trim()||b.priority!==ye||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.proxyUrl!==String(_.proxyUrl??``).trim()||be||xe||Se,{allowNextNavigation:we}=f_({enabled:!d&&!p&&!te&&!re,shouldBlock:({currentLocation:e,nextLocation:t})=>Ce&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),Te=(0,y.useCallback)(async()=>{if(oe){m(!0),g(``);try{let t=_.modelEntries.map(e=>({...e,name:$_(e.name)})),n={apiKey:_.apiKey.trim(),priority:_.priority===void 0?void 0:Math.trunc(_.priority),prefix:_.prefix?.trim()||void 0,baseUrl:_.baseUrl?.trim()||void 0,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:D_(t),excludedModels:yp(_.excludedText)},r=R===null?[...l,n]:l.map((e,t)=>t===R?n:e);await Mh.saveGeminiKeys(r),s(`gemini-api-key`,r),c(`gemini-api-key`),i(e(R===null?`notification.gemini_key_added`:`notification.gemini_key_updated`),`success`),we(),x(tv(_)),ie()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}}},[we,oe,c,l,R,_,ie,i,e,s]),Ee=!a&&!p&&!d&&!te&&!re,De=!a&&!p&&!O&&P.size>0;return(0,B.jsx)(h_,{ref:ae,contentClassName:y_.content,title:z,onBack:ie,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:Te,loading:p,disabled:!oe,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),te||re?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_add_modal_key_label`),placeholder:e(`ai_providers.gemini_add_modal_key_placeholder`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:_.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);v(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_base_url_label`),placeholder:e(`ai_providers.gemini_base_url_placeholder`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_add_modal_proxy_label`),placeholder:e(`ai_providers.gemini_add_modal_proxy_placeholder`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.gemini_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:a||p,children:e(`ai_providers.gemini_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:!Ee,children:e(`ai_providers.gemini_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_hint`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:a||p,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]}),(0,B.jsx)(um,{open:S,title:e(`ai_providers.gemini_models_fetch_title`),onClose:()=>C(!1),width:720,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!1),disabled:O,children:e(`common.cancel`)}),(0,B.jsx)(V,{size:`sm`,onClick:he,disabled:!De,children:e(`ai_providers.gemini_models_fetch_apply`)})]}),children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.gemini_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:w}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void de(),loading:O,disabled:a||p,children:e(`ai_providers.gemini_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_models_search_label`),placeholder:e(`ai_providers.gemini_models_search_placeholder`),value:M,onChange:e=>N(e.target.value),disabled:O}),E.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:pe,disabled:a||p||O||se.length===0||le,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:me,disabled:a||p||O||P.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:P.size})})]}),A&&(0,B.jsx)(`div`,{className:`error-box`,children:A}),O?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_loading`)}):E.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_empty`)}):se.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:se.map(e=>{let t=P.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>fe(e.name),disabled:a||p||O,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})]})]})})}var rv=()=>({name:``,priority:void 0,prefix:``,baseUrl:``,headers:[],apiKeyEntries:[Lp()],modelEntries:[{name:``,alias:``}],testModel:void 0}),iv=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},av=e=>e instanceof Error?e.message:typeof e==`string`?e:``,ov=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&(r===``||r===n)&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),sv=e=>!e||typeof e!=`object`?[]:Object.entries(e).map(([e,t])=>({key:String(e??``).trim(),value:String(t??``).trim()})).filter(e=>e.key||e.value).sort((e,t)=>{let n=e.key.toLowerCase().localeCompare(t.key.toLowerCase());return n===0?e.value.localeCompare(t.value):n}),cv=e=>(e??[]).reduce((e,t)=>{let n=String(t?.apiKey??``).trim(),r=String(t?.proxyUrl??``).trim(),i=sv(t?.headers);return!n&&!r&&i.length===0||e.push({apiKey:n,proxyUrl:r,headers:i}),e},[]),lv=(e,t)=>({name:String(e.name??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),headers:of(e.headers),apiKeyEntries:cv(e.apiKeyEntries),models:ov(e.modelEntries),testModel:String(t??``).trim()}),uv=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;niv(i.index),[i.index]),s=a&&o===null,c=ep(e=>e.connectionStatus)!==`connected`,l=Of(e=>e.config),u=Of(e=>e.fetchConfig),d=Of(e=>e.updateConfigValue),f=Of(e=>e.isCacheValid),[p,m]=(0,y.useState)(()=>l?.openaiCompatibility??[]),[h,g]=(0,y.useState)(()=>!f(`openai-compatibility`)),[_,v]=(0,y.useState)(!1),b=(0,y.useMemo)(()=>s?`openai:invalid:${i.index??`unknown`}`:o===null?`openai:new`:`openai:${o}`,[o,s,i.index]),x=Kp(e=>e.drafts[b]),S=Kp(e=>e.acquireDraft),C=Kp(e=>e.releaseDraft),w=Kp(e=>e.initDraft),T=Kp(e=>e.setDraftBaseline),E=Kp(e=>e.setDraftForm),D=Kp(e=>e.setDraftTestModel),O=Kp(e=>e.setDraftTestStatus),k=Kp(e=>e.setDraftTestMessage),A=Kp(e=>e.setDraftKeyTestStatus),j=Kp(e=>e.resetDraftKeyTestStatuses),M=x?.form??rv(),N=x?.testModel??``,P=x?.testStatus??`idle`,ee=x?.testMessage??``,F=x?.keyTestStatuses??[],I=(0,y.useCallback)(e=>{E(b,e)},[b,E]),L=(0,y.useCallback)(e=>{D(b,e)},[b,D]),R=(0,y.useCallback)(e=>{O(b,e)},[b,O]),te=(0,y.useCallback)(e=>{k(b,e)},[b,k]),ne=(0,y.useCallback)((e,t)=>{A(b,e,t)},[b,A]),re=(0,y.useCallback)(e=>{j(b,e)},[b,j]),z=(0,y.useMemo)(()=>{if(o!==null)return p[o]},[o,p]),ie=o!==null&&!z,ae=(0,y.useMemo)(()=>M.modelEntries.map(e=>e.name.trim()).filter(Boolean),[M.modelEntries]);(0,y.useEffect)(()=>(S(b),()=>C(b)),[S,b,C]);let oe=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]);(0,y.useEffect)(()=>{let t=!1;return f(`openai-compatibility`)||g(!0),Mh.getOpenAIProviders().then(e=>{if(t)return;let n=e||[];m(n),d(`openai-compatibility`,n)}).catch(async n=>{if(!t)try{let e=await u(`openai-compatibility`);if(t)return;m(Array.isArray(e)?e:[])}catch{if(t)return;let i=av(n)||e(`notification.refresh_failed`);r(`${e(`notification.load_failed`)}: ${i}`,`error`)}}).finally(()=>{t||g(!1)}),()=>{t=!0}},[u,f,r,e,d]),(0,y.useEffect)(()=>{if(!h&&!x?.initialized)if(z){let e=E_(z.models),t={name:z.name,priority:z.priority,prefix:z.prefix??``,baseUrl:z.baseUrl,headers:af(z.headers),testModel:z.testModel,modelEntries:e,apiKeyEntries:z.apiKeyEntries?.length?z.apiKeyEntries:[Lp()]},n=e.map(e=>e.name.trim()).filter(Boolean),r=z.testModel&&n.includes(z.testModel)?z.testModel:n[0]||``;w(b,{baseline:lv(t,r),form:t,testModel:r,testStatus:`idle`,testMessage:``,keyTestStatuses:[]})}else{let e=rv();w(b,{baseline:lv(e,``),form:e,testModel:``,testStatus:`idle`,testMessage:``,keyTestStatuses:[]})}},[x?.initialized,b,w,z,h]),(0,y.useEffect)(()=>{if(!h){if(ae.length===0){N&&(L(``),R(`idle`),te(``));return}(!N||!ae.includes(N))&&(L(ae[0]),R(`idle`),te(``))}},[ae,h,te,L,R,N]);let se=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;I(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=e.name.trim();t&&r.set(t,{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=e.name.trim();!t||r.has(t)||(r.set(t,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&r(e(`ai_providers.openai_models_fetch_added`,{count:n}),`success`)},[I,r,e]),ce=!x?.initialized,le=x?.baseline??null,ue=(0,y.useMemo)(()=>of(M.headers),[M.headers]),de=(0,y.useMemo)(()=>ov(M.modelEntries),[M.modelEntries]),fe=(0,y.useMemo)(()=>cv(M.apiKeyEntries),[M.apiKeyEntries]),pe=(0,y.useMemo)(()=>M.priority!==void 0&&Number.isFinite(M.priority)?Math.trunc(M.priority):null,[M.priority]),me=(0,y.useMemo)(()=>String(N??``).trim(),[N]),he=(0,y.useMemo)(()=>le?!__(le.headers,ue):!1,[le,ue]),ge=(0,y.useMemo)(()=>le?!v_(le.models,de):!1,[le,de]),_e=(0,y.useMemo)(()=>le?!uv(le.apiKeyEntries,fe):!1,[le,fe]),ve=!!x?.initialized&&le!==null&&(le.name!==M.name.trim()||le.priority!==pe||le.prefix!==M.prefix.trim()||le.baseUrl!==M.baseUrl.trim()||le.testModel!==me||he||_e||ge),ye=(0,y.useMemo)(()=>a?`/ai-providers/openai/${i.index??``}`:`/ai-providers/openai/new`,[a,i.index]),{allowNextNavigation:be}=f_({enabled:!ce&&!_&&!s&&!ie,shouldBlock:({nextLocation:e})=>{let t=e.pathname,n=t===ye||t.startsWith(`${ye}/`);return ve&&!n},dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}});return(0,B.jsx)(Vr,{context:{hasIndexParam:a,editIndex:o,invalidIndexParam:s,invalidIndex:ie,disableControls:c,loading:ce,saving:_,form:M,setForm:I,testModel:N,setTestModel:L,testStatus:P,setTestStatus:R,testMessage:ee,setTestMessage:te,keyTestStatuses:F,setDraftKeyTestStatus:ne,resetDraftKeyTestStatuses:re,availableModels:ae,handleBack:oe,handleSave:(0,y.useCallback)(async()=>{let t=M.name.trim(),n=M.baseUrl.trim();if(!t||!n){r(e(`notification.openai_provider_required`),`error`);return}v(!0);try{let i={name:t,prefix:M.prefix?.trim()||void 0,baseUrl:n,headers:nf(M.headers),apiKeyEntries:M.apiKeyEntries.map(e=>({apiKey:e.apiKey.trim(),proxyUrl:e.proxyUrl?.trim()||void 0,headers:e.headers}))};M.priority!==void 0&&Number.isFinite(M.priority)&&(i.priority=Math.trunc(M.priority)),z?.disabled!==void 0&&(i.disabled=z.disabled);let a=N.trim();a&&(i.testModel=a);let s=D_(M.modelEntries);s.length&&(i.models=s);let c=o===null?[...p,i]:p.map((e,t)=>t===o?i:e);await Mh.saveOpenAIProviders(c);let l=c;try{l=await Mh.getOpenAIProviders()}catch{}m(l),d(`openai-compatibility`,l),r(e(o===null?`notification.openai_provider_added`:`notification.openai_provider_updated`),`success`),be(),T(b,lv(M,N)),oe()}catch(t){r(`${e(`notification.update_failed`)}: ${av(t)}`,`error`)}finally{v(!1)}},[be,b,o,M,oe,z?.disabled,p,T,r,e,N,d]),mergeDiscoveredModels:se}})}var fv=3e4,pv=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function mv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:W.statusIconSpin,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`currentColor`,strokeOpacity:`0.25`,strokeWidth:`2`}),(0,B.jsx)(`path`,{d:`M8 1A7 7 0 0 1 8 15`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})]})}function hv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`8`,fill:`var(--success-color, #22c55e)`}),(0,B.jsx)(`path`,{d:`M4.5 8L7 10.5L11.5 6`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}function gv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`8`,fill:`var(--danger-color, #c65746)`}),(0,B.jsx)(`path`,{d:`M5 5L11 11M11 5L5 11`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}function _v(){return(0,B.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`var(--text-tertiary, #9ca3af)`,strokeWidth:`2`})})}function vv({status:e}){switch(e){case`loading`:return(0,B.jsx)(mv,{});case`success`:return(0,B.jsx)(hv,{});case`error`:return(0,B.jsx)(gv,{});default:return(0,B.jsx)(_v,{})}}function yv(){let{t:e}=qo(),t=Qn(),{showNotification:n}=hc(),{hasIndexParam:r,invalidIndexParam:i,invalidIndex:a,disableControls:o,loading:s,saving:c,form:l,setForm:u,testModel:d,setTestModel:f,testStatus:p,setTestStatus:m,testMessage:h,setTestMessage:g,keyTestStatuses:_,setDraftKeyTestStatus:v,resetDraftKeyTestStatuses:b,availableModels:x,handleBack:S,handleSave:C}=tr(),w=e(r?`ai_providers.openai_edit_modal_title`:`ai_providers.openai_add_modal_title`),T=d_({onBack:S}),[E,D]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&S()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S]);let O=!o&&!s&&!c&&!i&&!a&&!E,k=l.modelEntries.some(e=>e.name.trim()),A=l.apiKeyEntries.some(e=>e.apiKey?.trim()),j=(0,y.useMemo)(()=>{let e=new Set;return l.modelEntries.reduce((t,n)=>{let r=n.name.trim();if(!r||e.has(r))return t;e.add(r);let i=n.alias.trim();return t.push({value:r,label:i&&i!==r?`${r} (${i})`:r}),t},[])},[l.modelEntries]),M=(0,y.useMemo)(()=>{let e=l.headers.map(e=>`${e.key.trim()}:${e.value.trim()}`).join(`|`),t=l.modelEntries.map(e=>`${e.name.trim()}:${e.alias.trim()}`).join(`|`);return[l.baseUrl.trim(),d.trim(),e,t].join(`||`)},[l.baseUrl,l.headers,l.modelEntries,d]),N=(0,y.useRef)(M);(0,y.useEffect)(()=>{N.current!==M&&(N.current=M,b(l.apiKeyEntries.length),m(`idle`),g(``))},[M,l.apiKeyEntries.length,b,m,g]);let P=(0,y.useCallback)(async t=>{let r=l.baseUrl.trim();if(!r)return n(e(`notification.openai_test_url_required`),`error`),!1;let i=wp(r);if(!i)return n(e(`notification.openai_test_url_required`),`error`),!1;let a=l.apiKeyEntries[t];if(!a?.apiKey?.trim())return v(t,{status:`error`,message:e(`notification.openai_test_key_required`)}),!1;let o=d.trim()||x[0]||``;if(!o)return n(e(`notification.openai_test_model_required`),`error`),!1;let s={"Content-Type":`application/json`,...nf(l.headers)};rf(s,`authorization`)||(s.Authorization=`Bearer ${a.apiKey.trim()}`),v(t,{status:`loading`,message:``});try{let e=await If.request({method:`POST`,url:i,header:Object.keys(s).length?s:void 0,data:JSON.stringify({model:o,messages:[{role:`user`,content:`Hi`}],stream:!1,max_tokens:5})},{timeout:fv});if(e.statusCode<200||e.statusCode>=300)throw Error(Ff(e));return v(t,{status:`success`,message:``}),!0}catch(n){let r=pv(n);return v(t,{status:`error`,message:(typeof n==`object`&&n&&`code`in n?String(n.code):``)===`ECONNABORTED`||r.toLowerCase().includes(`timeout`)?e(`ai_providers.openai_test_timeout`,{seconds:fv/1e3}):r}),!1}},[l.baseUrl,l.apiKeyEntries,l.headers,d,x,e,v,n]),ee=(0,y.useCallback)(async e=>{if(E)return!1;D(!0);try{return await P(e)}finally{D(!1)}},[E,P]),F=(0,y.useCallback)(async()=>{if(E)return;let t=l.baseUrl.trim();if(!t){let t=e(`notification.openai_test_url_required`);m(`error`),g(t),n(t,`error`);return}if(!wp(t)){let t=e(`notification.openai_test_url_required`);m(`error`),g(t),n(t,`error`);return}if(!(d.trim()||x[0])){let t=e(`notification.openai_test_model_required`);m(`error`),g(t),n(t,`error`);return}let r=l.apiKeyEntries.map((e,t)=>e.apiKey?.trim()?t:-1).filter(e=>e>=0);if(r.length===0){let t=e(`notification.openai_test_key_required`);m(`error`),g(t),n(t,`error`);return}D(!0),m(`loading`),g(e(`ai_providers.openai_test_running`)),b(l.apiKeyEntries.length);try{let t=(await Promise.all(r.map(e=>P(e)))).filter(Boolean).length,i=r.length-t;if(i===0){let r=e(`ai_providers.openai_test_all_success`,{count:t});m(`success`),g(r),n(r,`success`)}else if(t===0){let t=e(`ai_providers.openai_test_all_failed`,{count:i});m(`error`),g(t),n(t,`error`)}else{let r=e(`ai_providers.openai_test_all_partial`,{success:t,failed:i});m(`error`),g(r),n(r,`warning`)}}finally{D(!1)}},[E,l.baseUrl,l.apiKeyEntries,d,x,e,m,g,b,P,n]);return(0,B.jsx)(h_,{ref:T,contentClassName:y_.content,title:w,onBack:S,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:S,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>void C(),loading:c,disabled:!O,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:s,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:i||a?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(`div`,{className:W.openaiEditForm,children:[(0,B.jsx)(Xo,{label:e(`ai_providers.openai_add_modal_name_label`),value:l.name,onChange:e=>u(t=>({...t,name:e.target.value})),disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:l.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);u(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:l.prefix??``,onChange:e=>u(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.openai_add_modal_url_label`),value:l.baseUrl,onChange:e=>u(t=>({...t,baseUrl:e.target.value})),disabled:c||o||E}),(0,B.jsx)(I_,{entries:l.headers,onChange:e=>u(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:c||o||E}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(r?`ai_providers.openai_edit_modal_models_label`:`ai_providers.openai_add_modal_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>u(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:c||o||E,children:e(`ai_providers.openai_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{if(!l.baseUrl.trim()){n(e(`ai_providers.openai_models_fetch_invalid_url`),`error`);return}t(`models`)},disabled:c||o||E,children:e(`ai_providers.openai_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_hint`)}),(0,B.jsx)(s_,{entries:l.modelEntries,onChange:e=>u(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:c||o||E,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)}),(0,B.jsxs)(`div`,{className:W.modelTestPanel,children:[(0,B.jsxs)(`div`,{className:W.modelTestMeta,children:[(0,B.jsx)(`label`,{className:W.modelTestLabel,children:e(`ai_providers.openai_test_title`)}),(0,B.jsx)(`span`,{className:W.modelTestHint,children:e(`ai_providers.openai_test_hint`)})]}),(0,B.jsxs)(`div`,{className:W.modelTestControls,children:[(0,B.jsx)(Us,{value:d,options:j,onChange:e=>{f(e),m(`idle`),g(``)},placeholder:x.length?e(`ai_providers.openai_test_select_placeholder`):e(`ai_providers.openai_test_select_empty`),className:W.openaiTestSelect,ariaLabel:e(`ai_providers.openai_test_title`),disabled:c||o||E||p===`loading`||x.length===0}),(0,B.jsx)(V,{variant:p===`error`?`danger`:`secondary`,size:`sm`,onClick:()=>void F(),loading:p===`loading`,disabled:c||o||E||p===`loading`||!k||!A,title:e(`ai_providers.openai_test_all_hint`),className:W.modelTestAllButton,children:e(`ai_providers.openai_test_all_action`)})]})]}),h&&(0,B.jsx)(`div`,{className:`status-badge ${p===`error`?`error`:p===`success`?`success`:`muted`}`,children:h})]}),(0,B.jsxs)(`div`,{className:W.keyEntriesSection,children:[(0,B.jsxs)(`div`,{className:W.keyEntriesHeader,children:[(0,B.jsx)(`label`,{className:W.keyEntriesTitle,children:e(`ai_providers.openai_add_modal_keys_label`)}),(0,B.jsx)(`span`,{className:W.keyEntriesHint,children:e(`ai_providers.openai_keys_hint`)})]}),(t=>{let n=t.length?t:[Lp()],r=(e,t,r)=>{let i=n.map((n,i)=>i===e?{...n,[t]:r}:n);u(e=>({...e,apiKeyEntries:i})),v(e,{status:`idle`,message:``}),m(`idle`),g(``)},i=e=>{let t=n.filter((t,n)=>n!==e),r=t.length?t.length:1;u(e=>({...e,apiKeyEntries:t.length?t:[Lp()]})),b(r),m(`idle`),g(``)};return(0,B.jsxs)(`div`,{className:W.keyEntriesList,children:[(0,B.jsxs)(`div`,{className:W.keyEntriesToolbar,children:[(0,B.jsxs)(`span`,{className:W.keyEntriesCount,children:[e(`ai_providers.openai_keys_count`),`: `,n.length]}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{u(e=>({...e,apiKeyEntries:[...n,Lp()]})),b(n.length+1),m(`idle`),g(``)},disabled:c||o||E,className:W.addKeyButton,children:e(`ai_providers.openai_keys_add_btn`)})]}),(0,B.jsxs)(`div`,{className:W.keyTableShell,children:[(0,B.jsxs)(`div`,{className:W.keyTableHeader,children:[(0,B.jsx)(`div`,{className:W.keyTableColIndex,children:`#`}),(0,B.jsx)(`div`,{className:W.keyTableColStatus,children:e(`common.status`)}),(0,B.jsx)(`div`,{className:W.keyTableColKey,children:e(`common.api_key`)}),(0,B.jsx)(`div`,{className:W.keyTableColProxy,children:e(`common.proxy_url`)}),(0,B.jsx)(`div`,{className:W.keyTableColAction,children:e(`common.action`)})]}),n.map((t,a)=>{let s=_[a]?.status??`idle`,l=!!t.apiKey?.trim()&&k;return(0,B.jsxs)(`div`,{className:W.keyTableRow,children:[(0,B.jsx)(`div`,{className:W.keyTableColIndex,children:a+1}),(0,B.jsx)(`div`,{className:W.keyTableColStatus,title:_[a]?.message||``,children:(0,B.jsx)(vv,{status:s})}),(0,B.jsx)(`div`,{className:W.keyTableColKey,children:(0,B.jsx)(`input`,{type:`text`,value:t.apiKey,onChange:e=>r(a,`apiKey`,e.target.value),disabled:c||o||E,className:`input ${W.keyTableInput}`,placeholder:e(`ai_providers.openai_key_placeholder`)})}),(0,B.jsx)(`div`,{className:W.keyTableColProxy,children:(0,B.jsx)(`input`,{type:`text`,value:t.proxyUrl??``,onChange:e=>r(a,`proxyUrl`,e.target.value),disabled:c||o||E,className:`input ${W.keyTableInput}`,placeholder:e(`ai_providers.openai_proxy_placeholder`)})}),(0,B.jsxs)(`div`,{className:W.keyTableColAction,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void ee(a),disabled:c||o||E||!l,loading:s===`loading`,children:e(`ai_providers.openai_test_single_action`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>i(a),disabled:c||o||E||n.length<=1,children:e(`common.delete`)})]})]},a)})]})]})})(l.apiKeyEntries)]})]})})})}var bv=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function xv(){let{t:e}=qo(),t=Qn(),{disableControls:n,loading:r,saving:i,form:a,mergeDiscoveredModels:o}=tr(),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(new Set),b=(0,y.useMemo)(()=>{let e=h.trim().toLowerCase();return e?l.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):l},[l,h]),x=(0,y.useMemo)(()=>b.map(e=>e.name),[b]),S=(0,y.useMemo)(()=>x.length>0&&x.every(e=>_.has(e)),[_,x]),C=(0,y.useCallback)(async({allowFallback:t=!0}={})=>{let n=a.baseUrl.trim();if(n){f(!0),m(``);try{let e=nf(a.headers),t=a.apiKeyEntries.find(e=>e.apiKey?.trim())?.apiKey?.trim(),r=rf(e,`authorization`);u(await Zf.fetchModelsViaApiCall(n,r?void 0:t,e))}catch(r){if(t)try{u(await Zf.fetchModelsViaApiCall(n));return}catch(t){let n=bv(t)||bv(r);u([]),m(`${e(`ai_providers.openai_models_fetch_error`)}: ${n}`)}else u([]),m(`${e(`ai_providers.openai_models_fetch_error`)}: ${bv(r)}`)}finally{f(!1)}}},[a.apiKeyEntries,a.baseUrl,a.headers,e]);(0,y.useEffect)(()=>{r||(c(Cp(a.baseUrl)),u([]),g(``),v(new Set),m(``),C())},[C,a.baseUrl,r]),(0,y.useEffect)(()=>{let e=new Set(l.map(e=>e.name));v(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[l]);let w=(0,y.useCallback)(()=>{t(-1)},[t]),T=d_({onBack:w});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&w()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[w]);let E=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},D=(0,y.useCallback)(()=>{v(e=>{let t=new Set(e);return x.forEach(e=>t.add(e)),t})},[x]),O=(0,y.useCallback)(()=>{v(new Set)},[]),k=()=>{let e=l.filter(e=>_.has(e.name));e.length&&o(e),w()},A=!n&&!i&&!d&&_.size>0;return(0,B.jsx)(h_,{ref:T,contentClassName:y_.content,title:e(`ai_providers.openai_models_fetch_title`),onBack:w,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:w,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:k,disabled:!A,className:y_.floatingSaveButton,children:e(`ai_providers.openai_models_fetch_apply`)})]}),isLoading:r,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.openai_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:s}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void C({allowFallback:!0}),loading:d,disabled:n||i,children:e(`ai_providers.openai_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.openai_models_search_label`),placeholder:e(`ai_providers.openai_models_search_placeholder`),value:h,onChange:e=>g(e.target.value),disabled:d}),l.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:D,disabled:n||i||d||b.length===0||S,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:O,disabled:n||i||d||_.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:_.size})})]}),p&&(0,B.jsx)(`div`,{className:`error-box`,children:p}),d?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_loading`)}):l.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_empty`)}):b.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:b.map(e=>{let t=_.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>E(e.name),disabled:n||i||d,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})})}var Sv=()=>({apiKey:``,prefix:``,baseUrl:``,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),Cv=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},wv=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return!n&&!r||e.push({name:n,alias:r}),e},[]),Tv=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:wv(e.modelEntries),excludedModels:yp(e.excludedText??``)});function Ev(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>Sv()),[b,x]=(0,y.useState)(()=>Tv(Sv())),S=typeof r.index==`string`,C=(0,y.useMemo)(()=>Cv(r.index),[r.index]),w=S&&C===null,T=(0,y.useMemo)(()=>{if(C!==null)return l[C]},[l,C]),E=C!==null&&!T,D=e(C===null?`ai_providers.vertex_add_modal_title`:`ai_providers.vertex_edit_modal_title`),O=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),k=d_({onBack:O});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&O()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[O]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),Promise.all([o(`vertex-api-key`),Mh.getVertexConfigs()]).then(([e,n])=>{if(t)return;let r=Array.isArray(n)?n:Array.isArray(e)?e:[];u(r),s(`vertex-api-key`,r),c(`vertex-api-key`)}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[c,o,e,s]),(0,y.useEffect)(()=>{if(d)return;if(T){let e={...T,headers:af(T.headers),modelEntries:E_(T.models),excludedText:bp(T.excludedModels)};v(e),x(Tv(e));return}let e=Sv();v(e),x(Tv(e))},[T,d]);let A=!a&&!p&&!d&&!w&&!E,j=(0,y.useMemo)(()=>of(_.headers),[_.headers]),M=(0,y.useMemo)(()=>wv(_.modelEntries),[_.modelEntries]),N=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),P=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),ee=(0,y.useMemo)(()=>!__(b.headers,j),[b.headers,j]),F=(0,y.useMemo)(()=>!v_(b.models,M),[b.models,M]),I=(0,y.useMemo)(()=>!g_(b.excludedModels,N),[b.excludedModels,N]),L=b.apiKey!==_.apiKey.trim()||b.priority!==P||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.proxyUrl!==String(_.proxyUrl??``).trim()||ee||F||I,{allowNextNavigation:R}=f_({enabled:!d&&!p&&!w&&!E,shouldBlock:({currentLocation:e,nextLocation:t})=>L&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),te=(0,y.useCallback)(async()=>{if(!A)return;let t=(_.baseUrl??``).trim()||void 0;m(!0),g(``);try{let n={apiKey:_.apiKey.trim(),priority:_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):void 0,prefix:_.prefix?.trim()||void 0,baseUrl:t,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:_.modelEntries.map(e=>{let t=e.name.trim(),n=e.alias.trim();return!t||!n?null:{name:t,alias:n}}).filter(Boolean),excludedModels:yp(_.excludedText)},r=C===null?[...l,n]:l.map((e,t)=>t===C?n:e);await Mh.saveVertexConfigs(r),s(`vertex-api-key`,r),c(`vertex-api-key`),i(e(C===null?`notification.vertex_config_added`:`notification.vertex_config_updated`),`success`),R(),x(Tv(_)),O()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}},[R,A,c,l,C,_,O,i,e,s]);return(0,B.jsx)(h_,{ref:k,contentClassName:y_.content,title:D,onBack:O,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:O,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:te,loading:p,disabled:!A,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),w||E?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_key_label`),placeholder:e(`ai_providers.vertex_add_modal_key_placeholder`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_url_label`),placeholder:e(`ai_providers.vertex_add_modal_url_placeholder`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_proxy_label`),placeholder:e(`ai_providers.vertex_add_modal_proxy_placeholder`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.vertex_models_label`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),addLabel:e(`ai_providers.vertex_models_add_btn`),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]})]})]})})}async function Dv(e){try{if(typeof navigator<`u`&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>`u`||!document.body)return!1;let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.opacity=`0`,n.style.pointerEvents=`none`,n.style.left=`-9999px`,n.style.top=`0`,n.style.width=`1px`,n.style.height=`1px`,n.style.padding=`0`,n.style.border=`0`,document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);let r=document.execCommand(`copy`);if(document.body.removeChild(n),t?.focus)try{t.focus()}catch{}return r}catch{return!1}}var Ov=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generator:%20visioncortex%20VTracer%200.6.4%20--%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='59'%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L27,40%20L32,50%20L36,54%20L35,59%20L30,59%20L22,52%20L11,35%20L6,33%20L-1,34%20L-6,39%20L-14,52%20L-22,59%20L-28,59%20L-27,53%20L-22,47%20L-17,34%20L-10,12%20L-5,3%20Z%20'%20fill='%233789F9'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L25,35%20L21,34%20L16,29%20L11,26%20L7,20%20L7,18%20L2,16%20L-3,15%20L-8,18%20L-12,19%20L-9,9%20L-4,2%20Z%20'%20fill='%236D80D8'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L20,19%20L13,15%20L10,12%20L3,10%20L-1,8%20L-7,7%20L-4,2%20Z%20'%20fill='%23D78240'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L5,1%20L10,4%20L12,9%20L1,8%20L-5,13%20L-10,21%20L-13,26%20L-16,26%20L-9,5%20L-4,2%20Z%20M6,7%20Z%20'%20fill='%233294CC'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,2%20L10,10%20L12,18%20L5,14%20L1,10%20L0,4%20L-3,3%20L0,2%20Z%20'%20fill='%23E45C49'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L9,1%20L12,3%20L12,5%20L7,6%20L4,8%20L-1,11%20L-5,12%20L-2,2%20Z%20'%20fill='%2390AE64'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L5,1%20L5,4%20L-2,7%20L-7,11%20L-11,10%20L-9,5%20L-4,2%20Z%20'%20fill='%2353A89A'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,0%20L16,9%20L17,13%20L12,12%20L8,9%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%23B5677D'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,0%20L14,6%20L19,11%20L23,12%20L22,15%20L15,12%20L10,8%20L10,6%20L4,5%20Z%20'%20fill='%23778998'%20transform='translate(27,12)'/%3e%3cpath%20d='M0,0%20L4,2%20L-11,17%20L-12,14%20L-5,4%20Z%20'%20fill='%233390DF'%20transform='translate(26,21)'/%3e%3cpath%20d='M0,0%20L2,1%20L-4,5%20L-9,9%20L-13,13%20L-14,10%20L-13,7%20L-6,4%20L-3,1%20Z%20'%20fill='%233FA1B7'%20transform='translate(27,18)'/%3e%3cpath%20d='M0,0%20L4,0%20L9,5%20L13,6%20L12,9%20L5,6%20L0,2%20Z%20'%20fill='%238277BB'%20transform='translate(37,18)'/%3e%3cpath%20d='M0,0%20L5,1%20L7,6%20L-2,5%20Z%20M1,4%20Z%20'%20fill='%234989CF'%20transform='translate(30,17)'/%3e%3cpath%20d='M0,0%20L5,1%20L2,3%20L-3,6%20L-7,7%20L-6,3%20Z%20'%20fill='%2371B774'%20transform='translate(23,12)'/%3e%3cpath%20d='M0,0%20L7,1%20L9,7%20L5,6%20L0,1%20Z%20'%20fill='%236687E9'%20transform='translate(44,28)'/%3e%3cpath%20d='M0,0%20L7,0%20L5,1%20L5,3%20L8,4%20L4,5%20L-2,4%20Z%20'%20fill='%23C7AF38'%20transform='translate(23,3)'/%3e%3cpath%20d='M0,0%20L8,0%20L8,3%20L4,4%20L-4,3%20Z%20'%20fill='%23EF842A'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L7,4%20L7,6%20L10,6%20L11,10%20L4,6%20L0,2%20Z%20'%20fill='%23CD5D67'%20transform='translate(37,9)'/%3e%3cpath%20d='M0,0%20L5,2%20L9,8%20L8,11%20L2,3%20L0,2%20Z%20'%20fill='%23F35241'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L8,2%20L9,6%20L4,5%20L0,2%20Z%20'%20fill='%23A667A2'%20transform='translate(41,18)'/%3e%3cpath%20d='M0,0%20L9,1%20L8,3%20L-2,3%20Z%20'%20fill='%23A4B34C'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L2,0%20L7,5%20L8,7%20L3,6%20L0,2%20Z%20'%20fill='%23617FCF'%20transform='translate(35,18)'/%3e%3cpath%20d='M0,0%20L5,2%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%239D7784'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,2%20L6,4%20L0,3%20Z%20'%20fill='%23BC7F59'%20transform='translate(31,7)'/%3e%3c/svg%3e`,kv=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cfilter%20id='master_svg0_278_51503'%20filterUnits='objectBoundingBox'%20color-interpolation-filters='sRGB'%20x='0'%20y='0'%20width='1'%20height='1'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='BackgroundImageFix'%20result='shape'/%3e%3cfeGaussianBlur%20in='BackgroundImageFix'%20stdDeviation='1.3333334922790527'/%3e%3cfeComposite%20in2='SourceAlpha'%20operator='in'%20result='effect1_foregroundBlur'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_foregroundBlur'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20x1='0.07353696972131729'%20y1='0.12899449467658997'%20x2='0.9907095821060244'%20y2='0.9383787344260006'%20id='master_svg1_93_40276'%3e%3cstop%20offset='0%25'%20stop-color='%235C5CFF'%20stop-opacity='1'/%3e%3cstop%20offset='100%25'%20stop-color='%23AE5CFF'%20stop-opacity='1'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%3e%3cg%20filter='url(%23master_svg0_278_51503)'%3e%3crect%20x='0'%20y='0'%20width='32'%20height='32'%20rx='16'%20fill='%23F0F2F5'%20fill-opacity='0'/%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M31.843111328125,14.751C31.315411328125,7.18121,25.497411328125,1.04691,17.966011328125,0.119698C10.434711328125,-0.807512,3.302541328125,3.73244,0.954596328125,10.9482C0.345662328125,12.8248,1.732821328125,14.751,3.705641328125,14.751C4.950051328125,14.7517,6.055631328125,13.9569,6.451401328125,12.7772C7.497331328125,9.65101,10.504411328125,3.91401,18.482011328125,3.91401Q29.445911328125,3.91401,31.843111328125,14.751ZM9.127681328125,17.3314L9.127681328125,13.0862Q9.127681328125,13.0022,9.144081328125,12.9198Q9.160481328125,12.8373,9.192641328125,12.7597Q9.224801328125,12.682,9.271501328125,12.6122Q9.318191328125,12.5423,9.377621328125,12.4828Q9.437051328125,12.4234,9.506931328125,12.3767Q9.576811328125,12.33,9.654461328125,12.2979Q9.732111328125,12.2657,9.814541328125,12.2493Q9.896971328125,12.2329,9.981021328125,12.2329L11.049211328125,12.2329Q11.133211328125,12.2329,11.215711328125,12.2493Q11.298111328125,12.2657,11.375811328125,12.2979Q11.453411328125,12.33,11.523311328125,12.3767Q11.593211328125,12.4234,11.652611328125,12.4828Q11.712011328125,12.5423,11.758711328125,12.6122Q11.805411328125,12.682,11.837611328125,12.7597Q11.869711328125,12.8373,11.886111328125,12.9198Q11.902511328125,13.0022,11.902511328125,13.0862L11.902511328125,17.3314Q11.902511328125,17.4154,11.886111328125,17.4978Q11.869711328125,17.5803,11.837611328125,17.6579Q11.805411328125,17.7356,11.758711328125,17.8055Q11.712011328125,17.8753,11.652611328125,17.9348Q11.593211328125,17.9942,11.523311328125,18.0409Q11.453411328125,18.0876,11.375811328125,18.1197Q11.298111328125,18.1519,11.215711328125,18.1683Q11.133211328125,18.1847,11.049211328125,18.1847L9.981021328125,18.1847Q9.896971328125,18.1847,9.814541328125,18.1683Q9.732111328125,18.1519,9.654461328125,18.1197Q9.576811328125,18.0876,9.506931328125,18.0409Q9.437051328125,17.9942,9.377621328125,17.9348Q9.318191328125,17.8753,9.271501328125,17.8055Q9.224801328125,17.7356,9.192641328125,17.6579Q9.160481328125,17.5803,9.144081328125,17.4978Q9.127681328125,17.4154,9.127681328125,17.3314ZM17.273611328125,17.3295C17.272611328125,17.8015,17.654911328125,18.1847,18.126911328125,18.1847L19.408411328125,18.1847C19.879011328125,18.1847,20.260711328125,17.8038,20.261811328125,17.3332L20.266411328125,15.2107L20.266411328125,15.2069L20.261811328125,13.0844C20.260711328125,12.6138,19.879011328125,12.2329,19.408411328125,12.2329L18.126911328125,12.2329C17.654911328125,12.2329,17.272611328125,12.6161,17.273611328125,13.0881L17.278211328125,15.2069L17.278211328125,15.2107L17.273611328125,17.3295ZM13.574711328125,28.0523C21.552211328125,28.0523,24.559311328125,22.3153,25.605811328125,19.1897C26.001411328125,18.0098,27.107111328125,17.215,28.351511328125,17.2158C30.323811328125,17.2158,31.711511328125,19.1416,31.102611328125,21.0181C30.552411328125,22.7189,29.716211328125,24.3134,28.629811328125,25.733L30.137611328125,30.2235L24.775211328125,29.3432C14.645911328125,36.0484,1.048779328125,29.3346,0.214111328125,17.2158Q2.611231328125,28.0523,13.574711328125,28.0523Z'%20fill-rule='evenodd'%20fill='url(%23master_svg1_93_40276)'%20fill-opacity='1'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e`,Av=`data:image/svg+xml,%3csvg%20fill='%23FFFFFF'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23FFFFFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e`,jv=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23027AFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e`,Mv=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-fill'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,Nv=new Set([`antigravity`,`claude`,`codex`,`gemini-cli`,`kimi`]),Pv=/^[+-]?\d+$/,Fv={qwen:{light:{bg:`#ede5fd`,text:`#5530c7`},dark:{bg:`#36208a`,text:`#b5a3f0`}},kimi:{light:{bg:`#dce8ff`,text:`#0560cf`},dark:{bg:`#003880`,text:`#70b5ff`}},gemini:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},"gemini-cli":{light:{bg:`#e0e8ff`,text:`#1e4fa3`},dark:{bg:`#1c3f73`,text:`#a8c7ff`}},aistudio:{light:{bg:`#f0f2f5`,text:`#2f343c`},dark:{bg:`#373c42`,text:`#cfd3db`}},claude:{light:{bg:`#fbece4`,text:`#c05621`},dark:{bg:`#5e2c14`,text:`#e8a882`}},codex:{light:{bg:`#eae7ff`,text:`#3538d4`},dark:{bg:`#262395`,text:`#b5b0ff`}},antigravity:{light:{bg:`#e0f7fa`,text:`#006064`},dark:{bg:`#004d40`,text:`#80deea`}},iflow:{light:{bg:`#f5e3fc`,text:`#9025c8`},dark:{bg:`#521490`,text:`#d49cf5`}},vertex:{light:{bg:`#e4edfd`,text:`#2b5fbc`},dark:{bg:`#1a3d80`,text:`#89b3f7`}},empty:{light:{bg:`#f5f5f5`,text:`#616161`},dark:{bg:`#424242`,text:`#bdbdbd`}},unknown:{light:{bg:`#f0f0f0`,text:`#666666`,border:`1px dashed #999999`},dark:{bg:`#3a3a3a`,text:`#aaaaaa`,border:`1px dashed #666666`}}},Iv={antigravity:Ov,aistudio:Pg,claude:Cg,codex:Mg,gemini:Pg,"gemini-cli":Pg,iflow:kv,kimi:{light:jv,dark:Av},qwen:Mv,vertex:Vg},Lv=e=>Math.min(30,Math.max(3,Math.round(e))),Rv=(e,t,n)=>t===404?e(`common.quota_update_required`):t===403?e(`common.quota_check_credential`):n,zv=e=>e.trim().toLowerCase(),Bv=e=>{let t=e.status_message??e.statusMessage;return typeof t==`string`?t.trim():t==null?``:String(t).trim()},Vv=e=>Bv(e).length>0,Hv=(e,t)=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},Uv=(e,t)=>{let n=Fv[e]||Fv.unknown;return t===`dark`&&n.dark?n.dark:n.light},Wv=(e,t)=>{let n=Iv[zv(e)];return n?typeof n==`string`?n:t===`dark`?n.dark:n.light:null},Gv=e=>{if(typeof e==`number`)return Number.isInteger(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(!t||!Pv.test(t))return;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)?n:void 0};function Kv(e){let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}var qv=e=>{let t=e.modtime??e.modified;if(!t)return`-`;let n=Number(t),r=Number.isFinite(n)&&!Number.isNaN(n)?new Date(n<0xe8d4a51000?n*1e3:n):Ih(t)??new Date(String(t));return Number.isNaN(r.getTime())?`-`:r.toLocaleString()},Jv=(e,t,n)=>(n[zv(t)]||n[t]||[]).some(t=>{if(t.includes(`*`)){let n=t.split(`*`).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.*`);return RegExp(`^${n}$`,`i`).test(e)}return t.toLowerCase()===e.toLowerCase()}),Yv={qwen:{light:{bg:`#ede5fd`,text:`#5530c7`},dark:{bg:`#36208a`,text:`#b5a3f0`}},gemini:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},"gemini-cli":{light:{bg:`#e0e8ff`,text:`#1e4fa3`},dark:{bg:`#1c3f73`,text:`#a8c7ff`}},aistudio:{light:{bg:`#f0f2f5`,text:`#2f343c`},dark:{bg:`#373c42`,text:`#cfd3db`}},claude:{light:{bg:`#fbece4`,text:`#c05621`},dark:{bg:`#5e2c14`,text:`#e8a882`}},codex:{light:{bg:`#eae7ff`,text:`#3538d4`},dark:{bg:`#262395`,text:`#b5b0ff`}},kimi:{light:{bg:`#dce8ff`,text:`#0560cf`},dark:{bg:`#003880`,text:`#70b5ff`}},antigravity:{light:{bg:`#e0f7fa`,text:`#006064`},dark:{bg:`#004d40`,text:`#80deea`}},iflow:{light:{bg:`#f5e3fc`,text:`#9025c8`},dark:{bg:`#521490`,text:`#d49cf5`}},vertex:{light:{bg:`#e4edfd`,text:`#2b5fbc`},dark:{bg:`#1a3d80`,text:`#89b3f7`}},empty:{light:{bg:`#f5f5f5`,text:`#616161`},dark:{bg:`#424242`,text:`#bdbdbd`}},unknown:{light:{bg:`#f0f0f0`,text:`#666666`,border:`1px dashed #999999`},dark:{bg:`#3a3a3a`,text:`#aaaaaa`,border:`1px dashed #666666`}}},Xv=[`https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels`,`https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:fetchAvailableModels`,`https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels`],Zv={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":`antigravity/1.11.5 windows/amd64`},Qv=[{id:`claude-gpt`,label:`Claude/GPT`,identifiers:[`claude-sonnet-4-6`,`claude-opus-4-6-thinking`,`gpt-oss-120b-medium`]},{id:`gemini-3-pro`,label:`Gemini 3 Pro`,identifiers:[`gemini-3-pro-high`,`gemini-3-pro-low`]},{id:`gemini-3-1-pro-series`,label:`Gemini 3.1 Pro Series`,identifiers:[`gemini-3.1-pro-high`,`gemini-3.1-pro-low`]},{id:`gemini-2-5-flash`,label:`Gemini 2.5 Flash`,identifiers:[`gemini-2.5-flash`,`gemini-2.5-flash-thinking`]},{id:`gemini-2-5-flash-lite`,label:`Gemini 2.5 Flash Lite`,identifiers:[`gemini-2.5-flash-lite`]},{id:`gemini-2-5-cu`,label:`Gemini 2.5 CU`,identifiers:[`rev19-uic3-1p`]},{id:`gemini-3-flash`,label:`Gemini 3 Flash`,identifiers:[`gemini-3-flash`]},{id:`gemini-image`,label:`gemini-3.1-flash-image`,identifiers:[`gemini-3.1-flash-image`],labelFromModel:!0}],$v=`https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota`,ey=`https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist`,ty={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`},ny=[{id:`gemini-flash-lite-series`,label:`Gemini Flash Lite Series`,preferredModelId:`gemini-2.5-flash-lite`,modelIds:[`gemini-2.5-flash-lite`]},{id:`gemini-flash-series`,label:`Gemini Flash Series`,preferredModelId:`gemini-3-flash-preview`,modelIds:[`gemini-3-flash-preview`,`gemini-2.5-flash`]},{id:`gemini-pro-series`,label:`Gemini Pro Series`,preferredModelId:`gemini-3.1-pro-preview`,modelIds:[`gemini-3.1-pro-preview`,`gemini-3-pro-preview`,`gemini-2.5-pro`]}],ry=new Map(ny.map((e,t)=>[e.id,t])),iy=new Map(ny.flatMap(e=>e.modelIds.map(t=>[t,e]))),ay=[`gemini-2.0-flash`],oy=`https://api.anthropic.com/api/oauth/profile`,sy=`https://api.anthropic.com/api/oauth/usage`,cy={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"anthropic-beta":`oauth-2025-04-20`},ly=[{key:`five_hour`,id:`five-hour`,labelKey:`claude_quota.five_hour`},{key:`seven_day`,id:`seven-day`,labelKey:`claude_quota.seven_day`},{key:`seven_day_oauth_apps`,id:`seven-day-oauth-apps`,labelKey:`claude_quota.seven_day_oauth_apps`},{key:`seven_day_opus`,id:`seven-day-opus`,labelKey:`claude_quota.seven_day_opus`},{key:`seven_day_sonnet`,id:`seven-day-sonnet`,labelKey:`claude_quota.seven_day_sonnet`},{key:`seven_day_cowork`,id:`seven-day-cowork`,labelKey:`claude_quota.seven_day_cowork`},{key:`iguana_necktie`,id:`iguana-necktie`,labelKey:`claude_quota.iguana_necktie`}],uy=`https://chatgpt.com/backend-api/wham/usage`,dy={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":`codex_cli_rs/0.76.0 (Debian 13.0.0; x86_64) WindowsTerminal`},fy=`https://api.kimi.com/coding/v1/usages`,py={Authorization:`Bearer $TOKEN$`},my=e=>typeof e==`number`&&Number.isFinite(e)?e.toString():typeof e==`string`&&e.trim()||null,hy=`_vertex`;function gy(e){return typeof e==`string`?e.trim()||null:typeof e==`number`&&Number.isFinite(e)?e.toString():null}function _y(e){let t=gy(e);return t?t.endsWith(hy)?t.slice(0,-7):t:null}function vy(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=e.trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}function yy(e){let t=vy(e);if(t!==null)return t;if(typeof e==`string`){let t=e.trim();if(!t)return null;if(t.endsWith(`%`)){let e=Number(t.slice(0,-1));return Number.isFinite(e)?e/100:null}}return null}function by(e){let t=gy(e);return t?t.toLowerCase():null}function xy(e){let t=e.trim();if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(Math.ceil(e.length/4)*4,`=`);if(typeof window<`u`&&typeof window.atob==`function`)return window.atob(n);if(typeof atob==`function`)return atob(n)}catch{return null}return null}function Sy(e){if(!e)return null;if(typeof e==`object`)return Array.isArray(e)?null:e;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`)return e}catch{}let n=t.split(`.`);if(n.length<2)return null;let r=xy(n[1]);if(!r)return null;try{let e=JSON.parse(r);if(e&&typeof e==`object`)return e}catch{return null}return null}function Cy(e){let t=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return e}catch{return null}return null}return typeof e==`object`&&!Array.isArray(e)?e:null},n=t(e);return n?`models`in n?n:t(n.body)||n:null}function wy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Ty(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Ey(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Dy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Oy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function ky(e){let t=Sy(e);return t?gy(t.chatgpt_account_id??t.chatgptAccountId):null}function Ay(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=[e.id_token,t?.id_token,n?.id_token];for(let e of r){let t=ky(e);if(t)return t}return null}function jy(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=e&&typeof e.id_token==`object`&&e.id_token!==null?e.id_token:null,i=t&&typeof t.id_token==`object`&&t.id_token!==null?t.id_token:null,a=[e.plan_type,e.planType,e.plan_type,e.planType,e.id_token,r?.plan_type,r?.planType,t?.plan_type,t?.planType,t?.id_token,i?.plan_type,i?.planType,n?.plan_type,n?.planType,n?.id_token];for(let e of a){let t=by(e);if(t)return t}return null}function My(e){if(typeof e!=`string`)return null;let t=Array.from(e.matchAll(/\(([^()]+)\)/g));return t.length===0?null:t[t.length-1]?.[1]?.trim()||null}function Ny(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=[e.account,e.account,t?.account,n?.account];for(let e of r){let t=My(e);if(t)return t}return null}function Py(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.toLocaleString(void 0,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function Fy(e){if(!e)return`-`;let t=new Date(e*1e3);return Number.isNaN(t.getTime())?`-`:t.toLocaleString(void 0,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function Iy(e){if(!e)return`-`;let t=vy(e.reset_at??e.resetAt);if(t!==null&&t>0)return Fy(t);let n=vy(e.reset_after_seconds??e.resetAfterSeconds);return n!==null&&n>0?Fy(Math.floor(Date.now()/1e3+n)):`-`}function Ly(e,t){let n=Error(e);return t!==void 0&&(n.status=t),n}function Ry(e){if(typeof e==`object`&&e&&`status`in e){let t=e.status;if(typeof t==`number`&&Number.isFinite(t))return t;let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}function zy(e,t){return t?e(`kimi_quota.reset_hint`,{hint:t}):``}function By(e){let t=e.provider??e.type??``;return String(t).trim().toLowerCase()}function Vy(e){return By(e)===`antigravity`}function Hy(e){return By(e)===`claude`}function Uy(e){return By(e)===`codex`}function Wy(e){return By(e)===`gemini-cli`}function Gy(e){return By(e)===`kimi`}function Ky(e){let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}function qy(e){let t=e.disabled;return typeof t==`boolean`?t:typeof t==`number`?t!==0:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}function Jy(e){return ay.some(t=>e===t||e.startsWith(`${t}-`))}function Yy(e,t){if(!e)return t;if(!t)return e;let n=new Date(e).getTime(),r=new Date(t).getTime();return Number.isNaN(n)?t:Number.isNaN(r)||n<=r?e:t}function Xy(e,t){return e===null?t:t===null?e:Math.min(e,t)}function Zy(e){if(e.length===0)return[];let t=new Map;e.forEach(e=>{if(Jy(e.modelId))return;let n=iy.get(e.modelId),r=n?.id??e.modelId,i=n?.label??e.modelId,a=e.tokenType??``,o=`${r}::${a}`,s=t.get(o);if(!s){let s=n?.preferredModelId,c=s&&e.modelId===s?e:void 0;t.set(o,{id:`${r}${a?`-${a}`:``}`,label:i,tokenType:e.tokenType,modelIds:[e.modelId],preferredModelId:s,preferredBucket:c,fallbackRemainingFraction:e.remainingFraction,fallbackRemainingAmount:e.remainingAmount,fallbackResetTime:e.resetTime});return}s.fallbackRemainingFraction=Xy(s.fallbackRemainingFraction,e.remainingFraction),s.fallbackRemainingAmount=Xy(s.fallbackRemainingAmount,e.remainingAmount),s.fallbackResetTime=Yy(s.fallbackResetTime,e.resetTime),s.modelIds.push(e.modelId),s.preferredModelId&&e.modelId===s.preferredModelId&&(s.preferredBucket=e)});let n=e=>{let t=e.tokenType?`-${e.tokenType}`:``,n=e.id.endsWith(t)?e.id.slice(0,e.id.length-t.length):e.id;return ry.get(n)??2**53-1};return Array.from(t.values()).sort((e,t)=>{let r=n(e)-n(t);if(r!==0)return r;let i=e.tokenType??``,a=t.tokenType??``;return i.localeCompare(a)}).map(e=>{let t=Array.from(new Set(e.modelIds)),n=e.preferredBucket,r=n?n.remainingFraction:e.fallbackRemainingFraction,i=n?n.remainingAmount:e.fallbackRemainingAmount,a=n?n.resetTime:e.fallbackResetTime;return{id:e.id,label:e.label,remainingFraction:r,remainingAmount:i,resetTime:a,tokenType:e.tokenType,modelIds:t}})}function Qy(e){if(!e)return{remainingFraction:null};let t=e.quotaInfo??e.quota_info??{},n=yy(t.remainingFraction??t.remaining_fraction??t.remaining),r=t.resetTime??t.reset_time;return{remainingFraction:n,resetTime:typeof r==`string`?r:void 0,displayName:typeof e.displayName==`string`?e.displayName:void 0}}function $y(e,t){let n=e[t];if(n)return{id:t,entry:n};let r=Object.entries(e).find(([,e])=>(typeof e?.displayName==`string`?e.displayName:``).toLowerCase()===t.toLowerCase());return r?{id:r[0],entry:r[1]}:null}function eb(e){let t=[],n=new Map(Qv.map(e=>[e.id,e])),r=(t,n)=>{let r=t.identifiers.map(t=>$y(e,t)).filter(e=>!!e).map(({id:e,entry:t})=>{let n=Qy(t),r=n.remainingFraction??(n.resetTime?0:null);return r===null?null:{id:e,remainingFraction:r,resetTime:n.resetTime,displayName:n.displayName}}).filter(e=>e!==null);if(r.length===0)return null;let i=Math.min(...r.map(e=>e.remainingFraction)),a=n??r.map(e=>e.resetTime).find(Boolean),o=r.map(e=>e.displayName).find(Boolean),s=t.labelFromModel&&o?o:t.label;return{id:t.id,label:s,models:r.map(e=>e.id),remainingFraction:i,resetTime:a}},i=(e,i)=>{let a=n.get(e);if(!a)return null;let o=r(a,i);return o&&t.push(o),o};i(`claude-gpt`);let a=i(`gemini-3-1-pro-series`),o=i(`gemini-3-pro`),s=a?.resetTime??o?.resetTime;return i(`gemini-2-5-flash`),i(`gemini-2-5-flash-lite`),i(`gemini-2-5-cu`),i(`gemini-3-flash`),i(`gemini-image`,s),t}function tb(e){if(typeof e==`number`&&Number.isFinite(e))return Math.floor(e);if(typeof e==`string`){let t=Number(e.trim());return Number.isFinite(t)?Math.floor(t):null}return null}function nb(e){for(let t of[`reset_at`,`resetAt`,`reset_time`,`resetTime`]){let n=e[t];if(typeof n==`string`&&n.trim())try{let e=n.replace(/(\.\d{6})\d+/,`$1`),t=new Date(e);if(Number.isNaN(t.getTime()))continue;let r=Date.now(),i=t.getTime()-r;if(i<=0)return;let a=Math.floor(i/6e4),o=Math.floor(a/60),s=a%60;return o>0&&s>0?`${o}h ${s}m`:o>0?`${o}h`:s>0?`${s}m`:`<1m`}catch{continue}}for(let t of[`reset_in`,`resetIn`,`ttl`]){let n=tb(e[t]);if(n!==null&&n>0){let e=Math.floor(n/3600),t=Math.floor(n%3600/60);return e>0&&t>0?`${e}h ${t}m`:e>0?`${e}h`:t>0?`${t}m`:`<1m`}}}function rb(e,t){let n=typeof t==`string`?t.trim().toUpperCase():``;return n===`MINUTES`?e%60==0?`${e/60}h`:`${e}m`:n===`HOURS`?`${e}h`:n===`DAYS`?`${e}d`:`${e}s`}function ib(e,t,n,r){for(let n of[`name`,`title`,`scope`]){let r=e[n]??t[n];if(typeof r==`string`&&r.trim())return{label:r.trim()}}let i=tb(n.duration)??tb(e.duration)??tb(t.duration),a=n.timeUnit??e.timeUnit??t.timeUnit;return i!==null&&i>0?{labelKey:`kimi_quota.limit_window`,labelParams:{duration:rb(i,a)}}:{labelKey:`kimi_quota.limit_index`,labelParams:{index:r+1}}}function ab(e,t){let n=tb(e.limit),r=tb(e.used);if(r===null){let t=tb(e.remaining);t!==null&&n!==null&&(r=n-t)}if(r===null&&n===null)return null;let i=typeof e.name==`string`&&e.name.trim()||typeof e.title==`string`&&e.title.trim();return{...i?{label:i}:t,used:r??0,limit:n??0,resetHint:nb(e)}}function ob(e){let t=[],n=e.usage;if(n&&typeof n==`object`){let e=ab(n,{labelKey:`kimi_quota.weekly_limit`});e&&t.push({id:`summary`,...e})}let r=e.limits;return Array.isArray(r)&&r.forEach((e,n)=>{let r=e.detail&&typeof e.detail==`object`?e.detail:e,i=ab(r,ib(e,r,e.window&&typeof e.window==`object`?e.window:{},n));i&&t.push({id:`limit-${n}`,...i})}),t}var sb={container:`QuotaPage-module__container___CkTNE`,pageHeader:`QuotaPage-module__pageHeader___7RVAE`,pageTitle:`QuotaPage-module__pageTitle___c6BF7`,description:`QuotaPage-module__description___qDPuI`,headerActions:`QuotaPage-module__headerActions___Jfu3A`,titleWrapper:`QuotaPage-module__titleWrapper___lHVCF`,countBadge:`QuotaPage-module__countBadge___tuPLs`,errorBox:`QuotaPage-module__errorBox___Ub2Qs`,pageSizeSelect:`QuotaPage-module__pageSizeSelect___1AaaU`,statsInfo:`QuotaPage-module__statsInfo___coFxw`,antigravityGrid:`QuotaPage-module__antigravityGrid___d29-f`,claudeGrid:`QuotaPage-module__claudeGrid___g3N0r`,codexGrid:`QuotaPage-module__codexGrid___gQjcK`,geminiCliGrid:`QuotaPage-module__geminiCliGrid___R6KEW`,kimiGrid:`QuotaPage-module__kimiGrid___-9u7J`,antigravityControls:`QuotaPage-module__antigravityControls___jdhuf`,claudeControls:`QuotaPage-module__claudeControls___CJ9XX`,codexControls:`QuotaPage-module__codexControls___ZabMA`,geminiCliControls:`QuotaPage-module__geminiCliControls___aWZsx`,kimiControls:`QuotaPage-module__kimiControls___3WNBe`,antigravityControl:`QuotaPage-module__antigravityControl___Z2Ti6`,claudeControl:`QuotaPage-module__claudeControl___4J9Tz`,codexControl:`QuotaPage-module__codexControl___P4r4g`,geminiCliControl:`QuotaPage-module__geminiCliControl___SIXi-`,kimiControl:`QuotaPage-module__kimiControl___5rxbt`,viewModeToggle:`QuotaPage-module__viewModeToggle___BHo1O`,viewModeButton:`QuotaPage-module__viewModeButton___jjKnb`,viewModeButtonActive:`QuotaPage-module__viewModeButtonActive___LGwRk`,refreshAllButton:`QuotaPage-module__refreshAllButton___c9-I-`,claudeCard:`QuotaPage-module__claudeCard___z9zBZ`,antigravityCard:`QuotaPage-module__antigravityCard___0jKaG`,codexCard:`QuotaPage-module__codexCard___2xhZX`,geminiCliCard:`QuotaPage-module__geminiCliCard___i8Qjn`,kimiCard:`QuotaPage-module__kimiCard___WWvTD`,quotaSection:`QuotaPage-module__quotaSection___Yb6bk`,quotaRow:`QuotaPage-module__quotaRow___uNjD0`,quotaRowHeader:`QuotaPage-module__quotaRowHeader___jr9zd`,quotaModel:`QuotaPage-module__quotaModel___-3mcR`,quotaBar:`QuotaPage-module__quotaBar___ATY20`,quotaBarFill:`QuotaPage-module__quotaBarFill___arMGf`,quotaBarFillHigh:`QuotaPage-module__quotaBarFillHigh___yfdzz`,quotaBarFillMedium:`QuotaPage-module__quotaBarFillMedium___PbU2j`,quotaBarFillLow:`QuotaPage-module__quotaBarFillLow___1dvgT`,quotaMeta:`QuotaPage-module__quotaMeta___2Gr-S`,quotaPercent:`QuotaPage-module__quotaPercent___dwFKN`,quotaReset:`QuotaPage-module__quotaReset___AQC0c`,quotaAmount:`QuotaPage-module__quotaAmount___liJkK`,quotaMessage:`QuotaPage-module__quotaMessage___tXEKQ`,quotaMessageAction:`QuotaPage-module__quotaMessageAction___lCJz4`,quotaError:`QuotaPage-module__quotaError___rIKP-`,quotaWarning:`QuotaPage-module__quotaWarning___phfIc`,codexPlan:`QuotaPage-module__codexPlan___cNsir`,codexPlanLabel:`QuotaPage-module__codexPlanLabel___NR4tn`,codexPlanValue:`QuotaPage-module__codexPlanValue___TZDzO`,premiumPlanValue:`QuotaPage-module__premiumPlanValue___7ouKX`,fileCard:`QuotaPage-module__fileCard___7ZTk-`,cardHeader:`QuotaPage-module__cardHeader___vBGld`,typeBadge:`QuotaPage-module__typeBadge___ubtCA`,fileName:`QuotaPage-module__fileName___ATlvN`,pagination:`QuotaPage-module__pagination___W2eGv`,pageInfo:`QuotaPage-module__pageInfo___yNU7E`,warningOverlay:`QuotaPage-module__warningOverlay___lVjB7`,warningModal:`QuotaPage-module__warningModal___2pPNd`};function cb({percent:e,highThreshold:t,mediumThreshold:n}){let r=e===null?null:((e,t,n)=>Math.min(n,Math.max(t,e)))(e,0,100),i=r===null?sb.quotaBarFillMedium:r>=t?sb.quotaBarFillHigh:r>=n?sb.quotaBarFillMedium:sb.quotaBarFillLow,a=Math.round(r??0);return(0,B.jsx)(`div`,{className:sb.quotaBar,children:(0,B.jsx)(`div`,{className:`${sb.quotaBarFill} ${i}`,style:{width:`${a}%`}})})}function lb({item:e,quota:t,resolvedTheme:n,i18nPrefix:r,cardIdleMessageKey:i,cardClassName:a,defaultType:o,canRefresh:s=!1,onRefresh:c,renderQuotaItems:l}){let{t:u}=qo(),d=e.type||e.provider||o,f=Yv[d]||Yv.unknown,p=n===`dark`&&f.dark?f.dark:f.light,m=t?.status??`idle`,h=ub(u,t?.errorStatus,t?.error||u(`common.unknown_error`)),g=c?`${r}.idle`:i??`${r}.idle`,_=e=>{let t=`auth_files.filter_${e}`,n=u(t);return n===t?e.toLowerCase()===`iflow`?`iFlow`:e.charAt(0).toUpperCase()+e.slice(1):n};return(0,B.jsxs)(`div`,{className:`${sb.fileCard} ${a}`,children:[(0,B.jsxs)(`div`,{className:sb.cardHeader,children:[(0,B.jsx)(`span`,{className:sb.typeBadge,style:{backgroundColor:p.bg,color:p.text,...p.border?{border:p.border}:{}},children:_(d)}),(0,B.jsx)(`span`,{className:sb.fileName,children:e.name})]}),(0,B.jsx)(`div`,{className:sb.quotaSection,children:m===`loading`?(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(`${r}.loading`)}):m===`idle`?c?(0,B.jsx)(`button`,{type:`button`,className:`${sb.quotaMessage} ${sb.quotaMessageAction}`,onClick:c,disabled:!s,children:u(g)}):(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(g)}):m===`error`?(0,B.jsx)(`div`,{className:sb.quotaError,children:u(`${r}.load_failed`,{message:h})}):t?l(t,u,{styles:sb,QuotaProgressBar:cb}):(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(g)})})]})}var ub=(e,t,n)=>t===404?e(`common.quota_update_required`):t===403?e(`common.quota_check_credential`):n;function db(e){let{t}=qo(),n=np(e.storeSelector),r=np(t=>t[e.storeSetter]),i=(0,y.useRef)(!1),a=(0,y.useRef)(0);return{quota:n,loadQuota:(0,y.useCallback)(async(n,o,s)=>{if(i.current)return;i.current=!0;let c=++a.current;s(!0,o);try{if(n.length===0)return;r(t=>{let r={...t};return n.forEach(t=>{r[t.name]=e.buildLoadingState()}),r});let i=await Promise.all(n.map(async n=>{try{let r=await e.fetchQuota(n,t);return{name:n.name,status:`success`,data:r}}catch(e){let r=e instanceof Error?e.message:t(`common.unknown_error`),i=Ry(e);return{name:n.name,status:`error`,error:r,errorStatus:i}}}));if(c!==a.current)return;r(n=>{let r={...n};return i.forEach(n=>{n.status===`success`?r[n.name]=e.buildSuccessState(n.data):r[n.name]=e.buildErrorState(n.error||t(`common.unknown_error`),n.errorStatus)}),r})}finally{c===a.current&&(s(!1),i.current=!1)}},[e,r,t])}}function fb(e,t=16){let[n,r]=(0,y.useState)(1),[i,a]=(0,y.useState)(null),o=(0,y.useCallback)(e=>{a(e)},[]);return(0,y.useEffect)(()=>{if(!i)return;let n=()=>{let n=i.clientWidth,a=e+t,o=Math.floor((n+t)/a);r(Math.max(1,o))};n();let a=new ResizeObserver(()=>{n()});return a.observe(i),()=>a.disconnect()},[i,e,t]),[n,o]}var pb=25,mb=30,hb=(e,t=6)=>{let[n,r]=(0,y.useState)(1),[i,a]=(0,y.useState)(t),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=(0,y.useMemo)(()=>Math.max(1,Math.ceil(e.length/i)),[e.length,i]),d=(0,y.useMemo)(()=>Math.min(n,u),[n,u]);return{pageSize:i,totalPages:u,currentPage:d,pageItems:(0,y.useMemo)(()=>{let t=(d-1)*i;return e.slice(t,t+i)},[e,d,i]),setPageSize:(0,y.useCallback)(e=>{a(e),r(1)},[]),goToPrev:(0,y.useCallback)(()=>{r(e=>Math.max(1,e-1))},[]),goToNext:(0,y.useCallback)(()=>{r(e=>Math.min(u,e+1))},[u]),loading:o,loadingScope:c,setLoading:(0,y.useCallback)((e,t)=>{s(e),l(e?t??null:null)},[])}};function gb({config:e,files:t,loading:n,disabled:r}){let{t:i}=qo(),a=wc(e=>e.resolvedTheme),o=hc(e=>e.showNotification),s=np(t=>t[e.storeSetter]),[c,l]=fb(380),[u,d]=(0,y.useState)(`paged`),[f,p]=(0,y.useState)(!1),m=(0,y.useMemo)(()=>t.filter(t=>e.filterFn(t)),[t,e]),h=m.length<=mb,g=u===`all`&&!h?`paged`:u,{pageSize:_,totalPages:v,currentPage:b,pageItems:x,setPageSize:S,goToPrev:C,goToNext:w,loading:T,setLoading:E}=hb(m);(0,y.useEffect)(()=>{if(h||u!==`all`)return;let e=!1;return queueMicrotask(()=>{e||(d(`paged`),p(!0))}),()=>{e=!0}},[h,u]),(0,y.useEffect)(()=>{S(g===`all`?Math.max(1,m.length):Math.min(c*3,pb))},[g,c,m.length,S]);let{quota:D,loadQuota:O}=db(e),k=(0,y.useRef)(!1),A=(0,y.useRef)(n),j=(0,y.useCallback)(()=>{k.current=!0,i_()},[]);(0,y.useEffect)(()=>{let e=A.current;if(A.current=n,!k.current||n||!e)return;k.current=!1;let t=g===`all`?`all`:`page`,r=g===`all`?m:x;r.length!==0&&O(r,t,E)},[n,g,m,x,O,E]),(0,y.useEffect)(()=>{if(!n){if(m.length===0){s({});return}s(e=>{let t={};return m.forEach(n=>{let r=e[n.name];r&&(t[n.name]=r)}),t})}},[m,n,s]);let M=(0,y.useCallback)(async t=>{if(!(r||t.disabled)&&D[t.name]?.status!==`loading`){s(n=>({...n,[t.name]:e.buildLoadingState()}));try{let n=await e.fetchQuota(t,i);s(r=>({...r,[t.name]:e.buildSuccessState(n)})),o(i(`auth_files.quota_refresh_success`,{name:t.name}),`success`)}catch(n){let r=n instanceof Error?n.message:i(`common.unknown_error`),a=Ry(n);s(n=>({...n,[t.name]:e.buildErrorState(r,a)})),o(i(`auth_files.quota_refresh_failed`,{name:t.name,message:r}),`error`)}}},[e,r,D,s,o,i]),N=(0,B.jsxs)(`div`,{className:sb.titleWrapper,children:[(0,B.jsx)(`span`,{children:i(`${e.i18nPrefix}.title`)}),m.length>0&&(0,B.jsx)(`span`,{className:sb.countBadge,children:m.length})]}),P=T||n;return(0,B.jsxs)(hg,{title:N,extra:(0,B.jsxs)(`div`,{className:sb.headerActions,children:[(0,B.jsxs)(`div`,{className:sb.viewModeToggle,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,className:`${sb.viewModeButton} ${g===`paged`?sb.viewModeButtonActive:``}`,onClick:()=>d(`paged`),children:i(`auth_files.view_mode_paged`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,className:`${sb.viewModeButton} ${g===`all`?sb.viewModeButtonActive:``}`,onClick:()=>{m.length>mb?p(!0):d(`all`)},children:i(`auth_files.view_mode_all`)})]}),(0,B.jsxs)(V,{variant:`secondary`,size:`sm`,className:sb.refreshAllButton,onClick:j,disabled:r||P,loading:P,title:i(`quota_management.refresh_all_credentials`),"aria-label":i(`quota_management.refresh_all_credentials`),children:[!P&&(0,B.jsx)(cs,{size:16}),i(`quota_management.refresh_all_credentials`)]})]}),children:[m.length===0?(0,B.jsx)(wg,{title:i(`${e.i18nPrefix}.empty_title`),description:i(`${e.i18nPrefix}.empty_desc`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{ref:l,className:e.gridClassName,children:x.map(t=>(0,B.jsx)(lb,{item:t,quota:D[t.name],resolvedTheme:a,i18nPrefix:e.i18nPrefix,cardIdleMessageKey:e.cardIdleMessageKey,cardClassName:e.cardClassName,defaultType:e.type,canRefresh:!r&&!t.disabled,onRefresh:()=>void M(t),renderQuotaItems:e.renderQuotaItems},t.name))}),m.length>_&&g===`paged`&&(0,B.jsxs)(`div`,{className:sb.pagination,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:C,disabled:b<=1,children:i(`auth_files.pagination_prev`)}),(0,B.jsx)(`div`,{className:sb.pageInfo,children:i(`auth_files.pagination_info`,{current:b,total:v,count:m.length})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:w,disabled:b>=v,children:i(`auth_files.pagination_next`)})]})]}),f&&(0,B.jsx)(`div`,{className:sb.warningOverlay,onClick:()=>p(!1),children:(0,B.jsxs)(`div`,{className:sb.warningModal,onClick:e=>e.stopPropagation(),children:[(0,B.jsx)(`p`,{children:i(`auth_files.too_many_files_warning`)}),(0,B.jsx)(V,{variant:`primary`,size:`sm`,onClick:()=>p(!1),children:i(`common.confirm`)})]})})]})}var _b=`bamboo-precept-lgxtn`,vb=70,yb=30,bb=new Map,xb=new Map,Sb=async e=>{try{let t=(await ag.downloadText(e.name)).trim();if(!t)return _b;let n=JSON.parse(t),r=gy(n.project_id??n.projectId);if(r)return r;let i=n.installed&&typeof n.installed==`object`&&n.installed!==null?n.installed:null,a=i?gy(i.project_id??i.projectId):null;if(a)return a;let o=n.web&&typeof n.web==`object`&&n.web!==null?n.web:null,s=o?gy(o.project_id??o.projectId):null;if(s)return s}catch{return _b}return _b},Cb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`antigravity_quota.missing_auth_index`));let r=await Sb(e),i=JSON.stringify({project:r}),a=``,o,s,c=!1;for(let e of Xv)try{let r=await If.request({authIndex:n,method:`POST`,url:e,header:{...Zv},data:i});if(r.statusCode<200||r.statusCode>=300){a=Ff(r),o=r.statusCode,(r.statusCode===403||r.statusCode===404)&&(s??(s=r.statusCode));continue}c=!0;let l=Cy(r.body??r.bodyText)?.models;if(!l||typeof l!=`object`||Array.isArray(l)){a=t(`antigravity_quota.empty_models`);continue}let u=eb(l);if(u.length===0){a=t(`antigravity_quota.empty_models`);continue}return u}catch(e){a=e instanceof Error?e.message:t(`common.unknown_error`);let n=Ry(e);n&&(o=n,(n===403||n===404)&&(s??(s=n)))}if(c)return[];throw Ly(a||t(`common.unknown_error`),s??o)},wb=(e,t)=>{let n={codeFiveHour:{id:`five-hour`,labelKey:`codex_quota.primary_window`},codeWeekly:{id:`weekly`,labelKey:`codex_quota.secondary_window`},codeReviewFiveHour:{id:`code-review-five-hour`,labelKey:`codex_quota.code_review_primary_window`},codeReviewWeekly:{id:`code-review-weekly`,labelKey:`codex_quota.code_review_secondary_window`}},r=e.rate_limit??e.rateLimit??void 0,i=e.code_review_rate_limit??e.codeReviewRateLimit??void 0,a=e.additional_rate_limits??e.additionalRateLimits??[],o=[],s=(e,t,n,r,i,a,s)=>{if(!i)return;let c=Iy(i),l=vy(i.used_percent??i.usedPercent)??((a||s===!1)&&c!==`-`?100:null);o.push({id:e,label:t,labelKey:n,labelParams:r,usedPercent:l,resetLabel:c})},c=e=>e?vy(e.limit_window_seconds??e.limitWindowSeconds):null,l=r?.limit_reached??r?.limitReached,u=r?.allowed,d=(e,t)=>{let n=t?.allowOrderFallback??!0,r=e?.primary_window??e?.primaryWindow??null,i=e?.secondary_window??e?.secondaryWindow??null,a=[r,i],o=null,s=null;for(let e of a){if(!e)continue;let t=c(e);t===18e3&&!o?o=e:t===604800&&!s&&(s=e)}return n&&(o||(o=r&&r!==s?r:null),s||(s=i&&i!==o?i:null)),{fiveHourWindow:o,weeklyWindow:s}},f=d(r);s(n.codeFiveHour.id,t(n.codeFiveHour.labelKey),n.codeFiveHour.labelKey,void 0,f.fiveHourWindow,l,u),s(n.codeWeekly.id,t(n.codeWeekly.labelKey),n.codeWeekly.labelKey,void 0,f.weeklyWindow,l,u);let p=d(i),m=i?.limit_reached??i?.limitReached,h=i?.allowed;s(n.codeReviewFiveHour.id,t(n.codeReviewFiveHour.labelKey),n.codeReviewFiveHour.labelKey,void 0,p.fiveHourWindow,m,h),s(n.codeReviewWeekly.id,t(n.codeReviewWeekly.labelKey),n.codeReviewWeekly.labelKey,void 0,p.weeklyWindow,m,h);let g=e=>e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return Array.isArray(a)&&a.forEach((e,n)=>{let r=e?.rate_limit??e?.rateLimit??null;if(!r)return;let i=gy(e?.limit_name??e?.limitName)??gy(e?.metered_feature??e?.meteredFeature)??`additional-${n+1}`,a=g(i)||`additional-${n+1}`,o=r.primary_window??r.primaryWindow??null,c=r.secondary_window??r.secondaryWindow??null,l=r.limit_reached??r.limitReached,u=r.allowed;s(`${a}-five-hour-${n}`,t(`codex_quota.additional_primary_window`,{name:i}),`codex_quota.additional_primary_window`,{name:i},o,l,u),s(`${a}-weekly-${n}`,t(`codex_quota.additional_secondary_window`,{name:i}),`codex_quota.additional_secondary_window`,{name:i},c,l,u)}),o},Tb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`codex_quota.missing_auth_index`));let r=jy(e),i=Ay(e);if(!i)throw Error(t(`codex_quota.missing_account_id`));let a={...dy,"Chatgpt-Account-Id":i},o=await If.request({authIndex:n,method:`GET`,url:uy,header:a});if(o.statusCode<200||o.statusCode>=300)throw Ly(Ff(o),o.statusCode);let s=Ty(o.body??o.bodyText);if(!s)throw Error(t(`codex_quota.empty_windows`));let c=by(s.plan_type??s.planType),l=wb(s,t);return{planType:c??r,windows:l}},Eb=`GOOGLE_ONE_AI`,Db={"free-tier":`tier_free`,"legacy-tier":`tier_legacy`,"standard-tier":`tier_standard`,"g1-pro-tier":`tier_pro`,"g1-ultra-tier":`tier_ultra`},Ob=(e,t)=>{if(!e)return null;let n=e.currentTier??e.current_tier,r=gy((e.paidTier??e.paid_tier)?.id)??gy(n?.id);if(!r)return null;let i=Db[r.toLowerCase()];return i?t(`gemini_cli_quota.${i}`):r},kb=e=>{if(!e)return null;let t=e.currentTier??e.current_tier,n=gy((e.paidTier??e.paid_tier)?.id)??gy(t?.id);return n?n.toLowerCase():null},Ab=e=>{if(!e)return null;let t=e.paidTier??e.paid_tier,n=e.currentTier??e.current_tier,r=t??n;if(!r)return null;let i=r.availableCredits??r.available_credits??[],a=0,o=!1;for(let e of i){if(gy(e.creditType??e.credit_type)!==Eb)continue;let t=vy(e.creditAmount??e.credit_amount);t!==null&&(a+=t,o=!0)}return o?a:null},jb=async(e,t,n)=>{try{let r=await If.request({authIndex:e,method:`POST`,url:ey,header:{...ty},data:JSON.stringify({cloudaicompanionProject:t,metadata:{ideType:`IDE_UNSPECIFIED`,platform:`PLATFORM_UNSPECIFIED`,pluginType:`GEMINI`,duetProject:t}})});if(r.statusCode<200||r.statusCode>=300)return{tierLabel:null,tierId:null,creditBalance:null};let i=Dy(r.body??r.bodyText);return{tierLabel:Ob(i,n),tierId:kb(i),creditBalance:Ab(i)}}catch{return{tierLabel:null,tierId:null,creditBalance:null}}},Mb=(e,t)=>{let n=xb.get(e);return!n||n.requestId!==t?{tierLabel:null,tierId:null,creditBalance:null}:{tierLabel:n.tierLabel,tierId:n.tierId,creditBalance:n.creditBalance}},Nb=(e,t,n,r)=>{let i=(bb.get(e)??0)+1;return bb.set(e,i),xb.delete(e),(async()=>{let a=await jb(t,n,r);bb.get(e)===i&&(xb.set(e,{requestId:i,...a}),np.getState().setGeminiCliQuota(t=>{let n=t[e];return!n||n.status!==`success`||n.tierLabel===a.tierLabel&&n.tierId===a.tierId&&n.creditBalance===a.creditBalance?t:{...t,[e]:{...n,tierLabel:a.tierLabel,tierId:a.tierId,creditBalance:a.creditBalance}}}))})(),i},Pb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`gemini_cli_quota.missing_auth_index`));let r=Ny(e);if(!r)throw Error(t(`gemini_cli_quota.missing_project_id`));let i=await If.request({authIndex:n,method:`POST`,url:$v,header:{...ty},data:JSON.stringify({project:r})});if(i.statusCode<200||i.statusCode>=300)throw Ly(Ff(i),i.statusCode);let a=Ey(i.body??i.bodyText),o=Zy((Array.isArray(a?.buckets)?a?.buckets:[]).map(e=>{let t=_y(e.modelId??e.model_id);if(!t)return null;let n=gy(e.tokenType??e.token_type),r=yy(e.remainingFraction??e.remaining_fraction),i=vy(e.remainingAmount??e.remaining_amount),a=gy(e.resetTime??e.reset_time)??void 0,o=null;return i===null?a&&(o=0):o=i<=0?0:null,{modelId:t,tokenType:n,remainingFraction:r??o,remainingAmount:i,resetTime:a}}).filter(e=>e!==null)),s=Nb(e.name,n,r,t),c=Mb(e.name,s);return{fileName:e.name,supplementaryRequestId:s,buckets:o,tierLabel:c.tierLabel,tierId:c.tierId,creditBalance:c.creditBalance}},Fb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a}=y.default,o=e.groups??[];return o.length===0?a(`div`,{className:r.quotaMessage},t(`antigravity_quota.empty_models`)):o.map(e=>{let t=Math.max(0,Math.min(1,e.remainingFraction)),n=Math.round(t*100),o=Py(e.resetTime);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel,title:e.models.join(`, `)},e.label),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},`${n}%`),a(`span`,{className:r.quotaReset},o))),a(i,{percent:n,highThreshold:vb,mediumThreshold:yb}))})},Ib=new Set([`g1-ultra-tier`]),Lb=new Set([`pro`,`prolite`,`pro-lite`,`pro_lite`]),Rb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.windows??[],c=e.planType??null,l=(e=>{let n=by(e);return n?n===`pro`?t(`codex_quota.plan_pro`):Lb.has(n)&&n!==`pro`?t(`codex_quota.plan_prolite`):n===`plus`?t(`codex_quota.plan_plus`):n===`team`?t(`codex_quota.plan_team`):n===`free`?t(`codex_quota.plan_free`):e||n:null})(c),u=Lb.has(by(c)??``),d=[];if(l){let e=u?r.premiumPlanValue:r.codexPlanValue;d.push(a(`div`,{key:`plan`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`codex_quota.plan_label`)),a(`span`,{className:e},l)))}return s.length===0?(d.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`codex_quota.empty_windows`))),a(o,null,...d)):(d.push(...s.map(e=>{let n=e.usedPercent,o=n===null?null:Math.max(0,Math.min(100,n)),s=o===null?null:Math.max(0,Math.min(100,100-o)),c=s===null?`--`:`${Math.round(s)}%`,l=e.labelKey?t(e.labelKey,e.labelParams):e.label;return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),a(`span`,{className:r.quotaReset},e.resetLabel))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...d))},zb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.buckets??[],c=e.tierLabel??null,l=e.tierId??null,u=e.creditBalance??null,d=l!==null&&Ib.has(l),f=[];if(c){let e=d?r.premiumPlanValue:r.codexPlanValue;f.push(a(`div`,{key:`tier`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`gemini_cli_quota.tier_label`)),a(`span`,{className:e},c)))}return u!==null&&f.push(a(`div`,{key:`credits`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`gemini_cli_quota.credit_label`)),a(`span`,{className:r.codexPlanValue},t(`gemini_cli_quota.credit_amount`,{count:u})))),s.length===0?(f.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`gemini_cli_quota.empty_buckets`))),a(o,null,...f)):(f.push(...s.map(e=>{let n=e.remainingFraction,o=n===null?null:Math.max(0,Math.min(1,n)),s=o===null?null:Math.round(o*100),c=s===null?`--`:`${s}%`,l=e.remainingAmount===null||e.remainingAmount===void 0?null:t(`gemini_cli_quota.remaining_amount`,{count:e.remainingAmount}),u=e.modelIds&&e.modelIds.length>0?e.modelIds.join(`, `):e.label,d=e.tokenType?`${u} (${e.tokenType})`:u,f=Py(e.resetTime);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel,title:d},e.label),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),l?a(`span`,{className:r.quotaAmount},l):null,a(`span`,{className:r.quotaReset},f))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...f))},Bb=(e,t)=>{let n=[];for(let{key:r,id:i,labelKey:a}of ly){let o=e[r];if(!o||typeof o!=`object`||!(`utilization`in o))continue;let s=o,c=vy(s.utilization),l=Py(s.resets_at);n.push({id:i,label:t(a),labelKey:a,usedPercent:c,resetLabel:l})}return n},Vb=e=>{if(e!=null){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(typeof e==`string`){let t=e.trim().toLowerCase();if([`true`,`1`,`yes`,`y`,`on`].includes(t))return!0;if([`false`,`0`,`no`,`n`,`off`].includes(t))return!1}}},Hb=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null},Ub=e=>{if(!e)return null;let t=Vb(e.account?.has_claude_max);if(t)return`plan_max`;let n=Vb(e.account?.has_claude_pro);if(n)return`plan_pro`;let r=gy(e.organization?.organization_type)?.toLowerCase(),i=gy(e.organization?.subscription_status)?.toLowerCase();return r===`claude_team`&&i===`active`?`plan_team`:t===!1&&n===!1?`plan_free`:null},Wb={type:`claude`,i18nPrefix:`claude_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Hy(e)&&!qy(e),fetchQuota:async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`claude_quota.missing_auth_index`));let[r,i]=await Promise.allSettled([If.request({authIndex:n,method:`GET`,url:sy,header:{...cy}}),If.request({authIndex:n,method:`GET`,url:oy,header:{...cy}})]);if(r.status===`rejected`)throw r.reason;let a=r.value;if(a.statusCode<200||a.statusCode>=300)throw Ly(Ff(a),a.statusCode);let o=wy(a.body??a.bodyText);if(!o)throw Error(t(`claude_quota.empty_windows`));let s=Bb(o,t),c=i.status===`fulfilled`&&i.value.statusCode>=200&&i.value.statusCode<300?Ub(Hb(i.value.body??i.value.bodyText)):null;return{windows:s,extraUsage:o.extra_usage,planType:c}},storeSelector:e=>e.claudeQuota,storeSetter:`setClaudeQuota`,buildLoadingState:()=>({status:`loading`,windows:[]}),buildSuccessState:e=>({status:`success`,windows:e.windows,extraUsage:e.extraUsage,planType:e.planType}),buildErrorState:(e,t)=>({status:`error`,windows:[],error:e,errorStatus:t}),cardClassName:sb.claudeCard,controlsClassName:sb.claudeControls,controlClassName:sb.claudeControl,gridClassName:sb.claudeGrid,renderQuotaItems:(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.windows??[],c=e.extraUsage??null,l=e.planType??null,u=[];if(l&&u.push(a(`div`,{key:`plan`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`claude_quota.plan_label`)),a(`span`,{className:r.codexPlanValue},t(`claude_quota.${l}`)))),c&&c.is_enabled){let e=`$${(c.used_credits/100).toFixed(2)} / $${(c.monthly_limit/100).toFixed(2)}`;u.push(a(`div`,{key:`extra`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`claude_quota.extra_usage_label`)),a(`span`,{className:r.codexPlanValue},e)))}return s.length===0?(u.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`claude_quota.empty_windows`))),a(o,null,...u)):(u.push(...s.map(e=>{let n=e.usedPercent,o=n===null?null:Math.max(0,Math.min(100,n)),s=o===null?null:Math.max(0,Math.min(100,100-o)),c=s===null?`--`:`${Math.round(s)}%`,l=e.labelKey?t(e.labelKey):e.label;return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),a(`span`,{className:r.quotaReset},e.resetLabel))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...u))}},Gb={type:`antigravity`,i18nPrefix:`antigravity_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Vy(e)&&!qy(e),fetchQuota:Cb,storeSelector:e=>e.antigravityQuota,storeSetter:`setAntigravityQuota`,buildLoadingState:()=>({status:`loading`,groups:[]}),buildSuccessState:e=>({status:`success`,groups:e}),buildErrorState:(e,t)=>({status:`error`,groups:[],error:e,errorStatus:t}),cardClassName:sb.antigravityCard,controlsClassName:sb.antigravityControls,controlClassName:sb.antigravityControl,gridClassName:sb.antigravityGrid,renderQuotaItems:Fb},Kb={type:`codex`,i18nPrefix:`codex_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Uy(e)&&!qy(e),fetchQuota:Tb,storeSelector:e=>e.codexQuota,storeSetter:`setCodexQuota`,buildLoadingState:()=>({status:`loading`,windows:[]}),buildSuccessState:e=>({status:`success`,windows:e.windows,planType:e.planType}),buildErrorState:(e,t)=>({status:`error`,windows:[],error:e,errorStatus:t}),cardClassName:sb.codexCard,controlsClassName:sb.codexControls,controlClassName:sb.codexControl,gridClassName:sb.codexGrid,renderQuotaItems:Rb},qb={type:`gemini-cli`,i18nPrefix:`gemini_cli_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Wy(e)&&!Ky(e)&&!qy(e),fetchQuota:Pb,storeSelector:e=>e.geminiCliQuota,storeSetter:`setGeminiCliQuota`,buildLoadingState:()=>({status:`loading`,buckets:[],tierLabel:null,tierId:null,creditBalance:null}),buildSuccessState:e=>{let t=Mb(e.fileName,e.supplementaryRequestId);return{status:`success`,buckets:e.buckets,tierLabel:t.tierLabel??e.tierLabel,tierId:t.tierId??e.tierId,creditBalance:t.creditBalance??e.creditBalance}},buildErrorState:(e,t)=>({status:`error`,buckets:[],error:e,errorStatus:t}),cardClassName:sb.geminiCliCard,controlsClassName:sb.geminiCliControls,controlClassName:sb.geminiCliControl,gridClassName:sb.geminiCliGrid,renderQuotaItems:zb},Jb={type:`kimi`,i18nPrefix:`kimi_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Gy(e)&&!qy(e),fetchQuota:async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`kimi_quota.missing_auth_index`));let r=await If.request({authIndex:n,method:`GET`,url:fy,header:{...py}});if(r.statusCode<200||r.statusCode>=300)throw Ly(Ff(r),r.statusCode);let i=Oy(r.body??r.bodyText);if(!i)throw Error(t(`kimi_quota.empty_data`));return ob(i)},storeSelector:e=>e.kimiQuota,storeSetter:`setKimiQuota`,buildLoadingState:()=>({status:`loading`,rows:[]}),buildSuccessState:e=>({status:`success`,rows:e}),buildErrorState:(e,t)=>({status:`error`,rows:[],error:e,errorStatus:t}),cardClassName:sb.kimiCard,controlsClassName:sb.kimiControls,controlClassName:sb.kimiControl,gridClassName:sb.kimiGrid,renderQuotaItems:(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a}=y.default,o=e.rows??[];return o.length===0?a(`div`,{className:r.quotaMessage},t(`kimi_quota.empty_data`)):o.map(e=>{let n=e.limit,o=e.used,s=n>0?Math.max(0,Math.min(100,Math.round((n-o)/n*100))):o>0?0:null,c=s===null?`--`:`${s}%`,l=e.labelKey?t(e.labelKey,e.labelParams??{}):e.label??``,u=zy(t,e.resetHint);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),n>0?a(`span`,{className:r.quotaAmount},`${o} / ${n}`):null,u?a(`span`,{className:r.quotaReset},u):null)),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})}},G={container:`AuthFilesPage-module__container___u1c4k`,pageHeader:`AuthFilesPage-module__pageHeader___DVV58`,pageTitle:`AuthFilesPage-module__pageTitle___1TOZn`,description:`AuthFilesPage-module__description___N3RjR`,headerActions:`AuthFilesPage-module__headerActions___j0ROO`,titleWrapper:`AuthFilesPage-module__titleWrapper___PLYyj`,countBadge:`AuthFilesPage-module__countBadge___DQWug`,errorBox:`AuthFilesPage-module__errorBox___A9vF2`,filterSection:`AuthFilesPage-module__filterSection___qQ3Zo`,filterRail:`AuthFilesPage-module__filterRail___YRraq`,filterAllIconWrap:`AuthFilesPage-module__filterAllIconWrap___jMF1r`,filterAllIcon:`AuthFilesPage-module__filterAllIcon___mqchB`,filterContent:`AuthFilesPage-module__filterContent___xfK-G`,filterTags:`AuthFilesPage-module__filterTags___A24A3`,filterTag:`AuthFilesPage-module__filterTag___-YnCU`,filterTagActive:`AuthFilesPage-module__filterTagActive___Rnbcs`,filterTagIconWrap:`AuthFilesPage-module__filterTagIconWrap___pN6-v`,filterTagLabel:`AuthFilesPage-module__filterTagLabel___pP8yh`,filterTagIcon:`AuthFilesPage-module__filterTagIcon___j068V`,filterTagIconFallback:`AuthFilesPage-module__filterTagIconFallback___4ALgn`,filterTagText:`AuthFilesPage-module__filterTagText___b9X07`,filterTagCount:`AuthFilesPage-module__filterTagCount___RxSVk`,filterControlsPanel:`AuthFilesPage-module__filterControlsPanel___V-IZn`,filterControls:`AuthFilesPage-module__filterControls___PfZDU`,filterItem:`AuthFilesPage-module__filterItem___Kko4o`,filterToggleItem:`AuthFilesPage-module__filterToggleItem___m2sGr`,filterToggleGroup:`AuthFilesPage-module__filterToggleGroup___TdMH-`,filterToggleCard:`AuthFilesPage-module__filterToggleCard___N4oxi`,filterToggle:`AuthFilesPage-module__filterToggle___mi9Sd`,filterToggleLabel:`AuthFilesPage-module__filterToggleLabel___5rAlu`,pageSizeSelect:`AuthFilesPage-module__pageSizeSelect___yEBvp`,fileGrid:`AuthFilesPage-module__fileGrid___ajvi5`,fileGridQuotaManaged:`AuthFilesPage-module__fileGridQuotaManaged___kOhRx`,fileGridCompact:`AuthFilesPage-module__fileGridCompact___meaAl`,antigravityGrid:`AuthFilesPage-module__antigravityGrid___N7Got`,codexGrid:`AuthFilesPage-module__codexGrid___vLB3H`,geminiCliGrid:`AuthFilesPage-module__geminiCliGrid___5IwI3`,antigravityControls:`AuthFilesPage-module__antigravityControls___gn3rt`,antigravityControl:`AuthFilesPage-module__antigravityControl___rQ8wo`,codexControls:`AuthFilesPage-module__codexControls___Clxl6`,codexControl:`AuthFilesPage-module__codexControl___E7Mtk`,geminiCliControls:`AuthFilesPage-module__geminiCliControls___Y3V2-`,geminiCliControl:`AuthFilesPage-module__geminiCliControl___ZOIpb`,antigravityCard:`AuthFilesPage-module__antigravityCard___rt36l`,claudeCard:`AuthFilesPage-module__claudeCard___L-dIs`,codexCard:`AuthFilesPage-module__codexCard___FiEQ6`,geminiCliCard:`AuthFilesPage-module__geminiCliCard___4PuI5`,kimiCard:`AuthFilesPage-module__kimiCard___zWq5C`,quotaSection:`AuthFilesPage-module__quotaSection___hXy5f`,quotaRow:`AuthFilesPage-module__quotaRow___P2dUi`,quotaRowHeader:`AuthFilesPage-module__quotaRowHeader___IKu7H`,quotaModel:`AuthFilesPage-module__quotaModel___huwv6`,quotaBar:`AuthFilesPage-module__quotaBar___ex7am`,quotaBarFill:`AuthFilesPage-module__quotaBarFill___KqH7M`,quotaBarFillHigh:`AuthFilesPage-module__quotaBarFillHigh___F8WGP`,quotaBarFillMedium:`AuthFilesPage-module__quotaBarFillMedium___ae0Pi`,quotaBarFillLow:`AuthFilesPage-module__quotaBarFillLow___dX4lb`,quotaMeta:`AuthFilesPage-module__quotaMeta___HcbUH`,quotaPercent:`AuthFilesPage-module__quotaPercent___6J9UR`,quotaReset:`AuthFilesPage-module__quotaReset___bmEse`,quotaAmount:`AuthFilesPage-module__quotaAmount___k3Wx6`,quotaMessage:`AuthFilesPage-module__quotaMessage___1w3oM`,quotaMessageAction:`AuthFilesPage-module__quotaMessageAction___9r9cq`,quotaError:`AuthFilesPage-module__quotaError___dEV4B`,quotaWarning:`AuthFilesPage-module__quotaWarning___G1Tvc`,codexPlan:`AuthFilesPage-module__codexPlan___4IbAU`,codexPlanLabel:`AuthFilesPage-module__codexPlanLabel___RZN4K`,codexPlanValue:`AuthFilesPage-module__codexPlanValue___Z0Kgr`,premiumPlanValue:`AuthFilesPage-module__premiumPlanValue___9WyhU`,fileCard:`AuthFilesPage-module__fileCard___j9Jtq`,fileCardSelected:`AuthFilesPage-module__fileCardSelected___9i7m1`,fileCardDisabled:`AuthFilesPage-module__fileCardDisabled___hbSbQ`,providerAvatar:`AuthFilesPage-module__providerAvatar___4xnYu`,cardHeaderContent:`AuthFilesPage-module__cardHeaderContent___rh9WP`,cardMeta:`AuthFilesPage-module__cardMeta___H6kAQ`,healthStatusMessage:`AuthFilesPage-module__healthStatusMessage___KKfW-`,cardInsights:`AuthFilesPage-module__cardInsights___ci5AY`,cardSelection:`AuthFilesPage-module__cardSelection___wOE11`,cardActions:`AuthFilesPage-module__cardActions___mJgkW`,fileCardCompact:`AuthFilesPage-module__fileCardCompact___u9yZu`,fileCardMain:`AuthFilesPage-module__fileCardMain___6JwC7`,cardHeader:`AuthFilesPage-module__cardHeader___uJMtL`,providerAvatarImage:`AuthFilesPage-module__providerAvatarImage___QL5oK`,providerAvatarFallback:`AuthFilesPage-module__providerAvatarFallback___H9Mgn`,cardBadgeRow:`AuthFilesPage-module__cardBadgeRow___SeOzZ`,typeBadge:`AuthFilesPage-module__typeBadge___Dtm6A`,stateBadge:`AuthFilesPage-module__stateBadge___Cq7id`,fileName:`AuthFilesPage-module__fileName___DZ39s`,cardActionsMain:`AuthFilesPage-module__cardActionsMain___9Lsw7`,primaryActionButton:`AuthFilesPage-module__primaryActionButton___ex-Us`,cardUtilityActions:`AuthFilesPage-module__cardUtilityActions___LX5uj`,iconButton:`AuthFilesPage-module__iconButton___XT5TY`,statusToggle:`AuthFilesPage-module__statusToggle___H8bxD`,statusToggleLabel:`AuthFilesPage-module__statusToggleLabel___Wdwo7`,fileCardLayout:`AuthFilesPage-module__fileCardLayout___HRpBj`,stateBadgeActive:`AuthFilesPage-module__stateBadgeActive___Fo6ts`,stateBadgeWarning:`AuthFilesPage-module__stateBadgeWarning___vMjci`,stateBadgeDisabled:`AuthFilesPage-module__stateBadgeDisabled___uB-Ra`,stateBadgeVirtual:`AuthFilesPage-module__stateBadgeVirtual___Ig7fr`,cardMetaCompact:`AuthFilesPage-module__cardMetaCompact___h-CkT`,metaLabel:`AuthFilesPage-module__metaLabel___4mGPs`,metaValue:`AuthFilesPage-module__metaValue___VKbWa`,metaItem:`AuthFilesPage-module__metaItem___f62C0`,priorityBadge:`AuthFilesPage-module__priorityBadge___vHY0g`,priorityValue:`AuthFilesPage-module__priorityValue___cH2dN`,noteText:`AuthFilesPage-module__noteText___xsgqc`,noteLabel:`AuthFilesPage-module__noteLabel___DrD8k`,noteValue:`AuthFilesPage-module__noteValue___-wZpH`,sortSelect:`AuthFilesPage-module__sortSelect___4fEjm`,messageIcon:`AuthFilesPage-module__messageIcon___X3Cwx`,cardInsightsCompact:`AuthFilesPage-module__cardInsightsCompact___y0Q4G`,cardStats:`AuthFilesPage-module__cardStats___JQ4ig`,cardStatsCompact:`AuthFilesPage-module__cardStatsCompact___gRvUT`,statPill:`AuthFilesPage-module__statPill___wFsBu`,statLabel:`AuthFilesPage-module__statLabel___x0iKO`,statValue:`AuthFilesPage-module__statValue___0Cyg5`,statSuccess:`AuthFilesPage-module__statSuccess___mh8iR`,statFailure:`AuthFilesPage-module__statFailure___ivDGu`,statusPanel:`AuthFilesPage-module__statusPanel___jxcFi`,statusPanelCompact:`AuthFilesPage-module__statusPanelCompact___qla9F`,statusPanelLabel:`AuthFilesPage-module__statusPanelLabel___D3k8N`,statusBar:`AuthFilesPage-module__statusBar___n-3Gp`,statusBlocks:`AuthFilesPage-module__statusBlocks___DpQaY`,statusBlockWrapper:`AuthFilesPage-module__statusBlockWrapper___XCgvC`,statusRate:`AuthFilesPage-module__statusRate___LZm5e`,statusBlock:`AuthFilesPage-module__statusBlock___RPMAs`,statusBlockActive:`AuthFilesPage-module__statusBlockActive___pjNyd`,statusBlockIdle:`AuthFilesPage-module__statusBlockIdle___6Uc0C`,statusTooltip:`AuthFilesPage-module__statusTooltip___skNaB`,statusTooltipLeft:`AuthFilesPage-module__statusTooltipLeft___ZK0OM`,statusTooltipRight:`AuthFilesPage-module__statusTooltipRight___MrcVP`,tooltipTime:`AuthFilesPage-module__tooltipTime___6rx7A`,tooltipStats:`AuthFilesPage-module__tooltipStats___rDF8h`,tooltipSuccess:`AuthFilesPage-module__tooltipSuccess___DygUj`,tooltipFailure:`AuthFilesPage-module__tooltipFailure___Som0h`,tooltipRate:`AuthFilesPage-module__tooltipRate___gbhZZ`,statusRateHigh:`AuthFilesPage-module__statusRateHigh___seYyb`,statusRateMedium:`AuthFilesPage-module__statusRateMedium___aNblo`,statusRateLow:`AuthFilesPage-module__statusRateLow___BxxBi`,prefixProxyEditor:`AuthFilesPage-module__prefixProxyEditor___QyoN1`,prefixProxyLoading:`AuthFilesPage-module__prefixProxyLoading___pipJw`,prefixProxyError:`AuthFilesPage-module__prefixProxyError___HNtOZ`,prefixProxyJsonWrapper:`AuthFilesPage-module__prefixProxyJsonWrapper___j237Y`,prefixProxyLabel:`AuthFilesPage-module__prefixProxyLabel___IJHtd`,prefixProxyTextarea:`AuthFilesPage-module__prefixProxyTextarea___wcym6`,prefixProxyFields:`AuthFilesPage-module__prefixProxyFields___da72p`,prefixProxyTextareaInvalid:`AuthFilesPage-module__prefixProxyTextareaInvalid___CNpvm`,modelsActionButton:`AuthFilesPage-module__modelsActionButton___-ihP6`,modelsActionIconWrap:`AuthFilesPage-module__modelsActionIconWrap___KD-87`,actionButtonLabel:`AuthFilesPage-module__actionButtonLabel___B0RSa`,actionIcon:`AuthFilesPage-module__actionIcon___F2TRI`,pagination:`AuthFilesPage-module__pagination___Hwpg2`,batchActionContainer:`AuthFilesPage-module__batchActionContainer___qPwxN`,batchActionBar:`AuthFilesPage-module__batchActionBar___YEJju`,batchActionLeft:`AuthFilesPage-module__batchActionLeft___g851y`,batchActionRight:`AuthFilesPage-module__batchActionRight___NDPeh`,batchSelectionText:`AuthFilesPage-module__batchSelectionText___rSTLk`,pageInfo:`AuthFilesPage-module__pageInfo___Fkfbg`,excludedList:`AuthFilesPage-module__excludedList___9OGiS`,excludedItem:`AuthFilesPage-module__excludedItem___J3Xxa`,excludedInfo:`AuthFilesPage-module__excludedInfo___0hKQa`,excludedProvider:`AuthFilesPage-module__excludedProvider___6pkYz`,excludedModels:`AuthFilesPage-module__excludedModels___QdpJB`,excludedActions:`AuthFilesPage-module__excludedActions___jP49M`,providerField:`AuthFilesPage-module__providerField___end0y`,providerTagList:`AuthFilesPage-module__providerTagList___dCCYW`,providerTag:`AuthFilesPage-module__providerTag___RADdc`,providerTagActive:`AuthFilesPage-module__providerTagActive___j4vQJ`,aliasChartSection:`AuthFilesPage-module__aliasChartSection___uS-yX`,aliasChartHeader:`AuthFilesPage-module__aliasChartHeader___ABhkk`,aliasChartTitle:`AuthFilesPage-module__aliasChartTitle___OSz75`,aliasChart:`AuthFilesPage-module__aliasChart___XbONn`,cardExtraButtons:`AuthFilesPage-module__cardExtraButtons___P-fL4`,viewModeSwitch:`AuthFilesPage-module__viewModeSwitch___CxLpP`,mappingRow:`AuthFilesPage-module__mappingRow___b1MBs`,mappingSeparator:`AuthFilesPage-module__mappingSeparator___Wx18F`,mappingFork:`AuthFilesPage-module__mappingFork___nRhwu`,detailContent:`AuthFilesPage-module__detailContent___K3wet`,jsonContent:`AuthFilesPage-module__jsonContent___5lYBo`,formGroup:`AuthFilesPage-module__formGroup___1YGlp`,textarea:`AuthFilesPage-module__textarea___IAg4a`,hint:`AuthFilesPage-module__hint___YExGS`,modelsList:`AuthFilesPage-module__modelsList___KKhRE`,modelItem:`AuthFilesPage-module__modelItem___VMfPD`,modelId:`AuthFilesPage-module__modelId___4wMUh`,modelDisplayName:`AuthFilesPage-module__modelDisplayName___znKrk`,modelType:`AuthFilesPage-module__modelType___B0C7D`,modelItemExcluded:`AuthFilesPage-module__modelItemExcluded___I5sBn`,modelExcludedBadge:`AuthFilesPage-module__modelExcludedBadge___FyRdH`,excludedCheckList:`AuthFilesPage-module__excludedCheckList___8T3-H`,excludedCheckItem:`AuthFilesPage-module__excludedCheckItem___2z42k`,excludedCheckLabel:`AuthFilesPage-module__excludedCheckLabel___tg4BJ`,excludedCheckDisplayName:`AuthFilesPage-module__excludedCheckDisplayName___Cno8d`};function Yb({percent:e,highThreshold:t,mediumThreshold:n}){let r=e===null?null:((e,t,n)=>Math.min(n,Math.max(t,e)))(e,0,100),i=r===null?G.quotaBarFillMedium:r>=t?G.quotaBarFillHigh:r>=n?G.quotaBarFillMedium:G.quotaBarFillLow,a=Math.round(r??0);return(0,B.jsx)(`div`,{className:G.quotaBar,children:(0,B.jsx)(`div`,{className:`${G.quotaBarFill} ${i}`,style:{width:`${a}%`}})})}var Xb=e=>e===`antigravity`?Gb:e===`claude`?Wb:e===`codex`?Kb:e===`kimi`?Jb:qb;function Zb(e){let{file:t,quotaType:n,disableControls:r}=e,{t:i}=qo(),a=hc(e=>e.showNotification),o=np(e=>n===`antigravity`?e.antigravityQuota[t.name]:n===`claude`?e.claudeQuota[t.name]:n===`codex`?e.codexQuota[t.name]:n===`kimi`?e.kimiQuota[t.name]:e.geminiCliQuota[t.name]),s=np(e=>n===`antigravity`?e.setAntigravityQuota:n===`claude`?e.setClaudeQuota:n===`codex`?e.setCodexQuota:n===`kimi`?e.setKimiQuota:e.setGeminiCliQuota),c=(0,y.useCallback)(async()=>{if(r||Kv(t)||t.disabled||o?.status===`loading`)return;let e=Xb(n);s(n=>({...n,[t.name]:e.buildLoadingState()}));try{let n=await e.fetchQuota(t,i);s(r=>({...r,[t.name]:e.buildSuccessState(n)})),a(i(`auth_files.quota_refresh_success`,{name:t.name}),`success`)}catch(n){let r=n instanceof Error?n.message:i(`common.unknown_error`),o=Ry(n);s(n=>({...n,[t.name]:e.buildErrorState(r,o)})),a(i(`auth_files.quota_refresh_failed`,{name:t.name,message:r}),`error`)}},[r,t,o?.status,n,a,i,s]),l=Xb(n),u=o?.status??`idle`,d=!r&&!t.disabled,f=Rv(i,o?.errorStatus,o?.error||i(`common.unknown_error`));return(0,B.jsx)(`div`,{className:G.quotaSection,children:u===`loading`?(0,B.jsx)(`div`,{className:G.quotaMessage,children:i(`${l.i18nPrefix}.loading`)}):u===`idle`?(0,B.jsx)(`button`,{type:`button`,className:`${G.quotaMessage} ${G.quotaMessageAction}`,onClick:()=>void c(),disabled:!d,children:i(`${l.i18nPrefix}.idle`)}):u===`error`?(0,B.jsx)(`div`,{className:G.quotaError,children:i(`${l.i18nPrefix}.load_failed`,{message:f})}):o?l.renderQuotaItems(o,i,{styles:G,QuotaProgressBar:Yb}):(0,B.jsx)(`div`,{className:G.quotaMessage,children:i(`${l.i18nPrefix}.idle`)})})}var Qb=new Set([`ok`,`healthy`,`ready`,`success`,`available`]),$b=e=>{let t=By(e);return Nv.has(t)?t:null};function ex(e){let{t}=qo(),{file:n,compact:r,selected:i,resolvedTheme:a,disableControls:o,deleting:s,statusUpdating:c,quotaFilterType:l,statusBarCache:u,onShowModels:d,onDownload:f,onOpenPrefixProxyEditor:p,onDelete:m,onToggleStatus:h,onToggleSelect:g}=e,_=lp(n.recent_requests??n.recentRequests),v={success:op(n.success),failure:op(n.failed)},y=Kv(n),b=(n.type||``).toLowerCase()===`aistudio`,x=!y||b,S=Uv(n.type||`unknown`,a),C=Hv(t,n.type||`unknown`),w=Wv(n.type||`unknown`,a),T=l&&$b(n)===l?l:null,E=!!T&&!y&&!r,D=T===`antigravity`?G.antigravityCard:T===`claude`?G.claudeCard:T===`codex`?G.codexCard:T===`gemini-cli`?G.geminiCliCard:T===`kimi`?G.kimiCard:``,O=cp(n.auth_index??n.authIndex),k=O&&u.get(O)||pp(_),A=Bv(n),j=!!A&&!Qb.has(A.toLowerCase()),M=Gv(n.priority??n.priority),N=typeof n.note==`string`?n.note.trim():``,P=y?t(`auth_files.type_virtual`)||`虚拟认证文件`:n.disabled?t(`auth_files.health_status_disabled`):t(j?`auth_files.health_status_warning`:A?`auth_files.health_status_healthy`:`auth_files.status_toggle_label`),ee=y?G.stateBadgeVirtual:n.disabled?G.stateBadgeDisabled:j?G.stateBadgeWarning:G.stateBadgeActive;return(0,B.jsx)(`div`,{className:`${G.fileCard} ${r?G.fileCardCompact:``} ${D} ${i?G.fileCardSelected:``} ${n.disabled?G.fileCardDisabled:``}`,children:(0,B.jsx)(`div`,{className:G.fileCardLayout,children:(0,B.jsxs)(`div`,{className:G.fileCardMain,children:[(0,B.jsxs)(`div`,{className:G.cardHeader,children:[!y&&(0,B.jsx)(Gs,{checked:i,onChange:()=>g(n.name),className:G.cardSelection,"aria-label":t(i?`auth_files.batch_deselect`:`auth_files.batch_select_all`),title:t(i?`auth_files.batch_deselect`:`auth_files.batch_select_all`)}),(0,B.jsx)(`div`,{className:G.providerAvatar,style:{backgroundColor:S.bg,color:S.text,...S.border?{border:S.border}:{}},children:w?(0,B.jsx)(`img`,{src:w,alt:``,className:G.providerAvatarImage}):(0,B.jsx)(`span`,{className:G.providerAvatarFallback,children:C.slice(0,1).toUpperCase()})}),(0,B.jsxs)(`div`,{className:G.cardHeaderContent,children:[(0,B.jsxs)(`div`,{className:G.cardBadgeRow,children:[(0,B.jsx)(`span`,{className:G.typeBadge,style:{backgroundColor:S.bg,color:S.text,...S.border?{border:S.border}:{}},children:C}),(0,B.jsx)(`span`,{className:`${G.stateBadge} ${ee}`,children:P})]}),(0,B.jsx)(`span`,{className:G.fileName,title:n.name,children:n.name}),!r&&N&&(0,B.jsxs)(`div`,{className:G.noteText,title:N,children:[(0,B.jsx)(`span`,{className:G.noteLabel,children:t(`auth_files.note_display`)}),(0,B.jsx)(`span`,{className:G.noteValue,children:N})]})]})]}),(0,B.jsxs)(`div`,{className:`${G.cardMeta} ${r?G.cardMetaCompact:``}`,children:[(0,B.jsxs)(`div`,{className:G.metaItem,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.file_size`)}),(0,B.jsx)(`span`,{className:G.metaValue,children:n.size?vg(n.size):`-`})]}),(0,B.jsxs)(`div`,{className:G.metaItem,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.file_modified`)}),(0,B.jsx)(`span`,{className:G.metaValue,children:qv(n)})]}),M!==void 0&&(0,B.jsxs)(`div`,{className:`${G.metaItem} ${G.priorityBadge}`,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.priority_display`)}),(0,B.jsx)(`span`,{className:`${G.metaValue} ${G.priorityValue}`,children:M})]})]}),A&&j&&(0,B.jsxs)(`div`,{className:G.healthStatusMessage,title:A,children:[(0,B.jsx)(ss,{className:G.messageIcon,size:14}),(0,B.jsx)(`span`,{children:A})]}),(0,B.jsxs)(`div`,{className:`${G.cardInsights} ${r?G.cardInsightsCompact:``}`,children:[(0,B.jsxs)(`div`,{className:`${G.cardStats} ${r?G.cardStatsCompact:``}`,children:[(0,B.jsxs)(`div`,{className:`${G.statPill} ${G.statSuccess}`,children:[(0,B.jsx)(`span`,{className:G.statLabel,children:t(`stats.success`)}),(0,B.jsx)(`span`,{className:G.statValue,children:v.success})]}),(0,B.jsxs)(`div`,{className:`${G.statPill} ${G.statFailure}`,children:[(0,B.jsx)(`span`,{className:G.statLabel,children:t(`stats.failure`)}),(0,B.jsx)(`span`,{className:G.statValue,children:v.failure})]})]}),(0,B.jsxs)(`div`,{className:`${G.statusPanel} ${r?G.statusPanelCompact:``}`,children:[(0,B.jsx)(`div`,{className:G.statusPanelLabel,children:(0,B.jsx)(`span`,{children:t(`auth_files.health_status_label`)})}),(0,B.jsx)(Ag,{statusData:k,styles:G})]}),E&&T&&(0,B.jsx)(Zb,{file:n,quotaType:T,disableControls:o})]}),(0,B.jsxs)(`div`,{className:G.cardActions,children:[(0,B.jsxs)(`div`,{className:G.cardActionsMain,children:[x&&(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>d(n),className:`${G.primaryActionButton} ${G.modelsActionButton}`,title:t(`auth_files.models_button`,{defaultValue:`模型`}),disabled:o,children:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:G.modelsActionIconWrap,children:(0,B.jsx)(ns,{className:G.actionIcon,size:16})}),(0,B.jsx)(`span`,{className:G.actionButtonLabel,children:t(`auth_files.models_button`,{defaultValue:`模型`})})]})}),!y&&(0,B.jsxs)(`div`,{className:G.cardUtilityActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>f(n.name),className:G.iconButton,title:t(`auth_files.download_button`),disabled:o,children:(0,B.jsx)(ls,{className:G.actionIcon,size:16})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>p(n),className:G.iconButton,title:t(`auth_files.prefix_proxy_button`),disabled:o,children:(0,B.jsx)(os,{className:G.actionIcon,size:16})}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>m(n.name),className:G.iconButton,title:t(`auth_files.delete_button`),disabled:o||s===n.name,children:s===n.name?(0,B.jsx)(p_,{size:14}):(0,B.jsx)(us,{className:G.actionIcon,size:16})})]})]}),!y&&(0,B.jsxs)(`div`,{className:G.statusToggle,children:[(0,B.jsx)(`span`,{className:G.statusToggleLabel,children:t(`auth_files.status_toggle_label`)}),(0,B.jsx)(Sg,{ariaLabel:t(`auth_files.status_toggle_label`),checked:!n.disabled,disabled:o||c[n.name]===!0,onChange:e=>h(n,e)})]})]})]})})})}function tx(e){let{t}=qo(),{open:n,fileName:r,fileType:i,loading:a,error:o,models:s,excluded:c,onClose:l,onCopyText:u}=e;return(0,B.jsx)(um,{open:n,onClose:l,title:t(`auth_files.models_title`,{defaultValue:`支持的模型`})+` - ${r}`,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:l,children:t(`common.close`)}),children:a?(0,B.jsx)(`div`,{className:G.hint,children:t(`auth_files.models_loading`,{defaultValue:`正在加载模型列表...`})}):o===`unsupported`?(0,B.jsx)(wg,{title:t(`auth_files.models_unsupported`,{defaultValue:`当前版本不支持此功能`}),description:t(`auth_files.models_unsupported_desc`,{defaultValue:`请更新 CLI Proxy API 到最新版本后重试`})}):s.length===0?(0,B.jsx)(wg,{title:t(`auth_files.models_empty`,{defaultValue:`该凭证暂无可用模型`}),description:t(`auth_files.models_empty_desc`,{defaultValue:`该认证凭证可能尚未被服务器加载或没有绑定任何模型`})}):(0,B.jsx)(`div`,{className:G.modelsList,children:s.map(e=>{let n=Jv(e.id,i,c);return(0,B.jsxs)(`div`,{className:`${G.modelItem} ${n?G.modelItemExcluded:``}`,onClick:()=>{u(e.id)},title:n?t(`auth_files.models_excluded_hint`,{defaultValue:`此 OAuth 模型已被禁用`}):t(`common.copy`,{defaultValue:`点击复制`}),children:[(0,B.jsx)(`span`,{className:G.modelId,children:e.id}),e.display_name&&e.display_name!==e.id&&(0,B.jsx)(`span`,{className:G.modelDisplayName,children:e.display_name}),e.type&&(0,B.jsx)(`span`,{className:G.modelType,children:e.type}),n&&(0,B.jsx)(`span`,{className:G.modelExcludedBadge,children:t(`auth_files.models_excluded_badge`,{defaultValue:`已禁用`})})]},e.id)})})})}function nx(e){let{t}=qo(),{disableControls:n,editor:r,updatedText:i,dirty:a,onClose:o,onCopyText:s,onSave:c,onChange:l}=e,u=(e=>{if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}})(i);return(0,B.jsx)(um,{open:!!r,onClose:o,closeDisabled:r?.saving===!0,width:720,title:r?.fileName?t(`auth_files.auth_field_editor_title`,{name:r.fileName}):t(`auth_files.prefix_proxy_button`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:o,disabled:r?.saving===!0,children:t(a?`common.cancel`:`common.close`)}),(0,B.jsx)(V,{variant:`secondary`,onClick:()=>{i&&s(i)},disabled:r?.saving===!0||!i,children:t(`common.copy`)}),(0,B.jsx)(V,{onClick:c,loading:r?.saving===!0,disabled:n||r?.saving===!0||!a||!r?.json||!!(r?.headersTouched&&r.headersError),children:t(`common.save`)})]}),children:r&&(0,B.jsx)(`div`,{className:G.prefixProxyEditor,children:r.loading?(0,B.jsxs)(`div`,{className:G.prefixProxyLoading,children:[(0,B.jsx)(p_,{size:14}),(0,B.jsx)(`span`,{children:t(`auth_files.prefix_proxy_loading`)})]}):(0,B.jsxs)(B.Fragment,{children:[r.error&&(0,B.jsx)(`div`,{className:G.prefixProxyError,children:r.error}),(0,B.jsxs)(`div`,{className:G.prefixProxyJsonWrapper,children:[(0,B.jsx)(`label`,{className:G.prefixProxyLabel,children:t(`auth_files.prefix_proxy_info_label`)}),(0,B.jsx)(`textarea`,{className:G.prefixProxyTextarea,rows:8,readOnly:!0,value:r.fileInfoText})]}),(0,B.jsxs)(`div`,{className:G.prefixProxyJsonWrapper,children:[(0,B.jsx)(`label`,{className:G.prefixProxyLabel,children:t(`auth_files.prefix_proxy_source_label`)}),(0,B.jsx)(`textarea`,{className:G.prefixProxyTextarea,rows:10,readOnly:!0,value:u})]}),(0,B.jsxs)(`div`,{className:G.prefixProxyFields,children:[(0,B.jsx)(Xo,{label:t(`auth_files.prefix_label`),value:r.prefix,disabled:n||r.saving||!r.json,onChange:e=>l(`prefix`,e.target.value)}),(0,B.jsx)(Xo,{label:t(`auth_files.proxy_url_label`),value:r.proxyUrl,placeholder:t(`auth_files.proxy_url_placeholder`),disabled:n||r.saving||!r.json,onChange:e=>l(`proxyUrl`,e.target.value)}),(0,B.jsx)(Xo,{label:t(`auth_files.priority_label`),value:r.priority,placeholder:t(`auth_files.priority_placeholder`),hint:t(`auth_files.priority_hint`),disabled:n||r.saving||!r.json,onChange:e=>l(`priority`,e.target.value)}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:t(`auth_files.headers_label`)}),(0,B.jsx)(`textarea`,{className:`input ${r.headersError?G.prefixProxyTextareaInvalid:``}`,value:r.headersText,placeholder:t(`auth_files.headers_placeholder`),rows:4,"aria-invalid":!!r.headersError,disabled:n||r.saving||!r.json,onChange:e=>l(`headersText`,e.target.value)}),r.headersError&&(0,B.jsx)(`div`,{className:`error-box`,children:r.headersError}),(0,B.jsx)(`div`,{className:`hint`,children:t(`auth_files.headers_hint`)})]}),(0,B.jsx)(Xo,{label:t(`auth_files.note_label`),value:r.note,placeholder:t(`auth_files.note_placeholder`),hint:t(`auth_files.note_hint`),disabled:n||r.saving||!r.json,onChange:e=>l(`note`,e.target.value)})]})]})})})}function rx(e){let{t}=qo(),{disableControls:n,excludedError:r,excluded:i,onAdd:a,onEdit:o,onDelete:s}=e;return(0,B.jsx)(hg,{title:t(`oauth_excluded.title`),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:n||r===`unsupported`,children:t(`oauth_excluded.add`)}),children:r===`unsupported`?(0,B.jsx)(wg,{title:t(`oauth_excluded.upgrade_required_title`),description:t(`oauth_excluded.upgrade_required_desc`)}):Object.keys(i).length===0?(0,B.jsx)(wg,{title:t(`oauth_excluded.list_empty_all`)}):(0,B.jsx)(`div`,{className:G.excludedList,children:Object.entries(i).map(([e,n])=>(0,B.jsxs)(`div`,{className:G.excludedItem,children:[(0,B.jsxs)(`div`,{className:G.excludedInfo,children:[(0,B.jsx)(`div`,{className:G.excludedProvider,children:e}),(0,B.jsx)(`div`,{className:G.excludedModels,children:n?.length?t(`oauth_excluded.model_count`,{count:n.length}):t(`oauth_excluded.no_models`)})]}),(0,B.jsxs)(`div`,{className:G.excludedActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>o(e),children:t(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>s(e),children:t(`oauth_excluded.delete`)})]})]},e))})})}var K={scrollContainer:`ModelMappingDiagram-module__scrollContainer___CVtMl`,tapHint:`ModelMappingDiagram-module__tapHint___WVg9j`,container:`ModelMappingDiagram-module__container___5GMeJ`,connections:`ModelMappingDiagram-module__connections___-pgzq`,column:`ModelMappingDiagram-module__column___Guf-v`,providers:`ModelMappingDiagram-module__providers___n0NN6`,sources:`ModelMappingDiagram-module__sources___N646E`,aliases:`ModelMappingDiagram-module__aliases___zg5ma`,columnHeader:`ModelMappingDiagram-module__columnHeader___QAC6y`,item:`ModelMappingDiagram-module__item___KBTKp`,dropTarget:`ModelMappingDiagram-module__dropTarget___dAYPB`,selected:`ModelMappingDiagram-module__selected___r3Gyz`,providerItem:`ModelMappingDiagram-module__providerItem___4PZQM`,providerLabel:`ModelMappingDiagram-module__providerLabel___E2vNu`,collapseBtn:`ModelMappingDiagram-module__collapseBtn___RXanB`,chevronDown:`ModelMappingDiagram-module__chevronDown___AP7zK`,chevronRight:`ModelMappingDiagram-module__chevronRight___bbMVy`,providerGroup:`ModelMappingDiagram-module__providerGroup___5JNQu`,sourceItem:`ModelMappingDiagram-module__sourceItem___TjDG6`,aliasItem:`ModelMappingDiagram-module__aliasItem___h6w7D`,dragging:`ModelMappingDiagram-module__dragging___lhx9y`,dot:`ModelMappingDiagram-module__dot___AOWIN`,dotLeft:`ModelMappingDiagram-module__dotLeft___BKXAm`,providerBadge:`ModelMappingDiagram-module__providerBadge___cRzux`,itemName:`ModelMappingDiagram-module__itemName___MjfSv`,itemCount:`ModelMappingDiagram-module__itemCount___B-gtl`,contextMenu:`ModelMappingDiagram-module__contextMenu___VHX-s`,menuItem:`ModelMappingDiagram-module__menuItem___e-LvI`,danger:`ModelMappingDiagram-module__danger___klXxM`,menuDivider:`ModelMappingDiagram-module__menuDivider___XtoCo`,settingsEmpty:`ModelMappingDiagram-module__settingsEmpty___N0gFF`,settingsList:`ModelMappingDiagram-module__settingsList___ovuWo`,settingsRow:`ModelMappingDiagram-module__settingsRow___wH-TW`,settingsNames:`ModelMappingDiagram-module__settingsNames___QDn9j`,settingsSource:`ModelMappingDiagram-module__settingsSource___Hz9zo`,settingsAlias:`ModelMappingDiagram-module__settingsAlias___Ov9zt`,settingsArrow:`ModelMappingDiagram-module__settingsArrow___SKvFd`,settingsActions:`ModelMappingDiagram-module__settingsActions___PYXMU`,settingsLabel:`ModelMappingDiagram-module__settingsLabel___R--i-`,settingsDelete:`ModelMappingDiagram-module__settingsDelete___PDG7z`};function ix({providerNodes:e,collapsedProviders:t,getProviderColor:n,providerGroupHeights:r={},providerRefs:i,onToggleCollapse:a,onContextMenu:o,label:s,expandLabel:c,collapseLabel:l}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.providers}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),o(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:s}),e.map(({provider:e,sources:s})=>{let u=t.has(e),d=u?void 0:r[e];return(0,B.jsx)(`div`,{className:K.providerGroup,style:d?{height:d}:void 0,children:(0,B.jsxs)(`div`,{ref:t=>{t?i.current?.set(e,t):i.current?.delete(e)},className:`${K.item} ${K.providerItem}`,style:{borderLeftColor:n(e)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),o(t,`provider`,e)},children:[(0,B.jsx)(`button`,{type:`button`,className:K.collapseBtn,onClick:()=>a(e),"aria-label":u?c:l,title:u?c:l,children:(0,B.jsx)(`span`,{className:u?K.chevronRight:K.chevronDown})}),(0,B.jsx)(`span`,{className:K.providerLabel,style:{color:n(e)},children:e}),(0,B.jsx)(`span`,{className:K.itemCount,children:s.length})]})},e)})]})}function ax({providerNodes:e,collapsedProviders:t,sourceRefs:n,getProviderColor:r,selectedSourceId:i,onSelectSource:a,draggedSource:o,dropTargetSource:s,draggable:c,onDragStart:l,onDragEnd:u,onDragOver:d,onDragLeave:f,onDrop:p,onContextMenu:m,label:h}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.sources}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),m(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:h}),e.flatMap(({provider:e,sources:h})=>t.has(e)?[]:h.map(e=>(0,B.jsxs)(`div`,{ref:t=>{t?n.current?.set(e.id,t):n.current?.delete(e.id)},className:`${K.item} ${K.sourceItem} ${o?.id===e.id?K.dragging:``} ${s===e.id?K.dropTarget:``} ${i===e.id?K.selected:``}`,onClick:()=>a?.(e),draggable:c,onDragStart:t=>l(t,e),onDragEnd:u,onDragOver:t=>d(t,e),onDragLeave:f,onDrop:t=>p(t,e),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),m(t,`source`,e.id)},children:[(0,B.jsx)(`span`,{className:K.itemName,title:e.name,children:e.name}),(0,B.jsx)(`div`,{className:K.dot,style:{background:r(e.provider),opacity:e.aliases.length>0?1:.3}})]},e.id)))]})}function ox({aliasNodes:e,aliasRefs:t,dropTargetAlias:n,draggedAlias:r,selectedAlias:i,onSelectAlias:a,draggable:o,onDragStart:s,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,onContextMenu:f,label:p}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.aliases}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),f(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:p}),e.map(e=>(0,B.jsxs)(`div`,{ref:n=>{n?t.current?.set(e.id,n):t.current?.delete(e.id)},className:`${K.item} ${K.aliasItem} ${n===e.alias?K.dropTarget:``} ${r===e.alias?K.dragging:``} ${i===e.alias?K.selected:``}`,onClick:()=>a?.(e.alias),draggable:o,onDragStart:t=>s(t,e.alias),onDragEnd:c,onDragOver:t=>l(t,e.alias),onDragLeave:u,onDrop:t=>d(t,e.alias),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),f(t,`alias`,e.alias)},children:[(0,B.jsx)(`div`,{className:`${K.dot} ${K.dotLeft}`}),(0,B.jsx)(`span`,{className:K.itemName,title:e.alias,children:e.alias}),(0,B.jsx)(`span`,{className:K.itemCount,children:e.sources.length})]},e.id))]})}function sx({contextMenu:e,t,onRequestClose:n,onAddAlias:r,onRenameAlias:i,onOpenAliasSettings:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,onOpenSourceSettings:l}){let u=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{u.current?.contains(e.target)||n()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,n]),!e)return null;let{type:d,data:f}=e;return(0,S.createPortal)((0,B.jsxs)(`div`,{ref:u,className:K.contextMenu,style:{top:e.y,left:e.x},onClick:e=>e.stopPropagation(),children:[d===`background`&&(0,B.jsx)(`div`,{className:K.menuItem,onClick:r,children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_add_alias`)})}),d===`alias`&&(f?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>i(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_rename`)})}),(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>a(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}),(0,B.jsx)(`div`,{className:K.menuDivider}),(0,B.jsx)(`div`,{className:`${K.menuItem} ${K.danger}`,onClick:()=>o(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_delete_alias`)})})]}):null),d===`provider`&&(f?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>s(f),children:(0,B.jsx)(`span`,{children:t(`common.edit`)})}),(0,B.jsx)(`div`,{className:K.menuDivider}),(0,B.jsx)(`div`,{className:`${K.menuItem} ${K.danger}`,onClick:()=>c(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.delete`)})})]}):null),d===`source`&&(f?(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>l(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}):null)]}),document.body)}function cx({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,B.jsx)(um,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_rename_alias_title`),width:400,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,B.jsx)(V,{onClick:o,children:t(`oauth_model_alias.diagram_rename_btn`)})]}),children:(0,B.jsx)(Xo,{label:t(`oauth_model_alias.diagram_rename_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_rename_placeholder`),autoFocus:!0})})}function lx({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,B.jsx)(um,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_add_alias_title`),width:400,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,B.jsx)(V,{onClick:o,children:t(`oauth_model_alias.diagram_add_btn`)})]}),children:(0,B.jsx)(Xo,{label:t(`oauth_model_alias.diagram_add_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_add_placeholder`),autoFocus:!0})})}function ux({open:e,t,alias:n,aliasNodes:r,onClose:i,onToggleFork:a,onUnlink:o}){return(0,B.jsx)(um,{open:e,onClose:i,title:t(`oauth_model_alias.diagram_settings_title`,{alias:n??``}),width:720,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:i,children:t(`common.close`)}),children:n?(()=>{let e=r.find(e=>e.alias===n);return!e||e.sources.length===0?(0,B.jsx)(`div`,{className:K.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,B.jsx)(`div`,{className:K.settingsList,children:e.sources.map(e=>{let r=e.aliases.find(e=>e.alias===n)?.fork===!0;return(0,B.jsxs)(`div`,{className:K.settingsRow,children:[(0,B.jsxs)(`div`,{className:K.settingsNames,children:[(0,B.jsx)(`span`,{className:K.settingsSource,children:e.name}),(0,B.jsx)(`span`,{className:K.settingsArrow,children:`→`}),(0,B.jsx)(`span`,{className:K.settingsAlias,children:n})]}),(0,B.jsxs)(`div`,{className:K.settingsActions,children:[(0,B.jsx)(`span`,{className:K.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(Sg,{checked:r,onChange:t=>a(e.provider,e.name,n,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(`button`,{type:`button`,className:K.settingsDelete,onClick:()=>o(e.provider,e.name,n),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),children:(0,B.jsx)(us,{size:14})})]})]},e.id)})})})():null})}function dx({open:e,t,source:n,onClose:r,onToggleFork:i,onUnlink:a}){return(0,B.jsx)(um,{open:e,onClose:r,title:t(`oauth_model_alias.diagram_settings_source_title`),width:720,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:r,children:t(`common.close`)}),children:n?n.aliases.length===0?(0,B.jsx)(`div`,{className:K.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,B.jsx)(`div`,{className:K.settingsList,children:n.aliases.map(e=>(0,B.jsxs)(`div`,{className:K.settingsRow,children:[(0,B.jsxs)(`div`,{className:K.settingsNames,children:[(0,B.jsx)(`span`,{className:K.settingsSource,children:n.name}),(0,B.jsx)(`span`,{className:K.settingsArrow,children:`→`}),(0,B.jsx)(`span`,{className:K.settingsAlias,children:e.alias})]}),(0,B.jsxs)(`div`,{className:K.settingsActions,children:[(0,B.jsx)(`span`,{className:K.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(Sg,{checked:e.fork===!0,onChange:t=>i(n.provider,n.name,e.alias,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(`button`,{type:`button`,className:K.settingsDelete,onClick:()=>a(n.provider,n.name,e.alias),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),children:(0,B.jsx)(us,{size:14})})]})]},`${n.id}-${e.alias}`))}):null})}var fx=[`#8b8680`,`#10b981`,`#f59e0b`,`#c65746`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`];function px(e){return fx[e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%fx.length]}var mx=(0,y.forwardRef)(function({modelAlias:e,allProviderModels:t={},onUpdate:n,onDeleteLink:r,onToggleFork:i,onRenameAlias:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,className:l},u){let{t:d}=qo(),f=wc(e=>e.resolvedTheme)===`dark`,p=(0,y.useMemo)(()=>typeof window>`u`||window.matchMedia===void 0?!1:window.matchMedia(`(any-pointer: coarse)`).matches&&!window.matchMedia(`(any-pointer: fine)`).matches,[]),m=(0,y.useRef)(null),[h,g]=(0,y.useState)([]),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)(null),[P,ee]=(0,y.useState)(new Set),[F,I]=(0,y.useState)({}),[L,R]=(0,y.useState)(null),[te,ne]=(0,y.useState)(``),[re,z]=(0,y.useState)(``),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(``),[ce,le]=(0,y.useState)(``),[ue,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(null),{aliasNodes:me,providerNodes:he}=(0,y.useMemo)(()=>{let n=new Map,r=new Set;Object.entries(e).forEach(([e,t])=>{(t??[]).forEach(t=>{let i=(t?.name||``).trim(),a=(t?.alias||``).trim();if(!i||!a)return;let o=`${e.toLowerCase()}::${i.toLowerCase()}`;n.has(o)||n.set(o,{provider:e,name:i,aliases:new Map}),n.get(o).aliases.set(a,t?.fork===!0),r.add(a)})}),Object.entries(t).forEach(([e,t])=>{(t??[]).forEach(t=>{let r=(t.id||``).trim();if(!r)return;let i=`${e.toLowerCase()}::${r.toLowerCase()}`;n.has(i)||n.set(i,{provider:e,name:r,aliases:new Map})})});let i=Array.from(n.entries()).map(([e,t])=>({id:e,provider:t.provider,name:t.name,aliases:Array.from(t.aliases.entries()).map(([e,t])=>({alias:e,fork:t}))})).sort((e,t)=>e.provider===t.provider?e.name.localeCompare(t.name):e.provider.localeCompare(t.provider));A.forEach(e=>r.add(e));let a=Array.from(r).map(e=>({id:e,alias:e,sources:i.filter(t=>t.aliases.some(t=>t.alias===e))})).sort((e,t)=>t.sources.length===e.sources.length?e.alias.localeCompare(t.alias):t.sources.length-e.sources.length),o=new Map;return i.forEach(e=>{o.has(e.provider)||o.set(e.provider,[]),o.get(e.provider).push(e)}),{aliasNodes:a,providerNodes:Array.from(o.entries()).map(([e,t])=>({provider:e,sources:t})).sort((e,t)=>e.provider.localeCompare(t.provider))}},[e,t,A]),ge=(0,y.useRef)(new Map),_e=(0,y.useRef)(new Map),ve=(0,y.useRef)(new Map),ye=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},be=(0,y.useCallback)(()=>{if(!m.current)return;let e=m.current.getBoundingClientRect(),t=[],n={},r=(e,t,n,r)=>`M ${e} ${t} C ${e+(n-e)*.5} ${t}, ${n-(n-e)*.5} ${r}, ${n} ${r}`;he.forEach(({provider:i,sources:a})=>{if(P.has(i))return;if(a.length>0){let e=_e.current.get(a[0].id),t=_e.current.get(a[a.length-1].id);if(e&&t){let r=Math.max(0,Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top));r>0&&(n[i]=r)}}let o=ge.current.get(i);if(!o)return;let s=o.getBoundingClientRect(),c=s.right-e.left,l=s.top+s.height/2-e.top,u=px(i);a.forEach(n=>{let a=_e.current.get(n.id);if(!a)return;let o=a.getBoundingClientRect(),s=o.left-e.left,d=o.top+o.height/2-e.top;t.push({id:`provider-${i}-source-${n.id}`,path:r(c,l,s,d),color:u})}),a.forEach(n=>{!n.aliases||n.aliases.length===0||n.aliases.forEach(i=>{let a=_e.current.get(n.id),o=ve.current.get(i.alias);if(!a||!o)return;let s=a.getBoundingClientRect(),c=o.getBoundingClientRect(),l=s.right-e.left,d=s.top+s.height/2-e.top,f=c.left-e.left,p=c.top+c.height/2-e.top;t.push({id:`${n.id}-${i.alias}`,path:r(l,d,f,p),color:u})})})}),g(t),I(e=>{let t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return n;for(let t of r)if(!(t in e)||e[t]!==n[t])return n;return e})},[he,P]);(0,y.useImperativeHandle)(u,()=>({collapseAll:()=>ee(new Set(he.map(e=>e.provider))),refreshLayout:()=>be()}),[he,be]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return window.addEventListener(`resize`,be),()=>{cancelAnimationFrame(e),window.removeEventListener(`resize`,be)}},[be,me]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return()=>cancelAnimationFrame(e)},[F,be]),(0,y.useEffect)(()=>{if(!m.current||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>be());return e.observe(m.current),()=>e.disconnect()},[be]);let xe=(e,t)=>{D(null),k(null),v(t),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`link`},Se=(e,t)=>{!_||_.aliases.some(e=>e.alias===t)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,C(t))},Ce=()=>{C(null)},we=(e,t)=>{e.preventDefault(),_&&!_.aliases.some(e=>e.alias===t)&&n&&n(_.provider,_.name,t),v(null),C(null)},Te=(e,t)=>{D(null),k(null),x(t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`link`},Ee=(e,t)=>{!b||t.aliases.some(e=>e.alias===b)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,T(t.id))},De=()=>{T(null)},Oe=(e,t)=>{e.preventDefault(),b&&!t.aliases.some(e=>e.alias===b)&&n&&n(t.provider,t.name,b),x(null),T(null)},ke=(e,t,n)=>{e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY,type:t,data:n})},Ae=()=>N(null),je=(0,y.useCallback)(e=>{if(!e)return null;for(let{sources:t}of he){let n=t.find(t=>t.id===e);if(n)return n}return null},[he]),Me=e=>{if(n){if(E===e.id){D(null);return}if(O){n(e.provider,e.name,O),D(null),k(null);return}D(e.id),k(null)}},Ne=e=>{if(n){if(O===e){k(null);return}if(E){let t=je(E);t&&n(t.provider,t.name,e),D(null),k(null);return}k(e),D(null)}},Pe=(e,t,n)=>{r&&r(e,t,n)},Fe=(e,t,n,r)=>{i&&i(e,t,n,r)};return(0,B.jsxs)(`div`,{className:[K.scrollContainer,l].filter(Boolean).join(` `),children:[p&&n&&(0,B.jsx)(`div`,{className:K.tapHint,children:d(`oauth_model_alias.diagram_tap_hint`)}),(0,B.jsxs)(`div`,{className:K.container,ref:m,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),ke(e,`background`)},children:[(0,B.jsx)(`svg`,{className:K.connections,children:h.map(e=>(0,B.jsx)(`path`,{d:e.path,stroke:e.color,strokeOpacity:f?.4:.3},e.id))}),(0,B.jsx)(ix,{providerNodes:he,collapsedProviders:P,getProviderColor:px,providerGroupHeights:F,providerRefs:ge,onToggleCollapse:ye,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_providers`),expandLabel:d(`oauth_model_alias.diagram_expand`),collapseLabel:d(`oauth_model_alias.diagram_collapse`)}),(0,B.jsx)(ax,{providerNodes:he,collapsedProviders:P,sourceRefs:_e,getProviderColor:px,selectedSourceId:p?E:null,onSelectSource:p?Me:void 0,draggedSource:_,dropTargetSource:w,draggable:!!n,onDragStart:xe,onDragEnd:()=>{v(null),C(null)},onDragOver:Ee,onDragLeave:De,onDrop:Oe,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_source_models`)}),(0,B.jsx)(ox,{aliasNodes:me,aliasRefs:ve,dropTargetAlias:S,draggedAlias:b,selectedAlias:p?O:null,onSelectAlias:p?Ne:void 0,draggable:!!n,onDragStart:Te,onDragEnd:()=>{x(null),T(null)},onDragOver:Se,onDragLeave:Ce,onDrop:we,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_aliases`)})]}),(0,B.jsx)(sx,{contextMenu:M,t:d,onRequestClose:()=>N(null),onAddAlias:()=>{Ae(),ae(!0),se(``),le(``)},onRenameAlias:e=>{Ae(),R({oldAlias:e}),ne(e),z(``)},onOpenAliasSettings:e=>{N(null),de(e)},onDeleteAlias:e=>{Ae();let t=me.find(t=>t.alias===e);t&&(t.sources.length===0?j(t=>t.filter(t=>t!==e)):o&&o(e))},onEditProvider:e=>{N(null),s?.(e)},onDeleteProvider:e=>{N(null),c?.(e)},onOpenSourceSettings:e=>{N(null),pe(e)}}),(0,B.jsx)(cx,{open:!!L,t:d,value:te,error:re,onChange:e=>{ne(e),z(``)},onClose:()=>R(null),onSubmit:()=>{let e=te.trim();if(!e){z(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(e===L?.oldAlias){R(null);return}if(me.some(t=>t.alias===e)){z(d(`oauth_model_alias.diagram_alias_exists`));return}a&&L&&a(L.oldAlias,e),A.includes(L?.oldAlias??``)&&j(t=>t.map(t=>t===L?.oldAlias?e:t)),R(null)}}),(0,B.jsx)(lx,{open:ie,t:d,value:oe,error:ce,onChange:e=>{se(e),le(``)},onClose:()=>ae(!1),onSubmit:()=>{let e=oe.trim();if(!e){le(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(me.some(t=>t.alias===e)){le(d(`oauth_model_alias.diagram_alias_exists`));return}j(t=>[...t,e]),ae(!1)}}),(0,B.jsx)(ux,{open:!!ue,t:d,alias:ue,aliasNodes:me,onClose:()=>de(null),onToggleFork:Fe,onUnlink:Pe}),(0,B.jsx)(dx,{open:!!fe,t:d,source:je(fe),onClose:()=>pe(null),onToggleFork:Fe,onUnlink:Pe})]})});function hx(e){let{t}=qo(),n=(0,y.useRef)(null),{disableControls:r,viewMode:i,onViewModeChange:a,onAdd:o,onEditProvider:s,onDeleteProvider:c,modelAliasError:l,modelAlias:u,allProviderModels:d,onUpdate:f,onDeleteLink:p,onToggleFork:m,onRenameAlias:h,onDeleteAlias:g}=e;return(0,B.jsx)(hg,{title:t(`oauth_model_alias.title`),extra:(0,B.jsxs)(`div`,{className:G.cardExtraButtons,children:[(0,B.jsxs)(`div`,{className:G.viewModeSwitch,children:[(0,B.jsx)(V,{variant:i===`list`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`list`),disabled:r||l===`unsupported`,children:t(`oauth_model_alias.view_mode_list`)}),(0,B.jsx)(V,{variant:i===`diagram`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`diagram`),disabled:r||l===`unsupported`,children:t(`oauth_model_alias.view_mode_diagram`)})]}),(0,B.jsx)(V,{size:`sm`,onClick:o,disabled:r||l===`unsupported`,children:t(`oauth_model_alias.add`)})]}),children:l===`unsupported`?(0,B.jsx)(wg,{title:t(`oauth_model_alias.upgrade_required_title`),description:t(`oauth_model_alias.upgrade_required_desc`)}):i===`diagram`?Object.keys(u).length===0?(0,B.jsx)(wg,{title:t(`oauth_model_alias.list_empty_all`)}):(0,B.jsxs)(`div`,{className:G.aliasChartSection,children:[(0,B.jsxs)(`div`,{className:G.aliasChartHeader,children:[(0,B.jsx)(`h4`,{className:G.aliasChartTitle,children:t(`oauth_model_alias.chart_title`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>n.current?.collapseAll(),disabled:r||l===`unsupported`,title:t(`oauth_model_alias.diagram_collapse`),"aria-label":t(`oauth_model_alias.diagram_collapse`),children:(0,B.jsx)(ds,{size:16})})]}),(0,B.jsx)(mx,{ref:n,modelAlias:u,allProviderModels:d,onUpdate:f,onDeleteLink:p,onToggleFork:m,onRenameAlias:h,onDeleteAlias:g,onEditProvider:s,onDeleteProvider:c,className:G.aliasChart})]}):Object.keys(u).length===0?(0,B.jsx)(wg,{title:t(`oauth_model_alias.list_empty_all`)}):(0,B.jsx)(`div`,{className:G.excludedList,children:Object.entries(u).map(([e,n])=>(0,B.jsxs)(`div`,{className:G.excludedItem,children:[(0,B.jsxs)(`div`,{className:G.excludedInfo,children:[(0,B.jsx)(`div`,{className:G.excludedProvider,children:e}),(0,B.jsx)(`div`,{className:G.excludedModels,children:n?.length?t(`oauth_model_alias.model_count`,{count:n.length}):t(`oauth_model_alias.no_models`)})]}),(0,B.jsxs)(`div`,{className:G.excludedActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>s(e),children:t(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>c(e),children:t(`oauth_model_alias.delete`)})]})]},e))})})}function gx({filename:e,blob:t,revokeDelayMs:n=1e3}){let r=window.URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=e,i.rel=`noopener`,i.style.display=`none`,document.body.appendChild(i),i.click(),window.setTimeout(()=>{window.URL.revokeObjectURL(r),i.remove()},n)}function _x(){let{t:e}=qo(),{showNotification:t,showConfirmation:n}=hc(),[r,i]=(0,y.useState)([]),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)({}),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(new Set),S=(0,y.useRef)(null),C=(0,y.useRef)(!1),w=b.size,T=(0,y.useCallback)(e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),E=(0,y.useCallback)(e=>{let t=e.filter(e=>!Kv(e)).map(e=>e.name);t.length!==0&&x(e=>{let n=new Set(e);return t.forEach(e=>n.add(e)),n})},[]),D=(0,y.useCallback)(e=>{let t=e.filter(e=>!Kv(e)).map(e=>e.name);t.length!==0&&x(e=>{let n=new Set(e);return t.forEach(e=>{n.has(e)?n.delete(e):n.add(e)}),n})},[]),O=(0,y.useCallback)(()=>{x(new Set)},[]),k=(0,y.useCallback)(e=>{let t=Array.from(new Set(e.map(e=>e.trim()).filter(Boolean)));if(t.length===0)return;let n=new Set(t);i(e=>e.filter(e=>!n.has(e.name))),x(e=>{if(e.size===0)return e;let t=!1,r=new Set;return e.forEach(e=>{n.has(e)?t=!0:r.add(e)}),t?r:e})},[]);(0,y.useEffect)(()=>{if(b.size===0)return;let e=new Set(r.map(e=>e.name));x(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[r,b.size]);let A=(0,y.useCallback)(async()=>{o(!0),c(``);try{i((await ag.list())?.files||[])}catch(t){c(t instanceof Error?t.message:e(`notification.refresh_failed`))}finally{o(!1)}},[e]),j=(0,y.useCallback)(()=>{S.current?.click()},[]),M=(0,y.useCallback)(async n=>{let r=n.target.files;if(!r||r.length===0)return;let i=Array.from(r),a=[],o=[],s=[];if(i.forEach(e=>{if(!e.name.endsWith(`.json`)){o.push(e.name);return}if(e.size>10485760){s.push(e.name);return}a.push(e)}),o.length>0&&t(e(`auth_files.upload_error_json`),`error`),s.length>0&&t(e(`auth_files.upload_error_size`,{maxSize:vg(sc)}),`error`),a.length===0){n.target.value=``;return}u(!0);try{let n=await ag.uploadFiles(a),r=n.uploaded;if(r>0){let i=a.length>1?` (${r}/${a.length})`:``;t(`${e(`auth_files.upload_success`)}${i}`,n.failed.length?`warning`:`success`),await A()}if(n.failed.length>0){let r=n.failed.map(e=>`${e.name}: ${e.error}`).join(`; `);t(`${e(`notification.upload_failed`)}: ${r}`,`error`)}}catch(n){let r=n instanceof Error?n.message:`Unknown error`;t(`${e(`notification.upload_failed`)}: ${r}`,`error`)}finally{u(!1),n.target.value=``}},[A,t,e]),N=(0,y.useCallback)(r=>{n({title:e(`auth_files.delete_title`,{defaultValue:`Delete File`}),message:`${e(`auth_files.delete_confirm`)} "${r}" ?`,variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{f(r);try{let n=await ag.deleteFile(r);t(e(`auth_files.delete_success`),`success`),k(n.files.length>0?n.files:[r])}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}finally{f(null)}}})},[k,n,t,e]),P=(0,y.useCallback)(a=>{let{filter:o,problemOnly:s,disabledOnly:c,onResetFilterToAll:l,onResetProblemOnly:u,onResetDisabledOnly:d}=a,f=o!==`all`,p=s===!0,h=c===!0,g=f?Hv(e,o):e(`auth_files.filter_all`),_=e(`auth_files.delete_all_confirm`);h?_=e(`auth_files.delete_filtered_result_confirm`):p?_=f?e(`auth_files.delete_problem_filtered_confirm`,{type:g}):e(`auth_files.delete_problem_confirm`):f&&(_=e(`auth_files.delete_filtered_confirm`,{type:g})),n({title:e(`auth_files.delete_all_title`,{defaultValue:`Delete All Files`}),message:_,variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{m(!0);try{if(!f&&!p&&!h)await ag.deleteAll(),t(e(`auth_files.delete_all_success`),`success`),i(e=>e.filter(e=>Kv(e))),O();else{let n=r.filter(e=>!(Kv(e)||f&&e.type!==o||p&&!Vv(e)||h&&e.disabled!==!0));if(n.length===0){let n=e(`auth_files.delete_filtered_none`,{type:g});h?n=e(`auth_files.delete_filtered_result_none`):p&&(n=f?e(`auth_files.delete_problem_filtered_none`,{type:g}):e(`auth_files.delete_problem_none`)),t(n,`info`),m(!1);return}let i=await ag.deleteFiles(n.map(e=>e.name)),a=i.deleted,s=i.failed.length;k(i.files),s===0&&h?t(e(`auth_files.delete_filtered_result_success`,{count:a}),`success`):s===0&&p?t(f?e(`auth_files.delete_problem_filtered_success`,{count:a,type:g}):e(`auth_files.delete_problem_success`,{count:a}),`success`):s===0?t(e(`auth_files.delete_filtered_success`,{count:a,type:g}),`success`):t(h?e(`auth_files.delete_filtered_result_partial`,{success:a,failed:s}):p?f?e(`auth_files.delete_problem_filtered_partial`,{success:a,failed:s,type:g}):e(`auth_files.delete_problem_partial`,{success:a,failed:s}):e(`auth_files.delete_filtered_partial`,{success:a,failed:s,type:g}),`warning`),f&&l(),p&&u(),h&&d()}}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}finally{m(!1)}}})},[k,O,r,n,t,e]),ee=(0,y.useCallback)(async n=>{try{let r=await U.getRaw(`/auth-files/download?name=${encodeURIComponent(n)}`,{responseType:`blob`});gx({filename:n,blob:new Blob([r.data])}),t(e(`auth_files.download_success`),`success`)}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.download_failed`)}: ${r}`,`error`)}},[t,e]),F=(0,y.useCallback)(async(n,r)=>{let a=n.name,o=!r,s=n.disabled===!0;g(e=>({...e,[a]:!0})),i(e=>e.map(e=>e.name===a?{...e,disabled:o}:e));try{let n=await ag.setStatus(a,o);i(e=>e.map(e=>e.name===a?{...e,disabled:n.disabled}:e)),t(e(r?`auth_files.status_enabled_success`:`auth_files.status_disabled_success`,{name:a}),`success`)}catch(n){let r=n instanceof Error?n.message:``;i(e=>e.map(e=>e.name===a?{...e,disabled:s}:e)),t(`${e(`notification.update_failed`)}: ${r}`,`error`)}finally{g(e=>{if(!e[a])return e;let t={...e};return delete t[a],t})}},[t,e]),I=(0,y.useCallback)(async(n,a)=>{if(C.current)return;let o=Array.from(new Set(n));if(o.length===0||o.some(e=>h[e]===!0))return;let s=new Map(r.filter(e=>o.includes(e.name)).map(e=>[e.name,e.disabled===!0])),c=new Set(s.keys()),l=Array.from(c);if(l.length===0)return;let u=!a;C.current=!0,v(!0),g(e=>{let t={...e};return l.forEach(e=>{t[e]=!0}),t}),i(e=>e.map(e=>c.has(e.name)?{...e,disabled:u}:e));try{let n=await Promise.allSettled(l.map(e=>ag.setStatus(e,u))),r=0,a=0,o=new Set,c=new Map;n.forEach((e,t)=>{let n=l[t];e.status===`fulfilled`?(r++,c.set(n,e.value.disabled)):(a++,o.add(n))}),i(e=>e.map(e=>o.has(e.name)?{...e,disabled:s.get(e.name)===!0}:c.has(e.name)?{...e,disabled:c.get(e.name)}:e)),a===0?t(e(`auth_files.batch_status_success`,{count:r}),`success`):t(e(`auth_files.batch_status_partial`,{success:r,failed:a}),`warning`),O()}finally{C.current=!1,v(!1),g(e=>{let t={...e};return l.forEach(e=>{delete t[e]}),t})}},[O,r,t,h,e]);return{files:r,selectedFiles:b,selectionCount:w,loading:a,error:s,uploading:l,deleting:d,deletingAll:p,statusUpdating:h,batchStatusUpdating:_,fileInputRef:S,loadFiles:A,handleUploadClick:j,handleFileChange:M,handleDelete:N,handleDeleteAll:P,handleDownload:ee,handleStatusToggle:F,toggleSelect:T,selectAllVisible:E,invertVisibleSelection:D,deselectAll:O,batchDownload:(0,y.useCallback)(async n=>{let r=Array.from(new Set(n));if(r.length===0)return;let i=0,a=0;for(let e of r)try{let t=await U.getRaw(`/auth-files/download?name=${encodeURIComponent(e)}`,{responseType:`blob`});gx({filename:e,blob:new Blob([t.data])}),i++}catch{a++}a===0?t(e(`auth_files.batch_download_success`,{count:i}),`success`):t(e(`auth_files.batch_download_partial`,{success:i,failed:a}),`warning`)},[t,e]),batchSetStatus:I,batchDelete:(0,y.useCallback)(r=>{let i=Array.from(new Set(r));i.length!==0&&n({title:e(`auth_files.batch_delete_title`),message:e(`auth_files.batch_delete_confirm`,{count:i.length}),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{let n=await ag.deleteFiles(i);k(n.files),n.failed.length===0?t(`${e(`auth_files.delete_all_success`)} (${n.deleted})`,`success`):t(e(`auth_files.delete_filtered_partial`,{success:n.deleted,failed:n.failed.length,type:e(`auth_files.filter_all`)}),`warning`)}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})},[k,n,t,e])}}function vx(){let{t:e}=qo(),t=hc(e=>e.showNotification),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),m=(0,y.useRef)(new Map),h=(0,y.useCallback)(()=>{r(!1)},[]);return{modelsModalOpen:n,modelsLoading:i,modelsList:o,modelsFileName:c,modelsFileType:u,modelsError:f,showModels:(0,y.useCallback)(async n=>{l(n.name),d(n.type||``),s([]),p(null),r(!0);let i=m.current.get(n.name);if(i){s(i),a(!1);return}a(!0);try{let e=await ag.getModelsForAuthFile(n.name);m.current.set(n.name,e),s(e)}catch(n){let r=n instanceof Error?n.message:``;r.includes(`404`)||r.includes(`not found`)||r.includes(`Not Found`)?p(`unsupported`):t(`${e(`notification.load_failed`)}: ${r}`,`error`)}finally{a(!1)}},[t,e]),closeModelsModal:h}}function yx(e){let{viewMode:t,files:n}=e,{t:r}=qo(),{showNotification:i,showConfirmation:a}=hc(),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)({}),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)({}),g=(0,y.useRef)(!1),_=(0,y.useRef)(!1),v=(0,y.useMemo)(()=>{let e=new Set;return Object.keys(u).forEach(t=>{let n=t.trim().toLowerCase();n&&e.add(n)}),n.forEach(t=>{if(typeof t.type==`string`){let n=t.type.trim().toLowerCase();n&&e.add(n)}if(typeof t.provider==`string`){let n=t.provider.trim().toLowerCase();n&&e.add(n)}}),Array.from(e)},[n,u]);(0,y.useEffect)(()=>{if(t!==`diagram`)return;let e=!1;return(async()=>{if(v.length===0){e||h({});return}let t=await Promise.all(v.map(async e=>{try{return{provider:e,models:await ag.getModelDefinitions(e)}}catch{return{provider:e,models:[]}}}));if(e)return;let n={};t.forEach(({provider:e,models:t})=>{t.length>0&&(n[e]=t)}),h(n)})(),()=>{e=!0}},[v,t]);let b=(0,y.useCallback)(async()=>{try{let e=await ag.getOauthExcludedModels();g.current=!1,s(e||{}),l(null)}catch(e){if((typeof e==`object`&&e&&`status`in e?e.status:void 0)===404){s({}),l(`unsupported`),g.current||(g.current=!0,i(r(`oauth_excluded.upgrade_required`),`warning`));return}}},[i,r]),x=(0,y.useCallback)(async()=>{try{let e=await ag.getOauthModelAlias();_.current=!1,d(e||{}),p(null)}catch(e){if((typeof e==`object`&&e&&`status`in e?e.status:void 0)===404){d({}),p(`unsupported`),_.current||(_.current=!0,i(r(`oauth_model_alias.upgrade_required`),`warning`));return}}},[i,r]);return{excluded:o,excludedError:c,modelAlias:u,modelAliasError:f,allProviderModels:m,providerList:v,loadExcluded:b,loadModelAlias:x,deleteExcluded:(0,y.useCallback)(e=>{let t=e.trim()||e;a({title:r(`oauth_excluded.delete_title`,{defaultValue:`Delete Exclusion`}),message:r(`oauth_excluded.delete_confirm`,{provider:t}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let t=zv(e);if(!t){i(r(`oauth_excluded.provider_required`),`error`);return}try{await ag.deleteOauthExcludedEntry(t),await b(),i(r(`oauth_excluded.delete_success`),`success`)}catch(e){try{let e=await ag.getOauthExcludedModels(),n={};Object.entries(e).forEach(([e,r])=>{zv(e)!==t&&(n[e]=r)}),await ag.replaceOauthExcludedModels(n),await b(),i(r(`oauth_excluded.delete_success`),`success`)}catch(t){let n=t instanceof Error?t.message:e instanceof Error?e.message:``;i(`${r(`oauth_excluded.delete_failed`)}: ${n}`,`error`)}}}})},[b,a,i,r]),deleteModelAlias:(0,y.useCallback)(e=>{a({title:r(`oauth_model_alias.delete_title`,{defaultValue:`Delete Mappings`}),message:r(`oauth_model_alias.delete_confirm`,{provider:e}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{try{await ag.deleteOauthModelAlias(e),await x(),i(r(`oauth_model_alias.delete_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.delete_failed`)}: ${t}`,`error`)}}})},[x,a,i,r]),handleMappingUpdate:(0,y.useCallback)(async(e,t,n)=>{if(!e||!t||!n)return;let a=zv(e);if(!a)return;let o=Object.keys(u).find(e=>zv(e)===a),s=(o?u[o]:null)??[],c=t.trim(),l=n.trim(),d=c.toLowerCase(),f=l.toLowerCase();if(s.some(e=>(e.name??``).trim().toLowerCase()===d&&(e.alias??``).trim().toLowerCase()===f))return;let p=[...s,{name:c,alias:l,fork:!0}];try{await ag.saveOauthModelAlias(a,p),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[x,u,i,r]),handleDeleteLink:(0,y.useCallback)((e,t,n)=>{let o=t.trim(),s=n.trim();!e||!o||!s||a({title:r(`oauth_model_alias.delete_link_title`,{defaultValue:`Unlink mapping`}),message:(0,B.jsx)(Ho,{i18nKey:`oauth_model_alias.delete_link_confirm`,values:{provider:e,sourceModel:o,alias:s},components:{code:(0,B.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let t=zv(e),n=Object.keys(u).find(e=>zv(e)===t),a=(n?u[n]:null)??[],c=o.toLowerCase(),l=s.toLowerCase(),d=a.filter(e=>(e.name??``).trim().toLowerCase()!==c||(e.alias??``).trim().toLowerCase()!==l);if(d.length!==a.length)try{d.length===0?await ag.deleteOauthModelAlias(t):await ag.saveOauthModelAlias(t,d),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}}})},[x,u,a,i,r]),handleToggleFork:(0,y.useCallback)(async(e,t,n,a)=>{let o=zv(e);if(!o)return;let s=Object.keys(u).find(e=>zv(e)===o),c=(s?u[s]:null)??[],l=t.trim().toLowerCase(),d=n.trim().toLowerCase(),f=!1,p=c.map(e=>{let t=(e.name??``).trim().toLowerCase(),n=(e.alias??``).trim().toLowerCase();return t===l&&n===d?(f=!0,a?{...e,fork:!0}:{name:e.name,alias:e.alias}):e});if(f)try{await ag.saveOauthModelAlias(o,p),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[x,u,i,r]),handleRenameAlias:(0,y.useCallback)(async(e,t)=>{let n=e.trim(),a=t.trim();if(!n||!a||n===a)return;let o=n.toLowerCase(),s=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===o));if(s.length===0)return;let c=!1,l=``;try{let e=(await Promise.allSettled(s.map(([e,t])=>{let n=t.map(e=>(e.alias??``).trim().toLowerCase()===o?{...e,alias:a}:e);return ag.saveOauthModelAlias(e,n)}))).filter(e=>e.status===`rejected`);if(e.length>0){c=!0;let t=e[0].reason;l=t instanceof Error?t.message:String(t??``)}}finally{await x()}c?i(l?`${r(`oauth_model_alias.save_failed`)}: ${l}`:r(`oauth_model_alias.save_failed`),`error`):i(r(`oauth_model_alias.save_success`),`success`)},[x,u,i,r]),handleDeleteAlias:(0,y.useCallback)(e=>{let t=e.trim();if(!t)return;let n=t.toLowerCase(),o=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===n));o.length!==0&&a({title:r(`oauth_model_alias.delete_alias_title`,{defaultValue:`Delete Alias`}),message:(0,B.jsx)(Ho,{i18nKey:`oauth_model_alias.delete_alias_confirm`,values:{alias:t},components:{code:(0,B.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let e=!1,t=``;try{let r=(await Promise.allSettled(o.map(([e,t])=>{let r=t.filter(e=>(e.alias??``).trim().toLowerCase()!==n);return r.length===0?ag.deleteOauthModelAlias(e):ag.saveOauthModelAlias(e,r)}))).filter(e=>e.status===`rejected`);if(r.length>0){e=!0;let n=r[0].reason;t=n instanceof Error?n.message:String(n??``)}}finally{await x()}e?i(t?`${r(`oauth_model_alias.delete_failed`)}: ${t}`:r(`oauth_model_alias.delete_failed`),`error`):i(r(`oauth_model_alias.delete_success`),`success`)}})},[x,u,a,i,r])}}var bx=e=>!!e&&typeof e==`object`&&!Array.isArray(e),xx=e=>bx(e)?Object.values(e).every(e=>typeof e==`string`)?null:`auth_files.headers_invalid_value`:`auth_files.headers_invalid_object`,Sx=e=>{if(!e.trim())return{value:null,errorKey:null};let t;try{t=JSON.parse(e)}catch{return{value:null,errorKey:`auth_files.headers_invalid_json`}}let n=xx(t);return n?{value:null,errorKey:n}:{value:t,errorKey:null}},Cx=e=>typeof e==`string`?e.trim():``,wx=e=>!!(e&&Object.keys(e).length>0),Tx=e=>bx(e)?Object.entries(e).reduce((e,[t,n])=>{if(typeof n!=`string`)return e;let r=t.trim(),i=n.trim();return!r||!i||(e[r]=i),e},{}):{},Ex=(e,t)=>{let n={},r=new Set(Object.keys(t));return Object.entries(t).forEach(([t,r])=>{e[t]!==r&&(n[t]=r)}),Object.keys(e).forEach(e=>{r.has(e)||(n[e]=``)}),Object.keys(n).length>0?n:void 0},Dx=(e,t)=>{if(!t)return;let n=Tx(e.headers);Object.entries(t).forEach(([e,t])=>{let r=e.trim();if(!r)return;let i=t.trim();if(!i){delete n[r];return}n[r]=i}),Object.keys(n).length>0?e.headers=n:delete e.headers},Ox=(e,t)=>{let n=e.json??{},r={},i=Cx(n.prefix),a=e.prefix.trim();a!==i&&(r.prefix=a);let o=Cx(n.proxy_url),s=e.proxyUrl.trim();s!==o&&(r.proxy_url=s);let c=Gv(n.priority),l=e.priority.trim(),u=Gv(l);if(l?u!==void 0&&(u===0?c!==void 0&&c!==0&&(r.priority=0):u!==c&&(r.priority=u)):c!==void 0&&c!==0&&(r.priority=0),e.noteTouched){let t=Cx(n.note),i=e.note.trim();i!==t&&(r.note=i)}if(e.headersTouched){let{value:i,errorKey:a}=Sx(e.headersText);if(a)throw Error(t(a));let o=Ex(Tx(n.headers),Tx(i??{}));o&&(r.headers=o)}return r},kx=(e,t)=>{if(!e?.json)return e?.rawText??``;let n=Ox(e,t),r={...e.json};return n.prefix!==void 0&&(n.prefix?r.prefix=n.prefix:delete r.prefix),n.proxy_url!==void 0&&(n.proxy_url?r.proxy_url=n.proxy_url:delete r.proxy_url),n.priority!==void 0&&(n.priority===0?delete r.priority:r.priority=n.priority),n.note!==void 0&&(n.note?r.note=n.note:`note`in r&&delete r.note),Dx(r,n.headers),JSON.stringify(r)};function Ax(e){let{disableControls:t,loadFiles:n}=e,{t:r}=qo(),i=hc(e=>e.showNotification),[a,o]=(0,y.useState)(null),s=!!(a?.headersTouched&&a.headersError),c=a?.json&&!s?kx(a,e=>r(e)):``,l=wx(a?.json&&!s?Ox(a,e=>r(e)):null);return{prefixProxyEditor:a,prefixProxyUpdatedText:c,prefixProxyDirty:l,openPrefixProxyEditor:async e=>{let n=e.name;if(!t){if(a?.fileName===n){o(null);return}o({fileName:n,fileInfoText:JSON.stringify(e,null,2),loading:!0,saving:!1,error:null,originalText:``,rawText:``,json:null,prefix:``,proxyUrl:``,priority:``,note:``,noteTouched:!1,headersText:``,headersTouched:!1,headersError:null});try{let e=(await ag.downloadText(n)).trim(),t;try{t=JSON.parse(e)}catch{o(t=>!t||t.fileName!==n?t:{...t,loading:!1,error:r(`auth_files.prefix_proxy_invalid_json`),rawText:e,originalText:e});return}if(!t||typeof t!=`object`||Array.isArray(t)){o(t=>!t||t.fileName!==n?t:{...t,loading:!1,error:r(`auth_files.prefix_proxy_invalid_json`),rawText:e,originalText:e});return}let i={...t},a=JSON.stringify(i),s=typeof i.prefix==`string`?i.prefix:``,c=typeof i.proxy_url==`string`?i.proxy_url:``,l=Gv(i.priority),u=typeof i.note==`string`?i.note:``,d=i.headers,f=``,p=null;if(d!==void 0){f=JSON.stringify(d,null,2);let{errorKey:e}=Sx(f);p=e?r(e):null}o(e=>!e||e.fileName!==n?e:{...e,loading:!1,originalText:a,rawText:a,json:i,prefix:s,proxyUrl:c,priority:l===void 0?``:String(l),note:u,noteTouched:!1,headersText:f,headersTouched:!1,headersError:p,error:null})}catch(e){let t=e instanceof Error?e.message:r(`notification.download_failed`);o(e=>!e||e.fileName!==n?e:{...e,loading:!1,error:t,rawText:``}),i(`${r(`notification.download_failed`)}: ${t}`,`error`)}}},closePrefixProxyEditor:()=>{o(null)},handlePrefixProxyChange:(e,t)=>{o(n=>{if(!n)return n;if(e===`prefix`)return{...n,prefix:String(t)};if(e===`proxyUrl`)return{...n,proxyUrl:String(t)};if(e===`priority`)return{...n,priority:String(t)};if(e===`note`)return{...n,note:String(t),noteTouched:!0};if(e===`headersText`){let e=String(t),{errorKey:i}=Sx(e);return{...n,headersText:e,headersTouched:!0,headersError:i?r(i):null}}return n})},handlePrefixProxySave:async()=>{if(!a?.json||!l)return;let e=a.fileName,t;try{t=Ox(a,e=>r(e))}catch(e){i(e instanceof Error?e.message:`Invalid format`,`error`);return}if(wx(t)){o(t=>!t||t.fileName!==e?t:{...t,saving:!0});try{await ag.patchFields(e,t),i(r(`auth_files.prefix_proxy_saved_success`,{name:e}),`success`),await n(),o(null)}catch(t){let n=t instanceof Error?t.message:``;i(`${r(`notification.update_failed`)}: ${n}`,`error`),o(t=>!t||t.fileName!==e?t:{...t,saving:!1})}}}}}function jx(e){return(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=cp(e.auth_index??e.authIndex);n&&t.set(n,pp(lp(e.recent_requests??e.recentRequests)))}),t},[e])}var Mx=[`default`,`az`,`priority`],Nx=`authFilesPage.uiState`,Px=`authFilesPage.compactMode`,Fx=new Set(Mx),Ix=e=>typeof e==`string`&&Fx.has(e),Lx=e=>{if(!e)return null;let t=e.getItem(Nx);if(!t)return null;let n=JSON.parse(t);return n&&typeof n==`object`?n:null},Rx=()=>{if(typeof window>`u`)return null;try{return Lx(window.localStorage)??Lx(window.sessionStorage)}catch{return null}},zx=e=>{if(!(typeof window>`u`)){try{window.localStorage.setItem(Nx,JSON.stringify(e))}catch{}try{window.sessionStorage.removeItem(Nx)}catch{}}},Bx=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(Px);return e===null?null:JSON.parse(e)===!0}catch{return null}},Vx=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(Px,JSON.stringify(e))}catch{}},Hx=e=>1-(1-e)**4,Ux=e=>e**3,Wx=`translateX(-50%)`,Gx=`translateX(-50%) translateY(56px)`,Kx=9,qx=12,Jx=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Yx=e=>{if(!e.includes(`*`))return null;let t=e.split(`*`).map(Jx).join(`.*`);return new RegExp(t,`i`)};function Xx(){let{t:e}=qo(),t=hc(e=>e.showNotification),n=ep(e=>e.connectionStatus),r=wc(e=>e.resolvedTheme),i=$m(),a=i?i.status===`current`:!0,o=Qn(),[s,c]=(0,y.useState)(`all`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)({regular:Kx,compact:qx}),[C,w]=(0,y.useState)(`9`),[T,E]=(0,y.useState)(`list`),[D,O]=(0,y.useState)(`default`),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),N=(0,y.useRef)(null),P=(0,y.useRef)(null),ee=(0,y.useRef)(0),F=(0,y.useRef)(0),{files:I,selectedFiles:L,selectionCount:R,loading:te,error:ne,uploading:re,deleting:z,deletingAll:ie,statusUpdating:ae,batchStatusUpdating:oe,fileInputRef:se,loadFiles:ce,handleUploadClick:le,handleFileChange:ue,handleDelete:de,handleDeleteAll:fe,handleDownload:pe,handleStatusToggle:me,toggleSelect:he,selectAllVisible:ge,invertVisibleSelection:_e,deselectAll:ve,batchDownload:ye,batchSetStatus:be,batchDelete:xe}=_x(),Se=jx(I),{excluded:Ce,excludedError:we,modelAlias:Te,modelAliasError:Ee,allProviderModels:De,loadExcluded:Oe,loadModelAlias:ke,deleteExcluded:Ae,deleteModelAlias:je,handleMappingUpdate:Me,handleDeleteLink:Ne,handleToggleFork:Pe,handleRenameAlias:Fe,handleDeleteAlias:Ie}=yx({viewMode:T,files:I}),{modelsModalOpen:Le,modelsLoading:Re,modelsList:ze,modelsFileName:Be,modelsFileType:Ve,modelsError:He,showModels:Ue,closeModelsModal:We}=vx(),{prefixProxyEditor:Ge,prefixProxyUpdatedText:Ke,prefixProxyDirty:qe,openPrefixProxyEditor:Je,closePrefixProxyEditor:Ye,handlePrefixProxyChange:Xe,handlePrefixProxySave:Ze}=Ax({disableControls:n!==`connected`,loadFiles:ce}),Qe=n!==`connected`,$e=zv(String(s)),et=Nv.has($e)?$e:null,tt=p?b.compact:b.regular;(0,y.useEffect)(()=>{let e=Bx();typeof e==`boolean`&&m(e);let t=Rx();if(t){typeof t.filter==`string`&&t.filter.trim()&&c(t.filter),typeof t.problemOnly==`boolean`&&u(t.problemOnly),typeof t.disabledOnly==`boolean`&&f(t.disabledOnly),typeof e!=`boolean`&&typeof t.compactMode==`boolean`&&m(t.compactMode),typeof t.search==`string`&&g(t.search),typeof t.page==`number`&&Number.isFinite(t.page)&&v(Math.max(1,Math.round(t.page)));let n=typeof t.pageSize==`number`&&Number.isFinite(t.pageSize)?Lv(t.pageSize):null;x({regular:typeof t.regularPageSize==`number`&&Number.isFinite(t.regularPageSize)?Lv(t.regularPageSize):n??Kx,compact:typeof t.compactPageSize==`number`&&Number.isFinite(t.compactPageSize)?Lv(t.compactPageSize):n??qx}),Ix(t.sortMode)&&O(t.sortMode)}M(!0)},[]),(0,y.useEffect)(()=>{j&&(zx({filter:s,problemOnly:l,disabledOnly:d,compactMode:p,search:h,page:_,pageSize:tt,regularPageSize:b.regular,compactPageSize:b.compact,sortMode:D}),Vx(p))},[p,d,s,_,tt,b,l,h,D,j]),(0,y.useEffect)(()=>{w(String(tt))},[tt]);let nt=(0,y.useCallback)(e=>{x(t=>p?{...t,compact:e}:{...t,regular:e})},[p]),rt=e=>{let t=e.trim();if(!t){w(String(tt));return}let n=Number(t);if(!Number.isFinite(n)){w(String(tt));return}let r=Lv(n);nt(r),w(String(r)),v(1)},it=e=>{let t=e.currentTarget.value;w(t);let n=t.trim();if(!n)return;let r=Number(n);if(!Number.isFinite(r))return;let i=Math.round(r);i<3||i>30||(nt(i),v(1))},at=(0,y.useCallback)(e=>{!Ix(e)||e===D||(O(e),v(1),ce().catch(()=>{}))},[ce,D]),ot=(0,y.useCallback)(async()=>{await Promise.all([ce(),Oe(),ke()])},[ce,Oe,ke]);a_(ot),(0,y.useEffect)(()=>{a&&(ce(),Oe(),ke())},[a,ce,Oe,ke]),qg(()=>{ce().catch(()=>{})},a?24e4:null);let st=(0,y.useMemo)(()=>{let e=new Set([`all`]);return I.forEach(t=>{t.type&&e.add(t.type)}),Array.from(e)},[I]),ct=(0,y.useMemo)(()=>I.filter(e=>!(l&&!Vv(e)||d&&e.disabled!==!0)),[d,I,l]),lt=(0,y.useMemo)(()=>[{value:`default`,label:e(`auth_files.sort_default`)},{value:`az`,label:e(`auth_files.sort_az`)},{value:`priority`,label:e(`auth_files.sort_priority`)}],[e]),ut=(0,y.useMemo)(()=>{let e={all:ct.length};return ct.forEach(t=>{t.type&&(e[t.type]=(e[t.type]||0)+1)}),e},[ct]),dt=h.trim(),ft=(0,y.useMemo)(()=>Yx(dt),[dt]),pt=(0,y.useMemo)(()=>{let e=dt.toLowerCase();return ct.filter(t=>{let n=s===`all`||t.type===s,r=!dt||[t.name,t.type,t.provider].some(t=>{let n=(t||``).toString();return ft?ft.test(n):n.toLowerCase().includes(e)});return n&&r})},[ct,s,dt,ft]),mt=(0,y.useMemo)(()=>{let e=[...pt];return D===`default`?e.sort((e,t)=>{let n=zv(String(e.provider??e.type??`unknown`)),r=zv(String(t.provider??t.type??`unknown`)),i=n.localeCompare(r);return i===0?e.name.localeCompare(t.name):i}):D===`az`?e.sort((e,t)=>e.name.localeCompare(t.name)):D===`priority`&&e.sort((e,t)=>{let n=Gv(e.priority??e.priority)??0;return(Gv(t.priority??t.priority)??0)-n}),e},[pt,D]),ht=Math.max(1,Math.ceil(mt.length/tt)),gt=Math.min(_,ht),_t=(gt-1)*tt,vt=mt.slice(_t,_t+tt),yt=(0,y.useMemo)(()=>vt.filter(e=>!Kv(e)),[vt]),bt=(0,y.useMemo)(()=>mt.filter(e=>!Kv(e)),[mt]),xt=(0,y.useMemo)(()=>Array.from(L),[L]),St=(0,y.useMemo)(()=>xt.some(e=>ae[e]===!0),[xt,ae]),Ct=Qe||xt.length===0||oe||St,wt=(0,y.useCallback)(async n=>{let r=await Dv(n);t(r?e(`notification.link_copied`,{defaultValue:`Copied to clipboard`}):e(`notification.copy_failed`,{defaultValue:`Copy failed`}),r?`success`:`error`)},[t,e]),Tt=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-excluded${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]),Et=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-model-alias${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]);(0,y.useLayoutEffect)(()=>{if(typeof window>`u`)return;let e=N.current;if(!e){document.documentElement.style.removeProperty(`--auth-files-action-bar-height`);return}let t=()=>{let t=e.getBoundingClientRect().height;document.documentElement.style.setProperty(`--auth-files-action-bar-height`,`${t}px`)};t(),window.addEventListener(`resize`,t);let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),document.documentElement.style.removeProperty(`--auth-files-action-bar-height`)}},[k,R]),(0,y.useEffect)(()=>{F.current=R,R>0&&A(!0)},[R]),(0,y.useLayoutEffect)(()=>{if(!k)return;let e=R,t=ee.current,n=N.current;n&&(P.current?.stop(),P.current=null,e>0&&t===0?P.current=Xm(n,{transform:[Gx,Wx],opacity:[0,1]},{duration:.28,ease:Hx,onComplete:()=>{n.style.transform=Wx,n.style.opacity=`1`}}):e===0&&t>0&&(P.current=Xm(n,{transform:[Wx,Gx],opacity:[1,0]},{duration:.22,ease:Ux,onComplete:()=>{F.current===0&&A(!1)}})),ee.current=e)},[k,R]),(0,y.useEffect)(()=>()=>{P.current?.stop(),P.current=null},[]);let Dt=()=>(0,B.jsx)(`div`,{className:G.filterRail,children:(0,B.jsx)(`div`,{className:G.filterTags,children:st.map(t=>{let n=s===t,i=Wv(t,r),a=t===`all`?{bg:`var(--bg-tertiary)`,text:`var(--text-primary)`}:Uv(t,r),o={"--filter-color":a.text,"--filter-surface":a.bg,"--filter-active-text":r===`dark`?`#111827`:`#ffffff`};return(0,B.jsxs)(`button`,{className:`${G.filterTag} ${n?G.filterTagActive:``}`,style:o,onClick:()=>{c(t),v(1)},children:[(0,B.jsxs)(`span`,{className:G.filterTagLabel,children:[t===`all`?(0,B.jsx)(`span`,{className:`${G.filterTagIconWrap} ${G.filterAllIconWrap}`,children:(0,B.jsx)(rs,{className:G.filterAllIcon,size:16})}):(0,B.jsx)(`span`,{className:G.filterTagIconWrap,children:i?(0,B.jsx)(`img`,{src:i,alt:``,className:G.filterTagIcon}):(0,B.jsx)(`span`,{className:G.filterTagIconFallback,children:Hv(e,t).slice(0,1).toUpperCase()})}),(0,B.jsx)(`span`,{className:G.filterTagText,children:Hv(e,t)})]}),(0,B.jsx)(`span`,{className:G.filterTagCount,children:ut[t]??0})]},t)})})}),Ot=(0,B.jsxs)(`div`,{className:G.titleWrapper,children:[(0,B.jsx)(`span`,{children:e(`auth_files.title_section`)}),I.length>0&&(0,B.jsx)(`span`,{className:G.countBadge,children:I.length})]}),kt=d?e(`auth_files.delete_filtered_result_button`):l?s===`all`?e(`auth_files.delete_problem_button`):e(`auth_files.delete_problem_button_with_type`,{type:Hv(e,s)}):s===`all`?e(`auth_files.delete_all_button`):`${e(`common.delete`)} ${Hv(e,s)}`;return(0,B.jsxs)(`div`,{className:G.container,children:[(0,B.jsxs)(`div`,{className:G.pageHeader,children:[(0,B.jsx)(`h1`,{className:G.pageTitle,children:e(`auth_files.title`)}),(0,B.jsx)(`p`,{className:G.description,children:e(`auth_files.description`)})]}),(0,B.jsxs)(hg,{title:Ot,extra:(0,B.jsxs)(`div`,{className:G.headerActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ot,disabled:te,children:e(`common.refresh`)}),(0,B.jsx)(V,{size:`sm`,onClick:le,disabled:Qe||re,loading:re,children:e(`auth_files.upload_button`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>fe({filter:s,problemOnly:l,disabledOnly:d,onResetFilterToAll:()=>c(`all`),onResetProblemOnly:()=>u(!1),onResetDisabledOnly:()=>f(!1)}),disabled:Qe||te||ie,loading:ie,children:kt}),(0,B.jsx)(`input`,{ref:se,type:`file`,accept:`.json,application/json`,multiple:!0,style:{display:`none`},onChange:ue})]}),children:[ne&&(0,B.jsx)(`div`,{className:G.errorBox,children:ne}),(0,B.jsxs)(`div`,{className:G.filterSection,children:[Dt(),(0,B.jsxs)(`div`,{className:G.filterContent,children:[(0,B.jsx)(`div`,{className:G.filterControlsPanel,children:(0,B.jsxs)(`div`,{className:G.filterControls,children:[(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.search_label`)}),(0,B.jsx)(Xo,{value:h,onChange:e=>{g(e.target.value),v(1)},placeholder:e(`auth_files.search_placeholder`)})]}),(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.page_size_label`)}),(0,B.jsx)(`input`,{className:G.pageSizeSelect,type:`number`,min:3,max:30,step:1,value:C,onChange:it,onBlur:e=>rt(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}})]}),(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.sort_label`)}),(0,B.jsx)(Us,{className:G.sortSelect,value:D,options:lt,onChange:at,ariaLabel:e(`auth_files.sort_label`),fullWidth:!0})]}),(0,B.jsxs)(`div`,{className:`${G.filterItem} ${G.filterToggleItem}`,children:[(0,B.jsx)(`label`,{children:e(`auth_files.display_options_label`)}),(0,B.jsxs)(`div`,{className:G.filterToggleGroup,children:[(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:l,onChange:e=>{u(e),v(1)},ariaLabel:e(`auth_files.problem_filter_only`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.problem_filter_only`)})})}),(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:d,onChange:e=>{f(e),v(1)},ariaLabel:e(`auth_files.disabled_filter_only`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.disabled_filter_only`)})})}),(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:p,onChange:e=>m(e),ariaLabel:e(`auth_files.compact_mode_label`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.compact_mode_label`)})})})]})]})]})}),te?(0,B.jsx)(`div`,{className:G.hint,children:e(`common.loading`)}):vt.length===0?(0,B.jsx)(wg,{title:e(`auth_files.search_empty_title`),description:e(`auth_files.search_empty_desc`)}):(0,B.jsx)(`div`,{className:`${G.fileGrid} ${et?G.fileGridQuotaManaged:``} ${p?G.fileGridCompact:``}`,children:vt.map(e=>(0,B.jsx)(ex,{file:e,compact:p,selected:L.has(e.name),resolvedTheme:r,disableControls:Qe,deleting:z,statusUpdating:ae,quotaFilterType:et,statusBarCache:Se,onShowModels:Ue,onDownload:pe,onOpenPrefixProxyEditor:Je,onDelete:de,onToggleStatus:me,onToggleSelect:he},e.name))}),!te&&mt.length>tt&&(0,B.jsxs)(`div`,{className:G.pagination,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(Math.max(1,gt-1)),disabled:gt<=1,children:e(`auth_files.pagination_prev`)}),(0,B.jsx)(`div`,{className:G.pageInfo,children:e(`auth_files.pagination_info`,{current:gt,total:ht,count:mt.length})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(Math.min(ht,gt+1)),disabled:gt>=ht,children:e(`auth_files.pagination_next`)})]})]})]})]}),(0,B.jsx)(rx,{disableControls:Qe,excludedError:we,excluded:Ce,onAdd:()=>Tt(),onEdit:Tt,onDelete:Ae}),(0,B.jsx)(hx,{disableControls:Qe,viewMode:T,onViewModeChange:E,onAdd:()=>Et(),onEditProvider:Et,onDeleteProvider:je,modelAliasError:Ee,modelAlias:Te,allProviderModels:De,onUpdate:Me,onDeleteLink:Ne,onToggleFork:Pe,onRenameAlias:Fe,onDeleteAlias:Ie}),(0,B.jsx)(tx,{open:Le,fileName:Be,fileType:Ve,loading:Re,error:He,models:ze,excluded:Ce,onClose:We,onCopyText:wt}),(0,B.jsx)(nx,{disableControls:Qe,editor:Ge,updatedText:Ke,dirty:qe,onClose:Ye,onCopyText:wt,onSave:Ze,onChange:Xe}),k&&typeof document<`u`?(0,S.createPortal)((0,B.jsx)(`div`,{className:G.batchActionContainer,ref:N,children:(0,B.jsxs)(`div`,{className:G.batchActionBar,children:[(0,B.jsxs)(`div`,{className:G.batchActionLeft,children:[(0,B.jsx)(`span`,{className:G.batchSelectionText,children:e(`auth_files.batch_selected`,{count:R})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ge(vt),disabled:yt.length===0,children:e(`auth_files.batch_select_page`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ge(mt),disabled:bt.length===0,children:e(`auth_files.batch_select_filtered`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>_e(vt),disabled:yt.length===0,children:e(`auth_files.batch_invert_page`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:ve,children:e(`auth_files.batch_deselect`)})]}),(0,B.jsxs)(`div`,{className:G.batchActionRight,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void ye(xt),disabled:Qe||xt.length===0,children:e(`auth_files.batch_download`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>be(xt,!0),disabled:Ct,children:e(`auth_files.batch_enable`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>be(xt,!1),disabled:Ct,children:e(`auth_files.batch_disable`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>xe(xt),disabled:Qe||xt.length===0,children:e(`common.delete`)})]})]})}),document.body):null]})}function Zx({label:e,value:t,onChange:n,options:r,placeholder:i,disabled:a,hint:o,error:s,className:c=``,wrapperClassName:l=``,wrapperStyle:u,id:d,rightElement:f}){let[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(-1),_=(0,y.useRef)(null),v=r.map(e=>typeof e==`string`?{value:e,label:e}:{value:e.value,label:e.label||e.value}).filter(e=>{let n=t.toLowerCase();return e.value.toLowerCase().includes(n)||e.label&&e.label.toLowerCase().includes(n)});(0,y.useEffect)(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&m(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let b=e=>{n(e.target.value),m(!0),g(-1)},x=e=>{n(e),m(!1)};return(0,B.jsxs)(`div`,{className:`form-group ${l}`,ref:_,style:u,children:[e&&(0,B.jsx)(`label`,{htmlFor:d,children:e}),(0,B.jsxs)(`div`,{style:{position:`relative`},children:[(0,B.jsx)(`input`,{id:d,className:`input ${c}`.trim(),value:t,onChange:b,onFocus:()=>m(!0),onKeyDown:e=>{if(!a)if(e.key===`ArrowDown`){if(e.preventDefault(),!p){m(!0);return}g(e=>ee>0?e-1:0)):e.key===`Enter`?p&&h>=0&&h!a&&m(!p),children:[f,(0,B.jsx)(fs,{size:16,style:{opacity:.5,marginLeft:4}})]}),p&&v.length>0&&!a&&(0,B.jsx)(`div`,{className:`autocomplete-dropdown`,style:{position:`absolute`,top:`calc(100% + 4px)`,left:0,right:0,zIndex:1e3,backgroundColor:`var(--bg-secondary)`,border:`1px solid var(--border-color)`,borderRadius:`var(--radius-md)`,maxHeight:200,overflowY:`auto`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)`},children:v.map((e,t)=>(0,B.jsxs)(`div`,{onClick:()=>x(e.value),style:{padding:`8px 12px`,cursor:`pointer`,backgroundColor:t===h?`var(--bg-tertiary)`:`transparent`,color:`var(--text-primary)`,display:`flex`,flexDirection:`column`,fontSize:`0.9rem`},onMouseEnter:()=>g(t),children:[(0,B.jsx)(`span`,{style:{fontWeight:500},children:e.value}),e.label&&e.label!==e.value&&(0,B.jsx)(`span`,{style:{fontSize:`0.85em`,color:`var(--text-secondary)`},children:e.label})]},`${e.value}-${t}`))})]}),o&&(0,B.jsx)(`div`,{className:`hint`,children:o}),s&&(0,B.jsx)(`div`,{className:`error-box`,children:s})]})}var Qx={pageContent:`AuthFilesOAuthExcludedEditPage-module__pageContent___42nA2`,settingsCard:`AuthFilesOAuthExcludedEditPage-module__settingsCard___EE-1z`,settingsHeader:`AuthFilesOAuthExcludedEditPage-module__settingsHeader___Jm0RO`,settingsHeaderTitle:`AuthFilesOAuthExcludedEditPage-module__settingsHeaderTitle___nOj9w`,settingsHeaderHint:`AuthFilesOAuthExcludedEditPage-module__settingsHeaderHint___EzQSN`,settingsSection:`AuthFilesOAuthExcludedEditPage-module__settingsSection___ozndx`,settingsRow:`AuthFilesOAuthExcludedEditPage-module__settingsRow___z6QPQ`,settingsInfo:`AuthFilesOAuthExcludedEditPage-module__settingsInfo___lRYwp`,settingsLabel:`AuthFilesOAuthExcludedEditPage-module__settingsLabel___KbPgc`,settingsDesc:`AuthFilesOAuthExcludedEditPage-module__settingsDesc___6LSPN`,settingsControl:`AuthFilesOAuthExcludedEditPage-module__settingsControl___luVcd`,tagList:`AuthFilesOAuthExcludedEditPage-module__tagList___Is0Fd`,tag:`AuthFilesOAuthExcludedEditPage-module__tag___fyrKv`,tagActive:`AuthFilesOAuthExcludedEditPage-module__tagActive___EkiBG`,modelsHint:`AuthFilesOAuthExcludedEditPage-module__modelsHint___Rm6l4`,loadingModels:`AuthFilesOAuthExcludedEditPage-module__loadingModels___-9Wy6`,modelList:`AuthFilesOAuthExcludedEditPage-module__modelList___6ebAr`,modelItem:`AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o`,modelText:`AuthFilesOAuthExcludedEditPage-module__modelText___50mQC`,modelId:`AuthFilesOAuthExcludedEditPage-module__modelId___Z2Ylu`,modelDisplayName:`AuthFilesOAuthExcludedEditPage-module__modelDisplayName___ATlA5`,emptyModels:`AuthFilesOAuthExcludedEditPage-module__emptyModels___kAuwa`},$x=[`gemini-cli`,`vertex`,`aistudio`,`antigravity`,`claude`,`codex`,`qwen`,`kimi`,`iflow`],eS=new Set([`all`,`unknown`,`empty`]),tS=e=>e.trim().toLowerCase();function nS(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=ep(e=>e.connectionStatus)!==`connected`,[a,o]=Hi(),s=a.get(`provider`)??``,[c,l]=(0,y.useState)(s),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)({}),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)(!0),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(new Set),[C,w]=(0,y.useState)([]),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(!1);(0,y.useEffect)(()=>{l(s)},[s]);let j=(0,y.useMemo)(()=>{let e=new Set;Object.keys(f).forEach(t=>e.add(t)),Object.keys(m).forEach(t=>e.add(t)),u.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)});let t=Array.from(e).map(e=>e.trim()).filter(e=>e&&!eS.has(e.toLowerCase())),n=new Set($x.map(e=>e.toLowerCase())),r=t.filter(e=>!n.has(e.toLowerCase())).sort((e,t)=>e.localeCompare(t));return[...$x,...r]},[f,u,m]),M=(0,y.useCallback)(t=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},[e]),N=(0,y.useMemo)(()=>tS(c),[c]),P=(0,y.useMemo)(()=>N?Object.prototype.hasOwnProperty.call(f,N):!1,[f,N]),ee=(0,y.useMemo)(()=>P?e(`oauth_excluded.edit_title`,{provider:c.trim()||N}):e(`oauth_excluded.add_title`),[P,c,N,e]),F=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),I=d_({onBack:F});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&F()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[F]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{_(!0),b(!1);try{let[t,n,r]=await Promise.allSettled([ag.list(),ag.getOauthExcludedModels(),ag.getOauthModelAlias()]);if(e)return;if(t.status===`fulfilled`&&d(t.value?.files??[]),r.status===`fulfilled`&&h(r.value??{}),n.status===`fulfilled`){p(n.value??{});return}let i=n.status===`rejected`?n.reason:null;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){b(!0);return}}finally{e||_(!1)}})().catch(()=>{e||_(!1)}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!N){S(new Set);return}let e=f[N]??[];S(new Set(e))},[f,N]),(0,y.useEffect)(()=>{if(!N||v){w([]),O(null),E(!1);return}let t=!1;return E(!0),O(null),ag.getModelDefinitions(N).then(e=>{t||w(e)}).catch(n=>{if(t)return;if((typeof n==`object`&&n&&`status`in n?n.status:void 0)===404){w([]),O(`unsupported`);return}let i=n instanceof Error?n.message:``;r(`${e(`notification.load_failed`)}: ${i}`,`error`)}).finally(()=>{t||E(!1)}),()=>{t=!0}},[v,N,r,e]);let L=(0,y.useCallback)(e=>{l(e);let t=new URLSearchParams(a),n=e.trim();n?t.set(`provider`,n):t.delete(`provider`),o(t,{replace:!0})},[a,o]),R=(0,y.useCallback)((e,t)=>{S(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),te=(0,y.useCallback)(async()=>{let t=tS(c);if(!t){r(e(`oauth_excluded.provider_required`),`error`);return}let n=[...x];A(!0);try{n.length?await ag.saveOauthExcludedModels(t,n):await ag.deleteOauthExcludedEntry(t),r(e(`oauth_excluded.save_success`),`success`),F()}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`oauth_excluded.save_failed`)}: ${n}`,`error`)}finally{A(!1)}},[F,c,x,r,e]),ne=!i&&!k&&!v;return(0,B.jsx)(h_,{ref:I,title:ee,onBack:F,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:Qx.pageContent,rightAction:(0,B.jsx)(V,{size:`sm`,onClick:te,loading:k,disabled:!ne,children:e(`oauth_excluded.save`)}),isLoading:g,loadingLabel:e(`common.loading`),children:v?(0,B.jsx)(hg,{children:(0,B.jsx)(wg,{title:e(`oauth_excluded.upgrade_required_title`),description:e(`oauth_excluded.upgrade_required_desc`)})}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(hg,{className:Qx.settingsCard,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeader,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeaderTitle,children:[(0,B.jsx)(ss,{size:16}),(0,B.jsx)(`span`,{children:e(`oauth_excluded.title`)})]}),(0,B.jsx)(`div`,{className:Qx.settingsHeaderHint,children:e(`oauth_excluded.description`)})]}),(0,B.jsxs)(`div`,{className:Qx.settingsSection,children:[(0,B.jsxs)(`div`,{className:Qx.settingsRow,children:[(0,B.jsxs)(`div`,{className:Qx.settingsInfo,children:[(0,B.jsx)(`div`,{className:Qx.settingsLabel,children:e(`oauth_excluded.provider_label`)}),(0,B.jsx)(`div`,{className:Qx.settingsDesc,children:e(`oauth_excluded.provider_hint`)})]}),(0,B.jsx)(`div`,{className:Qx.settingsControl,children:(0,B.jsx)(Zx,{id:`oauth-excluded-provider`,placeholder:e(`oauth_excluded.provider_placeholder`),value:c,onChange:L,options:j,disabled:i||k,wrapperStyle:{marginBottom:0}})})]}),j.length>0&&(0,B.jsx)(`div`,{className:Qx.tagList,children:j.map(e=>{let t=tS(c)===e.toLowerCase();return(0,B.jsx)(`button`,{type:`button`,className:`${Qx.tag} ${t?Qx.tagActive:``}`,onClick:()=>L(e),disabled:i||k,children:M(e)},e)})})]})]}),(0,B.jsxs)(hg,{className:Qx.settingsCard,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeader,children:[(0,B.jsx)(`div`,{className:Qx.settingsHeaderTitle,children:e(`oauth_excluded.models_label`)}),N&&(0,B.jsx)(`div`,{className:Qx.modelsHint,children:T?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(p_,{size:14}),(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_loading`)})]}):D===`unsupported`?(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_unsupported`)}):C.length>0?(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_loaded`,{count:C.length})}):(0,B.jsx)(`span`,{children:e(`oauth_excluded.no_models_available`)})})]}),T?(0,B.jsxs)(`div`,{className:Qx.loadingModels,children:[(0,B.jsx)(p_,{size:16}),(0,B.jsx)(`span`,{children:e(`common.loading`)})]}):C.length>0?(0,B.jsx)(`div`,{className:Qx.modelList,children:C.map(e=>(0,B.jsx)(Gs,{checked:x.has(e.id),disabled:i||k,onChange:t=>R(e.id,t),className:Qx.modelItem,labelClassName:Qx.modelText,label:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Qx.modelId,children:e.id}),e.display_name&&e.display_name!==e.id&&(0,B.jsx)(`span`,{className:Qx.modelDisplayName,children:e.display_name})]})},e.id))}):N?(0,B.jsx)(`div`,{className:Qx.emptyModels,children:e(D===`unsupported`?`oauth_excluded.models_unsupported`:`oauth_excluded.no_models_available`)}):(0,B.jsx)(`div`,{className:Qx.emptyModels,children:e(`oauth_excluded.provider_required`)})]})]})})}var rS={pageContent:`AuthFilesOAuthModelAliasEditPage-module__pageContent___mxGSP`,settingsCard:`AuthFilesOAuthModelAliasEditPage-module__settingsCard___4uMxA`,settingsHeader:`AuthFilesOAuthModelAliasEditPage-module__settingsHeader___h4vIs`,settingsHeaderTitle:`AuthFilesOAuthModelAliasEditPage-module__settingsHeaderTitle___GExPS`,settingsHeaderHint:`AuthFilesOAuthModelAliasEditPage-module__settingsHeaderHint___C94bR`,settingsSection:`AuthFilesOAuthModelAliasEditPage-module__settingsSection___JQr18`,settingsRow:`AuthFilesOAuthModelAliasEditPage-module__settingsRow___qzQdL`,settingsInfo:`AuthFilesOAuthModelAliasEditPage-module__settingsInfo___Jt7Ub`,settingsLabel:`AuthFilesOAuthModelAliasEditPage-module__settingsLabel___v6dmL`,settingsDesc:`AuthFilesOAuthModelAliasEditPage-module__settingsDesc___TgK3P`,settingsControl:`AuthFilesOAuthModelAliasEditPage-module__settingsControl___nSl-3`,tagList:`AuthFilesOAuthModelAliasEditPage-module__tagList___OxNTF`,tag:`AuthFilesOAuthModelAliasEditPage-module__tag___sULm6`,tagActive:`AuthFilesOAuthModelAliasEditPage-module__tagActive___CcyFC`,mappingsHeader:`AuthFilesOAuthModelAliasEditPage-module__mappingsHeader___wddAp`,mappingsTitle:`AuthFilesOAuthModelAliasEditPage-module__mappingsTitle___QywAa`,modelsHint:`AuthFilesOAuthModelAliasEditPage-module__modelsHint___nQAc7`,mappingsBody:`AuthFilesOAuthModelAliasEditPage-module__mappingsBody___jOz-S`,mappingRow:`AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41`,mappingSeparator:`AuthFilesOAuthModelAliasEditPage-module__mappingSeparator___dN9rZ`,mappingAliasInput:`AuthFilesOAuthModelAliasEditPage-module__mappingAliasInput___iG0V3`,mappingFork:`AuthFilesOAuthModelAliasEditPage-module__mappingFork___4pAg3`},iS=[`gemini-cli`,`vertex`,`aistudio`,`antigravity`,`claude`,`codex`,`qwen`,`kimi`,`iflow`],aS=new Set([`all`,`unknown`,`empty`]),oS=e=>e.trim().toLowerCase(),sS=()=>({id:Qs(),name:``,alias:``,fork:!0}),cS=e=>!Array.isArray(e)||e.length===0?[sS()]:e.map(e=>({id:Qs(),name:e.name??``,alias:e.alias??``,fork:!!e.fork}));function lS(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=ep(e=>e.connectionStatus)!==`connected`,[a,o]=Hi(),s=a.get(`provider`)??``,[c,l]=(0,y.useState)(s),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)({}),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)(!0),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)([sS()]),[C,w]=(0,y.useState)([]),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(!1);(0,y.useEffect)(()=>{l(s)},[s]);let j=(0,y.useMemo)(()=>{let e=new Set;Object.keys(f).forEach(t=>e.add(t)),Object.keys(m).forEach(t=>e.add(t)),u.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)});let t=Array.from(e).map(e=>e.trim()).filter(e=>e&&!aS.has(e.toLowerCase())),n=new Set(iS.map(e=>e.toLowerCase())),r=t.filter(e=>!n.has(e.toLowerCase())).sort((e,t)=>e.localeCompare(t));return[...iS,...r]},[f,u,m]),M=(0,y.useCallback)(t=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},[e]),N=(0,y.useMemo)(()=>oS(c),[c]),P=(0,y.useMemo)(()=>e(`oauth_model_alias.add_title`),[e]),ee=(0,y.useMemo)(()=>c.trim()?T?e(`oauth_model_alias.model_source_loading`):D===`unsupported`?e(`oauth_model_alias.model_source_unsupported`):e(`oauth_model_alias.model_source_loaded`,{count:C.length}):e(`oauth_model_alias.provider_hint`),[D,C.length,T,c,e]),F=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),I=d_({onBack:F});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&F()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[F]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{_(!0),b(!1);try{let[t,n,r]=await Promise.allSettled([ag.list(),ag.getOauthExcludedModels(),ag.getOauthModelAlias()]);if(e)return;if(t.status===`fulfilled`&&d(t.value?.files??[]),n.status===`fulfilled`&&p(n.value??{}),r.status===`fulfilled`){h(r.value??{});return}let i=r.status===`rejected`?r.reason:null;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){b(!0);return}}finally{e||_(!1)}})().catch(()=>{e||_(!1)}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!N){S([sS()]);return}S(cS(m[N]??[]))},[m,N]),(0,y.useEffect)(()=>{if(!N||v){w([]),O(null),E(!1);return}let t=!1;return E(!0),O(null),ag.getModelDefinitions(N).then(e=>{t||w(e)}).catch(n=>{if(t)return;if((typeof n==`object`&&n&&`status`in n?n.status:void 0)===404){w([]),O(`unsupported`);return}let i=n instanceof Error?n.message:``;r(`${e(`notification.load_failed`)}: ${i}`,`error`)}).finally(()=>{t||E(!1)}),()=>{t=!0}},[v,N,r,e]);let L=(0,y.useCallback)(e=>{l(e);let t=new URLSearchParams(a),n=e.trim();n?t.set(`provider`,n):t.delete(`provider`),o(t,{replace:!0})},[a,o]),R=(0,y.useCallback)((e,t,n)=>{S(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))},[]),te=(0,y.useCallback)(()=>{S(e=>[...e,sS()])},[]),ne=(0,y.useCallback)(e=>{S(t=>{let n=t.filter((t,n)=>n!==e);return n.length?n:[sS()]})},[]),re=(0,y.useCallback)(async()=>{let t=c.trim();if(!t){r(e(`oauth_model_alias.provider_required`),`error`);return}let n=new Set,i=x.map(e=>{let t=String(e.name??``).trim(),r=String(e.alias??``).trim();if(!t||!r)return null;let i=`${t.toLowerCase()}::${r.toLowerCase()}::${e.fork?`1`:`0`}`;return n.has(i)?null:(n.add(i),e.fork?{name:t,alias:r,fork:!0}:{name:t,alias:r})}).filter(Boolean);A(!0);try{i.length?await ag.saveOauthModelAlias(t,i):await ag.deleteOauthModelAlias(t),r(e(`oauth_model_alias.save_success`),`success`),F()}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`oauth_model_alias.save_failed`)}: ${n}`,`error`)}finally{A(!1)}},[F,x,c,r,e]),z=!i&&!k&&!v;return(0,B.jsx)(h_,{ref:I,title:P,onBack:F,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:rS.pageContent,rightAction:(0,B.jsx)(V,{size:`sm`,onClick:re,loading:k,disabled:!z,children:e(`oauth_model_alias.save`)}),isLoading:g,loadingLabel:e(`common.loading`),children:v?(0,B.jsx)(hg,{children:(0,B.jsx)(wg,{title:e(`oauth_model_alias.upgrade_required_title`),description:e(`oauth_model_alias.upgrade_required_desc`)})}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(hg,{className:rS.settingsCard,children:[(0,B.jsxs)(`div`,{className:rS.settingsHeader,children:[(0,B.jsxs)(`div`,{className:rS.settingsHeaderTitle,children:[(0,B.jsx)(ss,{size:16}),(0,B.jsx)(`span`,{children:e(`oauth_model_alias.title`)})]}),(0,B.jsx)(`div`,{className:rS.settingsHeaderHint,children:ee})]}),(0,B.jsxs)(`div`,{className:rS.settingsSection,children:[(0,B.jsxs)(`div`,{className:rS.settingsRow,children:[(0,B.jsxs)(`div`,{className:rS.settingsInfo,children:[(0,B.jsx)(`div`,{className:rS.settingsLabel,children:e(`oauth_model_alias.provider_label`)}),(0,B.jsx)(`div`,{className:rS.settingsDesc,children:e(`oauth_model_alias.provider_hint`)})]}),(0,B.jsx)(`div`,{className:rS.settingsControl,children:(0,B.jsx)(Zx,{id:`oauth-model-alias-provider`,placeholder:e(`oauth_model_alias.provider_placeholder`),value:c,onChange:L,options:j,disabled:i||k,wrapperStyle:{marginBottom:0}})})]}),j.length>0&&(0,B.jsx)(`div`,{className:rS.tagList,children:j.map(e=>{let t=oS(c)===e.toLowerCase();return(0,B.jsx)(`button`,{type:`button`,className:`${rS.tag} ${t?rS.tagActive:``}`,onClick:()=>L(e),disabled:i||k,children:M(e)},e)})})]})]}),(0,B.jsxs)(hg,{className:rS.settingsCard,children:[(0,B.jsxs)(`div`,{className:rS.mappingsHeader,children:[(0,B.jsx)(`div`,{className:rS.mappingsTitle,children:e(`oauth_model_alias.alias_label`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:te,disabled:i||k||v,children:e(`oauth_model_alias.add_alias`)})]}),(0,B.jsx)(`div`,{className:rS.mappingsBody,children:x.map((t,n)=>(0,B.jsxs)(`div`,{className:rS.mappingRow,children:[(0,B.jsx)(Zx,{wrapperStyle:{flex:1,marginBottom:0},placeholder:e(`oauth_model_alias.alias_name_placeholder`),value:t.name,onChange:e=>R(n,`name`,e),disabled:i||k,options:C.map(e=>({value:e.id,label:e.display_name&&e.display_name!==e.id?e.display_name:void 0}))}),(0,B.jsx)(`span`,{className:rS.mappingSeparator,children:`→`}),(0,B.jsx)(`input`,{className:`input ${rS.mappingAliasInput}`,placeholder:e(`oauth_model_alias.alias_placeholder`),value:t.alias,onChange:e=>R(n,`alias`,e.target.value),disabled:i||k}),(0,B.jsx)(`div`,{className:rS.mappingFork,children:(0,B.jsx)(Sg,{label:e(`oauth_model_alias.alias_fork_label`),labelPosition:`left`,checked:!!t.fork,onChange:e=>R(n,`fork`,e),disabled:i||k})}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>ne(n),disabled:i||k||x.length<=1,title:e(`common.delete`),"aria-label":e(`common.delete`),children:(0,B.jsx)(hs,{size:14})})]},t.id))})]})]})})}var uS={container:`OAuthPage-module__container___LCCdH`,cardTitle:`OAuthPage-module__cardTitle___yFaP0`,cardTitleIcon:`OAuthPage-module__cardTitleIcon___eAnql`,pageTitle:`OAuthPage-module__pageTitle___BQQ2z`,content:`OAuthPage-module__content___Phg9V`,cardContent:`OAuthPage-module__cardContent___1sXLA`,cardHint:`OAuthPage-module__cardHint___ttOpd`,cardHintSecondary:`OAuthPage-module__cardHintSecondary___tWM17`,oauthSection:`OAuthPage-module__oauthSection___1olLq`,oauthGrid:`OAuthPage-module__oauthGrid___wjAyh`,oauthCard:`OAuthPage-module__oauthCard___CYTnC`,oauthStatus:`OAuthPage-module__oauthStatus___h7bbL`,success:`OAuthPage-module__success___UHta0`,error:`OAuthPage-module__error___057CD`,waiting:`OAuthPage-module__waiting___CbNSk`,callbackSection:`OAuthPage-module__callbackSection___8kA31`,callbackActions:`OAuthPage-module__callbackActions___wtkMI`,authUrlBox:`OAuthPage-module__authUrlBox___Iu1d4`,authUrlLabel:`OAuthPage-module__authUrlLabel___mYFJB`,authUrlValue:`OAuthPage-module__authUrlValue___axvUJ`,authUrlActions:`OAuthPage-module__authUrlActions___venPj`,successActions:`OAuthPage-module__successActions___wHpp9`,geminiProjectField:`OAuthPage-module__geminiProjectField___g456A`,formItem:`OAuthPage-module__formItem___Bgt9S`,formItemLabel:`OAuthPage-module__formItemLabel___QZFrG`,filePicker:`OAuthPage-module__filePicker___NmFjy`,fileName:`OAuthPage-module__fileName___9ZbQI`,fileNamePlaceholder:`OAuthPage-module__fileNamePlaceholder___WHjj4`,connectionBox:`OAuthPage-module__connectionBox___Gwo4r`,connectionLabel:`OAuthPage-module__connectionLabel___cJMrf`,keyValueList:`OAuthPage-module__keyValueList___lEOY0`,keyValueItem:`OAuthPage-module__keyValueItem___XOwWB`,keyValueKey:`OAuthPage-module__keyValueKey___WF-VN`,keyValueValue:`OAuthPage-module__keyValueValue___m2I-C`};function dS(e){return typeof e==`object`&&!!e}function fS(e){return e instanceof Error||dS(e)&&typeof e.message==`string`?e.message:typeof e==`string`?e:``}function pS(e){if(dS(e))return typeof e.status==`number`?e.status:void 0}var mS=[{id:`codex`,titleKey:`auth_login.codex_oauth_title`,hintKey:`auth_login.codex_oauth_hint`,urlLabelKey:`auth_login.codex_oauth_url_label`,icon:Mg},{id:`anthropic`,titleKey:`auth_login.anthropic_oauth_title`,hintKey:`auth_login.anthropic_oauth_hint`,urlLabelKey:`auth_login.anthropic_oauth_url_label`,icon:Cg},{id:`antigravity`,titleKey:`auth_login.antigravity_oauth_title`,hintKey:`auth_login.antigravity_oauth_hint`,urlLabelKey:`auth_login.antigravity_oauth_url_label`,icon:Ov},{id:`gemini-cli`,titleKey:`auth_login.gemini_cli_oauth_title`,hintKey:`auth_login.gemini_cli_oauth_hint`,urlLabelKey:`auth_login.gemini_cli_oauth_url_label`,icon:Pg},{id:`kimi`,titleKey:`auth_login.kimi_oauth_title`,hintKey:`auth_login.kimi_oauth_hint`,urlLabelKey:`auth_login.kimi_oauth_url_label`,icon:{light:jv,dark:Av}}],hS=[`codex`,`anthropic`,`antigravity`,`gemini-cli`],gS=5e3,_S=e=>e.replace(`-`,`_`),vS=(e,t)=>`auth_login.${_S(e)}_${t}`,yS=(e,t)=>typeof e==`string`?e:e[t];function bS(){let{t:e}=qo(),t=Qn(),{showNotification:n}=hc(),r=wc(e=>e.resolvedTheme),[i,a]=(0,y.useState)({}),[o,s]=(0,y.useState)({fileName:``,location:``,loading:!1}),c=(0,y.useRef)({}),l=(0,y.useRef)({}),u=(0,y.useRef)(null),d=(0,y.useCallback)(()=>{Object.values(c.current).forEach(e=>{e!==void 0&&window.clearInterval(e)}),Object.values(l.current).forEach(e=>{e!==void 0&&window.clearTimeout(e)}),c.current={},l.current={}},[]);(0,y.useEffect)(()=>()=>{d()},[d]);let f=(e,t)=>{a(n=>({...n,[e]:{...n[e]??{},...t}}))},p=e=>{let t=c.current[e];t!==void 0&&(window.clearInterval(t),delete c.current[e])},m=e=>{let t=l.current[e];t!==void 0&&(window.clearTimeout(t),delete l.current[e])},h=e=>{p(e),m(e)},g=e=>{h(e),a(t=>{let n=t[e]??{},r={};return e===`gemini-cli`&&n.projectId!==void 0&&(r.projectId=n.projectId),{...t,[e]:r}})},_=e=>{p(e),m(e),f(e,{url:void 0,state:void 0,status:`success`,error:void 0,polling:!1,callbackUrl:``,callbackSubmitting:!1,callbackStatus:void 0,callbackError:void 0}),l.current[e]=window.setTimeout(()=>{g(e)},gS)},v=(t,r)=>{p(t);let i=window.setInterval(async()=>{try{let a=await cg.getAuthStatus(r);a.status===`ok`?(_(t),n(e(vS(t,`oauth_status_success`)),`success`)):a.status===`error`&&(f(t,{status:`error`,error:a.error,polling:!1}),n(`${e(vS(t,`oauth_status_error`))} ${a.error||``}`,`error`),window.clearInterval(i),delete c.current[t])}catch(e){f(t,{status:`error`,error:fS(e),polling:!1}),window.clearInterval(i),delete c.current[t]}},3e3);c.current[t]=i},b=async t=>{h(t);let r=t===`gemini-cli`?i[t]:void 0,a=t===`gemini-cli`?(r?.projectId||``).trim():``,o=a?a.toUpperCase()===`ALL`?`ALL`:a:void 0;t===`gemini-cli`&&f(t,{projectIdError:void 0}),f(t,{url:void 0,state:void 0,status:`waiting`,polling:!0,error:void 0,callbackStatus:void 0,callbackError:void 0,callbackUrl:``});try{let r=await cg.startAuth(t,t===`gemini-cli`?{projectId:o||void 0}:void 0);if(!r.state){let i=e(`auth_login.missing_state`);f(t,{url:r.url,state:void 0,status:`error`,error:i,polling:!1}),n(i,`error`);return}f(t,{url:r.url,state:r.state,status:`waiting`,polling:!0}),v(t,r.state)}catch(r){let i=fS(r);f(t,{status:`error`,error:i,polling:!1}),n(`${e(vS(t,`oauth_start_error`))}${i?` ${i}`:``}`,`error`)}},x=async t=>{if(!t)return;let r=await Dv(t);n(e(r?`notification.link_copied`:`notification.copy_failed`),r?`success`:`error`)},S=async t=>{let r=(i[t]?.callbackUrl||``).trim();if(!r){n(e(`auth_login.oauth_callback_required`),`warning`);return}f(t,{callbackSubmitting:!0,callbackStatus:void 0,callbackError:void 0});try{await cg.submitCallback(t,r),f(t,{callbackSubmitting:!1,callbackStatus:`success`}),n(e(`auth_login.oauth_callback_success`),`success`)}catch(r){let i=pS(r),a=fS(r),o=i===404?e(`auth_login.oauth_callback_upgrade_hint`,{defaultValue:`Please update CLI Proxy API or check the connection.`}):a||void 0;f(t,{callbackSubmitting:!1,callbackStatus:`error`,callbackError:o}),n(o?`${e(`auth_login.oauth_callback_error`)} ${o}`:e(`auth_login.oauth_callback_error`),`error`)}};return(0,B.jsxs)(`div`,{className:uS.container,children:[(0,B.jsx)(`h1`,{className:uS.pageTitle,children:e(`nav.oauth`,{defaultValue:`OAuth`})}),(0,B.jsxs)(`div`,{className:uS.content,children:[mS.map(n=>{let a=i[n.id]||{},o=hS.includes(n.id)&&!!a.url,s=a.status===`success`?e(`auth_login.login_another_account`):e(vS(n.id,`oauth_button`)),c=[`status-badge`,a.status===`success`?`success`:``,a.status===`error`?`error`:``].filter(Boolean).join(` `);return(0,B.jsx)(`div`,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:uS.cardTitle,children:[(0,B.jsx)(`img`,{src:yS(n.icon,r),alt:``,className:uS.cardTitleIcon}),e(n.titleKey)]}),extra:(0,B.jsx)(V,{onClick:()=>b(n.id),loading:a.polling,children:s}),children:(0,B.jsxs)(`div`,{className:uS.cardContent,children:[(0,B.jsx)(`div`,{className:uS.cardHint,children:e(n.hintKey)}),n.id===`gemini-cli`&&(0,B.jsx)(`div`,{className:uS.geminiProjectField,children:(0,B.jsx)(Xo,{label:e(`auth_login.gemini_cli_project_id_label`),hint:e(`auth_login.gemini_cli_project_id_hint`),value:a.projectId||``,error:a.projectIdError,disabled:!!a.polling,onChange:e=>f(n.id,{projectId:e.target.value,projectIdError:void 0}),placeholder:e(`auth_login.gemini_cli_project_id_placeholder`)})}),a.url&&(0,B.jsxs)(`div`,{className:uS.authUrlBox,children:[(0,B.jsx)(`div`,{className:uS.authUrlLabel,children:e(n.urlLabelKey)}),(0,B.jsx)(`div`,{className:uS.authUrlValue,children:a.url}),(0,B.jsxs)(`div`,{className:uS.authUrlActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>x(a.url),children:e(vS(n.id,`copy_link`))}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>window.open(a.url,`_blank`,`noopener,noreferrer`),children:e(vS(n.id,`open_link`))})]})]}),o&&(0,B.jsxs)(`div`,{className:uS.callbackSection,children:[(0,B.jsx)(Xo,{label:e(`auth_login.oauth_callback_label`),hint:e(`auth_login.oauth_callback_hint`),value:a.callbackUrl||``,onChange:e=>f(n.id,{callbackUrl:e.target.value,callbackStatus:void 0,callbackError:void 0}),placeholder:e(`auth_login.oauth_callback_placeholder`)}),(0,B.jsx)(`div`,{className:uS.callbackActions,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>S(n.id),loading:a.callbackSubmitting,children:e(`auth_login.oauth_callback_button`)})}),a.callbackStatus===`success`&&a.status===`waiting`&&(0,B.jsx)(`div`,{className:`status-badge success`,children:e(`auth_login.oauth_callback_status_success`)}),a.callbackStatus===`error`&&(0,B.jsxs)(`div`,{className:`status-badge error`,children:[e(`auth_login.oauth_callback_status_error`),` `,a.callbackError||``]})]}),a.status&&a.status!==`idle`&&(0,B.jsx)(`div`,{className:c,children:a.status===`success`?e(vS(n.id,`oauth_status_success`)):a.status===`error`?`${e(vS(n.id,`oauth_status_error`))} ${a.error||``}`:e(vS(n.id,`oauth_status_waiting`))}),a.status===`success`&&(0,B.jsx)(`div`,{className:uS.successActions,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>t(`/auth-files`),children:e(`auth_login.view_auth_files`)})})]})})},n.id)}),(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:uS.cardTitle,children:[(0,B.jsx)(`img`,{src:Vg,alt:``,className:uS.cardTitleIcon}),e(`vertex_import.title`)]}),extra:(0,B.jsx)(V,{onClick:async()=>{if(!o.file){let t=e(`vertex_import.file_required`);s(e=>({...e,error:t})),n(t,`warning`);return}let t=o.location.trim();s(e=>({...e,loading:!0,error:void 0,result:void 0}));try{let r=await dg.importCredential(o.file,t||void 0),i={projectId:r.project_id,email:r.email,location:r.location,authFile:r[`auth-file`]??r.auth_file};s(e=>({...e,loading:!1,result:i})),n(e(`vertex_import.success`),`success`)}catch(t){let r=fS(t);s(t=>({...t,loading:!1,error:r||e(`notification.upload_failed`)})),n(r?`${e(`notification.upload_failed`)}: ${r}`:e(`notification.upload_failed`),`error`)}},loading:o.loading,children:e(`vertex_import.import_button`)}),children:(0,B.jsxs)(`div`,{className:uS.cardContent,children:[(0,B.jsx)(`div`,{className:uS.cardHint,children:e(`vertex_import.description`)}),(0,B.jsx)(Xo,{label:e(`vertex_import.location_label`),hint:e(`vertex_import.location_hint`),value:o.location,onChange:e=>s(t=>({...t,location:e.target.value})),placeholder:e(`vertex_import.location_placeholder`)}),(0,B.jsxs)(`div`,{className:uS.formItem,children:[(0,B.jsx)(`label`,{className:uS.formItemLabel,children:e(`vertex_import.file_label`)}),(0,B.jsxs)(`div`,{className:uS.filePicker,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{u.current?.click()},children:e(`vertex_import.choose_file`)}),(0,B.jsx)(`div`,{className:`${uS.fileName} ${o.fileName?``:uS.fileNamePlaceholder}`.trim(),children:o.fileName||e(`vertex_import.file_placeholder`)})]}),(0,B.jsx)(`div`,{className:uS.cardHintSecondary,children:e(`vertex_import.file_hint`)}),(0,B.jsx)(`input`,{ref:u,type:`file`,accept:`.json,application/json`,style:{display:`none`},onChange:t=>{let r=t.target.files?.[0];if(r){if(!r.name.endsWith(`.json`)){n(e(`vertex_import.file_required`),`warning`),t.target.value=``;return}s(e=>({...e,file:r,fileName:r.name,error:void 0,result:void 0})),t.target.value=``}}})]}),o.error&&(0,B.jsx)(`div`,{className:`status-badge error`,children:o.error}),o.result&&(0,B.jsxs)(`div`,{className:uS.connectionBox,children:[(0,B.jsx)(`div`,{className:uS.connectionLabel,children:e(`vertex_import.result_title`)}),(0,B.jsxs)(`div`,{className:uS.keyValueList,children:[o.result.projectId&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_project`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.projectId})]}),o.result.email&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_email`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.email})]}),o.result.location&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_location`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.location})]}),o.result.authFile&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_file`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.authFile})]})]})]})]})})]})]})}function xS(){let{t:e}=qo(),t=ep(e=>e.connectionStatus),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),c=t!==`connected`,l=(0,y.useCallback)(async()=>{try{await _h.fetchConfigYaml()}catch(t){let n=t instanceof Error?t.message:e(`notification.refresh_failed`);s(e=>e||n)}},[e]),u=(0,y.useCallback)(async()=>{a(!0),s(``);try{r((await ag.list())?.files||[])}catch(t){s(t instanceof Error?t.message:e(`notification.refresh_failed`))}finally{a(!1)}},[e]);return a_((0,y.useCallback)(async()=>{await Promise.all([l(),u()])},[l,u])),(0,y.useEffect)(()=>{u(),l()},[u,l]),(0,B.jsxs)(`div`,{className:sb.container,children:[(0,B.jsxs)(`div`,{className:sb.pageHeader,children:[(0,B.jsx)(`h1`,{className:sb.pageTitle,children:e(`quota_management.title`)}),(0,B.jsx)(`p`,{className:sb.description,children:e(`quota_management.description`)})]}),o&&(0,B.jsx)(`div`,{className:sb.errorBox,children:o}),(0,B.jsx)(gb,{config:Wb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Gb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Kb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:qb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Jb,files:n,loading:i,disabled:c})]})}var SS=Symbol.for(`yaml.alias`),CS=Symbol.for(`yaml.document`),wS=Symbol.for(`yaml.map`),TS=Symbol.for(`yaml.pair`),ES=Symbol.for(`yaml.scalar`),DS=Symbol.for(`yaml.seq`),OS=Symbol.for(`yaml.node.type`),kS=e=>!!e&&typeof e==`object`&&e[OS]===SS,AS=e=>!!e&&typeof e==`object`&&e[OS]===CS,jS=e=>!!e&&typeof e==`object`&&e[OS]===wS,MS=e=>!!e&&typeof e==`object`&&e[OS]===TS,NS=e=>!!e&&typeof e==`object`&&e[OS]===ES,PS=e=>!!e&&typeof e==`object`&&e[OS]===DS;function FS(e){if(e&&typeof e==`object`)switch(e[OS]){case wS:case DS:return!0}return!1}function IS(e){if(e&&typeof e==`object`)switch(e[OS]){case SS:case wS:case ES:case DS:return!0}return!1}var LS=e=>(NS(e)||FS(e))&&!!e.anchor,RS=Symbol(`break visit`),zS=Symbol(`skip children`),BS=Symbol(`remove node`);function VS(e,t){let n=GS(t);AS(e)?HS(null,e.contents,n,Object.freeze([e]))===BS&&(e.contents=null):HS(null,e,n,Object.freeze([]))}VS.BREAK=RS,VS.SKIP=zS,VS.REMOVE=BS;function HS(e,t,n,r){let i=KS(e,t,n,r);if(IS(i)||MS(i))return qS(e,r,i),HS(e,i,n,r);if(typeof i!=`symbol`){if(FS(t)){r=Object.freeze(r.concat(t));for(let e=0;ee.replace(/[!,[\]{}]/g,e=>JS[e]),XS=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+YS(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&IS(e.contents)){let t={};VS(e.contents,(e,n)=>{IS(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(` +`),onChange:e=>{let t=vp(e.target.value);u(e=>({...e,cloak:{...e.cloak??{},sensitiveWords:t.length?t:void 0}}))},rows:3,disabled:c||o||C}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.claude_cloak_sensitive_words_hint`)})]})]}):null]})]})})})}var U_=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function W_(){let{t:e}=qo(),t=Qn(),{disableControls:n,loading:r,saving:i,form:a,mergeDiscoveredModels:o}=tr(),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(new Set),b=(0,y.useRef)(``),x=(0,y.useMemo)(()=>{let e=h.trim().toLowerCase();return e?l.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):l},[l,h]),S=(0,y.useMemo)(()=>x.map(e=>e.name),[x]),C=(0,y.useMemo)(()=>S.length>0&&S.every(e=>_.has(e)),[_,S]),w=(0,y.useCallback)(async()=>{f(!0),m(``);let t=nf(a.headers);try{u(await Zf.fetchClaudeModelsViaApiCall(a.baseUrl??``,a.apiKey.trim()||void 0,t))}catch(n){u([]);let r=U_(n),i=Object.keys(t).some(e=>e.toLowerCase()===`x-api-key`),o=Object.keys(t).some(e=>e.toLowerCase()===`authorization`),s=r.toLowerCase().includes(`x-api-key`)||r.includes(`401`)?` [diag: apiKeyField=${a.apiKey.trim()?`yes`:`no`}, customXApiKey=${i?`yes`:`no`}, customAuthorization=${o?`yes`:`no`}]`:``;m(`${e(`ai_providers.claude_models_fetch_error`)}: ${r}${s}`)}finally{f(!1)}},[a.apiKey,a.baseUrl,a.headers,e]);(0,y.useEffect)(()=>{if(r)return;let e=Zf.buildClaudeModelsEndpoint(a.baseUrl??``);c(e),u([]),g(``),v(new Set),m(``);let t=nf(a.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`x-api-key`),i=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(a.apiKey.trim()||n||i))return;let o=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),s=`${e}||${a.apiKey.trim()}||${o}`;b.current!==s&&(b.current=s,w())},[w,a.apiKey,a.baseUrl,a.headers,r]),(0,y.useEffect)(()=>{let e=new Set(l.map(e=>e.name));v(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[l]);let T=(0,y.useCallback)(()=>{t(-1)},[t]),E=d_({onBack:T});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&T()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[T]);let D=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},O=(0,y.useCallback)(()=>{v(e=>{let t=new Set(e);return S.forEach(e=>t.add(e)),t})},[S]),k=(0,y.useCallback)(()=>{v(new Set)},[]),A=()=>{let e=l.filter(e=>_.has(e.name));e.length&&o(e),T()},j=!n&&!i&&!d&&_.size>0;return(0,B.jsx)(h_,{ref:E,contentClassName:y_.content,title:e(`ai_providers.claude_models_fetch_title`),onBack:T,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:T,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:A,disabled:!j,className:y_.floatingSaveButton,children:e(`ai_providers.claude_models_fetch_apply`)})]}),isLoading:r,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.claude_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:s}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void w(),loading:d,disabled:n||i,children:e(`ai_providers.claude_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.claude_models_search_label`),placeholder:e(`ai_providers.claude_models_search_placeholder`),value:h,onChange:e=>g(e.target.value),disabled:d}),l.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:O,disabled:n||i||d||x.length===0||C,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:k,disabled:n||i||d||_.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:_.size})})]}),p&&(0,B.jsx)(`div`,{className:`error-box`,children:p}),d?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_loading`)}):l.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_fetch_empty`)}):x.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.claude_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:x.map(e=>{let t=_.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>D(e.name),disabled:n||i||d,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})})}var G_=()=>({apiKey:``,priority:void 0,prefix:``,baseUrl:``,websockets:!1,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),K_=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},q_=e=>e instanceof Error?e.message:typeof e==`string`?e:``,J_=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&r===n&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),Y_=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),websockets:!!e.websockets,proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:J_(e.modelEntries),excludedModels:yp(e.excludedText??``)});function X_(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>G_()),[b,x]=(0,y.useState)(()=>Y_(G_())),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)([]),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,ee]=(0,y.useState)(new Set),F=(0,y.useRef)(``),I=(0,y.useRef)(0),L=typeof r.index==`string`,R=(0,y.useMemo)(()=>K_(r.index),[r.index]),te=L&&R===null,ne=(0,y.useMemo)(()=>{if(R!==null)return l[R]},[l,R]),re=R!==null&&!ne,z=e(R===null?`ai_providers.codex_add_modal_title`:`ai_providers.codex_edit_modal_title`),ie=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),ae=d_({onBack:ie});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ie()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ie]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),o(`codex-api-key`).then(e=>{t||u(Array.isArray(e)?e:[])}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[o,e]),(0,y.useEffect)(()=>{if(d)return;if(ne){let e={...ne,websockets:!!ne.websockets,headers:af(ne.headers),modelEntries:E_(ne.models),excludedText:bp(ne.excludedModels)};v(e),x(Y_(e));return}let e=G_();v(e),x(Y_(e))},[ne,d]);let oe=(0,y.useMemo)(()=>of(_.headers),[_.headers]),se=(0,y.useMemo)(()=>J_(_.modelEntries),[_.modelEntries]),ce=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),le=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),ue=(0,y.useMemo)(()=>!__(b.headers,oe),[b.headers,oe]),de=(0,y.useMemo)(()=>!v_(b.models,se),[b.models,se]),fe=(0,y.useMemo)(()=>!g_(b.excludedModels,ce),[b.excludedModels,ce]),pe=b.apiKey!==_.apiKey.trim()||b.priority!==le||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.websockets!==!!_.websockets||b.proxyUrl!==String(_.proxyUrl??``).trim()||ue||de||fe,{allowNextNavigation:me}=f_({enabled:!d&&!p&&!te&&!re,shouldBlock:({currentLocation:e,nextLocation:t})=>pe&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),he=!a&&!p&&!d&&!te&&!re,ge=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase();return e?E.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):E},[E,M]),_e=(0,y.useMemo)(()=>ge.map(e=>e.name),[ge]),ve=(0,y.useMemo)(()=>_e.length>0&&_e.every(e=>P.has(e)),[P,_e]),ye=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;v(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=e.name.trim();t&&r.set(t.toLowerCase(),{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=String(e.name??``).trim();if(!t)return;let i=t.toLowerCase();r.has(i)||(r.set(i,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&i(e(`ai_providers.codex_models_fetch_added`,{count:n}),`success`)},[v,i,e]),be=(0,y.useCallback)(async()=>{let t=I.current+=1;k(!0),j(``);try{let e=nf(_.headers),n=Object.keys(e).some(e=>e.toLowerCase()===`authorization`),r=_.apiKey.trim()||void 0,i=await Zf.fetchV1ModelsViaApiCall(_.baseUrl??``,n?void 0:r,e);if(I.current!==t)return;D(i)}catch(n){if(I.current!==t)return;D([]);let r=q_(n);j(`${e(`ai_providers.codex_models_fetch_error`)}: ${r}`)}finally{I.current===t&&k(!1)}},[_.apiKey,_.baseUrl,_.headers,e]);(0,y.useEffect)(()=>{if(!S){F.current=``,I.current+=1,k(!1);return}let e=Zf.buildV1ModelsEndpoint(_.baseUrl??``);if(T(e),D([]),N(``),ee(new Set),j(``),!e)return;let t=nf(_.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(_.apiKey.trim()||n))return;let r=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),i=`${e}||${_.apiKey.trim()}||${r}`;F.current!==i&&(F.current=i,be())},[be,_.apiKey,_.baseUrl,_.headers,S]),(0,y.useEffect)(()=>{let e=new Set(E.map(e=>e.name));ee(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[E]);let xe=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Se=(0,y.useCallback)(()=>{ee(e=>{let t=new Set(e);return _e.forEach(e=>t.add(e)),t})},[_e]),Ce=(0,y.useCallback)(()=>{ee(new Set)},[]),we=()=>{let e=E.filter(e=>P.has(e.name));e.length&&ye(e),C(!1)},Te=(0,y.useCallback)(async()=>{if(!he)return;let t=(_.baseUrl??``).trim()||void 0;if(!t){i(e(`notification.codex_base_url_required`),`error`);return}m(!0),g(``);try{let n={apiKey:_.apiKey.trim(),priority:_.priority===void 0?void 0:Math.trunc(_.priority),prefix:_.prefix?.trim()||void 0,baseUrl:t,websockets:!!_.websockets,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:D_(_.modelEntries),excludedModels:yp(_.excludedText)},r=R===null?[...l,n]:l.map((e,t)=>t===R?n:e);await Mh.saveCodexConfigs(r),s(`codex-api-key`,r),c(`codex-api-key`),i(e(R===null?`notification.codex_config_added`:`notification.codex_config_updated`),`success`),me(),x(Y_(_)),ie()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}},[me,he,c,l,R,_,ie,i,e,s]),Ee=!a&&!p&&!d&&!te&&!re&&!!(_.baseUrl??``).trim(),De=!a&&!p&&!O&&P.size>0;return(0,B.jsx)(h_,{ref:ae,contentClassName:y_.content,title:z,onBack:ie,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:Te,loading:p,disabled:!he,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),te||re?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_key_label`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:_.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);v(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_url_label`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.codex_websockets_label`)}),(0,B.jsx)(Sg,{checked:!!_.websockets,onChange:e=>v(t=>({...t,websockets:e})),disabled:a||p,ariaLabel:e(`ai_providers.codex_websockets_label`)}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.codex_websockets_hint`)})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_add_modal_proxy_label`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.codex_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:a||p,children:e(`ai_providers.codex_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:!Ee,children:e(`ai_providers.codex_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_hint`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:a||p,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]}),(0,B.jsx)(um,{open:S,title:e(`ai_providers.codex_models_fetch_title`),onClose:()=>C(!1),width:720,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!1),disabled:O,children:e(`common.cancel`)}),(0,B.jsx)(V,{size:`sm`,onClick:we,disabled:!De,children:e(`ai_providers.codex_models_fetch_apply`)})]}),children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.codex_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:w}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void be(),loading:O,disabled:a||p,children:e(`ai_providers.codex_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.codex_models_search_label`),placeholder:e(`ai_providers.codex_models_search_placeholder`),value:M,onChange:e=>N(e.target.value),disabled:O}),E.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:Se,disabled:a||p||O||ge.length===0||ve,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:Ce,disabled:a||p||O||P.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:P.size})})]}),A&&(0,B.jsx)(`div`,{className:`error-box`,children:A}),O?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_loading`)}):E.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_fetch_empty`)}):ge.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.codex_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:ge.map(e=>{let t=P.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>xe(e.name),disabled:a||p||O,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})]})]})})}var Z_=()=>({apiKey:``,priority:void 0,prefix:``,baseUrl:``,proxyUrl:``,headers:[],modelEntries:[{name:``,alias:``}],excludedModels:[],excludedText:``}),Q_=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},$_=e=>String(e??``).trim().replace(/^\/?models\//i,``),ev=e=>(e??[]).reduce((e,t)=>{let n=$_(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&r===n&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),tv=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:ev(e.modelEntries),excludedModels:yp(e.excludedText??``)});function nv(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>Z_()),[b,x]=(0,y.useState)(()=>tv(Z_())),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)([]),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,ee]=(0,y.useState)(new Set),F=(0,y.useRef)(``),I=(0,y.useRef)(0),L=typeof r.index==`string`,R=(0,y.useMemo)(()=>Q_(r.index),[r.index]),te=L&&R===null,ne=(0,y.useMemo)(()=>{if(R!==null)return l[R]},[l,R]),re=R!==null&&!ne,z=e(R===null?`ai_providers.gemini_add_modal_title`:`ai_providers.gemini_edit_modal_title`),ie=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),ae=d_({onBack:ie});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ie()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ie]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),o(`gemini-api-key`).then(e=>{t||u(Array.isArray(e)?e:[])}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[o,e]),(0,y.useEffect)(()=>{if(d)return;if(ne){let{headers:e,models:t,...n}=ne,r={...n,headers:af(e),modelEntries:E_(t).map(e=>({...e,name:$_(e.name)})),excludedText:bp(ne.excludedModels)};v(r),x(tv(r));return}let e=Z_();v(e),x(tv(e))},[ne,d]);let oe=!a&&!p&&!d&&!te&&!re,se=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase();return e?E.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):E},[E,M]),ce=(0,y.useMemo)(()=>se.map(e=>e.name),[se]),le=(0,y.useMemo)(()=>ce.length>0&&ce.every(e=>P.has(e)),[P,ce]),ue=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;v(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=$_(e.name);t&&r.set(t,{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=$_(e.name);!t||r.has(t)||(r.set(t,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&i(e(`ai_providers.gemini_models_fetch_added`,{count:n}),`success`)},[v,i,e]),de=(0,y.useCallback)(async()=>{let t=I.current+=1;k(!0),j(``);let n=nf(_.headers);try{let e=await Zf.fetchGeminiModelsViaApiCall(_.baseUrl??``,_.apiKey.trim()||void 0,n);if(I.current!==t)return;D(e)}catch(r){if(I.current!==t)return;D([]);let i=r instanceof Error?r.message:typeof r==`string`?r:``,a=Object.keys(n).some(e=>e.toLowerCase()===`x-goog-api-key`),o=Object.keys(n).some(e=>e.toLowerCase()===`authorization`),s=i.toLowerCase().includes(`api key`)||i.includes(`401`)?` [diag: apiKeyField=${_.apiKey.trim()?`yes`:`no`}, customXGoogApiKey=${a?`yes`:`no`}, customAuthorization=${o?`yes`:`no`}]`:``;j(`${e(`ai_providers.gemini_models_fetch_error`)}: ${i}${s}`)}finally{I.current===t&&k(!1)}},[_.apiKey,_.baseUrl,_.headers,e]);(0,y.useEffect)(()=>{if(!S){F.current=``,I.current+=1,k(!1);return}let e=Zf.buildGeminiModelsEndpoint(_.baseUrl??``);T(e),D([]),N(``),ee(new Set),j(``);let t=nf(_.headers),n=Object.keys(t).some(e=>e.toLowerCase()===`x-goog-api-key`),r=Object.keys(t).some(e=>e.toLowerCase()===`authorization`);if(!(_.apiKey.trim()||n||r))return;let i=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`),a=`${e}||${_.apiKey.trim()}||${i}`;F.current!==a&&(F.current=a,de())},[de,_.apiKey,_.baseUrl,_.headers,S]),(0,y.useEffect)(()=>{let e=new Set(E.map(e=>e.name));ee(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[E]);let fe=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},pe=(0,y.useCallback)(()=>{ee(e=>{let t=new Set(e);return ce.forEach(e=>t.add(e)),t})},[ce]),me=(0,y.useCallback)(()=>{ee(new Set)},[]),he=()=>{let e=E.filter(e=>P.has(e.name));e.length&&ue(e),C(!1)},ge=(0,y.useMemo)(()=>of(_.headers),[_.headers]),_e=(0,y.useMemo)(()=>ev(_.modelEntries),[_.modelEntries]),ve=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),ye=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),be=(0,y.useMemo)(()=>!__(b.headers,ge),[b.headers,ge]),xe=(0,y.useMemo)(()=>!v_(b.models,_e),[b.models,_e]),Se=(0,y.useMemo)(()=>!g_(b.excludedModels,ve),[b.excludedModels,ve]),Ce=b.apiKey!==_.apiKey.trim()||b.priority!==ye||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.proxyUrl!==String(_.proxyUrl??``).trim()||be||xe||Se,{allowNextNavigation:we}=f_({enabled:!d&&!p&&!te&&!re,shouldBlock:({currentLocation:e,nextLocation:t})=>Ce&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),Te=(0,y.useCallback)(async()=>{if(oe){m(!0),g(``);try{let t=_.modelEntries.map(e=>({...e,name:$_(e.name)})),n={apiKey:_.apiKey.trim(),priority:_.priority===void 0?void 0:Math.trunc(_.priority),prefix:_.prefix?.trim()||void 0,baseUrl:_.baseUrl?.trim()||void 0,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:D_(t),excludedModels:yp(_.excludedText)},r=R===null?[...l,n]:l.map((e,t)=>t===R?n:e);await Mh.saveGeminiKeys(r),s(`gemini-api-key`,r),c(`gemini-api-key`),i(e(R===null?`notification.gemini_key_added`:`notification.gemini_key_updated`),`success`),we(),x(tv(_)),ie()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}}},[we,oe,c,l,R,_,ie,i,e,s]),Ee=!a&&!p&&!d&&!te&&!re,De=!a&&!p&&!O&&P.size>0;return(0,B.jsx)(h_,{ref:ae,contentClassName:y_.content,title:z,onBack:ie,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:Te,loading:p,disabled:!oe,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),te||re?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_add_modal_key_label`),placeholder:e(`ai_providers.gemini_add_modal_key_placeholder`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:_.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);v(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_base_url_label`),placeholder:e(`ai_providers.gemini_base_url_placeholder`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_add_modal_proxy_label`),placeholder:e(`ai_providers.gemini_add_modal_proxy_placeholder`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(`ai_providers.gemini_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:a||p,children:e(`ai_providers.gemini_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:!Ee,children:e(`ai_providers.gemini_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_hint`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:a||p,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]}),(0,B.jsx)(um,{open:S,title:e(`ai_providers.gemini_models_fetch_title`),onClose:()=>C(!1),width:720,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>C(!1),disabled:O,children:e(`common.cancel`)}),(0,B.jsx)(V,{size:`sm`,onClick:he,disabled:!De,children:e(`ai_providers.gemini_models_fetch_apply`)})]}),children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.gemini_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:w}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void de(),loading:O,disabled:a||p,children:e(`ai_providers.gemini_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.gemini_models_search_label`),placeholder:e(`ai_providers.gemini_models_search_placeholder`),value:M,onChange:e=>N(e.target.value),disabled:O}),E.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:pe,disabled:a||p||O||se.length===0||le,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:me,disabled:a||p||O||P.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:P.size})})]}),A&&(0,B.jsx)(`div`,{className:`error-box`,children:A}),O?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_loading`)}):E.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_fetch_empty`)}):se.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.gemini_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:se.map(e=>{let t=P.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>fe(e.name),disabled:a||p||O,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})]})]})})}var rv=()=>({name:``,priority:void 0,prefix:``,baseUrl:``,headers:[],apiKeyEntries:[Lp()],modelEntries:[{name:``,alias:``}],testModel:void 0}),iv=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},av=e=>e instanceof Error?e.message:typeof e==`string`?e:``,ov=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return n&&(r===``||r===n)&&(r=``),!n&&!r||e.push({name:n,alias:r}),e},[]),sv=e=>!e||typeof e!=`object`?[]:Object.entries(e).map(([e,t])=>({key:String(e??``).trim(),value:String(t??``).trim()})).filter(e=>e.key||e.value).sort((e,t)=>{let n=e.key.toLowerCase().localeCompare(t.key.toLowerCase());return n===0?e.value.localeCompare(t.value):n}),cv=e=>(e??[]).reduce((e,t)=>{let n=String(t?.apiKey??``).trim(),r=String(t?.proxyUrl??``).trim(),i=sv(t?.headers);return!n&&!r&&i.length===0||e.push({apiKey:n,proxyUrl:r,headers:i}),e},[]),lv=(e,t)=>({name:String(e.name??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),headers:of(e.headers),apiKeyEntries:cv(e.apiKeyEntries),models:ov(e.modelEntries),testModel:String(t??``).trim()}),uv=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;niv(i.index),[i.index]),s=a&&o===null,c=ep(e=>e.connectionStatus)!==`connected`,l=Of(e=>e.config),u=Of(e=>e.fetchConfig),d=Of(e=>e.updateConfigValue),f=Of(e=>e.isCacheValid),[p,m]=(0,y.useState)(()=>l?.openaiCompatibility??[]),[h,g]=(0,y.useState)(()=>!f(`openai-compatibility`)),[_,v]=(0,y.useState)(!1),b=(0,y.useMemo)(()=>s?`openai:invalid:${i.index??`unknown`}`:o===null?`openai:new`:`openai:${o}`,[o,s,i.index]),x=Kp(e=>e.drafts[b]),S=Kp(e=>e.acquireDraft),C=Kp(e=>e.releaseDraft),w=Kp(e=>e.initDraft),T=Kp(e=>e.setDraftBaseline),E=Kp(e=>e.setDraftForm),D=Kp(e=>e.setDraftTestModel),O=Kp(e=>e.setDraftTestStatus),k=Kp(e=>e.setDraftTestMessage),A=Kp(e=>e.setDraftKeyTestStatus),j=Kp(e=>e.resetDraftKeyTestStatuses),M=x?.form??rv(),N=x?.testModel??``,P=x?.testStatus??`idle`,ee=x?.testMessage??``,F=x?.keyTestStatuses??[],I=(0,y.useCallback)(e=>{E(b,e)},[b,E]),L=(0,y.useCallback)(e=>{D(b,e)},[b,D]),R=(0,y.useCallback)(e=>{O(b,e)},[b,O]),te=(0,y.useCallback)(e=>{k(b,e)},[b,k]),ne=(0,y.useCallback)((e,t)=>{A(b,e,t)},[b,A]),re=(0,y.useCallback)(e=>{j(b,e)},[b,j]),z=(0,y.useMemo)(()=>{if(o!==null)return p[o]},[o,p]),ie=o!==null&&!z,ae=(0,y.useMemo)(()=>M.modelEntries.map(e=>e.name.trim()).filter(Boolean),[M.modelEntries]);(0,y.useEffect)(()=>(S(b),()=>C(b)),[S,b,C]);let oe=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]);(0,y.useEffect)(()=>{let t=!1;return f(`openai-compatibility`)||g(!0),Mh.getOpenAIProviders().then(e=>{if(t)return;let n=e||[];m(n),d(`openai-compatibility`,n)}).catch(async n=>{if(!t)try{let e=await u(`openai-compatibility`);if(t)return;m(Array.isArray(e)?e:[])}catch{if(t)return;let i=av(n)||e(`notification.refresh_failed`);r(`${e(`notification.load_failed`)}: ${i}`,`error`)}}).finally(()=>{t||g(!1)}),()=>{t=!0}},[u,f,r,e,d]),(0,y.useEffect)(()=>{if(!h&&!x?.initialized)if(z){let e=E_(z.models),t={name:z.name,priority:z.priority,prefix:z.prefix??``,baseUrl:z.baseUrl,headers:af(z.headers),testModel:z.testModel,modelEntries:e,apiKeyEntries:z.apiKeyEntries?.length?z.apiKeyEntries:[Lp()]},n=e.map(e=>e.name.trim()).filter(Boolean),r=z.testModel&&n.includes(z.testModel)?z.testModel:n[0]||``;w(b,{baseline:lv(t,r),form:t,testModel:r,testStatus:`idle`,testMessage:``,keyTestStatuses:[]})}else{let e=rv();w(b,{baseline:lv(e,``),form:e,testModel:``,testStatus:`idle`,testMessage:``,keyTestStatuses:[]})}},[x?.initialized,b,w,z,h]),(0,y.useEffect)(()=>{if(!h){if(ae.length===0){N&&(L(``),R(`idle`),te(``));return}(!N||!ae.includes(N))&&(L(ae[0]),R(`idle`),te(``))}},[ae,h,te,L,R,N]);let se=(0,y.useCallback)(t=>{if(!t.length)return;let n=0;I(e=>{let r=new Map;e.modelEntries.forEach(e=>{let t=e.name.trim();t&&r.set(t,{name:t,alias:e.alias?.trim()||``})}),t.forEach(e=>{let t=e.name.trim();!t||r.has(t)||(r.set(t,{name:t,alias:e.alias??``}),n+=1)});let i=Array.from(r.values());return{...e,modelEntries:i.length?i:[{name:``,alias:``}]}}),n>0&&r(e(`ai_providers.openai_models_fetch_added`,{count:n}),`success`)},[I,r,e]),ce=!x?.initialized,le=x?.baseline??null,ue=(0,y.useMemo)(()=>of(M.headers),[M.headers]),de=(0,y.useMemo)(()=>ov(M.modelEntries),[M.modelEntries]),fe=(0,y.useMemo)(()=>cv(M.apiKeyEntries),[M.apiKeyEntries]),pe=(0,y.useMemo)(()=>M.priority!==void 0&&Number.isFinite(M.priority)?Math.trunc(M.priority):null,[M.priority]),me=(0,y.useMemo)(()=>String(N??``).trim(),[N]),he=(0,y.useMemo)(()=>le?!__(le.headers,ue):!1,[le,ue]),ge=(0,y.useMemo)(()=>le?!v_(le.models,de):!1,[le,de]),_e=(0,y.useMemo)(()=>le?!uv(le.apiKeyEntries,fe):!1,[le,fe]),ve=!!x?.initialized&&le!==null&&(le.name!==M.name.trim()||le.priority!==pe||le.prefix!==M.prefix.trim()||le.baseUrl!==M.baseUrl.trim()||le.testModel!==me||he||_e||ge),ye=(0,y.useMemo)(()=>a?`/ai-providers/openai/${i.index??``}`:`/ai-providers/openai/new`,[a,i.index]),{allowNextNavigation:be}=f_({enabled:!ce&&!_&&!s&&!ie,shouldBlock:({nextLocation:e})=>{let t=e.pathname,n=t===ye||t.startsWith(`${ye}/`);return ve&&!n},dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}});return(0,B.jsx)(Vr,{context:{hasIndexParam:a,editIndex:o,invalidIndexParam:s,invalidIndex:ie,disableControls:c,loading:ce,saving:_,form:M,setForm:I,testModel:N,setTestModel:L,testStatus:P,setTestStatus:R,testMessage:ee,setTestMessage:te,keyTestStatuses:F,setDraftKeyTestStatus:ne,resetDraftKeyTestStatuses:re,availableModels:ae,handleBack:oe,handleSave:(0,y.useCallback)(async()=>{let t=M.name.trim(),n=M.baseUrl.trim();if(!t||!n){r(e(`notification.openai_provider_required`),`error`);return}v(!0);try{let i={name:t,prefix:M.prefix?.trim()||void 0,baseUrl:n,headers:nf(M.headers),apiKeyEntries:M.apiKeyEntries.map(e=>({apiKey:e.apiKey.trim(),proxyUrl:e.proxyUrl?.trim()||void 0,headers:e.headers}))};M.priority!==void 0&&Number.isFinite(M.priority)&&(i.priority=Math.trunc(M.priority)),z?.disabled!==void 0&&(i.disabled=z.disabled);let a=N.trim();a&&(i.testModel=a);let s=D_(M.modelEntries);s.length&&(i.models=s);let c=o===null?[...p,i]:p.map((e,t)=>t===o?i:e);await Mh.saveOpenAIProviders(c);let l=c;try{l=await Mh.getOpenAIProviders()}catch{}m(l),d(`openai-compatibility`,l),r(e(o===null?`notification.openai_provider_added`:`notification.openai_provider_updated`),`success`),be(),T(b,lv(M,N)),oe()}catch(t){r(`${e(`notification.update_failed`)}: ${av(t)}`,`error`)}finally{v(!1)}},[be,b,o,M,oe,z?.disabled,p,T,r,e,N,d]),mergeDiscoveredModels:se}})}var fv=3e4,pv=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function mv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:W.statusIconSpin,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`currentColor`,strokeOpacity:`0.25`,strokeWidth:`2`}),(0,B.jsx)(`path`,{d:`M8 1A7 7 0 0 1 8 15`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})]})}function hv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`8`,fill:`var(--success-color, #22c55e)`}),(0,B.jsx)(`path`,{d:`M4.5 8L7 10.5L11.5 6`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}function gv(){return(0,B.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`8`,fill:`var(--danger-color, #c65746)`}),(0,B.jsx)(`path`,{d:`M5 5L11 11M11 5L5 11`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}function _v(){return(0,B.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,children:(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`var(--text-tertiary, #9ca3af)`,strokeWidth:`2`})})}function vv({status:e}){switch(e){case`loading`:return(0,B.jsx)(mv,{});case`success`:return(0,B.jsx)(hv,{});case`error`:return(0,B.jsx)(gv,{});default:return(0,B.jsx)(_v,{})}}function yv(){let{t:e}=qo(),t=Qn(),{showNotification:n}=hc(),{hasIndexParam:r,invalidIndexParam:i,invalidIndex:a,disableControls:o,loading:s,saving:c,form:l,setForm:u,testModel:d,setTestModel:f,testStatus:p,setTestStatus:m,testMessage:h,setTestMessage:g,keyTestStatuses:_,setDraftKeyTestStatus:v,resetDraftKeyTestStatuses:b,availableModels:x,handleBack:S,handleSave:C}=tr(),w=e(r?`ai_providers.openai_edit_modal_title`:`ai_providers.openai_add_modal_title`),T=d_({onBack:S}),[E,D]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&S()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S]);let O=!o&&!s&&!c&&!i&&!a&&!E,k=l.modelEntries.some(e=>e.name.trim()),A=l.apiKeyEntries.some(e=>e.apiKey?.trim()),j=(0,y.useMemo)(()=>{let e=new Set;return l.modelEntries.reduce((t,n)=>{let r=n.name.trim();if(!r||e.has(r))return t;e.add(r);let i=n.alias.trim();return t.push({value:r,label:i&&i!==r?`${r} (${i})`:r}),t},[])},[l.modelEntries]),M=(0,y.useMemo)(()=>{let e=l.headers.map(e=>`${e.key.trim()}:${e.value.trim()}`).join(`|`),t=l.modelEntries.map(e=>`${e.name.trim()}:${e.alias.trim()}`).join(`|`);return[l.baseUrl.trim(),d.trim(),e,t].join(`||`)},[l.baseUrl,l.headers,l.modelEntries,d]),N=(0,y.useRef)(M);(0,y.useEffect)(()=>{N.current!==M&&(N.current=M,b(l.apiKeyEntries.length),m(`idle`),g(``))},[M,l.apiKeyEntries.length,b,m,g]);let P=(0,y.useCallback)(async t=>{let r=l.baseUrl.trim();if(!r)return n(e(`notification.openai_test_url_required`),`error`),!1;let i=wp(r);if(!i)return n(e(`notification.openai_test_url_required`),`error`),!1;let a=l.apiKeyEntries[t];if(!a?.apiKey?.trim())return v(t,{status:`error`,message:e(`notification.openai_test_key_required`)}),!1;let o=d.trim()||x[0]||``;if(!o)return n(e(`notification.openai_test_model_required`),`error`),!1;let s={"Content-Type":`application/json`,...nf(l.headers)};rf(s,`authorization`)||(s.Authorization=`Bearer ${a.apiKey.trim()}`),v(t,{status:`loading`,message:``});try{let e=await If.request({method:`POST`,url:i,header:Object.keys(s).length?s:void 0,data:JSON.stringify({model:o,messages:[{role:`user`,content:`Hi`}],stream:!1,max_tokens:5})},{timeout:fv});if(e.statusCode<200||e.statusCode>=300)throw Error(Ff(e));return v(t,{status:`success`,message:``}),!0}catch(n){let r=pv(n);return v(t,{status:`error`,message:(typeof n==`object`&&n&&`code`in n?String(n.code):``)===`ECONNABORTED`||r.toLowerCase().includes(`timeout`)?e(`ai_providers.openai_test_timeout`,{seconds:fv/1e3}):r}),!1}},[l.baseUrl,l.apiKeyEntries,l.headers,d,x,e,v,n]),ee=(0,y.useCallback)(async e=>{if(E)return!1;D(!0);try{return await P(e)}finally{D(!1)}},[E,P]),F=(0,y.useCallback)(async()=>{if(E)return;let t=l.baseUrl.trim();if(!t){let t=e(`notification.openai_test_url_required`);m(`error`),g(t),n(t,`error`);return}if(!wp(t)){let t=e(`notification.openai_test_url_required`);m(`error`),g(t),n(t,`error`);return}if(!(d.trim()||x[0])){let t=e(`notification.openai_test_model_required`);m(`error`),g(t),n(t,`error`);return}let r=l.apiKeyEntries.map((e,t)=>e.apiKey?.trim()?t:-1).filter(e=>e>=0);if(r.length===0){let t=e(`notification.openai_test_key_required`);m(`error`),g(t),n(t,`error`);return}D(!0),m(`loading`),g(e(`ai_providers.openai_test_running`)),b(l.apiKeyEntries.length);try{let t=(await Promise.all(r.map(e=>P(e)))).filter(Boolean).length,i=r.length-t;if(i===0){let r=e(`ai_providers.openai_test_all_success`,{count:t});m(`success`),g(r),n(r,`success`)}else if(t===0){let t=e(`ai_providers.openai_test_all_failed`,{count:i});m(`error`),g(t),n(t,`error`)}else{let r=e(`ai_providers.openai_test_all_partial`,{success:t,failed:i});m(`error`),g(r),n(r,`warning`)}}finally{D(!1)}},[E,l.baseUrl,l.apiKeyEntries,d,x,e,m,g,b,P,n]);return(0,B.jsx)(h_,{ref:T,contentClassName:y_.content,title:w,onBack:S,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:S,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>void C(),loading:c,disabled:!O,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:s,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:i||a?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(`div`,{className:W.openaiEditForm,children:[(0,B.jsx)(Xo,{label:e(`ai_providers.openai_add_modal_name_label`),value:l.name,onChange:e=>u(t=>({...t,name:e.target.value})),disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.priority_label`),hint:e(`ai_providers.priority_hint`),type:`number`,step:1,value:l.priority??``,onChange:e=>{let t=e.target.value,n=t.trim()===``?void 0:Number(t);u(e=>({...e,priority:n!==void 0&&Number.isFinite(n)?n:void 0}))},disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:l.prefix??``,onChange:e=>u(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:c||o||E}),(0,B.jsx)(Xo,{label:e(`ai_providers.openai_add_modal_url_label`),value:l.baseUrl,onChange:e=>u(t=>({...t,baseUrl:e.target.value})),disabled:c||o||E}),(0,B.jsx)(I_,{entries:l.headers,onChange:e=>u(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:c||o||E}),(0,B.jsxs)(`div`,{className:W.modelConfigSection,children:[(0,B.jsxs)(`div`,{className:W.modelConfigHeader,children:[(0,B.jsx)(`label`,{className:W.modelConfigTitle,children:e(r?`ai_providers.openai_edit_modal_models_label`:`ai_providers.openai_add_modal_models_label`)}),(0,B.jsxs)(`div`,{className:W.modelConfigToolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>u(e=>({...e,modelEntries:[...e.modelEntries,{name:``,alias:``}]})),disabled:c||o||E,children:e(`ai_providers.openai_models_add_btn`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{if(!l.baseUrl.trim()){n(e(`ai_providers.openai_models_fetch_invalid_url`),`error`);return}t(`models`)},disabled:c||o||E,children:e(`ai_providers.openai_models_fetch_button`)})]})]}),(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_hint`)}),(0,B.jsx)(s_,{entries:l.modelEntries,onChange:e=>u(t=>({...t,modelEntries:e})),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),disabled:c||o||E,hideAddButton:!0,className:W.modelInputList,rowClassName:W.modelInputRow,inputClassName:W.modelInputField,removeButtonClassName:W.modelRowRemoveButton,removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`)}),(0,B.jsxs)(`div`,{className:W.modelTestPanel,children:[(0,B.jsxs)(`div`,{className:W.modelTestMeta,children:[(0,B.jsx)(`label`,{className:W.modelTestLabel,children:e(`ai_providers.openai_test_title`)}),(0,B.jsx)(`span`,{className:W.modelTestHint,children:e(`ai_providers.openai_test_hint`)})]}),(0,B.jsxs)(`div`,{className:W.modelTestControls,children:[(0,B.jsx)(Us,{value:d,options:j,onChange:e=>{f(e),m(`idle`),g(``)},placeholder:x.length?e(`ai_providers.openai_test_select_placeholder`):e(`ai_providers.openai_test_select_empty`),className:W.openaiTestSelect,ariaLabel:e(`ai_providers.openai_test_title`),disabled:c||o||E||p===`loading`||x.length===0}),(0,B.jsx)(V,{variant:p===`error`?`danger`:`secondary`,size:`sm`,onClick:()=>void F(),loading:p===`loading`,disabled:c||o||E||p===`loading`||!k||!A,title:e(`ai_providers.openai_test_all_hint`),className:W.modelTestAllButton,children:e(`ai_providers.openai_test_all_action`)})]})]}),h&&(0,B.jsx)(`div`,{className:`status-badge ${p===`error`?`error`:p===`success`?`success`:`muted`}`,children:h})]}),(0,B.jsxs)(`div`,{className:W.keyEntriesSection,children:[(0,B.jsxs)(`div`,{className:W.keyEntriesHeader,children:[(0,B.jsx)(`label`,{className:W.keyEntriesTitle,children:e(`ai_providers.openai_add_modal_keys_label`)}),(0,B.jsx)(`span`,{className:W.keyEntriesHint,children:e(`ai_providers.openai_keys_hint`)})]}),(t=>{let n=t.length?t:[Lp()],r=(e,t,r)=>{let i=n.map((n,i)=>i===e?{...n,[t]:r}:n);u(e=>({...e,apiKeyEntries:i})),v(e,{status:`idle`,message:``}),m(`idle`),g(``)},i=e=>{let t=n.filter((t,n)=>n!==e),r=t.length?t.length:1;u(e=>({...e,apiKeyEntries:t.length?t:[Lp()]})),b(r),m(`idle`),g(``)};return(0,B.jsxs)(`div`,{className:W.keyEntriesList,children:[(0,B.jsxs)(`div`,{className:W.keyEntriesToolbar,children:[(0,B.jsxs)(`span`,{className:W.keyEntriesCount,children:[e(`ai_providers.openai_keys_count`),`: `,n.length]}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{u(e=>({...e,apiKeyEntries:[...n,Lp()]})),b(n.length+1),m(`idle`),g(``)},disabled:c||o||E,className:W.addKeyButton,children:e(`ai_providers.openai_keys_add_btn`)})]}),(0,B.jsxs)(`div`,{className:W.keyTableShell,children:[(0,B.jsxs)(`div`,{className:W.keyTableHeader,children:[(0,B.jsx)(`div`,{className:W.keyTableColIndex,children:`#`}),(0,B.jsx)(`div`,{className:W.keyTableColStatus,children:e(`common.status`)}),(0,B.jsx)(`div`,{className:W.keyTableColKey,children:e(`common.api_key`)}),(0,B.jsx)(`div`,{className:W.keyTableColProxy,children:e(`common.proxy_url`)}),(0,B.jsx)(`div`,{className:W.keyTableColAction,children:e(`common.action`)})]}),n.map((t,a)=>{let s=_[a]?.status??`idle`,l=!!t.apiKey?.trim()&&k;return(0,B.jsxs)(`div`,{className:W.keyTableRow,children:[(0,B.jsx)(`div`,{className:W.keyTableColIndex,children:a+1}),(0,B.jsx)(`div`,{className:W.keyTableColStatus,title:_[a]?.message||``,children:(0,B.jsx)(vv,{status:s})}),(0,B.jsx)(`div`,{className:W.keyTableColKey,children:(0,B.jsx)(`input`,{type:`text`,value:t.apiKey,onChange:e=>r(a,`apiKey`,e.target.value),disabled:c||o||E,className:`input ${W.keyTableInput}`,placeholder:e(`ai_providers.openai_key_placeholder`)})}),(0,B.jsx)(`div`,{className:W.keyTableColProxy,children:(0,B.jsx)(`input`,{type:`text`,value:t.proxyUrl??``,onChange:e=>r(a,`proxyUrl`,e.target.value),disabled:c||o||E,className:`input ${W.keyTableInput}`,placeholder:e(`ai_providers.openai_proxy_placeholder`)})}),(0,B.jsxs)(`div`,{className:W.keyTableColAction,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void ee(a),disabled:c||o||E||!l,loading:s===`loading`,children:e(`ai_providers.openai_test_single_action`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>i(a),disabled:c||o||E||n.length<=1,children:e(`common.delete`)})]})]},a)})]})]})})(l.apiKeyEntries)]})]})})})}var bv=e=>e instanceof Error?e.message:typeof e==`string`?e:``;function xv(){let{t:e}=qo(),t=Qn(),{disableControls:n,loading:r,saving:i,form:a,mergeDiscoveredModels:o}=tr(),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(new Set),b=(0,y.useMemo)(()=>{let e=h.trim().toLowerCase();return e?l.filter(t=>{let n=(t.name||``).toLowerCase(),r=(t.alias||``).toLowerCase(),i=(t.description||``).toLowerCase();return n.includes(e)||r.includes(e)||i.includes(e)}):l},[l,h]),x=(0,y.useMemo)(()=>b.map(e=>e.name),[b]),S=(0,y.useMemo)(()=>x.length>0&&x.every(e=>_.has(e)),[_,x]),C=(0,y.useCallback)(async({allowFallback:t=!0}={})=>{let n=a.baseUrl.trim();if(n){f(!0),m(``);try{let e=nf(a.headers),t=a.apiKeyEntries.find(e=>e.apiKey?.trim())?.apiKey?.trim(),r=rf(e,`authorization`);u(await Zf.fetchModelsViaApiCall(n,r?void 0:t,e))}catch(r){if(t)try{u(await Zf.fetchModelsViaApiCall(n));return}catch(t){let n=bv(t)||bv(r);u([]),m(`${e(`ai_providers.openai_models_fetch_error`)}: ${n}`)}else u([]),m(`${e(`ai_providers.openai_models_fetch_error`)}: ${bv(r)}`)}finally{f(!1)}}},[a.apiKeyEntries,a.baseUrl,a.headers,e]);(0,y.useEffect)(()=>{r||(c(Cp(a.baseUrl)),u([]),g(``),v(new Set),m(``),C())},[C,a.baseUrl,r]),(0,y.useEffect)(()=>{let e=new Set(l.map(e=>e.name));v(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[l]);let w=(0,y.useCallback)(()=>{t(-1)},[t]),T=d_({onBack:w});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&w()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[w]);let E=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},D=(0,y.useCallback)(()=>{v(e=>{let t=new Set(e);return x.forEach(e=>t.add(e)),t})},[x]),O=(0,y.useCallback)(()=>{v(new Set)},[]),k=()=>{let e=l.filter(e=>_.has(e.name));e.length&&o(e),w()},A=!n&&!i&&!d&&_.size>0;return(0,B.jsx)(h_,{ref:T,contentClassName:y_.content,title:e(`ai_providers.openai_models_fetch_title`),onBack:w,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:w,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:k,disabled:!A,className:y_.floatingSaveButton,children:e(`ai_providers.openai_models_fetch_apply`)})]}),isLoading:r,loadingLabel:e(`common.loading`),children:(0,B.jsx)(hg,{children:(0,B.jsxs)(`div`,{className:W.openaiModelsContent,children:[(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_hint`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointSection,children:[(0,B.jsx)(`label`,{className:W.openaiModelsEndpointLabel,children:e(`ai_providers.openai_models_fetch_url_label`)}),(0,B.jsxs)(`div`,{className:W.openaiModelsEndpointControls,children:[(0,B.jsx)(`input`,{className:`input ${W.openaiModelsEndpointInput}`,readOnly:!0,value:s}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void C({allowFallback:!0}),loading:d,disabled:n||i,children:e(`ai_providers.openai_models_fetch_refresh`)})]})]}),(0,B.jsx)(Xo,{label:e(`ai_providers.openai_models_search_label`),placeholder:e(`ai_providers.openai_models_search_placeholder`),value:h,onChange:e=>g(e.target.value),disabled:d}),l.length>0&&(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbar,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryToolbarActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:D,disabled:n||i||d||b.length===0||S,children:e(`ai_providers.model_discovery_select_visible`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:O,disabled:n||i||d||_.size===0,children:e(`ai_providers.model_discovery_clear_selection`)})]}),(0,B.jsx)(`div`,{className:W.modelDiscoverySelectionSummary,children:e(`ai_providers.model_discovery_selected_count`,{count:_.size})})]}),p&&(0,B.jsx)(`div`,{className:`error-box`,children:p}),d?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_loading`)}):l.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_fetch_empty`)}):b.length===0?(0,B.jsx)(`div`,{className:W.sectionHint,children:e(`ai_providers.openai_models_search_empty`)}):(0,B.jsx)(`div`,{className:W.modelDiscoveryList,children:b.map(e=>{let t=_.has(e.name);return(0,B.jsx)(Gs,{checked:t,onChange:()=>E(e.name),disabled:n||i||d,ariaLabel:e.name,className:`${W.modelDiscoveryRow} ${t?W.modelDiscoveryRowSelected:``}`,labelClassName:W.modelDiscoverySelectionLabel,label:(0,B.jsxs)(`div`,{className:W.modelDiscoveryMeta,children:[(0,B.jsxs)(`div`,{className:W.modelDiscoveryName,children:[e.name,e.alias&&(0,B.jsx)(`span`,{className:W.modelDiscoveryAlias,children:e.alias})]}),e.description&&(0,B.jsx)(`div`,{className:W.modelDiscoveryDesc,children:e.description})]})},e.name)})})]})})})}var Sv=()=>({apiKey:``,prefix:``,baseUrl:``,proxyUrl:``,headers:[],models:[],excludedModels:[],modelEntries:[{name:``,alias:``}],excludedText:``}),Cv=e=>{if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null},wv=e=>(e??[]).reduce((e,t)=>{let n=String(t?.name??``).trim(),r=String(t?.alias??``).trim();return!n&&!r||e.push({name:n,alias:r}),e},[]),Tv=e=>({apiKey:String(e.apiKey??``).trim(),priority:e.priority!==void 0&&Number.isFinite(e.priority)?Math.trunc(e.priority):null,prefix:String(e.prefix??``).trim(),baseUrl:String(e.baseUrl??``).trim(),proxyUrl:String(e.proxyUrl??``).trim(),headers:of(e.headers),models:wv(e.modelEntries),excludedModels:yp(e.excludedText??``)});function Ev(){let{t:e}=qo(),t=Qn(),n=Yn(),r=rr(),{showNotification:i}=hc(),a=ep(e=>e.connectionStatus)!==`connected`,o=Of(e=>e.fetchConfig),s=Of(e=>e.updateConfigValue),c=Of(e=>e.clearCache),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(()=>Sv()),[b,x]=(0,y.useState)(()=>Tv(Sv())),S=typeof r.index==`string`,C=(0,y.useMemo)(()=>Cv(r.index),[r.index]),w=S&&C===null,T=(0,y.useMemo)(()=>{if(C!==null)return l[C]},[l,C]),E=C!==null&&!T,D=e(C===null?`ai_providers.vertex_add_modal_title`:`ai_providers.vertex_edit_modal_title`),O=(0,y.useCallback)(()=>{if(n.state?.fromAiProviders){t(-1);return}t(`/ai-providers`,{replace:!0})},[n.state,t]),k=d_({onBack:O});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&O()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[O]),(0,y.useEffect)(()=>{let t=!1;return f(!0),g(``),Promise.all([o(`vertex-api-key`),Mh.getVertexConfigs()]).then(([e,n])=>{if(t)return;let r=Array.isArray(n)?n:Array.isArray(e)?e:[];u(r),s(`vertex-api-key`,r),c(`vertex-api-key`)}).catch(n=>{t||g((n instanceof Error?n.message:``)||e(`notification.refresh_failed`))}).finally(()=>{t||f(!1)}),()=>{t=!0}},[c,o,e,s]),(0,y.useEffect)(()=>{if(d)return;if(T){let e={...T,headers:af(T.headers),modelEntries:E_(T.models),excludedText:bp(T.excludedModels)};v(e),x(Tv(e));return}let e=Sv();v(e),x(Tv(e))},[T,d]);let A=!a&&!p&&!d&&!w&&!E,j=(0,y.useMemo)(()=>of(_.headers),[_.headers]),M=(0,y.useMemo)(()=>wv(_.modelEntries),[_.modelEntries]),N=(0,y.useMemo)(()=>yp(_.excludedText??``),[_.excludedText]),P=(0,y.useMemo)(()=>_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):null,[_.priority]),ee=(0,y.useMemo)(()=>!__(b.headers,j),[b.headers,j]),F=(0,y.useMemo)(()=>!v_(b.models,M),[b.models,M]),I=(0,y.useMemo)(()=>!g_(b.excludedModels,N),[b.excludedModels,N]),L=b.apiKey!==_.apiKey.trim()||b.priority!==P||b.prefix!==String(_.prefix??``).trim()||b.baseUrl!==String(_.baseUrl??``).trim()||b.proxyUrl!==String(_.proxyUrl??``).trim()||ee||F||I,{allowNextNavigation:R}=f_({enabled:!d&&!p&&!w&&!E,shouldBlock:({currentLocation:e,nextLocation:t})=>L&&e.pathname!==t.pathname,dialog:{title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`),variant:`danger`}}),te=(0,y.useCallback)(async()=>{if(!A)return;let t=(_.baseUrl??``).trim()||void 0;m(!0),g(``);try{let n={apiKey:_.apiKey.trim(),priority:_.priority!==void 0&&Number.isFinite(_.priority)?Math.trunc(_.priority):void 0,prefix:_.prefix?.trim()||void 0,baseUrl:t,proxyUrl:_.proxyUrl?.trim()||void 0,headers:nf(_.headers),models:_.modelEntries.map(e=>{let t=e.name.trim(),n=e.alias.trim();return!t||!n?null:{name:t,alias:n}}).filter(Boolean),excludedModels:yp(_.excludedText)},r=C===null?[...l,n]:l.map((e,t)=>t===C?n:e);await Mh.saveVertexConfigs(r),s(`vertex-api-key`,r),c(`vertex-api-key`),i(e(C===null?`notification.vertex_config_added`:`notification.vertex_config_updated`),`success`),R(),x(Tv(_)),O()}catch(t){let n=t instanceof Error?t.message:``;g(n),i(`${e(`notification.update_failed`)}: ${n}`,`error`)}finally{m(!1)}},[R,A,c,l,C,_,O,i,e,s]);return(0,B.jsx)(h_,{ref:k,contentClassName:y_.content,title:D,onBack:O,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:(0,B.jsxs)(`div`,{className:y_.floatingActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:O,className:y_.floatingBackButton,children:e(`common.back`)}),(0,B.jsx)(V,{size:`sm`,onClick:te,loading:p,disabled:!A,className:y_.floatingSaveButton,children:e(`common.save`)})]}),isLoading:d,loadingLabel:e(`common.loading`),children:(0,B.jsxs)(hg,{children:[h&&(0,B.jsx)(`div`,{className:`error-box`,children:h}),w||E?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.invalid_provider_index`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_key_label`),placeholder:e(`ai_providers.vertex_add_modal_key_placeholder`),value:_.apiKey,onChange:e=>v(t=>({...t,apiKey:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.prefix_label`),placeholder:e(`ai_providers.prefix_placeholder`),value:_.prefix??``,onChange:e=>v(t=>({...t,prefix:e.target.value})),hint:e(`ai_providers.prefix_hint`),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_url_label`),placeholder:e(`ai_providers.vertex_add_modal_url_placeholder`),value:_.baseUrl??``,onChange:e=>v(t=>({...t,baseUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(Xo,{label:e(`ai_providers.vertex_add_modal_proxy_label`),placeholder:e(`ai_providers.vertex_add_modal_proxy_placeholder`),value:_.proxyUrl??``,onChange:e=>v(t=>({...t,proxyUrl:e.target.value})),disabled:a||p}),(0,B.jsx)(I_,{entries:_.headers,onChange:e=>v(t=>({...t,headers:e})),addLabel:e(`common.custom_headers_add`),keyPlaceholder:e(`common.custom_headers_key_placeholder`),valuePlaceholder:e(`common.custom_headers_value_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.vertex_models_label`)}),(0,B.jsx)(s_,{entries:_.modelEntries,onChange:e=>v(t=>({...t,modelEntries:e})),addLabel:e(`ai_providers.vertex_models_add_btn`),namePlaceholder:e(`common.model_name_placeholder`),aliasPlaceholder:e(`common.model_alias_placeholder`),removeButtonTitle:e(`common.delete`),removeButtonAriaLabel:e(`common.delete`),disabled:a||p})]}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:e(`ai_providers.excluded_models_label`)}),(0,B.jsx)(`textarea`,{className:`input`,placeholder:e(`ai_providers.excluded_models_placeholder`),value:_.excludedText,onChange:e=>v(t=>({...t,excludedText:e.target.value})),rows:4,disabled:a||p}),(0,B.jsx)(`div`,{className:`hint`,children:e(`ai_providers.excluded_models_hint`)})]})]})]})})}async function Dv(e){try{if(typeof navigator<`u`&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>`u`||!document.body)return!1;let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.opacity=`0`,n.style.pointerEvents=`none`,n.style.left=`-9999px`,n.style.top=`0`,n.style.width=`1px`,n.style.height=`1px`,n.style.padding=`0`,n.style.border=`0`,document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);let r=document.execCommand(`copy`);if(document.body.removeChild(n),t?.focus)try{t.focus()}catch{}return r}catch{return!1}}var Ov=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generator:%20visioncortex%20VTracer%200.6.4%20--%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='59'%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L27,40%20L32,50%20L36,54%20L35,59%20L30,59%20L22,52%20L11,35%20L6,33%20L-1,34%20L-6,39%20L-14,52%20L-22,59%20L-28,59%20L-27,53%20L-22,47%20L-17,34%20L-10,12%20L-5,3%20Z%20'%20fill='%233789F9'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L25,35%20L21,34%20L16,29%20L11,26%20L7,20%20L7,18%20L2,16%20L-3,15%20L-8,18%20L-12,19%20L-9,9%20L-4,2%20Z%20'%20fill='%236D80D8'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L20,19%20L13,15%20L10,12%20L3,10%20L-1,8%20L-7,7%20L-4,2%20Z%20'%20fill='%23D78240'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L5,1%20L10,4%20L12,9%20L1,8%20L-5,13%20L-10,21%20L-13,26%20L-16,26%20L-9,5%20L-4,2%20Z%20M6,7%20Z%20'%20fill='%233294CC'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,2%20L10,10%20L12,18%20L5,14%20L1,10%20L0,4%20L-3,3%20L0,2%20Z%20'%20fill='%23E45C49'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L9,1%20L12,3%20L12,5%20L7,6%20L4,8%20L-1,11%20L-5,12%20L-2,2%20Z%20'%20fill='%2390AE64'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L5,1%20L5,4%20L-2,7%20L-7,11%20L-11,10%20L-9,5%20L-4,2%20Z%20'%20fill='%2353A89A'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,0%20L16,9%20L17,13%20L12,12%20L8,9%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%23B5677D'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,0%20L14,6%20L19,11%20L23,12%20L22,15%20L15,12%20L10,8%20L10,6%20L4,5%20Z%20'%20fill='%23778998'%20transform='translate(27,12)'/%3e%3cpath%20d='M0,0%20L4,2%20L-11,17%20L-12,14%20L-5,4%20Z%20'%20fill='%233390DF'%20transform='translate(26,21)'/%3e%3cpath%20d='M0,0%20L2,1%20L-4,5%20L-9,9%20L-13,13%20L-14,10%20L-13,7%20L-6,4%20L-3,1%20Z%20'%20fill='%233FA1B7'%20transform='translate(27,18)'/%3e%3cpath%20d='M0,0%20L4,0%20L9,5%20L13,6%20L12,9%20L5,6%20L0,2%20Z%20'%20fill='%238277BB'%20transform='translate(37,18)'/%3e%3cpath%20d='M0,0%20L5,1%20L7,6%20L-2,5%20Z%20M1,4%20Z%20'%20fill='%234989CF'%20transform='translate(30,17)'/%3e%3cpath%20d='M0,0%20L5,1%20L2,3%20L-3,6%20L-7,7%20L-6,3%20Z%20'%20fill='%2371B774'%20transform='translate(23,12)'/%3e%3cpath%20d='M0,0%20L7,1%20L9,7%20L5,6%20L0,1%20Z%20'%20fill='%236687E9'%20transform='translate(44,28)'/%3e%3cpath%20d='M0,0%20L7,0%20L5,1%20L5,3%20L8,4%20L4,5%20L-2,4%20Z%20'%20fill='%23C7AF38'%20transform='translate(23,3)'/%3e%3cpath%20d='M0,0%20L8,0%20L8,3%20L4,4%20L-4,3%20Z%20'%20fill='%23EF842A'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L7,4%20L7,6%20L10,6%20L11,10%20L4,6%20L0,2%20Z%20'%20fill='%23CD5D67'%20transform='translate(37,9)'/%3e%3cpath%20d='M0,0%20L5,2%20L9,8%20L8,11%20L2,3%20L0,2%20Z%20'%20fill='%23F35241'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L8,2%20L9,6%20L4,5%20L0,2%20Z%20'%20fill='%23A667A2'%20transform='translate(41,18)'/%3e%3cpath%20d='M0,0%20L9,1%20L8,3%20L-2,3%20Z%20'%20fill='%23A4B34C'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L2,0%20L7,5%20L8,7%20L3,6%20L0,2%20Z%20'%20fill='%23617FCF'%20transform='translate(35,18)'/%3e%3cpath%20d='M0,0%20L5,2%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%239D7784'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,2%20L6,4%20L0,3%20Z%20'%20fill='%23BC7F59'%20transform='translate(31,7)'/%3e%3c/svg%3e`,kv=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cfilter%20id='master_svg0_278_51503'%20filterUnits='objectBoundingBox'%20color-interpolation-filters='sRGB'%20x='0'%20y='0'%20width='1'%20height='1'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='BackgroundImageFix'%20result='shape'/%3e%3cfeGaussianBlur%20in='BackgroundImageFix'%20stdDeviation='1.3333334922790527'/%3e%3cfeComposite%20in2='SourceAlpha'%20operator='in'%20result='effect1_foregroundBlur'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_foregroundBlur'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20x1='0.07353696972131729'%20y1='0.12899449467658997'%20x2='0.9907095821060244'%20y2='0.9383787344260006'%20id='master_svg1_93_40276'%3e%3cstop%20offset='0%25'%20stop-color='%235C5CFF'%20stop-opacity='1'/%3e%3cstop%20offset='100%25'%20stop-color='%23AE5CFF'%20stop-opacity='1'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%3e%3cg%20filter='url(%23master_svg0_278_51503)'%3e%3crect%20x='0'%20y='0'%20width='32'%20height='32'%20rx='16'%20fill='%23F0F2F5'%20fill-opacity='0'/%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M31.843111328125,14.751C31.315411328125,7.18121,25.497411328125,1.04691,17.966011328125,0.119698C10.434711328125,-0.807512,3.302541328125,3.73244,0.954596328125,10.9482C0.345662328125,12.8248,1.732821328125,14.751,3.705641328125,14.751C4.950051328125,14.7517,6.055631328125,13.9569,6.451401328125,12.7772C7.497331328125,9.65101,10.504411328125,3.91401,18.482011328125,3.91401Q29.445911328125,3.91401,31.843111328125,14.751ZM9.127681328125,17.3314L9.127681328125,13.0862Q9.127681328125,13.0022,9.144081328125,12.9198Q9.160481328125,12.8373,9.192641328125,12.7597Q9.224801328125,12.682,9.271501328125,12.6122Q9.318191328125,12.5423,9.377621328125,12.4828Q9.437051328125,12.4234,9.506931328125,12.3767Q9.576811328125,12.33,9.654461328125,12.2979Q9.732111328125,12.2657,9.814541328125,12.2493Q9.896971328125,12.2329,9.981021328125,12.2329L11.049211328125,12.2329Q11.133211328125,12.2329,11.215711328125,12.2493Q11.298111328125,12.2657,11.375811328125,12.2979Q11.453411328125,12.33,11.523311328125,12.3767Q11.593211328125,12.4234,11.652611328125,12.4828Q11.712011328125,12.5423,11.758711328125,12.6122Q11.805411328125,12.682,11.837611328125,12.7597Q11.869711328125,12.8373,11.886111328125,12.9198Q11.902511328125,13.0022,11.902511328125,13.0862L11.902511328125,17.3314Q11.902511328125,17.4154,11.886111328125,17.4978Q11.869711328125,17.5803,11.837611328125,17.6579Q11.805411328125,17.7356,11.758711328125,17.8055Q11.712011328125,17.8753,11.652611328125,17.9348Q11.593211328125,17.9942,11.523311328125,18.0409Q11.453411328125,18.0876,11.375811328125,18.1197Q11.298111328125,18.1519,11.215711328125,18.1683Q11.133211328125,18.1847,11.049211328125,18.1847L9.981021328125,18.1847Q9.896971328125,18.1847,9.814541328125,18.1683Q9.732111328125,18.1519,9.654461328125,18.1197Q9.576811328125,18.0876,9.506931328125,18.0409Q9.437051328125,17.9942,9.377621328125,17.9348Q9.318191328125,17.8753,9.271501328125,17.8055Q9.224801328125,17.7356,9.192641328125,17.6579Q9.160481328125,17.5803,9.144081328125,17.4978Q9.127681328125,17.4154,9.127681328125,17.3314ZM17.273611328125,17.3295C17.272611328125,17.8015,17.654911328125,18.1847,18.126911328125,18.1847L19.408411328125,18.1847C19.879011328125,18.1847,20.260711328125,17.8038,20.261811328125,17.3332L20.266411328125,15.2107L20.266411328125,15.2069L20.261811328125,13.0844C20.260711328125,12.6138,19.879011328125,12.2329,19.408411328125,12.2329L18.126911328125,12.2329C17.654911328125,12.2329,17.272611328125,12.6161,17.273611328125,13.0881L17.278211328125,15.2069L17.278211328125,15.2107L17.273611328125,17.3295ZM13.574711328125,28.0523C21.552211328125,28.0523,24.559311328125,22.3153,25.605811328125,19.1897C26.001411328125,18.0098,27.107111328125,17.215,28.351511328125,17.2158C30.323811328125,17.2158,31.711511328125,19.1416,31.102611328125,21.0181C30.552411328125,22.7189,29.716211328125,24.3134,28.629811328125,25.733L30.137611328125,30.2235L24.775211328125,29.3432C14.645911328125,36.0484,1.048779328125,29.3346,0.214111328125,17.2158Q2.611231328125,28.0523,13.574711328125,28.0523Z'%20fill-rule='evenodd'%20fill='url(%23master_svg1_93_40276)'%20fill-opacity='1'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e`,Av=`data:image/svg+xml,%3csvg%20fill='%23FFFFFF'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23FFFFFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e`,jv=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23027AFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e`,Mv=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-fill'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,Nv=new Set([`antigravity`,`claude`,`codex`,`gemini-cli`,`kimi`]),Pv=/^[+-]?\d+$/,Fv={qwen:{light:{bg:`#ede5fd`,text:`#5530c7`},dark:{bg:`#36208a`,text:`#b5a3f0`}},kimi:{light:{bg:`#dce8ff`,text:`#0560cf`},dark:{bg:`#003880`,text:`#70b5ff`}},gemini:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},"gemini-cli":{light:{bg:`#e0e8ff`,text:`#1e4fa3`},dark:{bg:`#1c3f73`,text:`#a8c7ff`}},aistudio:{light:{bg:`#f0f2f5`,text:`#2f343c`},dark:{bg:`#373c42`,text:`#cfd3db`}},claude:{light:{bg:`#fbece4`,text:`#c05621`},dark:{bg:`#5e2c14`,text:`#e8a882`}},codex:{light:{bg:`#eae7ff`,text:`#3538d4`},dark:{bg:`#262395`,text:`#b5b0ff`}},antigravity:{light:{bg:`#e0f7fa`,text:`#006064`},dark:{bg:`#004d40`,text:`#80deea`}},iflow:{light:{bg:`#f5e3fc`,text:`#9025c8`},dark:{bg:`#521490`,text:`#d49cf5`}},vertex:{light:{bg:`#e4edfd`,text:`#2b5fbc`},dark:{bg:`#1a3d80`,text:`#89b3f7`}},empty:{light:{bg:`#f5f5f5`,text:`#616161`},dark:{bg:`#424242`,text:`#bdbdbd`}},unknown:{light:{bg:`#f0f0f0`,text:`#666666`,border:`1px dashed #999999`},dark:{bg:`#3a3a3a`,text:`#aaaaaa`,border:`1px dashed #666666`}}},Iv={antigravity:Ov,aistudio:Pg,claude:Cg,codex:Mg,gemini:Pg,"gemini-cli":Pg,iflow:kv,kimi:{light:jv,dark:Av},qwen:Mv,vertex:Vg},Lv=e=>Math.min(30,Math.max(3,Math.round(e))),Rv=(e,t,n)=>t===404?e(`common.quota_update_required`):t===403?e(`common.quota_check_credential`):n,zv=e=>e.trim().toLowerCase(),Bv=e=>{let t=e.status_message??e.statusMessage;return typeof t==`string`?t.trim():t==null?``:String(t).trim()},Vv=e=>Bv(e).length>0,Hv=(e,t)=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},Uv=(e,t)=>{let n=Fv[e]||Fv.unknown;return t===`dark`&&n.dark?n.dark:n.light},Wv=(e,t)=>{let n=Iv[zv(e)];return n?typeof n==`string`?n:t===`dark`?n.dark:n.light:null},Gv=e=>{if(typeof e==`number`)return Number.isInteger(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(!t||!Pv.test(t))return;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)?n:void 0};function Kv(e){let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}var qv=e=>{let t=e.modtime??e.modified;if(!t)return`-`;let n=Number(t),r=Number.isFinite(n)&&!Number.isNaN(n)?new Date(n<0xe8d4a51000?n*1e3:n):Ih(t)??new Date(String(t));return Number.isNaN(r.getTime())?`-`:r.toLocaleString()},Jv=(e,t,n)=>(n[zv(t)]||n[t]||[]).some(t=>{if(t.includes(`*`)){let n=t.split(`*`).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.*`);return RegExp(`^${n}$`,`i`).test(e)}return t.toLowerCase()===e.toLowerCase()}),Yv={qwen:{light:{bg:`#ede5fd`,text:`#5530c7`},dark:{bg:`#36208a`,text:`#b5a3f0`}},gemini:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},"gemini-cli":{light:{bg:`#e0e8ff`,text:`#1e4fa3`},dark:{bg:`#1c3f73`,text:`#a8c7ff`}},aistudio:{light:{bg:`#f0f2f5`,text:`#2f343c`},dark:{bg:`#373c42`,text:`#cfd3db`}},claude:{light:{bg:`#fbece4`,text:`#c05621`},dark:{bg:`#5e2c14`,text:`#e8a882`}},codex:{light:{bg:`#eae7ff`,text:`#3538d4`},dark:{bg:`#262395`,text:`#b5b0ff`}},kimi:{light:{bg:`#dce8ff`,text:`#0560cf`},dark:{bg:`#003880`,text:`#70b5ff`}},antigravity:{light:{bg:`#e0f7fa`,text:`#006064`},dark:{bg:`#004d40`,text:`#80deea`}},iflow:{light:{bg:`#f5e3fc`,text:`#9025c8`},dark:{bg:`#521490`,text:`#d49cf5`}},vertex:{light:{bg:`#e4edfd`,text:`#2b5fbc`},dark:{bg:`#1a3d80`,text:`#89b3f7`}},empty:{light:{bg:`#f5f5f5`,text:`#616161`},dark:{bg:`#424242`,text:`#bdbdbd`}},unknown:{light:{bg:`#f0f0f0`,text:`#666666`,border:`1px dashed #999999`},dark:{bg:`#3a3a3a`,text:`#aaaaaa`,border:`1px dashed #666666`}}},Xv=[`https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels`,`https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:fetchAvailableModels`,`https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels`],Zv={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":`antigravity/1.11.5 windows/amd64`},Qv=[{id:`claude-gpt`,label:`Claude/GPT`,identifiers:[`claude-sonnet-4-6`,`claude-opus-4-6-thinking`,`gpt-oss-120b-medium`]},{id:`gemini-3-pro`,label:`Gemini 3 Pro`,identifiers:[`gemini-3-pro-high`,`gemini-3-pro-low`]},{id:`gemini-3-1-pro-series`,label:`Gemini 3.1 Pro Series`,identifiers:[`gemini-3.1-pro-high`,`gemini-3.1-pro-low`]},{id:`gemini-2-5-flash`,label:`Gemini 2.5 Flash`,identifiers:[`gemini-2.5-flash`,`gemini-2.5-flash-thinking`]},{id:`gemini-2-5-flash-lite`,label:`Gemini 2.5 Flash Lite`,identifiers:[`gemini-2.5-flash-lite`]},{id:`gemini-2-5-cu`,label:`Gemini 2.5 CU`,identifiers:[`rev19-uic3-1p`]},{id:`gemini-3-flash`,label:`Gemini 3 Flash`,identifiers:[`gemini-3-flash`]},{id:`gemini-image`,label:`gemini-3.1-flash-image`,identifiers:[`gemini-3.1-flash-image`],labelFromModel:!0}],$v=`https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota`,ey=`https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist`,ty={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`},ny=[{id:`gemini-flash-lite-series`,label:`Gemini Flash Lite Series`,preferredModelId:`gemini-2.5-flash-lite`,modelIds:[`gemini-2.5-flash-lite`]},{id:`gemini-flash-series`,label:`Gemini Flash Series`,preferredModelId:`gemini-3-flash-preview`,modelIds:[`gemini-3-flash-preview`,`gemini-2.5-flash`]},{id:`gemini-pro-series`,label:`Gemini Pro Series`,preferredModelId:`gemini-3.1-pro-preview`,modelIds:[`gemini-3.1-pro-preview`,`gemini-3-pro-preview`,`gemini-2.5-pro`]}],ry=new Map(ny.map((e,t)=>[e.id,t])),iy=new Map(ny.flatMap(e=>e.modelIds.map(t=>[t,e]))),ay=[`gemini-2.0-flash`],oy=`https://api.anthropic.com/api/oauth/profile`,sy=`https://api.anthropic.com/api/oauth/usage`,cy={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"anthropic-beta":`oauth-2025-04-20`},ly=[{key:`five_hour`,id:`five-hour`,labelKey:`claude_quota.five_hour`},{key:`seven_day`,id:`seven-day`,labelKey:`claude_quota.seven_day`},{key:`seven_day_oauth_apps`,id:`seven-day-oauth-apps`,labelKey:`claude_quota.seven_day_oauth_apps`},{key:`seven_day_opus`,id:`seven-day-opus`,labelKey:`claude_quota.seven_day_opus`},{key:`seven_day_sonnet`,id:`seven-day-sonnet`,labelKey:`claude_quota.seven_day_sonnet`},{key:`seven_day_cowork`,id:`seven-day-cowork`,labelKey:`claude_quota.seven_day_cowork`},{key:`iguana_necktie`,id:`iguana-necktie`,labelKey:`claude_quota.iguana_necktie`}],uy=`https://chatgpt.com/backend-api/wham/usage`,dy={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":`codex_cli_rs/0.76.0 (Debian 13.0.0; x86_64) WindowsTerminal`},fy=`https://api.kimi.com/coding/v1/usages`,py={Authorization:`Bearer $TOKEN$`},my=e=>typeof e==`number`&&Number.isFinite(e)?e.toString():typeof e==`string`&&e.trim()||null,hy=`_vertex`;function gy(e){return typeof e==`string`?e.trim()||null:typeof e==`number`&&Number.isFinite(e)?e.toString():null}function _y(e){let t=gy(e);return t?t.endsWith(hy)?t.slice(0,-7):t:null}function vy(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=e.trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}function yy(e){let t=vy(e);if(t!==null)return t;if(typeof e==`string`){let t=e.trim();if(!t)return null;if(t.endsWith(`%`)){let e=Number(t.slice(0,-1));return Number.isFinite(e)?e/100:null}}return null}function by(e){let t=gy(e);return t?t.toLowerCase():null}function xy(e){let t=e.trim();if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(Math.ceil(e.length/4)*4,`=`);if(typeof window<`u`&&typeof window.atob==`function`)return window.atob(n);if(typeof atob==`function`)return atob(n)}catch{return null}return null}function Sy(e){if(!e)return null;if(typeof e==`object`)return Array.isArray(e)?null:e;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`)return e}catch{}let n=t.split(`.`);if(n.length<2)return null;let r=xy(n[1]);if(!r)return null;try{let e=JSON.parse(r);if(e&&typeof e==`object`)return e}catch{return null}return null}function Cy(e){let t=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return e}catch{return null}return null}return typeof e==`object`&&!Array.isArray(e)?e:null},n=t(e);return n?`models`in n?n:t(n.body)||n:null}function wy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Ty(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Ey(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Dy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function Oy(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function ky(e){let t=Sy(e);return t?gy(t.chatgpt_account_id??t.chatgptAccountId):null}function Ay(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=[e.id_token,t?.id_token,n?.id_token];for(let e of r){let t=ky(e);if(t)return t}return null}function jy(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=e&&typeof e.id_token==`object`&&e.id_token!==null?e.id_token:null,i=t&&typeof t.id_token==`object`&&t.id_token!==null?t.id_token:null,a=[e.plan_type,e.planType,e.plan_type,e.planType,e.id_token,r?.plan_type,r?.planType,t?.plan_type,t?.planType,t?.id_token,i?.plan_type,i?.planType,n?.plan_type,n?.planType,n?.id_token];for(let e of a){let t=by(e);if(t)return t}return null}function My(e){if(typeof e!=`string`)return null;let t=Array.from(e.matchAll(/\(([^()]+)\)/g));return t.length===0?null:t[t.length-1]?.[1]?.trim()||null}function Ny(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=[e.account,e.account,t?.account,n?.account];for(let e of r){let t=My(e);if(t)return t}return null}function Py(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.toLocaleString(void 0,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function Fy(e){if(!e)return`-`;let t=new Date(e*1e3);return Number.isNaN(t.getTime())?`-`:t.toLocaleString(void 0,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function Iy(e){if(!e)return`-`;let t=vy(e.reset_at??e.resetAt);if(t!==null&&t>0)return Fy(t);let n=vy(e.reset_after_seconds??e.resetAfterSeconds);return n!==null&&n>0?Fy(Math.floor(Date.now()/1e3+n)):`-`}function Ly(e,t){let n=Error(e);return t!==void 0&&(n.status=t),n}function Ry(e){if(typeof e==`object`&&e&&`status`in e){let t=e.status;if(typeof t==`number`&&Number.isFinite(t))return t;let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}function zy(e,t){return t?e(`kimi_quota.reset_hint`,{hint:t}):``}function By(e){let t=e.provider??e.type??``;return String(t).trim().toLowerCase()}function Vy(e){return By(e)===`antigravity`}function Hy(e){return By(e)===`claude`}function Uy(e){return By(e)===`codex`}function Wy(e){return By(e)===`gemini-cli`}function Gy(e){return By(e)===`kimi`}function Ky(e){let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}function qy(e){let t=e.disabled;return typeof t==`boolean`?t:typeof t==`number`?t!==0:typeof t==`string`?t.trim().toLowerCase()===`true`:!1}function Jy(e){return ay.some(t=>e===t||e.startsWith(`${t}-`))}function Yy(e,t){if(!e)return t;if(!t)return e;let n=new Date(e).getTime(),r=new Date(t).getTime();return Number.isNaN(n)?t:Number.isNaN(r)||n<=r?e:t}function Xy(e,t){return e===null?t:t===null?e:Math.min(e,t)}function Zy(e){if(e.length===0)return[];let t=new Map;e.forEach(e=>{if(Jy(e.modelId))return;let n=iy.get(e.modelId),r=n?.id??e.modelId,i=n?.label??e.modelId,a=e.tokenType??``,o=`${r}::${a}`,s=t.get(o);if(!s){let s=n?.preferredModelId,c=s&&e.modelId===s?e:void 0;t.set(o,{id:`${r}${a?`-${a}`:``}`,label:i,tokenType:e.tokenType,modelIds:[e.modelId],preferredModelId:s,preferredBucket:c,fallbackRemainingFraction:e.remainingFraction,fallbackRemainingAmount:e.remainingAmount,fallbackResetTime:e.resetTime});return}s.fallbackRemainingFraction=Xy(s.fallbackRemainingFraction,e.remainingFraction),s.fallbackRemainingAmount=Xy(s.fallbackRemainingAmount,e.remainingAmount),s.fallbackResetTime=Yy(s.fallbackResetTime,e.resetTime),s.modelIds.push(e.modelId),s.preferredModelId&&e.modelId===s.preferredModelId&&(s.preferredBucket=e)});let n=e=>{let t=e.tokenType?`-${e.tokenType}`:``,n=e.id.endsWith(t)?e.id.slice(0,e.id.length-t.length):e.id;return ry.get(n)??2**53-1};return Array.from(t.values()).sort((e,t)=>{let r=n(e)-n(t);if(r!==0)return r;let i=e.tokenType??``,a=t.tokenType??``;return i.localeCompare(a)}).map(e=>{let t=Array.from(new Set(e.modelIds)),n=e.preferredBucket,r=n?n.remainingFraction:e.fallbackRemainingFraction,i=n?n.remainingAmount:e.fallbackRemainingAmount,a=n?n.resetTime:e.fallbackResetTime;return{id:e.id,label:e.label,remainingFraction:r,remainingAmount:i,resetTime:a,tokenType:e.tokenType,modelIds:t}})}function Qy(e){if(!e)return{remainingFraction:null};let t=e.quotaInfo??e.quota_info??{},n=yy(t.remainingFraction??t.remaining_fraction??t.remaining),r=t.resetTime??t.reset_time;return{remainingFraction:n,resetTime:typeof r==`string`?r:void 0,displayName:typeof e.displayName==`string`?e.displayName:void 0}}function $y(e,t){let n=e[t];if(n)return{id:t,entry:n};let r=Object.entries(e).find(([,e])=>(typeof e?.displayName==`string`?e.displayName:``).toLowerCase()===t.toLowerCase());return r?{id:r[0],entry:r[1]}:null}function eb(e){let t=[],n=new Map(Qv.map(e=>[e.id,e])),r=(t,n)=>{let r=t.identifiers.map(t=>$y(e,t)).filter(e=>!!e).map(({id:e,entry:t})=>{let n=Qy(t),r=n.remainingFraction??(n.resetTime?0:null);return r===null?null:{id:e,remainingFraction:r,resetTime:n.resetTime,displayName:n.displayName}}).filter(e=>e!==null);if(r.length===0)return null;let i=Math.min(...r.map(e=>e.remainingFraction)),a=n??r.map(e=>e.resetTime).find(Boolean),o=r.map(e=>e.displayName).find(Boolean),s=t.labelFromModel&&o?o:t.label;return{id:t.id,label:s,models:r.map(e=>e.id),remainingFraction:i,resetTime:a}},i=(e,i)=>{let a=n.get(e);if(!a)return null;let o=r(a,i);return o&&t.push(o),o};i(`claude-gpt`);let a=i(`gemini-3-1-pro-series`),o=i(`gemini-3-pro`),s=a?.resetTime??o?.resetTime;return i(`gemini-2-5-flash`),i(`gemini-2-5-flash-lite`),i(`gemini-2-5-cu`),i(`gemini-3-flash`),i(`gemini-image`,s),t}function tb(e){if(typeof e==`number`&&Number.isFinite(e))return Math.floor(e);if(typeof e==`string`){let t=Number(e.trim());return Number.isFinite(t)?Math.floor(t):null}return null}function nb(e){for(let t of[`reset_at`,`resetAt`,`reset_time`,`resetTime`]){let n=e[t];if(typeof n==`string`&&n.trim())try{let e=n.replace(/(\.\d{6})\d+/,`$1`),t=new Date(e);if(Number.isNaN(t.getTime()))continue;let r=Date.now(),i=t.getTime()-r;if(i<=0)return;let a=Math.floor(i/6e4),o=Math.floor(a/60),s=a%60;return o>0&&s>0?`${o}h ${s}m`:o>0?`${o}h`:s>0?`${s}m`:`<1m`}catch{continue}}for(let t of[`reset_in`,`resetIn`,`ttl`]){let n=tb(e[t]);if(n!==null&&n>0){let e=Math.floor(n/3600),t=Math.floor(n%3600/60);return e>0&&t>0?`${e}h ${t}m`:e>0?`${e}h`:t>0?`${t}m`:`<1m`}}}function rb(e,t){let n=typeof t==`string`?t.trim().toUpperCase():``;return n===`MINUTES`?e%60==0?`${e/60}h`:`${e}m`:n===`HOURS`?`${e}h`:n===`DAYS`?`${e}d`:`${e}s`}function ib(e,t,n,r){for(let n of[`name`,`title`,`scope`]){let r=e[n]??t[n];if(typeof r==`string`&&r.trim())return{label:r.trim()}}let i=tb(n.duration)??tb(e.duration)??tb(t.duration),a=n.timeUnit??e.timeUnit??t.timeUnit;return i!==null&&i>0?{labelKey:`kimi_quota.limit_window`,labelParams:{duration:rb(i,a)}}:{labelKey:`kimi_quota.limit_index`,labelParams:{index:r+1}}}function ab(e,t){let n=tb(e.limit),r=tb(e.used);if(r===null){let t=tb(e.remaining);t!==null&&n!==null&&(r=n-t)}if(r===null&&n===null)return null;let i=typeof e.name==`string`&&e.name.trim()||typeof e.title==`string`&&e.title.trim();return{...i?{label:i}:t,used:r??0,limit:n??0,resetHint:nb(e)}}function ob(e){let t=[],n=e.usage;if(n&&typeof n==`object`){let e=ab(n,{labelKey:`kimi_quota.weekly_limit`});e&&t.push({id:`summary`,...e})}let r=e.limits;return Array.isArray(r)&&r.forEach((e,n)=>{let r=e.detail&&typeof e.detail==`object`?e.detail:e,i=ab(r,ib(e,r,e.window&&typeof e.window==`object`?e.window:{},n));i&&t.push({id:`limit-${n}`,...i})}),t}var sb={container:`QuotaPage-module__container___CkTNE`,pageHeader:`QuotaPage-module__pageHeader___7RVAE`,pageTitle:`QuotaPage-module__pageTitle___c6BF7`,description:`QuotaPage-module__description___qDPuI`,headerActions:`QuotaPage-module__headerActions___Jfu3A`,titleWrapper:`QuotaPage-module__titleWrapper___lHVCF`,countBadge:`QuotaPage-module__countBadge___tuPLs`,errorBox:`QuotaPage-module__errorBox___Ub2Qs`,pageSizeSelect:`QuotaPage-module__pageSizeSelect___1AaaU`,statsInfo:`QuotaPage-module__statsInfo___coFxw`,antigravityGrid:`QuotaPage-module__antigravityGrid___d29-f`,claudeGrid:`QuotaPage-module__claudeGrid___g3N0r`,codexGrid:`QuotaPage-module__codexGrid___gQjcK`,geminiCliGrid:`QuotaPage-module__geminiCliGrid___R6KEW`,kimiGrid:`QuotaPage-module__kimiGrid___-9u7J`,antigravityControls:`QuotaPage-module__antigravityControls___jdhuf`,claudeControls:`QuotaPage-module__claudeControls___CJ9XX`,codexControls:`QuotaPage-module__codexControls___ZabMA`,geminiCliControls:`QuotaPage-module__geminiCliControls___aWZsx`,kimiControls:`QuotaPage-module__kimiControls___3WNBe`,antigravityControl:`QuotaPage-module__antigravityControl___Z2Ti6`,claudeControl:`QuotaPage-module__claudeControl___4J9Tz`,codexControl:`QuotaPage-module__codexControl___P4r4g`,geminiCliControl:`QuotaPage-module__geminiCliControl___SIXi-`,kimiControl:`QuotaPage-module__kimiControl___5rxbt`,viewModeToggle:`QuotaPage-module__viewModeToggle___BHo1O`,viewModeButton:`QuotaPage-module__viewModeButton___jjKnb`,viewModeButtonActive:`QuotaPage-module__viewModeButtonActive___LGwRk`,refreshAllButton:`QuotaPage-module__refreshAllButton___c9-I-`,claudeCard:`QuotaPage-module__claudeCard___z9zBZ`,antigravityCard:`QuotaPage-module__antigravityCard___0jKaG`,codexCard:`QuotaPage-module__codexCard___2xhZX`,geminiCliCard:`QuotaPage-module__geminiCliCard___i8Qjn`,kimiCard:`QuotaPage-module__kimiCard___WWvTD`,quotaSection:`QuotaPage-module__quotaSection___Yb6bk`,quotaRow:`QuotaPage-module__quotaRow___uNjD0`,quotaRowHeader:`QuotaPage-module__quotaRowHeader___jr9zd`,quotaModel:`QuotaPage-module__quotaModel___-3mcR`,quotaBar:`QuotaPage-module__quotaBar___ATY20`,quotaBarFill:`QuotaPage-module__quotaBarFill___arMGf`,quotaBarFillHigh:`QuotaPage-module__quotaBarFillHigh___yfdzz`,quotaBarFillMedium:`QuotaPage-module__quotaBarFillMedium___PbU2j`,quotaBarFillLow:`QuotaPage-module__quotaBarFillLow___1dvgT`,quotaMeta:`QuotaPage-module__quotaMeta___2Gr-S`,quotaPercent:`QuotaPage-module__quotaPercent___dwFKN`,quotaReset:`QuotaPage-module__quotaReset___AQC0c`,quotaAmount:`QuotaPage-module__quotaAmount___liJkK`,quotaMessage:`QuotaPage-module__quotaMessage___tXEKQ`,quotaMessageAction:`QuotaPage-module__quotaMessageAction___lCJz4`,quotaError:`QuotaPage-module__quotaError___rIKP-`,quotaWarning:`QuotaPage-module__quotaWarning___phfIc`,codexPlan:`QuotaPage-module__codexPlan___cNsir`,codexPlanLabel:`QuotaPage-module__codexPlanLabel___NR4tn`,codexPlanValue:`QuotaPage-module__codexPlanValue___TZDzO`,premiumPlanValue:`QuotaPage-module__premiumPlanValue___7ouKX`,fileCard:`QuotaPage-module__fileCard___7ZTk-`,cardHeader:`QuotaPage-module__cardHeader___vBGld`,typeBadge:`QuotaPage-module__typeBadge___ubtCA`,fileName:`QuotaPage-module__fileName___ATlvN`,pagination:`QuotaPage-module__pagination___W2eGv`,pageInfo:`QuotaPage-module__pageInfo___yNU7E`,warningOverlay:`QuotaPage-module__warningOverlay___lVjB7`,warningModal:`QuotaPage-module__warningModal___2pPNd`};function cb({percent:e,highThreshold:t,mediumThreshold:n}){let r=e===null?null:((e,t,n)=>Math.min(n,Math.max(t,e)))(e,0,100),i=r===null?sb.quotaBarFillMedium:r>=t?sb.quotaBarFillHigh:r>=n?sb.quotaBarFillMedium:sb.quotaBarFillLow,a=Math.round(r??0);return(0,B.jsx)(`div`,{className:sb.quotaBar,children:(0,B.jsx)(`div`,{className:`${sb.quotaBarFill} ${i}`,style:{width:`${a}%`}})})}function lb({item:e,quota:t,resolvedTheme:n,i18nPrefix:r,cardIdleMessageKey:i,cardClassName:a,defaultType:o,canRefresh:s=!1,onRefresh:c,renderQuotaItems:l}){let{t:u}=qo(),d=e.type||e.provider||o,f=Yv[d]||Yv.unknown,p=n===`dark`&&f.dark?f.dark:f.light,m=t?.status??`idle`,h=ub(u,t?.errorStatus,t?.error||u(`common.unknown_error`)),g=c?`${r}.idle`:i??`${r}.idle`,_=e=>{let t=`auth_files.filter_${e}`,n=u(t);return n===t?e.toLowerCase()===`iflow`?`iFlow`:e.charAt(0).toUpperCase()+e.slice(1):n};return(0,B.jsxs)(`div`,{className:`${sb.fileCard} ${a}`,children:[(0,B.jsxs)(`div`,{className:sb.cardHeader,children:[(0,B.jsx)(`span`,{className:sb.typeBadge,style:{backgroundColor:p.bg,color:p.text,...p.border?{border:p.border}:{}},children:_(d)}),(0,B.jsx)(`span`,{className:sb.fileName,children:e.name})]}),(0,B.jsx)(`div`,{className:sb.quotaSection,children:m===`loading`?(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(`${r}.loading`)}):m===`idle`?c?(0,B.jsx)(`button`,{type:`button`,className:`${sb.quotaMessage} ${sb.quotaMessageAction}`,onClick:c,disabled:!s,children:u(g)}):(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(g)}):m===`error`?(0,B.jsx)(`div`,{className:sb.quotaError,children:u(`${r}.load_failed`,{message:h})}):t?l(t,u,{styles:sb,QuotaProgressBar:cb}):(0,B.jsx)(`div`,{className:sb.quotaMessage,children:u(g)})})]})}var ub=(e,t,n)=>t===404?e(`common.quota_update_required`):t===403?e(`common.quota_check_credential`):n;function db(e){let{t}=qo(),n=np(e.storeSelector),r=np(t=>t[e.storeSetter]),i=(0,y.useRef)(!1),a=(0,y.useRef)(0);return{quota:n,loadQuota:(0,y.useCallback)(async(n,o,s)=>{if(i.current)return;i.current=!0;let c=++a.current;s(!0,o);try{if(n.length===0)return;r(t=>{let r={...t};return n.forEach(t=>{r[t.name]=e.buildLoadingState()}),r});let i=await Promise.all(n.map(async n=>{try{let r=await e.fetchQuota(n,t);return{name:n.name,status:`success`,data:r}}catch(e){let r=e instanceof Error?e.message:t(`common.unknown_error`),i=Ry(e);return{name:n.name,status:`error`,error:r,errorStatus:i}}}));if(c!==a.current)return;r(n=>{let r={...n};return i.forEach(n=>{n.status===`success`?r[n.name]=e.buildSuccessState(n.data):r[n.name]=e.buildErrorState(n.error||t(`common.unknown_error`),n.errorStatus)}),r})}finally{c===a.current&&(s(!1),i.current=!1)}},[e,r,t])}}function fb(e,t=16){let[n,r]=(0,y.useState)(1),[i,a]=(0,y.useState)(null),o=(0,y.useCallback)(e=>{a(e)},[]);return(0,y.useEffect)(()=>{if(!i)return;let n=()=>{let n=i.clientWidth,a=e+t,o=Math.floor((n+t)/a);r(Math.max(1,o))};n();let a=new ResizeObserver(()=>{n()});return a.observe(i),()=>a.disconnect()},[i,e,t]),[n,o]}var pb=25,mb=30,hb=(e,t=6)=>{let[n,r]=(0,y.useState)(1),[i,a]=(0,y.useState)(t),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=(0,y.useMemo)(()=>Math.max(1,Math.ceil(e.length/i)),[e.length,i]),d=(0,y.useMemo)(()=>Math.min(n,u),[n,u]);return{pageSize:i,totalPages:u,currentPage:d,pageItems:(0,y.useMemo)(()=>{let t=(d-1)*i;return e.slice(t,t+i)},[e,d,i]),setPageSize:(0,y.useCallback)(e=>{a(e),r(1)},[]),goToPrev:(0,y.useCallback)(()=>{r(e=>Math.max(1,e-1))},[]),goToNext:(0,y.useCallback)(()=>{r(e=>Math.min(u,e+1))},[u]),loading:o,loadingScope:c,setLoading:(0,y.useCallback)((e,t)=>{s(e),l(e?t??null:null)},[])}};function gb({config:e,files:t,loading:n,disabled:r}){let{t:i}=qo(),a=wc(e=>e.resolvedTheme),o=hc(e=>e.showNotification),s=np(t=>t[e.storeSetter]),[c,l]=fb(380),[u,d]=(0,y.useState)(`paged`),[f,p]=(0,y.useState)(!1),m=(0,y.useMemo)(()=>t.filter(t=>e.filterFn(t)),[t,e]),h=m.length<=mb,g=u===`all`&&!h?`paged`:u,{pageSize:_,totalPages:v,currentPage:b,pageItems:x,setPageSize:S,goToPrev:C,goToNext:w,loading:T,setLoading:E}=hb(m);(0,y.useEffect)(()=>{if(h||u!==`all`)return;let e=!1;return queueMicrotask(()=>{e||(d(`paged`),p(!0))}),()=>{e=!0}},[h,u]),(0,y.useEffect)(()=>{S(g===`all`?Math.max(1,m.length):Math.min(c*3,pb))},[g,c,m.length,S]);let{quota:D,loadQuota:O}=db(e),k=(0,y.useRef)(!1),A=(0,y.useRef)(n),j=(0,y.useCallback)(()=>{k.current=!0,i_()},[]);(0,y.useEffect)(()=>{let e=A.current;if(A.current=n,!k.current||n||!e)return;k.current=!1;let t=g===`all`?`all`:`page`,r=g===`all`?m:x;r.length!==0&&O(r,t,E)},[n,g,m,x,O,E]),(0,y.useEffect)(()=>{if(!n){if(m.length===0){s({});return}s(e=>{let t={};return m.forEach(n=>{let r=e[n.name];r&&(t[n.name]=r)}),t})}},[m,n,s]);let M=(0,y.useCallback)(async t=>{if(!(r||t.disabled)&&D[t.name]?.status!==`loading`){s(n=>({...n,[t.name]:e.buildLoadingState()}));try{let n=await e.fetchQuota(t,i);s(r=>({...r,[t.name]:e.buildSuccessState(n)})),o(i(`auth_files.quota_refresh_success`,{name:t.name}),`success`)}catch(n){let r=n instanceof Error?n.message:i(`common.unknown_error`),a=Ry(n);s(n=>({...n,[t.name]:e.buildErrorState(r,a)})),o(i(`auth_files.quota_refresh_failed`,{name:t.name,message:r}),`error`)}}},[e,r,D,s,o,i]),N=(0,B.jsxs)(`div`,{className:sb.titleWrapper,children:[(0,B.jsx)(`span`,{children:i(`${e.i18nPrefix}.title`)}),m.length>0&&(0,B.jsx)(`span`,{className:sb.countBadge,children:m.length})]}),P=T||n;return(0,B.jsxs)(hg,{title:N,extra:(0,B.jsxs)(`div`,{className:sb.headerActions,children:[(0,B.jsxs)(`div`,{className:sb.viewModeToggle,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,className:`${sb.viewModeButton} ${g===`paged`?sb.viewModeButtonActive:``}`,onClick:()=>d(`paged`),children:i(`auth_files.view_mode_paged`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,className:`${sb.viewModeButton} ${g===`all`?sb.viewModeButtonActive:``}`,onClick:()=>{m.length>mb?p(!0):d(`all`)},children:i(`auth_files.view_mode_all`)})]}),(0,B.jsxs)(V,{variant:`secondary`,size:`sm`,className:sb.refreshAllButton,onClick:j,disabled:r||P,loading:P,title:i(`quota_management.refresh_all_credentials`),"aria-label":i(`quota_management.refresh_all_credentials`),children:[!P&&(0,B.jsx)(cs,{size:16}),i(`quota_management.refresh_all_credentials`)]})]}),children:[m.length===0?(0,B.jsx)(wg,{title:i(`${e.i18nPrefix}.empty_title`),description:i(`${e.i18nPrefix}.empty_desc`)}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{ref:l,className:e.gridClassName,children:x.map(t=>(0,B.jsx)(lb,{item:t,quota:D[t.name],resolvedTheme:a,i18nPrefix:e.i18nPrefix,cardIdleMessageKey:e.cardIdleMessageKey,cardClassName:e.cardClassName,defaultType:e.type,canRefresh:!r&&!t.disabled,onRefresh:()=>void M(t),renderQuotaItems:e.renderQuotaItems},t.name))}),m.length>_&&g===`paged`&&(0,B.jsxs)(`div`,{className:sb.pagination,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:C,disabled:b<=1,children:i(`auth_files.pagination_prev`)}),(0,B.jsx)(`div`,{className:sb.pageInfo,children:i(`auth_files.pagination_info`,{current:b,total:v,count:m.length})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:w,disabled:b>=v,children:i(`auth_files.pagination_next`)})]})]}),f&&(0,B.jsx)(`div`,{className:sb.warningOverlay,onClick:()=>p(!1),children:(0,B.jsxs)(`div`,{className:sb.warningModal,onClick:e=>e.stopPropagation(),children:[(0,B.jsx)(`p`,{children:i(`auth_files.too_many_files_warning`)}),(0,B.jsx)(V,{variant:`primary`,size:`sm`,onClick:()=>p(!1),children:i(`common.confirm`)})]})})]})}var _b=`bamboo-precept-lgxtn`,vb=70,yb=30,bb=new Map,xb=new Map,Sb=async e=>{try{let t=(await ag.downloadText(e.name)).trim();if(!t)return _b;let n=JSON.parse(t),r=gy(n.project_id??n.projectId);if(r)return r;let i=n.installed&&typeof n.installed==`object`&&n.installed!==null?n.installed:null,a=i?gy(i.project_id??i.projectId):null;if(a)return a;let o=n.web&&typeof n.web==`object`&&n.web!==null?n.web:null,s=o?gy(o.project_id??o.projectId):null;if(s)return s}catch{return _b}return _b},Cb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`antigravity_quota.missing_auth_index`));let r=await Sb(e),i=JSON.stringify({project:r}),a=``,o,s,c=!1;for(let e of Xv)try{let r=await If.request({authIndex:n,method:`POST`,url:e,header:{...Zv},data:i});if(r.statusCode<200||r.statusCode>=300){a=Ff(r),o=r.statusCode,(r.statusCode===403||r.statusCode===404)&&(s??(s=r.statusCode));continue}c=!0;let l=Cy(r.body??r.bodyText)?.models;if(!l||typeof l!=`object`||Array.isArray(l)){a=t(`antigravity_quota.empty_models`);continue}let u=eb(l);if(u.length===0){a=t(`antigravity_quota.empty_models`);continue}return u}catch(e){a=e instanceof Error?e.message:t(`common.unknown_error`);let n=Ry(e);n&&(o=n,(n===403||n===404)&&(s??(s=n)))}if(c)return[];throw Ly(a||t(`common.unknown_error`),s??o)},wb=(e,t)=>{let n={codeFiveHour:{id:`five-hour`,labelKey:`codex_quota.primary_window`},codeWeekly:{id:`weekly`,labelKey:`codex_quota.secondary_window`},codeReviewFiveHour:{id:`code-review-five-hour`,labelKey:`codex_quota.code_review_primary_window`},codeReviewWeekly:{id:`code-review-weekly`,labelKey:`codex_quota.code_review_secondary_window`}},r=e.rate_limit??e.rateLimit??void 0,i=e.code_review_rate_limit??e.codeReviewRateLimit??void 0,a=e.additional_rate_limits??e.additionalRateLimits??[],o=[],s=(e,t,n,r,i,a,s)=>{if(!i)return;let c=Iy(i),l=vy(i.used_percent??i.usedPercent)??((a||s===!1)&&c!==`-`?100:null);o.push({id:e,label:t,labelKey:n,labelParams:r,usedPercent:l,resetLabel:c})},c=e=>e?vy(e.limit_window_seconds??e.limitWindowSeconds):null,l=r?.limit_reached??r?.limitReached,u=r?.allowed,d=(e,t)=>{let n=t?.allowOrderFallback??!0,r=e?.primary_window??e?.primaryWindow??null,i=e?.secondary_window??e?.secondaryWindow??null,a=[r,i],o=null,s=null;for(let e of a){if(!e)continue;let t=c(e);t===18e3&&!o?o=e:t===604800&&!s&&(s=e)}return n&&(o||(o=r&&r!==s?r:null),s||(s=i&&i!==o?i:null)),{fiveHourWindow:o,weeklyWindow:s}},f=d(r);s(n.codeFiveHour.id,t(n.codeFiveHour.labelKey),n.codeFiveHour.labelKey,void 0,f.fiveHourWindow,l,u),s(n.codeWeekly.id,t(n.codeWeekly.labelKey),n.codeWeekly.labelKey,void 0,f.weeklyWindow,l,u);let p=d(i),m=i?.limit_reached??i?.limitReached,h=i?.allowed;s(n.codeReviewFiveHour.id,t(n.codeReviewFiveHour.labelKey),n.codeReviewFiveHour.labelKey,void 0,p.fiveHourWindow,m,h),s(n.codeReviewWeekly.id,t(n.codeReviewWeekly.labelKey),n.codeReviewWeekly.labelKey,void 0,p.weeklyWindow,m,h);let g=e=>e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return Array.isArray(a)&&a.forEach((e,n)=>{let r=e?.rate_limit??e?.rateLimit??null;if(!r)return;let i=gy(e?.limit_name??e?.limitName)??gy(e?.metered_feature??e?.meteredFeature)??`additional-${n+1}`,a=g(i)||`additional-${n+1}`,o=r.primary_window??r.primaryWindow??null,c=r.secondary_window??r.secondaryWindow??null,l=r.limit_reached??r.limitReached,u=r.allowed;s(`${a}-five-hour-${n}`,t(`codex_quota.additional_primary_window`,{name:i}),`codex_quota.additional_primary_window`,{name:i},o,l,u),s(`${a}-weekly-${n}`,t(`codex_quota.additional_secondary_window`,{name:i}),`codex_quota.additional_secondary_window`,{name:i},c,l,u)}),o},Tb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`codex_quota.missing_auth_index`));let r=jy(e),i=Ay(e),a={...dy};i&&(a[`Chatgpt-Account-Id`]=i);let o=await If.request({authIndex:n,method:`GET`,url:uy,header:a});if(o.statusCode<200||o.statusCode>=300)throw Ly(Ff(o),o.statusCode);let s=Ty(o.body??o.bodyText);if(!s)throw Error(t(`codex_quota.empty_windows`));let c=by(s.plan_type??s.planType),l=wb(s,t);return{planType:c??r,windows:l}},Eb=`GOOGLE_ONE_AI`,Db={"free-tier":`tier_free`,"legacy-tier":`tier_legacy`,"standard-tier":`tier_standard`,"g1-pro-tier":`tier_pro`,"g1-ultra-tier":`tier_ultra`},Ob=(e,t)=>{if(!e)return null;let n=e.currentTier??e.current_tier,r=gy((e.paidTier??e.paid_tier)?.id)??gy(n?.id);if(!r)return null;let i=Db[r.toLowerCase()];return i?t(`gemini_cli_quota.${i}`):r},kb=e=>{if(!e)return null;let t=e.currentTier??e.current_tier,n=gy((e.paidTier??e.paid_tier)?.id)??gy(t?.id);return n?n.toLowerCase():null},Ab=e=>{if(!e)return null;let t=e.paidTier??e.paid_tier,n=e.currentTier??e.current_tier,r=t??n;if(!r)return null;let i=r.availableCredits??r.available_credits??[],a=0,o=!1;for(let e of i){if(gy(e.creditType??e.credit_type)!==Eb)continue;let t=vy(e.creditAmount??e.credit_amount);t!==null&&(a+=t,o=!0)}return o?a:null},jb=async(e,t,n)=>{try{let r=await If.request({authIndex:e,method:`POST`,url:ey,header:{...ty},data:JSON.stringify({cloudaicompanionProject:t,metadata:{ideType:`IDE_UNSPECIFIED`,platform:`PLATFORM_UNSPECIFIED`,pluginType:`GEMINI`,duetProject:t}})});if(r.statusCode<200||r.statusCode>=300)return{tierLabel:null,tierId:null,creditBalance:null};let i=Dy(r.body??r.bodyText);return{tierLabel:Ob(i,n),tierId:kb(i),creditBalance:Ab(i)}}catch{return{tierLabel:null,tierId:null,creditBalance:null}}},Mb=(e,t)=>{let n=xb.get(e);return!n||n.requestId!==t?{tierLabel:null,tierId:null,creditBalance:null}:{tierLabel:n.tierLabel,tierId:n.tierId,creditBalance:n.creditBalance}},Nb=(e,t,n,r)=>{let i=(bb.get(e)??0)+1;return bb.set(e,i),xb.delete(e),(async()=>{let a=await jb(t,n,r);bb.get(e)===i&&(xb.set(e,{requestId:i,...a}),np.getState().setGeminiCliQuota(t=>{let n=t[e];return!n||n.status!==`success`||n.tierLabel===a.tierLabel&&n.tierId===a.tierId&&n.creditBalance===a.creditBalance?t:{...t,[e]:{...n,tierLabel:a.tierLabel,tierId:a.tierId,creditBalance:a.creditBalance}}}))})(),i},Pb=async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`gemini_cli_quota.missing_auth_index`));let r=Ny(e);if(!r)throw Error(t(`gemini_cli_quota.missing_project_id`));let i=await If.request({authIndex:n,method:`POST`,url:$v,header:{...ty},data:JSON.stringify({project:r})});if(i.statusCode<200||i.statusCode>=300)throw Ly(Ff(i),i.statusCode);let a=Ey(i.body??i.bodyText),o=Zy((Array.isArray(a?.buckets)?a?.buckets:[]).map(e=>{let t=_y(e.modelId??e.model_id);if(!t)return null;let n=gy(e.tokenType??e.token_type),r=yy(e.remainingFraction??e.remaining_fraction),i=vy(e.remainingAmount??e.remaining_amount),a=gy(e.resetTime??e.reset_time)??void 0,o=null;return i===null?a&&(o=0):o=i<=0?0:null,{modelId:t,tokenType:n,remainingFraction:r??o,remainingAmount:i,resetTime:a}}).filter(e=>e!==null)),s=Nb(e.name,n,r,t),c=Mb(e.name,s);return{fileName:e.name,supplementaryRequestId:s,buckets:o,tierLabel:c.tierLabel,tierId:c.tierId,creditBalance:c.creditBalance}},Fb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a}=y.default,o=e.groups??[];return o.length===0?a(`div`,{className:r.quotaMessage},t(`antigravity_quota.empty_models`)):o.map(e=>{let t=Math.max(0,Math.min(1,e.remainingFraction)),n=Math.round(t*100),o=Py(e.resetTime);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel,title:e.models.join(`, `)},e.label),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},`${n}%`),a(`span`,{className:r.quotaReset},o))),a(i,{percent:n,highThreshold:vb,mediumThreshold:yb}))})},Ib=new Set([`g1-ultra-tier`]),Lb=new Set([`pro`,`prolite`,`pro-lite`,`pro_lite`]),Rb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.windows??[],c=e.planType??null,l=(e=>{let n=by(e);return n?n===`pro`?t(`codex_quota.plan_pro`):Lb.has(n)&&n!==`pro`?t(`codex_quota.plan_prolite`):n===`plus`?t(`codex_quota.plan_plus`):n===`team`?t(`codex_quota.plan_team`):n===`free`?t(`codex_quota.plan_free`):e||n:null})(c),u=Lb.has(by(c)??``),d=[];if(l){let e=u?r.premiumPlanValue:r.codexPlanValue;d.push(a(`div`,{key:`plan`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`codex_quota.plan_label`)),a(`span`,{className:e},l)))}return s.length===0?(d.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`codex_quota.empty_windows`))),a(o,null,...d)):(d.push(...s.map(e=>{let n=e.usedPercent,o=n===null?null:Math.max(0,Math.min(100,n)),s=o===null?null:Math.max(0,Math.min(100,100-o)),c=s===null?`--`:`${Math.round(s)}%`,l=e.labelKey?t(e.labelKey,e.labelParams):e.label;return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),a(`span`,{className:r.quotaReset},e.resetLabel))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...d))},zb=(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.buckets??[],c=e.tierLabel??null,l=e.tierId??null,u=e.creditBalance??null,d=l!==null&&Ib.has(l),f=[];if(c){let e=d?r.premiumPlanValue:r.codexPlanValue;f.push(a(`div`,{key:`tier`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`gemini_cli_quota.tier_label`)),a(`span`,{className:e},c)))}return u!==null&&f.push(a(`div`,{key:`credits`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`gemini_cli_quota.credit_label`)),a(`span`,{className:r.codexPlanValue},t(`gemini_cli_quota.credit_amount`,{count:u})))),s.length===0?(f.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`gemini_cli_quota.empty_buckets`))),a(o,null,...f)):(f.push(...s.map(e=>{let n=e.remainingFraction,o=n===null?null:Math.max(0,Math.min(1,n)),s=o===null?null:Math.round(o*100),c=s===null?`--`:`${s}%`,l=e.remainingAmount===null||e.remainingAmount===void 0?null:t(`gemini_cli_quota.remaining_amount`,{count:e.remainingAmount}),u=e.modelIds&&e.modelIds.length>0?e.modelIds.join(`, `):e.label,d=e.tokenType?`${u} (${e.tokenType})`:u,f=Py(e.resetTime);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel,title:d},e.label),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),l?a(`span`,{className:r.quotaAmount},l):null,a(`span`,{className:r.quotaReset},f))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...f))},Bb=(e,t)=>{let n=[];for(let{key:r,id:i,labelKey:a}of ly){let o=e[r];if(!o||typeof o!=`object`||!(`utilization`in o))continue;let s=o,c=vy(s.utilization),l=Py(s.resets_at);n.push({id:i,label:t(a),labelKey:a,usedPercent:c,resetLabel:l})}return n},Vb=e=>{if(e!=null){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(typeof e==`string`){let t=e.trim().toLowerCase();if([`true`,`1`,`yes`,`y`,`on`].includes(t))return!0;if([`false`,`0`,`no`,`n`,`off`].includes(t))return!1}}},Hb=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null},Ub=e=>{if(!e)return null;let t=Vb(e.account?.has_claude_max);if(t)return`plan_max`;let n=Vb(e.account?.has_claude_pro);if(n)return`plan_pro`;let r=gy(e.organization?.organization_type)?.toLowerCase(),i=gy(e.organization?.subscription_status)?.toLowerCase();return r===`claude_team`&&i===`active`?`plan_team`:t===!1&&n===!1?`plan_free`:null},Wb={type:`claude`,i18nPrefix:`claude_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Hy(e)&&!qy(e),fetchQuota:async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`claude_quota.missing_auth_index`));let[r,i]=await Promise.allSettled([If.request({authIndex:n,method:`GET`,url:sy,header:{...cy}}),If.request({authIndex:n,method:`GET`,url:oy,header:{...cy}})]);if(r.status===`rejected`)throw r.reason;let a=r.value;if(a.statusCode<200||a.statusCode>=300)throw Ly(Ff(a),a.statusCode);let o=wy(a.body??a.bodyText);if(!o)throw Error(t(`claude_quota.empty_windows`));let s=Bb(o,t),c=i.status===`fulfilled`&&i.value.statusCode>=200&&i.value.statusCode<300?Ub(Hb(i.value.body??i.value.bodyText)):null;return{windows:s,extraUsage:o.extra_usage,planType:c}},storeSelector:e=>e.claudeQuota,storeSetter:`setClaudeQuota`,buildLoadingState:()=>({status:`loading`,windows:[]}),buildSuccessState:e=>({status:`success`,windows:e.windows,extraUsage:e.extraUsage,planType:e.planType}),buildErrorState:(e,t)=>({status:`error`,windows:[],error:e,errorStatus:t}),cardClassName:sb.claudeCard,controlsClassName:sb.claudeControls,controlClassName:sb.claudeControl,gridClassName:sb.claudeGrid,renderQuotaItems:(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a,Fragment:o}=y.default,s=e.windows??[],c=e.extraUsage??null,l=e.planType??null,u=[];if(l&&u.push(a(`div`,{key:`plan`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`claude_quota.plan_label`)),a(`span`,{className:r.codexPlanValue},t(`claude_quota.${l}`)))),c&&c.is_enabled){let e=`$${(c.used_credits/100).toFixed(2)} / $${(c.monthly_limit/100).toFixed(2)}`;u.push(a(`div`,{key:`extra`,className:r.codexPlan},a(`span`,{className:r.codexPlanLabel},t(`claude_quota.extra_usage_label`)),a(`span`,{className:r.codexPlanValue},e)))}return s.length===0?(u.push(a(`div`,{key:`empty`,className:r.quotaMessage},t(`claude_quota.empty_windows`))),a(o,null,...u)):(u.push(...s.map(e=>{let n=e.usedPercent,o=n===null?null:Math.max(0,Math.min(100,n)),s=o===null?null:Math.max(0,Math.min(100,100-o)),c=s===null?`--`:`${Math.round(s)}%`,l=e.labelKey?t(e.labelKey):e.label;return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),a(`span`,{className:r.quotaReset},e.resetLabel))),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})),a(o,null,...u))}},Gb={type:`antigravity`,i18nPrefix:`antigravity_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Vy(e)&&!qy(e),fetchQuota:Cb,storeSelector:e=>e.antigravityQuota,storeSetter:`setAntigravityQuota`,buildLoadingState:()=>({status:`loading`,groups:[]}),buildSuccessState:e=>({status:`success`,groups:e}),buildErrorState:(e,t)=>({status:`error`,groups:[],error:e,errorStatus:t}),cardClassName:sb.antigravityCard,controlsClassName:sb.antigravityControls,controlClassName:sb.antigravityControl,gridClassName:sb.antigravityGrid,renderQuotaItems:Fb},Kb={type:`codex`,i18nPrefix:`codex_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Uy(e)&&!qy(e),fetchQuota:Tb,storeSelector:e=>e.codexQuota,storeSetter:`setCodexQuota`,buildLoadingState:()=>({status:`loading`,windows:[]}),buildSuccessState:e=>({status:`success`,windows:e.windows,planType:e.planType}),buildErrorState:(e,t)=>({status:`error`,windows:[],error:e,errorStatus:t}),cardClassName:sb.codexCard,controlsClassName:sb.codexControls,controlClassName:sb.codexControl,gridClassName:sb.codexGrid,renderQuotaItems:Rb},qb={type:`gemini-cli`,i18nPrefix:`gemini_cli_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Wy(e)&&!Ky(e)&&!qy(e),fetchQuota:Pb,storeSelector:e=>e.geminiCliQuota,storeSetter:`setGeminiCliQuota`,buildLoadingState:()=>({status:`loading`,buckets:[],tierLabel:null,tierId:null,creditBalance:null}),buildSuccessState:e=>{let t=Mb(e.fileName,e.supplementaryRequestId);return{status:`success`,buckets:e.buckets,tierLabel:t.tierLabel??e.tierLabel,tierId:t.tierId??e.tierId,creditBalance:t.creditBalance??e.creditBalance}},buildErrorState:(e,t)=>({status:`error`,buckets:[],error:e,errorStatus:t}),cardClassName:sb.geminiCliCard,controlsClassName:sb.geminiCliControls,controlClassName:sb.geminiCliControl,gridClassName:sb.geminiCliGrid,renderQuotaItems:zb},Jb={type:`kimi`,i18nPrefix:`kimi_quota`,cardIdleMessageKey:`quota_management.card_idle_hint`,filterFn:e=>Gy(e)&&!qy(e),fetchQuota:async(e,t)=>{let n=my(e.auth_index??e.authIndex);if(!n)throw Error(t(`kimi_quota.missing_auth_index`));let r=await If.request({authIndex:n,method:`GET`,url:fy,header:{...py}});if(r.statusCode<200||r.statusCode>=300)throw Ly(Ff(r),r.statusCode);let i=Oy(r.body??r.bodyText);if(!i)throw Error(t(`kimi_quota.empty_data`));return ob(i)},storeSelector:e=>e.kimiQuota,storeSetter:`setKimiQuota`,buildLoadingState:()=>({status:`loading`,rows:[]}),buildSuccessState:e=>({status:`success`,rows:e}),buildErrorState:(e,t)=>({status:`error`,rows:[],error:e,errorStatus:t}),cardClassName:sb.kimiCard,controlsClassName:sb.kimiControls,controlClassName:sb.kimiControl,gridClassName:sb.kimiGrid,renderQuotaItems:(e,t,n)=>{let{styles:r,QuotaProgressBar:i}=n,{createElement:a}=y.default,o=e.rows??[];return o.length===0?a(`div`,{className:r.quotaMessage},t(`kimi_quota.empty_data`)):o.map(e=>{let n=e.limit,o=e.used,s=n>0?Math.max(0,Math.min(100,Math.round((n-o)/n*100))):o>0?0:null,c=s===null?`--`:`${s}%`,l=e.labelKey?t(e.labelKey,e.labelParams??{}):e.label??``,u=zy(t,e.resetHint);return a(`div`,{key:e.id,className:r.quotaRow},a(`div`,{className:r.quotaRowHeader},a(`span`,{className:r.quotaModel},l),a(`div`,{className:r.quotaMeta},a(`span`,{className:r.quotaPercent},c),n>0?a(`span`,{className:r.quotaAmount},`${o} / ${n}`):null,u?a(`span`,{className:r.quotaReset},u):null)),a(i,{percent:s,highThreshold:vb,mediumThreshold:yb}))})}},G={container:`AuthFilesPage-module__container___u1c4k`,pageHeader:`AuthFilesPage-module__pageHeader___DVV58`,pageTitle:`AuthFilesPage-module__pageTitle___1TOZn`,description:`AuthFilesPage-module__description___N3RjR`,headerActions:`AuthFilesPage-module__headerActions___j0ROO`,titleWrapper:`AuthFilesPage-module__titleWrapper___PLYyj`,countBadge:`AuthFilesPage-module__countBadge___DQWug`,errorBox:`AuthFilesPage-module__errorBox___A9vF2`,filterSection:`AuthFilesPage-module__filterSection___qQ3Zo`,filterRail:`AuthFilesPage-module__filterRail___YRraq`,filterAllIconWrap:`AuthFilesPage-module__filterAllIconWrap___jMF1r`,filterAllIcon:`AuthFilesPage-module__filterAllIcon___mqchB`,filterContent:`AuthFilesPage-module__filterContent___xfK-G`,filterTags:`AuthFilesPage-module__filterTags___A24A3`,filterTag:`AuthFilesPage-module__filterTag___-YnCU`,filterTagActive:`AuthFilesPage-module__filterTagActive___Rnbcs`,filterTagIconWrap:`AuthFilesPage-module__filterTagIconWrap___pN6-v`,filterTagLabel:`AuthFilesPage-module__filterTagLabel___pP8yh`,filterTagIcon:`AuthFilesPage-module__filterTagIcon___j068V`,filterTagIconFallback:`AuthFilesPage-module__filterTagIconFallback___4ALgn`,filterTagText:`AuthFilesPage-module__filterTagText___b9X07`,filterTagCount:`AuthFilesPage-module__filterTagCount___RxSVk`,filterControlsPanel:`AuthFilesPage-module__filterControlsPanel___V-IZn`,filterControls:`AuthFilesPage-module__filterControls___PfZDU`,filterItem:`AuthFilesPage-module__filterItem___Kko4o`,filterToggleItem:`AuthFilesPage-module__filterToggleItem___m2sGr`,filterToggleGroup:`AuthFilesPage-module__filterToggleGroup___TdMH-`,filterToggleCard:`AuthFilesPage-module__filterToggleCard___N4oxi`,filterToggle:`AuthFilesPage-module__filterToggle___mi9Sd`,filterToggleLabel:`AuthFilesPage-module__filterToggleLabel___5rAlu`,pageSizeSelect:`AuthFilesPage-module__pageSizeSelect___yEBvp`,fileGrid:`AuthFilesPage-module__fileGrid___ajvi5`,fileGridQuotaManaged:`AuthFilesPage-module__fileGridQuotaManaged___kOhRx`,fileGridCompact:`AuthFilesPage-module__fileGridCompact___meaAl`,antigravityGrid:`AuthFilesPage-module__antigravityGrid___N7Got`,codexGrid:`AuthFilesPage-module__codexGrid___vLB3H`,geminiCliGrid:`AuthFilesPage-module__geminiCliGrid___5IwI3`,antigravityControls:`AuthFilesPage-module__antigravityControls___gn3rt`,antigravityControl:`AuthFilesPage-module__antigravityControl___rQ8wo`,codexControls:`AuthFilesPage-module__codexControls___Clxl6`,codexControl:`AuthFilesPage-module__codexControl___E7Mtk`,geminiCliControls:`AuthFilesPage-module__geminiCliControls___Y3V2-`,geminiCliControl:`AuthFilesPage-module__geminiCliControl___ZOIpb`,antigravityCard:`AuthFilesPage-module__antigravityCard___rt36l`,claudeCard:`AuthFilesPage-module__claudeCard___L-dIs`,codexCard:`AuthFilesPage-module__codexCard___FiEQ6`,geminiCliCard:`AuthFilesPage-module__geminiCliCard___4PuI5`,kimiCard:`AuthFilesPage-module__kimiCard___zWq5C`,quotaSection:`AuthFilesPage-module__quotaSection___hXy5f`,quotaRow:`AuthFilesPage-module__quotaRow___P2dUi`,quotaRowHeader:`AuthFilesPage-module__quotaRowHeader___IKu7H`,quotaModel:`AuthFilesPage-module__quotaModel___huwv6`,quotaBar:`AuthFilesPage-module__quotaBar___ex7am`,quotaBarFill:`AuthFilesPage-module__quotaBarFill___KqH7M`,quotaBarFillHigh:`AuthFilesPage-module__quotaBarFillHigh___F8WGP`,quotaBarFillMedium:`AuthFilesPage-module__quotaBarFillMedium___ae0Pi`,quotaBarFillLow:`AuthFilesPage-module__quotaBarFillLow___dX4lb`,quotaMeta:`AuthFilesPage-module__quotaMeta___HcbUH`,quotaPercent:`AuthFilesPage-module__quotaPercent___6J9UR`,quotaReset:`AuthFilesPage-module__quotaReset___bmEse`,quotaAmount:`AuthFilesPage-module__quotaAmount___k3Wx6`,quotaMessage:`AuthFilesPage-module__quotaMessage___1w3oM`,quotaMessageAction:`AuthFilesPage-module__quotaMessageAction___9r9cq`,quotaError:`AuthFilesPage-module__quotaError___dEV4B`,quotaWarning:`AuthFilesPage-module__quotaWarning___G1Tvc`,codexPlan:`AuthFilesPage-module__codexPlan___4IbAU`,codexPlanLabel:`AuthFilesPage-module__codexPlanLabel___RZN4K`,codexPlanValue:`AuthFilesPage-module__codexPlanValue___Z0Kgr`,premiumPlanValue:`AuthFilesPage-module__premiumPlanValue___9WyhU`,fileCard:`AuthFilesPage-module__fileCard___j9Jtq`,fileCardSelected:`AuthFilesPage-module__fileCardSelected___9i7m1`,fileCardDisabled:`AuthFilesPage-module__fileCardDisabled___hbSbQ`,providerAvatar:`AuthFilesPage-module__providerAvatar___4xnYu`,cardHeaderContent:`AuthFilesPage-module__cardHeaderContent___rh9WP`,cardMeta:`AuthFilesPage-module__cardMeta___H6kAQ`,healthStatusMessage:`AuthFilesPage-module__healthStatusMessage___KKfW-`,cardInsights:`AuthFilesPage-module__cardInsights___ci5AY`,cardSelection:`AuthFilesPage-module__cardSelection___wOE11`,cardActions:`AuthFilesPage-module__cardActions___mJgkW`,fileCardCompact:`AuthFilesPage-module__fileCardCompact___u9yZu`,fileCardMain:`AuthFilesPage-module__fileCardMain___6JwC7`,cardHeader:`AuthFilesPage-module__cardHeader___uJMtL`,providerAvatarImage:`AuthFilesPage-module__providerAvatarImage___QL5oK`,providerAvatarFallback:`AuthFilesPage-module__providerAvatarFallback___H9Mgn`,cardBadgeRow:`AuthFilesPage-module__cardBadgeRow___SeOzZ`,typeBadge:`AuthFilesPage-module__typeBadge___Dtm6A`,stateBadge:`AuthFilesPage-module__stateBadge___Cq7id`,fileName:`AuthFilesPage-module__fileName___DZ39s`,cardActionsMain:`AuthFilesPage-module__cardActionsMain___9Lsw7`,primaryActionButton:`AuthFilesPage-module__primaryActionButton___ex-Us`,cardUtilityActions:`AuthFilesPage-module__cardUtilityActions___LX5uj`,iconButton:`AuthFilesPage-module__iconButton___XT5TY`,statusToggle:`AuthFilesPage-module__statusToggle___H8bxD`,statusToggleLabel:`AuthFilesPage-module__statusToggleLabel___Wdwo7`,fileCardLayout:`AuthFilesPage-module__fileCardLayout___HRpBj`,stateBadgeActive:`AuthFilesPage-module__stateBadgeActive___Fo6ts`,stateBadgeWarning:`AuthFilesPage-module__stateBadgeWarning___vMjci`,stateBadgeDisabled:`AuthFilesPage-module__stateBadgeDisabled___uB-Ra`,stateBadgeVirtual:`AuthFilesPage-module__stateBadgeVirtual___Ig7fr`,cardMetaCompact:`AuthFilesPage-module__cardMetaCompact___h-CkT`,metaLabel:`AuthFilesPage-module__metaLabel___4mGPs`,metaValue:`AuthFilesPage-module__metaValue___VKbWa`,metaItem:`AuthFilesPage-module__metaItem___f62C0`,priorityBadge:`AuthFilesPage-module__priorityBadge___vHY0g`,priorityValue:`AuthFilesPage-module__priorityValue___cH2dN`,noteText:`AuthFilesPage-module__noteText___xsgqc`,noteLabel:`AuthFilesPage-module__noteLabel___DrD8k`,noteValue:`AuthFilesPage-module__noteValue___-wZpH`,sortSelect:`AuthFilesPage-module__sortSelect___4fEjm`,messageIcon:`AuthFilesPage-module__messageIcon___X3Cwx`,cardInsightsCompact:`AuthFilesPage-module__cardInsightsCompact___y0Q4G`,cardStats:`AuthFilesPage-module__cardStats___JQ4ig`,cardStatsCompact:`AuthFilesPage-module__cardStatsCompact___gRvUT`,statPill:`AuthFilesPage-module__statPill___wFsBu`,statLabel:`AuthFilesPage-module__statLabel___x0iKO`,statValue:`AuthFilesPage-module__statValue___0Cyg5`,statSuccess:`AuthFilesPage-module__statSuccess___mh8iR`,statFailure:`AuthFilesPage-module__statFailure___ivDGu`,statusPanel:`AuthFilesPage-module__statusPanel___jxcFi`,statusPanelCompact:`AuthFilesPage-module__statusPanelCompact___qla9F`,statusPanelLabel:`AuthFilesPage-module__statusPanelLabel___D3k8N`,statusBar:`AuthFilesPage-module__statusBar___n-3Gp`,statusBlocks:`AuthFilesPage-module__statusBlocks___DpQaY`,statusBlockWrapper:`AuthFilesPage-module__statusBlockWrapper___XCgvC`,statusRate:`AuthFilesPage-module__statusRate___LZm5e`,statusBlock:`AuthFilesPage-module__statusBlock___RPMAs`,statusBlockActive:`AuthFilesPage-module__statusBlockActive___pjNyd`,statusBlockIdle:`AuthFilesPage-module__statusBlockIdle___6Uc0C`,statusTooltip:`AuthFilesPage-module__statusTooltip___skNaB`,statusTooltipLeft:`AuthFilesPage-module__statusTooltipLeft___ZK0OM`,statusTooltipRight:`AuthFilesPage-module__statusTooltipRight___MrcVP`,tooltipTime:`AuthFilesPage-module__tooltipTime___6rx7A`,tooltipStats:`AuthFilesPage-module__tooltipStats___rDF8h`,tooltipSuccess:`AuthFilesPage-module__tooltipSuccess___DygUj`,tooltipFailure:`AuthFilesPage-module__tooltipFailure___Som0h`,tooltipRate:`AuthFilesPage-module__tooltipRate___gbhZZ`,statusRateHigh:`AuthFilesPage-module__statusRateHigh___seYyb`,statusRateMedium:`AuthFilesPage-module__statusRateMedium___aNblo`,statusRateLow:`AuthFilesPage-module__statusRateLow___BxxBi`,prefixProxyEditor:`AuthFilesPage-module__prefixProxyEditor___QyoN1`,prefixProxyLoading:`AuthFilesPage-module__prefixProxyLoading___pipJw`,prefixProxyError:`AuthFilesPage-module__prefixProxyError___HNtOZ`,prefixProxyJsonWrapper:`AuthFilesPage-module__prefixProxyJsonWrapper___j237Y`,prefixProxyLabel:`AuthFilesPage-module__prefixProxyLabel___IJHtd`,prefixProxyTextarea:`AuthFilesPage-module__prefixProxyTextarea___wcym6`,prefixProxyFields:`AuthFilesPage-module__prefixProxyFields___da72p`,prefixProxyTextareaInvalid:`AuthFilesPage-module__prefixProxyTextareaInvalid___CNpvm`,modelsActionButton:`AuthFilesPage-module__modelsActionButton___-ihP6`,modelsActionIconWrap:`AuthFilesPage-module__modelsActionIconWrap___KD-87`,actionButtonLabel:`AuthFilesPage-module__actionButtonLabel___B0RSa`,actionIcon:`AuthFilesPage-module__actionIcon___F2TRI`,pagination:`AuthFilesPage-module__pagination___Hwpg2`,batchActionContainer:`AuthFilesPage-module__batchActionContainer___qPwxN`,batchActionBar:`AuthFilesPage-module__batchActionBar___YEJju`,batchActionLeft:`AuthFilesPage-module__batchActionLeft___g851y`,batchActionRight:`AuthFilesPage-module__batchActionRight___NDPeh`,batchSelectionText:`AuthFilesPage-module__batchSelectionText___rSTLk`,pageInfo:`AuthFilesPage-module__pageInfo___Fkfbg`,excludedList:`AuthFilesPage-module__excludedList___9OGiS`,excludedItem:`AuthFilesPage-module__excludedItem___J3Xxa`,excludedInfo:`AuthFilesPage-module__excludedInfo___0hKQa`,excludedProvider:`AuthFilesPage-module__excludedProvider___6pkYz`,excludedModels:`AuthFilesPage-module__excludedModels___QdpJB`,excludedActions:`AuthFilesPage-module__excludedActions___jP49M`,providerField:`AuthFilesPage-module__providerField___end0y`,providerTagList:`AuthFilesPage-module__providerTagList___dCCYW`,providerTag:`AuthFilesPage-module__providerTag___RADdc`,providerTagActive:`AuthFilesPage-module__providerTagActive___j4vQJ`,aliasChartSection:`AuthFilesPage-module__aliasChartSection___uS-yX`,aliasChartHeader:`AuthFilesPage-module__aliasChartHeader___ABhkk`,aliasChartTitle:`AuthFilesPage-module__aliasChartTitle___OSz75`,aliasChart:`AuthFilesPage-module__aliasChart___XbONn`,cardExtraButtons:`AuthFilesPage-module__cardExtraButtons___P-fL4`,viewModeSwitch:`AuthFilesPage-module__viewModeSwitch___CxLpP`,mappingRow:`AuthFilesPage-module__mappingRow___b1MBs`,mappingSeparator:`AuthFilesPage-module__mappingSeparator___Wx18F`,mappingFork:`AuthFilesPage-module__mappingFork___nRhwu`,detailContent:`AuthFilesPage-module__detailContent___K3wet`,jsonContent:`AuthFilesPage-module__jsonContent___5lYBo`,formGroup:`AuthFilesPage-module__formGroup___1YGlp`,textarea:`AuthFilesPage-module__textarea___IAg4a`,hint:`AuthFilesPage-module__hint___YExGS`,modelsList:`AuthFilesPage-module__modelsList___KKhRE`,modelItem:`AuthFilesPage-module__modelItem___VMfPD`,modelId:`AuthFilesPage-module__modelId___4wMUh`,modelDisplayName:`AuthFilesPage-module__modelDisplayName___znKrk`,modelType:`AuthFilesPage-module__modelType___B0C7D`,modelItemExcluded:`AuthFilesPage-module__modelItemExcluded___I5sBn`,modelExcludedBadge:`AuthFilesPage-module__modelExcludedBadge___FyRdH`,excludedCheckList:`AuthFilesPage-module__excludedCheckList___8T3-H`,excludedCheckItem:`AuthFilesPage-module__excludedCheckItem___2z42k`,excludedCheckLabel:`AuthFilesPage-module__excludedCheckLabel___tg4BJ`,excludedCheckDisplayName:`AuthFilesPage-module__excludedCheckDisplayName___Cno8d`};function Yb({percent:e,highThreshold:t,mediumThreshold:n}){let r=e===null?null:((e,t,n)=>Math.min(n,Math.max(t,e)))(e,0,100),i=r===null?G.quotaBarFillMedium:r>=t?G.quotaBarFillHigh:r>=n?G.quotaBarFillMedium:G.quotaBarFillLow,a=Math.round(r??0);return(0,B.jsx)(`div`,{className:G.quotaBar,children:(0,B.jsx)(`div`,{className:`${G.quotaBarFill} ${i}`,style:{width:`${a}%`}})})}var Xb=e=>e===`antigravity`?Gb:e===`claude`?Wb:e===`codex`?Kb:e===`kimi`?Jb:qb;function Zb(e){let{file:t,quotaType:n,disableControls:r}=e,{t:i}=qo(),a=hc(e=>e.showNotification),o=np(e=>n===`antigravity`?e.antigravityQuota[t.name]:n===`claude`?e.claudeQuota[t.name]:n===`codex`?e.codexQuota[t.name]:n===`kimi`?e.kimiQuota[t.name]:e.geminiCliQuota[t.name]),s=np(e=>n===`antigravity`?e.setAntigravityQuota:n===`claude`?e.setClaudeQuota:n===`codex`?e.setCodexQuota:n===`kimi`?e.setKimiQuota:e.setGeminiCliQuota),c=(0,y.useCallback)(async()=>{if(r||Kv(t)||t.disabled||o?.status===`loading`)return;let e=Xb(n);s(n=>({...n,[t.name]:e.buildLoadingState()}));try{let n=await e.fetchQuota(t,i);s(r=>({...r,[t.name]:e.buildSuccessState(n)})),a(i(`auth_files.quota_refresh_success`,{name:t.name}),`success`)}catch(n){let r=n instanceof Error?n.message:i(`common.unknown_error`),o=Ry(n);s(n=>({...n,[t.name]:e.buildErrorState(r,o)})),a(i(`auth_files.quota_refresh_failed`,{name:t.name,message:r}),`error`)}},[r,t,o?.status,n,a,i,s]),l=Xb(n),u=o?.status??`idle`,d=!r&&!t.disabled,f=Rv(i,o?.errorStatus,o?.error||i(`common.unknown_error`));return(0,B.jsx)(`div`,{className:G.quotaSection,children:u===`loading`?(0,B.jsx)(`div`,{className:G.quotaMessage,children:i(`${l.i18nPrefix}.loading`)}):u===`idle`?(0,B.jsx)(`button`,{type:`button`,className:`${G.quotaMessage} ${G.quotaMessageAction}`,onClick:()=>void c(),disabled:!d,children:i(`${l.i18nPrefix}.idle`)}):u===`error`?(0,B.jsx)(`div`,{className:G.quotaError,children:i(`${l.i18nPrefix}.load_failed`,{message:f})}):o?l.renderQuotaItems(o,i,{styles:G,QuotaProgressBar:Yb}):(0,B.jsx)(`div`,{className:G.quotaMessage,children:i(`${l.i18nPrefix}.idle`)})})}var Qb=new Set([`ok`,`healthy`,`ready`,`success`,`available`]),$b=e=>{let t=By(e);return Nv.has(t)?t:null};function ex(e){let{t}=qo(),{file:n,compact:r,selected:i,resolvedTheme:a,disableControls:o,deleting:s,statusUpdating:c,quotaFilterType:l,statusBarCache:u,onShowModels:d,onDownload:f,onOpenPrefixProxyEditor:p,onDelete:m,onToggleStatus:h,onToggleSelect:g}=e,_=lp(n.recent_requests??n.recentRequests),v={success:op(n.success),failure:op(n.failed)},y=Kv(n),b=(n.type||``).toLowerCase()===`aistudio`,x=!y||b,S=Uv(n.type||`unknown`,a),C=Hv(t,n.type||`unknown`),w=Wv(n.type||`unknown`,a),T=l&&$b(n)===l?l:null,E=!!T&&!y&&!r,D=T===`antigravity`?G.antigravityCard:T===`claude`?G.claudeCard:T===`codex`?G.codexCard:T===`gemini-cli`?G.geminiCliCard:T===`kimi`?G.kimiCard:``,O=cp(n.auth_index??n.authIndex),k=O&&u.get(O)||pp(_),A=Bv(n),j=!!A&&!Qb.has(A.toLowerCase()),M=Gv(n.priority??n.priority),N=typeof n.note==`string`?n.note.trim():``,P=y?t(`auth_files.type_virtual`)||`虚拟认证文件`:n.disabled?t(`auth_files.health_status_disabled`):t(j?`auth_files.health_status_warning`:A?`auth_files.health_status_healthy`:`auth_files.status_toggle_label`),ee=y?G.stateBadgeVirtual:n.disabled?G.stateBadgeDisabled:j?G.stateBadgeWarning:G.stateBadgeActive;return(0,B.jsx)(`div`,{className:`${G.fileCard} ${r?G.fileCardCompact:``} ${D} ${i?G.fileCardSelected:``} ${n.disabled?G.fileCardDisabled:``}`,children:(0,B.jsx)(`div`,{className:G.fileCardLayout,children:(0,B.jsxs)(`div`,{className:G.fileCardMain,children:[(0,B.jsxs)(`div`,{className:G.cardHeader,children:[!y&&(0,B.jsx)(Gs,{checked:i,onChange:()=>g(n.name),className:G.cardSelection,"aria-label":t(i?`auth_files.batch_deselect`:`auth_files.batch_select_all`),title:t(i?`auth_files.batch_deselect`:`auth_files.batch_select_all`)}),(0,B.jsx)(`div`,{className:G.providerAvatar,style:{backgroundColor:S.bg,color:S.text,...S.border?{border:S.border}:{}},children:w?(0,B.jsx)(`img`,{src:w,alt:``,className:G.providerAvatarImage}):(0,B.jsx)(`span`,{className:G.providerAvatarFallback,children:C.slice(0,1).toUpperCase()})}),(0,B.jsxs)(`div`,{className:G.cardHeaderContent,children:[(0,B.jsxs)(`div`,{className:G.cardBadgeRow,children:[(0,B.jsx)(`span`,{className:G.typeBadge,style:{backgroundColor:S.bg,color:S.text,...S.border?{border:S.border}:{}},children:C}),(0,B.jsx)(`span`,{className:`${G.stateBadge} ${ee}`,children:P})]}),(0,B.jsx)(`span`,{className:G.fileName,title:n.name,children:n.name}),!r&&N&&(0,B.jsxs)(`div`,{className:G.noteText,title:N,children:[(0,B.jsx)(`span`,{className:G.noteLabel,children:t(`auth_files.note_display`)}),(0,B.jsx)(`span`,{className:G.noteValue,children:N})]})]})]}),(0,B.jsxs)(`div`,{className:`${G.cardMeta} ${r?G.cardMetaCompact:``}`,children:[(0,B.jsxs)(`div`,{className:G.metaItem,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.file_size`)}),(0,B.jsx)(`span`,{className:G.metaValue,children:n.size?vg(n.size):`-`})]}),(0,B.jsxs)(`div`,{className:G.metaItem,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.file_modified`)}),(0,B.jsx)(`span`,{className:G.metaValue,children:qv(n)})]}),M!==void 0&&(0,B.jsxs)(`div`,{className:`${G.metaItem} ${G.priorityBadge}`,children:[(0,B.jsx)(`span`,{className:G.metaLabel,children:t(`auth_files.priority_display`)}),(0,B.jsx)(`span`,{className:`${G.metaValue} ${G.priorityValue}`,children:M})]})]}),A&&j&&(0,B.jsxs)(`div`,{className:G.healthStatusMessage,title:A,children:[(0,B.jsx)(ss,{className:G.messageIcon,size:14}),(0,B.jsx)(`span`,{children:A})]}),(0,B.jsxs)(`div`,{className:`${G.cardInsights} ${r?G.cardInsightsCompact:``}`,children:[(0,B.jsxs)(`div`,{className:`${G.cardStats} ${r?G.cardStatsCompact:``}`,children:[(0,B.jsxs)(`div`,{className:`${G.statPill} ${G.statSuccess}`,children:[(0,B.jsx)(`span`,{className:G.statLabel,children:t(`stats.success`)}),(0,B.jsx)(`span`,{className:G.statValue,children:v.success})]}),(0,B.jsxs)(`div`,{className:`${G.statPill} ${G.statFailure}`,children:[(0,B.jsx)(`span`,{className:G.statLabel,children:t(`stats.failure`)}),(0,B.jsx)(`span`,{className:G.statValue,children:v.failure})]})]}),(0,B.jsxs)(`div`,{className:`${G.statusPanel} ${r?G.statusPanelCompact:``}`,children:[(0,B.jsx)(`div`,{className:G.statusPanelLabel,children:(0,B.jsx)(`span`,{children:t(`auth_files.health_status_label`)})}),(0,B.jsx)(Ag,{statusData:k,styles:G})]}),E&&T&&(0,B.jsx)(Zb,{file:n,quotaType:T,disableControls:o})]}),(0,B.jsxs)(`div`,{className:G.cardActions,children:[(0,B.jsxs)(`div`,{className:G.cardActionsMain,children:[x&&(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>d(n),className:`${G.primaryActionButton} ${G.modelsActionButton}`,title:t(`auth_files.models_button`,{defaultValue:`模型`}),disabled:o,children:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:G.modelsActionIconWrap,children:(0,B.jsx)(ns,{className:G.actionIcon,size:16})}),(0,B.jsx)(`span`,{className:G.actionButtonLabel,children:t(`auth_files.models_button`,{defaultValue:`模型`})})]})}),!y&&(0,B.jsxs)(`div`,{className:G.cardUtilityActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>f(n.name),className:G.iconButton,title:t(`auth_files.download_button`),disabled:o,children:(0,B.jsx)(ls,{className:G.actionIcon,size:16})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>p(n),className:G.iconButton,title:t(`auth_files.prefix_proxy_button`),disabled:o,children:(0,B.jsx)(os,{className:G.actionIcon,size:16})}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>m(n.name),className:G.iconButton,title:t(`auth_files.delete_button`),disabled:o||s===n.name,children:s===n.name?(0,B.jsx)(p_,{size:14}):(0,B.jsx)(us,{className:G.actionIcon,size:16})})]})]}),!y&&(0,B.jsxs)(`div`,{className:G.statusToggle,children:[(0,B.jsx)(`span`,{className:G.statusToggleLabel,children:t(`auth_files.status_toggle_label`)}),(0,B.jsx)(Sg,{ariaLabel:t(`auth_files.status_toggle_label`),checked:!n.disabled,disabled:o||c[n.name]===!0,onChange:e=>h(n,e)})]})]})]})})})}function tx(e){let{t}=qo(),{open:n,fileName:r,fileType:i,loading:a,error:o,models:s,excluded:c,onClose:l,onCopyText:u}=e;return(0,B.jsx)(um,{open:n,onClose:l,title:t(`auth_files.models_title`,{defaultValue:`支持的模型`})+` - ${r}`,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:l,children:t(`common.close`)}),children:a?(0,B.jsx)(`div`,{className:G.hint,children:t(`auth_files.models_loading`,{defaultValue:`正在加载模型列表...`})}):o===`unsupported`?(0,B.jsx)(wg,{title:t(`auth_files.models_unsupported`,{defaultValue:`当前版本不支持此功能`}),description:t(`auth_files.models_unsupported_desc`,{defaultValue:`请更新 CLI Proxy API 到最新版本后重试`})}):s.length===0?(0,B.jsx)(wg,{title:t(`auth_files.models_empty`,{defaultValue:`该凭证暂无可用模型`}),description:t(`auth_files.models_empty_desc`,{defaultValue:`该认证凭证可能尚未被服务器加载或没有绑定任何模型`})}):(0,B.jsx)(`div`,{className:G.modelsList,children:s.map(e=>{let n=Jv(e.id,i,c);return(0,B.jsxs)(`div`,{className:`${G.modelItem} ${n?G.modelItemExcluded:``}`,onClick:()=>{u(e.id)},title:n?t(`auth_files.models_excluded_hint`,{defaultValue:`此 OAuth 模型已被禁用`}):t(`common.copy`,{defaultValue:`点击复制`}),children:[(0,B.jsx)(`span`,{className:G.modelId,children:e.id}),e.display_name&&e.display_name!==e.id&&(0,B.jsx)(`span`,{className:G.modelDisplayName,children:e.display_name}),e.type&&(0,B.jsx)(`span`,{className:G.modelType,children:e.type}),n&&(0,B.jsx)(`span`,{className:G.modelExcludedBadge,children:t(`auth_files.models_excluded_badge`,{defaultValue:`已禁用`})})]},e.id)})})})}function nx(e){let{t}=qo(),{disableControls:n,editor:r,updatedText:i,dirty:a,onClose:o,onCopyText:s,onSave:c,onChange:l}=e,u=(e=>{if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}})(i);return(0,B.jsx)(um,{open:!!r,onClose:o,closeDisabled:r?.saving===!0,width:720,title:r?.fileName?t(`auth_files.auth_field_editor_title`,{name:r.fileName}):t(`auth_files.prefix_proxy_button`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:o,disabled:r?.saving===!0,children:t(a?`common.cancel`:`common.close`)}),(0,B.jsx)(V,{variant:`secondary`,onClick:()=>{i&&s(i)},disabled:r?.saving===!0||!i,children:t(`common.copy`)}),(0,B.jsx)(V,{onClick:c,loading:r?.saving===!0,disabled:n||r?.saving===!0||!a||!r?.json||!!(r?.headersTouched&&r.headersError),children:t(`common.save`)})]}),children:r&&(0,B.jsx)(`div`,{className:G.prefixProxyEditor,children:r.loading?(0,B.jsxs)(`div`,{className:G.prefixProxyLoading,children:[(0,B.jsx)(p_,{size:14}),(0,B.jsx)(`span`,{children:t(`auth_files.prefix_proxy_loading`)})]}):(0,B.jsxs)(B.Fragment,{children:[r.error&&(0,B.jsx)(`div`,{className:G.prefixProxyError,children:r.error}),(0,B.jsxs)(`div`,{className:G.prefixProxyJsonWrapper,children:[(0,B.jsx)(`label`,{className:G.prefixProxyLabel,children:t(`auth_files.prefix_proxy_info_label`)}),(0,B.jsx)(`textarea`,{className:G.prefixProxyTextarea,rows:8,readOnly:!0,value:r.fileInfoText})]}),(0,B.jsxs)(`div`,{className:G.prefixProxyJsonWrapper,children:[(0,B.jsx)(`label`,{className:G.prefixProxyLabel,children:t(`auth_files.prefix_proxy_source_label`)}),(0,B.jsx)(`textarea`,{className:G.prefixProxyTextarea,rows:10,readOnly:!0,value:u})]}),(0,B.jsxs)(`div`,{className:G.prefixProxyFields,children:[(0,B.jsx)(Xo,{label:t(`auth_files.prefix_label`),value:r.prefix,disabled:n||r.saving||!r.json,onChange:e=>l(`prefix`,e.target.value)}),(0,B.jsx)(Xo,{label:t(`auth_files.proxy_url_label`),value:r.proxyUrl,placeholder:t(`auth_files.proxy_url_placeholder`),disabled:n||r.saving||!r.json,onChange:e=>l(`proxyUrl`,e.target.value)}),(0,B.jsx)(Xo,{label:t(`auth_files.priority_label`),value:r.priority,placeholder:t(`auth_files.priority_placeholder`),hint:t(`auth_files.priority_hint`),disabled:n||r.saving||!r.json,onChange:e=>l(`priority`,e.target.value)}),(0,B.jsxs)(`div`,{className:`form-group`,children:[(0,B.jsx)(`label`,{children:t(`auth_files.headers_label`)}),(0,B.jsx)(`textarea`,{className:`input ${r.headersError?G.prefixProxyTextareaInvalid:``}`,value:r.headersText,placeholder:t(`auth_files.headers_placeholder`),rows:4,"aria-invalid":!!r.headersError,disabled:n||r.saving||!r.json,onChange:e=>l(`headersText`,e.target.value)}),r.headersError&&(0,B.jsx)(`div`,{className:`error-box`,children:r.headersError}),(0,B.jsx)(`div`,{className:`hint`,children:t(`auth_files.headers_hint`)})]}),(0,B.jsx)(Xo,{label:t(`auth_files.note_label`),value:r.note,placeholder:t(`auth_files.note_placeholder`),hint:t(`auth_files.note_hint`),disabled:n||r.saving||!r.json,onChange:e=>l(`note`,e.target.value)})]})]})})})}function rx(e){let{t}=qo(),{disableControls:n,excludedError:r,excluded:i,onAdd:a,onEdit:o,onDelete:s}=e;return(0,B.jsx)(hg,{title:t(`oauth_excluded.title`),extra:(0,B.jsx)(V,{size:`sm`,onClick:a,disabled:n||r===`unsupported`,children:t(`oauth_excluded.add`)}),children:r===`unsupported`?(0,B.jsx)(wg,{title:t(`oauth_excluded.upgrade_required_title`),description:t(`oauth_excluded.upgrade_required_desc`)}):Object.keys(i).length===0?(0,B.jsx)(wg,{title:t(`oauth_excluded.list_empty_all`)}):(0,B.jsx)(`div`,{className:G.excludedList,children:Object.entries(i).map(([e,n])=>(0,B.jsxs)(`div`,{className:G.excludedItem,children:[(0,B.jsxs)(`div`,{className:G.excludedInfo,children:[(0,B.jsx)(`div`,{className:G.excludedProvider,children:e}),(0,B.jsx)(`div`,{className:G.excludedModels,children:n?.length?t(`oauth_excluded.model_count`,{count:n.length}):t(`oauth_excluded.no_models`)})]}),(0,B.jsxs)(`div`,{className:G.excludedActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>o(e),children:t(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>s(e),children:t(`oauth_excluded.delete`)})]})]},e))})})}var K={scrollContainer:`ModelMappingDiagram-module__scrollContainer___CVtMl`,tapHint:`ModelMappingDiagram-module__tapHint___WVg9j`,container:`ModelMappingDiagram-module__container___5GMeJ`,connections:`ModelMappingDiagram-module__connections___-pgzq`,column:`ModelMappingDiagram-module__column___Guf-v`,providers:`ModelMappingDiagram-module__providers___n0NN6`,sources:`ModelMappingDiagram-module__sources___N646E`,aliases:`ModelMappingDiagram-module__aliases___zg5ma`,columnHeader:`ModelMappingDiagram-module__columnHeader___QAC6y`,item:`ModelMappingDiagram-module__item___KBTKp`,dropTarget:`ModelMappingDiagram-module__dropTarget___dAYPB`,selected:`ModelMappingDiagram-module__selected___r3Gyz`,providerItem:`ModelMappingDiagram-module__providerItem___4PZQM`,providerLabel:`ModelMappingDiagram-module__providerLabel___E2vNu`,collapseBtn:`ModelMappingDiagram-module__collapseBtn___RXanB`,chevronDown:`ModelMappingDiagram-module__chevronDown___AP7zK`,chevronRight:`ModelMappingDiagram-module__chevronRight___bbMVy`,providerGroup:`ModelMappingDiagram-module__providerGroup___5JNQu`,sourceItem:`ModelMappingDiagram-module__sourceItem___TjDG6`,aliasItem:`ModelMappingDiagram-module__aliasItem___h6w7D`,dragging:`ModelMappingDiagram-module__dragging___lhx9y`,dot:`ModelMappingDiagram-module__dot___AOWIN`,dotLeft:`ModelMappingDiagram-module__dotLeft___BKXAm`,providerBadge:`ModelMappingDiagram-module__providerBadge___cRzux`,itemName:`ModelMappingDiagram-module__itemName___MjfSv`,itemCount:`ModelMappingDiagram-module__itemCount___B-gtl`,contextMenu:`ModelMappingDiagram-module__contextMenu___VHX-s`,menuItem:`ModelMappingDiagram-module__menuItem___e-LvI`,danger:`ModelMappingDiagram-module__danger___klXxM`,menuDivider:`ModelMappingDiagram-module__menuDivider___XtoCo`,settingsEmpty:`ModelMappingDiagram-module__settingsEmpty___N0gFF`,settingsList:`ModelMappingDiagram-module__settingsList___ovuWo`,settingsRow:`ModelMappingDiagram-module__settingsRow___wH-TW`,settingsNames:`ModelMappingDiagram-module__settingsNames___QDn9j`,settingsSource:`ModelMappingDiagram-module__settingsSource___Hz9zo`,settingsAlias:`ModelMappingDiagram-module__settingsAlias___Ov9zt`,settingsArrow:`ModelMappingDiagram-module__settingsArrow___SKvFd`,settingsActions:`ModelMappingDiagram-module__settingsActions___PYXMU`,settingsLabel:`ModelMappingDiagram-module__settingsLabel___R--i-`,settingsDelete:`ModelMappingDiagram-module__settingsDelete___PDG7z`};function ix({providerNodes:e,collapsedProviders:t,getProviderColor:n,providerGroupHeights:r={},providerRefs:i,onToggleCollapse:a,onContextMenu:o,label:s,expandLabel:c,collapseLabel:l}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.providers}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),o(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:s}),e.map(({provider:e,sources:s})=>{let u=t.has(e),d=u?void 0:r[e];return(0,B.jsx)(`div`,{className:K.providerGroup,style:d?{height:d}:void 0,children:(0,B.jsxs)(`div`,{ref:t=>{t?i.current?.set(e,t):i.current?.delete(e)},className:`${K.item} ${K.providerItem}`,style:{borderLeftColor:n(e)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),o(t,`provider`,e)},children:[(0,B.jsx)(`button`,{type:`button`,className:K.collapseBtn,onClick:()=>a(e),"aria-label":u?c:l,title:u?c:l,children:(0,B.jsx)(`span`,{className:u?K.chevronRight:K.chevronDown})}),(0,B.jsx)(`span`,{className:K.providerLabel,style:{color:n(e)},children:e}),(0,B.jsx)(`span`,{className:K.itemCount,children:s.length})]})},e)})]})}function ax({providerNodes:e,collapsedProviders:t,sourceRefs:n,getProviderColor:r,selectedSourceId:i,onSelectSource:a,draggedSource:o,dropTargetSource:s,draggable:c,onDragStart:l,onDragEnd:u,onDragOver:d,onDragLeave:f,onDrop:p,onContextMenu:m,label:h}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.sources}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),m(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:h}),e.flatMap(({provider:e,sources:h})=>t.has(e)?[]:h.map(e=>(0,B.jsxs)(`div`,{ref:t=>{t?n.current?.set(e.id,t):n.current?.delete(e.id)},className:`${K.item} ${K.sourceItem} ${o?.id===e.id?K.dragging:``} ${s===e.id?K.dropTarget:``} ${i===e.id?K.selected:``}`,onClick:()=>a?.(e),draggable:c,onDragStart:t=>l(t,e),onDragEnd:u,onDragOver:t=>d(t,e),onDragLeave:f,onDrop:t=>p(t,e),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),m(t,`source`,e.id)},children:[(0,B.jsx)(`span`,{className:K.itemName,title:e.name,children:e.name}),(0,B.jsx)(`div`,{className:K.dot,style:{background:r(e.provider),opacity:e.aliases.length>0?1:.3}})]},e.id)))]})}function ox({aliasNodes:e,aliasRefs:t,dropTargetAlias:n,draggedAlias:r,selectedAlias:i,onSelectAlias:a,draggable:o,onDragStart:s,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,onContextMenu:f,label:p}){return(0,B.jsxs)(`div`,{className:`${K.column} ${K.aliases}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),f(e,`background`)},children:[(0,B.jsx)(`div`,{className:K.columnHeader,children:p}),e.map(e=>(0,B.jsxs)(`div`,{ref:n=>{n?t.current?.set(e.id,n):t.current?.delete(e.id)},className:`${K.item} ${K.aliasItem} ${n===e.alias?K.dropTarget:``} ${r===e.alias?K.dragging:``} ${i===e.alias?K.selected:``}`,onClick:()=>a?.(e.alias),draggable:o,onDragStart:t=>s(t,e.alias),onDragEnd:c,onDragOver:t=>l(t,e.alias),onDragLeave:u,onDrop:t=>d(t,e.alias),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),f(t,`alias`,e.alias)},children:[(0,B.jsx)(`div`,{className:`${K.dot} ${K.dotLeft}`}),(0,B.jsx)(`span`,{className:K.itemName,title:e.alias,children:e.alias}),(0,B.jsx)(`span`,{className:K.itemCount,children:e.sources.length})]},e.id))]})}function sx({contextMenu:e,t,onRequestClose:n,onAddAlias:r,onRenameAlias:i,onOpenAliasSettings:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,onOpenSourceSettings:l}){let u=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{u.current?.contains(e.target)||n()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,n]),!e)return null;let{type:d,data:f}=e;return(0,S.createPortal)((0,B.jsxs)(`div`,{ref:u,className:K.contextMenu,style:{top:e.y,left:e.x},onClick:e=>e.stopPropagation(),children:[d===`background`&&(0,B.jsx)(`div`,{className:K.menuItem,onClick:r,children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_add_alias`)})}),d===`alias`&&(f?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>i(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_rename`)})}),(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>a(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}),(0,B.jsx)(`div`,{className:K.menuDivider}),(0,B.jsx)(`div`,{className:`${K.menuItem} ${K.danger}`,onClick:()=>o(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_delete_alias`)})})]}):null),d===`provider`&&(f?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>s(f),children:(0,B.jsx)(`span`,{children:t(`common.edit`)})}),(0,B.jsx)(`div`,{className:K.menuDivider}),(0,B.jsx)(`div`,{className:`${K.menuItem} ${K.danger}`,onClick:()=>c(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.delete`)})})]}):null),d===`source`&&(f?(0,B.jsx)(`div`,{className:K.menuItem,onClick:()=>l(f),children:(0,B.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}):null)]}),document.body)}function cx({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,B.jsx)(um,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_rename_alias_title`),width:400,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,B.jsx)(V,{onClick:o,children:t(`oauth_model_alias.diagram_rename_btn`)})]}),children:(0,B.jsx)(Xo,{label:t(`oauth_model_alias.diagram_rename_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_rename_placeholder`),autoFocus:!0})})}function lx({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,B.jsx)(um,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_add_alias_title`),width:400,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,B.jsx)(V,{onClick:o,children:t(`oauth_model_alias.diagram_add_btn`)})]}),children:(0,B.jsx)(Xo,{label:t(`oauth_model_alias.diagram_add_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_add_placeholder`),autoFocus:!0})})}function ux({open:e,t,alias:n,aliasNodes:r,onClose:i,onToggleFork:a,onUnlink:o}){return(0,B.jsx)(um,{open:e,onClose:i,title:t(`oauth_model_alias.diagram_settings_title`,{alias:n??``}),width:720,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:i,children:t(`common.close`)}),children:n?(()=>{let e=r.find(e=>e.alias===n);return!e||e.sources.length===0?(0,B.jsx)(`div`,{className:K.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,B.jsx)(`div`,{className:K.settingsList,children:e.sources.map(e=>{let r=e.aliases.find(e=>e.alias===n)?.fork===!0;return(0,B.jsxs)(`div`,{className:K.settingsRow,children:[(0,B.jsxs)(`div`,{className:K.settingsNames,children:[(0,B.jsx)(`span`,{className:K.settingsSource,children:e.name}),(0,B.jsx)(`span`,{className:K.settingsArrow,children:`→`}),(0,B.jsx)(`span`,{className:K.settingsAlias,children:n})]}),(0,B.jsxs)(`div`,{className:K.settingsActions,children:[(0,B.jsx)(`span`,{className:K.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(Sg,{checked:r,onChange:t=>a(e.provider,e.name,n,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(`button`,{type:`button`,className:K.settingsDelete,onClick:()=>o(e.provider,e.name,n),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),children:(0,B.jsx)(us,{size:14})})]})]},e.id)})})})():null})}function dx({open:e,t,source:n,onClose:r,onToggleFork:i,onUnlink:a}){return(0,B.jsx)(um,{open:e,onClose:r,title:t(`oauth_model_alias.diagram_settings_source_title`),width:720,footer:(0,B.jsx)(V,{variant:`secondary`,onClick:r,children:t(`common.close`)}),children:n?n.aliases.length===0?(0,B.jsx)(`div`,{className:K.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,B.jsx)(`div`,{className:K.settingsList,children:n.aliases.map(e=>(0,B.jsxs)(`div`,{className:K.settingsRow,children:[(0,B.jsxs)(`div`,{className:K.settingsNames,children:[(0,B.jsx)(`span`,{className:K.settingsSource,children:n.name}),(0,B.jsx)(`span`,{className:K.settingsArrow,children:`→`}),(0,B.jsx)(`span`,{className:K.settingsAlias,children:e.alias})]}),(0,B.jsxs)(`div`,{className:K.settingsActions,children:[(0,B.jsx)(`span`,{className:K.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(Sg,{checked:e.fork===!0,onChange:t=>i(n.provider,n.name,e.alias,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,B.jsx)(`button`,{type:`button`,className:K.settingsDelete,onClick:()=>a(n.provider,n.name,e.alias),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),children:(0,B.jsx)(us,{size:14})})]})]},`${n.id}-${e.alias}`))}):null})}var fx=[`#8b8680`,`#10b981`,`#f59e0b`,`#c65746`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`];function px(e){return fx[e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%fx.length]}var mx=(0,y.forwardRef)(function({modelAlias:e,allProviderModels:t={},onUpdate:n,onDeleteLink:r,onToggleFork:i,onRenameAlias:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,className:l},u){let{t:d}=qo(),f=wc(e=>e.resolvedTheme)===`dark`,p=(0,y.useMemo)(()=>typeof window>`u`||window.matchMedia===void 0?!1:window.matchMedia(`(any-pointer: coarse)`).matches&&!window.matchMedia(`(any-pointer: fine)`).matches,[]),m=(0,y.useRef)(null),[h,g]=(0,y.useState)([]),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)(null),[P,ee]=(0,y.useState)(new Set),[F,I]=(0,y.useState)({}),[L,R]=(0,y.useState)(null),[te,ne]=(0,y.useState)(``),[re,z]=(0,y.useState)(``),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(``),[ce,le]=(0,y.useState)(``),[ue,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(null),{aliasNodes:me,providerNodes:he}=(0,y.useMemo)(()=>{let n=new Map,r=new Set;Object.entries(e).forEach(([e,t])=>{(t??[]).forEach(t=>{let i=(t?.name||``).trim(),a=(t?.alias||``).trim();if(!i||!a)return;let o=`${e.toLowerCase()}::${i.toLowerCase()}`;n.has(o)||n.set(o,{provider:e,name:i,aliases:new Map}),n.get(o).aliases.set(a,t?.fork===!0),r.add(a)})}),Object.entries(t).forEach(([e,t])=>{(t??[]).forEach(t=>{let r=(t.id||``).trim();if(!r)return;let i=`${e.toLowerCase()}::${r.toLowerCase()}`;n.has(i)||n.set(i,{provider:e,name:r,aliases:new Map})})});let i=Array.from(n.entries()).map(([e,t])=>({id:e,provider:t.provider,name:t.name,aliases:Array.from(t.aliases.entries()).map(([e,t])=>({alias:e,fork:t}))})).sort((e,t)=>e.provider===t.provider?e.name.localeCompare(t.name):e.provider.localeCompare(t.provider));A.forEach(e=>r.add(e));let a=Array.from(r).map(e=>({id:e,alias:e,sources:i.filter(t=>t.aliases.some(t=>t.alias===e))})).sort((e,t)=>t.sources.length===e.sources.length?e.alias.localeCompare(t.alias):t.sources.length-e.sources.length),o=new Map;return i.forEach(e=>{o.has(e.provider)||o.set(e.provider,[]),o.get(e.provider).push(e)}),{aliasNodes:a,providerNodes:Array.from(o.entries()).map(([e,t])=>({provider:e,sources:t})).sort((e,t)=>e.provider.localeCompare(t.provider))}},[e,t,A]),ge=(0,y.useRef)(new Map),_e=(0,y.useRef)(new Map),ve=(0,y.useRef)(new Map),ye=e=>{ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},be=(0,y.useCallback)(()=>{if(!m.current)return;let e=m.current.getBoundingClientRect(),t=[],n={},r=(e,t,n,r)=>`M ${e} ${t} C ${e+(n-e)*.5} ${t}, ${n-(n-e)*.5} ${r}, ${n} ${r}`;he.forEach(({provider:i,sources:a})=>{if(P.has(i))return;if(a.length>0){let e=_e.current.get(a[0].id),t=_e.current.get(a[a.length-1].id);if(e&&t){let r=Math.max(0,Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top));r>0&&(n[i]=r)}}let o=ge.current.get(i);if(!o)return;let s=o.getBoundingClientRect(),c=s.right-e.left,l=s.top+s.height/2-e.top,u=px(i);a.forEach(n=>{let a=_e.current.get(n.id);if(!a)return;let o=a.getBoundingClientRect(),s=o.left-e.left,d=o.top+o.height/2-e.top;t.push({id:`provider-${i}-source-${n.id}`,path:r(c,l,s,d),color:u})}),a.forEach(n=>{!n.aliases||n.aliases.length===0||n.aliases.forEach(i=>{let a=_e.current.get(n.id),o=ve.current.get(i.alias);if(!a||!o)return;let s=a.getBoundingClientRect(),c=o.getBoundingClientRect(),l=s.right-e.left,d=s.top+s.height/2-e.top,f=c.left-e.left,p=c.top+c.height/2-e.top;t.push({id:`${n.id}-${i.alias}`,path:r(l,d,f,p),color:u})})})}),g(t),I(e=>{let t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return n;for(let t of r)if(!(t in e)||e[t]!==n[t])return n;return e})},[he,P]);(0,y.useImperativeHandle)(u,()=>({collapseAll:()=>ee(new Set(he.map(e=>e.provider))),refreshLayout:()=>be()}),[he,be]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return window.addEventListener(`resize`,be),()=>{cancelAnimationFrame(e),window.removeEventListener(`resize`,be)}},[be,me]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return()=>cancelAnimationFrame(e)},[F,be]),(0,y.useEffect)(()=>{if(!m.current||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>be());return e.observe(m.current),()=>e.disconnect()},[be]);let xe=(e,t)=>{D(null),k(null),v(t),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`link`},Se=(e,t)=>{!_||_.aliases.some(e=>e.alias===t)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,C(t))},Ce=()=>{C(null)},we=(e,t)=>{e.preventDefault(),_&&!_.aliases.some(e=>e.alias===t)&&n&&n(_.provider,_.name,t),v(null),C(null)},Te=(e,t)=>{D(null),k(null),x(t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`link`},Ee=(e,t)=>{!b||t.aliases.some(e=>e.alias===b)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,T(t.id))},De=()=>{T(null)},Oe=(e,t)=>{e.preventDefault(),b&&!t.aliases.some(e=>e.alias===b)&&n&&n(t.provider,t.name,b),x(null),T(null)},ke=(e,t,n)=>{e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY,type:t,data:n})},Ae=()=>N(null),je=(0,y.useCallback)(e=>{if(!e)return null;for(let{sources:t}of he){let n=t.find(t=>t.id===e);if(n)return n}return null},[he]),Me=e=>{if(n){if(E===e.id){D(null);return}if(O){n(e.provider,e.name,O),D(null),k(null);return}D(e.id),k(null)}},Ne=e=>{if(n){if(O===e){k(null);return}if(E){let t=je(E);t&&n(t.provider,t.name,e),D(null),k(null);return}k(e),D(null)}},Pe=(e,t,n)=>{r&&r(e,t,n)},Fe=(e,t,n,r)=>{i&&i(e,t,n,r)};return(0,B.jsxs)(`div`,{className:[K.scrollContainer,l].filter(Boolean).join(` `),children:[p&&n&&(0,B.jsx)(`div`,{className:K.tapHint,children:d(`oauth_model_alias.diagram_tap_hint`)}),(0,B.jsxs)(`div`,{className:K.container,ref:m,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),ke(e,`background`)},children:[(0,B.jsx)(`svg`,{className:K.connections,children:h.map(e=>(0,B.jsx)(`path`,{d:e.path,stroke:e.color,strokeOpacity:f?.4:.3},e.id))}),(0,B.jsx)(ix,{providerNodes:he,collapsedProviders:P,getProviderColor:px,providerGroupHeights:F,providerRefs:ge,onToggleCollapse:ye,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_providers`),expandLabel:d(`oauth_model_alias.diagram_expand`),collapseLabel:d(`oauth_model_alias.diagram_collapse`)}),(0,B.jsx)(ax,{providerNodes:he,collapsedProviders:P,sourceRefs:_e,getProviderColor:px,selectedSourceId:p?E:null,onSelectSource:p?Me:void 0,draggedSource:_,dropTargetSource:w,draggable:!!n,onDragStart:xe,onDragEnd:()=>{v(null),C(null)},onDragOver:Ee,onDragLeave:De,onDrop:Oe,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_source_models`)}),(0,B.jsx)(ox,{aliasNodes:me,aliasRefs:ve,dropTargetAlias:S,draggedAlias:b,selectedAlias:p?O:null,onSelectAlias:p?Ne:void 0,draggable:!!n,onDragStart:Te,onDragEnd:()=>{x(null),T(null)},onDragOver:Se,onDragLeave:Ce,onDrop:we,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_aliases`)})]}),(0,B.jsx)(sx,{contextMenu:M,t:d,onRequestClose:()=>N(null),onAddAlias:()=>{Ae(),ae(!0),se(``),le(``)},onRenameAlias:e=>{Ae(),R({oldAlias:e}),ne(e),z(``)},onOpenAliasSettings:e=>{N(null),de(e)},onDeleteAlias:e=>{Ae();let t=me.find(t=>t.alias===e);t&&(t.sources.length===0?j(t=>t.filter(t=>t!==e)):o&&o(e))},onEditProvider:e=>{N(null),s?.(e)},onDeleteProvider:e=>{N(null),c?.(e)},onOpenSourceSettings:e=>{N(null),pe(e)}}),(0,B.jsx)(cx,{open:!!L,t:d,value:te,error:re,onChange:e=>{ne(e),z(``)},onClose:()=>R(null),onSubmit:()=>{let e=te.trim();if(!e){z(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(e===L?.oldAlias){R(null);return}if(me.some(t=>t.alias===e)){z(d(`oauth_model_alias.diagram_alias_exists`));return}a&&L&&a(L.oldAlias,e),A.includes(L?.oldAlias??``)&&j(t=>t.map(t=>t===L?.oldAlias?e:t)),R(null)}}),(0,B.jsx)(lx,{open:ie,t:d,value:oe,error:ce,onChange:e=>{se(e),le(``)},onClose:()=>ae(!1),onSubmit:()=>{let e=oe.trim();if(!e){le(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(me.some(t=>t.alias===e)){le(d(`oauth_model_alias.diagram_alias_exists`));return}j(t=>[...t,e]),ae(!1)}}),(0,B.jsx)(ux,{open:!!ue,t:d,alias:ue,aliasNodes:me,onClose:()=>de(null),onToggleFork:Fe,onUnlink:Pe}),(0,B.jsx)(dx,{open:!!fe,t:d,source:je(fe),onClose:()=>pe(null),onToggleFork:Fe,onUnlink:Pe})]})});function hx(e){let{t}=qo(),n=(0,y.useRef)(null),{disableControls:r,viewMode:i,onViewModeChange:a,onAdd:o,onEditProvider:s,onDeleteProvider:c,modelAliasError:l,modelAlias:u,allProviderModels:d,onUpdate:f,onDeleteLink:p,onToggleFork:m,onRenameAlias:h,onDeleteAlias:g}=e;return(0,B.jsx)(hg,{title:t(`oauth_model_alias.title`),extra:(0,B.jsxs)(`div`,{className:G.cardExtraButtons,children:[(0,B.jsxs)(`div`,{className:G.viewModeSwitch,children:[(0,B.jsx)(V,{variant:i===`list`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`list`),disabled:r||l===`unsupported`,children:t(`oauth_model_alias.view_mode_list`)}),(0,B.jsx)(V,{variant:i===`diagram`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`diagram`),disabled:r||l===`unsupported`,children:t(`oauth_model_alias.view_mode_diagram`)})]}),(0,B.jsx)(V,{size:`sm`,onClick:o,disabled:r||l===`unsupported`,children:t(`oauth_model_alias.add`)})]}),children:l===`unsupported`?(0,B.jsx)(wg,{title:t(`oauth_model_alias.upgrade_required_title`),description:t(`oauth_model_alias.upgrade_required_desc`)}):i===`diagram`?Object.keys(u).length===0?(0,B.jsx)(wg,{title:t(`oauth_model_alias.list_empty_all`)}):(0,B.jsxs)(`div`,{className:G.aliasChartSection,children:[(0,B.jsxs)(`div`,{className:G.aliasChartHeader,children:[(0,B.jsx)(`h4`,{className:G.aliasChartTitle,children:t(`oauth_model_alias.chart_title`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>n.current?.collapseAll(),disabled:r||l===`unsupported`,title:t(`oauth_model_alias.diagram_collapse`),"aria-label":t(`oauth_model_alias.diagram_collapse`),children:(0,B.jsx)(ds,{size:16})})]}),(0,B.jsx)(mx,{ref:n,modelAlias:u,allProviderModels:d,onUpdate:f,onDeleteLink:p,onToggleFork:m,onRenameAlias:h,onDeleteAlias:g,onEditProvider:s,onDeleteProvider:c,className:G.aliasChart})]}):Object.keys(u).length===0?(0,B.jsx)(wg,{title:t(`oauth_model_alias.list_empty_all`)}):(0,B.jsx)(`div`,{className:G.excludedList,children:Object.entries(u).map(([e,n])=>(0,B.jsxs)(`div`,{className:G.excludedItem,children:[(0,B.jsxs)(`div`,{className:G.excludedInfo,children:[(0,B.jsx)(`div`,{className:G.excludedProvider,children:e}),(0,B.jsx)(`div`,{className:G.excludedModels,children:n?.length?t(`oauth_model_alias.model_count`,{count:n.length}):t(`oauth_model_alias.no_models`)})]}),(0,B.jsxs)(`div`,{className:G.excludedActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>s(e),children:t(`common.edit`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>c(e),children:t(`oauth_model_alias.delete`)})]})]},e))})})}function gx({filename:e,blob:t,revokeDelayMs:n=1e3}){let r=window.URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=e,i.rel=`noopener`,i.style.display=`none`,document.body.appendChild(i),i.click(),window.setTimeout(()=>{window.URL.revokeObjectURL(r),i.remove()},n)}function _x(){let{t:e}=qo(),{showNotification:t,showConfirmation:n}=hc(),[r,i]=(0,y.useState)([]),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)({}),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(new Set),S=(0,y.useRef)(null),C=(0,y.useRef)(!1),w=b.size,T=(0,y.useCallback)(e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),E=(0,y.useCallback)(e=>{let t=e.filter(e=>!Kv(e)).map(e=>e.name);t.length!==0&&x(e=>{let n=new Set(e);return t.forEach(e=>n.add(e)),n})},[]),D=(0,y.useCallback)(e=>{let t=e.filter(e=>!Kv(e)).map(e=>e.name);t.length!==0&&x(e=>{let n=new Set(e);return t.forEach(e=>{n.has(e)?n.delete(e):n.add(e)}),n})},[]),O=(0,y.useCallback)(()=>{x(new Set)},[]),k=(0,y.useCallback)(e=>{let t=Array.from(new Set(e.map(e=>e.trim()).filter(Boolean)));if(t.length===0)return;let n=new Set(t);i(e=>e.filter(e=>!n.has(e.name))),x(e=>{if(e.size===0)return e;let t=!1,r=new Set;return e.forEach(e=>{n.has(e)?t=!0:r.add(e)}),t?r:e})},[]);(0,y.useEffect)(()=>{if(b.size===0)return;let e=new Set(r.map(e=>e.name));x(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[r,b.size]);let A=(0,y.useCallback)(async()=>{o(!0),c(``);try{i((await ag.list())?.files||[])}catch(t){c(t instanceof Error?t.message:e(`notification.refresh_failed`))}finally{o(!1)}},[e]),j=(0,y.useCallback)(()=>{S.current?.click()},[]),M=(0,y.useCallback)(async n=>{let r=n.target.files;if(!r||r.length===0)return;let i=Array.from(r),a=[],o=[],s=[];if(i.forEach(e=>{if(!e.name.endsWith(`.json`)){o.push(e.name);return}if(e.size>10485760){s.push(e.name);return}a.push(e)}),o.length>0&&t(e(`auth_files.upload_error_json`),`error`),s.length>0&&t(e(`auth_files.upload_error_size`,{maxSize:vg(sc)}),`error`),a.length===0){n.target.value=``;return}u(!0);try{let n=await ag.uploadFiles(a),r=n.uploaded;if(r>0){let i=a.length>1?` (${r}/${a.length})`:``;t(`${e(`auth_files.upload_success`)}${i}`,n.failed.length?`warning`:`success`),await A()}if(n.failed.length>0){let r=n.failed.map(e=>`${e.name}: ${e.error}`).join(`; `);t(`${e(`notification.upload_failed`)}: ${r}`,`error`)}}catch(n){let r=n instanceof Error?n.message:`Unknown error`;t(`${e(`notification.upload_failed`)}: ${r}`,`error`)}finally{u(!1),n.target.value=``}},[A,t,e]),N=(0,y.useCallback)(r=>{n({title:e(`auth_files.delete_title`,{defaultValue:`Delete File`}),message:`${e(`auth_files.delete_confirm`)} "${r}" ?`,variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{f(r);try{let n=await ag.deleteFile(r);t(e(`auth_files.delete_success`),`success`),k(n.files.length>0?n.files:[r])}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}finally{f(null)}}})},[k,n,t,e]),P=(0,y.useCallback)(a=>{let{filter:o,problemOnly:s,disabledOnly:c,onResetFilterToAll:l,onResetProblemOnly:u,onResetDisabledOnly:d}=a,f=o!==`all`,p=s===!0,h=c===!0,g=f?Hv(e,o):e(`auth_files.filter_all`),_=e(`auth_files.delete_all_confirm`);h?_=e(`auth_files.delete_filtered_result_confirm`):p?_=f?e(`auth_files.delete_problem_filtered_confirm`,{type:g}):e(`auth_files.delete_problem_confirm`):f&&(_=e(`auth_files.delete_filtered_confirm`,{type:g})),n({title:e(`auth_files.delete_all_title`,{defaultValue:`Delete All Files`}),message:_,variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{m(!0);try{if(!f&&!p&&!h)await ag.deleteAll(),t(e(`auth_files.delete_all_success`),`success`),i(e=>e.filter(e=>Kv(e))),O();else{let n=r.filter(e=>!(Kv(e)||f&&e.type!==o||p&&!Vv(e)||h&&e.disabled!==!0));if(n.length===0){let n=e(`auth_files.delete_filtered_none`,{type:g});h?n=e(`auth_files.delete_filtered_result_none`):p&&(n=f?e(`auth_files.delete_problem_filtered_none`,{type:g}):e(`auth_files.delete_problem_none`)),t(n,`info`),m(!1);return}let i=await ag.deleteFiles(n.map(e=>e.name)),a=i.deleted,s=i.failed.length;k(i.files),s===0&&h?t(e(`auth_files.delete_filtered_result_success`,{count:a}),`success`):s===0&&p?t(f?e(`auth_files.delete_problem_filtered_success`,{count:a,type:g}):e(`auth_files.delete_problem_success`,{count:a}),`success`):s===0?t(e(`auth_files.delete_filtered_success`,{count:a,type:g}),`success`):t(h?e(`auth_files.delete_filtered_result_partial`,{success:a,failed:s}):p?f?e(`auth_files.delete_problem_filtered_partial`,{success:a,failed:s,type:g}):e(`auth_files.delete_problem_partial`,{success:a,failed:s}):e(`auth_files.delete_filtered_partial`,{success:a,failed:s,type:g}),`warning`),f&&l(),p&&u(),h&&d()}}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}finally{m(!1)}}})},[k,O,r,n,t,e]),ee=(0,y.useCallback)(async n=>{try{let r=await U.getRaw(`/auth-files/download?name=${encodeURIComponent(n)}`,{responseType:`blob`});gx({filename:n,blob:new Blob([r.data])}),t(e(`auth_files.download_success`),`success`)}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.download_failed`)}: ${r}`,`error`)}},[t,e]),F=(0,y.useCallback)(async(n,r)=>{let a=n.name,o=!r,s=n.disabled===!0;g(e=>({...e,[a]:!0})),i(e=>e.map(e=>e.name===a?{...e,disabled:o}:e));try{let n=await ag.setStatus(a,o);i(e=>e.map(e=>e.name===a?{...e,disabled:n.disabled}:e)),t(e(r?`auth_files.status_enabled_success`:`auth_files.status_disabled_success`,{name:a}),`success`)}catch(n){let r=n instanceof Error?n.message:``;i(e=>e.map(e=>e.name===a?{...e,disabled:s}:e)),t(`${e(`notification.update_failed`)}: ${r}`,`error`)}finally{g(e=>{if(!e[a])return e;let t={...e};return delete t[a],t})}},[t,e]),I=(0,y.useCallback)(async(n,a)=>{if(C.current)return;let o=Array.from(new Set(n));if(o.length===0||o.some(e=>h[e]===!0))return;let s=new Map(r.filter(e=>o.includes(e.name)).map(e=>[e.name,e.disabled===!0])),c=new Set(s.keys()),l=Array.from(c);if(l.length===0)return;let u=!a;C.current=!0,v(!0),g(e=>{let t={...e};return l.forEach(e=>{t[e]=!0}),t}),i(e=>e.map(e=>c.has(e.name)?{...e,disabled:u}:e));try{let n=await Promise.allSettled(l.map(e=>ag.setStatus(e,u))),r=0,a=0,o=new Set,c=new Map;n.forEach((e,t)=>{let n=l[t];e.status===`fulfilled`?(r++,c.set(n,e.value.disabled)):(a++,o.add(n))}),i(e=>e.map(e=>o.has(e.name)?{...e,disabled:s.get(e.name)===!0}:c.has(e.name)?{...e,disabled:c.get(e.name)}:e)),a===0?t(e(`auth_files.batch_status_success`,{count:r}),`success`):t(e(`auth_files.batch_status_partial`,{success:r,failed:a}),`warning`),O()}finally{C.current=!1,v(!1),g(e=>{let t={...e};return l.forEach(e=>{delete t[e]}),t})}},[O,r,t,h,e]);return{files:r,selectedFiles:b,selectionCount:w,loading:a,error:s,uploading:l,deleting:d,deletingAll:p,statusUpdating:h,batchStatusUpdating:_,fileInputRef:S,loadFiles:A,handleUploadClick:j,handleFileChange:M,handleDelete:N,handleDeleteAll:P,handleDownload:ee,handleStatusToggle:F,toggleSelect:T,selectAllVisible:E,invertVisibleSelection:D,deselectAll:O,batchDownload:(0,y.useCallback)(async n=>{let r=Array.from(new Set(n));if(r.length===0)return;let i=0,a=0;for(let e of r)try{let t=await U.getRaw(`/auth-files/download?name=${encodeURIComponent(e)}`,{responseType:`blob`});gx({filename:e,blob:new Blob([t.data])}),i++}catch{a++}a===0?t(e(`auth_files.batch_download_success`,{count:i}),`success`):t(e(`auth_files.batch_download_partial`,{success:i,failed:a}),`warning`)},[t,e]),batchSetStatus:I,batchDelete:(0,y.useCallback)(r=>{let i=Array.from(new Set(r));i.length!==0&&n({title:e(`auth_files.batch_delete_title`),message:e(`auth_files.batch_delete_confirm`,{count:i.length}),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{let n=await ag.deleteFiles(i);k(n.files),n.failed.length===0?t(`${e(`auth_files.delete_all_success`)} (${n.deleted})`,`success`):t(e(`auth_files.delete_filtered_partial`,{success:n.deleted,failed:n.failed.length,type:e(`auth_files.filter_all`)}),`warning`)}catch(n){let r=n instanceof Error?n.message:``;t(`${e(`notification.delete_failed`)}: ${r}`,`error`)}}})},[k,n,t,e])}}function vx(){let{t:e}=qo(),t=hc(e=>e.showNotification),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),m=(0,y.useRef)(new Map),h=(0,y.useCallback)(()=>{r(!1)},[]);return{modelsModalOpen:n,modelsLoading:i,modelsList:o,modelsFileName:c,modelsFileType:u,modelsError:f,showModels:(0,y.useCallback)(async n=>{l(n.name),d(n.type||``),s([]),p(null),r(!0);let i=m.current.get(n.name);if(i){s(i),a(!1);return}a(!0);try{let e=await ag.getModelsForAuthFile(n.name);m.current.set(n.name,e),s(e)}catch(n){let r=n instanceof Error?n.message:``;r.includes(`404`)||r.includes(`not found`)||r.includes(`Not Found`)?p(`unsupported`):t(`${e(`notification.load_failed`)}: ${r}`,`error`)}finally{a(!1)}},[t,e]),closeModelsModal:h}}function yx(e){let{viewMode:t,files:n}=e,{t:r}=qo(),{showNotification:i,showConfirmation:a}=hc(),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)({}),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)({}),g=(0,y.useRef)(!1),_=(0,y.useRef)(!1),v=(0,y.useMemo)(()=>{let e=new Set;return Object.keys(u).forEach(t=>{let n=t.trim().toLowerCase();n&&e.add(n)}),n.forEach(t=>{if(typeof t.type==`string`){let n=t.type.trim().toLowerCase();n&&e.add(n)}if(typeof t.provider==`string`){let n=t.provider.trim().toLowerCase();n&&e.add(n)}}),Array.from(e)},[n,u]);(0,y.useEffect)(()=>{if(t!==`diagram`)return;let e=!1;return(async()=>{if(v.length===0){e||h({});return}let t=await Promise.all(v.map(async e=>{try{return{provider:e,models:await ag.getModelDefinitions(e)}}catch{return{provider:e,models:[]}}}));if(e)return;let n={};t.forEach(({provider:e,models:t})=>{t.length>0&&(n[e]=t)}),h(n)})(),()=>{e=!0}},[v,t]);let b=(0,y.useCallback)(async()=>{try{let e=await ag.getOauthExcludedModels();g.current=!1,s(e||{}),l(null)}catch(e){if((typeof e==`object`&&e&&`status`in e?e.status:void 0)===404){s({}),l(`unsupported`),g.current||(g.current=!0,i(r(`oauth_excluded.upgrade_required`),`warning`));return}}},[i,r]),x=(0,y.useCallback)(async()=>{try{let e=await ag.getOauthModelAlias();_.current=!1,d(e||{}),p(null)}catch(e){if((typeof e==`object`&&e&&`status`in e?e.status:void 0)===404){d({}),p(`unsupported`),_.current||(_.current=!0,i(r(`oauth_model_alias.upgrade_required`),`warning`));return}}},[i,r]);return{excluded:o,excludedError:c,modelAlias:u,modelAliasError:f,allProviderModels:m,providerList:v,loadExcluded:b,loadModelAlias:x,deleteExcluded:(0,y.useCallback)(e=>{let t=e.trim()||e;a({title:r(`oauth_excluded.delete_title`,{defaultValue:`Delete Exclusion`}),message:r(`oauth_excluded.delete_confirm`,{provider:t}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let t=zv(e);if(!t){i(r(`oauth_excluded.provider_required`),`error`);return}try{await ag.deleteOauthExcludedEntry(t),await b(),i(r(`oauth_excluded.delete_success`),`success`)}catch(e){try{let e=await ag.getOauthExcludedModels(),n={};Object.entries(e).forEach(([e,r])=>{zv(e)!==t&&(n[e]=r)}),await ag.replaceOauthExcludedModels(n),await b(),i(r(`oauth_excluded.delete_success`),`success`)}catch(t){let n=t instanceof Error?t.message:e instanceof Error?e.message:``;i(`${r(`oauth_excluded.delete_failed`)}: ${n}`,`error`)}}}})},[b,a,i,r]),deleteModelAlias:(0,y.useCallback)(e=>{a({title:r(`oauth_model_alias.delete_title`,{defaultValue:`Delete Mappings`}),message:r(`oauth_model_alias.delete_confirm`,{provider:e}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{try{await ag.deleteOauthModelAlias(e),await x(),i(r(`oauth_model_alias.delete_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.delete_failed`)}: ${t}`,`error`)}}})},[x,a,i,r]),handleMappingUpdate:(0,y.useCallback)(async(e,t,n)=>{if(!e||!t||!n)return;let a=zv(e);if(!a)return;let o=Object.keys(u).find(e=>zv(e)===a),s=(o?u[o]:null)??[],c=t.trim(),l=n.trim(),d=c.toLowerCase(),f=l.toLowerCase();if(s.some(e=>(e.name??``).trim().toLowerCase()===d&&(e.alias??``).trim().toLowerCase()===f))return;let p=[...s,{name:c,alias:l,fork:!0}];try{await ag.saveOauthModelAlias(a,p),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[x,u,i,r]),handleDeleteLink:(0,y.useCallback)((e,t,n)=>{let o=t.trim(),s=n.trim();!e||!o||!s||a({title:r(`oauth_model_alias.delete_link_title`,{defaultValue:`Unlink mapping`}),message:(0,B.jsx)(Ho,{i18nKey:`oauth_model_alias.delete_link_confirm`,values:{provider:e,sourceModel:o,alias:s},components:{code:(0,B.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let t=zv(e),n=Object.keys(u).find(e=>zv(e)===t),a=(n?u[n]:null)??[],c=o.toLowerCase(),l=s.toLowerCase(),d=a.filter(e=>(e.name??``).trim().toLowerCase()!==c||(e.alias??``).trim().toLowerCase()!==l);if(d.length!==a.length)try{d.length===0?await ag.deleteOauthModelAlias(t):await ag.saveOauthModelAlias(t,d),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}}})},[x,u,a,i,r]),handleToggleFork:(0,y.useCallback)(async(e,t,n,a)=>{let o=zv(e);if(!o)return;let s=Object.keys(u).find(e=>zv(e)===o),c=(s?u[s]:null)??[],l=t.trim().toLowerCase(),d=n.trim().toLowerCase(),f=!1,p=c.map(e=>{let t=(e.name??``).trim().toLowerCase(),n=(e.alias??``).trim().toLowerCase();return t===l&&n===d?(f=!0,a?{...e,fork:!0}:{name:e.name,alias:e.alias}):e});if(f)try{await ag.saveOauthModelAlias(o,p),await x(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[x,u,i,r]),handleRenameAlias:(0,y.useCallback)(async(e,t)=>{let n=e.trim(),a=t.trim();if(!n||!a||n===a)return;let o=n.toLowerCase(),s=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===o));if(s.length===0)return;let c=!1,l=``;try{let e=(await Promise.allSettled(s.map(([e,t])=>{let n=t.map(e=>(e.alias??``).trim().toLowerCase()===o?{...e,alias:a}:e);return ag.saveOauthModelAlias(e,n)}))).filter(e=>e.status===`rejected`);if(e.length>0){c=!0;let t=e[0].reason;l=t instanceof Error?t.message:String(t??``)}}finally{await x()}c?i(l?`${r(`oauth_model_alias.save_failed`)}: ${l}`:r(`oauth_model_alias.save_failed`),`error`):i(r(`oauth_model_alias.save_success`),`success`)},[x,u,i,r]),handleDeleteAlias:(0,y.useCallback)(e=>{let t=e.trim();if(!t)return;let n=t.toLowerCase(),o=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===n));o.length!==0&&a({title:r(`oauth_model_alias.delete_alias_title`,{defaultValue:`Delete Alias`}),message:(0,B.jsx)(Ho,{i18nKey:`oauth_model_alias.delete_alias_confirm`,values:{alias:t},components:{code:(0,B.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{let e=!1,t=``;try{let r=(await Promise.allSettled(o.map(([e,t])=>{let r=t.filter(e=>(e.alias??``).trim().toLowerCase()!==n);return r.length===0?ag.deleteOauthModelAlias(e):ag.saveOauthModelAlias(e,r)}))).filter(e=>e.status===`rejected`);if(r.length>0){e=!0;let n=r[0].reason;t=n instanceof Error?n.message:String(n??``)}}finally{await x()}e?i(t?`${r(`oauth_model_alias.delete_failed`)}: ${t}`:r(`oauth_model_alias.delete_failed`),`error`):i(r(`oauth_model_alias.delete_success`),`success`)}})},[x,u,a,i,r])}}var bx=e=>!!e&&typeof e==`object`&&!Array.isArray(e),xx=e=>bx(e)?Object.values(e).every(e=>typeof e==`string`)?null:`auth_files.headers_invalid_value`:`auth_files.headers_invalid_object`,Sx=e=>{if(!e.trim())return{value:null,errorKey:null};let t;try{t=JSON.parse(e)}catch{return{value:null,errorKey:`auth_files.headers_invalid_json`}}let n=xx(t);return n?{value:null,errorKey:n}:{value:t,errorKey:null}},Cx=e=>typeof e==`string`?e.trim():``,wx=e=>!!(e&&Object.keys(e).length>0),Tx=e=>bx(e)?Object.entries(e).reduce((e,[t,n])=>{if(typeof n!=`string`)return e;let r=t.trim(),i=n.trim();return!r||!i||(e[r]=i),e},{}):{},Ex=(e,t)=>{let n={},r=new Set(Object.keys(t));return Object.entries(t).forEach(([t,r])=>{e[t]!==r&&(n[t]=r)}),Object.keys(e).forEach(e=>{r.has(e)||(n[e]=``)}),Object.keys(n).length>0?n:void 0},Dx=(e,t)=>{if(!t)return;let n=Tx(e.headers);Object.entries(t).forEach(([e,t])=>{let r=e.trim();if(!r)return;let i=t.trim();if(!i){delete n[r];return}n[r]=i}),Object.keys(n).length>0?e.headers=n:delete e.headers},Ox=(e,t)=>{let n=e.json??{},r={},i=Cx(n.prefix),a=e.prefix.trim();a!==i&&(r.prefix=a);let o=Cx(n.proxy_url),s=e.proxyUrl.trim();s!==o&&(r.proxy_url=s);let c=Gv(n.priority),l=e.priority.trim(),u=Gv(l);if(l?u!==void 0&&(u===0?c!==void 0&&c!==0&&(r.priority=0):u!==c&&(r.priority=u)):c!==void 0&&c!==0&&(r.priority=0),e.noteTouched){let t=Cx(n.note),i=e.note.trim();i!==t&&(r.note=i)}if(e.headersTouched){let{value:i,errorKey:a}=Sx(e.headersText);if(a)throw Error(t(a));let o=Ex(Tx(n.headers),Tx(i??{}));o&&(r.headers=o)}return r},kx=(e,t)=>{if(!e?.json)return e?.rawText??``;let n=Ox(e,t),r={...e.json};return n.prefix!==void 0&&(n.prefix?r.prefix=n.prefix:delete r.prefix),n.proxy_url!==void 0&&(n.proxy_url?r.proxy_url=n.proxy_url:delete r.proxy_url),n.priority!==void 0&&(n.priority===0?delete r.priority:r.priority=n.priority),n.note!==void 0&&(n.note?r.note=n.note:`note`in r&&delete r.note),Dx(r,n.headers),JSON.stringify(r)};function Ax(e){let{disableControls:t,loadFiles:n}=e,{t:r}=qo(),i=hc(e=>e.showNotification),[a,o]=(0,y.useState)(null),s=!!(a?.headersTouched&&a.headersError),c=a?.json&&!s?kx(a,e=>r(e)):``,l=wx(a?.json&&!s?Ox(a,e=>r(e)):null);return{prefixProxyEditor:a,prefixProxyUpdatedText:c,prefixProxyDirty:l,openPrefixProxyEditor:async e=>{let n=e.name;if(!t){if(a?.fileName===n){o(null);return}o({fileName:n,fileInfoText:JSON.stringify(e,null,2),loading:!0,saving:!1,error:null,originalText:``,rawText:``,json:null,prefix:``,proxyUrl:``,priority:``,note:``,noteTouched:!1,headersText:``,headersTouched:!1,headersError:null});try{let e=(await ag.downloadText(n)).trim(),t;try{t=JSON.parse(e)}catch{o(t=>!t||t.fileName!==n?t:{...t,loading:!1,error:r(`auth_files.prefix_proxy_invalid_json`),rawText:e,originalText:e});return}if(!t||typeof t!=`object`||Array.isArray(t)){o(t=>!t||t.fileName!==n?t:{...t,loading:!1,error:r(`auth_files.prefix_proxy_invalid_json`),rawText:e,originalText:e});return}let i={...t},a=JSON.stringify(i),s=typeof i.prefix==`string`?i.prefix:``,c=typeof i.proxy_url==`string`?i.proxy_url:``,l=Gv(i.priority),u=typeof i.note==`string`?i.note:``,d=i.headers,f=``,p=null;if(d!==void 0){f=JSON.stringify(d,null,2);let{errorKey:e}=Sx(f);p=e?r(e):null}o(e=>!e||e.fileName!==n?e:{...e,loading:!1,originalText:a,rawText:a,json:i,prefix:s,proxyUrl:c,priority:l===void 0?``:String(l),note:u,noteTouched:!1,headersText:f,headersTouched:!1,headersError:p,error:null})}catch(e){let t=e instanceof Error?e.message:r(`notification.download_failed`);o(e=>!e||e.fileName!==n?e:{...e,loading:!1,error:t,rawText:``}),i(`${r(`notification.download_failed`)}: ${t}`,`error`)}}},closePrefixProxyEditor:()=>{o(null)},handlePrefixProxyChange:(e,t)=>{o(n=>{if(!n)return n;if(e===`prefix`)return{...n,prefix:String(t)};if(e===`proxyUrl`)return{...n,proxyUrl:String(t)};if(e===`priority`)return{...n,priority:String(t)};if(e===`note`)return{...n,note:String(t),noteTouched:!0};if(e===`headersText`){let e=String(t),{errorKey:i}=Sx(e);return{...n,headersText:e,headersTouched:!0,headersError:i?r(i):null}}return n})},handlePrefixProxySave:async()=>{if(!a?.json||!l)return;let e=a.fileName,t;try{t=Ox(a,e=>r(e))}catch(e){i(e instanceof Error?e.message:`Invalid format`,`error`);return}if(wx(t)){o(t=>!t||t.fileName!==e?t:{...t,saving:!0});try{await ag.patchFields(e,t),i(r(`auth_files.prefix_proxy_saved_success`,{name:e}),`success`),await n(),o(null)}catch(t){let n=t instanceof Error?t.message:``;i(`${r(`notification.update_failed`)}: ${n}`,`error`),o(t=>!t||t.fileName!==e?t:{...t,saving:!1})}}}}}function jx(e){return(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=cp(e.auth_index??e.authIndex);n&&t.set(n,pp(lp(e.recent_requests??e.recentRequests)))}),t},[e])}var Mx=[`default`,`az`,`priority`],Nx=`authFilesPage.uiState`,Px=`authFilesPage.compactMode`,Fx=new Set(Mx),Ix=e=>typeof e==`string`&&Fx.has(e),Lx=e=>{if(!e)return null;let t=e.getItem(Nx);if(!t)return null;let n=JSON.parse(t);return n&&typeof n==`object`?n:null},Rx=()=>{if(typeof window>`u`)return null;try{return Lx(window.localStorage)??Lx(window.sessionStorage)}catch{return null}},zx=e=>{if(!(typeof window>`u`)){try{window.localStorage.setItem(Nx,JSON.stringify(e))}catch{}try{window.sessionStorage.removeItem(Nx)}catch{}}},Bx=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(Px);return e===null?null:JSON.parse(e)===!0}catch{return null}},Vx=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(Px,JSON.stringify(e))}catch{}},Hx=e=>1-(1-e)**4,Ux=e=>e**3,Wx=`translateX(-50%)`,Gx=`translateX(-50%) translateY(56px)`,Kx=9,qx=12,Jx=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Yx=e=>{if(!e.includes(`*`))return null;let t=e.split(`*`).map(Jx).join(`.*`);return new RegExp(t,`i`)};function Xx(){let{t:e}=qo(),t=hc(e=>e.showNotification),n=ep(e=>e.connectionStatus),r=wc(e=>e.resolvedTheme),i=$m(),a=i?i.status===`current`:!0,o=Qn(),[s,c]=(0,y.useState)(`all`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)({regular:Kx,compact:qx}),[C,w]=(0,y.useState)(`9`),[T,E]=(0,y.useState)(`list`),[D,O]=(0,y.useState)(`default`),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),N=(0,y.useRef)(null),P=(0,y.useRef)(null),ee=(0,y.useRef)(0),F=(0,y.useRef)(0),{files:I,selectedFiles:L,selectionCount:R,loading:te,error:ne,uploading:re,deleting:z,deletingAll:ie,statusUpdating:ae,batchStatusUpdating:oe,fileInputRef:se,loadFiles:ce,handleUploadClick:le,handleFileChange:ue,handleDelete:de,handleDeleteAll:fe,handleDownload:pe,handleStatusToggle:me,toggleSelect:he,selectAllVisible:ge,invertVisibleSelection:_e,deselectAll:ve,batchDownload:ye,batchSetStatus:be,batchDelete:xe}=_x(),Se=jx(I),{excluded:Ce,excludedError:we,modelAlias:Te,modelAliasError:Ee,allProviderModels:De,loadExcluded:Oe,loadModelAlias:ke,deleteExcluded:Ae,deleteModelAlias:je,handleMappingUpdate:Me,handleDeleteLink:Ne,handleToggleFork:Pe,handleRenameAlias:Fe,handleDeleteAlias:Ie}=yx({viewMode:T,files:I}),{modelsModalOpen:Le,modelsLoading:Re,modelsList:ze,modelsFileName:Be,modelsFileType:Ve,modelsError:He,showModels:Ue,closeModelsModal:We}=vx(),{prefixProxyEditor:Ge,prefixProxyUpdatedText:Ke,prefixProxyDirty:qe,openPrefixProxyEditor:Je,closePrefixProxyEditor:Ye,handlePrefixProxyChange:Xe,handlePrefixProxySave:Ze}=Ax({disableControls:n!==`connected`,loadFiles:ce}),Qe=n!==`connected`,$e=zv(String(s)),et=Nv.has($e)?$e:null,tt=p?b.compact:b.regular;(0,y.useEffect)(()=>{let e=Bx();typeof e==`boolean`&&m(e);let t=Rx();if(t){typeof t.filter==`string`&&t.filter.trim()&&c(t.filter),typeof t.problemOnly==`boolean`&&u(t.problemOnly),typeof t.disabledOnly==`boolean`&&f(t.disabledOnly),typeof e!=`boolean`&&typeof t.compactMode==`boolean`&&m(t.compactMode),typeof t.search==`string`&&g(t.search),typeof t.page==`number`&&Number.isFinite(t.page)&&v(Math.max(1,Math.round(t.page)));let n=typeof t.pageSize==`number`&&Number.isFinite(t.pageSize)?Lv(t.pageSize):null;x({regular:typeof t.regularPageSize==`number`&&Number.isFinite(t.regularPageSize)?Lv(t.regularPageSize):n??Kx,compact:typeof t.compactPageSize==`number`&&Number.isFinite(t.compactPageSize)?Lv(t.compactPageSize):n??qx}),Ix(t.sortMode)&&O(t.sortMode)}M(!0)},[]),(0,y.useEffect)(()=>{j&&(zx({filter:s,problemOnly:l,disabledOnly:d,compactMode:p,search:h,page:_,pageSize:tt,regularPageSize:b.regular,compactPageSize:b.compact,sortMode:D}),Vx(p))},[p,d,s,_,tt,b,l,h,D,j]),(0,y.useEffect)(()=>{w(String(tt))},[tt]);let nt=(0,y.useCallback)(e=>{x(t=>p?{...t,compact:e}:{...t,regular:e})},[p]),rt=e=>{let t=e.trim();if(!t){w(String(tt));return}let n=Number(t);if(!Number.isFinite(n)){w(String(tt));return}let r=Lv(n);nt(r),w(String(r)),v(1)},it=e=>{let t=e.currentTarget.value;w(t);let n=t.trim();if(!n)return;let r=Number(n);if(!Number.isFinite(r))return;let i=Math.round(r);i<3||i>30||(nt(i),v(1))},at=(0,y.useCallback)(e=>{!Ix(e)||e===D||(O(e),v(1),ce().catch(()=>{}))},[ce,D]),ot=(0,y.useCallback)(async()=>{await Promise.all([ce(),Oe(),ke()])},[ce,Oe,ke]);a_(ot),(0,y.useEffect)(()=>{a&&(ce(),Oe(),ke())},[a,ce,Oe,ke]),qg(()=>{ce().catch(()=>{})},a?24e4:null);let st=(0,y.useMemo)(()=>{let e=new Set([`all`]);return I.forEach(t=>{t.type&&e.add(t.type)}),Array.from(e)},[I]),ct=(0,y.useMemo)(()=>I.filter(e=>!(l&&!Vv(e)||d&&e.disabled!==!0)),[d,I,l]),lt=(0,y.useMemo)(()=>[{value:`default`,label:e(`auth_files.sort_default`)},{value:`az`,label:e(`auth_files.sort_az`)},{value:`priority`,label:e(`auth_files.sort_priority`)}],[e]),ut=(0,y.useMemo)(()=>{let e={all:ct.length};return ct.forEach(t=>{t.type&&(e[t.type]=(e[t.type]||0)+1)}),e},[ct]),dt=h.trim(),ft=(0,y.useMemo)(()=>Yx(dt),[dt]),pt=(0,y.useMemo)(()=>{let e=dt.toLowerCase();return ct.filter(t=>{let n=s===`all`||t.type===s,r=!dt||[t.name,t.type,t.provider].some(t=>{let n=(t||``).toString();return ft?ft.test(n):n.toLowerCase().includes(e)});return n&&r})},[ct,s,dt,ft]),mt=(0,y.useMemo)(()=>{let e=[...pt];return D===`default`?e.sort((e,t)=>{let n=zv(String(e.provider??e.type??`unknown`)),r=zv(String(t.provider??t.type??`unknown`)),i=n.localeCompare(r);return i===0?e.name.localeCompare(t.name):i}):D===`az`?e.sort((e,t)=>e.name.localeCompare(t.name)):D===`priority`&&e.sort((e,t)=>{let n=Gv(e.priority??e.priority)??0;return(Gv(t.priority??t.priority)??0)-n}),e},[pt,D]),ht=Math.max(1,Math.ceil(mt.length/tt)),gt=Math.min(_,ht),_t=(gt-1)*tt,vt=mt.slice(_t,_t+tt),yt=(0,y.useMemo)(()=>vt.filter(e=>!Kv(e)),[vt]),bt=(0,y.useMemo)(()=>mt.filter(e=>!Kv(e)),[mt]),xt=(0,y.useMemo)(()=>Array.from(L),[L]),St=(0,y.useMemo)(()=>xt.some(e=>ae[e]===!0),[xt,ae]),Ct=Qe||xt.length===0||oe||St,wt=(0,y.useCallback)(async n=>{let r=await Dv(n);t(r?e(`notification.link_copied`,{defaultValue:`Copied to clipboard`}):e(`notification.copy_failed`,{defaultValue:`Copy failed`}),r?`success`:`error`)},[t,e]),Tt=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-excluded${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]),Et=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-model-alias${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]);(0,y.useLayoutEffect)(()=>{if(typeof window>`u`)return;let e=N.current;if(!e){document.documentElement.style.removeProperty(`--auth-files-action-bar-height`);return}let t=()=>{let t=e.getBoundingClientRect().height;document.documentElement.style.setProperty(`--auth-files-action-bar-height`,`${t}px`)};t(),window.addEventListener(`resize`,t);let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),document.documentElement.style.removeProperty(`--auth-files-action-bar-height`)}},[k,R]),(0,y.useEffect)(()=>{F.current=R,R>0&&A(!0)},[R]),(0,y.useLayoutEffect)(()=>{if(!k)return;let e=R,t=ee.current,n=N.current;n&&(P.current?.stop(),P.current=null,e>0&&t===0?P.current=Xm(n,{transform:[Gx,Wx],opacity:[0,1]},{duration:.28,ease:Hx,onComplete:()=>{n.style.transform=Wx,n.style.opacity=`1`}}):e===0&&t>0&&(P.current=Xm(n,{transform:[Wx,Gx],opacity:[1,0]},{duration:.22,ease:Ux,onComplete:()=>{F.current===0&&A(!1)}})),ee.current=e)},[k,R]),(0,y.useEffect)(()=>()=>{P.current?.stop(),P.current=null},[]);let Dt=()=>(0,B.jsx)(`div`,{className:G.filterRail,children:(0,B.jsx)(`div`,{className:G.filterTags,children:st.map(t=>{let n=s===t,i=Wv(t,r),a=t===`all`?{bg:`var(--bg-tertiary)`,text:`var(--text-primary)`}:Uv(t,r),o={"--filter-color":a.text,"--filter-surface":a.bg,"--filter-active-text":r===`dark`?`#111827`:`#ffffff`};return(0,B.jsxs)(`button`,{className:`${G.filterTag} ${n?G.filterTagActive:``}`,style:o,onClick:()=>{c(t),v(1)},children:[(0,B.jsxs)(`span`,{className:G.filterTagLabel,children:[t===`all`?(0,B.jsx)(`span`,{className:`${G.filterTagIconWrap} ${G.filterAllIconWrap}`,children:(0,B.jsx)(rs,{className:G.filterAllIcon,size:16})}):(0,B.jsx)(`span`,{className:G.filterTagIconWrap,children:i?(0,B.jsx)(`img`,{src:i,alt:``,className:G.filterTagIcon}):(0,B.jsx)(`span`,{className:G.filterTagIconFallback,children:Hv(e,t).slice(0,1).toUpperCase()})}),(0,B.jsx)(`span`,{className:G.filterTagText,children:Hv(e,t)})]}),(0,B.jsx)(`span`,{className:G.filterTagCount,children:ut[t]??0})]},t)})})}),Ot=(0,B.jsxs)(`div`,{className:G.titleWrapper,children:[(0,B.jsx)(`span`,{children:e(`auth_files.title_section`)}),I.length>0&&(0,B.jsx)(`span`,{className:G.countBadge,children:I.length})]}),kt=d?e(`auth_files.delete_filtered_result_button`):l?s===`all`?e(`auth_files.delete_problem_button`):e(`auth_files.delete_problem_button_with_type`,{type:Hv(e,s)}):s===`all`?e(`auth_files.delete_all_button`):`${e(`common.delete`)} ${Hv(e,s)}`;return(0,B.jsxs)(`div`,{className:G.container,children:[(0,B.jsxs)(`div`,{className:G.pageHeader,children:[(0,B.jsx)(`h1`,{className:G.pageTitle,children:e(`auth_files.title`)}),(0,B.jsx)(`p`,{className:G.description,children:e(`auth_files.description`)})]}),(0,B.jsxs)(hg,{title:Ot,extra:(0,B.jsxs)(`div`,{className:G.headerActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ot,disabled:te,children:e(`common.refresh`)}),(0,B.jsx)(V,{size:`sm`,onClick:le,disabled:Qe||re,loading:re,children:e(`auth_files.upload_button`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>fe({filter:s,problemOnly:l,disabledOnly:d,onResetFilterToAll:()=>c(`all`),onResetProblemOnly:()=>u(!1),onResetDisabledOnly:()=>f(!1)}),disabled:Qe||te||ie,loading:ie,children:kt}),(0,B.jsx)(`input`,{ref:se,type:`file`,accept:`.json,application/json`,multiple:!0,style:{display:`none`},onChange:ue})]}),children:[ne&&(0,B.jsx)(`div`,{className:G.errorBox,children:ne}),(0,B.jsxs)(`div`,{className:G.filterSection,children:[Dt(),(0,B.jsxs)(`div`,{className:G.filterContent,children:[(0,B.jsx)(`div`,{className:G.filterControlsPanel,children:(0,B.jsxs)(`div`,{className:G.filterControls,children:[(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.search_label`)}),(0,B.jsx)(Xo,{value:h,onChange:e=>{g(e.target.value),v(1)},placeholder:e(`auth_files.search_placeholder`)})]}),(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.page_size_label`)}),(0,B.jsx)(`input`,{className:G.pageSizeSelect,type:`number`,min:3,max:30,step:1,value:C,onChange:it,onBlur:e=>rt(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}})]}),(0,B.jsxs)(`div`,{className:G.filterItem,children:[(0,B.jsx)(`label`,{children:e(`auth_files.sort_label`)}),(0,B.jsx)(Us,{className:G.sortSelect,value:D,options:lt,onChange:at,ariaLabel:e(`auth_files.sort_label`),fullWidth:!0})]}),(0,B.jsxs)(`div`,{className:`${G.filterItem} ${G.filterToggleItem}`,children:[(0,B.jsx)(`label`,{children:e(`auth_files.display_options_label`)}),(0,B.jsxs)(`div`,{className:G.filterToggleGroup,children:[(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:l,onChange:e=>{u(e),v(1)},ariaLabel:e(`auth_files.problem_filter_only`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.problem_filter_only`)})})}),(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:d,onChange:e=>{f(e),v(1)},ariaLabel:e(`auth_files.disabled_filter_only`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.disabled_filter_only`)})})}),(0,B.jsx)(`div`,{className:G.filterToggleCard,children:(0,B.jsx)(Sg,{checked:p,onChange:e=>m(e),ariaLabel:e(`auth_files.compact_mode_label`),label:(0,B.jsx)(`span`,{className:G.filterToggleLabel,children:e(`auth_files.compact_mode_label`)})})})]})]})]})}),te?(0,B.jsx)(`div`,{className:G.hint,children:e(`common.loading`)}):vt.length===0?(0,B.jsx)(wg,{title:e(`auth_files.search_empty_title`),description:e(`auth_files.search_empty_desc`)}):(0,B.jsx)(`div`,{className:`${G.fileGrid} ${et?G.fileGridQuotaManaged:``} ${p?G.fileGridCompact:``}`,children:vt.map(e=>(0,B.jsx)(ex,{file:e,compact:p,selected:L.has(e.name),resolvedTheme:r,disableControls:Qe,deleting:z,statusUpdating:ae,quotaFilterType:et,statusBarCache:Se,onShowModels:Ue,onDownload:pe,onOpenPrefixProxyEditor:Je,onDelete:de,onToggleStatus:me,onToggleSelect:he},e.name))}),!te&&mt.length>tt&&(0,B.jsxs)(`div`,{className:G.pagination,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(Math.max(1,gt-1)),disabled:gt<=1,children:e(`auth_files.pagination_prev`)}),(0,B.jsx)(`div`,{className:G.pageInfo,children:e(`auth_files.pagination_info`,{current:gt,total:ht,count:mt.length})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>v(Math.min(ht,gt+1)),disabled:gt>=ht,children:e(`auth_files.pagination_next`)})]})]})]})]}),(0,B.jsx)(rx,{disableControls:Qe,excludedError:we,excluded:Ce,onAdd:()=>Tt(),onEdit:Tt,onDelete:Ae}),(0,B.jsx)(hx,{disableControls:Qe,viewMode:T,onViewModeChange:E,onAdd:()=>Et(),onEditProvider:Et,onDeleteProvider:je,modelAliasError:Ee,modelAlias:Te,allProviderModels:De,onUpdate:Me,onDeleteLink:Ne,onToggleFork:Pe,onRenameAlias:Fe,onDeleteAlias:Ie}),(0,B.jsx)(tx,{open:Le,fileName:Be,fileType:Ve,loading:Re,error:He,models:ze,excluded:Ce,onClose:We,onCopyText:wt}),(0,B.jsx)(nx,{disableControls:Qe,editor:Ge,updatedText:Ke,dirty:qe,onClose:Ye,onCopyText:wt,onSave:Ze,onChange:Xe}),k&&typeof document<`u`?(0,S.createPortal)((0,B.jsx)(`div`,{className:G.batchActionContainer,ref:N,children:(0,B.jsxs)(`div`,{className:G.batchActionBar,children:[(0,B.jsxs)(`div`,{className:G.batchActionLeft,children:[(0,B.jsx)(`span`,{className:G.batchSelectionText,children:e(`auth_files.batch_selected`,{count:R})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ge(vt),disabled:yt.length===0,children:e(`auth_files.batch_select_page`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ge(mt),disabled:bt.length===0,children:e(`auth_files.batch_select_filtered`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>_e(vt),disabled:yt.length===0,children:e(`auth_files.batch_invert_page`)}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:ve,children:e(`auth_files.batch_deselect`)})]}),(0,B.jsxs)(`div`,{className:G.batchActionRight,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>void ye(xt),disabled:Qe||xt.length===0,children:e(`auth_files.batch_download`)}),(0,B.jsx)(V,{size:`sm`,onClick:()=>be(xt,!0),disabled:Ct,children:e(`auth_files.batch_enable`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>be(xt,!1),disabled:Ct,children:e(`auth_files.batch_disable`)}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:()=>xe(xt),disabled:Qe||xt.length===0,children:e(`common.delete`)})]})]})}),document.body):null]})}function Zx({label:e,value:t,onChange:n,options:r,placeholder:i,disabled:a,hint:o,error:s,className:c=``,wrapperClassName:l=``,wrapperStyle:u,id:d,rightElement:f}){let[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(-1),_=(0,y.useRef)(null),v=r.map(e=>typeof e==`string`?{value:e,label:e}:{value:e.value,label:e.label||e.value}).filter(e=>{let n=t.toLowerCase();return e.value.toLowerCase().includes(n)||e.label&&e.label.toLowerCase().includes(n)});(0,y.useEffect)(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&m(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let b=e=>{n(e.target.value),m(!0),g(-1)},x=e=>{n(e),m(!1)};return(0,B.jsxs)(`div`,{className:`form-group ${l}`,ref:_,style:u,children:[e&&(0,B.jsx)(`label`,{htmlFor:d,children:e}),(0,B.jsxs)(`div`,{style:{position:`relative`},children:[(0,B.jsx)(`input`,{id:d,className:`input ${c}`.trim(),value:t,onChange:b,onFocus:()=>m(!0),onKeyDown:e=>{if(!a)if(e.key===`ArrowDown`){if(e.preventDefault(),!p){m(!0);return}g(e=>ee>0?e-1:0)):e.key===`Enter`?p&&h>=0&&h!a&&m(!p),children:[f,(0,B.jsx)(fs,{size:16,style:{opacity:.5,marginLeft:4}})]}),p&&v.length>0&&!a&&(0,B.jsx)(`div`,{className:`autocomplete-dropdown`,style:{position:`absolute`,top:`calc(100% + 4px)`,left:0,right:0,zIndex:1e3,backgroundColor:`var(--bg-secondary)`,border:`1px solid var(--border-color)`,borderRadius:`var(--radius-md)`,maxHeight:200,overflowY:`auto`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)`},children:v.map((e,t)=>(0,B.jsxs)(`div`,{onClick:()=>x(e.value),style:{padding:`8px 12px`,cursor:`pointer`,backgroundColor:t===h?`var(--bg-tertiary)`:`transparent`,color:`var(--text-primary)`,display:`flex`,flexDirection:`column`,fontSize:`0.9rem`},onMouseEnter:()=>g(t),children:[(0,B.jsx)(`span`,{style:{fontWeight:500},children:e.value}),e.label&&e.label!==e.value&&(0,B.jsx)(`span`,{style:{fontSize:`0.85em`,color:`var(--text-secondary)`},children:e.label})]},`${e.value}-${t}`))})]}),o&&(0,B.jsx)(`div`,{className:`hint`,children:o}),s&&(0,B.jsx)(`div`,{className:`error-box`,children:s})]})}var Qx={pageContent:`AuthFilesOAuthExcludedEditPage-module__pageContent___42nA2`,settingsCard:`AuthFilesOAuthExcludedEditPage-module__settingsCard___EE-1z`,settingsHeader:`AuthFilesOAuthExcludedEditPage-module__settingsHeader___Jm0RO`,settingsHeaderTitle:`AuthFilesOAuthExcludedEditPage-module__settingsHeaderTitle___nOj9w`,settingsHeaderHint:`AuthFilesOAuthExcludedEditPage-module__settingsHeaderHint___EzQSN`,settingsSection:`AuthFilesOAuthExcludedEditPage-module__settingsSection___ozndx`,settingsRow:`AuthFilesOAuthExcludedEditPage-module__settingsRow___z6QPQ`,settingsInfo:`AuthFilesOAuthExcludedEditPage-module__settingsInfo___lRYwp`,settingsLabel:`AuthFilesOAuthExcludedEditPage-module__settingsLabel___KbPgc`,settingsDesc:`AuthFilesOAuthExcludedEditPage-module__settingsDesc___6LSPN`,settingsControl:`AuthFilesOAuthExcludedEditPage-module__settingsControl___luVcd`,tagList:`AuthFilesOAuthExcludedEditPage-module__tagList___Is0Fd`,tag:`AuthFilesOAuthExcludedEditPage-module__tag___fyrKv`,tagActive:`AuthFilesOAuthExcludedEditPage-module__tagActive___EkiBG`,modelsHint:`AuthFilesOAuthExcludedEditPage-module__modelsHint___Rm6l4`,loadingModels:`AuthFilesOAuthExcludedEditPage-module__loadingModels___-9Wy6`,modelList:`AuthFilesOAuthExcludedEditPage-module__modelList___6ebAr`,modelItem:`AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o`,modelText:`AuthFilesOAuthExcludedEditPage-module__modelText___50mQC`,modelId:`AuthFilesOAuthExcludedEditPage-module__modelId___Z2Ylu`,modelDisplayName:`AuthFilesOAuthExcludedEditPage-module__modelDisplayName___ATlA5`,emptyModels:`AuthFilesOAuthExcludedEditPage-module__emptyModels___kAuwa`},$x=[`gemini-cli`,`vertex`,`aistudio`,`antigravity`,`claude`,`codex`,`qwen`,`kimi`,`iflow`],eS=new Set([`all`,`unknown`,`empty`]),tS=e=>e.trim().toLowerCase();function nS(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=ep(e=>e.connectionStatus)!==`connected`,[a,o]=Hi(),s=a.get(`provider`)??``,[c,l]=(0,y.useState)(s),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)({}),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)(!0),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(new Set),[C,w]=(0,y.useState)([]),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(!1);(0,y.useEffect)(()=>{l(s)},[s]);let j=(0,y.useMemo)(()=>{let e=new Set;Object.keys(f).forEach(t=>e.add(t)),Object.keys(m).forEach(t=>e.add(t)),u.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)});let t=Array.from(e).map(e=>e.trim()).filter(e=>e&&!eS.has(e.toLowerCase())),n=new Set($x.map(e=>e.toLowerCase())),r=t.filter(e=>!n.has(e.toLowerCase())).sort((e,t)=>e.localeCompare(t));return[...$x,...r]},[f,u,m]),M=(0,y.useCallback)(t=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},[e]),N=(0,y.useMemo)(()=>tS(c),[c]),P=(0,y.useMemo)(()=>N?Object.prototype.hasOwnProperty.call(f,N):!1,[f,N]),ee=(0,y.useMemo)(()=>P?e(`oauth_excluded.edit_title`,{provider:c.trim()||N}):e(`oauth_excluded.add_title`),[P,c,N,e]),F=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),I=d_({onBack:F});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&F()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[F]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{_(!0),b(!1);try{let[t,n,r]=await Promise.allSettled([ag.list(),ag.getOauthExcludedModels(),ag.getOauthModelAlias()]);if(e)return;if(t.status===`fulfilled`&&d(t.value?.files??[]),r.status===`fulfilled`&&h(r.value??{}),n.status===`fulfilled`){p(n.value??{});return}let i=n.status===`rejected`?n.reason:null;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){b(!0);return}}finally{e||_(!1)}})().catch(()=>{e||_(!1)}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!N){S(new Set);return}let e=f[N]??[];S(new Set(e))},[f,N]),(0,y.useEffect)(()=>{if(!N||v){w([]),O(null),E(!1);return}let t=!1;return E(!0),O(null),ag.getModelDefinitions(N).then(e=>{t||w(e)}).catch(n=>{if(t)return;if((typeof n==`object`&&n&&`status`in n?n.status:void 0)===404){w([]),O(`unsupported`);return}let i=n instanceof Error?n.message:``;r(`${e(`notification.load_failed`)}: ${i}`,`error`)}).finally(()=>{t||E(!1)}),()=>{t=!0}},[v,N,r,e]);let L=(0,y.useCallback)(e=>{l(e);let t=new URLSearchParams(a),n=e.trim();n?t.set(`provider`,n):t.delete(`provider`),o(t,{replace:!0})},[a,o]),R=(0,y.useCallback)((e,t)=>{S(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),te=(0,y.useCallback)(async()=>{let t=tS(c);if(!t){r(e(`oauth_excluded.provider_required`),`error`);return}let n=[...x];A(!0);try{n.length?await ag.saveOauthExcludedModels(t,n):await ag.deleteOauthExcludedEntry(t),r(e(`oauth_excluded.save_success`),`success`),F()}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`oauth_excluded.save_failed`)}: ${n}`,`error`)}finally{A(!1)}},[F,c,x,r,e]),ne=!i&&!k&&!v;return(0,B.jsx)(h_,{ref:I,title:ee,onBack:F,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:Qx.pageContent,rightAction:(0,B.jsx)(V,{size:`sm`,onClick:te,loading:k,disabled:!ne,children:e(`oauth_excluded.save`)}),isLoading:g,loadingLabel:e(`common.loading`),children:v?(0,B.jsx)(hg,{children:(0,B.jsx)(wg,{title:e(`oauth_excluded.upgrade_required_title`),description:e(`oauth_excluded.upgrade_required_desc`)})}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(hg,{className:Qx.settingsCard,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeader,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeaderTitle,children:[(0,B.jsx)(ss,{size:16}),(0,B.jsx)(`span`,{children:e(`oauth_excluded.title`)})]}),(0,B.jsx)(`div`,{className:Qx.settingsHeaderHint,children:e(`oauth_excluded.description`)})]}),(0,B.jsxs)(`div`,{className:Qx.settingsSection,children:[(0,B.jsxs)(`div`,{className:Qx.settingsRow,children:[(0,B.jsxs)(`div`,{className:Qx.settingsInfo,children:[(0,B.jsx)(`div`,{className:Qx.settingsLabel,children:e(`oauth_excluded.provider_label`)}),(0,B.jsx)(`div`,{className:Qx.settingsDesc,children:e(`oauth_excluded.provider_hint`)})]}),(0,B.jsx)(`div`,{className:Qx.settingsControl,children:(0,B.jsx)(Zx,{id:`oauth-excluded-provider`,placeholder:e(`oauth_excluded.provider_placeholder`),value:c,onChange:L,options:j,disabled:i||k,wrapperStyle:{marginBottom:0}})})]}),j.length>0&&(0,B.jsx)(`div`,{className:Qx.tagList,children:j.map(e=>{let t=tS(c)===e.toLowerCase();return(0,B.jsx)(`button`,{type:`button`,className:`${Qx.tag} ${t?Qx.tagActive:``}`,onClick:()=>L(e),disabled:i||k,children:M(e)},e)})})]})]}),(0,B.jsxs)(hg,{className:Qx.settingsCard,children:[(0,B.jsxs)(`div`,{className:Qx.settingsHeader,children:[(0,B.jsx)(`div`,{className:Qx.settingsHeaderTitle,children:e(`oauth_excluded.models_label`)}),N&&(0,B.jsx)(`div`,{className:Qx.modelsHint,children:T?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(p_,{size:14}),(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_loading`)})]}):D===`unsupported`?(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_unsupported`)}):C.length>0?(0,B.jsx)(`span`,{children:e(`oauth_excluded.models_loaded`,{count:C.length})}):(0,B.jsx)(`span`,{children:e(`oauth_excluded.no_models_available`)})})]}),T?(0,B.jsxs)(`div`,{className:Qx.loadingModels,children:[(0,B.jsx)(p_,{size:16}),(0,B.jsx)(`span`,{children:e(`common.loading`)})]}):C.length>0?(0,B.jsx)(`div`,{className:Qx.modelList,children:C.map(e=>(0,B.jsx)(Gs,{checked:x.has(e.id),disabled:i||k,onChange:t=>R(e.id,t),className:Qx.modelItem,labelClassName:Qx.modelText,label:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Qx.modelId,children:e.id}),e.display_name&&e.display_name!==e.id&&(0,B.jsx)(`span`,{className:Qx.modelDisplayName,children:e.display_name})]})},e.id))}):N?(0,B.jsx)(`div`,{className:Qx.emptyModels,children:e(D===`unsupported`?`oauth_excluded.models_unsupported`:`oauth_excluded.no_models_available`)}):(0,B.jsx)(`div`,{className:Qx.emptyModels,children:e(`oauth_excluded.provider_required`)})]})]})})}var rS={pageContent:`AuthFilesOAuthModelAliasEditPage-module__pageContent___mxGSP`,settingsCard:`AuthFilesOAuthModelAliasEditPage-module__settingsCard___4uMxA`,settingsHeader:`AuthFilesOAuthModelAliasEditPage-module__settingsHeader___h4vIs`,settingsHeaderTitle:`AuthFilesOAuthModelAliasEditPage-module__settingsHeaderTitle___GExPS`,settingsHeaderHint:`AuthFilesOAuthModelAliasEditPage-module__settingsHeaderHint___C94bR`,settingsSection:`AuthFilesOAuthModelAliasEditPage-module__settingsSection___JQr18`,settingsRow:`AuthFilesOAuthModelAliasEditPage-module__settingsRow___qzQdL`,settingsInfo:`AuthFilesOAuthModelAliasEditPage-module__settingsInfo___Jt7Ub`,settingsLabel:`AuthFilesOAuthModelAliasEditPage-module__settingsLabel___v6dmL`,settingsDesc:`AuthFilesOAuthModelAliasEditPage-module__settingsDesc___TgK3P`,settingsControl:`AuthFilesOAuthModelAliasEditPage-module__settingsControl___nSl-3`,tagList:`AuthFilesOAuthModelAliasEditPage-module__tagList___OxNTF`,tag:`AuthFilesOAuthModelAliasEditPage-module__tag___sULm6`,tagActive:`AuthFilesOAuthModelAliasEditPage-module__tagActive___CcyFC`,mappingsHeader:`AuthFilesOAuthModelAliasEditPage-module__mappingsHeader___wddAp`,mappingsTitle:`AuthFilesOAuthModelAliasEditPage-module__mappingsTitle___QywAa`,modelsHint:`AuthFilesOAuthModelAliasEditPage-module__modelsHint___nQAc7`,mappingsBody:`AuthFilesOAuthModelAliasEditPage-module__mappingsBody___jOz-S`,mappingRow:`AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41`,mappingSeparator:`AuthFilesOAuthModelAliasEditPage-module__mappingSeparator___dN9rZ`,mappingAliasInput:`AuthFilesOAuthModelAliasEditPage-module__mappingAliasInput___iG0V3`,mappingFork:`AuthFilesOAuthModelAliasEditPage-module__mappingFork___4pAg3`},iS=[`gemini-cli`,`vertex`,`aistudio`,`antigravity`,`claude`,`codex`,`qwen`,`kimi`,`iflow`],aS=new Set([`all`,`unknown`,`empty`]),oS=e=>e.trim().toLowerCase(),sS=()=>({id:Qs(),name:``,alias:``,fork:!0}),cS=e=>!Array.isArray(e)||e.length===0?[sS()]:e.map(e=>({id:Qs(),name:e.name??``,alias:e.alias??``,fork:!!e.fork}));function lS(){let{t:e}=qo(),t=Qn(),n=Yn(),{showNotification:r}=hc(),i=ep(e=>e.connectionStatus)!==`connected`,[a,o]=Hi(),s=a.get(`provider`)??``,[c,l]=(0,y.useState)(s),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)({}),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)(!0),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)([sS()]),[C,w]=(0,y.useState)([]),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(!1);(0,y.useEffect)(()=>{l(s)},[s]);let j=(0,y.useMemo)(()=>{let e=new Set;Object.keys(f).forEach(t=>e.add(t)),Object.keys(m).forEach(t=>e.add(t)),u.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)});let t=Array.from(e).map(e=>e.trim()).filter(e=>e&&!aS.has(e.toLowerCase())),n=new Set(iS.map(e=>e.toLowerCase())),r=t.filter(e=>!n.has(e.toLowerCase())).sort((e,t)=>e.localeCompare(t));return[...iS,...r]},[f,u,m]),M=(0,y.useCallback)(t=>{let n=`auth_files.filter_${t}`,r=e(n);return r===n?t.toLowerCase()===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):r},[e]),N=(0,y.useMemo)(()=>oS(c),[c]),P=(0,y.useMemo)(()=>e(`oauth_model_alias.add_title`),[e]),ee=(0,y.useMemo)(()=>c.trim()?T?e(`oauth_model_alias.model_source_loading`):D===`unsupported`?e(`oauth_model_alias.model_source_unsupported`):e(`oauth_model_alias.model_source_loaded`,{count:C.length}):e(`oauth_model_alias.provider_hint`),[D,C.length,T,c,e]),F=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),I=d_({onBack:F});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&F()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[F]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{_(!0),b(!1);try{let[t,n,r]=await Promise.allSettled([ag.list(),ag.getOauthExcludedModels(),ag.getOauthModelAlias()]);if(e)return;if(t.status===`fulfilled`&&d(t.value?.files??[]),n.status===`fulfilled`&&p(n.value??{}),r.status===`fulfilled`){h(r.value??{});return}let i=r.status===`rejected`?r.reason:null;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){b(!0);return}}finally{e||_(!1)}})().catch(()=>{e||_(!1)}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!N){S([sS()]);return}S(cS(m[N]??[]))},[m,N]),(0,y.useEffect)(()=>{if(!N||v){w([]),O(null),E(!1);return}let t=!1;return E(!0),O(null),ag.getModelDefinitions(N).then(e=>{t||w(e)}).catch(n=>{if(t)return;if((typeof n==`object`&&n&&`status`in n?n.status:void 0)===404){w([]),O(`unsupported`);return}let i=n instanceof Error?n.message:``;r(`${e(`notification.load_failed`)}: ${i}`,`error`)}).finally(()=>{t||E(!1)}),()=>{t=!0}},[v,N,r,e]);let L=(0,y.useCallback)(e=>{l(e);let t=new URLSearchParams(a),n=e.trim();n?t.set(`provider`,n):t.delete(`provider`),o(t,{replace:!0})},[a,o]),R=(0,y.useCallback)((e,t,n)=>{S(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))},[]),te=(0,y.useCallback)(()=>{S(e=>[...e,sS()])},[]),ne=(0,y.useCallback)(e=>{S(t=>{let n=t.filter((t,n)=>n!==e);return n.length?n:[sS()]})},[]),re=(0,y.useCallback)(async()=>{let t=c.trim();if(!t){r(e(`oauth_model_alias.provider_required`),`error`);return}let n=new Set,i=x.map(e=>{let t=String(e.name??``).trim(),r=String(e.alias??``).trim();if(!t||!r)return null;let i=`${t.toLowerCase()}::${r.toLowerCase()}::${e.fork?`1`:`0`}`;return n.has(i)?null:(n.add(i),e.fork?{name:t,alias:r,fork:!0}:{name:t,alias:r})}).filter(Boolean);A(!0);try{i.length?await ag.saveOauthModelAlias(t,i):await ag.deleteOauthModelAlias(t),r(e(`oauth_model_alias.save_success`),`success`),F()}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`oauth_model_alias.save_failed`)}: ${n}`,`error`)}finally{A(!1)}},[F,x,c,r,e]),z=!i&&!k&&!v;return(0,B.jsx)(h_,{ref:I,title:P,onBack:F,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:rS.pageContent,rightAction:(0,B.jsx)(V,{size:`sm`,onClick:re,loading:k,disabled:!z,children:e(`oauth_model_alias.save`)}),isLoading:g,loadingLabel:e(`common.loading`),children:v?(0,B.jsx)(hg,{children:(0,B.jsx)(wg,{title:e(`oauth_model_alias.upgrade_required_title`),description:e(`oauth_model_alias.upgrade_required_desc`)})}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(hg,{className:rS.settingsCard,children:[(0,B.jsxs)(`div`,{className:rS.settingsHeader,children:[(0,B.jsxs)(`div`,{className:rS.settingsHeaderTitle,children:[(0,B.jsx)(ss,{size:16}),(0,B.jsx)(`span`,{children:e(`oauth_model_alias.title`)})]}),(0,B.jsx)(`div`,{className:rS.settingsHeaderHint,children:ee})]}),(0,B.jsxs)(`div`,{className:rS.settingsSection,children:[(0,B.jsxs)(`div`,{className:rS.settingsRow,children:[(0,B.jsxs)(`div`,{className:rS.settingsInfo,children:[(0,B.jsx)(`div`,{className:rS.settingsLabel,children:e(`oauth_model_alias.provider_label`)}),(0,B.jsx)(`div`,{className:rS.settingsDesc,children:e(`oauth_model_alias.provider_hint`)})]}),(0,B.jsx)(`div`,{className:rS.settingsControl,children:(0,B.jsx)(Zx,{id:`oauth-model-alias-provider`,placeholder:e(`oauth_model_alias.provider_placeholder`),value:c,onChange:L,options:j,disabled:i||k,wrapperStyle:{marginBottom:0}})})]}),j.length>0&&(0,B.jsx)(`div`,{className:rS.tagList,children:j.map(e=>{let t=oS(c)===e.toLowerCase();return(0,B.jsx)(`button`,{type:`button`,className:`${rS.tag} ${t?rS.tagActive:``}`,onClick:()=>L(e),disabled:i||k,children:M(e)},e)})})]})]}),(0,B.jsxs)(hg,{className:rS.settingsCard,children:[(0,B.jsxs)(`div`,{className:rS.mappingsHeader,children:[(0,B.jsx)(`div`,{className:rS.mappingsTitle,children:e(`oauth_model_alias.alias_label`)}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:te,disabled:i||k||v,children:e(`oauth_model_alias.add_alias`)})]}),(0,B.jsx)(`div`,{className:rS.mappingsBody,children:x.map((t,n)=>(0,B.jsxs)(`div`,{className:rS.mappingRow,children:[(0,B.jsx)(Zx,{wrapperStyle:{flex:1,marginBottom:0},placeholder:e(`oauth_model_alias.alias_name_placeholder`),value:t.name,onChange:e=>R(n,`name`,e),disabled:i||k,options:C.map(e=>({value:e.id,label:e.display_name&&e.display_name!==e.id?e.display_name:void 0}))}),(0,B.jsx)(`span`,{className:rS.mappingSeparator,children:`→`}),(0,B.jsx)(`input`,{className:`input ${rS.mappingAliasInput}`,placeholder:e(`oauth_model_alias.alias_placeholder`),value:t.alias,onChange:e=>R(n,`alias`,e.target.value),disabled:i||k}),(0,B.jsx)(`div`,{className:rS.mappingFork,children:(0,B.jsx)(Sg,{label:e(`oauth_model_alias.alias_fork_label`),labelPosition:`left`,checked:!!t.fork,onChange:e=>R(n,`fork`,e),disabled:i||k})}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:()=>ne(n),disabled:i||k||x.length<=1,title:e(`common.delete`),"aria-label":e(`common.delete`),children:(0,B.jsx)(hs,{size:14})})]},t.id))})]})]})})}var uS={container:`OAuthPage-module__container___LCCdH`,cardTitle:`OAuthPage-module__cardTitle___yFaP0`,cardTitleIcon:`OAuthPage-module__cardTitleIcon___eAnql`,pageTitle:`OAuthPage-module__pageTitle___BQQ2z`,content:`OAuthPage-module__content___Phg9V`,cardContent:`OAuthPage-module__cardContent___1sXLA`,cardHint:`OAuthPage-module__cardHint___ttOpd`,cardHintSecondary:`OAuthPage-module__cardHintSecondary___tWM17`,oauthSection:`OAuthPage-module__oauthSection___1olLq`,oauthGrid:`OAuthPage-module__oauthGrid___wjAyh`,oauthCard:`OAuthPage-module__oauthCard___CYTnC`,oauthStatus:`OAuthPage-module__oauthStatus___h7bbL`,success:`OAuthPage-module__success___UHta0`,error:`OAuthPage-module__error___057CD`,waiting:`OAuthPage-module__waiting___CbNSk`,callbackSection:`OAuthPage-module__callbackSection___8kA31`,callbackActions:`OAuthPage-module__callbackActions___wtkMI`,authUrlBox:`OAuthPage-module__authUrlBox___Iu1d4`,authUrlLabel:`OAuthPage-module__authUrlLabel___mYFJB`,authUrlValue:`OAuthPage-module__authUrlValue___axvUJ`,authUrlActions:`OAuthPage-module__authUrlActions___venPj`,successActions:`OAuthPage-module__successActions___wHpp9`,geminiProjectField:`OAuthPage-module__geminiProjectField___g456A`,formItem:`OAuthPage-module__formItem___Bgt9S`,formItemLabel:`OAuthPage-module__formItemLabel___QZFrG`,filePicker:`OAuthPage-module__filePicker___NmFjy`,fileName:`OAuthPage-module__fileName___9ZbQI`,fileNamePlaceholder:`OAuthPage-module__fileNamePlaceholder___WHjj4`,connectionBox:`OAuthPage-module__connectionBox___Gwo4r`,connectionLabel:`OAuthPage-module__connectionLabel___cJMrf`,keyValueList:`OAuthPage-module__keyValueList___lEOY0`,keyValueItem:`OAuthPage-module__keyValueItem___XOwWB`,keyValueKey:`OAuthPage-module__keyValueKey___WF-VN`,keyValueValue:`OAuthPage-module__keyValueValue___m2I-C`};function dS(e){return typeof e==`object`&&!!e}function fS(e){return e instanceof Error||dS(e)&&typeof e.message==`string`?e.message:typeof e==`string`?e:``}function pS(e){if(dS(e))return typeof e.status==`number`?e.status:void 0}var mS=[{id:`codex`,titleKey:`auth_login.codex_oauth_title`,hintKey:`auth_login.codex_oauth_hint`,urlLabelKey:`auth_login.codex_oauth_url_label`,icon:Mg},{id:`anthropic`,titleKey:`auth_login.anthropic_oauth_title`,hintKey:`auth_login.anthropic_oauth_hint`,urlLabelKey:`auth_login.anthropic_oauth_url_label`,icon:Cg},{id:`antigravity`,titleKey:`auth_login.antigravity_oauth_title`,hintKey:`auth_login.antigravity_oauth_hint`,urlLabelKey:`auth_login.antigravity_oauth_url_label`,icon:Ov},{id:`gemini-cli`,titleKey:`auth_login.gemini_cli_oauth_title`,hintKey:`auth_login.gemini_cli_oauth_hint`,urlLabelKey:`auth_login.gemini_cli_oauth_url_label`,icon:Pg},{id:`kimi`,titleKey:`auth_login.kimi_oauth_title`,hintKey:`auth_login.kimi_oauth_hint`,urlLabelKey:`auth_login.kimi_oauth_url_label`,icon:{light:jv,dark:Av}}],hS=[`codex`,`anthropic`,`antigravity`,`gemini-cli`],gS=5e3,_S=e=>e.replace(`-`,`_`),vS=(e,t)=>`auth_login.${_S(e)}_${t}`,yS=(e,t)=>typeof e==`string`?e:e[t];function bS(){let{t:e}=qo(),t=Qn(),{showNotification:n}=hc(),r=wc(e=>e.resolvedTheme),[i,a]=(0,y.useState)({}),[o,s]=(0,y.useState)({fileName:``,location:``,loading:!1}),c=(0,y.useRef)({}),l=(0,y.useRef)({}),u=(0,y.useRef)(null),d=(0,y.useCallback)(()=>{Object.values(c.current).forEach(e=>{e!==void 0&&window.clearInterval(e)}),Object.values(l.current).forEach(e=>{e!==void 0&&window.clearTimeout(e)}),c.current={},l.current={}},[]);(0,y.useEffect)(()=>()=>{d()},[d]);let f=(e,t)=>{a(n=>({...n,[e]:{...n[e]??{},...t}}))},p=e=>{let t=c.current[e];t!==void 0&&(window.clearInterval(t),delete c.current[e])},m=e=>{let t=l.current[e];t!==void 0&&(window.clearTimeout(t),delete l.current[e])},h=e=>{p(e),m(e)},g=e=>{h(e),a(t=>{let n=t[e]??{},r={};return e===`gemini-cli`&&n.projectId!==void 0&&(r.projectId=n.projectId),{...t,[e]:r}})},_=e=>{p(e),m(e),f(e,{url:void 0,state:void 0,status:`success`,error:void 0,polling:!1,callbackUrl:``,callbackSubmitting:!1,callbackStatus:void 0,callbackError:void 0}),l.current[e]=window.setTimeout(()=>{g(e)},gS)},v=(t,r)=>{p(t);let i=window.setInterval(async()=>{try{let a=await cg.getAuthStatus(r);a.status===`ok`?(_(t),n(e(vS(t,`oauth_status_success`)),`success`)):a.status===`error`&&(f(t,{status:`error`,error:a.error,polling:!1}),n(`${e(vS(t,`oauth_status_error`))} ${a.error||``}`,`error`),window.clearInterval(i),delete c.current[t])}catch(e){f(t,{status:`error`,error:fS(e),polling:!1}),window.clearInterval(i),delete c.current[t]}},3e3);c.current[t]=i},b=async t=>{h(t);let r=t===`gemini-cli`?i[t]:void 0,a=t===`gemini-cli`?(r?.projectId||``).trim():``,o=a?a.toUpperCase()===`ALL`?`ALL`:a:void 0;t===`gemini-cli`&&f(t,{projectIdError:void 0}),f(t,{url:void 0,state:void 0,status:`waiting`,polling:!0,error:void 0,callbackStatus:void 0,callbackError:void 0,callbackUrl:``});try{let r=await cg.startAuth(t,t===`gemini-cli`?{projectId:o||void 0}:void 0);if(!r.state){let i=e(`auth_login.missing_state`);f(t,{url:r.url,state:void 0,status:`error`,error:i,polling:!1}),n(i,`error`);return}f(t,{url:r.url,state:r.state,status:`waiting`,polling:!0}),v(t,r.state)}catch(r){let i=fS(r);f(t,{status:`error`,error:i,polling:!1}),n(`${e(vS(t,`oauth_start_error`))}${i?` ${i}`:``}`,`error`)}},x=async t=>{if(!t)return;let r=await Dv(t);n(e(r?`notification.link_copied`:`notification.copy_failed`),r?`success`:`error`)},S=async t=>{let r=(i[t]?.callbackUrl||``).trim();if(!r){n(e(`auth_login.oauth_callback_required`),`warning`);return}f(t,{callbackSubmitting:!0,callbackStatus:void 0,callbackError:void 0});try{await cg.submitCallback(t,r),f(t,{callbackSubmitting:!1,callbackStatus:`success`}),n(e(`auth_login.oauth_callback_success`),`success`)}catch(r){let i=pS(r),a=fS(r),o=i===404?e(`auth_login.oauth_callback_upgrade_hint`,{defaultValue:`Please update CLI Proxy API or check the connection.`}):a||void 0;f(t,{callbackSubmitting:!1,callbackStatus:`error`,callbackError:o}),n(o?`${e(`auth_login.oauth_callback_error`)} ${o}`:e(`auth_login.oauth_callback_error`),`error`)}};return(0,B.jsxs)(`div`,{className:uS.container,children:[(0,B.jsx)(`h1`,{className:uS.pageTitle,children:e(`nav.oauth`,{defaultValue:`OAuth`})}),(0,B.jsxs)(`div`,{className:uS.content,children:[mS.map(n=>{let a=i[n.id]||{},o=hS.includes(n.id)&&!!a.url,s=a.status===`success`?e(`auth_login.login_another_account`):e(vS(n.id,`oauth_button`)),c=[`status-badge`,a.status===`success`?`success`:``,a.status===`error`?`error`:``].filter(Boolean).join(` `);return(0,B.jsx)(`div`,{children:(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:uS.cardTitle,children:[(0,B.jsx)(`img`,{src:yS(n.icon,r),alt:``,className:uS.cardTitleIcon}),e(n.titleKey)]}),extra:(0,B.jsx)(V,{onClick:()=>b(n.id),loading:a.polling,children:s}),children:(0,B.jsxs)(`div`,{className:uS.cardContent,children:[(0,B.jsx)(`div`,{className:uS.cardHint,children:e(n.hintKey)}),n.id===`gemini-cli`&&(0,B.jsx)(`div`,{className:uS.geminiProjectField,children:(0,B.jsx)(Xo,{label:e(`auth_login.gemini_cli_project_id_label`),hint:e(`auth_login.gemini_cli_project_id_hint`),value:a.projectId||``,error:a.projectIdError,disabled:!!a.polling,onChange:e=>f(n.id,{projectId:e.target.value,projectIdError:void 0}),placeholder:e(`auth_login.gemini_cli_project_id_placeholder`)})}),a.url&&(0,B.jsxs)(`div`,{className:uS.authUrlBox,children:[(0,B.jsx)(`div`,{className:uS.authUrlLabel,children:e(n.urlLabelKey)}),(0,B.jsx)(`div`,{className:uS.authUrlValue,children:a.url}),(0,B.jsxs)(`div`,{className:uS.authUrlActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>x(a.url),children:e(vS(n.id,`copy_link`))}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>window.open(a.url,`_blank`,`noopener,noreferrer`),children:e(vS(n.id,`open_link`))})]})]}),o&&(0,B.jsxs)(`div`,{className:uS.callbackSection,children:[(0,B.jsx)(Xo,{label:e(`auth_login.oauth_callback_label`),hint:e(`auth_login.oauth_callback_hint`),value:a.callbackUrl||``,onChange:e=>f(n.id,{callbackUrl:e.target.value,callbackStatus:void 0,callbackError:void 0}),placeholder:e(`auth_login.oauth_callback_placeholder`)}),(0,B.jsx)(`div`,{className:uS.callbackActions,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>S(n.id),loading:a.callbackSubmitting,children:e(`auth_login.oauth_callback_button`)})}),a.callbackStatus===`success`&&a.status===`waiting`&&(0,B.jsx)(`div`,{className:`status-badge success`,children:e(`auth_login.oauth_callback_status_success`)}),a.callbackStatus===`error`&&(0,B.jsxs)(`div`,{className:`status-badge error`,children:[e(`auth_login.oauth_callback_status_error`),` `,a.callbackError||``]})]}),a.status&&a.status!==`idle`&&(0,B.jsx)(`div`,{className:c,children:a.status===`success`?e(vS(n.id,`oauth_status_success`)):a.status===`error`?`${e(vS(n.id,`oauth_status_error`))} ${a.error||``}`:e(vS(n.id,`oauth_status_waiting`))}),a.status===`success`&&(0,B.jsx)(`div`,{className:uS.successActions,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>t(`/auth-files`),children:e(`auth_login.view_auth_files`)})})]})})},n.id)}),(0,B.jsx)(hg,{title:(0,B.jsxs)(`span`,{className:uS.cardTitle,children:[(0,B.jsx)(`img`,{src:Vg,alt:``,className:uS.cardTitleIcon}),e(`vertex_import.title`)]}),extra:(0,B.jsx)(V,{onClick:async()=>{if(!o.file){let t=e(`vertex_import.file_required`);s(e=>({...e,error:t})),n(t,`warning`);return}let t=o.location.trim();s(e=>({...e,loading:!0,error:void 0,result:void 0}));try{let r=await dg.importCredential(o.file,t||void 0),i={projectId:r.project_id,email:r.email,location:r.location,authFile:r[`auth-file`]??r.auth_file};s(e=>({...e,loading:!1,result:i})),n(e(`vertex_import.success`),`success`)}catch(t){let r=fS(t);s(t=>({...t,loading:!1,error:r||e(`notification.upload_failed`)})),n(r?`${e(`notification.upload_failed`)}: ${r}`:e(`notification.upload_failed`),`error`)}},loading:o.loading,children:e(`vertex_import.import_button`)}),children:(0,B.jsxs)(`div`,{className:uS.cardContent,children:[(0,B.jsx)(`div`,{className:uS.cardHint,children:e(`vertex_import.description`)}),(0,B.jsx)(Xo,{label:e(`vertex_import.location_label`),hint:e(`vertex_import.location_hint`),value:o.location,onChange:e=>s(t=>({...t,location:e.target.value})),placeholder:e(`vertex_import.location_placeholder`)}),(0,B.jsxs)(`div`,{className:uS.formItem,children:[(0,B.jsx)(`label`,{className:uS.formItemLabel,children:e(`vertex_import.file_label`)}),(0,B.jsxs)(`div`,{className:uS.filePicker,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>{u.current?.click()},children:e(`vertex_import.choose_file`)}),(0,B.jsx)(`div`,{className:`${uS.fileName} ${o.fileName?``:uS.fileNamePlaceholder}`.trim(),children:o.fileName||e(`vertex_import.file_placeholder`)})]}),(0,B.jsx)(`div`,{className:uS.cardHintSecondary,children:e(`vertex_import.file_hint`)}),(0,B.jsx)(`input`,{ref:u,type:`file`,accept:`.json,application/json`,style:{display:`none`},onChange:t=>{let r=t.target.files?.[0];if(r){if(!r.name.endsWith(`.json`)){n(e(`vertex_import.file_required`),`warning`),t.target.value=``;return}s(e=>({...e,file:r,fileName:r.name,error:void 0,result:void 0})),t.target.value=``}}})]}),o.error&&(0,B.jsx)(`div`,{className:`status-badge error`,children:o.error}),o.result&&(0,B.jsxs)(`div`,{className:uS.connectionBox,children:[(0,B.jsx)(`div`,{className:uS.connectionLabel,children:e(`vertex_import.result_title`)}),(0,B.jsxs)(`div`,{className:uS.keyValueList,children:[o.result.projectId&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_project`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.projectId})]}),o.result.email&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_email`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.email})]}),o.result.location&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_location`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.location})]}),o.result.authFile&&(0,B.jsxs)(`div`,{className:uS.keyValueItem,children:[(0,B.jsx)(`span`,{className:uS.keyValueKey,children:e(`vertex_import.result_file`)}),(0,B.jsx)(`span`,{className:uS.keyValueValue,children:o.result.authFile})]})]})]})]})})]})]})}function xS(){let{t:e}=qo(),t=ep(e=>e.connectionStatus),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),c=t!==`connected`,l=(0,y.useCallback)(async()=>{try{await _h.fetchConfigYaml()}catch(t){let n=t instanceof Error?t.message:e(`notification.refresh_failed`);s(e=>e||n)}},[e]),u=(0,y.useCallback)(async()=>{a(!0),s(``);try{r((await ag.list())?.files||[])}catch(t){s(t instanceof Error?t.message:e(`notification.refresh_failed`))}finally{a(!1)}},[e]);return a_((0,y.useCallback)(async()=>{await Promise.all([l(),u()])},[l,u])),(0,y.useEffect)(()=>{u(),l()},[u,l]),(0,B.jsxs)(`div`,{className:sb.container,children:[(0,B.jsxs)(`div`,{className:sb.pageHeader,children:[(0,B.jsx)(`h1`,{className:sb.pageTitle,children:e(`quota_management.title`)}),(0,B.jsx)(`p`,{className:sb.description,children:e(`quota_management.description`)})]}),o&&(0,B.jsx)(`div`,{className:sb.errorBox,children:o}),(0,B.jsx)(gb,{config:Wb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Gb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Kb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:qb,files:n,loading:i,disabled:c}),(0,B.jsx)(gb,{config:Jb,files:n,loading:i,disabled:c})]})}var SS=Symbol.for(`yaml.alias`),CS=Symbol.for(`yaml.document`),wS=Symbol.for(`yaml.map`),TS=Symbol.for(`yaml.pair`),ES=Symbol.for(`yaml.scalar`),DS=Symbol.for(`yaml.seq`),OS=Symbol.for(`yaml.node.type`),kS=e=>!!e&&typeof e==`object`&&e[OS]===SS,AS=e=>!!e&&typeof e==`object`&&e[OS]===CS,jS=e=>!!e&&typeof e==`object`&&e[OS]===wS,MS=e=>!!e&&typeof e==`object`&&e[OS]===TS,NS=e=>!!e&&typeof e==`object`&&e[OS]===ES,PS=e=>!!e&&typeof e==`object`&&e[OS]===DS;function FS(e){if(e&&typeof e==`object`)switch(e[OS]){case wS:case DS:return!0}return!1}function IS(e){if(e&&typeof e==`object`)switch(e[OS]){case SS:case wS:case ES:case DS:return!0}return!1}var LS=e=>(NS(e)||FS(e))&&!!e.anchor,RS=Symbol(`break visit`),zS=Symbol(`skip children`),BS=Symbol(`remove node`);function VS(e,t){let n=GS(t);AS(e)?HS(null,e.contents,n,Object.freeze([e]))===BS&&(e.contents=null):HS(null,e,n,Object.freeze([]))}VS.BREAK=RS,VS.SKIP=zS,VS.REMOVE=BS;function HS(e,t,n,r){let i=KS(e,t,n,r);if(IS(i)||MS(i))return qS(e,r,i),HS(e,i,n,r);if(typeof i!=`symbol`){if(FS(t)){r=Object.freeze(r.concat(t));for(let e=0;ee.replace(/[!,[\]{}]/g,e=>JS[e]),XS=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+YS(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&IS(e.contents)){let t={};VS(e.contents,(e,n)=>{IS(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(` `)}};XS.defaultYaml={explicit:!1,version:`1.2`},XS.defaultTags={"!!":`tag:yaml.org,2002:`};function ZS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function QS(e){let t=new Set;return VS(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function $S(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function eC(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??(i=QS(e));let a=$S(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(NS(t.node)||FS(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function tC(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;tnC(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!LS(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var rC=class{constructor(e){Object.defineProperty(this,OS,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!AS(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=nC(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?tC(i,{"":o},``,o):o}},iC=class extends rC{constructor(e){super(SS),this.source=e,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],VS(e,{Node:(e,t)=>{(kS(t)||LS(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||(nC(a,null,t),o=n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=aC(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(ZS(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function aC(e,t,n){if(kS(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(FS(t)){let r=0;for(let i of t.items){let t=aC(e,i,n);t>r&&(r=t)}return r}else if(MS(t)){let r=aC(e,t.key,n),i=aC(e,t.value,n);return Math.max(r,i)}return 1}var oC=e=>!e||typeof e!=`function`&&typeof e!=`object`,sC=class extends rC{constructor(e){super(ES),this.value=e}toJSON(e,t){return t?.keep?this.value:nC(this.value,e,t)}toString(){return String(this.value)}};sC.BLOCK_FOLDED=`BLOCK_FOLDED`,sC.BLOCK_LITERAL=`BLOCK_LITERAL`,sC.PLAIN=`PLAIN`,sC.QUOTE_DOUBLE=`QUOTE_DOUBLE`,sC.QUOTE_SINGLE=`QUOTE_SINGLE`;var cC=`tag:yaml.org,2002:`;function lC(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function uC(e,t,n){if(AS(e)&&(e=e.contents),IS(e))return e;if(MS(e)){let t=n.schema[wS].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new iC(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=cC+t.slice(2));let l=lC(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new sC(e);return c&&(c.node=t),t}l=e instanceof Map?o[wS]:Symbol.iterator in Object(e)?o[DS]:o[wS]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new sC(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function dC(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return uC(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var fC=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,pC=class extends rC{constructor(e,t){super(e),Object.defineProperty(this,`schema`,{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>IS(t)||MS(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(fC(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(FS(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,dC(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(FS(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&NS(i)?i.value:i:FS(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!MS(t))return!1;let n=t.value;return n==null||e&&NS(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return FS(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(FS(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,dC(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},mC=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function hC(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var gC=(e,t,n)=>e.endsWith(` `)?hC(n,t):n.includes(` `)?` @@ -159,7 +159,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\ `)),i=yB.build(n,r),a=0,o=0;return{hunks:i.map(e=>{let t=[],i=e.fromA0;e--){let r=u-e+1,i=f-e+1;r>=1&&i>=1&&r<=n.lines&&t.push({type:`context`,oldNum:r,newNum:i,text:n.line(r).text})}for(let e of c)t.push({type:`deletion`,oldNum:e.num,newNum:null,text:e.text});for(let e of l)t.push({type:`addition`,oldNum:null,newNum:e.num,text:e.text});let h=Math.max(0,Math.min(OB,n.lines-d+1)),g=Math.max(0,Math.min(OB,r.lines-p+1)),_=Math.min(h,g);for(let e=0;e<_;e++){let i=d+e,a=p+e;i>=1&&i<=n.lines&&a>=1&&a<=r.lines&&t.push({type:`context`,oldNum:i,newNum:a,text:n.line(i).text})}let v=t.find(e=>e.oldNum!==null)?.oldNum??1,y=t.find(e=>e.newNum!==null)?.newNum??1;return{oldStart:v,oldCount:t.filter(e=>e.type!==`addition`).length,newStart:y,newCount:t.filter(e=>e.type!==`deletion`).length,lines:t}}),additions:a,deletions:o}}var jB=5;function MB({additions:e,deletions:t}){let n=e+t;if(n===0)return null;let r=Math.round(e/n*jB);return(0,B.jsx)(`span`,{className:DB.statBar,children:Array.from({length:jB},(e,t)=>(0,B.jsx)(`span`,{className:`${DB.statBlock} ${tAB(t,n),[t,n]);return(0,B.jsx)(um,{open:e,title:o(`config_management.diff.title`),onClose:i,width:`min(1200px, 90vw)`,className:DB.diffModal,closeDisabled:a,footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:i,disabled:a,children:o(`common.cancel`)}),(0,B.jsx)(V,{onClick:r,loading:a,disabled:a,children:o(`config_management.diff.confirm`)})]}),children:(0,B.jsx)(`div`,{className:DB.content,children:s.hunks.length===0?(0,B.jsx)(`div`,{className:DB.emptyState,children:o(`config_management.diff.no_changes`)}):(0,B.jsxs)(`div`,{className:DB.diffContainer,children:[(0,B.jsxs)(`div`,{className:DB.fileHeader,children:[(0,B.jsx)(`svg`,{className:DB.fileIcon,viewBox:`0 0 16 16`,width:`16`,height:`16`,children:(0,B.jsx)(`path`,{fillRule:`evenodd`,d:`M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z`,fill:`currentColor`})}),(0,B.jsx)(`span`,{className:DB.fileName,children:`config.yaml`}),(0,B.jsxs)(`span`,{className:DB.fileStats,children:[(0,B.jsxs)(`span`,{className:DB.statAdditions,children:[`+`,s.additions]}),(0,B.jsxs)(`span`,{className:DB.statDeletions,children:[`-`,s.deletions]}),(0,B.jsx)(MB,{additions:s.additions,deletions:s.deletions})]})]}),(0,B.jsx)(`div`,{className:DB.diffBody,children:s.hunks.map((e,t)=>(0,B.jsxs)(`div`,{className:DB.hunk,children:[(0,B.jsxs)(`div`,{className:DB.hunkHeader,children:[(0,B.jsx)(`span`,{className:DB.hunkGutter,children:(0,B.jsx)(`svg`,{className:DB.hunkExpandIcon,viewBox:`0 0 16 16`,width:`12`,height:`12`,children:(0,B.jsx)(`path`,{d:`M8.177 1.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V5H5.104a.25.25 0 01-.177-.427l2.896-2.896a.25.25 0 01.354 0zM7.25 11.75a.75.75 0 011.5 0V13h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 13H7.25v-1.25z`,fill:`currentColor`})})}),(0,B.jsx)(`span`,{className:DB.hunkGutter}),(0,B.jsxs)(`span`,{className:DB.hunkText,children:[`@@ -`,e.oldStart,`,`,e.oldCount,` +`,e.newStart,`,`,e.newCount,` @@`]})]}),e.lines.map((e,n)=>(0,B.jsxs)(`div`,{className:`${DB.diffLine} ${DB[e.type]}`,children:[(0,B.jsx)(`span`,{className:`${DB.lineNum} ${e.oldNum===null?DB.lineNumEmpty:``}`,children:e.oldNum??``}),(0,B.jsx)(`span`,{className:`${DB.lineNum} ${e.newNum===null?DB.lineNumEmpty:``}`,children:e.newNum??``}),(0,B.jsx)(`span`,{className:DB.linePrefix,children:e.type===`deletion`?`-`:e.type===`addition`?`+`:` `}),(0,B.jsx)(`code`,{className:DB.lineText,children:e.text||` `})]},`${t}-${n}`))]},t))})]})})})}var PB={container:`ConfigPage-module__container___5kN-Y`,pageHeader:`ConfigPage-module__pageHeader___Zulyi`,pageHeaderCopy:`ConfigPage-module__pageHeaderCopy___fiTfJ`,pageEyebrow:`ConfigPage-module__pageEyebrow___Oib1p`,pageTitle:`ConfigPage-module__pageTitle___BoVLE`,description:`ConfigPage-module__description___qruwQ`,pageMeta:`ConfigPage-module__pageMeta___NX40i`,statusBadge:`ConfigPage-module__statusBadge___dQAmD`,tabBar:`ConfigPage-module__tabBar___PelpE`,tabItem:`ConfigPage-module__tabItem___Uj1rU`,tabActive:`ConfigPage-module__tabActive___sZLh-`,workspaceShell:`ConfigPage-module__workspaceShell___Ztz3J`,content:`ConfigPage-module__content___PgFbt`,sourceWorkspace:`ConfigPage-module__sourceWorkspace___bUuLs`,sourceToolbar:`ConfigPage-module__sourceToolbar___fhCdI`,searchInputWrapper:`ConfigPage-module__searchInputWrapper___-GeEQ`,searchInput:`ConfigPage-module__searchInput___ock8o`,searchRight:`ConfigPage-module__searchRight___pwWBV`,searchCount:`ConfigPage-module__searchCount___AIry7`,searchButton:`ConfigPage-module__searchButton___GRbfi`,searchActions:`ConfigPage-module__searchActions___ZGITa`,editorWrapper:`ConfigPage-module__editorWrapper___yBudn`,modified:`ConfigPage-module__modified___4mzgT`,saved:`ConfigPage-module__saved___zmZx2`,error:`ConfigPage-module__error___qlpX1`,floatingActionContainer:`ConfigPage-module__floatingActionContainer___3ZQ-z`,floatingActionList:`ConfigPage-module__floatingActionList___ky8bV`,floatingStatus:`ConfigPage-module__floatingStatus___u8zOi`,floatingStatusCompact:`ConfigPage-module__floatingStatusCompact___STwcZ`,floatingActionButton:`ConfigPage-module__floatingActionButton___Htxmz`,dirtyDot:`ConfigPage-module__dirtyDot___zXEnD`};function FB(){return FB=Object.assign?Object.assign.bind():function(e){for(var t=1;t{}));function LB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RB=o((()=>{}));function zB(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}function BB(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}function VB(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-NV,r),o=e.sliceDoc(i,i+NV),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=2*NV?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+NV),d=e.sliceDoc(i-NV,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function HB(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function UB(e,t,n=t.selection.ranges){let r=n.map(e=>BB(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>VB(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;ti&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;ee.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}function GB(e={}){return[RV,LV.of(e),X.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?zV:e.inputType==`historyRedo`?BV:null;return n?(e.preventDefault(),n(t)):!1}})]}function KB(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(RV,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}function qB(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function JB(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e=t&&i<=o&&(r=!0)}}),r}function YB(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function XB(e,t){return e.length?t.length?e.concat(t):e:t}function ZB(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-GV));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),qB(e,e.length-1,1e9,n.setSelAfter(r)))}else return[UV.selection([t])]}function QB(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function $B(e,t){if(!e.length)return e;let n=e.length,r=WV;for(;n;){let i=eV(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}else t=i.mapped,n--,r=i.selectionsAfter}return r.length?[UV.selection(r)]:WV}function eV(e,t,n){let r=XB(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):WV,n);if(!e.changes)return UV.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new UV(i,rk.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}function tV(e,t){return J.create(e.ranges.map(t),e.mainIndex)}function nV(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function rV({state:e,dispatch:t},n){let r=tV(e.selection,n);return r.eq(e.selection,!0)?!1:(t(nV(e,r)),!0)}function iV(e,t){return J.cursor(t?e.to:e.from)}function aV(e,t){return rV(e,n=>n.empty?e.moveByChar(n,t):iV(n,t))}function oV(e){return e.textDirectionAt(e.state.selection.main.head)==NN.LTR}function sV(e,t){return rV(e,n=>n.empty?e.moveByGroup(n,t):iV(n,t))}function cV(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function lV(e,t,n){let r=ZL(e).resolveInner(t.head),i=n?QI.closedBy:QI.openedBy;for(let a=t.head;;){let t=n?r.childAfter(a):r.childBefore(a);if(!t)break;cV(e,t,i)?r=t:a=n?t.to:t.from}let a=r.type.prop(i),o,s;return s=a&&(o=n?MR(e,r.from,1):MR(e,r.to,-1))&&o.matched?n?o.end.to:o.end.from:n?r.to:r.from,J.cursor(s,n?-1:1)}function uV(e,t){return rV(e,n=>{if(!n.empty)return iV(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}function dV(e){let t=e.scrollDOM.clientHeightr.empty?e.moveVertically(r,t,n.height):iV(r,t));if(i.eq(r.selection))return!1;let a;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),o=e.scrollDOM.getBoundingClientRect(),s=o.top+n.marginTop,c=o.bottom-n.marginBottom;t&&t.top>s&&t.bottom{let i=MR(e,t.head,-1)||MR(e,t.head,1)||t.head>0&&MR(e,t.head-1,1)||t.head{let n=t(e);return J.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return n.eq(e.state.selection)?!1:(e.dispatch(nV(e.state,n)),!0)}function gV(e,t){return hV(e,n=>e.moveByChar(n,t))}function _V(e,t){return hV(e,n=>e.moveByGroup(n,t))}function vV(e,t){return hV(e,n=>e.moveVertically(n,t))}function yV(e,t){return hV(e,n=>e.moveVertically(n,t,dV(e).height))}function bV(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.heada.to){i.some(e=>e.head==r.head)||i.push(r);break}else if(r.head==n.head)break;else n=r}}return i.length==r.ranges.length?!1:(e.dispatch(nV(n,J.create(i,i.length-1))),!0)}function xV(e,t){if(e.state.readOnly)return!1;let n=`delete.selection`,{state:r}=e,i=r.changeByRange(r=>{let{from:i,to:a}=r;if(i==a){let o=t(r);oi&&(n=`delete.forward`,o=SV(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=SV(e,i,!1),a=SV(e,a,!0);return i==a?{range:r}:{changes:{from:i,to:a},range:J.cursor(i,it(e)))r.between(t,t,(e,r)=>{et&&(t=n?r:e)});return t}function CV(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function wV(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of CV(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(J.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(J.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:J.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}function TV(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of CV(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:`input.copyline`})),!0}function EV(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=ZL(e).resolveInner(t),r=n.childBefore(t),i=n.childAfter(t),a;return r&&i&&r.to<=t&&i.from>=t&&(a=r.type.prop(QI.closedBy))&&a.indexOf(i.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(i.from).from&&!/\S/.test(e.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}function DV(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&EV(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new QR(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=tR(s,r);for(c??(c=xO(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize));ia.from&&r{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:J.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var kV,AV,jV,MV,NV,PV,FV,IV,LV,RV,zV,BV,VV,HV,UV,WV,GV,KV,qV,JV,YV,XV,ZV,QV,$V,eH,tH,nH,rH,iH,aH,oH,sH,cH,lH,uH,dH,fH,pH,mH,hH,gH,_H,vH,yH,bH,xH,SH,CH,wH,TH,EH,DH,OH,kH,AH,jH,MH,NH,PH,FH,IH,LH,RH,zH,BH,VH,HH,UH,WH,GH,KH,qH,JH,YH,XH,ZH,QH,$H,eU,tU,nU,rU,iU,aU,oU,sU,cU,lU,uU=o((()=>{vk(),RI(),Rz(),yL(),kV=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=BB(e.state,n.from);return r.line?AV(e):r.block?MV(e):!1},AV=zB(WB,0),jV=zB(UB,0),MV=zB((e,t)=>UB(e,t,HB(t)),0),NV=50,PV=ek.define(),FV=ek.define(),IV=LO.define(),LV=LO.define({combine(e){return dO(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),RV=BO.define({create(){return qV.empty},update(e,t){let n=t.state.facet(LV),r=t.annotation(PV);if(r){let i=UV.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?qB(o,o.length,n.minDepth,i):ZB(o,t.startState.selection),new qV(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(FV);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(ik.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=UV.fromTransaction(t),o=t.annotation(ik.time),s=t.annotation(ik.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new qV(e.done.map(UV.fromJSON),e.undone.map(UV.fromJSON))}}),zV=KB(0,!1),BV=KB(1,!1),VV=KB(0,!0),HV=KB(1,!0),UV=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&NO.fromJSON(t.changes),[],t.mapped&&MO.fromJSON(t.mapped),t.startSelection&&J.fromJSON(t.startSelection),t.selectionsAfter.map(J.fromJSON))}static fromTransaction(t,n){let r=WV;for(let e of t.startState.facet(IV)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,WV)}static selection(t){return new e(void 0,WV,void 0,void 0,t)}},WV=[],GV=200,KV=/^(input\.type|delete)($|\.)/,qV=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||KV.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime0&&n-this.prevTimeaV(e,!oV(e)),XV=e=>aV(e,oV(e)),ZV=e=>sV(e,!oV(e)),QV=e=>sV(e,oV(e)),typeof Intl<`u`&&Intl.Segmenter,$V=e=>rV(e,t=>lV(e.state,t,!oV(e))),eH=e=>rV(e,t=>lV(e.state,t,oV(e))),tH=e=>uV(e,!1),nH=e=>uV(e,!0),rH=e=>fV(e,!1),iH=e=>fV(e,!0),aH=e=>rV(e,t=>pV(e,t,!0)),oH=e=>rV(e,t=>pV(e,t,!1)),sH=e=>rV(e,t=>pV(e,t,!oV(e))),cH=e=>rV(e,t=>pV(e,t,oV(e))),lH=e=>rV(e,t=>J.cursor(e.lineBlockAt(t.head).from,1)),uH=e=>rV(e,t=>J.cursor(e.lineBlockAt(t.head).to,-1)),dH=({state:e,dispatch:t})=>mV(e,t,!1),fH=e=>gV(e,!oV(e)),pH=e=>gV(e,oV(e)),mH=e=>_V(e,!oV(e)),hH=e=>_V(e,oV(e)),gH=e=>hV(e,t=>lV(e.state,t,!oV(e))),_H=e=>hV(e,t=>lV(e.state,t,oV(e))),vH=e=>vV(e,!1),yH=e=>vV(e,!0),bH=e=>yV(e,!1),xH=e=>yV(e,!0),SH=e=>hV(e,t=>pV(e,t,!0)),CH=e=>hV(e,t=>pV(e,t,!1)),wH=e=>hV(e,t=>pV(e,t,!oV(e))),TH=e=>hV(e,t=>pV(e,t,oV(e))),EH=e=>hV(e,t=>J.cursor(e.lineBlockAt(t.head).from)),DH=e=>hV(e,t=>J.cursor(e.lineBlockAt(t.head).to)),OH=({state:e,dispatch:t})=>(t(nV(e,{anchor:0})),!0),kH=({state:e,dispatch:t})=>(t(nV(e,{anchor:e.doc.length})),!0),AH=({state:e,dispatch:t})=>(t(nV(e,{anchor:e.selection.main.anchor,head:0})),!0),jH=({state:e,dispatch:t})=>(t(nV(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),MH=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),NH=({state:e,dispatch:t})=>{let n=CV(e).map(({from:t,to:n})=>J.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:J.create(n),userEvent:`select`})),!0},PH=({state:e,dispatch:t})=>{let n=tV(e.selection,t=>{let n=ZL(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return J.range(n.to,n.from)}return t});return n.eq(e.selection)?!1:(t(nV(e,n)),!0)},FH=e=>bV(e,!1),IH=e=>bV(e,!0),LH=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=J.create([n.main]):n.main.empty||(r=J.create([J.cursor(n.main.head)])),r?(t(nV(e,r)),!0):!1},RH=(e,t,n)=>xV(e,r=>{let i=r.from,{state:a}=e,o=a.doc.lineAt(i),s,c;if(n&&!t&&i>o.from&&iRH(e,!1,!0),BH=e=>RH(e,!0,!1),VH=(e,t)=>xV(e,n=>{let r=n.head,{state:i}=e,a=i.doc.lineAt(r),o=i.charCategorizer(r);for(let e=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?i.doc.lines:1)&&(r+=t?1:-1);break}let s=ID(a.text,r-a.from,t)+a.from,c=a.text.slice(Math.min(r,s)-a.from,Math.max(r,s)-a.from),l=o(c);if(e!=null&&l!=e)break;(c!=` `||r!=n.head)&&(e=l),r=s}return r}),HH=e=>VH(e,!1),UH=e=>VH(e,!0),WH=e=>xV(e,t=>{let n=e.lineBlockAt(t.head).to;return t.headxV(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),KH=e=>xV(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:CO.of([``,``])},range:J.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},JH=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n),i=n==r.from?n-1:ID(r.text,n-r.from,!1)+r.from,a=n==r.to?n+1:ID(r.text,n-r.from,!0)+r.from;return{changes:{from:i,to:a,insert:e.doc.slice(n,a).append(e.doc.slice(i,n))},range:J.cursor(a)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:`move.character`})),!0)},YH=({state:e,dispatch:t})=>wV(e,t,!1),XH=({state:e,dispatch:t})=>wV(e,t,!0),ZH=({state:e,dispatch:t})=>TV(e,t,!1),QH=({state:e,dispatch:t})=>TV(e,t,!0),$H=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(CV(t).map(({from:e,to:n})=>(e>0?e--:n{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0},eU=DV(!1),tU=DV(!0),nU=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new QR(e,{overrideIndentation:e=>n[e]??-1}),i=OV(e,(t,i,a)=>{let o=tR(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=eR(e,o);(s!=c||a.frome.readOnly?!1:(t(e.update(OV(e,(t,n)=>{n.push({from:t.from,insert:e.facet(ZR)})}),{userEvent:`input.indent`})),!0),iU=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(OV(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=xO(r,e.tabSize),a=0,o=eR(e,Math.max(0,i-$L(e)));for(;a(e.setTabFocusMode(),!0),oU=[{key:`Ctrl-b`,run:YV,shift:fH,preventDefault:!0},{key:`Ctrl-f`,run:XV,shift:pH},{key:`Ctrl-p`,run:tH,shift:vH},{key:`Ctrl-n`,run:nH,shift:yH},{key:`Ctrl-a`,run:lH,shift:EH},{key:`Ctrl-e`,run:uH,shift:DH},{key:`Ctrl-d`,run:BH},{key:`Ctrl-h`,run:zH},{key:`Ctrl-k`,run:WH},{key:`Ctrl-Alt-h`,run:HH},{key:`Ctrl-o`,run:qH},{key:`Ctrl-t`,run:JH},{key:`Ctrl-v`,run:iH}],sU=[{key:`ArrowLeft`,run:YV,shift:fH,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:ZV,shift:mH,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:sH,shift:wH,preventDefault:!0},{key:`ArrowRight`,run:XV,shift:pH,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:QV,shift:hH,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:cH,shift:TH,preventDefault:!0},{key:`ArrowUp`,run:tH,shift:vH,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:OH,shift:AH},{mac:`Ctrl-ArrowUp`,run:rH,shift:bH},{key:`ArrowDown`,run:nH,shift:yH,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:kH,shift:jH},{mac:`Ctrl-ArrowDown`,run:iH,shift:xH},{key:`PageUp`,run:rH,shift:bH},{key:`PageDown`,run:iH,shift:xH},{key:`Home`,run:oH,shift:CH,preventDefault:!0},{key:`Mod-Home`,run:OH,shift:AH},{key:`End`,run:aH,shift:SH,preventDefault:!0},{key:`Mod-End`,run:kH,shift:jH},{key:`Enter`,run:eU,shift:eU},{key:`Mod-a`,run:MH},{key:`Backspace`,run:zH,shift:zH,preventDefault:!0},{key:`Delete`,run:BH,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:HH,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:UH,preventDefault:!0},{mac:`Mod-Backspace`,run:GH,preventDefault:!0},{mac:`Mod-Delete`,run:KH,preventDefault:!0}].concat(oU.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),cU=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:$V,shift:gH},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:eH,shift:_H},{key:`Alt-ArrowUp`,run:YH},{key:`Shift-Alt-ArrowUp`,run:ZH},{key:`Alt-ArrowDown`,run:XH},{key:`Shift-Alt-ArrowDown`,run:QH},{key:`Mod-Alt-ArrowUp`,run:FH},{key:`Mod-Alt-ArrowDown`,run:IH},{key:`Escape`,run:LH},{key:`Mod-Enter`,run:tU},{key:`Alt-l`,mac:`Ctrl-l`,run:NH},{key:`Mod-i`,run:PH,preventDefault:!0},{key:`Mod-[`,run:iU},{key:`Mod-]`,run:rU},{key:`Mod-Alt-\\`,run:nU},{key:`Shift-Mod-k`,run:$H},{key:`Shift-Mod-\\`,run:dH},{key:`Mod-/`,run:kV},{key:`Alt-A`,run:jV},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:aU}].concat(sU),lU={key:`Tab`,run:rU,shift:iU}}));function dU(e){try{return new RegExp(e,FU),!0}catch{return!1}}function fU(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t=56320&&r<57344;)t++;return t}function pU(e){let t=Pk(`input`,{class:`cm-textfield`,name:`line`,value:String(e.state.doc.lineAt(e.state.selection.main.head).number)}),n=Pk(`form`,{class:`cm-gotoLine`,onkeydown:t=>{t.keyCode==27?(t.preventDefault(),e.dispatch({effects:BU.of(!1)}),e.focus()):t.keyCode==13&&(t.preventDefault(),r())},onsubmit:e=>{e.preventDefault(),r()}},Pk(`label`,e.state.phrase(`Go to line`),`: `,t),` `,Pk(`button`,{class:`cm-button`,type:`submit`},e.state.phrase(`go`)),Pk(`button`,{name:`close`,onclick:()=>{e.dispatch({effects:BU.of(!1)}),e.focus()},"aria-label":e.state.phrase(`close`),type:`button`},[`×`]));function r(){let n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!n)return;let{state:r}=e,i=r.doc.lineAt(r.selection.main.head),[,a,o,s,c]=n,l=s?+s.slice(1):0,u=o?+o:i.number;if(o&&c){let e=u/100;a&&(e=e*(a==`-`?-1:1)+i.number/r.doc.lines),u=Math.round(r.doc.lines*e)}else o&&a&&(u=u*(a==`-`?-1:1)+i.number);let d=r.doc.line(Math.max(1,Math.min(r.doc.lines,u))),f=J.cursor(d.from+Math.max(0,Math.min(l,d.length)));e.dispatch({effects:[BU.of(!1),X.scrollIntoView(f.from,{y:`center`})],selection:f}),e.focus()}return{dom:n}}function mU(e){let t=[YU,JU];return e&&t.push(GU.of(e)),t}function hU(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=ok.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=ok.Word)}function gU(e,t,n,r){return e(t.sliceDoc(n,n+1))==ok.Word&&e(t.sliceDoc(r-1,r))==ok.Word}function _U(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new NU(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new NU(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}function vU(e){return e?[QU.of(e),CW]:CW}function yU(e,t,n,r){return new NU(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?bU(t.doc,t.charCategorizer(t.selection.main.head)):void 0)}function bU(e,t){return(n,r,i,a)=>((a>n||a+i.length!r[0].length||(e(SU(r.input,r.index))!=ok.Word||e(CU(r.input,r.index))!=ok.Word)&&(e(CU(r.input,r.index+r[0].length))!=ok.Word||e(SU(r.input,r.index+r[0].length))!=ok.Word)}function TU(e){return t=>{let n=t.state.field(aW,!1);return n&&n.query.spec.valid?e(t,n):gW(t)}}function EU(e){return e.state.facet(QU).createPanel(e)}function DU(e,t){let n=e.selection.main,r=n.empty||n.to>n.from+100?``:e.sliceDoc(n.from,n.to);if(t&&!r)return t;let i=e.facet(QU);return new $U({search:t?.literal??i.literal?r:r.replace(/\n/g,`\\n`),caseSensitive:t?.caseSensitive??i.caseSensitive,literal:t?.literal??i.literal,regexp:t?.regexp??i.regexp,wholeWord:t?.wholeWord??i.wholeWord})}function OU(e){let t=VM(e,EU);return t&&t.dom.querySelector(`[main-field]`)}function kU(e){let t=OU(e);t&&t==e.root.activeElement&&t.select()}function AU(e,t){return e.state.phrase(t)}function jU(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),i=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-bW),o=Math.min(i,n+bW),s=e.state.sliceDoc(a,o);if(a!=r.from){for(let e=0;es.length-bW;e--)if(!xW.test(s[e-1])&&xW.test(s[e])){s=s.slice(0,e);break}}return X.announce.of(`${e.state.phrase(`current match`)}. ${s} ${e.state.phrase(`on line`)} ${r.number}.`)}var MU,NU,PU,FU,IU,LU,RU,zU,BU,VU,HU,UU,WU,GU,KU,qU,JU,YU,XU,ZU,QU,$U,eW,tW,nW,rW,iW,aW,oW,sW,cW,lW,uW,dW,fW,pW,mW,hW,gW,_W,vW,yW,bW,xW,SW,CW,wW=o((()=>{RI(),vk(),Ik(),MU=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,NU=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(MU(e)):MU,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return zD(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=BD(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=VD(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n;;e++){let a=r.charCodeAt(e),o=this.match(a,i,this.bufferPos+this.bufferStart);if(e==r.length-1){if(o)return this.value=o,this;break}i==n&&ethis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=fU(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(nthis.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return LU.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=fU(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=RU.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}},typeof Symbol<`u`&&(IU.prototype[Symbol.iterator]=zU.prototype[Symbol.iterator]=function(){return this}),BU=rk.define(),VU=BO.define({create(){return!0},update(e,t){for(let n of t.effects)n.is(BU)&&(e=n.value);return e},provide:e=>bI.from(e,e=>e?pU:null)}),HU=e=>{let t=VM(e,pU);if(!t){let n=[BU.of(!0)];e.state.field(VU,!1)??n.push(rk.appendConfig.of([VU,UU])),e.dispatch({effects:n}),t=VM(e,pU)}return t&&t.dom.querySelector(`input`).select(),!0},UU=X.baseTheme({".cm-panel.cm-gotoLine":{padding:`2px 6px 4px`,position:`relative`,"& label":{fontSize:`80%`},"& [name=close]":{position:`absolute`,top:`0`,bottom:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:`0`}}}),WU={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},GU=LO.define({combine(e){return dO(e,WU,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}}),KU=wN.mark({class:`cm-selectionMatch`}),qU=wN.mark({class:`cm-selectionMatch cm-selectionMatch-main`}),JU=cP.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(GU),{state:n}=e,r=n.selection;if(r.ranges.length>1)return wN.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return wN.none;let e=n.wordAt(i.head);if(!e)return wN.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e200)return wN.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(hU(o,n,i.from,i.to)&&gU(o,n,i.from,i.to)))return wN.none}else if(a=n.sliceDoc(i.from,i.to),!a)return wN.none}let s=[];for(let r of e.visibleRanges){let e=new NU(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||hU(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(qU.range(r,a)):(r>=i.to||a<=i.from)&&s.push(KU.range(r,a)),s.length>t.maxMatches))return wN.none}}return wN.set(s)}},{decorations:e=>e.decorations}),YU=X.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),XU=({state:e,dispatch:t})=>{let{selection:n}=e,r=J.create(n.ranges.map(t=>e.wordAt(t.head)||J.cursor(t.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)},ZU=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return XU({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=_U(e,r);return i?(t(e.update({selection:e.selection.addRange(J.range(i.from,i.to),!1),effects:X.scrollIntoView(i.to)})),!0):!1},QU=LO.define({combine(e){return dO(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new yW(e),scrollToMatch:e=>X.scrollIntoView(e)})}}),$U=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||dU(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?` `:t==`r`?`\r`:t==`t`?` `:`\\`)}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new nW(this):new tW(this)}getCursor(e,t=0,n){let r=e.doc?e:lk.create({doc:e});return n??(n=r.doc.length),this.regexp?xU(this,r,t,n):yU(this,r,t,n)}},eW=class{constructor(e){this.spec=e}},tW=class extends eW{constructor(e){super(e)}nextMatch(e,t,n){let r=yU(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let n=Math.min(e.doc.length,t+this.spec.unquoted.length);r=yU(this.spec,e,0,n).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let n=Math.max(t,r-1e4-this.spec.unquoted.length),i=yU(this.spec,e,n,r),a=null;for(;!i.nextOverlapping().done;)a=i.value;if(a)return a;if(n==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||(r=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=yU(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=yU(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},nW=class extends eW{nextMatch(e,t,n){let r=xU(this.spec,e,n,e.doc.length).next();return r.done&&(r=xU(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let i=Math.max(t,n-r*1e4),a=xU(this.spec,e,i,n),o=null;for(;!a.next().done;)o=a.value;if(o&&(i==t||o.from>i+10))return o;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n==`&`)return e.match[0];if(n==`$`)return`$`;for(let t=n.length;t>0;t--){let r=+n.slice(0,t);if(r>0&&r=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=xU(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},rW=rk.define(),iW=rk.define(),aW=BO.define({create(e){return new oW(DU(e).create(),null)},update(e,t){for(let n of t.effects)n.is(rW)?e=new oW(n.value.create(),e.panel):n.is(iW)&&(e=new oW(e.query,n.value?EU:null));return e},provide:e=>bI.from(e,e=>e.panel)}),oW=class{constructor(e,t){this.query=e,this.panel=t}},sW=wN.mark({class:`cm-searchMatch`}),cW=wN.mark({class:`cm-searchMatch cm-searchMatch-selected`}),lW=cP.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(aW))}update(e){let t=e.state.field(aW);(t!=e.startState.field(aW)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return wN.none;let{view:n}=this,r=new mk;for(let t=0,i=n.visibleRanges,a=i.length;ti[t+1].from-500;)s=i[++t].to;e.highlight(n.state,o,s,(e,t)=>{let i=n.state.selection.ranges.some(n=>n.from==e&&n.to==t);r.add(e,t,i?cW:sW)})}return r.finish()}},{decorations:e=>e.decorations}),uW=TU((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let i=J.single(r.from,r.to),a=e.state.facet(QU);return e.dispatch({selection:i,effects:[jU(e,r),a.scrollToMatch(i.main,e)],userEvent:`select.search`}),kU(e),!0}),dW=TU((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,i=t.prevMatch(n,r,r);if(!i)return!1;let a=J.single(i.from,i.to),o=e.state.facet(QU);return e.dispatch({selection:a,effects:[jU(e,i),o.scrollToMatch(a.main,e)],userEvent:`select.search`}),kU(e),!0}),fW=TU((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:J.create(n.map(e=>J.range(e.from,e.to))),userEvent:`select.search.matches`}),!0)}),pW=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:i}=n.main,a=[],o=0;for(let t=new NU(e.doc,e.sliceDoc(r,i));!t.next().done;){if(a.length>1e3)return!1;t.value.from==r&&(o=a.length),a.push(J.range(t.value.from,t.value.to))}return t(e.update({selection:J.create(a,o),userEvent:`select.search.matches`})),!0},mW=TU((e,{query:t})=>{let{state:n}=e,{from:r,to:i}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let o=a,s=[],c,l,u=[];o.from==r&&o.to==i&&(l=n.toText(t.getReplacement(o)),s.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),u.push(X.announce.of(n.phrase(`replaced match on line $`,n.doc.lineAt(r).number)+`.`)));let d=e.state.changes(s);return o&&(c=J.single(o.from,o.to).map(d),u.push(jU(e,o)),u.push(n.facet(QU).scrollToMatch(c.main,e))),e.dispatch({changes:d,selection:c,effects:u,userEvent:`input.replace`}),!0}),hW=TU((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map(e=>{let{from:n,to:r}=e;return{from:n,to:r,insert:t.getReplacement(e)}});if(!n.length)return!1;let r=e.state.phrase(`replaced $ matches`,n.length)+`.`;return e.dispatch({changes:n,effects:X.announce.of(r),userEvent:`input.replace.all`}),!0}),gW=e=>{let t=e.state.field(aW,!1);if(t&&t.panel){let n=OU(e);if(n&&n!=e.root.activeElement){let r=DU(e.state,t.query.spec);r.valid&&e.dispatch({effects:rW.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[iW.of(!0),t?rW.of(DU(e.state,t.query.spec)):rk.appendConfig.of(CW)]});return!0},_W=e=>{let t=e.state.field(aW,!1);if(!t||!t.panel)return!1;let n=VM(e,EU);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:iW.of(!1)}),!0},vW=[{key:`Mod-f`,run:gW,scope:`editor search-panel`},{key:`F3`,run:uW,shift:dW,scope:`editor search-panel`,preventDefault:!0},{key:`Mod-g`,run:uW,shift:dW,scope:`editor search-panel`,preventDefault:!0},{key:`Escape`,run:_W,scope:`editor search-panel`},{key:`Mod-Shift-l`,run:pW},{key:`Mod-Alt-g`,run:HU},{key:`Mod-d`,run:ZU,preventDefault:!0}],yW=class{constructor(e){this.view=e;let t=this.query=e.state.field(aW).query.spec;this.commit=this.commit.bind(this),this.searchField=Pk(`input`,{value:t.search,placeholder:AU(e,`Find`),"aria-label":AU(e,`Find`),class:`cm-textfield`,name:`search`,form:``,"main-field":`true`,onchange:this.commit,onkeyup:this.commit}),this.replaceField=Pk(`input`,{value:t.replace,placeholder:AU(e,`Replace`),"aria-label":AU(e,`Replace`),class:`cm-textfield`,name:`replace`,form:``,onchange:this.commit,onkeyup:this.commit}),this.caseField=Pk(`input`,{type:`checkbox`,name:`case`,form:``,checked:t.caseSensitive,onchange:this.commit}),this.reField=Pk(`input`,{type:`checkbox`,name:`re`,form:``,checked:t.regexp,onchange:this.commit}),this.wordField=Pk(`input`,{type:`checkbox`,name:`word`,form:``,checked:t.wholeWord,onchange:this.commit});function n(e,t,n){return Pk(`button`,{class:`cm-button`,name:e,onclick:t,type:`button`},n)}this.dom=Pk(`div`,{onkeydown:e=>this.keydown(e),class:`cm-search`},[this.searchField,n(`next`,()=>uW(e),[AU(e,`next`)]),n(`prev`,()=>dW(e),[AU(e,`previous`)]),n(`select`,()=>fW(e),[AU(e,`all`)]),Pk(`label`,null,[this.caseField,AU(e,`match case`)]),Pk(`label`,null,[this.reField,AU(e,`regexp`)]),Pk(`label`,null,[this.wordField,AU(e,`by word`)]),...e.state.readOnly?[]:[Pk(`br`),this.replaceField,n(`replace`,()=>mW(e),[AU(e,`replace`)]),n(`replaceAll`,()=>hW(e),[AU(e,`replace all`)])],Pk(`button`,{name:`close`,onclick:()=>_W(e),"aria-label":AU(e,`close`),type:`button`},[`×`])])}commit(){let e=new $U({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:rW.of(e)}))}keydown(e){lM(this.view,e,`search-panel`)?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?dW:uW)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),mW(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(rW)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(QU).top}},bW=30,xW=/[\s\.,:;?!]/,SW=X.baseTheme({".cm-panel.cm-search":{padding:`2px 6px 4px`,position:`relative`,"& [name=close]":{position:`absolute`,top:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0},"& input, & button, & label":{margin:`.2em .6em .2em 0`},"& input[type=checkbox]":{marginRight:`.2em`},"& label":{fontSize:`80%`,whiteSpace:`pre`}},"&light .cm-searchMatch":{backgroundColor:`#ffff0054`},"&dark .cm-searchMatch":{backgroundColor:`#00ffff8a`},"&light .cm-searchMatch-selected":{backgroundColor:`#ff6a0054`},"&dark .cm-searchMatch-selected":{backgroundColor:`#ff00ff8a`}}),CW=[aW,HO.low(lW),SW]}));function TW(e){let t=Object.keys(e).join(``),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,``)),`[${n?`\\w`:``}${t.replace(/[^\w\s]/g,`\\$&`)}]`}function EW(e){let t=Object.create(null),n=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;etypeof e==`string`?{label:e}:e),[n,r]=t.every(e=>/^\w+$/.test(e.label))?[/\w*$/,/\w+$/]:EW(t);return e=>{let i=e.matchBefore(r);return i||e.explicit?{from:i?i.from:e.pos,options:t,validFor:n}:null}}function OW(e){return e.selection.main.from}function kW(e,t){let{source:n}=e,r=t&&n[0]!=`^`,i=n[n.length-1]!=`$`;return!r&&!i?e:RegExp(`${r?`^`:``}(?:${n})${i?`$`:``}`,e.flags??(e.ignoreCase?`i`:``))}function AW(e,t,n,r){let{main:i}=e.selection,a=n-i.from,o=r-i.from;return{...e.changeByRange(s=>{if(s!=i&&n!=r&&e.sliceDoc(s.from+a,s.from+o)!=e.sliceDoc(n,r))return{range:s};let c=e.toText(t);return{changes:{from:s.from+a,to:r==i.from?s.to:s.from+o,insert:c},range:J.cursor(s.from+a+c.length)}}),scrollIntoView:!0,userEvent:`input.complete`}}function jW(e){if(!Array.isArray(e))return e;let t=lG.get(e);return t||lG.set(e,t=DW(e)),t}function MW(e,t){return e?t?e+` `+t:e:t}function NW(e,t,n,r,i,a){let o=e.textDirection==NN.RTL,s=o,c=!1,l=`top`,u,d,f=t.left-i.left,p=i.right-t.right,m=r.right-r.left,h=r.bottom-r.top;if(s&&f=h||e>t.top?u=n.bottom-t.top:(l=`bottom`,u=t.bottom-n.top)}let g=(t.bottom-t.top)/a.offsetHeight,_=(t.right-t.left)/a.offsetWidth;return{style:`${l}: ${u/g}px; max-width: ${d/_}px`,class:`cm-completionInfo-`+(c?o?`left-narrow`:`right-narrow`:s?`left`:`right`)}}function PW(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement(`div`);return t.classList.add(`cm-completionIcon`),e.type&&t.classList.add(...e.type.split(/\s+/g).map(e=>`cm-completionIcon-`+e)),t.setAttribute(`aria-hidden`,`true`),t},position:20}),t.push({render(e,t,n,r){let i=document.createElement(`span`);i.className=`cm-completionLabel`;let a=e.displayLabel||e.label,o=0;for(let e=0;eo&&i.appendChild(document.createTextNode(a.slice(o,t)));let s=i.appendChild(document.createElement(`span`));s.appendChild(document.createTextNode(a.slice(t,n))),s.className=`cm-completionMatchedText`,o=n}return oe.position-t.position).map(e=>e.render)}function FW(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let r=Math.floor((e-t)/n);return{from:e-(r+1)*n,to:e-r*n}}function IW(e,t){return n=>new hG(n,e,t)}function LW(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.height/e.offsetHeight;r.topn.bottom&&(e.scrollTop+=(r.bottom-n.bottom)/i)}function RW(e){return(e.boost||0)*100+(e.apply?10:0)+(e.info?5:0)+ +!!e.type}function zW(e,t){let n=[],r=null,i=null,a=e=>{n.push(e);let{section:t}=e.completion;if(t){r||(r=[]);let e=typeof t==`string`?t:t.name;r.some(t=>t.name==e)||r.push(typeof t==`string`?{name:e}:t)}},o=t.facet(mG);for(let r of e)if(r.hasResult()){let e=r.result.getMatch;if(r.result.filter===!1)for(let t of r.result.options)a(new sG(t,r.source,e?e(t):[],1e9-n.length));else{let n=t.sliceDoc(r.from,r.to),s,c=o.filterStrict?new pG(n):new fG(n);for(let t of r.result.options)if(s=c.match(t.label)){let n=t.displayLabel?e?e(t,s.matched):[]:s.matched,o=s.score+(t.boost||0);if(a(new sG(t,r.source,n,o)),typeof t.section==`object`&&t.section.rank===`dynamic`){let{name:e}=t.section;i||(i=Object.create(null)),i[e]=Math.max(o,i[e]||-1e9)}}}}if(r){let e=Object.create(null),t=0,a=(e,t)=>(e.rank===`dynamic`&&t.rank===`dynamic`?i[t.name]-i[e.name]:0)||(typeof e.rank==`number`?e.rank:1e9)-(typeof t.rank==`number`?t.rank:1e9)||(e.namet.score-e.score||l(e.completion,t.completion))){let t=e.completion;!c||c.label!=t.label||c.detail!=t.detail||c.type!=null&&t.type!=null&&c.type!=t.type||c.apply!=t.apply||c.boost!=t.boost?s.push(e):RW(e.completion)>RW(c)&&(s[s.length-1]=e),c=e.completion}return s}function BW(e,t){if(e==t)return!0;for(let n=0,r=0;;){for(;n-1&&(n[`aria-activedescendant`]=e+`-`+t),n}function HW(e,t){if(e.isUserEvent(`input.complete`)){let n=e.annotation(cG);if(n&&t.activateOnCompletion(n))return 12}let n=e.isUserEvent(`input.type`);return n&&t.activateOnTyping?5:n?1:e.isUserEvent(`delete.backward`)?2:e.selection?8:e.docChanged?16:0}function UW(e,t,n,r){if(!e)return!1;let i=t.sliceDoc(n,r);return typeof e==`function`?e(i,n,r,t):kW(e,!0).test(i)}function WW(e,t){let n=t.completion.apply||t.completion.label,r=e.state.field(TG).active.find(e=>e.source==t.source);return r instanceof SG?(typeof n==`string`?e.dispatch({...AW(e.state,n,r.from,r.to),annotations:cG.of(t.completion)}):n(e,t.completion,r.from,r.to),!0):!1}function GW(e,t=`option`){return n=>{let r=n.state.field(TG,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+i*(e?1:-1):e?0:o-1;return s<0?s=t==`page`?0:o-1:s>=o&&(s=t==`page`?o-1:0),n.dispatch({effects:wG.of(s)}),!0}}function KW(){return[UG,BG]}function qW(e){for(let t=0;t<16;t+=2)if(VG.charCodeAt(t)==e)return VG.charAt(t+1);return BD(e<128?e:e+1)}function JW(e,t){return e.languageDataAt(`closeBrackets`,t)[0]||LG}function YW(e,t){let n=JW(e,e.selection.main.head),r=n.brackets||LG.brackets;for(let i of r){let a=qW(zD(i,0));if(t==i)return a==i?tG(e,i,r.indexOf(i+i+i)>-1,n):$W(e,i,a,n.before||LG.before);if(t==a&&XW(e,e.selection.main.from))return eG(e,i,a)}return null}function XW(e,t){let n=!1;return e.field(BG).between(0,e.doc.length,e=>{e==t&&(n=!0)}),n}function ZW(e,t){let n=e.sliceString(t,t+2);return n.slice(0,VD(zD(n,0)))}function QW(e,t){let n=e.sliceString(t-2,t);return VD(zD(n,0))==n.length?n:n.slice(1)}function $W(e,t,n,r){let i=null,a=e.changeByRange(a=>{if(!a.empty)return{changes:[{insert:t,from:a.from},{insert:n,from:a.to}],effects:RG.of(a.to+t.length),range:J.range(a.anchor+t.length,a.head+t.length)};let o=ZW(e.doc,a.head);return!o||/\s/.test(o)||r.indexOf(o)>-1?{changes:{insert:t+n,from:a.head},effects:RG.of(a.head+t.length),range:J.cursor(a.head+t.length)}:{range:i=a}});return i?null:e.update(a,{scrollIntoView:!0,userEvent:`input.type`})}function eG(e,t,n){let r=null,i=e.changeByRange(t=>t.empty&&ZW(e.doc,t.head)==n?{changes:{from:t.head,to:t.head+n.length,insert:n},range:J.cursor(t.head+n.length)}:r={range:t});return r?null:e.update(i,{scrollIntoView:!0,userEvent:`input.type`})}function tG(e,t,n,r){let i=r.stringPrefixes||LG.stringPrefixes,a=null,o=e.changeByRange(r=>{if(!r.empty)return{changes:[{insert:t,from:r.from},{insert:t,from:r.to}],effects:RG.of(r.to+t.length),range:J.range(r.anchor+t.length,r.head+t.length)};let o=r.head,s=ZW(e.doc,o),c;if(s==t){if(nG(e,o))return{changes:{insert:t+t,from:o},effects:RG.of(o+t.length),range:J.cursor(o+t.length)};if(XW(e,o)){let r=n&&e.sliceDoc(o,o+t.length*3)==t+t+t?t+t+t:t;return{changes:{from:o,to:o+r.length,insert:r},range:J.cursor(o+r.length)}}}else if(n&&e.sliceDoc(o-2*t.length,o)==t+t&&(c=iG(e,o-2*t.length,i))>-1&&nG(e,c))return{changes:{insert:t+t+t+t,from:o},effects:RG.of(o+t.length),range:J.cursor(o+t.length)};else if(e.charCategorizer(o)(s)!=ok.Word&&iG(e,o,i)>-1&&!rG(e,o,t,i))return{changes:{insert:t+t,from:o},effects:RG.of(o+t.length),range:J.cursor(o+t.length)};return{range:a=r}});return a?null:e.update(o,{scrollIntoView:!0,userEvent:`input.type`})}function nG(e,t){let n=ZL(e).resolveInner(t+1);return n.parent&&n.from==t}function rG(e,t,n,r){let i=ZL(e).resolveInner(t,-1),a=r.reduce((e,t)=>Math.max(e,t.length),0);for(let o=0;o<5;o++){let o=e.sliceDoc(i.from,Math.min(i.to,i.from+n.length+a)),s=o.indexOf(n);if(!s||s>-1&&r.indexOf(o.slice(0,s))>-1){let t=i.firstChild;for(;t&&t.from==i.from&&t.to-t.from>n.length+s;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let c=i.to==t&&i.parent;if(!c)break;i=c}return!1}function iG(e,t,n){let r=e.charCategorizer(t);if(r(e.sliceDoc(t-1,t))!=ok.Word)return t;for(let i of n){let n=t-i.length;if(e.sliceDoc(n,t)==i&&r(e.sliceDoc(n-1,n))!=ok.Word)return n}return-1}function aG(e={}){return[FG,TG,mG.of(e),NG,qG,IG]}var oG,sG,cG,lG,uG,dG,fG,pG,mG,hG,gG,_G,vG,yG,bG,xG,SG,CG,wG,TG,EG,DG,OG,kG,AG,jG,MG,NG,PG,FG,IG,LG,RG,zG,BG,VG,HG,UG,WG,GG,KG,qG,JG=o((()=>{vk(),RI(),Rz(),oG=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ZL(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),i=r.search(kW(e,!1));return i<0?null:{from:n+i,to:this.pos,text:r.slice(i)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e==`abort`&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}},sG=class{constructor(e,t,n,r){this.completion=e,this.source=t,this.match=n,this.score=r}},cG=ek.define(),lG=new WeakMap,uG=rk.define(),dG=rk.define(),fG=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&c<=57||c>=97&&c<=122?2:+(c>=65&&c<=90):(v=BD(c))==v.toLowerCase()?v==v.toUpperCase()?0:2:1;(!r||y==1&&h||_==0&&y!=0)&&(t[u]==c||n[u]==c&&(d=!0)?a[u++]=r:a.length&&(g=!1)),_=y,r+=VD(c)}return u==s&&a[0]==0&&g?this.result(-100+(d?-200:0),a,e):f==s&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):o>-1?this.ret(-700-e.length,[o,o+this.pattern.length]):f==s?this.ret(-900-e.length,[p,m]):u==s?this.result(-100+(d?-200:0)+-700+(g?0:-1100),a,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,n){let r=[],i=0;for(let e of t){let t=e+(this.astral?VD(zD(n,e)):1);i&&r[i-1]==e?r[i-1]=t:(r[i++]=e,r[i++]=t)}return this.ret(e-n.length,r)}},pG=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>``,optionClass:()=>``,aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:NW,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>MW(e(n),t(n)),optionClass:(e,t)=>n=>MW(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}}),hG=class{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass=``;let r=e.state.field(t),{options:i,selected:a}=r.open,o=e.state.facet(mG);this.optionContent=PW(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=FW(i.length,a,o.maxRenderedOptions),this.dom=document.createElement(`div`),this.dom.className=`cm-tooltip-autocomplete`,this.updateTooltipClass(e.state),this.dom.addEventListener(`mousedown`,n=>{let{options:r}=e.state.field(t).open;for(let t=n.target,i;t&&t!=this.dom;t=t.parentNode)if(t.nodeName==`LI`&&(i=/-(\d+)$/.exec(t.id))&&+i[1]{let n=e.state.field(this.stateField,!1);n&&n.tooltip&&e.state.facet(mG).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:dG.of(null)})}),this.showOptions(i,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener(`scroll`,()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){let t=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),t!=n){let{options:r,selected:i,disabled:a}=t.open;(!n.open||n.open.options!=r)&&(this.range=FW(r.length,i,e.state.facet(mG).maxRenderedOptions),this.showOptions(r,t.id)),this.updateSel(),a!=n.open?.disabled&&this.dom.classList.toggle(`cm-tooltip-autocomplete-disabled`,!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(` `))e&&this.dom.classList.remove(e);for(let e of t.split(` `))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected=this.range.to)&&(this.range=FW(t.options.length,t.selected,this.view.state.facet(mG).maxRenderedOptions),this.showOptions(t.options,e.id));let n=this.updateSelectedOption(t.selected);if(n){this.destroyInfo();let{completion:r}=t.options[t.selected],{info:i}=r;if(!i)return;let a=typeof i==`string`?document.createTextNode(i):i(r);if(!a)return;`then`in a?a.then(t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,r)}).catch(e=>FA(this.view.state,e,`completion info`)):(this.addInfoPane(a,r),n.setAttribute(`aria-describedby`,this.info.id))}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement(`div`);if(n.className=`cm-tooltip cm-completionInfo`,n.id=`cm-completionInfo-`+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:r}=e;n.appendChild(t),this.infoDestroy=r||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)n.nodeName!=`LI`||!n.id?r--:r==e?n.hasAttribute(`aria-selected`)||(n.setAttribute(`aria-selected`,`true`),t=n):n.hasAttribute(`aria-selected`)&&(n.removeAttribute(`aria-selected`),n.removeAttribute(`aria-describedby`));return t&&LW(this.list,t),t}measureInfo(){let e=this.dom.querySelector(`[aria-selected]`);if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),i=this.space;if(!i){let e=this.dom.ownerDocument.documentElement;i={left:0,top:0,right:e.clientWidth,bottom:e.clientHeight}}return r.top>Math.min(i.bottom,t.bottom)-10||r.bottom{e.target==r&&e.preventDefault()});let i=null;for(let a=n.from;an.from||n.from==0))if(i=e,typeof c!=`string`&&c.header)r.appendChild(c.header(c));else{let t=r.appendChild(document.createElement(`completion-section`));t.textContent=e}}let l=r.appendChild(document.createElement(`li`));l.id=t+`-`+a,l.setAttribute(`role`,`option`);let u=this.optionClass(o);u&&(l.className=u);for(let e of this.optionContent){let t=e(o,this.view.state,this.view,s);t&&l.appendChild(t)}}return n.from&&r.classList.add(`cm-completionListIncompleteTop`),n.to=this.options.length?this:new e(this.options,VW(n,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,n,r,i,a,o){if(i&&!o&&t.some(e=>e.isPending))return i.setDisabled();let s=zW(t,n);if(!s.length)return i&&t.some(e=>e.isPending)?i.setDisabled():null;let c=n.facet(mG).selectOnOpen?0:-1;if(i&&i.selected!=c&&i.selected!=-1){let e=i.options[i.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e,1e8),create:EG,above:a.aboveCursor},i?i.timestamp:Date.now(),c,!1)}map(t){return new e(this.options,this.attrs,{...this.tooltip,pos:t.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new e(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},_G=class e{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new e(bG,`cm-ac-`+Math.floor(Math.random()*2e6).toString(36),null)}update(t){let{state:n}=t,r=n.facet(mG),i=(r.override||n.languageDataAt(`autocomplete`,OW(n)).map(jW)).map(e=>(this.active.find(t=>t.source==e)||new xG(e,+!!this.active.some(e=>e.state!=0))).update(t,r));i.length==this.active.length&&i.every((e,t)=>e==this.active[t])&&(i=this.active);let a=this.open,o=t.effects.some(e=>e.is(CG));a&&t.docChanged&&(a=a.map(t.changes)),t.selection||i.some(e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to))||!BW(i,this.active)||o?a=gG.build(i,n,this.id,a,r,o):a&&a.disabled&&!i.some(e=>e.isPending)&&(a=null),!a&&i.every(e=>!e.isPending)&&i.some(e=>e.hasResult())&&(i=i.map(e=>e.hasResult()?new xG(e.source,0):e));for(let e of t.effects)e.is(wG)&&(a=a&&a.setSelected(e.value,this.id));return i==this.active&&a==this.open?this:new e(i,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?vG:yG}},vG={"aria-autocomplete":`list`},yG={},bG=[],xG=class e{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(t,n){let r=HW(t,n),i=this;(r&8||r&16&&this.touches(t))&&(i=new e(i.source,0)),r&4&&i.state==0&&(i=new e(this.source,1)),i=i.updateFor(t,r);for(let n of t.effects)if(n.is(uG))i=new e(i.source,1,n.value);else if(n.is(dG))i=new e(i.source,0);else if(n.is(CG))for(let e of n.value)e.source==i.source&&(i=e);return i}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(OW(e.state))}},SG=class e extends xG{constructor(e,t,n,r,i,a){super(e,3,t),this.limit=n,this.result=r,this.from=i,this.to=a}hasResult(){return!0}updateFor(t,n){if(!(n&3))return this.map(t.changes);let r=this.result;r.map&&!t.changes.empty&&(r=r.map(r,t.changes));let i=t.changes.mapPos(this.from),a=t.changes.mapPos(this.to,1),o=OW(t.state);if(o>a||!r||n&2&&(OW(t.startState)==this.from||oe.map(t))}}),wG=rk.define(),TG=BO.define({create(){return _G.start()},update(e,t){return e.update(t)},provide:e=>[uI.from(e,e=>e.tooltip),X.contentAttributes.from(e,e=>e.attrs)]}),EG=IW(TG,WW),DG=e=>{let t=e.state.field(TG,!1);return e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestampe.state.field(TG,!1)?(e.dispatch({effects:uG.of(!0)}),!0):!1,kG=e=>{let t=e.state.field(TG,!1);return!t||!t.active.some(e=>e.state!=0)?!1:(e.dispatch({effects:dG.of(null)}),!0)},AG=class{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},jG=50,MG=1e3,NG=cP.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let t of e.state.field(TG).active)t.isPending&&this.startQuery(t)}update(e){let t=e.state.field(TG),n=e.state.facet(mG);if(!e.selectionSet&&!e.docChanged&&e.startState.field(TG)==t)return;let r=e.transactions.some(e=>{let t=HW(e,n);return t&8||(e.selection||e.docChanged)&&!(t&3)});for(let t=0;tjG&&Date.now()-n.time>MG){for(let e of n.context.abortListeners)try{e()}catch(e){FA(this.view.state,e)}n.context.abortListeners=null,this.running.splice(t--,1)}else n.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),e.transactions.some(e=>e.effects.some(e=>e.is(uG)))&&(this.pendingStart=!0);let i=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=t.active.some(e=>e.isPending&&!this.running.some(t=>t.active.source==e.source))?setTimeout(()=>this.startUpdate(),i):-1,this.composing!=0)for(let t of e.transactions)t.isUserEvent(`input.type`)?this.composing=2:this.composing==2&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:e}=this.view,t=e.field(TG);for(let e of t.active)e.isPending&&!this.running.some(t=>t.active.source==e.source)&&this.startQuery(e);this.running.length&&t.open&&t.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mG).updateSyncTime))}startQuery(e){let{state:t}=this.view,n=new oG(t,OW(t),e.explicit,this.view),r=new AG(e,n);this.running.push(r),Promise.resolve(e.source(n)).then(e=>{r.context.aborted||(r.done=e||null,this.scheduleAccept())},e=>{this.view.dispatch({effects:dG.of(null)}),FA(this.view.state,e)})}scheduleAccept(){this.running.every(e=>e.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mG).updateSyncTime))}accept(){this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(mG),n=this.view.state.field(TG);for(let r=0;re.source==i.active.source);if(a&&a.isPending)if(i.done==null){let n=new xG(i.active.source,0);for(let e of i.updates)n=n.update(e,t);n.isPending||e.push(n)}else this.startQuery(a)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:CG.of(e)})}},{eventHandlers:{blur(e){let t=this.view.state.field(TG,!1);if(t&&t.tooltip&&this.view.state.facet(mG).closeOnBlur){let n=t.open&&BM(this.view,t.open.tooltip);(!n||!n.dom.contains(e.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:dG.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:uG.of(!1)}),20),this.composing=0}}}),PG=typeof navigator==`object`&&/Win/.test(navigator.platform),FG=HO.highest(X.domEventHandlers({keydown(e,t){let n=t.state.field(TG,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||e.key.length>1||e.ctrlKey&&!(PG&&e.altKey)||e.metaKey)return!1;let r=n.open.options[n.open.selected],i=n.active.find(e=>e.source==r.source),a=r.completion.commitCharacters||i.result.commitCharacters;return a&&a.indexOf(e.key)>-1&&WW(t,r),!1}})),IG=X.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:`monospace`,whiteSpace:`nowrap`,overflow:`hidden auto`,maxWidth_fallback:`700px`,maxWidth:`min(700px, 95vw)`,minWidth:`250px`,maxHeight:`10em`,height:`100%`,listStyle:`none`,margin:0,padding:0,"& > li, & > completion-section":{padding:`1px 3px`,lineHeight:1.2},"& > li":{overflowX:`hidden`,textOverflow:`ellipsis`,cursor:`pointer`},"& > completion-section":{display:`list-item`,borderBottom:`1px solid silver`,paddingLeft:`0.5em`,opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:`#17c`,color:`white`},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:`#777`},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:`#347`,color:`white`},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:`#444`},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:`"···"`,opacity:.5,display:`block`,textAlign:`center`},".cm-tooltip.cm-completionInfo":{position:`absolute`,padding:`3px 9px`,width:`max-content`,maxWidth:`400px`,boxSizing:`border-box`,whiteSpace:`pre-line`},".cm-completionInfo.cm-completionInfo-left":{right:`100%`},".cm-completionInfo.cm-completionInfo-right":{left:`100%`},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`30px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`30px`},"&light .cm-snippetField":{backgroundColor:`#00000022`},"&dark .cm-snippetField":{backgroundColor:`#ffffff22`},".cm-snippetFieldPosition":{verticalAlign:`text-top`,width:0,height:`1.15em`,display:`inline-block`,margin:`0 -0.7px -.7em`,borderLeft:`1.4px dotted #888`},".cm-completionMatchedText":{textDecoration:`underline`},".cm-completionDetail":{marginLeft:`0.5em`,fontStyle:`italic`},".cm-completionIcon":{fontSize:`90%`,width:`.8em`,display:`inline-block`,textAlign:`center`,paddingRight:`.6em`,opacity:`0.6`,boxSizing:`content-box`},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:`'ƒ'`}},".cm-completionIcon-class":{"&:after":{content:`'○'`}},".cm-completionIcon-interface":{"&:after":{content:`'◌'`}},".cm-completionIcon-variable":{"&:after":{content:`'𝑥'`}},".cm-completionIcon-constant":{"&:after":{content:`'𝐶'`}},".cm-completionIcon-type":{"&:after":{content:`'𝑡'`}},".cm-completionIcon-enum":{"&:after":{content:`'∪'`}},".cm-completionIcon-property":{"&:after":{content:`'□'`}},".cm-completionIcon-keyword":{"&:after":{content:`'🔑︎'`}},".cm-completionIcon-namespace":{"&:after":{content:`'▢'`}},".cm-completionIcon-text":{"&:after":{content:`'abc'`,fontSize:`50%`,verticalAlign:`middle`}}}),LG={brackets:[`(`,`[`,`{`,`'`,`"`],before:`)]}:;>`,stringPrefixes:[]},RG=rk.define({map(e,t){return t.mapPos(e,-1,jO.TrackAfter)??void 0}}),zG=new class extends uk{},zG.startSide=1,zG.endSide=-1,BG=BO.define({create(){return pk.empty},update(e,t){if(e=e.map(t.changes),t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(RG)&&(e=e.update({add:[zG.range(n.value,n.value+1)]}));return e}}),VG=`()[]{}<>«»»«[]{}`,HG=typeof navigator==`object`&&/Android\b/.test(navigator.userAgent),UG=X.inputHandler.of((e,t,n,r)=>{if((HG?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let i=e.state.selection.main;if(r.length>2||r.length==2&&VD(zD(r,0))==1||t!=i.from||n!=i.to)return!1;let a=YW(e.state,r);return a?(e.dispatch(a),!0):!1}),WG=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=JW(e,e.selection.main.head).brackets||LG.brackets,r=null,i=e.changeByRange(t=>{if(t.empty){let r=QW(e.doc,t.head);for(let i of n)if(i==r&&ZW(e.doc,t.head)==qW(zD(i,0)))return{changes:{from:t.head-i.length,to:t.head+i.length},range:J.cursor(t.head-i.length)}}return{range:r=t}});return r||t(e.update(i,{scrollIntoView:!0,userEvent:`delete.backward`})),!r},GG=[{key:`Backspace`,run:WG}],KG=[{key:`Ctrl-Space`,run:OG},{mac:"Alt-`",run:OG},{mac:`Alt-i`,run:OG},{key:`Escape`,run:kG},{key:`ArrowDown`,run:GW(!0)},{key:`ArrowUp`,run:GW(!1)},{key:`PageDown`,run:GW(!0,`page`)},{key:`PageUp`,run:GW(!1,`page`)},{key:`Enter`,run:DG}],qG=HO.highest(EF.computeN([mG],e=>e.facet(mG).defaultKeymap?[KG]:[]))}));function YG(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new sK(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new sK(r.from,n,r.diagnostic)}),r}function XG(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(vK).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(lK))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function ZG(e,t){return e.field(fK,!1)?t:t.concat(rk.appendConfig.of(CK))}function QG(e,t,n){let{diagnostics:r}=e.state.field(fK),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(tnK(e,t,!1)))}function eK(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function tK(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;ee.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function nK(e,t,n){let r=n?tK(t.actions):[];return Pk(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},Pk(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=YG(e.state.field(fK).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),Pk(`u`,s.slice(c,c+1)),s.slice(c+1)];return Pk(`button`,{type:`button`,class:`cm-diagnosticAction`+(n.markClass?` `+n.markClass:``),onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&Pk(`div`,{class:`cm-diagnosticSource`},t.source))}function rK(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,${encodeURIComponent(e)}')`}function iK(e){return rK(``,`width="6" height="3"`)}function aK(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function oK(e){let t=`hint`,n=1;for(let r of e){let e=aK(r.severity);e>n&&(n=e,t=r.severity)}return t}var sK,cK,lK,uK,dK,fK,pK,mK,hK,gK,_K,vK,yK,bK,xK,SK,CK,wK=o((()=>{RI(),vk(),Ik(),sK=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},cK=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(vK).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new mk,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;et.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=oK(s);if(i)o.add(n,n,wN.widget({widget:new yK(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,wN.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e[bI.from(e,e=>e.panel),X.decorations.from(e,e=>e.diagnostics)]}),pK=wN.mark({class:`cm-lintRange cm-lintRange-active`}),mK=e=>{let t=e.state.field(fK,!1);(!t||!t.panel)&&e.dispatch({effects:ZG(e.state,[uK.of(!0)])});let n=VM(e,xK.open);return n&&n.dom.querySelector(`.cm-panel-lint ul`).focus(),!0},hK=e=>{let t=e.state.field(fK,!1);return!t||!t.panel?!1:(e.dispatch({effects:uK.of(!1)}),!0)},gK=e=>{let t=e.state.field(fK,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},_K=[{key:`Mod-Shift-m`,run:mK,preventDefault:!0},{key:`F8`,run:gK}],vK=LO.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...dO(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:eK,tooltipFilter:eK,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}}),yK=class extends SN{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Pk(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},bK=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=nK(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},xK=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(t.keyCode==27)hK(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=tK(n.actions);for(let i=0;i{for(let t=0;thK(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(fK).selected;if(!e)return-1;for(let t=0;t{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;tn&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.topt.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=YG(this.view.state.field(fK).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:dK.of(t)})}static open(t){return new e(t)}},SK=X.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:iK(`#d11`)},".cm-lintRange-warning":{backgroundImage:iK(`orange`)},".cm-lintRange-info":{backgroundImage:iK(`#999`)},".cm-lintRange-hint":{backgroundImage:iK(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}}}),CK=[fK,X.decorations.compute([fK],e=>{let{selected:t,panel:n}=e.field(fK);return!t||!n||t.from==t.to?wN.none:wN.set([pK.range(t.from,t.to)])}),zM(QG,{hideOn:XG}),SK]})),TK,EK=o((()=>{RI(),vk(),uU(),wW(),JG(),Rz(),wK(),TK=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,n=[];e.closeBracketsKeymap!==!1&&(n=n.concat(GG)),e.defaultKeymap!==!1&&(n=n.concat(cU)),e.searchKeymap!==!1&&(n=n.concat(vW)),e.historyKeymap!==!1&&(n=n.concat(JV)),e.foldKeymap!==!1&&(n=n.concat(dz)),e.completionKeymap!==!1&&(n=n.concat(KG)),e.lintKeymap!==!1&&(n=n.concat(_K));var r=[];return e.lineNumbers!==!1&&r.push(YM()),e.highlightActiveLineGutter!==!1&&r.push(ZM()),e.highlightSpecialChars!==!1&&r.push(wM()),e.history!==!1&&r.push(GB()),e.foldGutter!==!1&&r.push(TR()),e.drawSelection!==!1&&r.push(_M()),e.dropCursor!==!1&&r.push(bM()),e.allowMultipleSelections!==!1&&r.push(lk.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&r.push(dR()),e.syntaxHighlighting!==!1&&r.push(DR(wz,{fallback:!0})),e.bracketMatching!==!1&&r.push(kR()),e.closeBrackets!==!1&&r.push(KW()),e.autocompletion!==!1&&r.push(aG()),e.rectangularSelection!==!1&&r.push(NM()),t!==!1&&r.push(PM()),e.highlightActiveLine!==!1&&r.push(DM()),e.highlightSelectionMatches!==!1&&r.push(mU()),e.tabSize&&typeof e.tabSize==`number`&&r.push(ZR.of(` `.repeat(e.tabSize))),r.concat([EF.of(n.flat())]).filter(Boolean)}})),DK,OK,kK,AK,jK,MK,NK,PK,FK,IK,LK,RK,zK,BK,VK,HK,UK,WK,GK,KK=o((()=>{RI(),Rz(),JL(),DK=`#e5c07b`,OK=`#e06c75`,kK=`#56b6c2`,AK=`#ffffff`,jK=`#abb2bf`,MK=`#7d8799`,NK=`#61afef`,PK=`#98c379`,FK=`#d19a66`,IK=`#c678dd`,LK=`#21252b`,RK=`#2c313a`,zK=`#282c34`,BK=`#353a42`,VK=`#3E4451`,HK=`#528bff`,UK=X.theme({"&":{color:jK,backgroundColor:zK},".cm-content":{caretColor:HK},".cm-cursor, .cm-dropCursor":{borderLeftColor:HK},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:VK},".cm-panels":{backgroundColor:LK,color:jK},".cm-panels.cm-panels-top":{borderBottom:`2px solid black`},".cm-panels.cm-panels-bottom":{borderTop:`2px solid black`},".cm-searchMatch":{backgroundColor:`#72a1ff59`,outline:`1px solid #457dff`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:`#6199ff2f`},".cm-activeLine":{backgroundColor:`#6699ff0b`},".cm-selectionMatch":{backgroundColor:`#aafe661a`},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:`#bad0f847`},".cm-gutters":{backgroundColor:zK,color:MK,border:`none`},".cm-activeLineGutter":{backgroundColor:RK},".cm-foldPlaceholder":{backgroundColor:`transparent`,border:`none`,color:`#ddd`},".cm-tooltip":{border:`none`,backgroundColor:BK},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:`transparent`,borderBottomColor:`transparent`},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:BK,borderBottomColor:BK},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:RK,color:jK}}},{dark:!0}),WK=yz.define([{tag:Q.keyword,color:IK},{tag:[Q.name,Q.deleted,Q.character,Q.propertyName,Q.macroName],color:OK},{tag:[Q.function(Q.variableName),Q.labelName],color:NK},{tag:[Q.color,Q.constant(Q.name),Q.standard(Q.name)],color:FK},{tag:[Q.definition(Q.name),Q.separator],color:jK},{tag:[Q.typeName,Q.className,Q.number,Q.changed,Q.annotation,Q.modifier,Q.self,Q.namespace],color:DK},{tag:[Q.operator,Q.operatorKeyword,Q.url,Q.escape,Q.regexp,Q.link,Q.special(Q.string)],color:kK},{tag:[Q.meta,Q.comment],color:MK},{tag:Q.strong,fontWeight:`bold`},{tag:Q.emphasis,fontStyle:`italic`},{tag:Q.strikethrough,textDecoration:`line-through`},{tag:Q.link,color:MK,textDecoration:`underline`},{tag:Q.heading,fontWeight:`bold`,color:OK},{tag:[Q.atom,Q.bool,Q.special(Q.variableName)],color:FK},{tag:[Q.processingInstruction,Q.string,Q.inserted],color:PK},{tag:Q.invalid,color:AK}]),GK=[UK,DR(WK)]})),qK,JK=o((()=>{RI(),qK=X.theme({"&":{backgroundColor:`#fff`}},{dark:!1})})),YK,XK=o((()=>{uU(),EK(),RI(),KK(),vk(),JK(),KK(),JK(),YK=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:n=!0,readOnly:r=!1,theme:i=`light`,placeholder:a=``,basicSetup:o=!0}=e,s=[];switch(t&&s.unshift(EF.of([lU])),o&&(typeof o==`boolean`?s.unshift(TK()):s.unshift(TK(o))),a&&s.unshift(OM(a)),i){case`light`:s.push(qK);break;case`dark`:s.push(GK);break;case`none`:break;default:s.push(i);break}return n===!1&&s.push(X.editable.of(!1)),r&&s.push(lk.readOnly.of(!0)),[...s]}})),ZK,QK=o((()=>{ZK=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(e=>!e.empty)})})),$K,eq,tq,nq,rq=o((()=>{$K=class{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(e=>{try{e()}catch(e){console.error(`TimeoutLatch callback error:`,e)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}},eq=class{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}},tq=null,nq=()=>typeof window>`u`?new eq:(tq||(tq=new eq),tq)}));function iq(e){var{value:t,selection:n,onChange:r,onStatistics:i,onCreateEditor:a,onUpdate:o,extensions:s=cq,autoFocus:c,theme:l=`light`,height:u=null,minHeight:d=null,maxHeight:f=null,width:p=null,minWidth:m=null,maxWidth:h=null,placeholder:g=``,editable:_=!0,readOnly:v=!1,indentWithTab:y=!0,basicSetup:b=!0,root:x,initialState:S}=e,[C,w]=(0,aq.useState)(),[T,E]=(0,aq.useState)(),[D,O]=(0,aq.useState)(),k=(0,aq.useState)(()=>({current:null}))[0],A=(0,aq.useState)(()=>({current:null}))[0],j=X.theme({"&":{height:u,minHeight:d,maxHeight:f,width:p,minWidth:m,maxWidth:h},"& .cm-scroller":{height:`100% !important`}}),M=[X.updateListener.of(e=>{e.docChanged&&typeof r==`function`&&!e.transactions.some(e=>e.annotation(oq))&&(k.current?k.current.reset():(k.current=new $K(()=>{if(A.current){var e=A.current;A.current=null,e()}k.current=null},sq),nq().add(k.current)),r(e.state.doc.toString(),e)),i&&i(ZK(e))}),j,...YK({theme:l,editable:_,readOnly:v,placeholder:g,indentWithTab:y,basicSetup:b})];return o&&typeof o==`function`&&M.push(X.updateListener.of(o)),M=M.concat(s),(0,aq.useLayoutEffect)(()=>{if(C&&!D){var e={doc:t,selection:n,extensions:M},r=S?lk.fromJSON(S.json,e,S.fields):lk.create(e);if(O(r),!T){var i=new X({state:r,parent:C,root:x});E(i),a&&a(i,r)}}return()=>{T&&(O(void 0),E(void 0))}},[C,D]),(0,aq.useEffect)(()=>{e.container&&w(e.container)},[e.container]),(0,aq.useEffect)(()=>()=>{T&&(T.destroy(),E(void 0)),k.current&&(k.current.cancel(),k.current=null)},[T]),(0,aq.useEffect)(()=>{c&&T&&T.focus()},[c,T]),(0,aq.useEffect)(()=>{T&&T.dispatch({effects:rk.reconfigure.of(M)})},[l,s,u,d,f,p,m,h,g,_,v,y,b,r,o]),(0,aq.useEffect)(()=>{if(t!==void 0){var e=T?T.state.doc.toString():``;if(T&&t!==e){var n=k.current&&!k.current.isDone,r=()=>{T&&t!==T.state.doc.toString()&&T.dispatch({changes:{from:0,to:T.state.doc.toString().length,insert:t||``},annotations:[oq.of(!0)]})};n?A.current=r:r()}}},[t,T]),{state:D,setState:O,view:T,setView:E,container:C,setContainer:w}}var aq,oq,sq,cq,lq=o((()=>{aq=u(f()),vk(),RI(),XK(),QK(),rq(),oq=ek.define(),sq=200,cq=[]})),uq,dq,fq,pq,mq=o((()=>{IB(),RB(),uq=u(f()),lq(),dq=Yo(),RI(),vk(),EK(),lq(),XK(),QK(),fq=[`className`,`value`,`selection`,`extensions`,`onChange`,`onStatistics`,`onCreateEditor`,`onUpdate`,`autoFocus`,`theme`,`height`,`minHeight`,`maxHeight`,`width`,`minWidth`,`maxWidth`,`basicSetup`,`placeholder`,`indentWithTab`,`editable`,`readOnly`,`root`,`initialState`],pq=(0,uq.forwardRef)((e,t)=>{var{className:n,value:r=``,selection:i,extensions:a=[],onChange:o,onStatistics:s,onCreateEditor:c,onUpdate:l,autoFocus:u,theme:d=`light`,height:f,minHeight:p,maxHeight:m,width:h,minWidth:g,maxWidth:_,basicSetup:v,placeholder:y,indentWithTab:b,editable:x,readOnly:S,root:C,initialState:w}=e,T=LB(e,fq),E=(0,uq.useRef)(null),{state:D,view:O,container:k,setContainer:A}=iq({root:C,value:r,autoFocus:u,theme:d,height:f,minHeight:p,maxHeight:m,width:h,minWidth:g,maxWidth:_,basicSetup:v,placeholder:y,indentWithTab:b,editable:x,readOnly:S,selection:i,onChange:o,onStatistics:s,onCreateEditor:c,onUpdate:l,extensions:a,initialState:w});(0,uq.useImperativeHandle)(t,()=>({editor:E.current,state:D,view:O}),[E,k,D,O]);var j=(0,uq.useCallback)(e=>{E.current=e,A(e)},[A]);if(typeof r!=`string`)throw Error(`value must be typeof string but got `+typeof r);return(0,dq.jsx)(`div`,FB({ref:j,className:(typeof d==`string`?`cm-theme-`+d:`cm-theme`)+(n?` `+n:``)},T))}),pq.displayName=`CodeMirror`}));function hq(e,t=Uint16Array){if(typeof e!=`string`)return e;let n=null;for(let r=0,i=0;r=92&&t--,t>=34&&t--;let i=t-32;if(i>=46&&(i-=46,n=!0),a+=i,n)break;a*=46}n?n[i++]=a:n=new t(a)}return n}function gq(e,t,n,r,i,a){let o=0,s=1<0){let n=e[r];if(c.allows(n)&&(t.token.value==-1||t.token.value==n||vq(n,t.token.value,i,a))){t.acceptToken(n);break}}let r=t.next,l=0,u=e[o+2];if(t.next<0&&u>l&&e[n+u*3-3]==65535){o=e[n+u*3-1];continue scan}for(;l>1,a=n+i+(i<<1),s=e[a],c=e[a+1]||65536;if(r=c)l=i+1;else{o=e[a+2],t.advance();continue scan}}break}}function _q(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function vq(e,t,n,r){let i=_q(n,r,t);return i<0||_q(n,r,e)t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function bq(e,t){for(let n=0;ne)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.scoree.external(n,r)<<1|t}return e.get}var wq,Tq,Eq,Dq,Oq,kq,Aq,jq,Mq,Nq,Pq,Fq,Iq,Lq,Rq,zq,Bq,Vq,Hq,Uq=o((()=>{yL(),wq=class e{constructor(e,t,n,r,i,a,o,s,c,l=0,u){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=i,this.score=a,this.buffer=o,this.bufferBase=s,this.curContext=c,this.lookAhead=l,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?`!`+this.score:``}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Tq(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let t=e>>19,n=e&65535,{parser:r}=this.p,i=this.reducePos=2e3&&!this.p.parser.nodeSet.types[n]?.isAnonymous&&(s==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(n,s)}storeNode(e,t,n,r=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&e.buffer[r-4]==0&&e.buffer[r-1]>-1){if(t==n)return;if(e.buffer[r-2]>=t){e.buffer[r-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&(this.buffer[i-4]!=0||this.buffer[i-1]<0)){let e=!1;for(let t=i;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4)}this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let i=e,{parser:a}=this.p;(r>this.pos||t<=a.maxNode)&&(this.pos=r,a.stateFlag(i,1)||(this.reducePos=r)),this.pushState(i,n),this.shiftContext(t,n),t<=a.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let t=this,n=t.buffer.length;for(;n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Eq(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let r=0,i;rt&1&&e==r)||n.push(t[e],r)}t=n}let n=[];for(let e=0;e>19,r=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],r,!1)<0){let e=this.findForcedReduction();if(e==null)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,i)=>{if(!t.includes(r))return t.push(r),e.allActions(r,t=>{if(!(t&393216))if(t&65536){let n=(t>>19)-i;if(n>1){let r=t&65535,i=this.stack.length-n*3;if(i>=0&&e.getGoto(this.stack[i],r,!1)>=0)return n<<19|65536|r}}else{let e=n(t,i+1);if(e!=null)return e}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}},Tq=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Eq=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},Dq=class e{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}},Oq=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},kq=new Oq,Aq=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk=``,this.chunkOff=0,this.chunk2=``,this.chunk2Pos=0,this.next=-1,this.token=kq,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for(;in.to:i>=n.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];i+=e.from-n.to,n=e}return i}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t=this.chunk2Pos&&nt.to&&(this.chunk2=this.chunk2.slice(0,t.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk=``,this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=kq,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n=``;for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},jq=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;gq(this.data,e,t,this.id,n.data,n.tokenPrecTable)}},jq.prototype.contextual=jq.prototype.fallback=jq.prototype.extend=!1,Mq=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e==`string`?hq(e):e}token(e,t){let n=e.pos,r=0;for(;;){let n=e.next<0,i=e.resolveOffset(1,1);if(gq(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(n||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}},Mq.prototype.contextual=jq.prototype.fallback=jq.prototype.extend=!1,Nq=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}},Pq=typeof process<`u`&&/\bparse\b/.test({}.LOG),Fq=null,Iq=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?yq(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?yq(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=a,null;if(i instanceof oL){if(a==e){if(a=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(a),this.index.push(0))}else this.index[t]++,this.nextStart=a+i.length}}},Lq=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(e=>new Oq)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:i}=r,a=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,s=0;for(let r=0;rl.end+25&&(s=Math.max(l.lookAhead,s)),l.value!=0)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!c.extend&&(n=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return s&&e.setLookAhead(s),!n&&e.pos==this.stream.end&&(n=new Oq,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Oq,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:t}=n.p;for(let r=0;r=0&&n.p.parser.dialect.allows(i>>1)){i&1?e.extended=i>>1:e.value=i>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let t=0;te.bufferLength*4?new Iq(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,i;if(this.bigReductionCount>300&&e.length==1){let[t]=e;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;at)n.push(o);else if(this.advanceStack(o,n,e))continue;else{r||(r=[],i=[]),r.push(o);let e=this.tokens.getMainToken(o);i.push(e.value,e.end)}break}}if(!n.length){let e=r&&Sq(r);if(e)return Pq&&console.log(`Finish with `+this.stackID(e)),this.stackToTree(e);if(this.parser.strict)throw Pq&&r&&console.log(`Stuck with token `+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):`none`)),SyntaxError(`No parse at `+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let e=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,i,n);if(e)return Pq&&console.log(`Force-finish `+this.stackID(e)),this.stackToTree(e.forceAll())}if(this.recovering){let e=this.recovering==1?1:this.recovering*3;if(n.length>e)for(n.sort((e,t)=>t.score-e.score);n.length>e;)n.pop();n.some(e=>e.reducePos>t)&&this.recovering--}else if(n.length>1){outer:for(let e=0;e500&&i.buffer.length>500)if((t.score-i.score||t.buffer.length-i.buffer.length)>0)n.splice(r--,1);else{n.splice(e--,1);continue outer}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let e=1;e `:``;if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let o=this.fragments.nodeAt(r);o;){let r=this.parser.nodeSet.types[o.type.id]==o.type?i.getGoto(e.state,o.type.id):-1;if(r>-1&&o.length&&(!t||(o.prop(QI.contextHash)||0)==n))return e.useNode(o,r),Pq&&console.log(a+this.stackID(e)+` (via reuse of ${i.getName(o.type.id)})`),!0;if(!(o instanceof oL)||o.children.length==0||o.positions[0]>0)break;let s=o.children[0];if(s instanceof oL&&o.positions[0]==0)o=s;else break}}let o=i.stateSlot(e.state,4);if(o>0)return e.reduce(o),Pq&&console.log(a+this.stackID(e)+` (via always-reduce ${i.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let s=this.tokens.getActions(e);for(let o=0;or?t.push(f):n.push(f)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return bq(e,t),!0}}runRecovery(e,t,n){let r=null,i=!1;for(let a=0;a `:``;if(o.deadEnd&&(i||(i=!0,o.restart(),Pq&&console.log(l+this.stackID(o)+` (restarted)`),this.advanceFully(o,n))))continue;let u=o.split(),d=l;for(let e=0;e<10&&u.forceReduce()&&(Pq&&console.log(d+this.stackID(u)+` (via force-reduce)`),!this.advanceFully(u,n));e++)Pq&&(d=this.stackID(u)+` -> `);for(let e of o.recoverByInsert(s))Pq&&console.log(l+this.stackID(e)+` (via recover-insert)`),this.advanceFully(e,n);this.stream.end>o.pos?(c==o.pos&&(c++,s=0),o.recoverByDelete(s,c),Pq&&console.log(l+this.stackID(o)+` (via recover-delete ${this.parser.getName(s)})`),bq(o,n)):(!r||r.scoree,Vq=class{constructor(e){this.start=e.start,this.shift=e.shift||Bq,this.reduce=e.reduce||Bq,this.reuse=e.reuse||Bq,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},Hq=class e extends _L{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(` `);this.minRepeatTerm=t.length;for(let n=0;ne.topRules[t][1]),r=[];for(let e=0;e=0)i(r,e,t[n++]);else{let a=t[n+-r];for(let o=-r;o>0;o--)i(t[n++],e,a);n++}}}this.nodeSet=new nL(t.map((t,i)=>tL.define({name:i>=this.minRepeatTerm?void 0:t,id:i,props:r[i],top:n.indexOf(i)>-1,error:i==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(i)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=YI;let a=hq(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;etypeof e==`number`?new jq(a,e):e),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new Rq(this,e,t,n);for(let i of this.wrappers)r=i(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let i=r[t+1];;){let t=r[i++],a=t&1,o=r[i++];if(a&&n)return o;for(let n=i+(t>>1);i0}validAction(e,t){return!!this.allActions(e,e=>e==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let n=this.stateSlot(e,1);r==null;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=xq(this.data,n+2);else break;r=t(xq(this.data,n+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=xq(this.data,n+2);else break;if(!(this.data[n+2]&1)){let e=this.data[n+1];t.some((t,n)=>n&1&&t==e)||t.push(this.data[n],e)}}return t}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let e=this.topRules[t.top];if(!e)throw RangeError(`Invalid top rule name ${t.top}`);n.top=e}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(e=>{let n=t.tokenizers.find(t=>t.from==e);return n?n.to:e})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((e,r)=>{let i=t.specializers.find(t=>t.from==e.external);if(!i)return e;let a=Object.assign(Object.assign({},e),{external:i.to});return n.specializers[r]=Cq(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let r of e.split(` `)){let e=t.indexOf(r);e>=0&&(n[e]=!0)}let r=null;for(let e=0;e32&&e<127&&e!=34&&e!=37&&e!=44&&e!=60&&e!=62&&e!=92&&e!=94&&e!=96&&e!=123&&e!=124&&e!=125}function Zq(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function Qq(e,t){return e.next==37?(e.advance(),Zq(e.next)&&e.advance(),Zq(e.next)&&e.advance(),!0):Xq(e.next)||t&&e.next==44?(e.advance(),!0):!1}function $q(e){if(e.advance(),e.next==60){for(e.advance();;)if(!Qq(e,!0)){e.next==62&&e.advance();break}}else for(;Qq(e,!1););}function eJ(e){for(e.advance();!Jq(e.next)&&rJ(e.tag)!=`f`;)e.advance()}function tJ(e,t){let n=e.next,r=!1,i=e.pos;for(e.advance();;){let a=e.next;if(a<0)break;if(e.advance(),a==n)if(a==39)if(e.next==39)e.advance();else break;else break;else if(a==92&&n==34)e.next>=0&&e.advance();else if(Kq(a)){if(t)return!1;r=!0}else if(t&&e.pos>=i+1024)return!1}return!r}function nJ(e){for(let t=[],n=e.pos+1024;;)if(e.next==91||e.next==123)t.push(e.next),e.advance();else if(e.next==39||e.next==34){if(!tJ(e,!0))return!1}else if(e.next==93||e.next==125){if(t[t.length-1]!=e.next-2)return!1;if(t.pop(),e.advance(),!t.length)return!0}else if(e.next<0||e.pos>n||Kq(e.next))return!1;else e.advance()}function rJ(e){return e<33?`u`:e>125?`s`:RJ[e-33]}function iJ(e,t){let n=rJ(e);return n!=`u`&&!(t&&n==`f`)}function aJ(e,t,n,r){if(rJ(e.next)==`s`||(e.next==63||e.next==58||e.next==45)&&iJ(e.peek(1),n))e.advance();else return!1;let i=e.pos;for(;;){let a=e.next,o=0,s=r+1;for(;qq(a);){if(Kq(a)){if(t)return!1;s=0}else s++;a=e.peek(++o)}if(!(a>=0&&(a==58?iJ(e.peek(o+1),n):a==35?e.peek(o-1)!=32:iJ(a,n)))||!n&&s<=r||s==0&&!n&&(Yq(e,45,o)||Yq(e,46,o)))break;if(t&&rJ(a)==`f`)return!1;for(let t=o;t>=0;t--)e.advance();if(t&&e.pos>i+1024)return!1}return!0}var oJ,sJ,cJ,lJ,uJ,dJ,fJ,pJ,mJ,hJ,gJ,_J,vJ,yJ,bJ,xJ,SJ,CJ,wJ,TJ,EJ,DJ,OJ,kJ,AJ,jJ,MJ,NJ,PJ,FJ,IJ,LJ,RJ,zJ,BJ,VJ,HJ,UJ=o((()=>{Uq(),JL(),oJ=63,sJ=64,cJ=1,lJ=2,uJ=3,dJ=4,fJ=5,pJ=6,mJ=7,hJ=65,gJ=66,_J=8,vJ=9,yJ=10,bJ=11,xJ=12,SJ=13,CJ=19,wJ=20,TJ=29,EJ=33,DJ=34,OJ=47,kJ=0,AJ=1,jJ=2,MJ=3,NJ=4,PJ=class{constructor(e,t,n){this.parent=e,this.depth=t,this.type=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n}},PJ.top=new PJ(null,-1,kJ),FJ=new Vq({start:PJ.top,reduce(e,t){return e.type==MJ&&(t==wJ||t==DJ)?e.parent:e},shift(e,t,n,r){if(t==uJ)return new PJ(e,Wq(r,r.pos),AJ);if(t==hJ||t==fJ)return new PJ(e,Wq(r,r.pos),jJ);if(t==oJ)return e.parent;if(t==CJ||t==EJ)return new PJ(e,0,MJ);if(t==SJ&&e.type==NJ)return e.parent;if(t==OJ){let t=/[1-9]/.exec(r.read(r.pos,n.pos));if(t)return new PJ(e,e.depth+ +t[0],NJ)}return e},hash(e){return e.hash}}),IJ=new Nq((e,t)=>{if(e.next==-1&&t.canShift(sJ))return e.acceptToken(sJ);let n=e.peek(-1);if((Kq(n)||n<0)&&t.context.type!=MJ){if(Yq(e,45))if(t.canShift(oJ))e.acceptToken(oJ);else return e.acceptToken(cJ,3);if(Yq(e,46))if(t.canShift(oJ))e.acceptToken(oJ);else return e.acceptToken(lJ,3);let n=0;for(;e.next==32;)n++,e.advance();(n{if(t.context.type==MJ){e.next==63&&(e.advance(),Jq(e.next)&&e.acceptToken(mJ));return}if(e.next==45)e.advance(),Jq(e.next)&&e.acceptToken(t.context.type==AJ&&t.context.depth==Wq(e,e.pos-1)?dJ:uJ);else if(e.next==63)e.advance(),Jq(e.next)&&e.acceptToken(t.context.type==jJ&&t.context.depth==Wq(e,e.pos-1)?pJ:fJ);else{let n=e.pos;for(;;)if(Gq(e.next)){if(e.pos==n)return;e.advance()}else if(e.next==33)$q(e);else if(e.next==38)eJ(e);else if(e.next==42){eJ(e);break}else if(e.next==39||e.next==34){if(tJ(e,!0))break;return}else if(e.next==91||e.next==123){if(!nJ(e))return;break}else{aJ(e,!0,!1,0);break}for(;Gq(e.next);)e.advance();if(e.next==58){if(e.pos==n&&t.canShift(TJ))return;Jq(e.peek(1))&&e.acceptTokenTo(t.context.type==jJ&&t.context.depth==Wq(e,n)?gJ:hJ,n)}}},{contextual:!0}),RJ=`iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif`,zJ=new Nq((e,t)=>{if(e.next==33)$q(e),e.acceptToken(xJ);else if(e.next==38||e.next==42){let t=e.next==38?yJ:bJ;eJ(e),e.acceptToken(t)}else e.next==39||e.next==34?(tJ(e,!1),e.acceptToken(vJ)):aJ(e,!1,t.context.type==MJ,t.context.depth)&&e.acceptToken(_J)}),BJ=new Nq((e,t)=>{let n=t.context.type==NJ?t.context.depth:-1,r=e.pos;scan:for(;;){let i=0,a=e.next;for(;a==32;)a=e.peek(++i);if(!i&&(Yq(e,45,i)||Yq(e,46,i))||!Kq(a)&&(n<0&&(n=Math.max(t.context.depth+1,i)),iYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:`⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document`,maxTerm:74,context:FJ,nodeProps:[[`isolate`,-3,8,9,14,``],[`openedBy`,18,`[`,32,`{`],[`closedBy`,19,`]`,33,`}`]],propSources:[VJ],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[IJ,LJ,zJ,BJ,0,1],topRules:{Stream:[0,15]},tokenPrec:0})}));function WJ(){return new YR(GJ)}var GJ,KJ=o((()=>{UJ(),Rz(),yL(),JL(),Uq(),GJ=BR.define({name:`yaml`,parser:HJ.configure({props:[$R.add({Stream:e=>{for(let t=e.node.resolve(e.pos,-1);t&&t.to>=e.pos;t=t.parent){if(t.name==`BlockLiteralContent`&&t.frome.pos)return null}}return null},FlowMapping:lR({closing:`}`}),FlowSequence:lR({closing:`]`})}),rz.add({"FlowMapping FlowSequence":fR,"Item Pair BlockLiteral":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{commentTokens:{line:`#`},indentOnInput:/^\s*[\]\}]$/}}),Q.meta})),qJ=c({default:()=>JJ});function JJ({value:e,onChange:t,editorRef:n,theme:r,editable:i,placeholder:a}){return(0,XJ.jsx)(pq,{ref:n,value:e,onChange:t,extensions:(0,YJ.useMemo)(()=>[WJ(),vU(),mU(),EF.of(vW)],[]),theme:r,editable:i,placeholder:a,height:`100%`,style:{height:`100%`},basicSetup:{lineNumbers:!0,highlightActiveLineGutter:!0,highlightActiveLine:!0,foldGutter:!0,dropCursor:!0,allowMultipleSelections:!0,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!1,rectangularSelection:!0,crosshairCursor:!1,highlightSelectionMatches:!0,closeBracketsKeymap:!0,searchKeymap:!0,foldKeymap:!0,completionKeymap:!1,lintKeymap:!0}})}var YJ,XJ,ZJ=o((()=>{YJ=u(f(),1),mq(),KJ(),wW(),RI(),XJ=Yo()})),QJ=(0,y.lazy)(()=>E(()=>Promise.resolve().then(()=>(ZJ(),qJ)),void 0,import.meta.url));function $J(e){try{let t=fE(e);return!t||typeof t!=`object`||Array.isArray(t)?!1:!!t[`commercial-mode`]}catch{return!1}}function eY(){let{t:e}=qo(),t=$m(),n=t?t.isCurrentLayer:!0,r=hc(e=>e.showNotification),i=hc(e=>e.showConfirmation),a=ep(e=>e.connectionStatus),o=wc(e=>e.resolvedTheme),s=hE(`(max-width: 768px)`),{visualValues:c,visualDirty:l,visualParseError:u,visualValidationErrors:d,visualHasPayloadValidationErrors:f,loadVisualValuesFromYaml:p,applyVisualChangesToYaml:m,setVisualValues:h}=$E(),[g,_]=(0,y.useState)(()=>{let e=localStorage.getItem(`config-management:tab`);return e===`visual`||e===`source`?e:`visual`}),[v,b]=(0,y.useState)(``),[x,C]=(0,y.useState)(!0),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(``),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(``),[P,ee]=(0,y.useState)(``),[F,I]=(0,y.useState)(``),[L,R]=(0,y.useState)({current:0,total:0}),[te,ne]=(0,y.useState)(``),re=(0,y.useRef)(null),z=(0,y.useRef)(null),ie=a!==`connected`,ae=O||l,oe=n,se=!!u,ce=g===`visual`&&(Object.values(d).some(Boolean)||f),le=(0,y.useCallback)(async()=>{C(!0),D(``);try{let e=await _h.fetchConfigYaml();b(e),k(!1),j(!1),N(e),ee(e),p(e)}catch(t){D(t instanceof Error?t.message:e(`notification.refresh_failed`))}finally{C(!1)}},[p,e]);(0,y.useEffect)(()=>{le()},[le]),(0,y.useEffect)(()=>{g!==`visual`||!u||(_(`source`),localStorage.setItem(`config-management:tab`,`source`),r(e(`config_management.visual_mode_unavailable_detail`,{message:u}),`error`))},[g,r,e,u]);let ue=async()=>{T(!0);try{let t=$J(M)!==$J(P);await _h.saveConfigYaml(P);let n=await _h.fetchConfigYaml();k(!1),j(!1),b(n),N(n),ee(n),p(n);try{Of.getState().clearCache(),await Of.getState().fetchConfig(void 0,!0)}catch(t){let n=t instanceof Error?t.message:typeof t==`string`?t:``;r(`${e(`notification.refresh_failed`)}${n?`: ${n}`:``}`,`error`)}r(e(`config_management.save_success`),`success`),t&&r(e(`notification.commercial_mode_restart_required`),`warning`)}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`notification.save_failed`)}: ${n}`,`error`)}finally{T(!1)}},de=async()=>{if(g===`visual`&&u){r(e(`config_management.visual_mode_save_blocked`),`error`);return}T(!0);try{let t=await _h.fetchConfigYaml();if(g!==`source`){let n=dE(t);if(n.errors.length>0){r(e(`config_management.visual_mode_latest_yaml_invalid`,{message:n.errors[0]?.message??e(`config_management.visual_mode_save_blocked`)}),`error`);return}}let n=g===`source`?v:m(t),i=t;if(g!==`source`)try{i=dE(t).toString({indent:2,lineWidth:120,minContentWidth:0})}catch{}if(i===n){k(!1),b(t),N(t),ee(n),p(t),r(e(`config_management.diff.no_changes`),`info`);return}N(i),ee(n),j(!0)}catch(t){let n=t instanceof Error?t.message:``;r(`${e(`notification.save_failed`)}: ${n}`,`error`)}finally{T(!1)}},fe=(0,y.useCallback)(e=>{b(e),k(!0)},[]),pe=(0,y.useCallback)(t=>{if(t!==g){if(t===`source`){if(l){let e=m(v);e!==v&&(b(e),k(!0))}}else{let t=p(v);if(!t.ok){r(e(`config_management.visual_mode_unavailable_detail`,{message:t.error}),`error`);return}}_(t),localStorage.setItem(`config-management:tab`,t)}},[g,m,v,p,r,e,l]),me=(0,y.useCallback)((e,t=`next`)=>{if(!e||!re.current?.view)return;let n=re.current.view,r=n.state.doc.toString(),i=[],a=e.toLowerCase(),o=r.toLowerCase(),s=0;for(;sl){u=e;break}e===i.length-1&&(u=0)}else for(let e=i.length-1;e>=0;e--){if(i[e]{I(e),e?R({current:0,total:0}):(R({current:0,total:0}),ne(``))},[]),ge=(0,y.useCallback)((e=`next`)=>{F&&(ne(F),me(F,e))},[F,me]),_e=(0,y.useCallback)(e=>{e.key===`Enter`&&(e.preventDefault(),ge(e.shiftKey?`prev`:`next`))},[ge]),ve=(0,y.useCallback)(()=>{te&&me(te,`prev`)},[te,me]),ye=(0,y.useCallback)(()=>{te&&me(te,`next`)},[te,me]);(0,y.useLayoutEffect)(()=>{if(typeof window>`u`||!oe)return;let e=z.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().height;document.documentElement.style.setProperty(`--config-action-bar-height`,`${t}px`)};t(),window.addEventListener(`resize`,t);let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),document.documentElement.style.removeProperty(`--config-action-bar-height`)}},[oe]);let be=()=>e(ie?`config_management.status_disconnected`:x?`config_management.status_loading`:E?`config_management.status_load_failed`:se?`config_management.visual_mode_unavailable`:ce?`config_management.visual.validation.validation_blocked`:w?`config_management.status_saving`:ae?`config_management.status_dirty`:`config_management.status_loaded`),xe=()=>E||se||ce?PB.error:ae?PB.modified:!x&&!w?PB.saved:``,Se=()=>s?ie?e(`config_management.status_disconnected_short`,{defaultValue:`Disconnected`}):x?e(`config_management.status_loading_short`,{defaultValue:`Loading`}):E?e(`config_management.status_load_failed_short`,{defaultValue:`Failed`}):se?e(`config_management.visual_mode_unavailable_short`,{defaultValue:`YAML issue`}):ce?e(`config_management.visual.validation_blocked_short`,{defaultValue:`Fix errors`}):w?e(`config_management.status_saving_short`,{defaultValue:`Saving`}):ae?e(`config_management.status_dirty_short`,{defaultValue:`Unsaved`}):e(`config_management.status_loaded_short`,{defaultValue:`Loaded`}):be(),Ce=(0,y.useCallback)(()=>{if(!ae){le();return}i({title:e(`common.unsaved_changes_title`),message:e(`config_management.reload_confirm_message`),confirmText:e(`config_management.reload`),cancelText:e(`common.cancel`),variant:`danger`,onConfirm:async()=>{await le()}})},[ae,le,i,e]),we=(0,B.jsx)(`div`,{className:PB.floatingActionContainer,ref:z,children:(0,B.jsxs)(`div`,{className:PB.floatingActionList,children:[(0,B.jsx)(`div`,{className:`${PB.floatingStatus} ${s?PB.floatingStatusCompact:``} ${xe()}`,children:Se()}),(0,B.jsx)(`button`,{type:`button`,className:PB.floatingActionButton,onClick:Ce,disabled:x||w,title:e(`config_management.reload`),"aria-label":e(`config_management.reload`),children:(0,B.jsx)(cs,{size:16})}),(0,B.jsxs)(`button`,{type:`button`,className:PB.floatingActionButton,onClick:de,disabled:ie||x||w||!ae||A||se||ce,title:e(`config_management.save`),"aria-label":e(`config_management.save`),children:[(0,B.jsx)(gs,{size:16}),ae&&(0,B.jsx)(`span`,{className:PB.dirtyDot,"aria-hidden":`true`})]})]})}),Te=g===`visual`?e(`config_management.tabs.visual`,{defaultValue:`可视化编辑`}):e(`config_management.tabs.source`,{defaultValue:`源文件编辑`}),Ee=e(g===`visual`?`config_management.visual.notice`:`config_management.description`);return(0,B.jsxs)(`div`,{className:PB.container,children:[(0,B.jsxs)(`div`,{className:PB.pageHeader,children:[(0,B.jsxs)(`div`,{className:PB.pageHeaderCopy,children:[(0,B.jsx)(`span`,{className:PB.pageEyebrow,children:Te}),(0,B.jsx)(`h1`,{className:PB.pageTitle,children:e(`config_management.title`)}),(0,B.jsx)(`p`,{className:PB.description,children:Ee})]}),(0,B.jsxs)(`div`,{className:PB.pageMeta,children:[(0,B.jsx)(`div`,{className:`${PB.statusBadge} ${xe()}`,children:be()}),(0,B.jsxs)(`div`,{className:PB.tabBar,children:[(0,B.jsx)(`button`,{type:`button`,className:`${PB.tabItem} ${g===`visual`?PB.tabActive:``}`,onClick:()=>pe(`visual`),disabled:w||x,children:e(`config_management.tabs.visual`,{defaultValue:`可视化编辑`})}),(0,B.jsx)(`button`,{type:`button`,className:`${PB.tabItem} ${g===`source`?PB.tabActive:``}`,onClick:()=>pe(`source`),disabled:w||x,children:e(`config_management.tabs.source`,{defaultValue:`源代码编辑`})})]})]})]}),(0,B.jsx)(`div`,{className:PB.workspaceShell,children:(0,B.jsxs)(`div`,{className:PB.content,children:[E&&(0,B.jsx)(`div`,{className:`error-box`,children:E}),!E&&u&&(0,B.jsx)(`div`,{className:`error-box`,children:e(`config_management.visual_mode_unavailable_detail`,{message:u})}),g===`visual`?(0,B.jsx)(vD,{values:c,validationErrors:d,hasPayloadValidationErrors:f,disabled:ie||x,onChange:h}):(0,B.jsxs)(`div`,{className:PB.sourceWorkspace,children:[(0,B.jsxs)(`div`,{className:PB.sourceToolbar,children:[(0,B.jsx)(`div`,{className:PB.searchInputWrapper,children:(0,B.jsx)(Xo,{value:F,onChange:e=>he(e.target.value),onKeyDown:_e,placeholder:e(`config_management.search_placeholder`,{defaultValue:`搜索配置内容...`}),disabled:ie||x,className:PB.searchInput,rightElement:(0,B.jsxs)(`div`,{className:PB.searchRight,children:[F&&te===F&&(0,B.jsx)(`span`,{className:PB.searchCount,children:L.total>0?`${L.current} / ${L.total}`:e(`config_management.search_no_results`,{defaultValue:`无结果`})}),(0,B.jsx)(`button`,{type:`button`,className:PB.searchButton,onClick:()=>ge(`next`),disabled:!F||ie||x,title:e(`config_management.search_button`,{defaultValue:`搜索`}),children:(0,B.jsx)(ms,{size:16})})]})})}),(0,B.jsxs)(`div`,{className:PB.searchActions,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ve,disabled:!F||te!==F||L.total===0,title:e(`config_management.search_prev`,{defaultValue:`上一个`}),children:(0,B.jsx)(ds,{size:16})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ye,disabled:!F||te!==F||L.total===0,title:e(`config_management.search_next`,{defaultValue:`下一个`}),children:(0,B.jsx)(fs,{size:16})})]})]}),(0,B.jsx)(`div`,{className:PB.editorWrapper,children:(0,B.jsx)(y.Suspense,{fallback:null,children:(0,B.jsx)(QJ,{editorRef:re,value:v,onChange:fe,theme:o,editable:!ie&&!x,placeholder:e(`config_management.editor_placeholder`)})})})]})]})}),oe&&typeof document<`u`?(0,S.createPortal)(we,document.body):null,(0,B.jsx)(NB,{open:A,original:M,modified:P,onConfirm:ue,onCancel:()=>j(!1),loading:w})]})}function tY(e,t){let[n,r]=(0,y.useState)(()=>{try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return console.error(`Error reading localStorage key "${e}":`,n),t}});return[n,(0,y.useCallback)(t=>{r(n=>{let r=t instanceof Function?t(n):t;try{window.localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`Error setting localStorage key "${e}":`,t)}return r})},[e])]}var nY=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`],rY=[`2xx`,`3xx`,`4xx`,`5xx`],iY=e=>{if(typeof e==`number`){if(e>=200&&e<300)return`2xx`;if(e>=300&&e<400)return`3xx`;if(e>=400&&e<500)return`4xx`;if(e>=500&&e<600)return`5xx`}},aY=RegExp(`\\b(${nY.join(`|`)})\\b`),oY=/^\[?(\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\]?/,sY=/^\[?(trace|debug|info|warn|warning|error|fatal)\s*\]?(?=\s|\[|$)\s*/i,cY=/^\[([^\]]+)\]/,lY=/\b(?:\d+(?:\.\d+)?\s*(?:µs|us|ms|s|m))(?:\s*\d+(?:\.\d+)?\s*(?:µs|us|ms|s|m))*\b/i,uY=/\b(?:\d{1,3}\.){3}\d{1,3}\b/,dY=/\b(?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}\b/i,fY=/^([a-f0-9]{8}|--------)$/i,pY=/^\d{1,2}:\d{2}:\d{2}(?:\.\d{1,3})?$/,mY=/^\[GIN\]\s+(\d{4})\/(\d{2})\/(\d{2})\s*-\s*(\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\s*$/,hY=[/\|\s*([1-5]\d{2})\s*\|/,/\b([1-5]\d{2})\s*-/,RegExp(`\\b(?:${nY.join(`|`)})\\s+\\S+\\s+([1-5]\\d{2})\\b`),/\b(?:status|code|http)[:\s]+([1-5]\d{2})\b/i,/\b([1-5]\d{2})\s+(?:OK|Created|Accepted|No Content|Moved|Found|Bad Request|Unauthorized|Forbidden|Not Found|Method Not Allowed|Internal Server Error|Bad Gateway|Service Unavailable|Gateway Timeout)\b/i],gY=e=>{for(let t of hY){let n=e.match(t);if(!n)continue;let r=Number.parseInt(n[1],10);if(Number.isFinite(r)&&r>=100&&r<=599)return r}},_Y=e=>{let t=e.match(uY);if(t)return t[0];let n=e.match(dY);if(!n)return;let r=n[0];if(!pY.test(r)&&!(!r.includes(`::`)&&r.split(`:`).length!==8))return r},vY=e=>{let t=e.trim(),n=t.match(/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})/);return n?`${n[1]} ${n[2]}`:t},yY=e=>{let t=e.match(lY);if(t)return t[0].replace(/\s+/g,``)},bY=e=>{let t=e.trim().toLowerCase();if(t===`warning`||t===`warn`)return`warn`;if(t===`info`)return`info`;if(t===`error`)return`error`;if(t===`fatal`)return`fatal`;if(t===`debug`)return`debug`;if(t===`trace`)return`trace`},xY=e=>{let t=e.toLowerCase();if(/\bfatal\b/.test(t))return`fatal`;if(/\berror\b/.test(t))return`error`;if(/\bwarn(?:ing)?\b/.test(t)||e.includes(`警告`))return`warn`;if(/\binfo\b/.test(t))return`info`;if(/\bdebug\b/.test(t))return`debug`;if(/\btrace\b/.test(t))return`trace`},SY=e=>{let t=e.match(aY);if(!t)return{};let n=t[1],r=t.index??0,i=e.slice(r+t[0].length).trim();return{method:n,path:i?i.split(/\s+/)[0]:void 0}},CY=e=>{let t=e.trim(),n,r=t.match(oY);r&&(n=r[1],t=t.slice(r[0].length).trim());let i,a=t.match(/^\[([a-f0-9]{8}|--------)\]\s*/i);if(a){let e=a[1];/^-+$/.test(e)||(i=e),t=t.slice(a[0].length).trim()}let o,s=t.match(sY);s&&(o=bY(s[1]),t=t.slice(s[0].length).trim());let c,l=t.match(cY);l&&(c=l[1],t=t.slice(l[0].length).trim());let u,d,f,p,m,h=t;if(t.includes(`|`)){let e=t.split(`|`).map(e=>e.trim()).filter(Boolean),r=new Set,a=e.findIndex(e=>mY.test(e));if(a>=0){let t=e[a].match(mY);if(t){let e=`${t[1]}-${t[2]}-${t[3]} ${t[4]}`,i=vY(e),o=n?vY(n):void 0;n?o===i&&r.add(a):(n=e,r.add(a))}}let o=e.findIndex(e=>fY.test(e));if(o>=0){let t=e[o].match(fY);if(t){let e=t[1];/^-+$/.test(e)||(i=e),r.add(o)}}let s=e.findIndex(e=>/^\d{3}$/.test(e));if(s>=0){let t=e[s].match(/^(\d{3})$/);if(t){let e=Number.parseInt(t[1],10);e>=100&&e<=599&&(u=e,r.add(s))}}let l=e.findIndex(e=>lY.test(e));if(l>=0){let t=yY(e[l]);t&&(d=t,r.add(l))}let g=e.findIndex(e=>!!_Y(e));if(g>=0){let t=_Y(e[g]);t&&(f=t,r.add(g))}let _=e.findIndex(e=>{let{method:t}=SY(e);return!!t});if(_>=0){let t=SY(e[_]);p=t.method,m=t.path,r.add(_)}let v=e.findIndex(e=>cY.test(e));if(v>=0){let t=e[v].match(cY);t&&(c=t[1],r.add(v))}h=e.filter((e,t)=>!r.has(t)).join(` | `)}else{u=gY(t);let e=yY(t);e&&(d=e),f=_Y(t);let n=SY(t);p=n.method,m=n.path}if(o||(o=xY(e)),h){let e=h.match(mY);if(e){let t=`${e[1]}-${e[2]}-${e[3]} ${e[4]}`;n||(n=t),vY(n)===vY(t)&&(h=``)}}return{raw:e,timestamp:n,level:o,source:c,requestId:i,statusCode:u,latency:d,ip:f,method:p,path:m,message:h}},wY=12;function TY(e){let{parsedLines:t}=e,[n,r]=tY(`logsPage.methodFilters`,[]),[i,a]=tY(`logsPage.statusFilters`,[]),[o,s]=tY(`logsPage.pathFilters`,[]),c=(0,y.useMemo)(()=>new Set(n),[n]),l=(0,y.useMemo)(()=>new Set(i),[i]),u=(0,y.useMemo)(()=>new Set(o),[o]),d=n.length>0||i.length>0||o.length>0,f=(0,y.useMemo)(()=>{let e={};return t.forEach(t=>{t.method&&(e[t.method]=(e[t.method]??0)+1)}),e},[t]),p=(0,y.useMemo)(()=>{let e={};return t.forEach(t=>{let n=iY(t.statusCode);n&&(e[n]=(e[n]??0)+1)}),e},[t]),m=(0,y.useMemo)(()=>{let e=new Map;return t.forEach(t=>{t.path&&e.set(t.path,(e.get(t.path)??0)+1)}),Array.from(e.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,wY).map(([e,t])=>({path:e,count:t}))},[t]);return(0,y.useEffect)(()=>{if(t.length===0)return;let e=new Set(m.map(e=>e.path));s(t=>{if(t.length===0)return t;let n=t.filter(t=>e.has(t));return n.length===t.length?t:n})},[t.length,m,s]),{methodFilters:n,statusFilters:i,pathFilters:o,methodFilterSet:c,statusFilterSet:l,pathFilterSet:u,hasStructuredFilters:d,methodCounts:f,statusCounts:p,pathOptions:m,toggleMethodFilter:e=>{r(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},toggleStatusFilter:e=>{a(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},togglePathFilter:e=>{s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},clearStructuredFilters:()=>{r([]),a([]),s([])}}}var EY=200,DY=72,OY=e=>e?e.scrollHeight-e.scrollTop-e.clientHeight<=24:!0;function kY(e){let{logState:t,setLogState:n,loading:r,isSearching:i,filteredLineCount:a,hasStructuredFilters:o,showRawLogs:s}=e,c=(0,y.useRef)(null),l=(0,y.useRef)(!1),u=(0,y.useRef)(null),d=!i&&t.visibleFrom>0,f=(0,y.useCallback)(()=>{let e=c.current;e&&(e.scrollTop=e.scrollHeight)},[]),p=(0,y.useCallback)(()=>{l.current=!0},[]),m=(0,y.useCallback)(()=>{let e=c.current;e&&(u.current||i||n(t=>t.visibleFrom<=0?t:(u.current={scrollHeight:e.scrollHeight,scrollTop:e.scrollTop},{...t,visibleFrom:Math.max(t.visibleFrom-EY,0)})))},[i,n]),h=(0,y.useCallback)(e=>{let t=c.current;t&&(i||d&&(u.current||t.scrollTop>DY||m()))},[d,i,m]);(0,y.useLayoutEffect)(()=>{let e=c.current,t=u.current;if(!e||!t)return;let n=e.scrollHeight-t.scrollHeight;e.scrollTop=t.scrollTop+n,u.current=null},[t.visibleFrom]);let g=(0,y.useCallback)(()=>{let e=c.current;e&&d&&(i||u.current||e.scrollHeight>e.clientHeight+1||m())},[d,i,m]);return(0,y.useEffect)(()=>{if(r||!c.current)return;let e=window.requestAnimationFrame(()=>{g()});return()=>{window.cancelAnimationFrame(e)}},[a,o,r,t.visibleFrom,s,g]),(0,y.useEffect)(()=>{let e=()=>{window.requestAnimationFrame(()=>{g()})};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[g]),(0,y.useEffect)(()=>{l.current&&(r||c.current&&(f(),l.current=!1))},[r,t.buffer,t.visibleFrom,f]),{logViewerRef:c,canLoadMore:d,handleLogScroll:h,scrollToBottom:f,requestScrollToBottom:p}}var $={container:`LogsPage-module__container___aQ0JL`,pageTitle:`LogsPage-module__pageTitle___vZY55`,tabBar:`LogsPage-module__tabBar___bI3hW`,tabItem:`LogsPage-module__tabItem___5tb4J`,tabActive:`LogsPage-module__tabActive___JjbWX`,content:`LogsPage-module__content___hGaGn`,logCard:`LogsPage-module__logCard___KG4Jd`,toolbar:`LogsPage-module__toolbar___9dY5F`,filters:`LogsPage-module__filters___nUahU`,searchWrapper:`LogsPage-module__searchWrapper___mrEmr`,filterPanelHeader:`LogsPage-module__filterPanelHeader___Oi5tO`,filterPanelToggle:`LogsPage-module__filterPanelToggle___ADZED`,filterPanelButtonContent:`LogsPage-module__filterPanelButtonContent___sgOCp`,filterPanelCount:`LogsPage-module__filterPanelCount___kAJ5-`,structuredFilters:`LogsPage-module__structuredFilters___fW4v7`,filterChipGroup:`LogsPage-module__filterChipGroup___bbPoy`,filterChipLabel:`LogsPage-module__filterChipLabel___jy0D3`,filterChipList:`LogsPage-module__filterChipList___hHeOY`,filterChip:`LogsPage-module__filterChip___Efqh7`,filterChipActive:`LogsPage-module__filterChipActive___8S8ki`,filterChipHint:`LogsPage-module__filterChipHint___shcVo`,searchInput:`LogsPage-module__searchInput___eoPij`,searchIcon:`LogsPage-module__searchIcon___73cvF`,searchClear:`LogsPage-module__searchClear___yTM1y`,filterStats:`LogsPage-module__filterStats___IaTXF`,removedCount:`LogsPage-module__removedCount___bNgxC`,actionButton:`LogsPage-module__actionButton___aYJPR`,buttonContent:`LogsPage-module__buttonContent___qjHrB`,switchLabel:`LogsPage-module__switchLabel___EfB3d`,logPanel:`LogsPage-module__logPanel___2wjiP`,errorPanel:`LogsPage-module__errorPanel___0w-se`,loadMoreBanner:`LogsPage-module__loadMoreBanner___BUD0t`,loadMoreCount:`LogsPage-module__loadMoreCount___UsdBd`,loadMoreStats:`LogsPage-module__loadMoreStats___e9bVk`,logList:`LogsPage-module__logList___lFt6f`,rawLog:`LogsPage-module__rawLog___F5YBd`,logRow:`LogsPage-module__logRow___rxZS5`,rowWarn:`LogsPage-module__rowWarn___Lhg4M`,rowError:`LogsPage-module__rowError___XQ3Qi`,timestamp:`LogsPage-module__timestamp___TZvLq`,rowMain:`LogsPage-module__rowMain___f--We`,badge:`LogsPage-module__badge___tR566`,pill:`LogsPage-module__pill___vGA2z`,source:`LogsPage-module__source___nv7Zu`,requestIdBadge:`LogsPage-module__requestIdBadge___yPO1b`,statusBadge:`LogsPage-module__statusBadge___hj08j`,statusSuccess:`LogsPage-module__statusSuccess___3llcn`,statusInfo:`LogsPage-module__statusInfo___B6DaE`,statusWarn:`LogsPage-module__statusWarn___1Dwki`,statusError:`LogsPage-module__statusError___xxTDc`,levelInfo:`LogsPage-module__levelInfo___oZMOp`,levelWarn:`LogsPage-module__levelWarn___DsCD0`,levelError:`LogsPage-module__levelError___8VjWc`,levelDebug:`LogsPage-module__levelDebug___l-5yk`,levelTrace:`LogsPage-module__levelTrace___XvRLF`,methodBadge:`LogsPage-module__methodBadge___Cf9jC`,path:`LogsPage-module__path___frHAs`,message:`LogsPage-module__message___bNHRw`},AY=100,jY=1e4,MY=650,NY=10,PY=e=>{if(e instanceof Error)return e.message;if(typeof e==`string`)return e;if(typeof e!=`object`||!e||!(`message`in e))return``;let t=e.message;return typeof t==`string`?t:``};function FY(){let{t:e}=qo(),{showNotification:t,showConfirmation:n}=hc(),r=ep(e=>e.connectionStatus),i=Of(e=>e.config)?.requestLog??!1,[a,o]=(0,y.useState)(`logs`),[s,c]=(0,y.useState)({buffer:[],visibleFrom:0}),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(``),[p,m]=tY(`logsPage.autoRefresh`,!1),[h,g]=(0,y.useState)(``),_=(0,y.useDeferredValue)(h),[v,b]=tY(`logsPage.hideManagementLogs`,!0),[x,S]=tY(`logsPage.showRawLogs`,!1),[C,w]=tY(`logsPage.structuredFiltersExpanded`,!0),[T,E]=(0,y.useState)([]),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(null),[N,P]=(0,y.useState)(!1),ee=(0,y.useRef)(null),F=(0,y.useRef)(null),I=(0,y.useRef)(!1),L=(0,y.useRef)(!1),R=(0,y.useRef)(0),te=r!==`connected`,ne=async(t=!1)=>{if(r!==`connected`){u(!1);return}if(I.current){t||(L.current=!0);return}I.current=!0,t||u(!0),f(``);try{let e=ee.current,n=!t||OY(e?.logViewerRef.current??null);n&&e?.requestScrollToBottom();let r=t&&R.current>0?{after:R.current}:{},i=await lg.fetchLogs(r);i[`latest-timestamp`]&&(R.current=i[`latest-timestamp`]);let a=Array.isArray(i.lines)?i.lines:[];if(t&&a.length>0)c(e=>{let t=e.buffer.length-e.visibleFrom,r=[...e.buffer,...a],i=Math.max(r.length-jY,0),o=i>0?r.slice(i):r,s=Math.max(e.visibleFrom-i,0);return n&&(s=Math.max(o.length-t,0)),{buffer:o,visibleFrom:s}});else if(!t){let e=a.slice(-jY);c({buffer:e,visibleFrom:Math.max(e.length-AY,0)})}}catch(n){console.error(`Failed to load logs:`,n),t||f(PY(n)||e(`logs.load_error`))}finally{t||u(!1),I.current=!1,L.current&&(L.current=!1,ne(!1))}};a_(()=>ne(!1));let re=async()=>{n({title:e(`logs.clear_confirm_title`,{defaultValue:`Clear Logs`}),message:e(`logs.clear_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:async()=>{try{await lg.clearLogs(),c({buffer:[],visibleFrom:0}),R.current=0,t(e(`logs.clear_success`),`success`)}catch(n){let r=PY(n);t(`${e(`notification.delete_failed`)}${r?`: ${r}`:``}`,`error`)}}})},z=()=>{let n=s.buffer.join(` `);gx({filename:`logs.txt`,blob:new Blob([n],{type:`text/plain`})}),t(e(`logs.download_success`),`success`)},ie=async()=>{if(r!==`connected`){O(!1);return}O(!0),A(``);try{let e=await lg.fetchErrorLogs();E(Array.isArray(e.files)?e.files:[])}catch(t){console.error(`Failed to load error logs:`,t),E([]);let n=PY(t);A(n?`${e(`logs.error_logs_load_error`)}: ${n}`:e(`logs.error_logs_load_error`))}finally{O(!1)}},ae=async n=>{try{let r=await lg.downloadErrorLog(n);gx({filename:n,blob:new Blob([r.data],{type:`text/plain`})}),t(e(`logs.error_log_download_success`),`success`)}catch(n){let r=PY(n);t(`${e(`notification.download_failed`)}${r?`: ${r}`:``}`,`error`)}};(0,y.useEffect)(()=>{r===`connected`&&(R.current=0,ne(!1))},[r]),(0,y.useEffect)(()=>{a===`errors`&&r===`connected`&&ie()},[a,r,i]),(0,y.useEffect)(()=>{if(!p||r!==`connected`)return;let e=window.setInterval(()=>{ne(!0)},8e3);return()=>window.clearInterval(e)},[p,r]);let oe=(0,y.useMemo)(()=>s.buffer.slice(s.visibleFrom),[s.buffer,s.visibleFrom]),se=_.trim(),ce=se.length>0,le=ce?s.buffer:oe,ue=(0,y.useMemo)(()=>{let e=le;if(v&&(e=e.filter(e=>!e.includes(nc))),se){let t=se.toLowerCase();e=e.filter(e=>e.toLowerCase().includes(t))}return e.map(e=>CY(e))},[le,v,se]),de=TY({parsedLines:ue}),fe=`logs-structured-filters`,pe=de.methodFilters.length+de.statusFilters.length+de.pathFilters.length,{filteredParsedLines:me,filteredLines:he,removedCount:ge}=(0,y.useMemo)(()=>{let e=ue.filter(e=>{if(de.methodFilterSet.size>0&&(!e.method||!de.methodFilterSet.has(e.method)))return!1;let t=iY(e.statusCode);return!(de.statusFilterSet.size>0&&(!t||!de.statusFilterSet.has(t))||de.pathFilterSet.size>0&&(!e.path||!de.pathFilterSet.has(e.path)))});return{filteredParsedLines:e,filteredLines:e.map(e=>e.raw),removedCount:Math.max(le.length-e.length,0)}},[le,de.methodFilterSet,de.pathFilterSet,de.statusFilterSet,ue]),_e=(0,y.useMemo)(()=>x?[]:me,[me,x]),ve=(0,y.useMemo)(()=>he.join(` -`),[he]),ye=kY({logState:s,setLogState:c,loading:l,isSearching:ce,filteredLineCount:he.length,hasStructuredFilters:de.hasStructuredFilters,showRawLogs:x});ee.current=ye;let be=async n=>{await Dv(n)?t(e(`logs.copy_success`,{defaultValue:`Copied to clipboard`}),`success`):t(e(`logs.copy_failed`,{defaultValue:`Copy failed`}),`error`)},xe=()=>{F.current?.timer&&(window.clearTimeout(F.current.timer),F.current.timer=null)},Se=(e,t)=>{i&&t&&(j||(xe(),F.current={timer:window.setTimeout(()=>{M(t),F.current&&(F.current.fired=!0,F.current.timer=null)},MY),startX:e.clientX,startY:e.clientY,fired:!1}))},Ce=()=>{xe(),F.current=null},we=e=>{let t=F.current;if(!t||t.timer===null||t.fired)return;let n=Math.abs(e.clientX-t.startX),r=Math.abs(e.clientY-t.startY);(n>NY||r>NY)&&Ce()},Te=()=>{N||M(null)},Ee=async n=>{P(!0);try{let r=await lg.downloadRequestLogById(n);gx({filename:`request-${n}.log`,blob:new Blob([r.data],{type:`text/plain`})}),t(e(`logs.request_log_download_success`),`success`),M(null)}catch(n){let r=PY(n);t(`${e(`notification.download_failed`)}${r?`: ${r}`:``}`,`error`)}finally{P(!1)}};return(0,y.useEffect)(()=>()=>{F.current?.timer&&(window.clearTimeout(F.current.timer),F.current.timer=null)},[]),(0,B.jsxs)(`div`,{className:$.container,children:[(0,B.jsx)(`h1`,{className:$.pageTitle,children:e(`logs.title`)}),(0,B.jsxs)(`div`,{className:$.tabBar,children:[(0,B.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${a===`logs`?$.tabActive:``}`,onClick:()=>o(`logs`),children:e(`logs.log_content`)}),(0,B.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${a===`errors`?$.tabActive:``}`,onClick:()=>o(`errors`),children:e(`logs.error_logs_modal_title`)})]}),(0,B.jsxs)(`div`,{className:$.content,children:[a===`logs`&&(0,B.jsxs)(hg,{className:$.logCard,children:[d&&(0,B.jsx)(`div`,{className:`error-box`,children:d}),(0,B.jsxs)(`div`,{className:$.filters,children:[(0,B.jsx)(`div`,{className:$.searchWrapper,children:(0,B.jsx)(Xo,{value:h,onChange:e=>g(e.target.value),placeholder:e(`logs.search_placeholder`),className:$.searchInput,rightElement:h?(0,B.jsx)(`button`,{type:`button`,className:$.searchClear,onClick:()=>g(``),title:`Clear`,"aria-label":`Clear`,children:(0,B.jsx)(hs,{size:16})}):(0,B.jsx)(ms,{size:16,className:$.searchIcon})})}),(0,B.jsx)(`div`,{className:$.filterPanelHeader,children:(0,B.jsx)(V,{type:`button`,variant:`secondary`,size:`sm`,className:$.filterPanelToggle,onClick:()=>w(e=>!e),"aria-expanded":C,"aria-controls":fe,title:e(C?`logs.filter_panel_collapse`:`logs.filter_panel_expand`),children:(0,B.jsxs)(`span`,{className:$.filterPanelButtonContent,children:[(0,B.jsx)($o,{size:16}),(0,B.jsx)(`span`,{children:e(`logs.filter_panel_title`)}),pe>0&&(0,B.jsx)(`span`,{className:$.filterPanelCount,children:e(`logs.filter_panel_active_count`,{count:pe})}),C?(0,B.jsx)(ds,{size:16}):(0,B.jsx)(fs,{size:16})]})})}),C&&(0,B.jsxs)(`div`,{id:fe,className:$.structuredFilters,children:[(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_method`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:nY.map(e=>{let t=de.methodFilters.includes(e),n=de.methodCounts[e]??0;return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${t?$.filterChipActive:``}`,onClick:()=>de.toggleMethodFilter(e),disabled:n===0&&!t,"aria-pressed":t,children:[e,` (`,n,`)`]},e)})})]}),(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_status`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:rY.map(t=>{let n=de.statusFilters.includes(t),r=de.statusCounts[t]??0;return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>de.toggleStatusFilter(t),disabled:r===0&&!n,"aria-pressed":n,children:[e(`logs.filter_status_${t}`),` (`,r,`)`]},t)})})]}),(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_path`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:de.pathOptions.length===0?(0,B.jsx)(`span`,{className:$.filterChipHint,children:e(`logs.filter_path_empty`)}):de.pathOptions.map(({path:e,count:t})=>{let n=de.pathFilters.includes(e);return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>de.togglePathFilter(e),"aria-pressed":n,title:e,children:[e,` (`,t,`)`]},e)})})]}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:de.clearStructuredFilters,disabled:!de.hasStructuredFilters,children:e(`logs.clear_filters`)})]}),(0,B.jsx)(Sg,{checked:v,onChange:b,label:(0,B.jsxs)(`span`,{className:$.switchLabel,children:[(0,B.jsx)(vs,{size:16}),e(`logs.hide_management_logs`,{prefix:`/v0/management`})]})}),(0,B.jsx)(Sg,{checked:x,onChange:S,label:(0,B.jsxs)(`span`,{className:$.switchLabel,title:e(`logs.show_raw_logs_hint`,{defaultValue:`Show original log text for easier multi-line copy`}),children:[(0,B.jsx)(Ds,{size:16}),e(`logs.show_raw_logs`,{defaultValue:`Show raw logs`})]})}),(0,B.jsxs)(`div`,{className:$.toolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ne(!1),disabled:te||l,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(cs,{size:16}),e(`logs.refresh_button`)]})}),(0,B.jsx)(Sg,{checked:p,onChange:e=>m(e),disabled:te,label:(0,B.jsxs)(`span`,{className:$.switchLabel,children:[(0,B.jsx)(Ss,{size:16}),e(`logs.auto_refresh`)]})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:z,disabled:s.buffer.length===0,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(ls,{size:16}),e(`logs.download_button`)]})}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:re,disabled:te,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(us,{size:16}),e(`logs.clear_button`)]})})]})]}),l?(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.loading`)}):s.buffer.length>0&&he.length>0?(0,B.jsxs)(`div`,{ref:ye.logViewerRef,className:$.logPanel,onScroll:ye.handleLogScroll,children:[ye.canLoadMore&&(0,B.jsxs)(`div`,{className:$.loadMoreBanner,children:[(0,B.jsx)(`span`,{children:e(`logs.load_more_hint`)}),(0,B.jsxs)(`div`,{className:$.loadMoreStats,children:[(0,B.jsx)(`span`,{children:e(`logs.loaded_lines`,{count:he.length})}),ge>0&&(0,B.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.filtered_lines`,{count:ge})}),(0,B.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.hidden_lines`,{count:s.visibleFrom})})]})]}),x?(0,B.jsx)(`pre`,{className:$.rawLog,spellCheck:!1,children:ve}):(0,B.jsx)(`div`,{className:$.logList,children:_e.map((t,n)=>{let r=[$.logRow];return t.level===`warn`&&r.push($.rowWarn),(t.level===`error`||t.level===`fatal`)&&r.push($.rowError),(0,B.jsxs)(`div`,{className:r.join(` `),onDoubleClick:()=>{be(t.raw)},onPointerDown:e=>Se(e,t.requestId),onPointerUp:Ce,onPointerLeave:Ce,onPointerCancel:Ce,onPointerMove:we,title:e(`logs.double_click_copy_hint`,{defaultValue:`Double-click to copy`}),children:[(0,B.jsx)(`div`,{className:$.timestamp,children:t.timestamp||``}),(0,B.jsxs)(`div`,{className:$.rowMain,children:[t.level&&(0,B.jsx)(`span`,{className:[$.badge,t.level===`info`?$.levelInfo:``,t.level===`warn`?$.levelWarn:``,t.level===`error`||t.level===`fatal`?$.levelError:``,t.level===`debug`?$.levelDebug:``,t.level===`trace`?$.levelTrace:``].filter(Boolean).join(` `),children:t.level.toUpperCase()}),t.source&&(0,B.jsx)(`span`,{className:$.source,title:t.source,children:t.source}),t.requestId&&(0,B.jsx)(`span`,{className:[$.badge,$.requestIdBadge].join(` `),title:t.requestId,children:t.requestId}),typeof t.statusCode==`number`&&(0,B.jsx)(`span`,{className:[$.badge,$.statusBadge,t.statusCode>=200&&t.statusCode<300?$.statusSuccess:t.statusCode>=300&&t.statusCode<400?$.statusInfo:t.statusCode>=400&&t.statusCode<500?$.statusWarn:$.statusError].join(` `),children:t.statusCode}),t.latency&&(0,B.jsx)(`span`,{className:$.pill,children:t.latency}),t.ip&&(0,B.jsx)(`span`,{className:$.pill,children:t.ip}),t.method&&(0,B.jsx)(`span`,{className:[$.badge,$.methodBadge].join(` `),children:t.method}),t.path&&(0,B.jsx)(`span`,{className:$.path,title:t.path,children:t.path}),t.message&&(0,B.jsx)(`span`,{className:$.message,children:t.message})]})]},`${s.visibleFrom+n}-${t.raw}`)})})]}):s.buffer.length>0?(0,B.jsx)(wg,{title:e(`logs.search_empty_title`),description:e(`logs.search_empty_desc`)}):(0,B.jsx)(wg,{title:e(`logs.empty_title`),description:e(`logs.empty_desc`)})]}),a===`errors`&&(0,B.jsx)(hg,{extra:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,loading:D,disabled:te,children:e(`common.refresh`)}),children:(0,B.jsxs)(`div`,{className:`stack`,children:[(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_description`)}),i&&(0,B.jsx)(`div`,{children:(0,B.jsx)(`div`,{className:`status-badge warning`,children:e(`logs.error_logs_request_log_enabled`)})}),k&&(0,B.jsx)(`div`,{className:`error-box`,children:k}),(0,B.jsx)(`div`,{className:$.errorPanel,children:D?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):T.length===0?(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_empty`)}):(0,B.jsx)(`div`,{className:`item-list`,children:T.map(t=>(0,B.jsxs)(`div`,{className:`item-row`,children:[(0,B.jsxs)(`div`,{className:`item-meta`,children:[(0,B.jsx)(`div`,{className:`item-title`,children:t.name}),(0,B.jsxs)(`div`,{className:`item-subtitle`,children:[t.size?`${(t.size/1024).toFixed(1)} KB`:``,` `,t.modified?yg(t.modified):``]})]}),(0,B.jsx)(`div`,{className:`item-actions`,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ae(t.name),disabled:te,children:e(`logs.error_logs_download`)})})]},t.name))})})]})})]}),(0,B.jsx)(um,{open:!!j,onClose:Te,title:e(`logs.request_log_download_title`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:Te,disabled:N,children:e(`common.cancel`)}),(0,B.jsx)(V,{onClick:()=>{j&&Ee(j)},loading:N,disabled:!j,children:e(`common.confirm`)})]}),children:j?e(`logs.request_log_download_confirm`,{id:j}):null})]})}var IY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eZhipu%3c/title%3e%3cpath%20d='M11.991%2023.503a.24.24%200%2000-.244.248.24.24%200%2000.244.249.24.24%200%2000.245-.249.24.24%200%2000-.22-.247l-.025-.001zM9.671%205.365a1.697%201.697%200%20011.099%202.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47%201.279%201.186%201.314h.366c1.309.053%202.338%201.173%202.286%202.523-.052%201.332-1.152%202.38-2.478%202.327h-.174c-.715.018-1.274.64-1.239%201.368%200%20.124.018.23.053.337.209.373.54.658.96.8.75.23%201.517-.125%201.9-.782l.018-.035c.402-.64%201.17-.96%201.92-.711.854.284%201.378%201.226%201.099%202.167a1.661%201.661%200%2001-2.077%201.102%201.711%201.711%200%2001-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646%201.646%200%2000-1.954.746%201.66%201.66%200%2001-1.065.764%201.677%201.677%200%2001-1.989-1.279c-.209-.906.332-1.83%201.257-2.043a1.51%201.51%200%2001.296-.035h.018c.68-.071%201.151-.622%201.116-1.333a1.307%201.307%200%2000-.227-.693%202.515%202.515%200%2001-.366-1.403%202.39%202.39%200%2001.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43%201.43%200%2001-.299-.07l-.05-.019a1.7%201.7%200%2001-1.047-2.114%201.68%201.68%200%20012.094-1.101zm-5.575%2010.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267%201.013-.402.41-1.053.41-1.455%200a1.062%201.062%200%20010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237%201.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05%201.05%200%2001.757-1.26zm-.064-4.39c.314.32.49.753.49%201.206%200%20.452-.176.886-.49%201.206-.315.32-.74.5-1.185.5-.444%200-.87-.18-1.184-.5a1.727%201.727%200%20010-2.412%201.654%201.654%200%20012.369%200zm-11.243.163c.364.484.447%201.128.218%201.691a1.665%201.665%200%2001-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68%201.68%200%20011.33-1.038c.593-.08%201.183.169%201.547.652zm11.545-4.221c.368%200%20.708.2.892.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.892.524c-.568%200-1.03-.47-1.03-1.048%200-.579.462-1.048%201.03-1.048zm-14.358%200c.368%200%20.707.2.891.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.891.524c-.569%200-1.03-.47-1.03-1.048%200-.579.461-1.048%201.03-1.048zm10.031-1.475c.925%200%201.675.764%201.675%201.706s-.75%201.705-1.675%201.705-1.674-.763-1.674-1.705c0-.942.75-1.706%201.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062%201.062%200%2000-.238-1.028%201.017%201.017%200%2000-.996-.294c-.547.14-.881.7-.752%201.257.13.558.675.907%201.225.783zm0%2016.876c.359-.087.644-.36.75-.72a1.062%201.062%200%2000-.237-1.019%201.018%201.018%200%2000-.985-.301%201.037%201.037%200%2000-.762.717c-.108.361-.017.754.239%201.028.245.263.606.377.953.305l.043-.01zM17.19%203.5a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.28.64.628.64zm-10.38%200a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.279.64.628.64zm-5.182%207.852a.631.631%200%2000-.628.64c0%20.354.28.639.628.639a.63.63%200%2000.627-.606l.001-.034a.62.62%200%2000-.628-.64zm5.182%209.13a.631.631%200%2000-.628.64c0%20.355.279.64.628.64a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631%200%2000-.628.64c0%20.355.28.64.628.64a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631%200%2000-.628.64c0%20.354.279.639.628.639a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24%200%2000.244-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249c0%20.142.122.249.244.249zM11.991.497a.24.24%200%2000.245-.248A.24.24%200%200011.99%200a.24.24%200%2000-.244.249c0%20.133.108.236.223.247l.021.001zM2.011%206.36a.24.24%200%2000.245-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249.24.24%200%2000.244.249zm0%2011.263a.24.24%200%2000-.243.248.24.24%200%2000.244.249.24.24%200%2000.244-.249.252.252%200%2000-.244-.248zm19.995-.018a.24.24%200%2000-.245.248.24.24%200%2000.245.25.24.24%200%2000.244-.25.252.252%200%2000-.244-.248z'%20fill='%233859FF'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,LY=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,RY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`,zY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMinimax%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-minimax-fill'%20x1='0%25'%20x2='100.182%25'%20y1='50.057%25'%20y2='50.057%25'%3e%3cstop%20offset='0%25'%20stop-color='%23E2167E'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23FE603C'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M16.278%202c1.156%200%202.093.927%202.093%202.07v12.501a.74.74%200%2000.744.709.74.74%200%2000.743-.709V9.099a2.06%202.06%200%20012.071-2.049A2.06%202.06%200%200124%209.1v6.561a.649.649%200%2001-.652.645.649.649%200%2001-.653-.645V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v7.472a2.037%202.037%200%2001-2.048%202.026%202.037%202.037%200%2001-2.048-2.026v-12.5a.785.785%200%2000-.788-.753.785.785%200%2000-.789.752l-.001%2015.904A2.037%202.037%200%200113.441%2022a2.037%202.037%200%2001-2.048-2.026V18.04c0-.356.292-.645.652-.645.36%200%20.652.289.652.645v1.934c0%20.263.142.506.372.638.23.131.514.131.744%200a.734.734%200%2000.372-.638V4.07c0-1.143.937-2.07%202.093-2.07zm-5.674%200c1.156%200%202.093.927%202.093%202.07v11.523a.648.648%200%2001-.652.645.648.648%200%2001-.652-.645V4.07a.785.785%200%2000-.789-.78.785.785%200%2000-.789.78v14.013a2.06%202.06%200%2001-2.07%202.048%202.06%202.06%200%2001-2.071-2.048V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v3.8a2.06%202.06%200%2001-2.071%202.049A2.06%202.06%200%20010%2012.9v-1.378c0-.357.292-.646.652-.646.36%200%20.653.29.653.646V12.9c0%20.418.343.757.766.757s.766-.339.766-.757V9.099a2.06%202.06%200%20012.07-2.048%202.06%202.06%200%20012.071%202.048v8.984c0%20.419.343.758.767.758.423%200%20.766-.339.766-.758V4.07c0-1.143.937-2.07%202.093-2.07z'%20fill='url(%23lobe-icons-minimax-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,BY={container:`SystemPage-module__container___KAydo`,pageTitle:`SystemPage-module__pageTitle___DiF5E`,content:`SystemPage-module__content___SauLn`,aboutCard:`SystemPage-module__aboutCard___v2-ui`,aboutHeader:`SystemPage-module__aboutHeader___hT4-J`,aboutLogo:`SystemPage-module__aboutLogo___KXoLr`,aboutTitle:`SystemPage-module__aboutTitle___BTLGy`,aboutInfoGrid:`SystemPage-module__aboutInfoGrid___b7AR0`,infoTile:`SystemPage-module__infoTile___6AuIY`,tapTile:`SystemPage-module__tapTile___-9SaX`,tileLabel:`SystemPage-module__tileLabel___eMn4v`,tileHeader:`SystemPage-module__tileHeader___w4Ej0`,tileAction:`SystemPage-module__tileAction___WKXuS`,tileValue:`SystemPage-module__tileValue___Up02X`,tileSub:`SystemPage-module__tileSub___ysVDj`,section:`SystemPage-module__section___Q6rCw`,sectionTitle:`SystemPage-module__sectionTitle___GOXpQ`,sectionDescription:`SystemPage-module__sectionDescription___nI7Jo`,clearLoginActions:`SystemPage-module__clearLoginActions___4ek-m`,infoGrid:`SystemPage-module__infoGrid___NNFgo`,infoRow:`SystemPage-module__infoRow___E8Q0J`,label:`SystemPage-module__label___Xw4tZ`,value:`SystemPage-module__value___pii6g`,modelsList:`SystemPage-module__modelsList___id54Q`,modelItem:`SystemPage-module__modelItem___ZTm4G`,modelTags:`SystemPage-module__modelTags___M0sci`,groupTitle:`SystemPage-module__groupTitle___bTqIN`,groupIcon:`SystemPage-module__groupIcon___-XXrb`,modelTag:`SystemPage-module__modelTag___5Ar53`,modelName:`SystemPage-module__modelName___LKdAK`,modelAlias:`SystemPage-module__modelAlias___zioM-`,versionCheck:`SystemPage-module__versionCheck___V09h4`,versionInfo:`SystemPage-module__versionInfo___cmujE`,versionItem:`SystemPage-module__versionItem___NmHd7`,version:`SystemPage-module__version___XoIFT`,quickLinks:`SystemPage-module__quickLinks___QTmT3`,linkCard:`SystemPage-module__linkCard___iSrVF`,linkIcon:`SystemPage-module__linkIcon___gNqz2`,github:`SystemPage-module__github___V8I3m`,docs:`SystemPage-module__docs___cA-rG`,linkContent:`SystemPage-module__linkContent___Rfh7h`,linkTitle:`SystemPage-module__linkTitle___Zpr4Q`,linkDesc:`SystemPage-module__linkDesc___KKavC`},VY={gpt:{light:Ig,dark:Lg},claude:Cg,gemini:Pg,qwen:Mv,kimi:{light:jv,dark:Av},glm:IY,grok:LY,deepseek:RY,minimax:zY},HY=e=>{if(!e)return null;let t=e.trim().replace(/^v/i,``);if(!t)return null;let n=t.split(/[^0-9]+/).filter(Boolean).map(e=>Number.parseInt(e,10)).filter(Number.isFinite);return n.length?n:null},UY=(e,t)=>{let n=HY(e),r=HY(t);if(!n||!r)return null;let i=Math.max(n.length,r.length);for(let e=0;ei)return 1;if(te.resolvedTheme),a=ep(),o=Of(e=>e.config),s=Of(e=>e.fetchConfig),c=Of(e=>e.clearCache),l=Of(e=>e.updateConfigValue),u=Qf(e=>e.models),d=Qf(e=>e.loading),f=Qf(e=>e.error),p=Qf(e=>e.fetchModels),[m,h]=(0,y.useState)(),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),O=(0,y.useRef)([]),k=(0,y.useRef)(0),A=(0,y.useRef)(null),j=(0,y.useMemo)(()=>t.language?.toLowerCase().startsWith(`zh`)?`其他`:`Other`,[t.language]),M=(0,y.useMemo)(()=>Nf(u,{otherLabel:j}),[u,j]),N=o?.requestLog??!1,P=v!==N,ee=a.connectionStatus===`connected`&&!!o,F=a.serverVersion||e(`system_info.version_unknown`),I=a.serverBuildDate?new Date(a.serverBuildDate).toLocaleString(t.language):e(`system_info.version_unknown`),L=e=>{let t=VY[e];return t?typeof t==`string`?t:i===`dark`?t.dark:t.light:null},R=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{let r=typeof e==`object`&&e&&!Array.isArray(e)?e:null,i=typeof e==`string`?e:r?r[`api-key`]??r.apiKey??r.key??r.Key:``,a=String(i??``).trim();!a||t.has(a)||(t.add(a),n.push(a))}),n},te=(0,y.useCallback)(async()=>{if(O.current.length)return O.current;let e=R(o?.apiKeys);if(e.length)return O.current=e,e;try{let e=R(await vh.list());return e.length&&(O.current=e),e}catch(e){return console.warn(`Auto loading API keys for models failed:`,e),[]}},[o?.apiKeys]),ne=async({forceRefresh:t=!1}={})=>{if(a.connectionStatus!==`connected`){h({type:`warning`,message:e(`notification.connection_required`)});return}if(!a.apiBase){n(e(`notification.connection_required`),`warning`);return}t&&(O.current=[]),h({type:`muted`,message:e(`system_info.models_loading`)});try{let n=(await te())[0],r=await p(a.apiBase,n,t),i=r.length>0;h({type:i?`success`:`warning`,message:i?e(`system_info.models_count`,{count:r.length}):e(`system_info.models_empty`)})}catch(t){let n=t instanceof Error?t.message:typeof t==`string`?t:``,r=n?`: ${n}`:``;h({type:`error`,message:`${e(`system_info.models_error`)}${r}`})}},re=()=>{r({title:e(`system_info.clear_login_title`,{defaultValue:`Clear Login Storage`}),message:e(`system_info.clear_login_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:()=>{a.logout(),!(typeof localStorage>`u`)&&([cc,`isLoggedIn`,`apiBase`,`apiUrl`,`managementKey`].forEach(e=>localStorage.removeItem(e)),n(e(`notification.login_storage_cleared`),`success`))}})},z=(0,y.useCallback)(()=>{C(!1),b(N),_(!0)},[N]),ie=(0,y.useCallback)(()=>{if(k.current+=1,A.current&&clearTimeout(A.current),k.current>=7){k.current=0,A.current=null,z();return}A.current=setTimeout(()=>{k.current=0,A.current=null},1500)},[z]),ae=(0,y.useCallback)(()=>{_(!1),C(!1)},[]),oe=async()=>{if(!ee)return;if(!P){_(!1);return}let t=N;T(!0),l(`request-log`,v);try{await Cf.updateRequestLog(v),c(`request-log`),n(e(`notification.request_log_updated`),`success`),_(!1)}catch(r){let i=r instanceof Error?r.message:typeof r==`string`?r:``;l(`request-log`,t),n(`${e(`notification.update_failed`)}${i?`: ${i}`:``}`,`error`)}finally{T(!1)}},se=(0,y.useCallback)(async()=>{D(!0);try{let t=await ug.checkLatest(),r=t?.[`latest-version`]??t?.latest_version??t?.latest??``,i=typeof r==`string`?r:String(r??``),o=UY(i,a.serverVersion);if(!i){n(e(`system_info.version_check_error`),`error`);return}if(o===null){n(e(`system_info.version_current_missing`),`warning`);return}o>0?n(e(`system_info.version_update_available`,{version:i}),`warning`):n(e(`system_info.version_is_latest`),`success`)}catch(t){let r=t instanceof Error?t.message:typeof t==`string`?t:``,i=r?`: ${r}`:``;n(`${e(`system_info.version_check_error`)}${i}`,`error`)}finally{D(!1)}},[a.serverVersion,n,e]);return(0,y.useEffect)(()=>{s().catch(()=>{})},[s]),(0,y.useEffect)(()=>{g&&!S&&b(N)},[g,S,N]),(0,y.useEffect)(()=>()=>{A.current&&clearTimeout(A.current)},[]),(0,y.useEffect)(()=>{ne()},[a.connectionStatus,a.apiBase]),(0,B.jsxs)(`div`,{className:BY.container,children:[(0,B.jsx)(`h1`,{className:BY.pageTitle,children:e(`system_info.title`)}),(0,B.jsxs)(`div`,{className:BY.content,children:[(0,B.jsxs)(hg,{className:BY.aboutCard,children:[(0,B.jsxs)(`div`,{className:BY.aboutHeader,children:[(0,B.jsx)(`img`,{src:x,alt:`CPAMC`,className:BY.aboutLogo}),(0,B.jsx)(`div`,{className:BY.aboutTitle,children:e(`system_info.about_title`)})]}),(0,B.jsxs)(`div`,{className:BY.aboutInfoGrid,children:[(0,B.jsxs)(`button`,{type:`button`,className:`${BY.infoTile} ${BY.tapTile}`,onClick:ie,children:[(0,B.jsx)(`div`,{className:BY.tileHeader,children:(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.version`)})}),(0,B.jsx)(`div`,{className:BY.tileValue,children:`v1.10.1`})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsxs)(`div`,{className:BY.tileHeader,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.api_version`)}),(0,B.jsx)(V,{type:`button`,variant:`ghost`,size:`sm`,className:BY.tileAction,onClick:()=>void se(),loading:E,title:e(`system_info.version_check_button`),"aria-label":e(`system_info.version_check_button`),children:e(`system_info.version_check_button`)})]}),(0,B.jsx)(`div`,{className:BY.tileValue,children:F})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.build_date`)}),(0,B.jsx)(`div`,{className:BY.tileValue,children:I})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`connection.status`)}),(0,B.jsx)(`div`,{className:BY.tileValue,children:e(`common.${a.connectionStatus}_status`)}),(0,B.jsx)(`div`,{className:BY.tileSub,children:a.apiBase||`-`})]})]})]}),(0,B.jsxs)(hg,{title:e(`system_info.quick_links_title`),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.quick_links_desc`)}),(0,B.jsxs)(`div`,{className:BY.quickLinks,children:[(0,B.jsxs)(`a`,{href:`https://github.com/router-for-me/CLIProxyAPI`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.github}`,children:(0,B.jsx)(ws,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_main_repo`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_main_repo_desc`)})]})]}),(0,B.jsxs)(`a`,{href:`https://github.com/router-for-me/Cli-Proxy-API-Management-Center`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.github}`,children:(0,B.jsx)(Ds,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_webui_repo`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_webui_repo_desc`)})]})]}),(0,B.jsxs)(`a`,{href:`https://help.router-for.me/`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.docs}`,children:(0,B.jsx)(Es,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_docs`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_docs_desc`)})]})]})]})]}),(0,B.jsxs)(hg,{title:e(`system_info.models_title`),extra:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ne({forceRefresh:!0}),loading:d,children:e(`common.refresh`)}),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.models_desc`)}),m&&(0,B.jsx)(`div`,{className:`status-badge ${m.type}`,children:m.message}),f&&(0,B.jsx)(`div`,{className:`error-box`,children:f}),d?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):u.length===0?(0,B.jsx)(`div`,{className:`hint`,children:e(`system_info.models_empty`)}):(0,B.jsx)(`div`,{className:`item-list`,children:M.map(t=>{let n=L(t.id);return(0,B.jsxs)(`div`,{className:`item-row`,children:[(0,B.jsxs)(`div`,{className:`item-meta`,children:[(0,B.jsxs)(`div`,{className:BY.groupTitle,children:[n&&(0,B.jsx)(`img`,{src:n,alt:``,className:BY.groupIcon}),(0,B.jsx)(`span`,{className:`item-title`,children:t.label})]}),(0,B.jsx)(`div`,{className:`item-subtitle`,children:e(`system_info.models_count`,{count:t.items.length})})]}),(0,B.jsx)(`div`,{className:BY.modelTags,children:t.items.map(e=>(0,B.jsxs)(`span`,{className:BY.modelTag,title:e.description||``,children:[(0,B.jsx)(`span`,{className:BY.modelName,children:e.name}),e.alias&&(0,B.jsx)(`span`,{className:BY.modelAlias,children:e.alias})]},`${e.name}-${e.alias??`default`}`))})]},t.id)})})]}),(0,B.jsxs)(hg,{title:e(`system_info.clear_login_title`),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.clear_login_desc`)}),(0,B.jsx)(`div`,{className:BY.clearLoginActions,children:(0,B.jsx)(V,{variant:`danger`,onClick:re,children:e(`system_info.clear_login_button`)})})]})]}),(0,B.jsx)(um,{open:g,onClose:ae,title:e(`basic_settings.request_log_title`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:ae,disabled:w,children:e(`common.cancel`)}),(0,B.jsx)(V,{onClick:oe,loading:w,disabled:!ee||!P,children:e(`common.save`)})]}),children:(0,B.jsxs)(`div`,{className:`request-log-modal`,children:[(0,B.jsx)(`div`,{className:`status-badge warning`,children:e(`basic_settings.request_log_warning`)}),(0,B.jsx)(Sg,{label:e(`basic_settings.request_log_enable`),labelPosition:`left`,checked:v,disabled:!ee||w,onChange:e=>{b(e),C(!0)}})]})})]})}var GY=[{path:`/`,element:(0,B.jsx)(mg,{})},{path:`/dashboard`,element:(0,B.jsx)(mg,{})},{path:`/settings`,element:(0,B.jsx)(Br,{to:`/config`,replace:!0})},{path:`/api-keys`,element:(0,B.jsx)(Br,{to:`/config`,replace:!0})},{path:`/ai-providers/gemini/new`,element:(0,B.jsx)(nv,{})},{path:`/ai-providers/gemini/:index`,element:(0,B.jsx)(nv,{})},{path:`/ai-providers/codex/new`,element:(0,B.jsx)(X_,{})},{path:`/ai-providers/codex/:index`,element:(0,B.jsx)(X_,{})},{path:`/ai-providers/claude/new`,element:(0,B.jsx)(F_,{}),children:[{index:!0,element:(0,B.jsx)(H_,{})},{path:`models`,element:(0,B.jsx)(W_,{})}]},{path:`/ai-providers/claude/:index`,element:(0,B.jsx)(F_,{}),children:[{index:!0,element:(0,B.jsx)(H_,{})},{path:`models`,element:(0,B.jsx)(W_,{})}]},{path:`/ai-providers/vertex/new`,element:(0,B.jsx)(Ev,{})},{path:`/ai-providers/vertex/:index`,element:(0,B.jsx)(Ev,{})},{path:`/ai-providers/openai/new`,element:(0,B.jsx)(dv,{}),children:[{index:!0,element:(0,B.jsx)(yv,{})},{path:`models`,element:(0,B.jsx)(xv,{})}]},{path:`/ai-providers/openai/:index`,element:(0,B.jsx)(dv,{}),children:[{index:!0,element:(0,B.jsx)(yv,{})},{path:`models`,element:(0,B.jsx)(xv,{})}]},{path:`/ai-providers/ampcode`,element:(0,B.jsx)(T_,{})},{path:`/ai-providers`,element:(0,B.jsx)(o_,{})},{path:`/ai-providers/*`,element:(0,B.jsx)(o_,{})},{path:`/auth-files`,element:(0,B.jsx)(Xx,{})},{path:`/auth-files/oauth-excluded`,element:(0,B.jsx)(nS,{})},{path:`/auth-files/oauth-model-alias`,element:(0,B.jsx)(lS,{})},{path:`/oauth`,element:(0,B.jsx)(bS,{})},{path:`/quota`,element:(0,B.jsx)(xS,{})},{path:`/config`,element:(0,B.jsx)(eY,{})},{path:`/logs`,element:(0,B.jsx)(FY,{})},{path:`/system`,element:(0,B.jsx)(WY,{})},{path:`*`,element:(0,B.jsx)(Br,{to:`/`,replace:!0})}];function KY({location:e}){return ar(GY,e)}var qY={dashboard:(0,B.jsx)(Os,{size:18}),aiProviders:(0,B.jsx)(As,{size:18}),authFiles:(0,B.jsx)(js,{size:18}),oauth:(0,B.jsx)(Ms,{size:18}),quota:(0,B.jsx)(Ns,{size:18}),config:(0,B.jsx)(ks,{size:18}),logs:(0,B.jsx)(Ps,{size:18}),system:(0,B.jsx)(Fs,{size:18})},JY={width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`},YY={refresh:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}),(0,B.jsx)(`path`,{d:`M21 3v5h-5`})]}),menu:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M4 7h16`}),(0,B.jsx)(`path`,{d:`M4 12h16`}),(0,B.jsx)(`path`,{d:`M4 17h16`})]}),close:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M18 6 6 18`}),(0,B.jsx)(`path`,{d:`m6 6 12 12`})]}),chevronLeft:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`m14 18-6-6 6-6`})}),chevronRight:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`m10 6 6 6-6 6`})}),language:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,B.jsx)(`path`,{d:`M2 12h20`}),(0,B.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),sun:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,B.jsx)(`path`,{d:`M12 2v2`}),(0,B.jsx)(`path`,{d:`M12 20v2`}),(0,B.jsx)(`path`,{d:`m4.93 4.93 1.41 1.41`}),(0,B.jsx)(`path`,{d:`m17.66 17.66 1.41 1.41`}),(0,B.jsx)(`path`,{d:`M2 12h2`}),(0,B.jsx)(`path`,{d:`M20 12h2`}),(0,B.jsx)(`path`,{d:`m6.34 17.66-1.41 1.41`}),(0,B.jsx)(`path`,{d:`m19.07 4.93-1.41 1.41`})]}),moon:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z`})}),whiteTheme:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`7`}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`,fill:`currentColor`,stroke:`none`})]}),autoTheme:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`defs`,{children:(0,B.jsx)(`clipPath`,{id:`mainLayoutAutoThemeSunLeftHalf`,children:(0,B.jsx)(`rect`,{x:`0`,y:`0`,width:`12`,height:`24`})})}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`,clipPath:`url(#mainLayoutAutoThemeSunLeftHalf)`,fill:`currentColor`}),(0,B.jsx)(`path`,{d:`M12 2v2`}),(0,B.jsx)(`path`,{d:`M12 20v2`}),(0,B.jsx)(`path`,{d:`M4.93 4.93l1.41 1.41`}),(0,B.jsx)(`path`,{d:`M17.66 17.66l1.41 1.41`}),(0,B.jsx)(`path`,{d:`M2 12h2`}),(0,B.jsx)(`path`,{d:`M20 12h2`}),(0,B.jsx)(`path`,{d:`M6.34 17.66l-1.41 1.41`}),(0,B.jsx)(`path`,{d:`M19.07 4.93l-1.41 1.41`})]}),logout:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}),(0,B.jsx)(`path`,{d:`m16 17 5-5-5-5`}),(0,B.jsx)(`path`,{d:`M21 12H9`})]})},XY=[{key:`auto`,labelKey:`theme.auto`,colors:{bg:`linear-gradient(135deg, #ffffff 0 50%, #111111 50% 100%)`,card:`linear-gradient(135deg, #ffffff 0 50%, #1a1a1a 50% 100%)`,border:`#bdbdbd`,text:`#2d2a26`,textMuted:`linear-gradient(135deg, #c9c9c9 0 50%, #5a5a5a 50% 100%)`}},{key:`white`,labelKey:`theme.white`,colors:{bg:`#ffffff`,card:`#ffffff`,border:`#e5e5e5`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`light`,labelKey:`theme.light`,colors:{bg:`#faf9f5`,card:`#f0eee8`,border:`#e3e1db`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`dark`,labelKey:`theme.dark`,colors:{bg:`#151412`,card:`#1d1b18`,border:`#3a3530`,text:`#f6f4f1`,textMuted:`#9c958d`}}];function ZY(){let{t:e}=qo(),{showNotification:t}=hc(),n=Yn(),r=ep(e=>e.logout),i=Of(e=>e.config),a=Of(e=>e.fetchConfig),o=Of(e=>e.clearCache),s=wc(e=>e.theme),c=wc(e=>e.setTheme),l=Ic(e=>e.language),u=Ic(e=>e.setLanguage),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),b=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null),w=(0,y.useRef)(null),T=e(`title.abbr`),E=n.pathname.startsWith(`/logs`),D=!p||d;(0,y.useLayoutEffect)(()=>{let e=()=>{let e=w.current?.offsetHeight;e&&document.documentElement.style.setProperty(`--header-height`,`${e}px`)};e();let t=typeof ResizeObserver<`u`&&w.current?new ResizeObserver(e):null;return t&&w.current&&t.observe(w.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e)}},[]),(0,y.useLayoutEffect)(()=>{let e=()=>{let e=b.current;if(!e)return;let t=e.getBoundingClientRect(),n=t.left+t.width/2;document.documentElement.style.setProperty(`--content-center-x`,`${n}px`)};e();let t=typeof ResizeObserver<`u`&&b.current?new ResizeObserver(e):null;return t&&b.current&&t.observe(b.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e),document.documentElement.style.removeProperty(`--content-center-x`)}},[]),(0,y.useEffect)(()=>{if(!h)return;let e=e=>{S.current?.contains(e.target)||g(!1)},t=e=>{e.key===`Escape`&&g(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[h]),(0,y.useEffect)(()=>{if(!_)return;let e=e=>{C.current?.contains(e.target)||v(!1)},t=e=>{e.key===`Escape`&&v(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[_]);let O=(0,y.useCallback)(()=>{g(e=>!e),v(!1)},[]),k=(0,y.useCallback)(()=>{v(e=>!e),g(!1)},[]),A=(0,y.useCallback)(e=>{c(e),v(!1)},[c]),j=(0,y.useCallback)(e=>{Ac(e)&&(u(e),g(!1))},[u]);(0,y.useEffect)(()=>{a().catch(()=>{})},[a]);let M=[{path:`/`,label:e(`nav.dashboard`),icon:qY.dashboard},{path:`/config`,label:e(`nav.config_management`),icon:qY.config},{path:`/ai-providers`,label:e(`nav.ai_providers`),icon:qY.aiProviders},{path:`/auth-files`,label:e(`nav.auth_files`),icon:qY.authFiles},{path:`/oauth`,label:e(`nav.oauth`,{defaultValue:`OAuth`}),icon:qY.oauth},{path:`/quota`,label:e(`nav.quota_management`),icon:qY.quota},...i?.loggingToFile?[{path:`/logs`,label:e(`nav.logs`),icon:qY.logs}]:[],{path:`/system`,label:e(`nav.system_info`),icon:qY.system}],N=M.map(e=>e.path),P=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e,n=t===`/dashboard`?`/`:t,r=N.indexOf(`/ai-providers`);if(r!==-1){if(n===`/ai-providers`)return r;if(n.startsWith(`/ai-providers/`))return n.startsWith(`/ai-providers/gemini`)?r+.1:n.startsWith(`/ai-providers/codex`)?r+.2:n.startsWith(`/ai-providers/claude`)?r+.3:n.startsWith(`/ai-providers/vertex`)?r+.4:n.startsWith(`/ai-providers/ampcode`)?r+.5:n.startsWith(`/ai-providers/openai`)?r+.6:r+.05}let i=N.indexOf(`/auth-files`);if(i!==-1){if(n===`/auth-files`)return i;if(n.startsWith(`/auth-files/`))return n.startsWith(`/auth-files/oauth-excluded`)?i+.1:n.startsWith(`/auth-files/oauth-model-alias`)?i+.2:i+.05}let a=N.indexOf(n);if(a!==-1)return a;let o=N.findIndex(e=>e!==`/`&&n.startsWith(`${e}/`));return o===-1?null:o},ee=(0,y.useCallback)((e,t)=>{let n=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e;return t===`/dashboard`?`/`:t},r=n(e),i=n(t),a=e=>e===`/auth-files`||e.startsWith(`/auth-files/`),o=e=>e===`/ai-providers`||e.startsWith(`/ai-providers/`);return a(r)&&a(i)||o(r)&&o(i)?`ios`:`vertical`},[]),F=async()=>{o();let n=(await Promise.allSettled([a(void 0,!0),i_()])).find(e=>e.status===`rejected`);if(n&&n.status===`rejected`){let r=n.reason,i=typeof r==`string`?r:r instanceof Error?r.message:``;t(`${e(`notification.refresh_failed`)}${i?`: ${i}`:``}`,`error`);return}t(e(`notification.data_refreshed`),`success`)},I=d?e(`sidebar.toggle_collapse`,{defaultValue:`Close navigation`}):e(`sidebar.toggle_expand`,{defaultValue:`Open navigation`});return(0,B.jsxs)(`div`,{className:`app-shell ${p?`sidebar-is-collapsed`:``}`,children:[(0,B.jsx)(`div`,{className:`top-gradient-blur`,"aria-hidden":`true`}),(0,B.jsxs)(`header`,{className:`main-header`,ref:w,children:[(0,B.jsx)(`button`,{type:`button`,className:`sidebar-toggle-floating`,onClick:()=>m(e=>!e),title:p?e(`sidebar.expand`,{defaultValue:`展开`}):e(`sidebar.collapse`,{defaultValue:`收起`}),"aria-label":p?e(`sidebar.expand`,{defaultValue:`展开`}):e(`sidebar.collapse`,{defaultValue:`收起`}),children:p?YY.chevronRight:YY.chevronLeft}),(0,B.jsx)(`div`,{className:`mobile-sidebar-actions`,children:(0,B.jsx)(V,{className:`mobile-menu-btn`,variant:`ghost`,size:`sm`,onClick:()=>f(e=>!e),title:I,"aria-label":I,children:d?YY.close:YY.menu})}),(0,B.jsxs)(`div`,{className:`header-actions floating-actions`,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:F,title:e(`header.refresh_all`),children:YY.refresh}),(0,B.jsxs)(`div`,{className:`language-menu ${h?`open`:``}`,ref:S,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:O,title:e(`language.switch`),"aria-label":e(`language.switch`),"aria-haspopup":`menu`,"aria-expanded":h,children:YY.language}),h&&(0,B.jsx)(`div`,{className:`notification entering language-menu-popover`,role:`menu`,"aria-label":e(`language.switch`),children:dc.map(t=>(0,B.jsxs)(`button`,{type:`button`,className:`language-menu-option ${l===t?`active`:``}`,onClick:()=>j(t),role:`menuitemradio`,"aria-checked":l===t,children:[(0,B.jsx)(`span`,{children:e(fc[t])}),l===t?(0,B.jsx)(`span`,{className:`language-menu-check`,children:`✓`}):null]},t))})]}),(0,B.jsxs)(`div`,{className:`theme-menu ${_?`open`:``}`,ref:C,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:k,title:e(`theme.switch`),"aria-label":e(`theme.switch`),"aria-haspopup":`menu`,"aria-expanded":_,children:s===`auto`?YY.autoTheme:s===`dark`?YY.moon:s===`white`?YY.whiteTheme:YY.sun}),_&&(0,B.jsx)(`div`,{className:`notification entering theme-menu-popover`,role:`menu`,"aria-label":e(`theme.switch`),children:XY.map(t=>(0,B.jsxs)(`button`,{type:`button`,className:`theme-card ${s===t.key?`active`:``}`,onClick:()=>A(t.key),role:`menuitemradio`,"aria-checked":s===t.key,children:[(0,B.jsxs)(`div`,{className:`theme-card-preview`,style:{background:t.colors.bg,border:`1px solid ${t.colors.border}`},children:[(0,B.jsx)(`div`,{className:`theme-card-header`,style:{background:t.colors.card,borderBottom:`1px solid ${t.colors.border}`}}),(0,B.jsxs)(`div`,{className:`theme-card-body`,children:[(0,B.jsx)(`div`,{className:`theme-card-sidebar`,style:{background:t.colors.card,borderRight:`1px solid ${t.colors.border}`}}),(0,B.jsxs)(`div`,{className:`theme-card-content`,style:{background:t.colors.bg},children:[(0,B.jsx)(`div`,{className:`theme-card-line`,style:{background:t.colors.textMuted}}),(0,B.jsx)(`div`,{className:`theme-card-line short`,style:{background:t.colors.textMuted}})]})]})]}),(0,B.jsx)(`span`,{className:`theme-card-label`,children:e(t.labelKey)})]},t.key))})]}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:r,title:e(`header.logout`),children:YY.logout})]})]}),(0,B.jsxs)(`div`,{className:`main-body`,children:[(0,B.jsx)(`button`,{type:`button`,className:`sidebar-backdrop ${d?`visible`:``}`,onClick:()=>f(!1),"aria-label":e(`common.close`),"aria-hidden":!d,tabIndex:d?0:-1}),(0,B.jsxs)(`aside`,{className:`sidebar ${d?`open`:``} ${p?`collapsed`:``}`,children:[(0,B.jsxs)(`div`,{className:`sidebar-brand`,title:`CLI Proxy API Management Center`,children:[(0,B.jsx)(`img`,{src:x,alt:`CPAMC logo`,className:`sidebar-brand-logo`}),D&&(0,B.jsx)(`span`,{className:`sidebar-brand-title`,children:T})]}),(0,B.jsx)(`div`,{className:`nav-section`,children:M.map(e=>(0,B.jsxs)(Fi,{to:e.path,className:({isActive:e})=>`nav-item ${e?`active`:``}`,onClick:()=>f(!1),title:D?void 0:e.label,children:[(0,B.jsx)(`span`,{className:`nav-icon`,children:e.icon}),D&&(0,B.jsx)(`span`,{className:`nav-label`,children:e.label})]},e.path))})]}),(0,B.jsx)(`div`,{className:`content${E?` content-logs`:``}`,ref:b,children:(0,B.jsx)(`main`,{className:`main-content${E?` main-content-logs`:``}`,children:(0,B.jsx)(mh,{render:e=>(0,B.jsx)(KY,{location:e}),getRouteOrder:P,getTransitionVariant:ee,scrollContainerRef:b})})})]})]})}function QY({children:e}){let t=Yn(),n=ep(e=>e.isAuthenticated),r=ep(e=>e.managementKey),i=ep(e=>e.apiBase),a=ep(e=>e.checkAuth),[o,s]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{(async()=>{if(!n&&r&&i){s(!0);try{await a()}finally{s(!1)}}})()},[i,n,r,a]),o?(0,B.jsx)(`div`,{className:`main-content`,children:(0,B.jsx)(p_,{})}):n?e:(0,B.jsx)(Br,{to:`/login`,replace:!0,state:{from:t}})}function $Y(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(tm,{}),(0,B.jsx)(dm,{}),(0,B.jsx)(Vr,{})]})}var eX=ki([{element:(0,B.jsx)($Y,{}),children:[{path:`/login`,element:(0,B.jsx)($p,{})},{path:`/*`,element:(0,B.jsx)(QY,{children:(0,B.jsx)(ZY,{})})}]}]);function tX(){let e=wc(e=>e.initializeTheme),t=Ic(e=>e.language),n=Ic(e=>e.setLanguage);return(0,y.useEffect)(()=>e(),[e]),(0,y.useEffect)(()=>{n(t)},[]),(0,y.useEffect)(()=>{document.documentElement.lang=t},[t]),(0,B.jsx)($i,{router:eX})}document.title=`CLI Proxy API Management Center`,document.documentElement.setAttribute(`translate`,`no`),document.documentElement.classList.add(`notranslate`);var nX=document.querySelector(`link[rel="icon"]`);if(nX)nX.href=x,nX.type=`image/jpeg`;else{let e=document.createElement(`link`);e.rel=`icon`,e.type=`image/jpeg`,e.href=x,document.head.appendChild(e)}(0,b.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(y.StrictMode,{children:(0,B.jsx)(tX,{})})); +`),[he]),ye=kY({logState:s,setLogState:c,loading:l,isSearching:ce,filteredLineCount:he.length,hasStructuredFilters:de.hasStructuredFilters,showRawLogs:x});ee.current=ye;let be=async n=>{await Dv(n)?t(e(`logs.copy_success`,{defaultValue:`Copied to clipboard`}),`success`):t(e(`logs.copy_failed`,{defaultValue:`Copy failed`}),`error`)},xe=()=>{F.current?.timer&&(window.clearTimeout(F.current.timer),F.current.timer=null)},Se=(e,t)=>{i&&t&&(j||(xe(),F.current={timer:window.setTimeout(()=>{M(t),F.current&&(F.current.fired=!0,F.current.timer=null)},MY),startX:e.clientX,startY:e.clientY,fired:!1}))},Ce=()=>{xe(),F.current=null},we=e=>{let t=F.current;if(!t||t.timer===null||t.fired)return;let n=Math.abs(e.clientX-t.startX),r=Math.abs(e.clientY-t.startY);(n>NY||r>NY)&&Ce()},Te=()=>{N||M(null)},Ee=async n=>{P(!0);try{let r=await lg.downloadRequestLogById(n);gx({filename:`request-${n}.log`,blob:new Blob([r.data],{type:`text/plain`})}),t(e(`logs.request_log_download_success`),`success`),M(null)}catch(n){let r=PY(n);t(`${e(`notification.download_failed`)}${r?`: ${r}`:``}`,`error`)}finally{P(!1)}};return(0,y.useEffect)(()=>()=>{F.current?.timer&&(window.clearTimeout(F.current.timer),F.current.timer=null)},[]),(0,B.jsxs)(`div`,{className:$.container,children:[(0,B.jsx)(`h1`,{className:$.pageTitle,children:e(`logs.title`)}),(0,B.jsxs)(`div`,{className:$.tabBar,children:[(0,B.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${a===`logs`?$.tabActive:``}`,onClick:()=>o(`logs`),children:e(`logs.log_content`)}),(0,B.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${a===`errors`?$.tabActive:``}`,onClick:()=>o(`errors`),children:e(`logs.error_logs_modal_title`)})]}),(0,B.jsxs)(`div`,{className:$.content,children:[a===`logs`&&(0,B.jsxs)(hg,{className:$.logCard,children:[d&&(0,B.jsx)(`div`,{className:`error-box`,children:d}),(0,B.jsxs)(`div`,{className:$.filters,children:[(0,B.jsx)(`div`,{className:$.searchWrapper,children:(0,B.jsx)(Xo,{value:h,onChange:e=>g(e.target.value),placeholder:e(`logs.search_placeholder`),className:$.searchInput,rightElement:h?(0,B.jsx)(`button`,{type:`button`,className:$.searchClear,onClick:()=>g(``),title:`Clear`,"aria-label":`Clear`,children:(0,B.jsx)(hs,{size:16})}):(0,B.jsx)(ms,{size:16,className:$.searchIcon})})}),(0,B.jsx)(`div`,{className:$.filterPanelHeader,children:(0,B.jsx)(V,{type:`button`,variant:`secondary`,size:`sm`,className:$.filterPanelToggle,onClick:()=>w(e=>!e),"aria-expanded":C,"aria-controls":fe,title:e(C?`logs.filter_panel_collapse`:`logs.filter_panel_expand`),children:(0,B.jsxs)(`span`,{className:$.filterPanelButtonContent,children:[(0,B.jsx)($o,{size:16}),(0,B.jsx)(`span`,{children:e(`logs.filter_panel_title`)}),pe>0&&(0,B.jsx)(`span`,{className:$.filterPanelCount,children:e(`logs.filter_panel_active_count`,{count:pe})}),C?(0,B.jsx)(ds,{size:16}):(0,B.jsx)(fs,{size:16})]})})}),C&&(0,B.jsxs)(`div`,{id:fe,className:$.structuredFilters,children:[(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_method`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:nY.map(e=>{let t=de.methodFilters.includes(e),n=de.methodCounts[e]??0;return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${t?$.filterChipActive:``}`,onClick:()=>de.toggleMethodFilter(e),disabled:n===0&&!t,"aria-pressed":t,children:[e,` (`,n,`)`]},e)})})]}),(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_status`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:rY.map(t=>{let n=de.statusFilters.includes(t),r=de.statusCounts[t]??0;return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>de.toggleStatusFilter(t),disabled:r===0&&!n,"aria-pressed":n,children:[e(`logs.filter_status_${t}`),` (`,r,`)`]},t)})})]}),(0,B.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,B.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_path`)}),(0,B.jsx)(`div`,{className:$.filterChipList,children:de.pathOptions.length===0?(0,B.jsx)(`span`,{className:$.filterChipHint,children:e(`logs.filter_path_empty`)}):de.pathOptions.map(({path:e,count:t})=>{let n=de.pathFilters.includes(e);return(0,B.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>de.togglePathFilter(e),"aria-pressed":n,title:e,children:[e,` (`,t,`)`]},e)})})]}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:de.clearStructuredFilters,disabled:!de.hasStructuredFilters,children:e(`logs.clear_filters`)})]}),(0,B.jsx)(Sg,{checked:v,onChange:b,label:(0,B.jsxs)(`span`,{className:$.switchLabel,children:[(0,B.jsx)(vs,{size:16}),e(`logs.hide_management_logs`,{prefix:`/v0/management`})]})}),(0,B.jsx)(Sg,{checked:x,onChange:S,label:(0,B.jsxs)(`span`,{className:$.switchLabel,title:e(`logs.show_raw_logs_hint`,{defaultValue:`Show original log text for easier multi-line copy`}),children:[(0,B.jsx)(Ds,{size:16}),e(`logs.show_raw_logs`,{defaultValue:`Show raw logs`})]})}),(0,B.jsxs)(`div`,{className:$.toolbar,children:[(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ne(!1),disabled:te||l,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(cs,{size:16}),e(`logs.refresh_button`)]})}),(0,B.jsx)(Sg,{checked:p,onChange:e=>m(e),disabled:te,label:(0,B.jsxs)(`span`,{className:$.switchLabel,children:[(0,B.jsx)(Ss,{size:16}),e(`logs.auto_refresh`)]})}),(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:z,disabled:s.buffer.length===0,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(ls,{size:16}),e(`logs.download_button`)]})}),(0,B.jsx)(V,{variant:`danger`,size:`sm`,onClick:re,disabled:te,className:$.actionButton,children:(0,B.jsxs)(`span`,{className:$.buttonContent,children:[(0,B.jsx)(us,{size:16}),e(`logs.clear_button`)]})})]})]}),l?(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.loading`)}):s.buffer.length>0&&he.length>0?(0,B.jsxs)(`div`,{ref:ye.logViewerRef,className:$.logPanel,onScroll:ye.handleLogScroll,children:[ye.canLoadMore&&(0,B.jsxs)(`div`,{className:$.loadMoreBanner,children:[(0,B.jsx)(`span`,{children:e(`logs.load_more_hint`)}),(0,B.jsxs)(`div`,{className:$.loadMoreStats,children:[(0,B.jsx)(`span`,{children:e(`logs.loaded_lines`,{count:he.length})}),ge>0&&(0,B.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.filtered_lines`,{count:ge})}),(0,B.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.hidden_lines`,{count:s.visibleFrom})})]})]}),x?(0,B.jsx)(`pre`,{className:$.rawLog,spellCheck:!1,children:ve}):(0,B.jsx)(`div`,{className:$.logList,children:_e.map((t,n)=>{let r=[$.logRow];return t.level===`warn`&&r.push($.rowWarn),(t.level===`error`||t.level===`fatal`)&&r.push($.rowError),(0,B.jsxs)(`div`,{className:r.join(` `),onDoubleClick:()=>{be(t.raw)},onPointerDown:e=>Se(e,t.requestId),onPointerUp:Ce,onPointerLeave:Ce,onPointerCancel:Ce,onPointerMove:we,title:e(`logs.double_click_copy_hint`,{defaultValue:`Double-click to copy`}),children:[(0,B.jsx)(`div`,{className:$.timestamp,children:t.timestamp||``}),(0,B.jsxs)(`div`,{className:$.rowMain,children:[t.level&&(0,B.jsx)(`span`,{className:[$.badge,t.level===`info`?$.levelInfo:``,t.level===`warn`?$.levelWarn:``,t.level===`error`||t.level===`fatal`?$.levelError:``,t.level===`debug`?$.levelDebug:``,t.level===`trace`?$.levelTrace:``].filter(Boolean).join(` `),children:t.level.toUpperCase()}),t.source&&(0,B.jsx)(`span`,{className:$.source,title:t.source,children:t.source}),t.requestId&&(0,B.jsx)(`span`,{className:[$.badge,$.requestIdBadge].join(` `),title:t.requestId,children:t.requestId}),typeof t.statusCode==`number`&&(0,B.jsx)(`span`,{className:[$.badge,$.statusBadge,t.statusCode>=200&&t.statusCode<300?$.statusSuccess:t.statusCode>=300&&t.statusCode<400?$.statusInfo:t.statusCode>=400&&t.statusCode<500?$.statusWarn:$.statusError].join(` `),children:t.statusCode}),t.latency&&(0,B.jsx)(`span`,{className:$.pill,children:t.latency}),t.ip&&(0,B.jsx)(`span`,{className:$.pill,children:t.ip}),t.method&&(0,B.jsx)(`span`,{className:[$.badge,$.methodBadge].join(` `),children:t.method}),t.path&&(0,B.jsx)(`span`,{className:$.path,title:t.path,children:t.path}),t.message&&(0,B.jsx)(`span`,{className:$.message,children:t.message})]})]},`${s.visibleFrom+n}-${t.raw}`)})})]}):s.buffer.length>0?(0,B.jsx)(wg,{title:e(`logs.search_empty_title`),description:e(`logs.search_empty_desc`)}):(0,B.jsx)(wg,{title:e(`logs.empty_title`),description:e(`logs.empty_desc`)})]}),a===`errors`&&(0,B.jsx)(hg,{extra:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:ie,loading:D,disabled:te,children:e(`common.refresh`)}),children:(0,B.jsxs)(`div`,{className:`stack`,children:[(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_description`)}),i&&(0,B.jsx)(`div`,{children:(0,B.jsx)(`div`,{className:`status-badge warning`,children:e(`logs.error_logs_request_log_enabled`)})}),k&&(0,B.jsx)(`div`,{className:`error-box`,children:k}),(0,B.jsx)(`div`,{className:$.errorPanel,children:D?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):T.length===0?(0,B.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_empty`)}):(0,B.jsx)(`div`,{className:`item-list`,children:T.map(t=>(0,B.jsxs)(`div`,{className:`item-row`,children:[(0,B.jsxs)(`div`,{className:`item-meta`,children:[(0,B.jsx)(`div`,{className:`item-title`,children:t.name}),(0,B.jsxs)(`div`,{className:`item-subtitle`,children:[t.size?`${(t.size/1024).toFixed(1)} KB`:``,` `,t.modified?yg(t.modified):``]})]}),(0,B.jsx)(`div`,{className:`item-actions`,children:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ae(t.name),disabled:te,children:e(`logs.error_logs_download`)})})]},t.name))})})]})})]}),(0,B.jsx)(um,{open:!!j,onClose:Te,title:e(`logs.request_log_download_title`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:Te,disabled:N,children:e(`common.cancel`)}),(0,B.jsx)(V,{onClick:()=>{j&&Ee(j)},loading:N,disabled:!j,children:e(`common.confirm`)})]}),children:j?e(`logs.request_log_download_confirm`,{id:j}):null})]})}var IY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eZhipu%3c/title%3e%3cpath%20d='M11.991%2023.503a.24.24%200%2000-.244.248.24.24%200%2000.244.249.24.24%200%2000.245-.249.24.24%200%2000-.22-.247l-.025-.001zM9.671%205.365a1.697%201.697%200%20011.099%202.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47%201.279%201.186%201.314h.366c1.309.053%202.338%201.173%202.286%202.523-.052%201.332-1.152%202.38-2.478%202.327h-.174c-.715.018-1.274.64-1.239%201.368%200%20.124.018.23.053.337.209.373.54.658.96.8.75.23%201.517-.125%201.9-.782l.018-.035c.402-.64%201.17-.96%201.92-.711.854.284%201.378%201.226%201.099%202.167a1.661%201.661%200%2001-2.077%201.102%201.711%201.711%200%2001-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646%201.646%200%2000-1.954.746%201.66%201.66%200%2001-1.065.764%201.677%201.677%200%2001-1.989-1.279c-.209-.906.332-1.83%201.257-2.043a1.51%201.51%200%2001.296-.035h.018c.68-.071%201.151-.622%201.116-1.333a1.307%201.307%200%2000-.227-.693%202.515%202.515%200%2001-.366-1.403%202.39%202.39%200%2001.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43%201.43%200%2001-.299-.07l-.05-.019a1.7%201.7%200%2001-1.047-2.114%201.68%201.68%200%20012.094-1.101zm-5.575%2010.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267%201.013-.402.41-1.053.41-1.455%200a1.062%201.062%200%20010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237%201.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05%201.05%200%2001.757-1.26zm-.064-4.39c.314.32.49.753.49%201.206%200%20.452-.176.886-.49%201.206-.315.32-.74.5-1.185.5-.444%200-.87-.18-1.184-.5a1.727%201.727%200%20010-2.412%201.654%201.654%200%20012.369%200zm-11.243.163c.364.484.447%201.128.218%201.691a1.665%201.665%200%2001-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68%201.68%200%20011.33-1.038c.593-.08%201.183.169%201.547.652zm11.545-4.221c.368%200%20.708.2.892.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.892.524c-.568%200-1.03-.47-1.03-1.048%200-.579.462-1.048%201.03-1.048zm-14.358%200c.368%200%20.707.2.891.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.891.524c-.569%200-1.03-.47-1.03-1.048%200-.579.461-1.048%201.03-1.048zm10.031-1.475c.925%200%201.675.764%201.675%201.706s-.75%201.705-1.675%201.705-1.674-.763-1.674-1.705c0-.942.75-1.706%201.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062%201.062%200%2000-.238-1.028%201.017%201.017%200%2000-.996-.294c-.547.14-.881.7-.752%201.257.13.558.675.907%201.225.783zm0%2016.876c.359-.087.644-.36.75-.72a1.062%201.062%200%2000-.237-1.019%201.018%201.018%200%2000-.985-.301%201.037%201.037%200%2000-.762.717c-.108.361-.017.754.239%201.028.245.263.606.377.953.305l.043-.01zM17.19%203.5a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.28.64.628.64zm-10.38%200a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.279.64.628.64zm-5.182%207.852a.631.631%200%2000-.628.64c0%20.354.28.639.628.639a.63.63%200%2000.627-.606l.001-.034a.62.62%200%2000-.628-.64zm5.182%209.13a.631.631%200%2000-.628.64c0%20.355.279.64.628.64a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631%200%2000-.628.64c0%20.355.28.64.628.64a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631%200%2000-.628.64c0%20.354.279.639.628.639a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24%200%2000.244-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249c0%20.142.122.249.244.249zM11.991.497a.24.24%200%2000.245-.248A.24.24%200%200011.99%200a.24.24%200%2000-.244.249c0%20.133.108.236.223.247l.021.001zM2.011%206.36a.24.24%200%2000.245-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249.24.24%200%2000.244.249zm0%2011.263a.24.24%200%2000-.243.248.24.24%200%2000.244.249.24.24%200%2000.244-.249.252.252%200%2000-.244-.248zm19.995-.018a.24.24%200%2000-.245.248.24.24%200%2000.245.25.24.24%200%2000.244-.25.252.252%200%2000-.244-.248z'%20fill='%233859FF'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,LY=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,RY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`,zY=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMinimax%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-minimax-fill'%20x1='0%25'%20x2='100.182%25'%20y1='50.057%25'%20y2='50.057%25'%3e%3cstop%20offset='0%25'%20stop-color='%23E2167E'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23FE603C'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M16.278%202c1.156%200%202.093.927%202.093%202.07v12.501a.74.74%200%2000.744.709.74.74%200%2000.743-.709V9.099a2.06%202.06%200%20012.071-2.049A2.06%202.06%200%200124%209.1v6.561a.649.649%200%2001-.652.645.649.649%200%2001-.653-.645V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v7.472a2.037%202.037%200%2001-2.048%202.026%202.037%202.037%200%2001-2.048-2.026v-12.5a.785.785%200%2000-.788-.753.785.785%200%2000-.789.752l-.001%2015.904A2.037%202.037%200%200113.441%2022a2.037%202.037%200%2001-2.048-2.026V18.04c0-.356.292-.645.652-.645.36%200%20.652.289.652.645v1.934c0%20.263.142.506.372.638.23.131.514.131.744%200a.734.734%200%2000.372-.638V4.07c0-1.143.937-2.07%202.093-2.07zm-5.674%200c1.156%200%202.093.927%202.093%202.07v11.523a.648.648%200%2001-.652.645.648.648%200%2001-.652-.645V4.07a.785.785%200%2000-.789-.78.785.785%200%2000-.789.78v14.013a2.06%202.06%200%2001-2.07%202.048%202.06%202.06%200%2001-2.071-2.048V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v3.8a2.06%202.06%200%2001-2.071%202.049A2.06%202.06%200%20010%2012.9v-1.378c0-.357.292-.646.652-.646.36%200%20.653.29.653.646V12.9c0%20.418.343.757.766.757s.766-.339.766-.757V9.099a2.06%202.06%200%20012.07-2.048%202.06%202.06%200%20012.071%202.048v8.984c0%20.419.343.758.767.758.423%200%20.766-.339.766-.758V4.07c0-1.143.937-2.07%202.093-2.07z'%20fill='url(%23lobe-icons-minimax-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,BY={container:`SystemPage-module__container___KAydo`,pageTitle:`SystemPage-module__pageTitle___DiF5E`,content:`SystemPage-module__content___SauLn`,aboutCard:`SystemPage-module__aboutCard___v2-ui`,aboutHeader:`SystemPage-module__aboutHeader___hT4-J`,aboutLogo:`SystemPage-module__aboutLogo___KXoLr`,aboutTitle:`SystemPage-module__aboutTitle___BTLGy`,aboutInfoGrid:`SystemPage-module__aboutInfoGrid___b7AR0`,infoTile:`SystemPage-module__infoTile___6AuIY`,tapTile:`SystemPage-module__tapTile___-9SaX`,tileLabel:`SystemPage-module__tileLabel___eMn4v`,tileHeader:`SystemPage-module__tileHeader___w4Ej0`,tileAction:`SystemPage-module__tileAction___WKXuS`,tileValue:`SystemPage-module__tileValue___Up02X`,tileSub:`SystemPage-module__tileSub___ysVDj`,section:`SystemPage-module__section___Q6rCw`,sectionTitle:`SystemPage-module__sectionTitle___GOXpQ`,sectionDescription:`SystemPage-module__sectionDescription___nI7Jo`,clearLoginActions:`SystemPage-module__clearLoginActions___4ek-m`,infoGrid:`SystemPage-module__infoGrid___NNFgo`,infoRow:`SystemPage-module__infoRow___E8Q0J`,label:`SystemPage-module__label___Xw4tZ`,value:`SystemPage-module__value___pii6g`,modelsList:`SystemPage-module__modelsList___id54Q`,modelItem:`SystemPage-module__modelItem___ZTm4G`,modelTags:`SystemPage-module__modelTags___M0sci`,groupTitle:`SystemPage-module__groupTitle___bTqIN`,groupIcon:`SystemPage-module__groupIcon___-XXrb`,modelTag:`SystemPage-module__modelTag___5Ar53`,modelName:`SystemPage-module__modelName___LKdAK`,modelAlias:`SystemPage-module__modelAlias___zioM-`,versionCheck:`SystemPage-module__versionCheck___V09h4`,versionInfo:`SystemPage-module__versionInfo___cmujE`,versionItem:`SystemPage-module__versionItem___NmHd7`,version:`SystemPage-module__version___XoIFT`,quickLinks:`SystemPage-module__quickLinks___QTmT3`,linkCard:`SystemPage-module__linkCard___iSrVF`,linkIcon:`SystemPage-module__linkIcon___gNqz2`,github:`SystemPage-module__github___V8I3m`,docs:`SystemPage-module__docs___cA-rG`,linkContent:`SystemPage-module__linkContent___Rfh7h`,linkTitle:`SystemPage-module__linkTitle___Zpr4Q`,linkDesc:`SystemPage-module__linkDesc___KKavC`},VY={gpt:{light:Ig,dark:Lg},claude:Cg,gemini:Pg,qwen:Mv,kimi:{light:jv,dark:Av},glm:IY,grok:LY,deepseek:RY,minimax:zY},HY=e=>{if(!e)return null;let t=e.trim().replace(/^v/i,``);if(!t)return null;let n=t.split(/[^0-9]+/).filter(Boolean).map(e=>Number.parseInt(e,10)).filter(Number.isFinite);return n.length?n:null},UY=(e,t)=>{let n=HY(e),r=HY(t);if(!n||!r)return null;let i=Math.max(n.length,r.length);for(let e=0;ei)return 1;if(te.resolvedTheme),a=ep(),o=Of(e=>e.config),s=Of(e=>e.fetchConfig),c=Of(e=>e.clearCache),l=Of(e=>e.updateConfigValue),u=Qf(e=>e.models),d=Qf(e=>e.loading),f=Qf(e=>e.error),p=Qf(e=>e.fetchModels),[m,h]=(0,y.useState)(),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),O=(0,y.useRef)([]),k=(0,y.useRef)(0),A=(0,y.useRef)(null),j=(0,y.useMemo)(()=>t.language?.toLowerCase().startsWith(`zh`)?`其他`:`Other`,[t.language]),M=(0,y.useMemo)(()=>Nf(u,{otherLabel:j}),[u,j]),N=o?.requestLog??!1,P=v!==N,ee=a.connectionStatus===`connected`&&!!o,F=a.serverVersion||e(`system_info.version_unknown`),I=a.serverBuildDate?new Date(a.serverBuildDate).toLocaleString(t.language):e(`system_info.version_unknown`),L=e=>{let t=VY[e];return t?typeof t==`string`?t:i===`dark`?t.dark:t.light:null},R=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{let r=typeof e==`object`&&e&&!Array.isArray(e)?e:null,i=typeof e==`string`?e:r?r[`api-key`]??r.apiKey??r.key??r.Key:``,a=String(i??``).trim();!a||t.has(a)||(t.add(a),n.push(a))}),n},te=(0,y.useCallback)(async()=>{if(O.current.length)return O.current;let e=R(o?.apiKeys);if(e.length)return O.current=e,e;try{let e=R(await vh.list());return e.length&&(O.current=e),e}catch(e){return console.warn(`Auto loading API keys for models failed:`,e),[]}},[o?.apiKeys]),ne=async({forceRefresh:t=!1}={})=>{if(a.connectionStatus!==`connected`){h({type:`warning`,message:e(`notification.connection_required`)});return}if(!a.apiBase){n(e(`notification.connection_required`),`warning`);return}t&&(O.current=[]),h({type:`muted`,message:e(`system_info.models_loading`)});try{let n=(await te())[0],r=await p(a.apiBase,n,t),i=r.length>0;h({type:i?`success`:`warning`,message:i?e(`system_info.models_count`,{count:r.length}):e(`system_info.models_empty`)})}catch(t){let n=t instanceof Error?t.message:typeof t==`string`?t:``,r=n?`: ${n}`:``;h({type:`error`,message:`${e(`system_info.models_error`)}${r}`})}},re=()=>{r({title:e(`system_info.clear_login_title`,{defaultValue:`Clear Login Storage`}),message:e(`system_info.clear_login_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:()=>{a.logout(),!(typeof localStorage>`u`)&&([cc,`isLoggedIn`,`apiBase`,`apiUrl`,`managementKey`].forEach(e=>localStorage.removeItem(e)),n(e(`notification.login_storage_cleared`),`success`))}})},z=(0,y.useCallback)(()=>{C(!1),b(N),_(!0)},[N]),ie=(0,y.useCallback)(()=>{if(k.current+=1,A.current&&clearTimeout(A.current),k.current>=7){k.current=0,A.current=null,z();return}A.current=setTimeout(()=>{k.current=0,A.current=null},1500)},[z]),ae=(0,y.useCallback)(()=>{_(!1),C(!1)},[]),oe=async()=>{if(!ee)return;if(!P){_(!1);return}let t=N;T(!0),l(`request-log`,v);try{await Cf.updateRequestLog(v),c(`request-log`),n(e(`notification.request_log_updated`),`success`),_(!1)}catch(r){let i=r instanceof Error?r.message:typeof r==`string`?r:``;l(`request-log`,t),n(`${e(`notification.update_failed`)}${i?`: ${i}`:``}`,`error`)}finally{T(!1)}},se=(0,y.useCallback)(async()=>{D(!0);try{let t=await ug.checkLatest(),r=t?.[`latest-version`]??t?.latest_version??t?.latest??``,i=typeof r==`string`?r:String(r??``),o=UY(i,a.serverVersion);if(!i){n(e(`system_info.version_check_error`),`error`);return}if(o===null){n(e(`system_info.version_current_missing`),`warning`);return}o>0?n(e(`system_info.version_update_available`,{version:i}),`warning`):n(e(`system_info.version_is_latest`),`success`)}catch(t){let r=t instanceof Error?t.message:typeof t==`string`?t:``,i=r?`: ${r}`:``;n(`${e(`system_info.version_check_error`)}${i}`,`error`)}finally{D(!1)}},[a.serverVersion,n,e]);return(0,y.useEffect)(()=>{s().catch(()=>{})},[s]),(0,y.useEffect)(()=>{g&&!S&&b(N)},[g,S,N]),(0,y.useEffect)(()=>()=>{A.current&&clearTimeout(A.current)},[]),(0,y.useEffect)(()=>{ne()},[a.connectionStatus,a.apiBase]),(0,B.jsxs)(`div`,{className:BY.container,children:[(0,B.jsx)(`h1`,{className:BY.pageTitle,children:e(`system_info.title`)}),(0,B.jsxs)(`div`,{className:BY.content,children:[(0,B.jsxs)(hg,{className:BY.aboutCard,children:[(0,B.jsxs)(`div`,{className:BY.aboutHeader,children:[(0,B.jsx)(`img`,{src:x,alt:`CPAMC`,className:BY.aboutLogo}),(0,B.jsx)(`div`,{className:BY.aboutTitle,children:e(`system_info.about_title`)})]}),(0,B.jsxs)(`div`,{className:BY.aboutInfoGrid,children:[(0,B.jsxs)(`button`,{type:`button`,className:`${BY.infoTile} ${BY.tapTile}`,onClick:ie,children:[(0,B.jsx)(`div`,{className:BY.tileHeader,children:(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.version`)})}),(0,B.jsx)(`div`,{className:BY.tileValue,children:`v1.10.2`})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsxs)(`div`,{className:BY.tileHeader,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.api_version`)}),(0,B.jsx)(V,{type:`button`,variant:`ghost`,size:`sm`,className:BY.tileAction,onClick:()=>void se(),loading:E,title:e(`system_info.version_check_button`),"aria-label":e(`system_info.version_check_button`),children:e(`system_info.version_check_button`)})]}),(0,B.jsx)(`div`,{className:BY.tileValue,children:F})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`footer.build_date`)}),(0,B.jsx)(`div`,{className:BY.tileValue,children:I})]}),(0,B.jsxs)(`div`,{className:BY.infoTile,children:[(0,B.jsx)(`div`,{className:BY.tileLabel,children:e(`connection.status`)}),(0,B.jsx)(`div`,{className:BY.tileValue,children:e(`common.${a.connectionStatus}_status`)}),(0,B.jsx)(`div`,{className:BY.tileSub,children:a.apiBase||`-`})]})]})]}),(0,B.jsxs)(hg,{title:e(`system_info.quick_links_title`),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.quick_links_desc`)}),(0,B.jsxs)(`div`,{className:BY.quickLinks,children:[(0,B.jsxs)(`a`,{href:`https://github.com/router-for-me/CLIProxyAPI`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.github}`,children:(0,B.jsx)(ws,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_main_repo`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_main_repo_desc`)})]})]}),(0,B.jsxs)(`a`,{href:`https://github.com/router-for-me/Cli-Proxy-API-Management-Center`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.github}`,children:(0,B.jsx)(Ds,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_webui_repo`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_webui_repo_desc`)})]})]}),(0,B.jsxs)(`a`,{href:`https://help.router-for.me/`,target:`_blank`,rel:`noopener noreferrer`,className:BY.linkCard,children:[(0,B.jsx)(`div`,{className:`${BY.linkIcon} ${BY.docs}`,children:(0,B.jsx)(Es,{size:22})}),(0,B.jsxs)(`div`,{className:BY.linkContent,children:[(0,B.jsxs)(`div`,{className:BY.linkTitle,children:[e(`system_info.link_docs`),(0,B.jsx)(Ts,{size:14})]}),(0,B.jsx)(`div`,{className:BY.linkDesc,children:e(`system_info.link_docs_desc`)})]})]})]})]}),(0,B.jsxs)(hg,{title:e(`system_info.models_title`),extra:(0,B.jsx)(V,{variant:`secondary`,size:`sm`,onClick:()=>ne({forceRefresh:!0}),loading:d,children:e(`common.refresh`)}),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.models_desc`)}),m&&(0,B.jsx)(`div`,{className:`status-badge ${m.type}`,children:m.message}),f&&(0,B.jsx)(`div`,{className:`error-box`,children:f}),d?(0,B.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):u.length===0?(0,B.jsx)(`div`,{className:`hint`,children:e(`system_info.models_empty`)}):(0,B.jsx)(`div`,{className:`item-list`,children:M.map(t=>{let n=L(t.id);return(0,B.jsxs)(`div`,{className:`item-row`,children:[(0,B.jsxs)(`div`,{className:`item-meta`,children:[(0,B.jsxs)(`div`,{className:BY.groupTitle,children:[n&&(0,B.jsx)(`img`,{src:n,alt:``,className:BY.groupIcon}),(0,B.jsx)(`span`,{className:`item-title`,children:t.label})]}),(0,B.jsx)(`div`,{className:`item-subtitle`,children:e(`system_info.models_count`,{count:t.items.length})})]}),(0,B.jsx)(`div`,{className:BY.modelTags,children:t.items.map(e=>(0,B.jsxs)(`span`,{className:BY.modelTag,title:e.description||``,children:[(0,B.jsx)(`span`,{className:BY.modelName,children:e.name}),e.alias&&(0,B.jsx)(`span`,{className:BY.modelAlias,children:e.alias})]},`${e.name}-${e.alias??`default`}`))})]},t.id)})})]}),(0,B.jsxs)(hg,{title:e(`system_info.clear_login_title`),children:[(0,B.jsx)(`p`,{className:BY.sectionDescription,children:e(`system_info.clear_login_desc`)}),(0,B.jsx)(`div`,{className:BY.clearLoginActions,children:(0,B.jsx)(V,{variant:`danger`,onClick:re,children:e(`system_info.clear_login_button`)})})]})]}),(0,B.jsx)(um,{open:g,onClose:ae,title:e(`basic_settings.request_log_title`),footer:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(V,{variant:`secondary`,onClick:ae,disabled:w,children:e(`common.cancel`)}),(0,B.jsx)(V,{onClick:oe,loading:w,disabled:!ee||!P,children:e(`common.save`)})]}),children:(0,B.jsxs)(`div`,{className:`request-log-modal`,children:[(0,B.jsx)(`div`,{className:`status-badge warning`,children:e(`basic_settings.request_log_warning`)}),(0,B.jsx)(Sg,{label:e(`basic_settings.request_log_enable`),labelPosition:`left`,checked:v,disabled:!ee||w,onChange:e=>{b(e),C(!0)}})]})})]})}var GY=[{path:`/`,element:(0,B.jsx)(mg,{})},{path:`/dashboard`,element:(0,B.jsx)(mg,{})},{path:`/settings`,element:(0,B.jsx)(Br,{to:`/config`,replace:!0})},{path:`/api-keys`,element:(0,B.jsx)(Br,{to:`/config`,replace:!0})},{path:`/ai-providers/gemini/new`,element:(0,B.jsx)(nv,{})},{path:`/ai-providers/gemini/:index`,element:(0,B.jsx)(nv,{})},{path:`/ai-providers/codex/new`,element:(0,B.jsx)(X_,{})},{path:`/ai-providers/codex/:index`,element:(0,B.jsx)(X_,{})},{path:`/ai-providers/claude/new`,element:(0,B.jsx)(F_,{}),children:[{index:!0,element:(0,B.jsx)(H_,{})},{path:`models`,element:(0,B.jsx)(W_,{})}]},{path:`/ai-providers/claude/:index`,element:(0,B.jsx)(F_,{}),children:[{index:!0,element:(0,B.jsx)(H_,{})},{path:`models`,element:(0,B.jsx)(W_,{})}]},{path:`/ai-providers/vertex/new`,element:(0,B.jsx)(Ev,{})},{path:`/ai-providers/vertex/:index`,element:(0,B.jsx)(Ev,{})},{path:`/ai-providers/openai/new`,element:(0,B.jsx)(dv,{}),children:[{index:!0,element:(0,B.jsx)(yv,{})},{path:`models`,element:(0,B.jsx)(xv,{})}]},{path:`/ai-providers/openai/:index`,element:(0,B.jsx)(dv,{}),children:[{index:!0,element:(0,B.jsx)(yv,{})},{path:`models`,element:(0,B.jsx)(xv,{})}]},{path:`/ai-providers/ampcode`,element:(0,B.jsx)(T_,{})},{path:`/ai-providers`,element:(0,B.jsx)(o_,{})},{path:`/ai-providers/*`,element:(0,B.jsx)(o_,{})},{path:`/auth-files`,element:(0,B.jsx)(Xx,{})},{path:`/auth-files/oauth-excluded`,element:(0,B.jsx)(nS,{})},{path:`/auth-files/oauth-model-alias`,element:(0,B.jsx)(lS,{})},{path:`/oauth`,element:(0,B.jsx)(bS,{})},{path:`/quota`,element:(0,B.jsx)(xS,{})},{path:`/config`,element:(0,B.jsx)(eY,{})},{path:`/logs`,element:(0,B.jsx)(FY,{})},{path:`/system`,element:(0,B.jsx)(WY,{})},{path:`*`,element:(0,B.jsx)(Br,{to:`/`,replace:!0})}];function KY({location:e}){return ar(GY,e)}var qY={dashboard:(0,B.jsx)(Os,{size:18}),aiProviders:(0,B.jsx)(As,{size:18}),authFiles:(0,B.jsx)(js,{size:18}),oauth:(0,B.jsx)(Ms,{size:18}),quota:(0,B.jsx)(Ns,{size:18}),config:(0,B.jsx)(ks,{size:18}),logs:(0,B.jsx)(Ps,{size:18}),system:(0,B.jsx)(Fs,{size:18})},JY={width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`},YY={refresh:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}),(0,B.jsx)(`path`,{d:`M21 3v5h-5`})]}),menu:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M4 7h16`}),(0,B.jsx)(`path`,{d:`M4 12h16`}),(0,B.jsx)(`path`,{d:`M4 17h16`})]}),close:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M18 6 6 18`}),(0,B.jsx)(`path`,{d:`m6 6 12 12`})]}),chevronLeft:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`m14 18-6-6 6-6`})}),chevronRight:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`m10 6 6 6-6 6`})}),language:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,B.jsx)(`path`,{d:`M2 12h20`}),(0,B.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),sun:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,B.jsx)(`path`,{d:`M12 2v2`}),(0,B.jsx)(`path`,{d:`M12 20v2`}),(0,B.jsx)(`path`,{d:`m4.93 4.93 1.41 1.41`}),(0,B.jsx)(`path`,{d:`m17.66 17.66 1.41 1.41`}),(0,B.jsx)(`path`,{d:`M2 12h2`}),(0,B.jsx)(`path`,{d:`M20 12h2`}),(0,B.jsx)(`path`,{d:`m6.34 17.66-1.41 1.41`}),(0,B.jsx)(`path`,{d:`m19.07 4.93-1.41 1.41`})]}),moon:(0,B.jsx)(`svg`,{...JY,children:(0,B.jsx)(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z`})}),whiteTheme:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`7`}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`,fill:`currentColor`,stroke:`none`})]}),autoTheme:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`defs`,{children:(0,B.jsx)(`clipPath`,{id:`mainLayoutAutoThemeSunLeftHalf`,children:(0,B.jsx)(`rect`,{x:`0`,y:`0`,width:`12`,height:`24`})})}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,B.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`,clipPath:`url(#mainLayoutAutoThemeSunLeftHalf)`,fill:`currentColor`}),(0,B.jsx)(`path`,{d:`M12 2v2`}),(0,B.jsx)(`path`,{d:`M12 20v2`}),(0,B.jsx)(`path`,{d:`M4.93 4.93l1.41 1.41`}),(0,B.jsx)(`path`,{d:`M17.66 17.66l1.41 1.41`}),(0,B.jsx)(`path`,{d:`M2 12h2`}),(0,B.jsx)(`path`,{d:`M20 12h2`}),(0,B.jsx)(`path`,{d:`M6.34 17.66l-1.41 1.41`}),(0,B.jsx)(`path`,{d:`M19.07 4.93l-1.41 1.41`})]}),logout:(0,B.jsxs)(`svg`,{...JY,children:[(0,B.jsx)(`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}),(0,B.jsx)(`path`,{d:`m16 17 5-5-5-5`}),(0,B.jsx)(`path`,{d:`M21 12H9`})]})},XY=[{key:`auto`,labelKey:`theme.auto`,colors:{bg:`linear-gradient(135deg, #ffffff 0 50%, #111111 50% 100%)`,card:`linear-gradient(135deg, #ffffff 0 50%, #1a1a1a 50% 100%)`,border:`#bdbdbd`,text:`#2d2a26`,textMuted:`linear-gradient(135deg, #c9c9c9 0 50%, #5a5a5a 50% 100%)`}},{key:`white`,labelKey:`theme.white`,colors:{bg:`#ffffff`,card:`#ffffff`,border:`#e5e5e5`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`light`,labelKey:`theme.light`,colors:{bg:`#faf9f5`,card:`#f0eee8`,border:`#e3e1db`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`dark`,labelKey:`theme.dark`,colors:{bg:`#151412`,card:`#1d1b18`,border:`#3a3530`,text:`#f6f4f1`,textMuted:`#9c958d`}}];function ZY(){let{t:e}=qo(),{showNotification:t}=hc(),n=Yn(),r=ep(e=>e.logout),i=Of(e=>e.config),a=Of(e=>e.fetchConfig),o=Of(e=>e.clearCache),s=wc(e=>e.theme),c=wc(e=>e.setTheme),l=Ic(e=>e.language),u=Ic(e=>e.setLanguage),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),b=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null),w=(0,y.useRef)(null),T=e(`title.abbr`),E=n.pathname.startsWith(`/logs`),D=!p||d;(0,y.useLayoutEffect)(()=>{let e=()=>{let e=w.current?.offsetHeight;e&&document.documentElement.style.setProperty(`--header-height`,`${e}px`)};e();let t=typeof ResizeObserver<`u`&&w.current?new ResizeObserver(e):null;return t&&w.current&&t.observe(w.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e)}},[]),(0,y.useLayoutEffect)(()=>{let e=()=>{let e=b.current;if(!e)return;let t=e.getBoundingClientRect(),n=t.left+t.width/2;document.documentElement.style.setProperty(`--content-center-x`,`${n}px`)};e();let t=typeof ResizeObserver<`u`&&b.current?new ResizeObserver(e):null;return t&&b.current&&t.observe(b.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e),document.documentElement.style.removeProperty(`--content-center-x`)}},[]),(0,y.useEffect)(()=>{if(!h)return;let e=e=>{S.current?.contains(e.target)||g(!1)},t=e=>{e.key===`Escape`&&g(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[h]),(0,y.useEffect)(()=>{if(!_)return;let e=e=>{C.current?.contains(e.target)||v(!1)},t=e=>{e.key===`Escape`&&v(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[_]);let O=(0,y.useCallback)(()=>{g(e=>!e),v(!1)},[]),k=(0,y.useCallback)(()=>{v(e=>!e),g(!1)},[]),A=(0,y.useCallback)(e=>{c(e),v(!1)},[c]),j=(0,y.useCallback)(e=>{Ac(e)&&(u(e),g(!1))},[u]);(0,y.useEffect)(()=>{a().catch(()=>{})},[a]);let M=[{path:`/`,label:e(`nav.dashboard`),icon:qY.dashboard},{path:`/config`,label:e(`nav.config_management`),icon:qY.config},{path:`/ai-providers`,label:e(`nav.ai_providers`),icon:qY.aiProviders},{path:`/auth-files`,label:e(`nav.auth_files`),icon:qY.authFiles},{path:`/oauth`,label:e(`nav.oauth`,{defaultValue:`OAuth`}),icon:qY.oauth},{path:`/quota`,label:e(`nav.quota_management`),icon:qY.quota},...i?.loggingToFile?[{path:`/logs`,label:e(`nav.logs`),icon:qY.logs}]:[],{path:`/system`,label:e(`nav.system_info`),icon:qY.system}],N=M.map(e=>e.path),P=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e,n=t===`/dashboard`?`/`:t,r=N.indexOf(`/ai-providers`);if(r!==-1){if(n===`/ai-providers`)return r;if(n.startsWith(`/ai-providers/`))return n.startsWith(`/ai-providers/gemini`)?r+.1:n.startsWith(`/ai-providers/codex`)?r+.2:n.startsWith(`/ai-providers/claude`)?r+.3:n.startsWith(`/ai-providers/vertex`)?r+.4:n.startsWith(`/ai-providers/ampcode`)?r+.5:n.startsWith(`/ai-providers/openai`)?r+.6:r+.05}let i=N.indexOf(`/auth-files`);if(i!==-1){if(n===`/auth-files`)return i;if(n.startsWith(`/auth-files/`))return n.startsWith(`/auth-files/oauth-excluded`)?i+.1:n.startsWith(`/auth-files/oauth-model-alias`)?i+.2:i+.05}let a=N.indexOf(n);if(a!==-1)return a;let o=N.findIndex(e=>e!==`/`&&n.startsWith(`${e}/`));return o===-1?null:o},ee=(0,y.useCallback)((e,t)=>{let n=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e;return t===`/dashboard`?`/`:t},r=n(e),i=n(t),a=e=>e===`/auth-files`||e.startsWith(`/auth-files/`),o=e=>e===`/ai-providers`||e.startsWith(`/ai-providers/`);return a(r)&&a(i)||o(r)&&o(i)?`ios`:`vertical`},[]),F=async()=>{o();let n=(await Promise.allSettled([a(void 0,!0),i_()])).find(e=>e.status===`rejected`);if(n&&n.status===`rejected`){let r=n.reason,i=typeof r==`string`?r:r instanceof Error?r.message:``;t(`${e(`notification.refresh_failed`)}${i?`: ${i}`:``}`,`error`);return}t(e(`notification.data_refreshed`),`success`)},I=d?e(`sidebar.toggle_collapse`,{defaultValue:`Close navigation`}):e(`sidebar.toggle_expand`,{defaultValue:`Open navigation`});return(0,B.jsxs)(`div`,{className:`app-shell ${p?`sidebar-is-collapsed`:``}`,children:[(0,B.jsx)(`div`,{className:`top-gradient-blur`,"aria-hidden":`true`}),(0,B.jsxs)(`header`,{className:`main-header`,ref:w,children:[(0,B.jsx)(`button`,{type:`button`,className:`sidebar-toggle-floating`,onClick:()=>m(e=>!e),title:p?e(`sidebar.expand`,{defaultValue:`展开`}):e(`sidebar.collapse`,{defaultValue:`收起`}),"aria-label":p?e(`sidebar.expand`,{defaultValue:`展开`}):e(`sidebar.collapse`,{defaultValue:`收起`}),children:p?YY.chevronRight:YY.chevronLeft}),(0,B.jsx)(`div`,{className:`mobile-sidebar-actions`,children:(0,B.jsx)(V,{className:`mobile-menu-btn`,variant:`ghost`,size:`sm`,onClick:()=>f(e=>!e),title:I,"aria-label":I,children:d?YY.close:YY.menu})}),(0,B.jsxs)(`div`,{className:`header-actions floating-actions`,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:F,title:e(`header.refresh_all`),children:YY.refresh}),(0,B.jsxs)(`div`,{className:`language-menu ${h?`open`:``}`,ref:S,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:O,title:e(`language.switch`),"aria-label":e(`language.switch`),"aria-haspopup":`menu`,"aria-expanded":h,children:YY.language}),h&&(0,B.jsx)(`div`,{className:`notification entering language-menu-popover`,role:`menu`,"aria-label":e(`language.switch`),children:dc.map(t=>(0,B.jsxs)(`button`,{type:`button`,className:`language-menu-option ${l===t?`active`:``}`,onClick:()=>j(t),role:`menuitemradio`,"aria-checked":l===t,children:[(0,B.jsx)(`span`,{children:e(fc[t])}),l===t?(0,B.jsx)(`span`,{className:`language-menu-check`,children:`✓`}):null]},t))})]}),(0,B.jsxs)(`div`,{className:`theme-menu ${_?`open`:``}`,ref:C,children:[(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:k,title:e(`theme.switch`),"aria-label":e(`theme.switch`),"aria-haspopup":`menu`,"aria-expanded":_,children:s===`auto`?YY.autoTheme:s===`dark`?YY.moon:s===`white`?YY.whiteTheme:YY.sun}),_&&(0,B.jsx)(`div`,{className:`notification entering theme-menu-popover`,role:`menu`,"aria-label":e(`theme.switch`),children:XY.map(t=>(0,B.jsxs)(`button`,{type:`button`,className:`theme-card ${s===t.key?`active`:``}`,onClick:()=>A(t.key),role:`menuitemradio`,"aria-checked":s===t.key,children:[(0,B.jsxs)(`div`,{className:`theme-card-preview`,style:{background:t.colors.bg,border:`1px solid ${t.colors.border}`},children:[(0,B.jsx)(`div`,{className:`theme-card-header`,style:{background:t.colors.card,borderBottom:`1px solid ${t.colors.border}`}}),(0,B.jsxs)(`div`,{className:`theme-card-body`,children:[(0,B.jsx)(`div`,{className:`theme-card-sidebar`,style:{background:t.colors.card,borderRight:`1px solid ${t.colors.border}`}}),(0,B.jsxs)(`div`,{className:`theme-card-content`,style:{background:t.colors.bg},children:[(0,B.jsx)(`div`,{className:`theme-card-line`,style:{background:t.colors.textMuted}}),(0,B.jsx)(`div`,{className:`theme-card-line short`,style:{background:t.colors.textMuted}})]})]})]}),(0,B.jsx)(`span`,{className:`theme-card-label`,children:e(t.labelKey)})]},t.key))})]}),(0,B.jsx)(V,{variant:`ghost`,size:`sm`,onClick:r,title:e(`header.logout`),children:YY.logout})]})]}),(0,B.jsxs)(`div`,{className:`main-body`,children:[(0,B.jsx)(`button`,{type:`button`,className:`sidebar-backdrop ${d?`visible`:``}`,onClick:()=>f(!1),"aria-label":e(`common.close`),"aria-hidden":!d,tabIndex:d?0:-1}),(0,B.jsxs)(`aside`,{className:`sidebar ${d?`open`:``} ${p?`collapsed`:``}`,children:[(0,B.jsxs)(`div`,{className:`sidebar-brand`,title:`CLI Proxy API Management Center`,children:[(0,B.jsx)(`img`,{src:x,alt:`CPAMC logo`,className:`sidebar-brand-logo`}),D&&(0,B.jsx)(`span`,{className:`sidebar-brand-title`,children:T})]}),(0,B.jsx)(`div`,{className:`nav-section`,children:M.map(e=>(0,B.jsxs)(Fi,{to:e.path,className:({isActive:e})=>`nav-item ${e?`active`:``}`,onClick:()=>f(!1),title:D?void 0:e.label,children:[(0,B.jsx)(`span`,{className:`nav-icon`,children:e.icon}),D&&(0,B.jsx)(`span`,{className:`nav-label`,children:e.label})]},e.path))})]}),(0,B.jsx)(`div`,{className:`content${E?` content-logs`:``}`,ref:b,children:(0,B.jsx)(`main`,{className:`main-content${E?` main-content-logs`:``}`,children:(0,B.jsx)(mh,{render:e=>(0,B.jsx)(KY,{location:e}),getRouteOrder:P,getTransitionVariant:ee,scrollContainerRef:b})})})]})]})}function QY({children:e}){let t=Yn(),n=ep(e=>e.isAuthenticated),r=ep(e=>e.managementKey),i=ep(e=>e.apiBase),a=ep(e=>e.checkAuth),[o,s]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{(async()=>{if(!n&&r&&i){s(!0);try{await a()}finally{s(!1)}}})()},[i,n,r,a]),o?(0,B.jsx)(`div`,{className:`main-content`,children:(0,B.jsx)(p_,{})}):n?e:(0,B.jsx)(Br,{to:`/login`,replace:!0,state:{from:t}})}function $Y(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(tm,{}),(0,B.jsx)(dm,{}),(0,B.jsx)(Vr,{})]})}var eX=ki([{element:(0,B.jsx)($Y,{}),children:[{path:`/login`,element:(0,B.jsx)($p,{})},{path:`/*`,element:(0,B.jsx)(QY,{children:(0,B.jsx)(ZY,{})})}]}]);function tX(){let e=wc(e=>e.initializeTheme),t=Ic(e=>e.language),n=Ic(e=>e.setLanguage);return(0,y.useEffect)(()=>e(),[e]),(0,y.useEffect)(()=>{n(t)},[]),(0,y.useEffect)(()=>{document.documentElement.lang=t},[t]),(0,B.jsx)($i,{router:eX})}document.title=`CLI Proxy API Management Center`,document.documentElement.setAttribute(`translate`,`no`),document.documentElement.classList.add(`notranslate`);var nX=document.querySelector(`link[rel="icon"]`);if(nX)nX.href=x,nX.type=`image/jpeg`;else{let e=document.createElement(`link`);e.rel=`icon`,e.type=`image/jpeg`,e.href=x,document.head.appendChild(e)}(0,b.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(y.StrictMode,{children:(0,B.jsx)(tX,{})}));