import{j as s,Y as ld,O as gg,k as pg,u as ad,Z as yg,c as vg,l as bg,g as Sg,S as Tg,T as xg,n as Ag,m as nd,o as Dg,p as Ng,$ as ud,a0 as id,a1 as cd,a2 as Eg}from"./ui-vendor-CeCm8EER.js";import{d as Mg,h as zg,r as D,u as sd,H as Cg,i as jg,j as Wf}from"./react-vendor-DEwriMA6.js";import{N as ze,c as Ve,ai as od,u as vt,M as ot,aj as rd,ak as fd,I as jn,B as dl,D as dd,l as md,m as hd,n as gd,o as Og,al as _g,am as Rg,an as Ug,ao as Hg,ap as Lg,aq as qg,k as Bg,ar as Gg,t as wg,as as Yg,at as kg,au as wt,av as pd,aw as ds,ax as is,a1 as Xg,a2 as Vg,a3 as Qg,a4 as Kg,ay as Zg,az as Jg,aA as yd,aB as Fg,aC as vd,aD as Pg,aE as bd,d as Wg,R as $g,V as Ig,g as Mn,aF as ep,aG as tp,aH as lp}from"./feature-graph-C2lnkH6U.js";import{S as cs,a as ss,b as os,c as rs,e as Gt,D as ap}from"./feature-documents-Cz85jZmh.js";import{R as np}from"./feature-retrieval-24678VmD.js";import{i as fs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-C4V_MkUy.js";import"./markdown-vendor-DQBWdwkI.js";(function(){const y=document.createElement("link").relList;if(y&&y.supports&&y.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))f(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const _ of j.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&f(_)}).observe(document,{childList:!0,subtree:!0});function x(N){const j={};return N.integrity&&(j.integrity=N.integrity),N.referrerPolicy&&(j.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?j.credentials="include":N.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function f(N){if(N.ep)return;N.ep=!0;const j=x(N);fetch(N.href,j)}})();var as={exports:{}},zn={},ns={exports:{}},us={};/** * @license React * scheduler.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var $f;function up(){return $f||($f=1,function(m){function y(A,L){var U=A.length;A.push(L);e:for(;0>>1,me=A[ae];if(0>>1;aeN(Tt,U))QN(Qe,Tt)?(A[ae]=Qe,A[Q]=U,ae=Q):(A[ae]=Tt,A[vl]=U,ae=vl);else if(QN(Qe,U))A[ae]=Qe,A[Q]=U,ae=Q;else break e}}return L}function N(A,L){var U=A.sortIndex-L.sortIndex;return U!==0?U:A.id-L.id}if(m.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var j=performance;m.unstable_now=function(){return j.now()}}else{var _=Date,F=_.now();m.unstable_now=function(){return _.now()-F}}var G=[],V=[],ce=1,se=null,Y=3,oe=!1,ee=!1,C=!1,K=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,Re=typeof setImmediate<"u"?setImmediate:null;function ml(A){for(var L=x(V);L!==null;){if(L.callback===null)f(V);else if(L.startTime<=A)f(V),L.sortIndex=L.expirationTime,y(G,L);else break;L=x(V)}}function Ma(A){if(C=!1,ml(A),!ee)if(x(G)!==null)ee=!0,pl();else{var L=x(V);L!==null&&yl(Ma,L.startTime-A)}}var hl=!1,nt=-1,On=5,Yl=-1;function R(){return!(m.unstable_now()-YlA&&R());){var ae=se.callback;if(typeof ae=="function"){se.callback=null,Y=se.priorityLevel;var me=ae(se.expirationTime<=A);if(A=m.unstable_now(),typeof me=="function"){se.callback=me,ml(A),L=!0;break t}se===x(G)&&f(G),ml(A)}else f(G);se=x(G)}if(se!==null)L=!0;else{var kl=x(V);kl!==null&&yl(Ma,kl.startTime-A),L=!1}}break e}finally{se=null,Y=U,oe=!1}L=void 0}}finally{L?St():hl=!1}}}var St;if(typeof Re=="function")St=function(){Re(P)};else if(typeof MessageChannel<"u"){var za=new MessageChannel,gl=za.port2;za.port1.onmessage=P,St=function(){gl.postMessage(null)}}else St=function(){K(P,0)};function pl(){hl||(hl=!0,St())}function yl(A,L){nt=K(function(){A(m.unstable_now())},L)}m.unstable_IdlePriority=5,m.unstable_ImmediatePriority=1,m.unstable_LowPriority=4,m.unstable_NormalPriority=3,m.unstable_Profiling=null,m.unstable_UserBlockingPriority=2,m.unstable_cancelCallback=function(A){A.callback=null},m.unstable_continueExecution=function(){ee||oe||(ee=!0,pl())},m.unstable_forceFrameRate=function(A){0>A||125ae?(A.sortIndex=U,y(V,A),x(G)===null&&A===x(V)&&(C?(bt(nt),nt=-1):C=!0,yl(Ma,U-ae))):(A.sortIndex=me,y(G,A),ee||oe||(ee=!0,pl())),A},m.unstable_shouldYield=R,m.unstable_wrapCallback=function(A){var L=Y;return function(){var U=Y;Y=L;try{return A.apply(this,arguments)}finally{Y=U}}}}(us)),us}var If;function ip(){return If||(If=1,ns.exports=up()),ns.exports}/** * @license React * react-dom-client.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var ed;function cp(){if(ed)return zn;ed=1;var m=ip(),y=Mg(),x=zg();function f(e){var t="https://react.dev/errors/"+e;if(1)":-1n||o[a]!==d[n]){var b=` `+o[a].replace(" at new "," at ");return e.displayName&&b.includes("")&&(b=b.replace("",e.displayName)),b}while(1<=a&&0<=n);break}}}finally{pl=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?gl(l):""}function A(e){switch(e.tag){case 26:case 27:case 5:return gl(e.type);case 16:return gl("Lazy");case 13:return gl("Suspense");case 19:return gl("SuspenseList");case 0:case 15:return e=yl(e.type,!1),e;case 11:return e=yl(e.type.render,!1),e;case 1:return e=yl(e.type,!0),e;default:return""}}function L(e){try{var t="";do t+=A(e),e=e.return;while(e);return t}catch(l){return` Error generating stack: `+l.message+` `+l.stack}}function U(e){var t=e,l=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(l=t.return),e=t.return;while(e)}return t.tag===3?l:null}function ae(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function me(e){if(U(e)!==e)throw Error(f(188))}function kl(e){var t=e.alternate;if(!t){if(t=U(e),t===null)throw Error(f(188));return t!==e?null:e}for(var l=e,a=t;;){var n=l.return;if(n===null)break;var u=n.alternate;if(u===null){if(a=n.return,a!==null){l=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===l)return me(n),e;if(u===a)return me(n),t;u=u.sibling}throw Error(f(188))}if(l.return!==a.return)l=n,a=u;else{for(var i=!1,c=n.child;c;){if(c===l){i=!0,l=n,a=u;break}if(c===a){i=!0,a=n,l=u;break}c=c.sibling}if(!i){for(c=u.child;c;){if(c===l){i=!0,l=u,a=n;break}if(c===a){i=!0,a=u,l=n;break}c=c.sibling}if(!i)throw Error(f(189))}}if(l.alternate!==a)throw Error(f(190))}if(l.tag!==3)throw Error(f(188));return l.stateNode.current===l?e:t}function vl(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=vl(e),t!==null)return t;e=e.sibling}return null}var Tt=Array.isArray,Q=x.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Qe={pending:!1,data:null,method:null,action:null},Zu=[],Xl=-1;function rt(e){return{current:e}}function Se(e){0>Xl||(e.current=Zu[Xl],Zu[Xl]=null,Xl--)}function ne(e,t){Xl++,Zu[Xl]=e.current,e.current=t}var ft=rt(null),Ca=rt(null),kt=rt(null),_n=rt(null);function Rn(e,t){switch(ne(kt,t),ne(Ca,e),ne(ft,null),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?Ef(t):0;break;default:if(e=e===8?t.parentNode:t,t=e.tagName,e=e.namespaceURI)e=Ef(e),t=Mf(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}Se(ft),ne(ft,t)}function Vl(){Se(ft),Se(Ca),Se(kt)}function Ju(e){e.memoizedState!==null&&ne(_n,e);var t=ft.current,l=Mf(t,e.type);t!==l&&(ne(Ca,e),ne(ft,l))}function Un(e){Ca.current===e&&(Se(ft),Se(Ca)),_n.current===e&&(Se(_n),xn._currentValue=Qe)}var Fu=Object.prototype.hasOwnProperty,Pu=m.unstable_scheduleCallback,Wu=m.unstable_cancelCallback,Zd=m.unstable_shouldYield,Jd=m.unstable_requestPaint,dt=m.unstable_now,Fd=m.unstable_getCurrentPriorityLevel,ms=m.unstable_ImmediatePriority,hs=m.unstable_UserBlockingPriority,Hn=m.unstable_NormalPriority,Pd=m.unstable_LowPriority,gs=m.unstable_IdlePriority,Wd=m.log,$d=m.unstable_setDisableYieldValue,ja=null,qe=null;function Id(e){if(qe&&typeof qe.onCommitFiberRoot=="function")try{qe.onCommitFiberRoot(ja,e,void 0,(e.current.flags&128)===128)}catch{}}function Xt(e){if(typeof Wd=="function"&&$d(e),qe&&typeof qe.setStrictMode=="function")try{qe.setStrictMode(ja,e)}catch{}}var Be=Math.clz32?Math.clz32:lm,em=Math.log,tm=Math.LN2;function lm(e){return e>>>=0,e===0?32:31-(em(e)/tm|0)|0}var Ln=128,qn=4194304;function bl(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Bn(e,t){var l=e.pendingLanes;if(l===0)return 0;var a=0,n=e.suspendedLanes,u=e.pingedLanes,i=e.warmLanes;e=e.finishedLanes!==0;var c=l&134217727;return c!==0?(l=c&~n,l!==0?a=bl(l):(u&=c,u!==0?a=bl(u):e||(i=c&~i,i!==0&&(a=bl(i))))):(c=l&~n,c!==0?a=bl(c):u!==0?a=bl(u):e||(i=l&~i,i!==0&&(a=bl(i)))),a===0?0:t!==0&&t!==a&&!(t&n)&&(n=a&-a,i=t&-t,n>=i||n===32&&(i&4194176)!==0)?t:a}function Oa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function am(e,t){switch(e){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ps(){var e=Ln;return Ln<<=1,!(Ln&4194176)&&(Ln=128),e}function ys(){var e=qn;return qn<<=1,!(qn&62914560)&&(qn=4194304),e}function $u(e){for(var t=[],l=0;31>l;l++)t.push(e);return t}function _a(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function nm(e,t,l,a,n,u){var i=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var c=e.entanglements,o=e.expirationTimes,d=e.hiddenUpdates;for(l=i&~l;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sm=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Ns={},Es={};function om(e){return Fu.call(Es,e)?!0:Fu.call(Ns,e)?!1:sm.test(e)?Es[e]=!0:(Ns[e]=!0,!1)}function Gn(e,t,l){if(om(t))if(l===null)e.removeAttribute(t);else{switch(typeof l){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+l)}}function wn(e,t,l){if(l===null)e.removeAttribute(t);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+l)}}function At(e,t,l,a){if(a===null)e.removeAttribute(l);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(l);return}e.setAttributeNS(t,l,""+a)}}function Ke(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ms(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function rm(e){var t=Ms(e)?"checked":"value",l=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var n=l.get,u=l.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return n.call(this)},set:function(i){a=""+i,u.call(this,i)}}),Object.defineProperty(e,t,{enumerable:l.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Yn(e){e._valueTracker||(e._valueTracker=rm(e))}function zs(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var l=t.getValue(),a="";return e&&(a=Ms(e)?e.checked?"true":"false":e.value),e=a,e!==l?(t.setValue(e),!0):!1}function kn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var fm=/[\n"\\]/g;function Ze(e){return e.replace(fm,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ti(e,t,l,a,n,u,i,c){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Ke(t)):e.value!==""+Ke(t)&&(e.value=""+Ke(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?li(e,i,Ke(t)):l!=null?li(e,i,Ke(l)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?e.name=""+Ke(c):e.removeAttribute("name")}function Cs(e,t,l,a,n,u,i,c){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||l!=null){if(!(u!=="submit"&&u!=="reset"||t!=null))return;l=l!=null?""+Ke(l):"",t=t!=null?""+Ke(t):l,c||t===e.value||(e.value=t),e.defaultValue=t}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=c?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i)}function li(e,t,l){t==="number"&&kn(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function Fl(e,t,l,a){if(e=e.options,t){t={};for(var n=0;n=Ga),ks=" ",Xs=!1;function Vs(e,t){switch(e){case"keyup":return Gm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Il=!1;function Ym(e,t){switch(e){case"compositionend":return Qs(t);case"keypress":return t.which!==32?null:(Xs=!0,ks);case"textInput":return e=t.data,e===ks&&Xs?null:e;default:return null}}function km(e,t){if(Il)return e==="compositionend"||!mi&&Vs(e,t)?(e=Ls(),Vn=si=Qt=null,Il=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:l,offset:t-e};e=a}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=Is(l)}}function to(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?to(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function lo(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=kn(e.document);t instanceof e.HTMLIFrameElement;){try{var l=typeof t.contentWindow.location.href=="string"}catch{l=!1}if(l)e=t.contentWindow;else break;t=kn(e.document)}return t}function pi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Pm(e,t){var l=lo(t);t=e.focusedElem;var a=e.selectionRange;if(l!==t&&t&&t.ownerDocument&&to(t.ownerDocument.documentElement,t)){if(a!==null&&pi(t)){if(e=a.start,l=a.end,l===void 0&&(l=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(l,t.value.length);else if(l=(e=t.ownerDocument||document)&&e.defaultView||window,l.getSelection){l=l.getSelection();var n=t.textContent.length,u=Math.min(a.start,n);a=a.end===void 0?u:Math.min(a.end,n),!l.extend&&u>a&&(n=a,a=u,u=n),n=eo(t,u);var i=eo(t,a);n&&i&&(l.rangeCount!==1||l.anchorNode!==n.node||l.anchorOffset!==n.offset||l.focusNode!==i.node||l.focusOffset!==i.offset)&&(e=e.createRange(),e.setStart(n.node,n.offset),l.removeAllRanges(),u>a?(l.addRange(e),l.extend(i.node,i.offset)):(e.setEnd(i.node,i.offset),l.addRange(e)))}}for(e=[],l=t;l=l.parentNode;)l.nodeType===1&&e.push({element:l,left:l.scrollLeft,top:l.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,ea=null,yi=null,Xa=null,vi=!1;function ao(e,t,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;vi||ea==null||ea!==kn(a)||(a=ea,"selectionStart"in a&&pi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Xa&&ka(Xa,a)||(Xa=a,a=Ou(yi,"onSelect"),0>=i,n-=i,Dt=1<<32-Be(t)+n|l<O?(De=z,z=null):De=z.sibling;var J=p(h,z,g[O],S);if(J===null){z===null&&(z=De);break}e&&z&&J.alternate===null&&t(h,z),r=u(J,r,O),B===null?E=J:B.sibling=J,B=J,z=De}if(O===g.length)return l(h,z),Z&&El(h,O),E;if(z===null){for(;OO?(De=z,z=null):De=z.sibling;var fl=p(h,z,J.value,S);if(fl===null){z===null&&(z=De);break}e&&z&&fl.alternate===null&&t(h,z),r=u(fl,r,O),B===null?E=fl:B.sibling=fl,B=fl,z=De}if(J.done)return l(h,z),Z&&El(h,O),E;if(z===null){for(;!J.done;O++,J=g.next())J=T(h,J.value,S),J!==null&&(r=u(J,r,O),B===null?E=J:B.sibling=J,B=J);return Z&&El(h,O),E}for(z=a(z);!J.done;O++,J=g.next())J=v(z,h,O,J.value,S),J!==null&&(e&&J.alternate!==null&&z.delete(J.key===null?O:J.key),r=u(J,r,O),B===null?E=J:B.sibling=J,B=J);return e&&z.forEach(function(hg){return t(h,hg)}),Z&&El(h,O),E}function de(h,r,g,S){if(typeof g=="object"&&g!==null&&g.type===G&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case _:e:{for(var E=g.key;r!==null;){if(r.key===E){if(E=g.type,E===G){if(r.tag===7){l(h,r.sibling),S=n(r,g.props.children),S.return=h,h=S;break e}}else if(r.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Re&&To(E)===r.type){l(h,r.sibling),S=n(r,g.props),Pa(S,g),S.return=h,h=S;break e}l(h,r);break}else t(h,r);r=r.sibling}g.type===G?(S=ql(g.props.children,h.mode,S,g.key),S.return=h,h=S):(S=Tu(g.type,g.key,g.props,null,h.mode,S),Pa(S,g),S.return=h,h=S)}return i(h);case F:e:{for(E=g.key;r!==null;){if(r.key===E)if(r.tag===4&&r.stateNode.containerInfo===g.containerInfo&&r.stateNode.implementation===g.implementation){l(h,r.sibling),S=n(r,g.children||[]),S.return=h,h=S;break e}else{l(h,r);break}else t(h,r);r=r.sibling}S=Sc(g,h.mode,S),S.return=h,h=S}return i(h);case Re:return E=g._init,g=E(g._payload),de(h,r,g,S)}if(Tt(g))return M(h,r,g,S);if(nt(g)){if(E=nt(g),typeof E!="function")throw Error(f(150));return g=E.call(g),H(h,r,g,S)}if(typeof g.then=="function")return de(h,r,lu(g),S);if(g.$$typeof===oe)return de(h,r,vu(h,g),S);au(h,g)}return typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint"?(g=""+g,r!==null&&r.tag===6?(l(h,r.sibling),S=n(r,g),S.return=h,h=S):(l(h,r),S=bc(g,h.mode,S),S.return=h,h=S),i(h)):l(h,r)}return function(h,r,g,S){try{Fa=0;var E=de(h,r,g,S);return ia=null,E}catch(z){if(z===Za)throw z;var B=tt(29,z,null,h.mode);return B.lanes=S,B.return=h,B}finally{}}}var zl=xo(!0),Ao=xo(!1),ca=rt(null),nu=rt(0);function Do(e,t){e=Lt,ne(nu,e),ne(ca,t),Lt=e|t.baseLanes}function Ei(){ne(nu,Lt),ne(ca,ca.current)}function Mi(){Lt=nu.current,Se(ca),Se(nu)}var $e=rt(null),ht=null;function Zt(e){var t=e.alternate;ne(ve,ve.current&1),ne($e,e),ht===null&&(t===null||ca.current!==null||t.memoizedState!==null)&&(ht=e)}function No(e){if(e.tag===22){if(ne(ve,ve.current),ne($e,e),ht===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(ht=e)}}else Jt()}function Jt(){ne(ve,ve.current),ne($e,$e.current)}function Et(e){Se($e),ht===e&&(ht=null),Se(ve)}var ve=rt(0);function uu(e){for(var t=e;t!==null;){if(t.tag===13){var l=t.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||l.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var th=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(l,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(l){return l()})}},lh=m.unstable_scheduleCallback,ah=m.unstable_NormalPriority,be={$$typeof:oe,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function zi(){return{controller:new th,data:new Map,refCount:0}}function Wa(e){e.refCount--,e.refCount===0&&lh(ah,function(){e.controller.abort()})}var $a=null,Ci=0,sa=0,oa=null;function nh(e,t){if($a===null){var l=$a=[];Ci=0,sa=Hc(),oa={status:"pending",value:void 0,then:function(a){l.push(a)}}}return Ci++,t.then(Eo,Eo),t}function Eo(){if(--Ci===0&&$a!==null){oa!==null&&(oa.status="fulfilled");var e=$a;$a=null,sa=0,oa=null;for(var t=0;tu?u:8;var i=R.T,c={};R.T=c,Ki(e,!1,t,l);try{var o=n(),d=R.S;if(d!==null&&d(c,o),o!==null&&typeof o=="object"&&typeof o.then=="function"){var b=uh(o,a);tn(e,t,b,Xe(e))}else tn(e,t,a,Xe(e))}catch(T){tn(e,t,{then:function(){},status:"rejected",reason:T},Xe())}finally{Q.p=u,R.T=i}}function rh(){}function Vi(e,t,l,a){if(e.tag!==5)throw Error(f(476));var n=ar(e).queue;lr(e,n,t,Qe,l===null?rh:function(){return nr(e),l(a)})}function ar(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Qe,baseState:Qe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mt,lastRenderedState:Qe},next:null};var l={};return t.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mt,lastRenderedState:l},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function nr(e){var t=ar(e).next.queue;tn(e,t,{},Xe())}function Qi(){return je(xn)}function ur(){return pe().memoizedState}function ir(){return pe().memoizedState}function fh(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var l=Xe();e=It(l);var a=el(t,e,l);a!==null&&(_e(a,t,l),nn(a,t,l)),t={cache:zi()},e.payload=t;return}t=t.return}}function dh(e,t,l){var a=Xe();l={lane:a,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null},hu(e)?sr(t,l):(l=Ti(e,t,l,a),l!==null&&(_e(l,e,a),or(l,t,a)))}function cr(e,t,l){var a=Xe();tn(e,t,l,a)}function tn(e,t,l,a){var n={lane:a,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null};if(hu(e))sr(t,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,c=u(i,l);if(n.hasEagerState=!0,n.eagerState=c,Ge(c,i))return Wn(e,t,n,0),te===null&&Pn(),!1}catch{}finally{}if(l=Ti(e,t,n,a),l!==null)return _e(l,e,a),or(l,t,a),!0}return!1}function Ki(e,t,l,a){if(a={lane:2,revertLane:Hc(),action:a,hasEagerState:!1,eagerState:null,next:null},hu(e)){if(t)throw Error(f(479))}else t=Ti(e,l,a,2),t!==null&&_e(t,e,2)}function hu(e){var t=e.alternate;return e===q||t!==null&&t===q}function sr(e,t){ra=cu=!0;var l=e.pending;l===null?t.next=t:(t.next=l.next,l.next=t),e.pending=t}function or(e,t,l){if(l&4194176){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,bs(e,l)}}var gt={readContext:je,use:ru,useCallback:he,useContext:he,useEffect:he,useImperativeHandle:he,useLayoutEffect:he,useInsertionEffect:he,useMemo:he,useReducer:he,useRef:he,useState:he,useDebugValue:he,useDeferredValue:he,useTransition:he,useSyncExternalStore:he,useId:he};gt.useCacheRefresh=he,gt.useMemoCache=he,gt.useHostTransitionStatus=he,gt.useFormState=he,gt.useActionState=he,gt.useOptimistic=he;var Ol={readContext:je,use:ru,useCallback:function(e,t){return Le().memoizedState=[e,t===void 0?null:t],e},useContext:je,useEffect:Jo,useImperativeHandle:function(e,t,l){l=l!=null?l.concat([e]):null,du(4194308,4,Wo.bind(null,t,e),l)},useLayoutEffect:function(e,t){return du(4194308,4,e,t)},useInsertionEffect:function(e,t){du(4,2,e,t)},useMemo:function(e,t){var l=Le();t=t===void 0?null:t;var a=e();if(jl){Xt(!0);try{e()}finally{Xt(!1)}}return l.memoizedState=[a,t],a},useReducer:function(e,t,l){var a=Le();if(l!==void 0){var n=l(t);if(jl){Xt(!0);try{l(t)}finally{Xt(!1)}}}else n=t;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=dh.bind(null,q,e),[a.memoizedState,e]},useRef:function(e){var t=Le();return e={current:e},t.memoizedState=e},useState:function(e){e=Gi(e);var t=e.queue,l=cr.bind(null,q,t);return t.dispatch=l,[e.memoizedState,l]},useDebugValue:ki,useDeferredValue:function(e,t){var l=Le();return Xi(l,e,t)},useTransition:function(){var e=Gi(!1);return e=lr.bind(null,q,e.queue,!0,!1),Le().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,l){var a=q,n=Le();if(Z){if(l===void 0)throw Error(f(407));l=l()}else{if(l=t(),te===null)throw Error(f(349));X&60||_o(a,t,l)}n.memoizedState=l;var u={value:l,getSnapshot:t};return n.queue=u,Jo(Uo.bind(null,a,u,e),[e]),a.flags|=2048,da(9,Ro.bind(null,a,u,l,t),{destroy:void 0},null),l},useId:function(){var e=Le(),t=te.identifierPrefix;if(Z){var l=Nt,a=Dt;l=(a&~(1<<32-Be(a)-1)).toString(32)+l,t=":"+t+"R"+l,l=su++,0 title"))),Me(u,a,l),u[Ce]=e,Te(u),a=u;break e;case"link":var i=qf("link","href",n).get(a+(l.href||""));if(i){for(var c=0;c<\/script>",e=e.removeChild(e.firstChild);break;case"select":e=typeof a.is=="string"?n.createElement("select",{is:a.is}):n.createElement("select"),a.multiple?e.multiple=!0:a.size&&(e.size=a.size);break;default:e=typeof a.is=="string"?n.createElement(l,{is:a.is}):n.createElement(l)}}e[Ce]=t,e[Ue]=a;e:for(n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.tag!==27&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break e;for(;n.sibling===null;){if(n.return===null||n.return===t)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}t.stateNode=e;e:switch(Me(e,l,a),l){case"button":case"input":case"select":case"textarea":e=!!a.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Ut(t)}}return ue(t),t.flags&=-16777217,null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Ut(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(f(166));if(e=kt.current,Va(t)){if(e=t.stateNode,l=t.memoizedProps,a=null,n=Oe,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[Ce]=t,e=!!(e.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||Nf(e.nodeValue,l)),e||Ml(t)}else e=Ru(e).createTextNode(a),e[Ce]=t,t.stateNode=e}return ue(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=Va(t),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(f(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(f(317));n[Ce]=t}else Qa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ue(t),n=!1}else it!==null&&(zc(it),it=null),n=!0;if(!n)return t.flags&256?(Et(t),t):(Et(t),null)}if(Et(t),t.flags&128)return t.lanes=l,t;if(l=a!==null,e=e!==null&&e.memoizedState!==null,l){a=t.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool);var u=null;a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)}return l!==e&&l&&(t.child.flags|=8192),xu(t,t.updateQueue),ue(t),null;case 4:return Vl(),e===null&&Gc(t.stateNode.containerInfo),ue(t),null;case 10:return jt(t.type),ue(t),null;case 19:if(Se(ve),n=t.memoizedState,n===null)return ue(t),null;if(a=(t.flags&128)!==0,u=n.rendering,u===null)if(a)dn(n,!1);else{if(fe!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(u=uu(e),u!==null){for(t.flags|=128,dn(n,!1),e=u.updateQueue,t.updateQueue=e,xu(t,e),t.subtreeFlags=0,e=l,l=t.child;l!==null;)$r(l,e),l=l.sibling;return ne(ve,ve.current&1|2),t.child}e=e.sibling}n.tail!==null&&dt()>Au&&(t.flags|=128,a=!0,dn(n,!1),t.lanes=4194304)}else{if(!a)if(e=uu(u),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,xu(t,e),dn(n,!0),n.tail===null&&n.tailMode==="hidden"&&!u.alternate&&!Z)return ue(t),null}else 2*dt()-n.renderingStartTime>Au&&l!==536870912&&(t.flags|=128,a=!0,dn(n,!1),t.lanes=4194304);n.isBackwards?(u.sibling=t.child,t.child=u):(e=n.last,e!==null?e.sibling=u:t.child=u,n.last=u)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=dt(),t.sibling=null,e=ve.current,ne(ve,a?e&1|2:e&1),t):(ue(t),null);case 22:case 23:return Et(t),Mi(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?l&536870912&&!(t.flags&128)&&(ue(t),t.subtreeFlags&6&&(t.flags|=8192)):ue(t),l=t.updateQueue,l!==null&&xu(t,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==l&&(t.flags|=2048),e!==null&&Se(Cl),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),jt(be),ue(t),null;case 25:return null}throw Error(f(156,t.tag))}function bh(e,t){switch(Ai(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return jt(be),Vl(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Un(t),null;case 13:if(Et(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(f(340));Qa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(ve),null;case 4:return Vl(),null;case 10:return jt(t.type),null;case 22:case 23:return Et(t),Mi(),e!==null&&Se(Cl),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return jt(be),null;case 25:return null;default:return null}}function tf(e,t){switch(Ai(t),t.tag){case 3:jt(be),Vl();break;case 26:case 27:case 5:Un(t);break;case 4:Vl();break;case 13:Et(t);break;case 19:Se(ve);break;case 10:jt(t.type);break;case 22:case 23:Et(t),Mi(),e!==null&&Se(Cl);break;case 24:jt(be)}}var Sh={getCacheForType:function(e){var t=je(be),l=t.data.get(e);return l===void 0&&(l=e(),t.data.set(e,l)),l}},Th=typeof WeakMap=="function"?WeakMap:Map,ie=0,te=null,w=null,X=0,le=0,ke=null,Ht=!1,pa=!1,Tc=!1,Lt=0,fe=0,ul=0,Bl=0,xc=0,lt=0,ya=0,mn=null,pt=null,Ac=!1,Dc=0,Au=1/0,Du=null,il=null,Nu=!1,Gl=null,hn=0,Nc=0,Ec=null,gn=0,Mc=null;function Xe(){if(ie&2&&X!==0)return X&-X;if(R.T!==null){var e=sa;return e!==0?e:Hc()}return Ts()}function lf(){lt===0&&(lt=!(X&536870912)||Z?ps():536870912);var e=$e.current;return e!==null&&(e.flags|=32),lt}function _e(e,t,l){(e===te&&le===2||e.cancelPendingCommit!==null)&&(va(e,0),qt(e,X,lt,!1)),_a(e,l),(!(ie&2)||e!==te)&&(e===te&&(!(ie&2)&&(Bl|=l),fe===4&&qt(e,X,lt,!1)),yt(e))}function af(e,t,l){if(ie&6)throw Error(f(327));var a=!l&&(t&60)===0&&(t&e.expiredLanes)===0||Oa(e,t),n=a?Dh(e,t):Oc(e,t,!0),u=a;do{if(n===0){pa&&!a&&qt(e,t,0,!1);break}else if(n===6)qt(e,t,0,!Ht);else{if(l=e.current.alternate,u&&!xh(l)){n=Oc(e,t,!1),u=!1;continue}if(n===2){if(u=t,e.errorRecoveryDisabledLanes&u)var i=0;else i=e.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){t=i;e:{var c=e;n=mn;var o=c.current.memoizedState.isDehydrated;if(o&&(va(c,i).flags|=256),i=Oc(c,i,!1),i!==2){if(Tc&&!o){c.errorRecoveryDisabledLanes|=u,Bl|=u,n=4;break e}u=pt,pt=n,u!==null&&zc(u)}n=i}if(u=!1,n!==2)continue}}if(n===1){va(e,0),qt(e,t,0,!0);break}e:{switch(a=e,n){case 0:case 1:throw Error(f(345));case 4:if((t&4194176)===t){qt(a,t,lt,!Ht);break e}break;case 2:pt=null;break;case 3:case 5:break;default:throw Error(f(329))}if(a.finishedWork=l,a.finishedLanes=t,(t&62914560)===t&&(u=Dc+300-dt(),10l?32:l,R.T=null,Gl===null)var u=!1;else{l=Ec,Ec=null;var i=Gl,c=hn;if(Gl=null,hn=0,ie&6)throw Error(f(331));var o=ie;if(ie|=4,Pr(i.current),Zr(i,i.current,c,l),ie=o,pn(0,!1),qe&&typeof qe.onPostCommitFiberRoot=="function")try{qe.onPostCommitFiberRoot(ja,i)}catch{}u=!0}return u}finally{Q.p=n,R.T=a,mf(e,t)}}return!1}function hf(e,t,l){t=Fe(l,t),t=Fi(e.stateNode,t,2),e=el(e,t,2),e!==null&&(_a(e,2),yt(e))}function I(e,t,l){if(e.tag===3)hf(e,e,l);else for(;t!==null;){if(t.tag===3){hf(t,e,l);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(il===null||!il.has(a))){e=Fe(l,e),l=pr(2),a=el(t,l,2),a!==null&&(yr(l,a,t,e),_a(a,2),yt(a));break}}t=t.return}}function _c(e,t,l){var a=e.pingCache;if(a===null){a=e.pingCache=new Th;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));n.has(l)||(Tc=!0,n.add(l),e=Mh.bind(null,e,t,l),t.then(e,e))}function Mh(e,t,l){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,te===e&&(X&l)===l&&(fe===4||fe===3&&(X&62914560)===X&&300>dt()-Dc?!(ie&2)&&va(e,0):xc|=l,ya===X&&(ya=0)),yt(e)}function gf(e,t){t===0&&(t=ys()),e=Kt(e,t),e!==null&&(_a(e,t),yt(e))}function zh(e){var t=e.memoizedState,l=0;t!==null&&(l=t.retryLane),gf(e,l)}function Ch(e,t){var l=0;switch(e.tag){case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(l=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(f(314))}a!==null&&a.delete(t),gf(e,l)}function jh(e,t){return Pu(e,t)}var zu=null,Ta=null,Rc=!1,Cu=!1,Uc=!1,wl=0;function yt(e){e!==Ta&&e.next===null&&(Ta===null?zu=Ta=e:Ta=Ta.next=e),Cu=!0,Rc||(Rc=!0,_h(Oh))}function pn(e,t){if(!Uc&&Cu){Uc=!0;do for(var l=!1,a=zu;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,c=a.pingedLanes;u=(1<<31-Be(42|e)+1)-1,u&=n&~(i&~c),u=u&201326677?u&201326677|1:u?u|2:0}u!==0&&(l=!0,vf(a,u))}else u=X,u=Bn(a,a===te?u:0),!(u&3)||Oa(a,u)||(l=!0,vf(a,u));a=a.next}while(l);Uc=!1}}function Oh(){Cu=Rc=!1;var e=0;wl!==0&&(wh()&&(e=wl),wl=0);for(var t=dt(),l=null,a=zu;a!==null;){var n=a.next,u=pf(a,t);u===0?(a.next=null,l===null?zu=n:l.next=n,n===null&&(Ta=l)):(l=a,(e!==0||u&3)&&(Cu=!0)),a=n}pn(e)}function pf(e,t){for(var l=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0"u"?null:document;function Rf(e,t,l){var a=Aa;if(a&&typeof t=="string"&&t){var n=Ze(t);n='link[rel="'+e+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),_f.has(n)||(_f.add(n),e={rel:e,crossOrigin:l,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),Me(t,"link",e),Te(t),a.head.appendChild(t)))}}function Jh(e){Bt.D(e),Rf("dns-prefetch",e,null)}function Fh(e,t){Bt.C(e,t),Rf("preconnect",e,t)}function Ph(e,t,l){Bt.L(e,t,l);var a=Aa;if(a&&e&&t){var n='link[rel="preload"][as="'+Ze(t)+'"]';t==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+Ze(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+Ze(l.imageSizes)+'"]')):n+='[href="'+Ze(e)+'"]';var u=n;switch(t){case"style":u=Da(e);break;case"script":u=Na(e)}at.has(u)||(e=P({rel:"preload",href:t==="image"&&l&&l.imageSrcSet?void 0:e,as:t},l),at.set(u,e),a.querySelector(n)!==null||t==="style"&&a.querySelector(bn(u))||t==="script"&&a.querySelector(Sn(u))||(t=a.createElement("link"),Me(t,"link",e),Te(t),a.head.appendChild(t)))}}function Wh(e,t){Bt.m(e,t);var l=Aa;if(l&&e){var a=t&&typeof t.as=="string"?t.as:"script",n='link[rel="modulepreload"][as="'+Ze(a)+'"][href="'+Ze(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Na(e)}if(!at.has(u)&&(e=P({rel:"modulepreload",href:e},t),at.set(u,e),l.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(Sn(u)))return}a=l.createElement("link"),Me(a,"link",e),Te(a),l.head.appendChild(a)}}}function $h(e,t,l){Bt.S(e,t,l);var a=Aa;if(a&&e){var n=Zl(a).hoistableStyles,u=Da(e);t=t||"default";var i=n.get(u);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(bn(u)))c.loading=5;else{e=P({rel:"stylesheet",href:e,"data-precedence":t},l),(l=at.get(u))&&Jc(e,l);var o=i=a.createElement("link");Te(o),Me(o,"link",e),o._p=new Promise(function(d,b){o.onload=d,o.onerror=b}),o.addEventListener("load",function(){c.loading|=1}),o.addEventListener("error",function(){c.loading|=2}),c.loading|=4,Hu(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},n.set(u,i)}}}function Ih(e,t){Bt.X(e,t);var l=Aa;if(l&&e){var a=Zl(l).hoistableScripts,n=Na(e),u=a.get(n);u||(u=l.querySelector(Sn(n)),u||(e=P({src:e,async:!0},t),(t=at.get(n))&&Fc(e,t),u=l.createElement("script"),Te(u),Me(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function eg(e,t){Bt.M(e,t);var l=Aa;if(l&&e){var a=Zl(l).hoistableScripts,n=Na(e),u=a.get(n);u||(u=l.querySelector(Sn(n)),u||(e=P({src:e,async:!0,type:"module"},t),(t=at.get(n))&&Fc(e,t),u=l.createElement("script"),Te(u),Me(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Uf(e,t,l,a){var n=(n=kt.current)?Uu(n):null;if(!n)throw Error(f(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(t=Da(l.href),l=Zl(n).hoistableStyles,a=l.get(t),a||(a={type:"style",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=Da(l.href);var u=Zl(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(bn(e)))&&!u._p&&(i.instance=u,i.state.loading=5),at.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},at.set(e,l),u||tg(n,e,l,i.state))),t&&a===null)throw Error(f(528,""));return i}if(t&&a!==null)throw Error(f(529,""));return null;case"script":return t=l.async,l=l.src,typeof l=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Na(l),l=Zl(n).hoistableScripts,a=l.get(t),a||(a={type:"script",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(f(444,e))}}function Da(e){return'href="'+Ze(e)+'"'}function bn(e){return'link[rel="stylesheet"]['+e+"]"}function Hf(e){return P({},e,{"data-precedence":e.precedence,precedence:null})}function tg(e,t,l,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Me(t,"link",l),Te(t),e.head.appendChild(t))}function Na(e){return'[src="'+Ze(e)+'"]'}function Sn(e){return"script[async]"+e}function Lf(e,t,l){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+Ze(l.href)+'"]');if(a)return t.instance=a,Te(a),a;var n=P({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Te(a),Me(a,"style",n),Hu(a,l.precedence,e),t.instance=a;case"stylesheet":n=Da(l.href);var u=e.querySelector(bn(n));if(u)return t.state.loading|=4,t.instance=u,Te(u),u;a=Hf(l),(n=at.get(n))&&Jc(a,n),u=(e.ownerDocument||e).createElement("link"),Te(u);var i=u;return i._p=new Promise(function(c,o){i.onload=c,i.onerror=o}),Me(u,"link",a),t.state.loading|=4,Hu(u,l.precedence,e),t.instance=u;case"script":return u=Na(l.src),(n=e.querySelector(Sn(u)))?(t.instance=n,Te(n),n):(a=l,(n=at.get(u))&&(a=P({},l),Fc(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Te(n),Me(n,"link",a),e.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(f(443,t.type))}else t.type==="stylesheet"&&!(t.state.loading&4)&&(a=t.instance,t.state.loading|=4,Hu(a,l.precedence,e));return t.instance}function Hu(e,t,l){for(var a=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function lg(e,t,l){if(l===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Gf(e){return!(e.type==="stylesheet"&&!(e.state.loading&3))}var Tn=null;function ag(){}function ng(e,t,l){if(Tn===null)throw Error(f(475));var a=Tn;if(t.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&!(t.state.loading&4)){if(t.instance===null){var n=Da(l.href),u=e.querySelector(bn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(a.count++,a=qu.bind(a),e.then(a,a)),t.state.loading|=4,t.instance=u,Te(u);return}u=e.ownerDocument||e,l=Hf(l),(n=at.get(n))&&Jc(l,n),u=u.createElement("link"),Te(u);var i=u;i._p=new Promise(function(c,o){i.onload=c,i.onerror=o}),Me(u,"link",l),t.instance=u}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(t,e),(e=t.state.preload)&&!(t.state.loading&3)&&(a.count++,t=qu.bind(a),e.addEventListener("load",t),e.addEventListener("error",t))}}function ug(){if(Tn===null)throw Error(f(475));var e=Tn;return e.stylesheets&&e.count===0&&Pc(e,e.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(y){console.error(y)}}return m(),as.exports=cp(),as.exports}var op=sp();const rp={visibleTabs:{},setTabVisibility:()=>{},isTabVisible:()=>!1},Sd=D.createContext(rp),fp=({children:m})=>{const y=ze.use.currentTab(),[x,f]=D.useState(()=>({documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}));D.useEffect(()=>{f(j=>({...j,documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}))},[y]);const N=D.useMemo(()=>({visibleTabs:x,setTabVisibility:(j,_)=>{f(F=>({...F,[j]:_}))},isTabVisible:j=>!!x[j]}),[x]);return s.jsx(Sd.Provider,{value:N,children:m})};var Td="AlertDialog",[dp,Iy]=vg(Td,[ld]),Yt=ld(),xd=m=>{const{__scopeAlertDialog:y,...x}=m,f=Yt(y);return s.jsx(Dg,{...f,...x,modal:!0})};xd.displayName=Td;var mp="AlertDialogTrigger",hp=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,N=Yt(x);return s.jsx(Ng,{...N,...f,ref:y})});hp.displayName=mp;var gp="AlertDialogPortal",Ad=m=>{const{__scopeAlertDialog:y,...x}=m,f=Yt(y);return s.jsx(pg,{...f,...x})};Ad.displayName=gp;var pp="AlertDialogOverlay",Dd=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,N=Yt(x);return s.jsx(gg,{...N,...f,ref:y})});Dd.displayName=pp;var Ea="AlertDialogContent",[yp,vp]=dp(Ea),Nd=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,children:f,...N}=m,j=Yt(x),_=D.useRef(null),F=ad(y,_),G=D.useRef(null);return s.jsx(yg,{contentName:Ea,titleName:Ed,docsSlug:"alert-dialog",children:s.jsx(yp,{scope:x,cancelRef:G,children:s.jsxs(bg,{role:"alertdialog",...j,...N,ref:F,onOpenAutoFocus:Sg(N.onOpenAutoFocus,V=>{var ce;V.preventDefault(),(ce=G.current)==null||ce.focus({preventScroll:!0})}),onPointerDownOutside:V=>V.preventDefault(),onInteractOutside:V=>V.preventDefault(),children:[s.jsx(Tg,{children:f}),s.jsx(Sp,{contentRef:_})]})})})});Nd.displayName=Ea;var Ed="AlertDialogTitle",Md=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,N=Yt(x);return s.jsx(xg,{...N,...f,ref:y})});Md.displayName=Ed;var zd="AlertDialogDescription",Cd=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,N=Yt(x);return s.jsx(Ag,{...N,...f,ref:y})});Cd.displayName=zd;var bp="AlertDialogAction",jd=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,N=Yt(x);return s.jsx(nd,{...N,...f,ref:y})});jd.displayName=bp;var Od="AlertDialogCancel",_d=D.forwardRef((m,y)=>{const{__scopeAlertDialog:x,...f}=m,{cancelRef:N}=vp(Od,x),j=Yt(x),_=ad(y,N);return s.jsx(nd,{...j,...f,ref:_})});_d.displayName=Od;var Sp=({contentRef:m})=>{const y=`\`${Ea}\` requires a description for the component to be accessible for screen reader users. You can add a description to the \`${Ea}\` by passing a \`${zd}\` component as a child, which also benefits sighted users by adding visible context to the dialog. Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Ea}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return D.useEffect(()=>{var f;document.getElementById((f=m.current)==null?void 0:f.getAttribute("aria-describedby"))||console.warn(y)},[y,m]),null},Tp=xd,xp=Ad,Rd=Dd,Ud=Nd,Hd=jd,Ld=_d,qd=Md,Bd=Cd;const Ap=Tp,Dp=xp,Gd=D.forwardRef(({className:m,...y},x)=>s.jsx(Rd,{className:Ve("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",m),...y,ref:x}));Gd.displayName=Rd.displayName;const wd=D.forwardRef(({className:m,...y},x)=>s.jsxs(Dp,{children:[s.jsx(Gd,{}),s.jsx(Ud,{ref:x,className:Ve("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",m),...y})]}));wd.displayName=Ud.displayName;const Yd=({className:m,...y})=>s.jsx("div",{className:Ve("flex flex-col space-y-2 text-center sm:text-left",m),...y});Yd.displayName="AlertDialogHeader";const kd=D.forwardRef(({className:m,...y},x)=>s.jsx(qd,{ref:x,className:Ve("text-lg font-semibold",m),...y}));kd.displayName=qd.displayName;const Xd=D.forwardRef(({className:m,...y},x)=>s.jsx(Bd,{ref:x,className:Ve("text-muted-foreground text-sm",m),...y}));Xd.displayName=Bd.displayName;const Np=D.forwardRef(({className:m,...y},x)=>s.jsx(Hd,{ref:x,className:Ve(od(),m),...y}));Np.displayName=Hd.displayName;const Ep=D.forwardRef(({className:m,...y},x)=>s.jsx(Ld,{ref:x,className:Ve(od({variant:"outline"}),"mt-2 sm:mt-0",m),...y}));Ep.displayName=Ld.displayName;const Mp=({open:m,onOpenChange:y})=>{const{t:x}=vt(),f=ze.use.apiKey(),[N,j]=D.useState(""),_=ot.use.message();D.useEffect(()=>{j(f||"")},[f,m]),D.useEffect(()=>{_&&(_.includes(rd)||_.includes(fd))&&y(!0)},[_,y]);const F=D.useCallback(()=>{ze.setState({apiKey:N||null}),y(!1)},[N,y]),G=D.useCallback(V=>{j(V.target.value)},[j]);return s.jsx(Ap,{open:m,onOpenChange:y,children:s.jsxs(wd,{children:[s.jsxs(Yd,{children:[s.jsx(kd,{children:x("apiKeyAlert.title")}),s.jsx(Xd,{children:x("apiKeyAlert.description")})]}),s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs("form",{className:"flex gap-2",onSubmit:V=>V.preventDefault(),children:[s.jsx(jn,{type:"password",value:N,onChange:G,placeholder:x("apiKeyAlert.placeholder"),className:"max-h-full w-full min-w-0",autoComplete:"off"}),s.jsx(dl,{onClick:F,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),_&&s.jsx("div",{className:"text-sm text-red-500",children:_})]})]})})},zp=({status:m})=>{const{t:y}=vt();return m?s.jsxs("div",{className:"min-w-[300px] space-y-2 text-xs",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h4",{className:"font-medium",children:y("graphPanel.statusCard.serverInfo")}),s.jsxs("div",{className:"text-foreground grid grid-cols-[160px_1fr] gap-1",children:[s.jsxs("span",{children:[y("graphPanel.statusCard.workingDirectory"),":"]}),s.jsx("span",{className:"truncate",children:m.working_directory}),s.jsxs("span",{children:[y("graphPanel.statusCard.inputDirectory"),":"]}),s.jsx("span",{className:"truncate",children:m.input_directory}),s.jsxs("span",{children:[y("graphPanel.statusCard.summarySettings"),":"]}),s.jsxs("span",{children:[m.configuration.summary_language," / LLM summary on ",m.configuration.force_llm_summary_on_merge.toString()," fragments"]}),s.jsxs("span",{children:[y("graphPanel.statusCard.threshold"),":"]}),s.jsxs("span",{children:["cosine ",m.configuration.cosine_threshold," / rerank_score ",m.configuration.min_rerank_score," / max_related ",m.configuration.related_chunk_number]}),s.jsxs("span",{children:[y("graphPanel.statusCard.maxParallelInsert"),":"]}),s.jsx("span",{children:m.configuration.max_parallel_insert})]})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx("h4",{className:"font-medium",children:y("graphPanel.statusCard.llmConfig")}),s.jsxs("div",{className:"text-foreground grid grid-cols-[160px_1fr] gap-1",children:[s.jsxs("span",{children:[y("graphPanel.statusCard.llmBindingHost"),":"]}),s.jsx("span",{children:m.configuration.llm_binding_host}),s.jsxs("span",{children:[y("graphPanel.statusCard.llmModel"),":"]}),s.jsxs("span",{children:[m.configuration.llm_binding,": ",m.configuration.llm_model," (#",m.configuration.max_async," Async)"]})]})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx("h4",{className:"font-medium",children:y("graphPanel.statusCard.embeddingConfig")}),s.jsxs("div",{className:"text-foreground grid grid-cols-[160px_1fr] gap-1",children:[s.jsxs("span",{children:[y("graphPanel.statusCard.embeddingBindingHost"),":"]}),s.jsx("span",{children:m.configuration.embedding_binding_host}),s.jsxs("span",{children:[y("graphPanel.statusCard.embeddingModel"),":"]}),s.jsxs("span",{children:[m.configuration.embedding_binding,": ",m.configuration.embedding_model," (#",m.configuration.embedding_func_max_async," Async * ",m.configuration.embedding_batch_num," batches)"]})]})]}),m.configuration.enable_rerank&&s.jsxs("div",{className:"space-y-1",children:[s.jsx("h4",{className:"font-medium",children:y("graphPanel.statusCard.rerankerConfig")}),s.jsxs("div",{className:"text-foreground grid grid-cols-[160px_1fr] gap-1",children:[s.jsxs("span",{children:[y("graphPanel.statusCard.rerankerBindingHost"),":"]}),s.jsx("span",{children:m.configuration.rerank_binding_host||"-"}),s.jsxs("span",{children:[y("graphPanel.statusCard.rerankerModel"),":"]}),s.jsxs("span",{children:[m.configuration.rerank_binding||"-"," : ",m.configuration.rerank_model||"-"]})]})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx("h4",{className:"font-medium",children:y("graphPanel.statusCard.storageConfig")}),s.jsxs("div",{className:"text-foreground grid grid-cols-[160px_1fr] gap-1",children:[s.jsxs("span",{children:[y("graphPanel.statusCard.kvStorage"),":"]}),s.jsx("span",{children:m.configuration.kv_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.docStatusStorage"),":"]}),s.jsx("span",{children:m.configuration.doc_status_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.graphStorage"),":"]}),s.jsx("span",{children:m.configuration.graph_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.vectorStorage"),":"]}),s.jsx("span",{children:m.configuration.vector_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.workspace"),":"]}),s.jsx("span",{children:m.configuration.workspace||"-"}),s.jsxs("span",{children:[y("graphPanel.statusCard.maxGraphNodes"),":"]}),s.jsx("span",{children:m.configuration.max_graph_nodes||"-"}),m.keyed_locks&&s.jsxs(s.Fragment,{children:[s.jsxs("span",{children:[y("graphPanel.statusCard.lockStatus"),":"]}),s.jsxs("span",{children:["mp ",m.keyed_locks.current_status.pending_mp_cleanup,"/",m.keyed_locks.current_status.total_mp_locks," | async ",m.keyed_locks.current_status.pending_async_cleanup,"/",m.keyed_locks.current_status.total_async_locks,"(pid: ",m.keyed_locks.process_id,")"]})]})]})]})]}):s.jsx("div",{className:"text-foreground text-xs",children:y("graphPanel.statusCard.unavailable")})},Cp=({open:m,onOpenChange:y,status:x})=>{const{t:f}=vt();return s.jsx(dd,{open:m,onOpenChange:y,children:s.jsxs(md,{className:"sm:max-w-[700px]",children:[s.jsxs(hd,{children:[s.jsx(gd,{children:f("graphPanel.statusDialog.title")}),s.jsx(Og,{children:f("graphPanel.statusDialog.description")})]}),s.jsx(zp,{status:x})]})})},jp=()=>{const{t:m}=vt(),y=ot.use.health(),x=ot.use.lastCheckTime(),f=ot.use.status(),[N,j]=D.useState(!1),[_,F]=D.useState(!1);return D.useEffect(()=>{j(!0);const G=setTimeout(()=>j(!1),300);return()=>clearTimeout(G)},[x]),s.jsxs("div",{className:"fixed right-4 bottom-4 flex items-center gap-2 opacity-80 select-none",children:[s.jsxs("div",{className:"flex cursor-pointer items-center gap-2",onClick:()=>F(!0),children:[s.jsx("div",{className:Ve("h-3 w-3 rounded-full transition-all duration-300","shadow-[0_0_8px_rgba(0,0,0,0.2)]",y?"bg-green-500":"bg-red-500",N&&"scale-125",N&&y&&"shadow-[0_0_12px_rgba(34,197,94,0.4)]",N&&!y&&"shadow-[0_0_12px_rgba(239,68,68,0.4)]")}),s.jsx("span",{className:"text-muted-foreground text-xs",children:m(y?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),s.jsx(Cp,{open:_,onOpenChange:F,status:f})]})};function Vd({className:m}){const[y,x]=D.useState(!1),{t:f}=vt(),N=ze.use.language(),j=ze.use.setLanguage(),_=ze.use.theme(),F=ze.use.setTheme(),G=D.useCallback(ce=>{j(ce)},[j]),V=D.useCallback(ce=>{F(ce)},[F]);return s.jsxs(_g,{open:y,onOpenChange:x,children:[s.jsx(Rg,{asChild:!0,children:s.jsx(dl,{variant:"ghost",size:"icon",className:Ve("h-9 w-9",m),children:s.jsx(Ug,{className:"h-5 w-5"})})}),s.jsx(Hg,{side:"bottom",align:"end",className:"w-56",children:s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsx("label",{className:"text-sm font-medium",children:f("settings.language")}),s.jsxs(cs,{value:N,onValueChange:G,children:[s.jsx(ss,{children:s.jsx(os,{})}),s.jsxs(rs,{children:[s.jsx(Gt,{value:"en",children:"English"}),s.jsx(Gt,{value:"zh",children:"中文"}),s.jsx(Gt,{value:"fr",children:"Français"}),s.jsx(Gt,{value:"ar",children:"العربية"}),s.jsx(Gt,{value:"zh_TW",children:"繁體中文"})]})]})]}),s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsx("label",{className:"text-sm font-medium",children:f("settings.theme")}),s.jsxs(cs,{value:_,onValueChange:V,children:[s.jsx(ss,{children:s.jsx(os,{})}),s.jsxs(rs,{children:[s.jsx(Gt,{value:"light",children:f("settings.light")}),s.jsx(Gt,{value:"dark",children:f("settings.dark")}),s.jsx(Gt,{value:"system",children:f("settings.system")})]})]})]})]})})]})}const Op=Eg,Qd=D.forwardRef(({className:m,...y},x)=>s.jsx(ud,{ref:x,className:Ve("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",m),...y}));Qd.displayName=ud.displayName;const Kd=D.forwardRef(({className:m,...y},x)=>s.jsx(id,{ref:x,className:Ve("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",m),...y}));Kd.displayName=id.displayName;const Cn=D.forwardRef(({className:m,...y},x)=>s.jsx(cd,{ref:x,className:Ve("ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","data-[state=inactive]:invisible data-[state=active]:visible","h-full w-full",m),forceMount:!0,...y}));Cn.displayName=cd.displayName;function _p(){const{t:m}=vt(),y=ze.use.workspace(),x=ze.use.workspaceList(),f=ze.use.setWorkspace(),N=ze.use.setWorkspaceList(),[j,_]=D.useState(!1),[F,G]=D.useState(""),[V,ce]=D.useState(""),[se,Y]=D.useState(!1);D.useEffect(()=>{oe()},[]);const oe=async()=>{_(!0);try{const K=await Lg();N(K.map(bt=>bt.name)),!y&&K.length>0&&f(K[0].name)}catch(K){console.error("Failed to fetch workspaces:",K)}finally{_(!1)}},ee=async()=>{if(V.trim()){Y(!0);try{await kg(V.trim()),await oe(),f(V.trim()),ce("")}catch(K){console.error("Failed to create workspace:",K),alert(`Failed to create workspace: ${K}`)}finally{Y(!1)}}},C=x.filter(K=>K.toLowerCase().includes(F.toLowerCase()));return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs(cs,{value:y||"",onValueChange:K=>f(K),children:[s.jsx(ss,{className:"w-48",children:s.jsx(os,{placeholder:m(j?"workspace.loading":"workspace.select")})}),s.jsxs(rs,{children:[s.jsx("div",{className:"px-2 py-1 border-b",children:s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx(qg,{className:"size-4 text-muted-foreground"}),s.jsx(jn,{placeholder:m("workspace.search"),value:F,onChange:K=>G(K.target.value),className:"h-8 border-0 focus-visible:ring-0"})]})}),C.length===0?s.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:m("workspace.noWorkspaces")}):C.map(K=>s.jsx(Gt,{value:K,children:K},K))]})]}),s.jsxs(dd,{children:[s.jsx(Bg,{asChild:!0,children:s.jsx(dl,{size:"icon",variant:"outline",children:s.jsx(Gg,{className:"size-4"})})}),s.jsxs(md,{children:[s.jsx(hd,{children:s.jsx(gd,{children:m("workspace.createTitle")})}),s.jsxs("div",{className:"space-y-4",children:[s.jsx(jn,{placeholder:m("workspace.namePlaceholder"),value:V,onChange:K=>ce(K.target.value),onKeyDown:K=>{K.key==="Enter"&&ee()}}),s.jsx("p",{className:"text-sm text-muted-foreground",children:m("workspace.createDescription")})]}),s.jsxs(wg,{children:[s.jsx(Yg,{asChild:!0,children:s.jsx(dl,{variant:"outline",children:m("common.cancel")})}),s.jsx(dl,{onClick:ee,disabled:!V.trim()||se,children:m(se?"common.creating":"common.create")})]})]})]})]})}function Ku({value:m,currentTab:y,children:x}){return s.jsx(Kd,{value:m,className:Ve("cursor-pointer px-2 py-1 transition-all",y===m?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Rp(){const m=ze.use.currentTab(),{t:y}=vt();return s.jsx("div",{className:"flex h-8 self-center",children:s.jsxs(Qd,{className:"h-full gap-2",children:[s.jsx(Ku,{value:"documents",currentTab:m,children:y("header.documents")}),s.jsx(Ku,{value:"knowledge-graph",currentTab:m,children:y("header.knowledgeGraph")}),s.jsx(Ku,{value:"retrieval",currentTab:m,children:y("header.retrieval")}),s.jsx(Ku,{value:"api",currentTab:m,children:y("header.api")})]})})}function Up(){const{t:m}=vt(),{isGuestMode:y,coreVersion:x,apiVersion:f,username:N,webuiTitle:j,webuiDescription:_}=wt(),F=x&&f?`${x}/${f}`:null,G=()=>{yd.navigateToLogin()};return s.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[s.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[s.jsxs("a",{href:pd,className:"flex items-center gap-2",children:[s.jsx(ds,{className:"size-4 text-emerald-400","aria-hidden":"true"}),s.jsx("span",{className:"font-bold md:inline-block",children:is.name})]}),j&&s.jsxs("div",{className:"flex items-center",children:[s.jsx("span",{className:"mx-1 text-xs text-gray-500 dark:text-gray-400",children:"|"}),s.jsx(Xg,{children:s.jsxs(Vg,{children:[s.jsx(Qg,{asChild:!0,children:s.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),_&&s.jsx(Kg,{side:"bottom",children:_})]})})]}),s.jsx("span",{className:"mx-2 text-xs text-gray-300 dark:text-gray-600",children:"|"}),s.jsx(_p,{})]}),s.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[s.jsx(Rp,{}),y&&s.jsx("div",{className:"ml-2 self-center px-2 py-1 text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200 rounded-md",children:m("login.guestMode","Guest Mode")})]}),s.jsx("nav",{className:"w-[200px] flex items-center justify-end",children:s.jsxs("div",{className:"flex items-center gap-2",children:[F&&s.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 mr-1",children:["v",F]}),s.jsx(dl,{variant:"ghost",size:"icon",side:"bottom",tooltip:m("header.projectRepository"),children:s.jsx("a",{href:is.github,target:"_blank",rel:"noopener noreferrer",children:s.jsx(Zg,{className:"size-4","aria-hidden":"true"})})}),s.jsx(Vd,{}),!y&&s.jsx(dl,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${m("header.logout")} (${N})`,onClick:G,children:s.jsx(Jg,{className:"size-4","aria-hidden":"true"})})]})})]})}const Hp=()=>{const m=D.useContext(Sd);if(!m)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return m};function Lp(){const{t:m}=vt(),{isTabVisible:y}=Hp(),x=y("api"),[f,N]=D.useState(!1);return D.useEffect(()=>{f||N(!0)},[f]),s.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:f?s.jsx("iframe",{src:Fg+"/docs",className:"size-full w-full h-full",style:{width:"100%",height:"100%",border:"none"}},"api-docs-iframe"):s.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:s.jsxs("div",{className:"text-center",children:[s.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),s.jsx("p",{children:m("apiSite.loading")})]})})})}function qp(){const m=ot.use.message(),y=ze.use.enableHealthCheck(),x=ze.use.currentTab(),[f,N]=D.useState(!1),[j,_]=D.useState(!0),F=D.useRef(!1),G=D.useRef(!1),V=D.useCallback(Y=>{N(Y),Y||ot.getState().clear()},[]),ce=D.useRef(!0);D.useEffect(()=>{ce.current=!0;const Y=()=>{ce.current=!1};return window.addEventListener("beforeunload",Y),()=>{ce.current=!1,window.removeEventListener("beforeunload",Y)}},[]),D.useEffect(()=>{const Y=async()=>{try{ce.current&&await ot.getState().check()}catch(oe){console.error("Health check error:",oe)}};if(ot.getState().setHealthCheckFunction(Y),!y||f){ot.getState().clearHealthCheckTimer();return}return G.current||(G.current=!0),ot.getState().resetHealthCheckTimer(),()=>{ot.getState().clearHealthCheckTimer()}},[y,f]),D.useEffect(()=>{(async()=>{if(F.current)return;if(F.current=!0,sessionStorage.getItem("VERSION_CHECKED_FROM_LOGIN")==="true"){_(!1);return}try{_(!0);const ee=localStorage.getItem("LIGHTRAG-API-TOKEN"),C=await bd();if(!C.auth_configured&&C.access_token)wt.getState().login(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null);else if(ee&&(C.core_version||C.api_version||C.webui_title||C.webui_description)){const K=C.auth_mode==="disabled"||wt.getState().isGuestMode;wt.getState().login(ee,K,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null)}sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true")}catch(ee){console.error("Failed to get version info:",ee)}finally{_(!1)}})()},[]);const se=D.useCallback(Y=>ze.getState().setCurrentTab(Y),[]);return D.useEffect(()=>{m&&(m.includes(rd)||m.includes(fd))&&N(!0)},[m]),s.jsx(vd,{children:s.jsx(fp,{children:j?s.jsxs("div",{className:"flex h-screen w-screen flex-col",children:[s.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[s.jsx("div",{className:"min-w-[200px] w-auto flex items-center",children:s.jsxs("a",{href:pd,className:"flex items-center gap-2",children:[s.jsx(ds,{className:"size-4 text-emerald-400","aria-hidden":"true"}),s.jsx("span",{className:"font-bold md:inline-block",children:is.name})]})}),s.jsx("div",{className:"flex h-10 flex-1 items-center justify-center"}),s.jsx("nav",{className:"w-[200px] flex items-center justify-end"})]}),s.jsx("div",{className:"flex flex-1 items-center justify-center",children:s.jsxs("div",{className:"text-center",children:[s.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),s.jsx("p",{children:"Initializing..."})]})})]}):s.jsxs("main",{className:"flex h-screen w-screen overflow-hidden",children:[s.jsxs(Op,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:se,children:[s.jsx(Up,{}),s.jsxs("div",{className:"relative grow",children:[s.jsx(Cn,{value:"documents",className:"absolute top-0 right-0 bottom-0 left-0 overflow-auto",children:s.jsx(ap,{})}),s.jsx(Cn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx(Pg,{})}),s.jsx(Cn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx(np,{})}),s.jsx(Cn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx(Lp,{})})]})]}),y&&s.jsx(jp,{}),s.jsx(Mp,{open:f,onOpenChange:V})]})})})}const Bp=()=>{const m=sd(),{login:y,isAuthenticated:x}=wt(),{t:f}=vt(),[N,j]=D.useState(!1),[_,F]=D.useState(""),[G,V]=D.useState(""),[ce,se]=D.useState(!0),Y=D.useRef(!1);if(D.useEffect(()=>{console.log("LoginPage mounted")},[]),D.useEffect(()=>((async()=>{if(!Y.current){Y.current=!0;try{if(x){m("/");return}const C=await bd();if((C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),!C.auth_configured&&C.access_token){y(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),C.message&&Mn.info(C.message),m("/");return}se(!1)}catch(C){console.error("Failed to check auth configuration:",C),se(!1)}}})(),()=>{}),[x,y,m]),ce)return null;const oe=async ee=>{if(ee.preventDefault(),!_||!G){Mn.error(f("login.errorEmptyFields"));return}try{j(!0);const C=await ep(_,G);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===_?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),ze.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",_);const Re=C.auth_mode==="disabled";y(C.access_token,Re,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),(C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),Re?Mn.info(C.message||f("login.authDisabled","Authentication is disabled. Using guest access.")):Mn.success(f("login.successMessage")),m("/")}catch(C){console.error("Login failed...",C),Mn.error(f("login.errorInvalidCredentials")),wt.getState().logout(),localStorage.removeItem("LIGHTRAG-API-TOKEN")}finally{j(!1)}};return s.jsxs("div",{className:"flex h-screen w-screen items-center justify-center bg-gradient-to-br from-emerald-50 to-teal-100 dark:from-gray-900 dark:to-gray-800",children:[s.jsx("div",{className:"absolute top-4 right-4 flex items-center gap-2",children:s.jsx(Vd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),s.jsxs(Wg,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[s.jsx($g,{className:"flex items-center justify-center space-y-2 pb-8 pt-6",children:s.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("img",{src:"logo.svg",alt:"RailSeek Logo",className:"h-12 w-12"}),s.jsx(ds,{className:"size-10 text-emerald-400","aria-hidden":"true"})]}),s.jsxs("div",{className:"text-center space-y-2",children:[s.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"RailSeek"}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"Search Anything Railway"})]})]})}),s.jsx(Ig,{className:"px-8 pb-8",children:s.jsxs("form",{onSubmit:oe,className:"space-y-6",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx("label",{htmlFor:"username-input",className:"text-sm font-medium w-16 shrink-0",children:f("login.username")}),s.jsx(jn,{id:"username-input",placeholder:f("login.usernamePlaceholder"),value:_,onChange:ee=>F(ee.target.value),required:!0,className:"h-11 flex-1"})]}),s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx("label",{htmlFor:"password-input",className:"text-sm font-medium w-16 shrink-0",children:f("login.password")}),s.jsx(jn,{id:"password-input",type:"password",placeholder:f("login.passwordPlaceholder"),value:G,onChange:ee=>V(ee.target.value),required:!0,className:"h-11 flex-1"})]}),s.jsx(dl,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:f(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Gp=()=>{const[m,y]=D.useState(!0),{isAuthenticated:x}=wt(),f=sd();return D.useEffect(()=>{yd.setNavigate(f)},[f]),D.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){y(!1);return}j||wt.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||wt.getState().logout()}finally{y(!1)}})(),()=>{}),[x]),D.useEffect(()=>{!m&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),f("/login"))},[m,x,f]),m?null:s.jsxs(jg,{children:[s.jsx(Wf,{path:"/login",element:s.jsx(Bp,{})}),s.jsx(Wf,{path:"/*",element:x?s.jsx(qp,{}):null})]})},wp=()=>s.jsx(vd,{children:s.jsxs(Cg,{children:[s.jsx(Gp,{}),s.jsx(tp,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),Yp={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},kp={documents:"Documents",knowledgeGraph:"Knowledge Graph",retrieval:"Retrieval",api:"API",projectRepository:"Project Repository",logout:"Logout",themeToggle:{switchToLight:"Switch to light theme",switchToDark:"Switch to dark theme"}},Xp={loading:"Loading...",select:"Select workspace",search:"Search workspaces...",noWorkspaces:"No workspaces",createTitle:"Create Workspace",namePlaceholder:"Workspace name",createDescription:"Create a new isolated workspace for your documents and indexes.",create:"Create",creating:"Creating..."},Vp={description:"Please enter your account and password to log in to the system",username:"Username",usernamePlaceholder:"Please input a username",password:"Password",passwordPlaceholder:"Please input a password",loginButton:"Login",loggingIn:"Logging in...",successMessage:"Login succeeded",errorEmptyFields:"Please enter your username and password",errorInvalidCredentials:"Login failed, please check username and password",authDisabled:"Authentication is disabled. Using login free mode.",guestMode:"Login Free"},Qp={cancel:"Cancel",save:"Save",saving:"Saving...",saveFailed:"Save failed"},Kp={clearDocuments:{button:"Clear",tooltip:"Clear documents",title:"Clear Documents",description:"This will remove all documents from the system",warning:"WARNING: This action will permanently delete all documents and cannot be undone!",confirm:"Do you really want to clear all documents?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",clearCache:"Clear LLM cache",confirmButton:"YES",clearing:"Clearing...",timeout:"Clear operation timed out, please try again",success:"Documents cleared successfully",cacheCleared:"Cache cleared successfully",cacheClearFailed:`Failed to clear cache: {{error}}`,failed:`Clear Documents Failed: {{message}}`,error:`Clear Documents Failed: {{error}}`},deleteDocuments:{button:"Delete",tooltip:"Delete selected documents",title:"Delete Documents",description:"This will permanently delete the selected documents from the system",warning:"WARNING: This action will permanently delete the selected documents and cannot be undone!",confirm:"Do you really want to delete {{count}} selected document(s)?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",confirmButton:"YES",deleteFileOption:"Also delete uploaded files",deleteFileTooltip:"Check this option to also delete the corresponding uploaded files on the server",success:"Document deletion pipeline started successfully",failed:`Delete Documents Failed: {{message}}`,error:`Delete Documents Failed: {{error}}`,busy:"Pipeline is busy, please try again later",notAllowed:"No permission to perform this operation"},selectDocuments:{selectCurrentPage:"Select Current Page ({{count}})",deselectAll:"Deselect All ({{count}})"},uploadDocuments:{button:"Upload",tooltip:"Upload documents",title:"Upload Documents",description:"Drag and drop your documents here or click to browse.",single:{uploading:"Uploading {{name}}: {{percent}}%",success:`Upload Success: {{name}} uploaded successfully`,failed:`Upload Failed: {{name}} {{message}}`,error:`Upload Failed: {{name}} {{error}}`},batch:{uploading:"Uploading files...",success:"Files uploaded successfully",error:"Some files failed to upload"},generalError:`Upload Failed {{error}}`,fileTypes:"Supported types: TXT, MD, DOCX, PDF, PPTX, XLSX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",fileUploader:{singleFileLimit:"Cannot upload more than 1 file at a time",maxFilesLimit:"Cannot upload more than {{count}} files",fileRejected:"File {{name}} was rejected",unsupportedType:"Unsupported file type",fileTooLarge:"File too large, maximum size is {{maxSize}}",dropHere:"Drop the files here",dragAndDrop:"Drag and drop files here, or click to select files",removeFile:"Remove file",uploadDescription:"You can upload {{isMultiple ? 'multiple' : count}} files (up to {{maxSize}} each)",duplicateFile:"File name already exists in server cache"}},documentManager:{title:"Document Management",scanButton:"Scan",scanTooltip:"Scan documents in input folder",refreshTooltip:"Reset document list",pipelineStatusButton:"Pipeline Status",pipelineStatusTooltip:"View pipeline status",uploadedTitle:"Uploaded Documents",uploadedDescription:"List of uploaded documents and their statuses.",emptyTitle:"No Documents",emptyDescription:"There are no uploaded documents yet.",columns:{id:"ID",fileName:"File Name",summary:"Summary",status:"Status",length:"Length",chunks:"Chunks",created:"Created",updated:"Updated",metadata:"Metadata",select:"Select"},status:{all:"All",completed:"Completed",processing:"Processing",pending:"Pending",failed:"Failed"},errors:{loadFailed:`Failed to load documents {{error}}`,scanFailed:`Failed to scan documents {{error}}`,scanProgressFailed:`Failed to get scan progress {{error}}`},fileNameLabel:"File Name",showButton:"Show",hideButton:"Hide",showFileNameTooltip:"Show file name",hideFileNameTooltip:"Hide file name"},pipelineStatus:{title:"Pipeline Status",busy:"Pipeline Busy",requestPending:"Request Pending",jobName:"Job Name",startTime:"Start Time",progress:"Progress",unit:"batch",latestMessage:"Latest Message",historyMessages:"History Messages",errors:{fetchFailed:`Failed to get pipeline status {{error}}`}}},Zp={dataIsTruncated:"Graph data is truncated to Max Nodes",statusDialog:{title:"LightRAG Server Settings",description:"View current system status and connection information"},legend:"Legend",nodeTypes:{person:"Person",category:"Category",geo:"Geographic",location:"Location",organization:"Organization",event:"Event",equipment:"Equipment",weapon:"Weapon",animal:"Animal",unknown:"Unknown",object:"Object",group:"Group",technology:"Technology",product:"Product",document:"Document",content:"Content",data:"Data",artifact:"Artifact",concept:"Concept",naturalobject:"Natural Object",method:"Method",other:"Other"},sideBar:{settings:{settings:"Settings",healthCheck:"Health Check",showPropertyPanel:"Show Property Panel",showSearchBar:"Show Search Bar",showNodeLabel:"Show Node Label",nodeDraggable:"Node Draggable",showEdgeLabel:"Show Edge Label",hideUnselectedEdges:"Hide Unselected Edges",edgeEvents:"Edge Events",maxQueryDepth:"Max Query Depth",maxNodes:"Max Nodes",maxLayoutIterations:"Max Layout Iterations",resetToDefault:"Reset to default",edgeSizeRange:"Edge Size Range",depth:"D",max:"Max",degree:"Degree",apiKey:"API Key",enterYourAPIkey:"Enter your API key",save:"Save",refreshLayout:"Refresh Layout"},zoomControl:{zoomIn:"Zoom In",zoomOut:"Zoom Out",resetZoom:"Reset Zoom",rotateCamera:"Clockwise Rotate",rotateCameraCounterClockwise:"Counter-Clockwise Rotate"},layoutsControl:{startAnimation:"Continue layout animation",stopAnimation:"Stop layout animation",layoutGraph:"Layout Graph",layouts:{Circular:"Circular",Circlepack:"Circlepack",Random:"Random",Noverlaps:"Noverlaps","Force Directed":"Force Directed","Force Atlas":"Force Atlas"}},fullScreenControl:{fullScreen:"Full Screen",windowed:"Windowed"},legendControl:{toggleLegend:"Toggle Legend"}},statusIndicator:{connected:"Connected",disconnected:"Disconnected"},statusCard:{unavailable:"Status information unavailable",serverInfo:"Server Info",workingDirectory:"Working Directory",inputDirectory:"Input Directory",maxParallelInsert:"Concurrent Doc Processing",summarySettings:"Summary Settings",llmConfig:"LLM Configuration",llmBinding:"LLM Binding",llmBindingHost:"LLM Endpoint",llmModel:"LLM Model",embeddingConfig:"Embedding Configuration",embeddingBinding:"Embedding Binding",embeddingBindingHost:"Embedding Endpoint",embeddingModel:"Embedding Model",storageConfig:"Storage Configuration",kvStorage:"KV Storage",docStatusStorage:"Doc Status Storage",graphStorage:"Graph Storage",vectorStorage:"Vector Storage",workspace:"Workspace",maxGraphNodes:"Max Graph Nodes",rerankerConfig:"Reranker Configuration",rerankerBindingHost:"Reranker Endpoint",rerankerModel:"Reranker Model",lockStatus:"Lock Status",threshold:"Threshold"},propertiesView:{editProperty:"Edit {{property}}",editPropertyDescription:"Edit the property value in the text area below.",errors:{duplicateName:"Node name already exists",updateFailed:"Failed to update node",tryAgainLater:"Please try again later"},success:{entityUpdated:"Node updated successfully",relationUpdated:"Relation updated successfully"},node:{title:"Node",id:"ID",labels:"Labels",degree:"Degree",properties:"Properties",relationships:"Relations(within subgraph)",expandNode:"Expand Node",pruneNode:"Prune Node",deleteAllNodesError:"Refuse to delete all nodes in the graph",nodesRemoved:"{{count}} nodes removed, including orphan nodes",noNewNodes:"No expandable nodes found",propertyNames:{description:"Description",entity_id:"Name",entity_type:"Type",source_id:"SrcID",Neighbour:"Neigh",file_path:"Source",keywords:"Keys",weight:"Weight"}},edge:{title:"Relationship",id:"ID",type:"Type",source:"Source",target:"Target",properties:"Properties"}},search:{placeholder:"Search nodes...",message:"And {count} others"},graphLabels:{selectTooltip:"Select query label",noLabels:"No labels found",label:"Label",placeholder:"Search labels...",andOthers:"And {count} others",refreshTooltip:"Reload data(After file added)"},emptyGraph:"Empty(Try Reload Again)"},Jp={chatMessage:{copyTooltip:"Copy to clipboard",copyError:"Failed to copy text to clipboard",thinking:"Thinking...",thinkingTime:"Thinking time {{time}}s",thinkingInProgress:"Thinking in progress..."},retrieval:{startPrompt:"Start a retrieval by typing your query below",clear:"Clear",send:"Send",placeholder:"Enter your query (Support prefix: /)",error:"Error: Failed to get response",queryModeError:"Only supports the following query modes: {{modes}}",queryModePrefixInvalid:"Invalid query mode prefix. Use: / [space] your query"},querySettings:{parametersTitle:"Parameters",parametersDescription:"Configure your query parameters",queryMode:"Query Mode",queryModeTooltip:`Select the retrieval strategy: • Naive: Basic search without advanced techniques • Local: Context-dependent information retrieval • Global: Utilizes global knowledge base • Hybrid: Combines local and global retrieval • Mix: Integrates knowledge graph with vector retrieval • Bypass: Passes query directly to LLM without retrieval`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"Response Format",responseFormatTooltip:`Defines the response format. Examples: • Multiple Paragraphs • Single Paragraph • Bullet Points`,responseFormatOptions:{multipleParagraphs:"Multiple Paragraphs",singleParagraph:"Single Paragraph",bulletPoints:"Bullet Points"},topK:"KG Top K",topKTooltip:"Number of entities and relations to retrieve. Applicable for non-naive modes.",topKPlaceholder:"Enter top_k value",chunkTopK:"Chunk Top K",chunkTopKTooltip:"Number of text chunks to retrieve, applicable for all modes.",chunkTopKPlaceholder:"Enter chunk_top_k value",maxEntityTokens:"Max Entity Tokens",maxEntityTokensTooltip:"Maximum number of tokens allocated for entity context in unified token control system",maxRelationTokens:"Max Relation Tokens",maxRelationTokensTooltip:"Maximum number of tokens allocated for relationship context in unified token control system",maxTotalTokens:"Max Total Tokens",maxTotalTokensTooltip:"Maximum total tokens budget for the entire query context (entities + relations + chunks + system prompt)",historyTurns:"History Turns",historyTurnsTooltip:"Number of complete conversation turns (user-assistant pairs) to consider in the response context",historyTurnsPlaceholder:"Number of history turns",onlyNeedContext:"Only Need Context",onlyNeedContextTooltip:"If True, only returns the retrieved context without generating a response",onlyNeedPrompt:"Only Need Prompt",onlyNeedPromptTooltip:"If True, only returns the generated prompt without producing a response",streamResponse:"Stream Response",streamResponseTooltip:"If True, enables streaming output for real-time responses",userPrompt:"User Prompt",userPromptTooltip:"Provide additional response requirements to the LLM (unrelated to query content, only for output processing).",userPromptPlaceholder:"Enter custom prompt (optional)",enableRerank:"Enable Rerank",enableRerankTooltip:"Enable reranking for retrieved text chunks. If True but no rerank model is configured, a warning will be issued. Default is True."}},Fp={loading:"Loading API Documentation..."},Pp={title:"API Key is required",description:"Please enter your API key to access the service",placeholder:"Enter your API key",save:"Save"},Wp={showing:"Showing {{start}} to {{end}} of {{total}} entries",page:"Page",pageSize:"Page Size",firstPage:"First Page",prevPage:"Previous Page",nextPage:"Next Page",lastPage:"Last Page"},$p={settings:Yp,header:kp,workspace:Xp,login:Vp,common:Qp,documentPanel:Kp,graphPanel:Zp,retrievePanel:Jp,apiSite:Fp,apiKeyAlert:Pp,pagination:Wp},Ip={language:"语言",theme:"主题",light:"浅色",dark:"深色",system:"系统"},ey={documents:"文档",knowledgeGraph:"知识图谱",retrieval:"检索",api:"API",projectRepository:"项目仓库",logout:"退出登录",themeToggle:{switchToLight:"切换到浅色主题",switchToDark:"切换到深色主题"}},ty={description:"请输入您的账号和密码登录系统",username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",successMessage:"登录成功",errorEmptyFields:"请输入您的用户名和密码",errorInvalidCredentials:"登录失败,请检查用户名和密码",authDisabled:"认证已禁用,使用无需登陆模式。",guestMode:"无需登陆"},ly={cancel:"取消",save:"保存",saving:"保存中...",saveFailed:"保存失败"},ay={clearDocuments:{button:"清空",tooltip:"清空文档",title:"清空文档",description:"此操作将从系统中移除所有文档",warning:"警告:此操作将永久删除所有文档,无法恢复!",confirm:"确定要清空所有文档吗?",confirmPrompt:"请输入 yes 确认操作",confirmPlaceholder:"输入 yes 确认",clearCache:"清空LLM缓存",confirmButton:"确定",clearing:"正在清除...",timeout:"清除操作超时,请重试",success:"文档清空成功",cacheCleared:"缓存清空成功",cacheClearFailed:`清空缓存失败: {{error}}`,failed:`清空文档失败: {{message}}`,error:`清空文档失败: {{error}}`},deleteDocuments:{button:"删除",tooltip:"删除选中的文档",title:"删除文档",description:"此操作将永久删除选中的文档",warning:"警告:此操作将永久删除选中的文档,无法恢复!",confirm:"确定要删除 {{count}} 个选中的文档吗?",confirmPrompt:"请输入 yes 确认操作",confirmPlaceholder:"输入 yes 确认",confirmButton:"确定",deleteFileOption:"同时删除上传文件",deleteFileTooltip:"选中此选项将同时删除服务器上对应的上传文件",success:"文档删除流水线启动成功",failed:`删除文档失败: {{message}}`,error:`删除文档失败: {{error}}`,busy:"流水线被占用,请稍后再试",notAllowed:"没有操作权限"},selectDocuments:{selectCurrentPage:"全选当前页 ({{count}})",deselectAll:"取消全选 ({{count}})"},uploadDocuments:{button:"上传",tooltip:"上传文档",title:"上传文档",description:"拖拽文件到此处或点击浏览",single:{uploading:"正在上传 {{name}}:{{percent}}%",success:`上传成功: {{name}} 上传完成`,failed:`上传失败: {{name}} {{message}}`,error:`上传失败: {{name}} {{error}}`},batch:{uploading:"正在上传文件...",success:"文件上传完成",error:"部分文件上传失败"},generalError:`上传失败 {{error}}`,fileTypes:"支持的文件类型:TXT, MD, DOCX, PDF, PPTX, XLSX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",fileUploader:{singleFileLimit:"一次只能上传一个文件",maxFilesLimit:"最多只能上传 {{count}} 个文件",fileRejected:"文件 {{name}} 被拒绝",unsupportedType:"不支持的文件类型",fileTooLarge:"文件过大,最大允许 {{maxSize}}",dropHere:"将文件拖放到此处",dragAndDrop:"拖放文件到此处,或点击选择文件",removeFile:"移除文件",uploadDescription:"您可以上传{{isMultiple ? '多个' : count}}个文件(每个文件最大{{maxSize}})",duplicateFile:"文件名与服务器上的缓存重复"}},documentManager:{title:"文档管理",scanButton:"扫描",scanTooltip:"扫描输入目录中的文档",refreshTooltip:"复位文档清单",pipelineStatusButton:"流水线状态",pipelineStatusTooltip:"查看流水线状态",uploadedTitle:"已上传文档",uploadedDescription:"已上传文档列表及其状态",emptyTitle:"无文档",emptyDescription:"还没有上传任何文档",columns:{id:"ID",fileName:"文件名",summary:"摘要",status:"状态",length:"长度",chunks:"分块",created:"创建时间",updated:"更新时间",metadata:"元数据",select:"选择"},status:{all:"全部",completed:"已完成",processing:"处理中",pending:"等待中",failed:"失败"},errors:{loadFailed:`加载文档失败 {{error}}`,scanFailed:`扫描文档失败 {{error}}`,scanProgressFailed:`获取扫描进度失败 {{error}}`},fileNameLabel:"文件名",showButton:"显示",hideButton:"隐藏",showFileNameTooltip:"显示文件名",hideFileNameTooltip:"隐藏文件名"},pipelineStatus:{title:"流水线状态",busy:"流水线忙碌",requestPending:"待处理请求",jobName:"作业名称",startTime:"开始时间",progress:"进度",unit:"批",latestMessage:"最新消息",historyMessages:"历史消息",errors:{fetchFailed:`获取流水线状态失败 {{error}}`}}},ny={dataIsTruncated:"图数据已截断至最大返回节点数",statusDialog:{title:"LightRAG 服务器设置",description:"查看当前系统状态和连接信息"},legend:"图例",nodeTypes:{person:"人物角色",category:"分类",geo:"地理名称",location:"位置",organization:"组织机构",event:"事件",equipment:"装备",weapon:"武器",animal:"动物",unknown:"未知",object:"物品",group:"群组",technology:"技术",product:"产品",document:"文档",content:"内容",data:"数据",artifact:"人工制品",concept:"概念",naturalobject:"自然对象",method:"方法",other:"其他"},sideBar:{settings:{settings:"设置",healthCheck:"健康检查",showPropertyPanel:"显示属性面板",showSearchBar:"显示搜索栏",showNodeLabel:"显示节点标签",nodeDraggable:"节点可拖动",showEdgeLabel:"显示边标签",hideUnselectedEdges:"隐藏未选中的边",edgeEvents:"边事件",maxQueryDepth:"最大查询深度",maxNodes:"最大返回节点数",maxLayoutIterations:"最大布局迭代次数",resetToDefault:"重置为默认值",edgeSizeRange:"边粗细范围",depth:"深",max:"Max",degree:"邻边",apiKey:"API密钥",enterYourAPIkey:"输入您的API密钥",save:"保存",refreshLayout:"刷新布局"},zoomControl:{zoomIn:"放大",zoomOut:"缩小",resetZoom:"重置缩放",rotateCamera:"顺时针旋转图形",rotateCameraCounterClockwise:"逆时针旋转图形"},layoutsControl:{startAnimation:"继续布局动画",stopAnimation:"停止布局动画",layoutGraph:"图布局",layouts:{Circular:"环形",Circlepack:"圆形打包",Random:"随机",Noverlaps:"无重叠","Force Directed":"力导向","Force Atlas":"力地图"}},fullScreenControl:{fullScreen:"全屏",windowed:"窗口"},legendControl:{toggleLegend:"切换图例显示"}},statusIndicator:{connected:"已连接",disconnected:"未连接"},statusCard:{unavailable:"状态信息不可用",serverInfo:"服务器信息",workingDirectory:"工作目录",inputDirectory:"输入目录",maxParallelInsert:"并行处理文档",summarySettings:"摘要设置",llmConfig:"LLM配置",llmBinding:"LLM绑定",llmBindingHost:"LLM端点",llmModel:"LLM模型",embeddingConfig:"嵌入配置",embeddingBinding:"嵌入绑定",embeddingBindingHost:"嵌入端点",embeddingModel:"嵌入模型",storageConfig:"存储配置",kvStorage:"KV存储",docStatusStorage:"文档状态存储",graphStorage:"图存储",vectorStorage:"向量存储",workspace:"工作空间",maxGraphNodes:"最大图节点数",rerankerConfig:"重排序配置",rerankerBindingHost:"重排序端点",rerankerModel:"重排序模型",lockStatus:"锁状态",threshold:"阈值"},propertiesView:{editProperty:"编辑{{property}}",editPropertyDescription:"在下方文本区域编辑属性值。",errors:{duplicateName:"节点名称已存在",updateFailed:"更新节点失败",tryAgainLater:"请稍后重试"},success:{entityUpdated:"节点更新成功",relationUpdated:"关系更新成功"},node:{title:"节点",id:"ID",labels:"标签",degree:"度数",properties:"属性",relationships:"关系(子图内)",expandNode:"扩展节点",pruneNode:"修剪节点",deleteAllNodesError:"拒绝删除图中的所有节点",nodesRemoved:"已删除 {{count}} 个节点,包括孤立节点",noNewNodes:"没有发现可以扩展的节点",propertyNames:{description:"描述",entity_id:"名称",entity_type:"类型",source_id:"信源ID",Neighbour:"邻接",file_path:"信源",keywords:"Keys",weight:"权重"}},edge:{title:"关系",id:"ID",type:"类型",source:"源节点",target:"目标节点",properties:"属性"}},search:{placeholder:"搜索节点...",message:"还有 {count} 个"},graphLabels:{selectTooltip:"选择查询标签",noLabels:"未找到标签",label:"标签",placeholder:"搜索标签...",andOthers:"还有 {count} 个",refreshTooltip:"重载图形数据(添加文件后需重载)"},emptyGraph:"无数据(请重载图形数据)"},uy={chatMessage:{copyTooltip:"复制到剪贴板",copyError:"复制文本到剪贴板失败",thinking:"正在思考...",thinkingTime:"思考用时 {{time}} 秒",thinkingInProgress:"思考进行中..."},retrieval:{startPrompt:"输入查询开始检索",clear:"清空",send:"发送",placeholder:"输入查询内容 (支持模式前缀: /)",error:"错误:获取响应失败",queryModeError:"仅支持以下查询模式:{{modes}}",queryModePrefixInvalid:"无效的查询模式前缀。请使用:/<模式> [空格] 查询内容"},querySettings:{parametersTitle:"参数",parametersDescription:"配置查询参数",queryMode:"查询模式",queryModeTooltip:`选择检索策略: • Naive:基础搜索,无高级技术 • Local:上下文相关信息检索 • Global:利用全局知识库 • Hybrid:结合本地和全局检索 • Mix:整合知识图谱和向量检索 • Bypass:直接传递查询到LLM,不进行检索`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"响应格式",responseFormatTooltip:`定义响应格式。例如: • 多段落 • 单段落 • 要点`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"单段落",bulletPoints:"要点"},topK:"KG Top K",topKTooltip:"实体关系检索数量, 适用于非naive模式",topKPlaceholder:"输入top_k值",chunkTopK:"文本块 Top K",chunkTopKTooltip:"文本块检索数量, 适用于所有模式",chunkTopKPlaceholder:"输入文本块chunk_top_k值",maxEntityTokens:"实体令牌数上限",maxEntityTokensTooltip:"统一令牌控制系统中分配给实体上下文的最大令牌数",maxRelationTokens:"关系令牌数上限",maxRelationTokensTooltip:"统一令牌控制系统中分配给关系上下文的最大令牌数",maxTotalTokens:"总令牌数上限",maxTotalTokensTooltip:"整个查询上下文的最大总令牌预算(实体+关系+文档块+系统提示)",historyTurns:"历史轮次",historyTurnsTooltip:"响应上下文中考虑的完整对话轮次(用户-助手对)数量",historyTurnsPlaceholder:"历史轮次数",onlyNeedContext:"仅需上下文",onlyNeedContextTooltip:"如果为True,仅返回检索到的上下文而不生成响应",onlyNeedPrompt:"仅需提示",onlyNeedPromptTooltip:"如果为True,仅返回生成的提示而不产生响应",streamResponse:"流式响应",streamResponseTooltip:"如果为True,启用实时流式输出响应",userPrompt:"用户提示词",userPromptTooltip:"向LLM提供额外的响应要求(与查询内容无关,仅用于处理输出)。",userPromptPlaceholder:"输入自定义提示词(可选)",enableRerank:"启用重排",enableRerankTooltip:"为检索到的文本块启用重排。如果为True但未配置重排模型,将发出警告。默认为True。"}},iy={loading:"正在加载 API 文档..."},cy={title:"需要 API Key",description:"请输入您的 API Key 以访问服务",placeholder:"请输入 API Key",save:"保存"},sy={showing:"显示第 {{start}} 到 {{end}} 条,共 {{total}} 条记录",page:"页",pageSize:"每页显示",firstPage:"首页",prevPage:"上一页",nextPage:"下一页",lastPage:"末页"},oy={settings:Ip,header:ey,login:ty,common:ly,documentPanel:ay,graphPanel:ny,retrievePanel:uy,apiSite:iy,apiKeyAlert:cy,pagination:sy},ry={language:"Langue",theme:"Thème",light:"Clair",dark:"Sombre",system:"Système"},fy={documents:"Documents",knowledgeGraph:"Graphe de connaissances",retrieval:"Récupération",api:"API",projectRepository:"Référentiel du projet",logout:"Déconnexion",themeToggle:{switchToLight:"Passer au thème clair",switchToDark:"Passer au thème sombre"}},dy={description:"Veuillez entrer votre compte et mot de passe pour vous connecter au système",username:"Nom d'utilisateur",usernamePlaceholder:"Veuillez saisir un nom d'utilisateur",password:"Mot de passe",passwordPlaceholder:"Veuillez saisir un mot de passe",loginButton:"Connexion",loggingIn:"Connexion en cours...",successMessage:"Connexion réussie",errorEmptyFields:"Veuillez saisir votre nom d'utilisateur et mot de passe",errorInvalidCredentials:"Échec de la connexion, veuillez vérifier le nom d'utilisateur et le mot de passe",authDisabled:"L'authentification est désactivée. Utilisation du mode sans connexion.",guestMode:"Mode sans connexion"},my={cancel:"Annuler",save:"Sauvegarder",saving:"Sauvegarde en cours...",saveFailed:"Échec de la sauvegarde"},hy={clearDocuments:{button:"Effacer",tooltip:"Effacer les documents",title:"Effacer les documents",description:"Cette action supprimera tous les documents du système",warning:"ATTENTION : Cette action supprimera définitivement tous les documents et ne peut pas être annulée !",confirm:"Voulez-vous vraiment effacer tous les documents ?",confirmPrompt:"Tapez 'yes' pour confirmer cette action",confirmPlaceholder:"Tapez yes pour confirmer",clearCache:"Effacer le cache LLM",confirmButton:"OUI",clearing:"Effacement en cours...",timeout:"L'opération d'effacement a expiré, veuillez réessayer",success:"Documents effacés avec succès",cacheCleared:"Cache effacé avec succès",cacheClearFailed:`Échec de l'effacement du cache : {{error}}`,failed:`Échec de l'effacement des documents : {{message}}`,error:`Échec de l'effacement des documents : {{error}}`},deleteDocuments:{button:"Supprimer",tooltip:"Supprimer les documents sélectionnés",title:"Supprimer les documents",description:"Cette action supprimera définitivement les documents sélectionnés du système",warning:"ATTENTION : Cette action supprimera définitivement les documents sélectionnés et ne peut pas être annulée !",confirm:"Voulez-vous vraiment supprimer {{count}} document(s) sélectionné(s) ?",confirmPrompt:"Tapez 'yes' pour confirmer cette action",confirmPlaceholder:"Tapez yes pour confirmer",confirmButton:"OUI",deleteFileOption:"Supprimer également les fichiers téléchargés",deleteFileTooltip:"Cochez cette option pour supprimer également les fichiers téléchargés correspondants sur le serveur",success:"Pipeline de suppression de documents démarré avec succès",failed:`Échec de la suppression des documents : {{message}}`,error:`Échec de la suppression des documents : {{error}}`,busy:"Le pipeline est occupé, veuillez réessayer plus tard",notAllowed:"Aucune autorisation pour effectuer cette opération"},selectDocuments:{selectCurrentPage:"Sélectionner la page actuelle ({{count}})",deselectAll:"Tout désélectionner ({{count}})"},uploadDocuments:{button:"Télécharger",tooltip:"Télécharger des documents",title:"Télécharger des documents",description:"Glissez-déposez vos documents ici ou cliquez pour parcourir.",single:{uploading:"Téléchargement de {{name}} : {{percent}}%",success:`Succès du téléchargement : {{name}} téléchargé avec succès`,failed:`Échec du téléchargement : {{name}} {{message}}`,error:`Échec du téléchargement : {{name}} {{error}}`},batch:{uploading:"Téléchargement des fichiers...",success:"Fichiers téléchargés avec succès",error:"Certains fichiers n'ont pas pu être téléchargés"},generalError:`Échec du téléchargement {{error}}`,fileTypes:"Types pris en charge : TXT, MD, DOCX, PDF, PPTX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",fileUploader:{singleFileLimit:"Impossible de télécharger plus d'un fichier à la fois",maxFilesLimit:"Impossible de télécharger plus de {{count}} fichiers",fileRejected:"Le fichier {{name}} a été rejeté",unsupportedType:"Type de fichier non pris en charge",fileTooLarge:"Fichier trop volumineux, taille maximale {{maxSize}}",dropHere:"Déposez les fichiers ici",dragAndDrop:"Glissez et déposez les fichiers ici, ou cliquez pour sélectionner",removeFile:"Supprimer le fichier",uploadDescription:"Vous pouvez télécharger {{isMultiple ? 'plusieurs' : count}} fichiers (jusqu'à {{maxSize}} chacun)",duplicateFile:"Le nom du fichier existe déjà dans le cache du serveur"}},documentManager:{title:"Gestion des documents",scanButton:"Scanner",scanTooltip:"Scanner les documents dans le dossier d'entrée",refreshTooltip:"Réinitialiser la liste des documents",pipelineStatusButton:"État du Pipeline",pipelineStatusTooltip:"Voir l'état du pipeline",uploadedTitle:"Documents téléchargés",uploadedDescription:"Liste des documents téléchargés et leurs statuts.",emptyTitle:"Aucun document",emptyDescription:"Il n'y a pas encore de documents téléchargés.",columns:{id:"ID",fileName:"Nom du fichier",summary:"Résumé",status:"Statut",length:"Longueur",chunks:"Fragments",created:"Créé",updated:"Mis à jour",metadata:"Métadonnées",select:"Sélectionner"},status:{all:"Tous",completed:"Terminé",processing:"En traitement",pending:"En attente",failed:"Échoué"},errors:{loadFailed:`Échec du chargement des documents {{error}}`,scanFailed:`Échec de la numérisation des documents {{error}}`,scanProgressFailed:`Échec de l'obtention de la progression de la numérisation {{error}}`},fileNameLabel:"Nom du fichier",showButton:"Afficher",hideButton:"Masquer",showFileNameTooltip:"Afficher le nom du fichier",hideFileNameTooltip:"Masquer le nom du fichier"},pipelineStatus:{title:"État du Pipeline",busy:"Pipeline occupé",requestPending:"Requête en attente",jobName:"Nom du travail",startTime:"Heure de début",progress:"Progression",unit:"lot",latestMessage:"Dernier message",historyMessages:"Historique des messages",errors:{fetchFailed:`Échec de la récupération de l'état du pipeline {{error}}`}}},gy={dataIsTruncated:"Les données du graphe sont tronquées au nombre maximum de nœuds",statusDialog:{title:"Paramètres du Serveur LightRAG",description:"Afficher l'état actuel du système et les informations de connexion"},legend:"Légende",nodeTypes:{person:"Personne",category:"Catégorie",geo:"Géographique",location:"Emplacement",organization:"Organisation",event:"Événement",equipment:"Équipement",weapon:"Arme",animal:"Animal",unknown:"Inconnu",object:"Objet",group:"Groupe",technology:"Technologie",product:"Produit",document:"Document",content:"Contenu",data:"Données",artifact:"Artefact",concept:"Concept",naturalobject:"Objet naturel",method:"Méthode",other:"Autre"},sideBar:{settings:{settings:"Paramètres",healthCheck:"Vérification de l'état",showPropertyPanel:"Afficher le panneau des propriétés",showSearchBar:"Afficher la barre de recherche",showNodeLabel:"Afficher l'étiquette du nœud",nodeDraggable:"Nœud déplaçable",showEdgeLabel:"Afficher l'étiquette de l'arête",hideUnselectedEdges:"Masquer les arêtes non sélectionnées",edgeEvents:"Événements des arêtes",maxQueryDepth:"Profondeur maximale de la requête",maxNodes:"Nombre maximum de nœuds",maxLayoutIterations:"Itérations maximales de mise en page",resetToDefault:"Réinitialiser par défaut",edgeSizeRange:"Plage de taille des arêtes",depth:"D",max:"Max",degree:"Degré",apiKey:"Clé API",enterYourAPIkey:"Entrez votre clé API",save:"Sauvegarder",refreshLayout:"Actualiser la mise en page"},zoomControl:{zoomIn:"Zoom avant",zoomOut:"Zoom arrière",resetZoom:"Réinitialiser le zoom",rotateCamera:"Rotation horaire",rotateCameraCounterClockwise:"Rotation antihoraire"},layoutsControl:{startAnimation:"Démarrer l'animation de mise en page",stopAnimation:"Arrêter l'animation de mise en page",layoutGraph:"Mettre en page le graphe",layouts:{Circular:"Circulaire",Circlepack:"Paquet circulaire",Random:"Aléatoire",Noverlaps:"Sans chevauchement","Force Directed":"Dirigé par la force","Force Atlas":"Atlas de force"}},fullScreenControl:{fullScreen:"Plein écran",windowed:"Fenêtré"},legendControl:{toggleLegend:"Basculer la légende"}},statusIndicator:{connected:"Connecté",disconnected:"Déconnecté"},statusCard:{unavailable:"Informations sur l'état indisponibles",serverInfo:"Informations du serveur",workingDirectory:"Répertoire de travail",inputDirectory:"Répertoire d'entrée",maxParallelInsert:"Traitement simultané des documents",summarySettings:"Paramètres de résumé",llmConfig:"Configuration du modèle de langage",llmBinding:"Liaison du modèle de langage",llmBindingHost:"Point de terminaison LLM",llmModel:"Modèle de langage",embeddingConfig:"Configuration d'incorporation",embeddingBinding:"Liaison d'incorporation",embeddingBindingHost:"Point de terminaison d'incorporation",embeddingModel:"Modèle d'incorporation",storageConfig:"Configuration de stockage",kvStorage:"Stockage clé-valeur",docStatusStorage:"Stockage de l'état des documents",graphStorage:"Stockage du graphe",vectorStorage:"Stockage vectoriel",workspace:"Espace de travail",maxGraphNodes:"Nombre maximum de nœuds du graphe",rerankerConfig:"Configuration du reclassement",rerankerBindingHost:"Point de terminaison de reclassement",rerankerModel:"Modèle de reclassement",lockStatus:"État des verrous",threshold:"Seuil"},propertiesView:{editProperty:"Modifier {{property}}",editPropertyDescription:"Modifiez la valeur de la propriété dans la zone de texte ci-dessous.",errors:{duplicateName:"Le nom du nœud existe déjà",updateFailed:"Échec de la mise à jour du nœud",tryAgainLater:"Veuillez réessayer plus tard"},success:{entityUpdated:"Nœud mis à jour avec succès",relationUpdated:"Relation mise à jour avec succès"},node:{title:"Nœud",id:"ID",labels:"Étiquettes",degree:"Degré",properties:"Propriétés",relationships:"Relations(dans le sous-graphe)",expandNode:"Développer le nœud",pruneNode:"Élaguer le nœud",deleteAllNodesError:"Refus de supprimer tous les nœuds du graphe",nodesRemoved:"{{count}} nœuds supprimés, y compris les nœuds orphelins",noNewNodes:"Aucun nœud développable trouvé",propertyNames:{description:"Description",entity_id:"Nom",entity_type:"Type",source_id:"ID source",Neighbour:"Voisin",file_path:"Source",keywords:"Keys",weight:"Poids"}},edge:{title:"Relation",id:"ID",type:"Type",source:"Source",target:"Cible",properties:"Propriétés"}},search:{placeholder:"Rechercher des nœuds...",message:"Et {{count}} autres"},graphLabels:{selectTooltip:"Sélectionner l'étiquette de la requête",noLabels:"Aucune étiquette trouvée",label:"Étiquette",placeholder:"Rechercher des étiquettes...",andOthers:"Et {{count}} autres",refreshTooltip:"Recharger les données (Après l'ajout de fichier)"},emptyGraph:"Vide (Essayez de recharger)"},py={chatMessage:{copyTooltip:"Copier dans le presse-papiers",copyError:"Échec de la copie du texte dans le presse-papiers",thinking:"Réflexion en cours...",thinkingTime:"Temps de réflexion {{time}}s",thinkingInProgress:"Réflexion en cours..."},retrieval:{startPrompt:"Démarrez une récupération en tapant votre requête ci-dessous",clear:"Effacer",send:"Envoyer",placeholder:"Tapez votre requête (Préfixe de requête : /)",error:"Erreur : Échec de l'obtention de la réponse",queryModeError:"Seuls les modes de requête suivants sont pris en charge : {{modes}}",queryModePrefixInvalid:"Préfixe de mode de requête invalide. Utilisez : / [espace] votre requête"},querySettings:{parametersTitle:"Paramètres",parametersDescription:"Configurez vos paramètres de requête",queryMode:"Mode de requête",queryModeTooltip:`Sélectionnez la stratégie de récupération : • Naïf : Recherche de base sans techniques avancées • Local : Récupération d'informations dépendante du contexte • Global : Utilise une base de connaissances globale • Hybride : Combine récupération locale et globale • Mixte : Intègre le graphe de connaissances avec la récupération vectorielle • Bypass : Transmet directement la requête au LLM sans récupération`,queryModeOptions:{naive:"Naïf",local:"Local",global:"Global",hybrid:"Hybride",mix:"Mixte",bypass:"Bypass"},responseFormat:"Format de réponse",responseFormatTooltip:`Définit le format de la réponse. Exemples : • Plusieurs paragraphes • Paragraphe unique • Points à puces`,responseFormatOptions:{multipleParagraphs:"Plusieurs paragraphes",singleParagraph:"Paragraphe unique",bulletPoints:"Points à puces"},topK:"KG Top K",topKTooltip:"Nombre d'entités et de relations à récupérer. Applicable pour les modes non-naïfs.",topKPlaceholder:"Entrez la valeur top_k",chunkTopK:"Top K des Chunks",chunkTopKTooltip:"Nombre de morceaux de texte à récupérer, applicable à tous les modes.",chunkTopKPlaceholder:"Entrez la valeur chunk_top_k",maxEntityTokens:"Limite de jetons d'entité",maxEntityTokensTooltip:"Nombre maximum de jetons alloués au contexte d'entité dans le système de contrôle de jetons unifié",maxRelationTokens:"Limite de jetons de relation",maxRelationTokensTooltip:"Nombre maximum de jetons alloués au contexte de relation dans le système de contrôle de jetons unifié",maxTotalTokens:"Limite totale de jetons",maxTotalTokensTooltip:"Budget total maximum de jetons pour l'ensemble du contexte de requête (entités + relations + blocs + prompt système)",historyTurns:"Tours d'historique",historyTurnsTooltip:"Nombre de tours complets de conversation (paires utilisateur-assistant) à prendre en compte dans le contexte de la réponse",historyTurnsPlaceholder:"Nombre de tours d'historique",onlyNeedContext:"Besoin uniquement du contexte",onlyNeedContextTooltip:"Si vrai, ne renvoie que le contexte récupéré sans générer de réponse",onlyNeedPrompt:"Besoin uniquement de l'invite",onlyNeedPromptTooltip:"Si vrai, ne renvoie que l'invite générée sans produire de réponse",streamResponse:"Réponse en flux",streamResponseTooltip:"Si vrai, active la sortie en flux pour des réponses en temps réel",userPrompt:"Invite personnalisée",userPromptTooltip:"Fournir des exigences de réponse supplémentaires au LLM (sans rapport avec le contenu de la requête, uniquement pour le traitement de sortie).",userPromptPlaceholder:"Entrez une invite personnalisée (facultatif)",enableRerank:"Activer le Reclassement",enableRerankTooltip:"Active le reclassement pour les fragments de texte récupérés. Si True mais qu'aucun modèle de reclassement n'est configuré, un avertissement sera émis. True par défaut."}},yy={loading:"Chargement de la documentation de l'API..."},vy={title:"Clé API requise",description:"Veuillez entrer votre clé API pour accéder au service",placeholder:"Entrez votre clé API",save:"Sauvegarder"},by={showing:"Affichage de {{start}} à {{end}} sur {{total}} entrées",page:"Page",pageSize:"Taille de la page",firstPage:"Première page",prevPage:"Page précédente",nextPage:"Page suivante",lastPage:"Dernière page"},Sy={settings:ry,header:fy,login:dy,common:my,documentPanel:hy,graphPanel:gy,retrievePanel:py,apiSite:yy,apiKeyAlert:vy,pagination:by},Ty={language:"اللغة",theme:"السمة",light:"فاتح",dark:"داكن",system:"النظام"},xy={documents:"المستندات",knowledgeGraph:"شبكة المعرفة",retrieval:"الاسترجاع",api:"واجهة برمجة التطبيقات",projectRepository:"مستودع المشروع",logout:"تسجيل الخروج",themeToggle:{switchToLight:"التحويل إلى السمة الفاتحة",switchToDark:"التحويل إلى السمة الداكنة"}},Ay={description:"الرجاء إدخال حسابك وكلمة المرور لتسجيل الدخول إلى النظام",username:"اسم المستخدم",usernamePlaceholder:"الرجاء إدخال اسم المستخدم",password:"كلمة المرور",passwordPlaceholder:"الرجاء إدخال كلمة المرور",loginButton:"تسجيل الدخول",loggingIn:"جاري تسجيل الدخول...",successMessage:"تم تسجيل الدخول بنجاح",errorEmptyFields:"الرجاء إدخال اسم المستخدم وكلمة المرور",errorInvalidCredentials:"فشل تسجيل الدخول، يرجى التحقق من اسم المستخدم وكلمة المرور",authDisabled:"تم تعطيل المصادقة. استخدام وضع بدون تسجيل دخول.",guestMode:"وضع بدون تسجيل دخول"},Dy={cancel:"إلغاء",save:"حفظ",saving:"جارٍ الحفظ...",saveFailed:"فشل الحفظ"},Ny={clearDocuments:{button:"مسح",tooltip:"مسح المستندات",title:"مسح المستندات",description:"سيؤدي هذا إلى إزالة جميع المستندات من النظام",warning:"تحذير: سيؤدي هذا الإجراء إلى حذف جميع المستندات بشكل دائم ولا يمكن التراجع عنه!",confirm:"هل تريد حقًا مسح جميع المستندات؟",confirmPrompt:"اكتب 'yes' لتأكيد هذا الإجراء",confirmPlaceholder:"اكتب yes للتأكيد",clearCache:"مسح كاش نموذج اللغة",confirmButton:"نعم",clearing:"جارٍ المسح...",timeout:"انتهت مهلة عملية المسح، يرجى المحاولة مرة أخرى",success:"تم مسح المستندات بنجاح",cacheCleared:"تم مسح ذاكرة التخزين المؤقت بنجاح",cacheClearFailed:`فشل مسح ذاكرة التخزين المؤقت: {{error}}`,failed:`فشل مسح المستندات: {{message}}`,error:`فشل مسح المستندات: {{error}}`},deleteDocuments:{button:"حذف",tooltip:"حذف المستندات المحددة",title:"حذف المستندات",description:"سيؤدي هذا إلى حذف المستندات المحددة نهائيًا من النظام",warning:"تحذير: سيؤدي هذا الإجراء إلى حذف المستندات المحددة نهائيًا ولا يمكن التراجع عنه!",confirm:"هل تريد حقًا حذف {{count}} مستند(ات) محدد(ة)؟",confirmPrompt:"اكتب 'yes' لتأكيد هذا الإجراء",confirmPlaceholder:"اكتب yes للتأكيد",confirmButton:"نعم",deleteFileOption:"حذف الملفات المرفوعة أيضًا",deleteFileTooltip:"حدد هذا الخيار لحذف الملفات المرفوعة المقابلة على الخادم أيضًا",success:"تم بدء تشغيل خط معالجة حذف المستندات بنجاح",failed:`فشل حذف المستندات: {{message}}`,error:`فشل حذف المستندات: {{error}}`,busy:"خط المعالجة مشغول، يرجى المحاولة مرة أخرى لاحقًا",notAllowed:"لا توجد صلاحية لتنفيذ هذه العملية"},selectDocuments:{selectCurrentPage:"تحديد الصفحة الحالية ({{count}})",deselectAll:"إلغاء تحديد الكل ({{count}})"},uploadDocuments:{button:"رفع",tooltip:"رفع المستندات",title:"رفع المستندات",description:"اسحب وأفلت مستنداتك هنا أو انقر للتصفح.",single:{uploading:"جارٍ الرفع {{name}}: {{percent}}%",success:`نجاح الرفع: تم رفع {{name}} بنجاح`,failed:`فشل الرفع: {{name}} {{message}}`,error:`فشل الرفع: {{name}} {{error}}`},batch:{uploading:"جارٍ رفع الملفات...",success:"تم رفع الملفات بنجاح",error:"فشل رفع بعض الملفات"},generalError:`فشل الرفع {{error}}`,fileTypes:"الأنواع المدعومة: TXT، MD، DOCX، PDF، PPTX، RTF، ODT، EPUB، HTML، HTM، TEX، JSON، XML، YAML، YML، CSV، LOG، CONF، INI، PROPERTIES، SQL، BAT، SH، C، CPP، PY، JAVA، JS، TS، SWIFT، GO، RB، PHP، CSS، SCSS، LESS",fileUploader:{singleFileLimit:"لا يمكن رفع أكثر من ملف واحد في المرة الواحدة",maxFilesLimit:"لا يمكن رفع أكثر من {{count}} ملفات",fileRejected:"تم رفض الملف {{name}}",unsupportedType:"نوع الملف غير مدعوم",fileTooLarge:"حجم الملف كبير جدًا، الحد الأقصى {{maxSize}}",dropHere:"أفلت الملفات هنا",dragAndDrop:"اسحب وأفلت الملفات هنا، أو انقر للاختيار",removeFile:"إزالة الملف",uploadDescription:"يمكنك رفع {{isMultiple ? 'عدة' : count}} ملفات (حتى {{maxSize}} لكل منها)",duplicateFile:"اسم الملف موجود بالفعل في ذاكرة التخزين المؤقت للخادم"}},documentManager:{title:"إدارة المستندات",scanButton:"مسح ضوئي",scanTooltip:"مسح المستندات ضوئيًا في مجلد الإدخال",refreshTooltip:"إعادة تعيين قائمة المستندات",pipelineStatusButton:"حالة خط المعالجة",pipelineStatusTooltip:"عرض حالة خط المعالجة",uploadedTitle:"المستندات المرفوعة",uploadedDescription:"قائمة المستندات المرفوعة وحالاتها.",emptyTitle:"لا توجد مستندات",emptyDescription:"لا توجد مستندات مرفوعة بعد.",columns:{id:"المعرف",fileName:"اسم الملف",summary:"الملخص",status:"الحالة",length:"الطول",chunks:"الأجزاء",created:"تم الإنشاء",updated:"تم التحديث",metadata:"البيانات الوصفية",select:"اختيار"},status:{all:"الكل",completed:"مكتمل",processing:"قيد المعالجة",pending:"معلق",failed:"فشل"},errors:{loadFailed:`فشل تحميل المستندات {{error}}`,scanFailed:`فشل مسح المستندات {{error}}`,scanProgressFailed:`فشل الحصول على تقدم المسح {{error}}`},fileNameLabel:"اسم الملف",showButton:"عرض",hideButton:"إخفاء",showFileNameTooltip:"عرض اسم الملف",hideFileNameTooltip:"إخفاء اسم الملف"},pipelineStatus:{title:"حالة خط المعالجة",busy:"خط المعالجة مشغول",requestPending:"الطلب معلق",jobName:"اسم المهمة",startTime:"وقت البدء",progress:"التقدم",unit:"دفعة",latestMessage:"آخر رسالة",historyMessages:"سجل الرسائل",errors:{fetchFailed:`فشل في جلب حالة خط المعالجة {{error}}`}}},Ey={dataIsTruncated:"تم اقتصار بيانات الرسم البياني على الحد الأقصى للعقد",statusDialog:{title:"إعدادات خادم LightRAG",description:"عرض حالة النظام الحالية ومعلومات الاتصال"},legend:"المفتاح",nodeTypes:{person:"شخص",category:"فئة",geo:"كيان جغرافي",location:"موقع",organization:"منظمة",event:"حدث",equipment:"معدات",weapon:"سلاح",animal:"حيوان",unknown:"غير معروف",object:"مصنوع",group:"مجموعة",technology:"العلوم",product:"منتج",document:"وثيقة",content:"محتوى",data:"بيانات",artifact:"قطعة أثرية",concept:"مفهوم",naturalobject:"كائن طبيعي",method:"عملية",other:"أخرى"},sideBar:{settings:{settings:"الإعدادات",healthCheck:"فحص الحالة",showPropertyPanel:"إظهار لوحة الخصائص",showSearchBar:"إظهار شريط البحث",showNodeLabel:"إظهار تسمية العقدة",nodeDraggable:"العقدة قابلة للسحب",showEdgeLabel:"إظهار تسمية الحافة",hideUnselectedEdges:"إخفاء الحواف غير المحددة",edgeEvents:"أحداث الحافة",maxQueryDepth:"أقصى عمق للاستعلام",maxNodes:"الحد الأقصى للعقد",maxLayoutIterations:"أقصى تكرارات التخطيط",resetToDefault:"إعادة التعيين إلى الافتراضي",edgeSizeRange:"نطاق حجم الحافة",depth:"D",max:"Max",degree:"الدرجة",apiKey:"مفتاح واجهة برمجة التطبيقات",enterYourAPIkey:"أدخل مفتاح واجهة برمجة التطبيقات الخاص بك",save:"حفظ",refreshLayout:"تحديث التخطيط"},zoomControl:{zoomIn:"تكبير",zoomOut:"تصغير",resetZoom:"إعادة تعيين التكبير",rotateCamera:"تدوير في اتجاه عقارب الساعة",rotateCameraCounterClockwise:"تدوير عكس اتجاه عقارب الساعة"},layoutsControl:{startAnimation:"بدء حركة التخطيط",stopAnimation:"إيقاف حركة التخطيط",layoutGraph:"تخطيط الرسم البياني",layouts:{Circular:"دائري",Circlepack:"حزمة دائرية",Random:"عشوائي",Noverlaps:"بدون تداخل","Force Directed":"موجه بالقوة","Force Atlas":"أطلس القوة"}},fullScreenControl:{fullScreen:"شاشة كاملة",windowed:"نوافذ"},legendControl:{toggleLegend:"تبديل المفتاح"}},statusIndicator:{connected:"متصل",disconnected:"غير متصل"},statusCard:{unavailable:"معلومات الحالة غير متوفرة",serverInfo:"معلومات الخادم",workingDirectory:"دليل العمل",inputDirectory:"دليل الإدخال",maxParallelInsert:"معالجة المستندات المتزامنة",summarySettings:"إعدادات الملخص",llmConfig:"تكوين نموذج اللغة الكبير",llmBinding:"ربط نموذج اللغة الكبير",llmBindingHost:"نقطة نهاية نموذج اللغة الكبير",llmModel:"نموذج اللغة الكبير",embeddingConfig:"تكوين التضمين",embeddingBinding:"ربط التضمين",embeddingBindingHost:"نقطة نهاية التضمين",embeddingModel:"نموذج التضمين",storageConfig:"تكوين التخزين",kvStorage:"تخزين المفتاح-القيمة",docStatusStorage:"تخزين حالة المستند",graphStorage:"تخزين الرسم البياني",vectorStorage:"تخزين المتجهات",workspace:"مساحة العمل",maxGraphNodes:"الحد الأقصى لعقد الرسم البياني",rerankerConfig:"تكوين إعادة الترتيب",rerankerBindingHost:"نقطة نهاية إعادة الترتيب",rerankerModel:"نموذج إعادة الترتيب",lockStatus:"حالة القفل",threshold:"العتبة"},propertiesView:{editProperty:"تعديل {{property}}",editPropertyDescription:"قم بتحرير قيمة الخاصية في منطقة النص أدناه.",errors:{duplicateName:"اسم العقدة موجود بالفعل",updateFailed:"فشل تحديث العقدة",tryAgainLater:"يرجى المحاولة مرة أخرى لاحقًا"},success:{entityUpdated:"تم تحديث العقدة بنجاح",relationUpdated:"تم تحديث العلاقة بنجاح"},node:{title:"عقدة",id:"المعرف",labels:"التسميات",degree:"الدرجة",properties:"الخصائص",relationships:"العلاقات (داخل الرسم الفرعي)",expandNode:"توسيع العقدة",pruneNode:"تقليم العقدة",deleteAllNodesError:"رفض حذف جميع العقد في الرسم البياني",nodesRemoved:"تم إزالة {{count}} عقدة، بما في ذلك العقد اليتيمة",noNewNodes:"لم يتم العثور على عقد قابلة للتوسيع",propertyNames:{description:"الوصف",entity_id:"الاسم",entity_type:"النوع",source_id:"معرف المصدر",Neighbour:"الجار",file_path:"المصدر",keywords:"الكلمات الرئيسية",weight:"الوزن"}},edge:{title:"علاقة",id:"المعرف",type:"النوع",source:"المصدر",target:"الهدف",properties:"الخصائص"}},search:{placeholder:"ابحث في العقد...",message:"و {{count}} آخرون"},graphLabels:{selectTooltip:"حدد تسمية الاستعلام",noLabels:"لم يتم العثور على تسميات",label:"التسمية",placeholder:"ابحث في التسميات...",andOthers:"و {{count}} آخرون",refreshTooltip:"إعادة تحميل البيانات (بعد إضافة الملف)"},emptyGraph:"فارغ (حاول إعادة التحميل)"},My={chatMessage:{copyTooltip:"نسخ إلى الحافظة",copyError:"فشل نسخ النص إلى الحافظة",thinking:"جاري التفكير...",thinkingTime:"وقت التفكير {{time}} ثانية",thinkingInProgress:"التفكير قيد التقدم..."},retrieval:{startPrompt:"ابدأ الاسترجاع بكتابة استفسارك أدناه",clear:"مسح",send:"إرسال",placeholder:"اكتب استفسارك (بادئة وضع الاستعلام: /)",error:"خطأ: فشل الحصول على الرد",queryModeError:"يُسمح فقط بأنماط الاستعلام التالية: {{modes}}",queryModePrefixInvalid:"بادئة وضع الاستعلام غير صالحة. استخدم: /<الوضع> [مسافة] استفسارك"},querySettings:{parametersTitle:"المعلمات",parametersDescription:"تكوين معلمات الاستعلام الخاص بك",queryMode:"وضع الاستعلام",queryModeTooltip:`حدد استراتيجية الاسترجاع: • ساذج: بحث أساسي بدون تقنيات متقدمة • محلي: استرجاع معلومات يعتمد على السياق • عالمي: يستخدم قاعدة المعرفة العالمية • مختلط: يجمع بين الاسترجاع المحلي والعالمي • مزيج: يدمج شبكة المعرفة مع الاسترجاع المتجهي • تجاوز: يمرر الاستعلام مباشرة إلى LLM بدون استرجاع`,queryModeOptions:{naive:"ساذج",local:"محلي",global:"عالمي",hybrid:"مختلط",mix:"مزيج",bypass:"تجاوز"},responseFormat:"تنسيق الرد",responseFormatTooltip:`يحدد تنسيق الرد. أمثلة: • فقرات متعددة • فقرة واحدة • نقاط نقطية`,responseFormatOptions:{multipleParagraphs:"فقرات متعددة",singleParagraph:"فقرة واحدة",bulletPoints:"نقاط نقطية"},topK:"KG أعلى K",topKTooltip:"عدد الكيانات والعلاقات المطلوب استردادها، لا ينطبق على الوضع наивный.",topKPlaceholder:"أدخل قيمة top_k",chunkTopK:"أعلى K للقطع",chunkTopKTooltip:"عدد أجزاء النص المطلوب استردادها، وينطبق على جميع الأوضاع.",chunkTopKPlaceholder:"أدخل قيمة chunk_top_k",maxEntityTokens:"الحد الأقصى لرموز الكيان",maxEntityTokensTooltip:"الحد الأقصى لعدد الرموز المخصصة لسياق الكيان في نظام التحكم الموحد في الرموز",maxRelationTokens:"الحد الأقصى لرموز العلاقة",maxRelationTokensTooltip:"الحد الأقصى لعدد الرموز المخصصة لسياق العلاقة في نظام التحكم الموحد في الرموز",maxTotalTokens:"إجمالي الحد الأقصى للرموز",maxTotalTokensTooltip:"الحد الأقصى الإجمالي لميزانية الرموز لسياق الاستعلام بالكامل (الكيانات + العلاقات + الأجزاء + موجه النظام)",historyTurns:"أدوار التاريخ",historyTurnsTooltip:"عدد الدورات الكاملة للمحادثة (أزواج المستخدم-المساعد) التي يجب مراعاتها في سياق الرد",historyTurnsPlaceholder:"عدد دورات التاريخ",onlyNeedContext:"تحتاج فقط إلى السياق",onlyNeedContextTooltip:"إذا كان صحيحًا، يتم إرجاع السياق المسترجع فقط دون إنشاء رد",onlyNeedPrompt:"تحتاج فقط إلى المطالبة",onlyNeedPromptTooltip:"إذا كان صحيحًا، يتم إرجاع المطالبة المولدة فقط دون إنتاج رد",streamResponse:"تدفق الرد",streamResponseTooltip:"إذا كان صحيحًا، يتيح إخراج التدفق للردود في الوقت الفعلي",userPrompt:"مطالبة مخصصة",userPromptTooltip:"تقديم متطلبات استجابة إضافية إلى نموذج اللغة الكبير (غير متعلقة بمحتوى الاستعلام، فقط لمعالجة المخرجات).",userPromptPlaceholder:"أدخل مطالبة مخصصة (اختياري)",enableRerank:"تمكين إعادة الترتيب",enableRerankTooltip:"تمكين إعادة ترتيب أجزاء النص المسترجعة. إذا كان True ولكن لم يتم تكوين نموذج إعادة الترتيب، فسيتم إصدار تحذير. افتراضي True."}},zy={loading:"جارٍ تحميل وثائق واجهة برمجة التطبيقات..."},Cy={title:"مفتاح واجهة برمجة التطبيقات مطلوب",description:"الرجاء إدخال مفتاح واجهة برمجة التطبيقات للوصول إلى الخدمة",placeholder:"أدخل مفتاح واجهة برمجة التطبيقات",save:"حفظ"},jy={showing:"عرض {{start}} إلى {{end}} من أصل {{total}} إدخالات",page:"الصفحة",pageSize:"حجم الصفحة",firstPage:"الصفحة الأولى",prevPage:"الصفحة السابقة",nextPage:"الصفحة التالية",lastPage:"الصفحة الأخيرة"},Oy={settings:Ty,header:xy,login:Ay,common:Dy,documentPanel:Ny,graphPanel:Ey,retrievePanel:My,apiSite:zy,apiKeyAlert:Cy,pagination:jy},_y={language:"語言",theme:"主題",light:"淺色",dark:"深色",system:"系統"},Ry={documents:"文件",knowledgeGraph:"知識圖譜",retrieval:"檢索",api:"API",projectRepository:"專案庫",logout:"登出",themeToggle:{switchToLight:"切換至淺色主題",switchToDark:"切換至深色主題"}},Uy={description:"請輸入您的帳號和密碼登入系統",username:"帳號",usernamePlaceholder:"請輸入帳號",password:"密碼",passwordPlaceholder:"請輸入密碼",loginButton:"登入",loggingIn:"登入中...",successMessage:"登入成功",errorEmptyFields:"請輸入您的帳號和密碼",errorInvalidCredentials:"登入失敗,請檢查帳號和密碼",authDisabled:"認證已停用,使用免登入模式",guestMode:"免登入"},Hy={cancel:"取消",save:"儲存",saving:"儲存中...",saveFailed:"儲存失敗"},Ly={clearDocuments:{button:"清空",tooltip:"清空文件",title:"清空文件",description:"此操作將從系統中移除所有文件",warning:"警告:此操作將永久刪除所有文件,無法復原!",confirm:"確定要清空所有文件嗎?",confirmPrompt:"請輸入 yes 確認操作",confirmPlaceholder:"輸入 yes 以確認",clearCache:"清空 LLM 快取",confirmButton:"確定",clearing:"正在清除...",timeout:"清除操作逾時,請重試",success:"文件清空成功",cacheCleared:"快取清空成功",cacheClearFailed:`清空快取失敗: {{error}}`,failed:`清空文件失敗: {{message}}`,error:`清空文件失敗: {{error}}`},deleteDocuments:{button:"刪除",tooltip:"刪除選取的文件",title:"刪除文件",description:"此操作將永久刪除選取的文件",warning:"警告:此操作將永久刪除選取的文件,無法復原!",confirm:"確定要刪除 {{count}} 個選取的文件嗎?",confirmPrompt:"請輸入 yes 確認操作",confirmPlaceholder:"輸入 yes 以確認",confirmButton:"確定",deleteFileOption:"同時刪除上傳檔案",deleteFileTooltip:"選取此選項將同時刪除伺服器上對應的上傳檔案",success:"文件刪除流水線啟動成功",failed:`刪除文件失敗: {{message}}`,error:`刪除文件失敗: {{error}}`,busy:"pipeline 被佔用,請稍後再試",notAllowed:"沒有操作權限"},selectDocuments:{selectCurrentPage:"全選當前頁 ({{count}})",deselectAll:"取消全選 ({{count}})"},uploadDocuments:{button:"上傳",tooltip:"上傳文件",title:"上傳文件",description:"拖曳檔案至此處或點擊瀏覽",single:{uploading:"正在上傳 {{name}}:{{percent}}%",success:`上傳成功: {{name}} 上傳完成`,failed:`上傳失敗: {{name}} {{message}}`,error:`上傳失敗: {{name}} {{error}}`},batch:{uploading:"正在上傳檔案...",success:"檔案上傳完成",error:"部分檔案上傳失敗"},generalError:`上傳失敗 {{error}}`,fileTypes:"支援的檔案類型:TXT, MD, DOCX, PDF, PPTX, XLSX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",fileUploader:{singleFileLimit:"一次只能上傳一個檔案",maxFilesLimit:"最多只能上傳 {{count}} 個檔案",fileRejected:"檔案 {{name}} 被拒絕",unsupportedType:"不支援的檔案類型",fileTooLarge:"檔案過大,最大允許 {{maxSize}}",dropHere:"將檔案拖放至此處",dragAndDrop:"拖放檔案至此處,或點擊選擇檔案",removeFile:"移除檔案",uploadDescription:"您可以上傳{{isMultiple ? '多個' : count}}個檔案(每個檔案最大{{maxSize}})",duplicateFile:"檔案名稱與伺服器上的快取重複"}},documentManager:{title:"文件管理",scanButton:"掃描",scanTooltip:"掃描輸入目錄中的文件",refreshTooltip:"重設文件清單",pipelineStatusButton:"pipeline 狀態",pipelineStatusTooltip:"查看pipeline 狀態",uploadedTitle:"已上傳文件",uploadedDescription:"已上傳文件清單及其狀態",emptyTitle:"無文件",emptyDescription:"尚未上傳任何文件",columns:{id:"ID",fileName:"檔案名稱",summary:"摘要",status:"狀態",length:"長度",chunks:"分塊",created:"建立時間",updated:"更新時間",metadata:"元資料",select:"選擇"},status:{all:"全部",completed:"已完成",processing:"處理中",pending:"等待中",failed:"失敗"},errors:{loadFailed:`載入文件失敗 {{error}}`,scanFailed:`掃描文件失敗 {{error}}`,scanProgressFailed:`取得掃描進度失敗 {{error}}`},fileNameLabel:"檔案名稱",showButton:"顯示",hideButton:"隱藏",showFileNameTooltip:"顯示檔案名稱",hideFileNameTooltip:"隱藏檔案名稱"},pipelineStatus:{title:"pipeline 狀態",busy:"pipeline 忙碌中",requestPending:"待處理請求",jobName:"工作名稱",startTime:"開始時間",progress:"進度",unit:"梯次",latestMessage:"最新訊息",historyMessages:"歷史訊息",errors:{fetchFailed:`取得pipeline 狀態失敗 {{error}}`}}},qy={dataIsTruncated:"圖資料已截斷至最大回傳節點數",statusDialog:{title:"LightRAG 伺服器設定",description:"查看目前系統狀態和連線資訊"},legend:"圖例",nodeTypes:{person:"人物角色",category:"分類",geo:"地理名稱",location:"位置",organization:"組織機構",event:"事件",equipment:"設備",weapon:"武器",animal:"動物",unknown:"未知",object:"物品",group:"群組",technology:"技術",product:"產品",document:"文檔",content:"內容",data:"資料",artifact:"人工製品",concept:"概念",naturalobject:"自然物件",method:"方法",other:"其他"},sideBar:{settings:{settings:"設定",healthCheck:"健康檢查",showPropertyPanel:"顯示屬性面板",showSearchBar:"顯示搜尋列",showNodeLabel:"顯示節點標籤",nodeDraggable:"節點可拖曳",showEdgeLabel:"顯示 Edge 標籤",hideUnselectedEdges:"隱藏未選取的 Edge",edgeEvents:"Edge 事件",maxQueryDepth:"最大查詢深度",maxNodes:"最大回傳節點數",maxLayoutIterations:"最大版面配置迭代次數",resetToDefault:"重設為預設值",edgeSizeRange:"Edge 粗細範圍",depth:"深度",max:"最大值",degree:"鄰邊",apiKey:"API key",enterYourAPIkey:"輸入您的 API key",save:"儲存",refreshLayout:"重新整理版面配置"},zoomControl:{zoomIn:"放大",zoomOut:"縮小",resetZoom:"重設縮放",rotateCamera:"順時針旋轉圖形",rotateCameraCounterClockwise:"逆時針旋轉圖形"},layoutsControl:{startAnimation:"繼續版面配置動畫",stopAnimation:"停止版面配置動畫",layoutGraph:"圖形版面配置",layouts:{Circular:"環形",Circlepack:"圓形打包",Random:"隨機",Noverlaps:"無重疊","Force Directed":"力導向","Force Atlas":"力圖"}},fullScreenControl:{fullScreen:"全螢幕",windowed:"視窗"},legendControl:{toggleLegend:"切換圖例顯示"}},statusIndicator:{connected:"已連線",disconnected:"未連線"},statusCard:{unavailable:"狀態資訊不可用",serverInfo:"伺服器資訊",workingDirectory:"工作目錄",inputDirectory:"輸入目錄",maxParallelInsert:"並行處理文档",summarySettings:"摘要設定",llmConfig:"LLM 設定",llmBinding:"LLM 綁定",llmBindingHost:"LLM 端點",llmModel:"LLM 模型",embeddingConfig:"嵌入設定",embeddingBinding:"嵌入綁定",embeddingBindingHost:"嵌入端點",embeddingModel:"嵌入模型",storageConfig:"儲存設定",kvStorage:"KV 儲存",docStatusStorage:"文件狀態儲存",graphStorage:"圖形儲存",vectorStorage:"向量儲存",workspace:"工作空間",maxGraphNodes:"最大圖形節點數",rerankerConfig:"重排序設定",rerankerBindingHost:"重排序端點",rerankerModel:"重排序模型",lockStatus:"鎖定狀態",threshold:"閾值"},propertiesView:{editProperty:"編輯{{property}}",editPropertyDescription:"在下方文字區域編輯屬性值。",errors:{duplicateName:"節點名稱已存在",updateFailed:"更新節點失敗",tryAgainLater:"請稍後重試"},success:{entityUpdated:"節點更新成功",relationUpdated:"關係更新成功"},node:{title:"節點",id:"ID",labels:"標籤",degree:"度數",properties:"屬性",relationships:"關係(子圖內)",expandNode:"展開節點",pruneNode:"修剪節點",deleteAllNodesError:"拒絕刪除圖中的所有節點",nodesRemoved:"已刪除 {{count}} 個節點,包括孤立節點",noNewNodes:"沒有發現可以展開的節點",propertyNames:{description:"描述",entity_id:"名稱",entity_type:"類型",source_id:"來源ID",Neighbour:"鄰接",file_path:"來源",keywords:"Keys",weight:"權重"}},edge:{title:"關係",id:"ID",type:"類型",source:"來源節點",target:"目標節點",properties:"屬性"}},search:{placeholder:"搜尋節點...",message:"還有 {count} 個"},graphLabels:{selectTooltip:"選擇查詢標籤",noLabels:"未找到標籤",label:"標籤",placeholder:"搜尋標籤...",andOthers:"還有 {count} 個",refreshTooltip:"重載圖形數據(新增檔案後需重載)"},emptyGraph:"無數據(請重載圖形數據)"},By={chatMessage:{copyTooltip:"複製到剪貼簿",copyError:"複製文字到剪貼簿失敗",thinking:"正在思考...",thinkingTime:"思考用時 {{time}} 秒",thinkingInProgress:"思考進行中..."},retrieval:{startPrompt:"輸入查詢開始檢索",clear:"清空",send:"送出",placeholder:"輸入查詢內容 (支援模式前綴:/)",error:"錯誤:取得回應失敗",queryModeError:"僅支援以下查詢模式:{{modes}}",queryModePrefixInvalid:"無效的查詢模式前綴。請使用:/<模式> [空格] 查詢內容"},querySettings:{parametersTitle:"參數",parametersDescription:"設定查詢參數",queryMode:"查詢模式",queryModeTooltip:`選擇檢索策略: • Naive:基礎搜尋,無進階技術 • Local:上下文相關資訊檢索 • Global:利用全域知識庫 • Hybrid:結合本地和全域檢索 • Mix:整合知識圖譜和向量檢索 • Bypass:直接傳遞查詢到LLM,不進行檢索`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"回應格式",responseFormatTooltip:`定義回應格式。例如: • 多段落 • 單段落 • 重點`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"單段落",bulletPoints:"重點"},topK:"知識圖譜 Top K",topKTooltip:"實體關係檢索數量,適用於非 naive 模式。",topKPlaceholder:"輸入 top_k 值",chunkTopK:"文本區塊 Top K",chunkTopKTooltip:"文本區塊檢索數量,適用於所有模式。",chunkTopKPlaceholder:"輸入文本區塊 chunk_top_k 值",historyTurns:"歷史輪次",historyTurnsTooltip:"回應上下文中考慮的完整對話輪次(使用者-助手對)數量",historyTurnsPlaceholder:"歷史輪次數",onlyNeedContext:"僅需上下文",onlyNeedContextTooltip:"如果為True,僅回傳檢索到的上下文而不產生回應",onlyNeedPrompt:"僅需提示",onlyNeedPromptTooltip:"如果為True,僅回傳產生的提示而不產生回應",streamResponse:"串流回應",streamResponseTooltip:"如果為True,啟用即時串流輸出回應",userPrompt:"用戶提示詞",userPromptTooltip:"向LLM提供額外的響應要求(與查詢內容無關,僅用於處理輸出)。",userPromptPlaceholder:"輸入自定義提示詞(可選)",enableRerank:"啟用重排",enableRerankTooltip:"為檢索到的文本塊啟用重排。如果為True但未配置重排模型,將發出警告。默認為True。",maxEntityTokens:"實體令牌數上限",maxEntityTokensTooltip:"統一令牌控制系統中分配給實體上下文的最大令牌數",maxRelationTokens:"關係令牌數上限",maxRelationTokensTooltip:"統一令牌控制系統中分配給關係上下文的最大令牌數",maxTotalTokens:"總令牌數上限",maxTotalTokensTooltip:"整個查詢上下文的最大總令牌預算(實體+關係+文檔塊+系統提示)"}},Gy={loading:"正在載入 API 文件..."},wy={title:"需要 API key",description:"請輸入您的 API key 以存取服務",placeholder:"請輸入 API key",save:"儲存"},Yy={showing:"顯示第 {{start}} 到 {{end}} 筆,共 {{total}} 筆記錄",page:"頁",pageSize:"每頁顯示",firstPage:"第一頁",prevPage:"上一頁",nextPage:"下一頁",lastPage:"最後一頁"},ky={settings:_y,header:Ry,login:Uy,common:Hy,documentPanel:Ly,graphPanel:qy,retrievePanel:By,apiSite:Gy,apiKeyAlert:wy,pagination:Yy},Xy=()=>{var m;try{const y=localStorage.getItem("settings-storage");if(y)return((m=JSON.parse(y).state)==null?void 0:m.language)||"en"}catch(y){console.error("Failed to get stored language:",y)}return"en"};fs.use(lp).init({resources:{en:{translation:$p},zh:{translation:oy},fr:{translation:Sy},ar:{translation:Oy},zh_TW:{translation:ky}},lng:Xy(),fallbackLng:"en",interpolation:{escapeValue:!1},returnEmptyString:!1,returnNull:!1});ze.subscribe(m=>{const y=m.language;fs.language!==y&&fs.changeLanguage(y)});op.createRoot(document.getElementById("root")).render(s.jsx(D.StrictMode,{children:s.jsx(wp,{})}));